annotate tests/test-c-strcasestr.c @ 14079:97fc9a21a8fb

maint: update almost all copyright ranges to include 2011 Run the new "make update-copyright" rule.
author Jim Meyering <meyering@redhat.com>
date Sat, 01 Jan 2011 20:17:23 +0100
parents 1d8a613275c6
children bf7bdef206dd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8121
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1 /* Test of case-insensitive searching in a string.
14079
97fc9a21a8fb maint: update almost all copyright ranges to include 2011
Jim Meyering <meyering@redhat.com>
parents: 13772
diff changeset
2 Copyright (C) 2007-2011 Free Software Foundation, Inc.
8121
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
3
9309
bbbbbf4cd1c5 Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents: 8891
diff changeset
4 This program is free software: you can redistribute it and/or modify
8121
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5 it under the terms of the GNU General Public License as published by
9309
bbbbbf4cd1c5 Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents: 8891
diff changeset
6 the Free Software Foundation; either version 3 of the License, or
bbbbbf4cd1c5 Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents: 8891
diff changeset
7 (at your option) any later version.
8121
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
8
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
9 This program is distributed in the hope that it will be useful,
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
12 GNU General Public License for more details.
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
13
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
14 You should have received a copy of the GNU General Public License
9309
bbbbbf4cd1c5 Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents: 8891
diff changeset
15 along with this program. If not, see <http://www.gnu.org/licenses/>. */
8121
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
16
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
17 /* Written by Bruno Haible <bruno@clisp.org>, 2007. */
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
18
8891
633babea5f62 Unconditionally include <config.h> in unit tests.
Eric Blake <ebb9@byu.net>
parents: 8754
diff changeset
19 #include <config.h>
8121
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
20
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
21 #include "c-strcasestr.h"
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
22
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
23 #include <stdlib.h>
8144
cd97f59de27d Include <string.h>.
Bruno Haible <bruno@clisp.org>
parents: 8121
diff changeset
24 #include <string.h>
8121
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
25
12496
a48d3d749ca5 Refactor common macros used in tests.
Bruno Haible <bruno@clisp.org>
parents: 12421
diff changeset
26 #include "macros.h"
8121
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
27
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
28 int
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
29 main ()
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
30 {
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
31 {
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
32 const char input[] = "foo";
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
33 const char *result = c_strcasestr (input, "");
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
34 ASSERT (result == input);
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
35 }
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
36
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
37 {
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
38 const char input[] = "foo";
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
39 const char *result = c_strcasestr (input, "O");
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
40 ASSERT (result == input + 1);
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
41 }
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
42
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
43 {
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
44 const char input[] = "ABC ABCDAB ABCDABCDABDE";
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
45 const char *result = c_strcasestr (input, "ABCDaBD");
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
46 ASSERT (result == input + 15);
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
47 }
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
48
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
49 {
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
50 const char input[] = "ABC ABCDAB ABCDABCDABDE";
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
51 const char *result = c_strcasestr (input, "ABCDaBE");
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
52 ASSERT (result == NULL);
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
53 }
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
54
9630
729b6d4ffac1 Convert c-strcasestr to be more efficient.
Eric Blake <ebb9@byu.net>
parents: 9309
diff changeset
55 {
729b6d4ffac1 Convert c-strcasestr to be more efficient.
Eric Blake <ebb9@byu.net>
parents: 9309
diff changeset
56 const char input[] = "ABC ABCDAB ABCDABCDABDE";
729b6d4ffac1 Convert c-strcasestr to be more efficient.
Eric Blake <ebb9@byu.net>
parents: 9309
diff changeset
57 const char *result = c_strcasestr (input, "ABCDaBCD");
729b6d4ffac1 Convert c-strcasestr to be more efficient.
Eric Blake <ebb9@byu.net>
parents: 9309
diff changeset
58 ASSERT (result == input + 11);
729b6d4ffac1 Convert c-strcasestr to be more efficient.
Eric Blake <ebb9@byu.net>
parents: 9309
diff changeset
59 }
729b6d4ffac1 Convert c-strcasestr to be more efficient.
Eric Blake <ebb9@byu.net>
parents: 9309
diff changeset
60
13772
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13415
diff changeset
61 /* Check that a long periodic needle does not cause false positives. */
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13415
diff changeset
62 {
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13415
diff changeset
63 const char input[] = ("F_BD_CE_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD"
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13415
diff changeset
64 "_C3_88_20_EF_BF_BD_EF_BF_BD_EF_BF_BD"
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13415
diff changeset
65 "_C3_A7_20_EF_BF_BD");
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13415
diff changeset
66 const char need[] = "_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD";
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13415
diff changeset
67 const char *result = c_strcasestr (input, need);
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13415
diff changeset
68 ASSERT (result == NULL);
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13415
diff changeset
69 }
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13415
diff changeset
70 {
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13415
diff changeset
71 const char input[] = ("F_BD_CE_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD"
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13415
diff changeset
72 "_C3_88_20_EF_BF_BD_EF_BF_BD_EF_BF_BD"
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13415
diff changeset
73 "_C3_A7_20_EF_BF_BD_DA_B5_C2_A6_20"
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13415
diff changeset
74 "_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD");
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13415
diff changeset
75 const char need[] = "_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD";
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13415
diff changeset
76 const char *result = c_strcasestr (input, need);
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13415
diff changeset
77 ASSERT (result == input + 115);
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13415
diff changeset
78 }
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13415
diff changeset
79
8121
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
80 /* Check that a very long haystack is handled quickly if the needle is
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
81 short and occurs near the beginning. */
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
82 {
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
83 size_t repeat = 10000;
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
84 size_t m = 1000000;
13415
a884db63982b Avoid some more warnings from "gcc -Wwrite-strings".
Bruno Haible <bruno@clisp.org>
parents: 12559
diff changeset
85 const char *needle =
8121
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
86 "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
87 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaaaaaAAAAaaaaaaa"
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
88 "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
89 char *haystack = (char *) malloc (m + 1);
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
90 if (haystack != NULL)
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
91 {
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9889
diff changeset
92 memset (haystack, 'A', m);
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9889
diff changeset
93 haystack[0] = 'B';
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9889
diff changeset
94 haystack[m] = '\0';
8121
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
95
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9889
diff changeset
96 for (; repeat > 0; repeat--)
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9889
diff changeset
97 {
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9889
diff changeset
98 ASSERT (c_strcasestr (haystack, needle) == haystack + 1);
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9889
diff changeset
99 }
8121
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
100
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9889
diff changeset
101 free (haystack);
8121
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
102 }
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
103 }
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
104
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
105 /* Check that a very long needle is discarded quickly if the haystack is
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
106 short. */
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
107 {
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
108 size_t repeat = 10000;
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
109 size_t m = 1000000;
13415
a884db63982b Avoid some more warnings from "gcc -Wwrite-strings".
Bruno Haible <bruno@clisp.org>
parents: 12559
diff changeset
110 const char *haystack =
8121
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
111 "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
112 "ABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB";
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
113 char *needle = (char *) malloc (m + 1);
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
114 if (needle != NULL)
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
115 {
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9889
diff changeset
116 memset (needle, 'A', m);
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9889
diff changeset
117 needle[m] = '\0';
8121
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
118
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9889
diff changeset
119 for (; repeat > 0; repeat--)
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9889
diff changeset
120 {
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9889
diff changeset
121 ASSERT (c_strcasestr (haystack, needle) == NULL);
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9889
diff changeset
122 }
8121
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
123
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9889
diff changeset
124 free (needle);
8121
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
125 }
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
126 }
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
127
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
128 /* Check that the asymptotic worst-case complexity is not quadratic. */
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
129 {
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
130 size_t m = 1000000;
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
131 char *haystack = (char *) malloc (2 * m + 2);
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
132 char *needle = (char *) malloc (m + 2);
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
133 if (haystack != NULL && needle != NULL)
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
134 {
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9889
diff changeset
135 const char *result;
8121
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
136
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9889
diff changeset
137 memset (haystack, 'A', 2 * m);
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9889
diff changeset
138 haystack[2 * m] = 'B';
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9889
diff changeset
139 haystack[2 * m + 1] = '\0';
8121
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
140
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9889
diff changeset
141 memset (needle, 'a', m);
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9889
diff changeset
142 needle[m] = 'B';
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9889
diff changeset
143 needle[m + 1] = '\0';
8121
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
144
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9889
diff changeset
145 result = c_strcasestr (haystack, needle);
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9889
diff changeset
146 ASSERT (result == haystack + m);
8121
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
147 }
9749
daf5ba9fe2d9 Remove useless "if" tests before free. Deprecate "free" module.
Jim Meyering <meyering@redhat.com>
parents: 9630
diff changeset
148 free (needle);
daf5ba9fe2d9 Remove useless "if" tests before free. Deprecate "free" module.
Jim Meyering <meyering@redhat.com>
parents: 9630
diff changeset
149 free (haystack);
8121
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
150 }
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
151
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
152 return 0;
81d42903aca5 Tests for module 'c-strcasestr'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
153 }