annotate tests/test-mbmemcasecmp.h @ 17082:62741e75b7c5

poll/select: document portability problems not fixed by Gnulib. * doc/posix-functions/poll.texi: poll does not work well on pipes under Windows. It has the same limitations as select on BeOS. * doc/posix-functions/select.texi: select does not work well on pipes under Windows.
author Paolo Bonzini <pbonzini@redhat.com>
date Thu, 13 Sep 2012 08:51:16 +0200
parents 8250f2777afc
children e542fd46ad6f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11392
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1 /* Test of case-insensitive memory area comparison function.
16201
8250f2777afc maint: update all copyright year number ranges
Jim Meyering <meyering@redhat.com>
parents: 14079
diff changeset
2 Copyright (C) 2007-2012 Free Software Foundation, Inc.
11392
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
3
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
4 This program is free software: you can redistribute it and/or modify
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5 it under the terms of the GNU General Public License as published by
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6 the Free Software Foundation; either version 3 of the License, or
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
7 (at your option) any later version.
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
8
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
9 This program is distributed in the hope that it will be useful,
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
12 GNU General Public License for more details.
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
13
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
14 You should have received a copy of the GNU General Public License
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
15 along with this program. If not, see <http://www.gnu.org/licenses/>. */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
16
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
17 /* Written by Bruno Haible <bruno@clisp.org>, 2009. */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
18
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
19 static void
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
20 test_ascii (int (*my_casecmp) (const char *, size_t, const char *, size_t))
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
21 {
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
22 /* Empty string. */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
23 {
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
24 ASSERT (my_casecmp (NULL, 0, NULL, 0) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
25 }
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
26 {
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
27 static const char input[] = { 'x', 'y' };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
28
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
29 ASSERT (my_casecmp (input, SIZEOF (input), NULL, 0) > 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
30
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
31 ASSERT (my_casecmp (NULL, 0, input, SIZEOF (input)) < 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
32
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
33 ASSERT (my_casecmp (input, SIZEOF (input), input, SIZEOF (input)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
34 }
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
35
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
36 /* Normal lexicographic order. */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
37 {
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
38 static const char input1[] = { 'A', 'm', 'e', 'r', 'i', 'c', 'a' };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
39 static const char input2[] = { 'A', 'm', 'i', 'g', 'o' };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
40
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
41 ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2)) < 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
42
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
43 ASSERT (my_casecmp (input2, SIZEOF (input2), input1, SIZEOF (input1)) > 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
44 }
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
45
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
46 /* Shorter and longer strings. */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
47 {
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
48 static const char input1[] = { 'R', 'e', 'a', 'g', 'a', 'n' };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
49 static const char input2[] = { 'R', 'e', 'a', 'g', 'a', 'n', 'o', 'm', 'i', 'c', 's' };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
50
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
51 ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2)) < 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
52
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
53 ASSERT (my_casecmp (input2, SIZEOF (input2), input1, SIZEOF (input1)) > 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
54 }
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
55
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
56 ASSERT (my_casecmp ("paragraph", 9, "Paragraph", 9) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
57
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
58 ASSERT (my_casecmp ("paragrapH", 9, "parAgRaph", 9) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
59
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
60 ASSERT (my_casecmp ("paragraph", 9, "paraLyzed", 9) < 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
61 ASSERT (my_casecmp ("paraLyzed", 9, "paragraph", 9) > 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
62
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
63 ASSERT (my_casecmp ("para", 4, "paragraph", 9) < 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
64 ASSERT (my_casecmp ("paragraph", 9, "para", 4) > 0);
13721
5cea8d40bf2c Fix endless loop in mbmemcasecoll.
Bruno Haible <bruno@clisp.org>
parents: 12559
diff changeset
65
5cea8d40bf2c Fix endless loop in mbmemcasecoll.
Bruno Haible <bruno@clisp.org>
parents: 12559
diff changeset
66 /* Embedded NULs. */
5cea8d40bf2c Fix endless loop in mbmemcasecoll.
Bruno Haible <bruno@clisp.org>
parents: 12559
diff changeset
67 ASSERT (my_casecmp ("1\0", 2, "2\0", 2) < 0);
5cea8d40bf2c Fix endless loop in mbmemcasecoll.
Bruno Haible <bruno@clisp.org>
parents: 12559
diff changeset
68 ASSERT (my_casecmp ("2\0", 2, "1\0", 2) > 0);
5cea8d40bf2c Fix endless loop in mbmemcasecoll.
Bruno Haible <bruno@clisp.org>
parents: 12559
diff changeset
69 ASSERT (my_casecmp ("x\0""1", 3, "x\0""2", 3) < 0);
5cea8d40bf2c Fix endless loop in mbmemcasecoll.
Bruno Haible <bruno@clisp.org>
parents: 12559
diff changeset
70 ASSERT (my_casecmp ("x\0""2", 3, "x\0""1", 3) > 0);
11392
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
71 }
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
72
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
73 static void
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
74 test_iso_8859_1 (int (*my_casecmp) (const char *, size_t, const char *, size_t), bool assume_byte_values)
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
75 {
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
76 #if ! defined __osf__ /* This test fails on OSF/1 5.1. */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
77 {
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
78 static const char input1[] = { 'H', 0xF6, 'h', 'l', 'e' };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
79 static const char input2[] = { 'H', 0xD6, 'h', 'L', 'e' };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
80 static const char input3[] = { 'H', 0xF6, 'h', 'l', 'e', 'n' };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
81 static const char input4[] = { 'H', 0xD6, 'h', 'L', 'e', 'n' };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
82 static const char input5[] = { 'H', 'u', 'r', 'z' };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
83
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
84 ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
85
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
86 ASSERT (my_casecmp (input2, SIZEOF (input2), input1, SIZEOF (input1)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
87
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
88 ASSERT (my_casecmp (input3, SIZEOF (input3), input4, SIZEOF (input4)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
89
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
90 ASSERT (my_casecmp (input4, SIZEOF (input4), input3, SIZEOF (input3)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
91
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
92 ASSERT (my_casecmp (input2, SIZEOF (input2), input3, SIZEOF (input3)) < 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
93
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
94 ASSERT (my_casecmp (input1, SIZEOF (input1), input4, SIZEOF (input4)) < 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
95
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
96 if (assume_byte_values)
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
97 {
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
98 /* These results are the opposite of those in test-ulc-casecmp.c,
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
99 because my_casecmp compares precomposed characters, whereas
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
100 ulc_casecmp compares decomposed character sequences. */
11392
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
101
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
102 ASSERT (my_casecmp (input1, SIZEOF (input1), input5, SIZEOF (input5)) > 0);
11392
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
103
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
104 ASSERT (my_casecmp (input2, SIZEOF (input2), input5, SIZEOF (input5)) > 0);
11392
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
105 }
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
106 }
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
107 #endif
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
108
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
109 #if 0 /* This functionality requires ulc_casecmp. */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
110 /* Uppercasing can increase the number of Unicode characters. */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
111 { /* "heiß" */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
112 static const char input1[] = { 0x68, 0x65, 0x69, 0xDF };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
113 static const char input2[] = { 0x68, 0x65, 0x69, 0x73, 0x73 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
114
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
115 ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
116 }
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
117 #endif
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
118 }
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
119
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
120 static void
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
121 test_utf_8 (int (*my_casecmp) (const char *, size_t, const char *, size_t), bool turkish)
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
122 {
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
123 /* The following tests shows how my_casecmp() is different from
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
124 strcasecmp(). */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
125
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
126 ASSERT (my_casecmp ("\303\266zg\303\274r", 7, "\303\226ZG\303\234R", 7) == 0); /* özgür */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
127 ASSERT (my_casecmp ("\303\226ZG\303\234R", 7, "\303\266zg\303\274r", 7) == 0); /* özgür */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
128
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
129 /* This test shows how strings of different size can compare equal. */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
130 if (turkish)
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
131 {
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
132 ASSERT (my_casecmp ("turkish", 7, "TURK\304\260SH", 8) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
133 ASSERT (my_casecmp ("TURK\304\260SH", 8, "turkish", 7) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
134 }
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
135
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
136 #if 0 /* This functionality requires ulc_casecmp. */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
137 /* Normalization effects. */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
138 {
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
139 static const char input1[] = { 'H', 0xC3, 0xB6, 'h', 'l', 'e' };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
140 static const char input2[] = { 'H', 'O', 0xCC, 0x88, 'h', 'L', 'e' };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
141 static const char input3[] = { 'H', 0xC3, 0xB6, 'h', 'l', 'e', 'n' };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
142 static const char input4[] = { 'H', 'O', 0xCC, 0x88, 'h', 'L', 'e', 'n' };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
143 static const char input5[] = { 'H', 'u', 'r', 'z' };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
144
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
145 ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
146
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
147 ASSERT (my_casecmp (input2, SIZEOF (input2), input1, SIZEOF (input1)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
148
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
149 ASSERT (my_casecmp (input3, SIZEOF (input3), input4, SIZEOF (input4)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
150
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
151 ASSERT (my_casecmp (input4, SIZEOF (input4), input3, SIZEOF (input3)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
152
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
153 ASSERT (my_casecmp (input2, SIZEOF (input2), input3, SIZEOF (input3)) < 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
154
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
155 ASSERT (my_casecmp (input1, SIZEOF (input1), input4, SIZEOF (input4)) < 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
156
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
157 ASSERT (my_casecmp (input1, SIZEOF (input1), input5, SIZEOF (input5)) < 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
158
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
159 ASSERT (my_casecmp (input2, SIZEOF (input2), input5, SIZEOF (input5)) < 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
160 }
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
161 { /* LATIN CAPITAL LETTER A WITH DIAERESIS */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
162 static const char input1[] = { 0xC3, 0x84 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
163 static const char input2[] = { 0x41, 0xCC, 0x88 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
164
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
165 ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
166 }
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
167 { /* LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
168 static const char input1[] = { 0xC7, 0x9E };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
169 static const char input2[] = { 0x41, 0xCC, 0x88, 0xCC, 0x84 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
170
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
171 ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
172 }
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
173 { /* GREEK DIALYTIKA AND PERISPOMENI */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
174 static const char input1[] = { 0xE1, 0xBF, 0x81 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
175 static const char input2[] = { 0xC2, 0xA8, 0xCD, 0x82 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
176
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
177 ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
178 }
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
179 { /* HANGUL SYLLABLE GEUL */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
180 static const char input1[] = { 0xEA, 0xB8, 0x80 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
181 static const char input2[] = { 0xEA, 0xB7, 0xB8, 0xE1, 0x86, 0xAF };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
182 static const char input3[] = { 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xB3, 0xE1, 0x86, 0xAF };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
183
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
184 ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
185
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
186 ASSERT (my_casecmp (input1, SIZEOF (input1), input3, SIZEOF (input3)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
187 }
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
188 { /* HANGUL SYLLABLE GEU */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
189 static const char input1[] = { 0xEA, 0xB7, 0xB8 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
190 static const char input2[] = { 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xB3 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
191
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
192 ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
193 }
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
194 #endif
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
195
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
196 /* Simple string. */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
197 { /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
198 static const char input1[] =
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
199 { 'G', 'r', 0xC3, 0xBC, 0xC3, 0x9F, ' ', 'G', 'o', 't', 't', '.', ' ',
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
200 0xD0, 0x97, 0xD0, 0xB4, 0xD1, 0x80, 0xD0, 0xB0, 0xD0, 0xB2, 0xD1, 0x81,
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
201 0xD1, 0x82, 0xD0, 0xB2, 0xD1, 0x83, 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5,
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
202 '!', ' ', 'x', '=', '(', '-', 'b', 0xC2, 0xB1, 's', 'q', 'r', 't', '(',
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
203 'b', 0xC2, 0xB2, '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')',
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
204 ' ', ' ', 0xE6, 0x97, 0xA5, 0xE6, 0x9C, 0xAC, 0xE8, 0xAA, 0x9E, ',',
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
205 0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87, ',',
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
206 0xED, 0x95, 0x9C, 0xEA, 0xB8, 0x80, '\n'
11392
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
207 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
208 static const char input2[] =
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
209 { 'g', 'r', 0xC3, 0xBC, 0x73, 0x73, ' ', 'g', 'o', 't', 't', '.', ' ',
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
210 0xD0, 0xB7, 0xD0, 0xB4, 0xD1, 0x80, 0xD0, 0xB0, 0xD0, 0xB2, 0xD1, 0x81,
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
211 0xD1, 0x82, 0xD0, 0xB2, 0xD1, 0x83, 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5,
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
212 '!', ' ', 'x', '=', '(', '-', 'b', 0xC2, 0xB1, 's', 'q', 'r', 't', '(',
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
213 'b', 0xC2, 0xB2, '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')',
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
214 ' ', ' ', 0xE6, 0x97, 0xA5, 0xE6, 0x9C, 0xAC, 0xE8, 0xAA, 0x9E, ',',
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
215 0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87, ',',
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
216 0xED, 0x95, 0x9C, 0xEA, 0xB8, 0x80, '\n'
11392
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
217 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
218 static const char input3[] =
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
219 { 'G', 'R', 0xC3, 0x9C, 0x53, 0x53, ' ', 'G', 'O', 'T', 'T', '.', ' ',
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
220 0xD0, 0x97, 0xD0, 0x94, 0xD0, 0xA0, 0xD0, 0x90, 0xD0, 0x92, 0xD0, 0xA1,
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
221 0xD0, 0xA2, 0xD0, 0x92, 0xD0, 0xA3, 0xD0, 0x99, 0xD0, 0xA2, 0xD0, 0x95,
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
222 '!', ' ', 'X', '=', '(', '-', 'B', 0xC2, 0xB1, 'S', 'Q', 'R', 'T', '(',
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
223 'B', 0xC2, 0xB2, '-', '4', 'A', 'C', ')', ')', '/', '(', '2', 'A', ')',
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
224 ' ', ' ', 0xE6, 0x97, 0xA5, 0xE6, 0x9C, 0xAC, 0xE8, 0xAA, 0x9E, ',',
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
225 0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87, ',',
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
226 0xED, 0x95, 0x9C, 0xEA, 0xB8, 0x80, '\n'
11392
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
227 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
228
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
229 (void) input1;
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
230
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
231 #if 0 /* This functionality requires ulc_casecmp. */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
232 ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
233
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
234 ASSERT (my_casecmp (input1, SIZEOF (input1), input3, SIZEOF (input3)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
235 #endif
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
236
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
237 ASSERT (my_casecmp (input2, SIZEOF (input2), input3, SIZEOF (input3)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
238 }
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
239
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
240 #if 0 /* This functionality requires ulc_casecmp. */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
241 /* Case mapping can increase the number of Unicode characters. */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
242 { /* LATIN SMALL LETTER N PRECEDED BY APOSTROPHE */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
243 static const char input1[] = { 0xC5, 0x89 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
244 static const char input2[] = { 0xCA, 0xBC, 0x6E };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
245 static const char input3[] = { 0xCA, 0xBC, 0x4E };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
246
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
247 ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
248
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
249 ASSERT (my_casecmp (input1, SIZEOF (input1), input3, SIZEOF (input3)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
250 }
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
251 { /* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
252 static const char input1[] = { 0xCE, 0x90 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
253 static const char input2[] = { 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
254
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
255 ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
256 }
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
257 #endif
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
258
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
259 /* Turkish letters i İ ı I */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
260 { /* LATIN CAPITAL LETTER I */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
261 static const char input[] = { 0x49 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
262 static const char casefolded[] = { 0x69 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
263 static const char casefolded_tr[] = { 0xC4, 0xB1 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
264
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
265 if (!turkish)
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
266 ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
267 else
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
268 ASSERT (my_casecmp (input, SIZEOF (input), casefolded_tr, SIZEOF (casefolded_tr)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
269 }
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
270 { /* LATIN SMALL LETTER I */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
271 static const char input[] = { 0x69 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
272 static const char casefolded[] = { 0x49 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
273 static const char casefolded_tr[] = { 0xC4, 0xB0 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
274
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
275 if (!turkish)
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
276 ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
277 else
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
278 ASSERT (my_casecmp (input, SIZEOF (input), casefolded_tr, SIZEOF (casefolded_tr)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
279 }
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
280 { /* LATIN CAPITAL LETTER I WITH DOT ABOVE */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
281 static const char input[] = { 0xC4, 0xB0 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
282 static const char casefolded[] = { 0x69, 0xCC, 0x87 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
283 static const char casefolded_tr[] = { 0x69 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
284
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
285 (void) casefolded;
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
286
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
287 if (!turkish)
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
288 {
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
289 #if 0 /* This functionality requires ulc_casecmp. */
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
290 ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded)) == 0);
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
291 #endif
11392
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
292 }
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
293 else
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
294 ASSERT (my_casecmp (input, SIZEOF (input), casefolded_tr, SIZEOF (casefolded_tr)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
295 }
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
296 { /* LATIN SMALL LETTER DOTLESS I */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
297 static const char input[] = { 0xC4, 0xB1 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
298 static const char casefolded[] = { 0x49 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
299
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
300 if (!turkish)
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
301 ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded)) > 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
302 else
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
303 ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
304 }
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
305 { /* "topkapı" */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
306 static const char input[] =
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
307 { 0x54, 0x4F, 0x50, 0x4B, 0x41, 0x50, 0x49 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
308 static const char casefolded[] =
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
309 { 0x74, 0x6F, 0x70, 0x6B, 0x61, 0x70, 0xC4, 0xB1 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
310
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
311 if (!turkish)
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
312 ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded)) < 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
313 else
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
314 ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
315 }
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
316
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
317 #if 0 /* This functionality requires ulc_casecmp. */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
318 /* Uppercasing can increase the number of Unicode characters. */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
319 { /* "heiß" */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
320 static const char input1[] = { 0x68, 0x65, 0x69, 0xC3, 0x9F };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
321 static const char input2[] = { 0x68, 0x65, 0x69, 0x73, 0x73 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
322
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
323 ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
324 }
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
325 #endif
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
326
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
327 /* Case mappings for some characters can depend on the surrounding characters. */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
328 { /* "περισσότερες πληροφορίες" */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
329 static const char input1[] =
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
330 {
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
331 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x83,
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
332 0xCF, 0x8C, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB5, 0xCF, 0x82,
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
333 ' ', 0xCF, 0x80, 0xCE, 0xBB, 0xCE, 0xB7, 0xCF, 0x81, 0xCE, 0xBF,
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
334 0xCF, 0x86, 0xCE, 0xBF, 0xCF, 0x81, 0xCE, 0xAF, 0xCE, 0xB5, 0xCF, 0x82
11392
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
335 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
336 static const char input2[] =
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
337 {
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
338 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x83,
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
339 0xCF, 0x8C, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB5, 0xCF, 0x83,
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
340 ' ', 0xCF, 0x80, 0xCE, 0xBB, 0xCE, 0xB7, 0xCF, 0x81, 0xCE, 0xBF,
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
341 0xCF, 0x86, 0xCE, 0xBF, 0xCF, 0x81, 0xCE, 0xAF, 0xCE, 0xB5, 0xCF, 0x83
11392
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
342 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
343 static const char input3[] =
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
344 {
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
345 0xCE, 0xA0, 0xCE, 0x95, 0xCE, 0xA1, 0xCE, 0x99, 0xCE, 0xA3, 0xCE, 0xA3,
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
346 0xCE, 0x8C, 0xCE, 0xA4, 0xCE, 0x95, 0xCE, 0xA1, 0xCE, 0x95, 0xCE, 0xA3,
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
347 ' ', 0xCE, 0xA0, 0xCE, 0x9B, 0xCE, 0x97, 0xCE, 0xA1, 0xCE, 0x9F,
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11392
diff changeset
348 0xCE, 0xA6, 0xCE, 0x9F, 0xCE, 0xA1, 0xCE, 0x8A, 0xCE, 0x95, 0xCE, 0xA3
11392
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
349 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
350
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
351 (void) input1;
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
352
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
353 #if 0 /* This functionality requires ulc_casecmp. */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
354 ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
355
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
356 ASSERT (my_casecmp (input1, SIZEOF (input1), input3, SIZEOF (input3)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
357 #endif
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
358
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
359 ASSERT (my_casecmp (input2, SIZEOF (input2), input3, SIZEOF (input3)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
360 }
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
361
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
362 #if 0 /* This functionality requires ulc_casecmp. */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
363 /* Case mapping can require subsequent normalization. */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
364 { /* LATIN SMALL LETTER J WITH CARON, COMBINING DOT BELOW */
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
365 static const char input[] = { 0xC7, 0xB0, 0xCC, 0xA3 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
366 static const char casefolded[] = { 0x6A, 0xCC, 0x8C, 0xCC, 0xA3 };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
367 static const char casefolded_decomposed[] = { 0x6A, 0xCC, 0xA3, 0xCC, 0x8C };
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
368
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
369 ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
370
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
371 ASSERT (my_casecmp (input, SIZEOF (input), casefolded_decomposed, SIZEOF (casefolded_decomposed)) != 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
372
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
373 ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
374
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
375 ASSERT (my_casecmp (input, SIZEOF (input), casefolded_decomposed, SIZEOF (casefolded_decomposed)) == 0);
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
376 }
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
377 #endif
6193d36bf14c Restructure the mbmemcasecmp test.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
378 }