1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
20 { (const char *)0, 0 },
24 { "abcdefg\0hijk", 7 }
29 printf("Test 001 (PL_strlen) ..."); fflush(stdout
);
31 for( i
= 0; i
< sizeof(array
)/sizeof(array
[0]); i
++ )
33 if( PL_strlen(array
[i
].str
) != array
[i
].len
)
35 printf("FAIL (%d: %s->%d, %d)\n", i
,
36 array
[i
].str
? array
[i
].str
: "(null)",
37 PL_strlen(array
[i
].str
), array
[i
].len
);
56 { (const char *)0, 0, 0 },
57 { (const char *)0, 12, 0 },
67 { "abcdefg\0hijk", 0, 0 },
68 { "abcdefg\0hijk", 1, 1 },
69 { "abcdefg\0hijk", 7, 7 },
70 { "abcdefg\0hijk", 12, 7 },
75 printf("Test 002 (PL_strnlen) ..."); fflush(stdout
);
77 for( i
= 0; i
< sizeof(array
)/sizeof(array
[0]); i
++ )
79 if( PL_strnlen(array
[i
].str
, array
[i
].max
) != array
[i
].len
)
81 printf("FAIL (%d: %s,%d->%d, %d)\n", i
,
82 array
[i
].str
? array
[i
].str
: "(null)", array
[i
].max
,
83 PL_strnlen(array
[i
].str
, array
[i
].max
), array
[i
].len
);
95 static char buffer
[ 1024 ];
105 { (const char *)0, (char *)0, (char *)0, PR_FALSE
},
106 { (const char *)0, buffer
, (char *)0, PR_FALSE
},
107 { "", (char *)0, (char *)0, PR_FALSE
},
108 { "", buffer
, buffer
, PR_TRUE
},
109 { "a", (char *)0, (char *)0, PR_FALSE
},
110 { "a", buffer
, buffer
, PR_TRUE
},
111 { "abcdefg", (char *)0, (char *)0, PR_FALSE
},
112 { "abcdefg", buffer
, buffer
, PR_TRUE
},
113 { "wxyz\0abcdefg", (char *)0, (char *)0, PR_FALSE
},
114 { "wxyz\0abcdefg", buffer
, buffer
, PR_TRUE
}
119 printf("Test 003 (PL_strcpy) ..."); fflush(stdout
);
121 for( i
= 0; i
< sizeof(array
)/sizeof(array
[0]); i
++ )
124 const char *a
= array
[i
].str
;
125 const char *b
= (const char *)array
[i
].dest
;
127 rv
= PL_strcpy(array
[i
].dest
, array
[i
].str
);
128 if( array
[i
].rv
!= rv
)
130 printf("FAIL %d: (0x%x, %s)->0x%x\n", i
, array
[i
].dest
,
131 array
[i
].str
? array
[i
].str
: "(null)", rv
);
141 printf("FAIL %d: %s->%.32s\n", i
,
142 array
[i
].str
? array
[i
].str
: "(null)",
143 array
[i
].dest
? array
[i
].dest
: "(null)");
147 if( (char)0 == *a
) {
162 PRBool
test_004(void)
164 static char buffer
[ 1024 ];
177 { (const char *)0, 0, (char *)0, (char *)0, PR_FALSE
, (const char *)0, PR_FALSE
},
178 { (const char *)0, 0, buffer
, (char *)0, PR_FALSE
, (const char *)0, PR_FALSE
},
179 { (const char *)0, 1, (char *)0, (char *)0, PR_FALSE
, (const char *)0, PR_FALSE
},
180 { (const char *)0, 7, (char *)0, (char *)0, PR_FALSE
, (const char *)0, PR_FALSE
},
181 { (const char *)0, 1, buffer
, (char *)0, PR_FALSE
, (const char *)0, PR_FALSE
},
182 { (const char *)0, 7, buffer
, (char *)0, PR_FALSE
, (const char *)0, PR_FALSE
},
183 { "", 0, (char *)0, (char *)0, PR_FALSE
, (const char *)0, PR_FALSE
},
184 { "", 0, buffer
, buffer
, PR_FALSE
, (const char *)0, PR_FALSE
},
185 { "", 1, (char *)0, (char *)0, PR_FALSE
, (const char *)0, PR_FALSE
},
186 { "", 7, (char *)0, (char *)0, PR_FALSE
, (const char *)0, PR_FALSE
},
187 { "", 1, buffer
, buffer
, PR_TRUE
, "", PR_TRUE
},
188 { "", 7, buffer
, buffer
, PR_TRUE
, "", PR_TRUE
},
189 { "a", 0, (char *)0, (char *)0, PR_FALSE
, (const char *)0, PR_FALSE
},
190 { "a", 0, buffer
, buffer
, PR_FALSE
, (const char *)0, PR_FALSE
},
191 { "a", 1, (char *)0, (char *)0, PR_FALSE
, (const char *)0, PR_FALSE
},
192 { "a", 7, (char *)0, (char *)0, PR_FALSE
, (const char *)0, PR_FALSE
},
193 { "b", 1, buffer
, buffer
, PR_TRUE
, "b", PR_FALSE
},
194 { "c", 7, buffer
, buffer
, PR_TRUE
, "c", PR_TRUE
},
195 { "de", 0, (char *)0, (char *)0, PR_FALSE
, (const char *)0, PR_FALSE
},
196 { "de", 0, buffer
, buffer
, PR_FALSE
, (const char *)0, PR_FALSE
},
197 { "de", 1, (char *)0, (char *)0, PR_FALSE
, (const char *)0, PR_FALSE
},
198 { "de", 7, (char *)0, (char *)0, PR_FALSE
, (const char *)0, PR_FALSE
},
199 { "fg", 1, buffer
, buffer
, PR_TRUE
, "f", PR_FALSE
},
200 { "hi", 7, buffer
, buffer
, PR_TRUE
, "hi", PR_TRUE
},
201 { "jklmnopq", 0, (char *)0, (char *)0, PR_FALSE
, (const char *)0, PR_FALSE
},
202 { "jklmnopq", 0, buffer
, buffer
, PR_FALSE
, (const char *)0, PR_FALSE
},
203 { "jklmnopq", 1, (char *)0, (char *)0, PR_FALSE
, (const char *)0, PR_FALSE
},
204 { "jklmnopq", 7, (char *)0, (char *)0, PR_FALSE
, (const char *)0, PR_FALSE
},
205 { "rstuvwxy", 1, buffer
, buffer
, PR_TRUE
, "r", PR_FALSE
},
206 { "zABCDEFG", 7, buffer
, buffer
, PR_TRUE
, "zABCDEF", PR_FALSE
},
207 { "a\0XXX", 0, (char *)0, (char *)0, PR_FALSE
, (const char *)0, PR_FALSE
},
208 { "a\0XXX", 0, buffer
, buffer
, PR_FALSE
, (const char *)0, PR_FALSE
},
209 { "a\0XXX", 1, (char *)0, (char *)0, PR_FALSE
, (const char *)0, PR_FALSE
},
210 { "a\0XXX", 7, (char *)0, (char *)0, PR_FALSE
, (const char *)0, PR_FALSE
},
211 { "b\0XXX", 1, buffer
, buffer
, PR_TRUE
, "b", PR_FALSE
},
212 { "c\0XXX", 7, buffer
, buffer
, PR_TRUE
, "c", PR_TRUE
},
213 { "de\0XXX", 0, (char *)0, (char *)0, PR_FALSE
, (const char *)0, PR_FALSE
},
214 { "de\0XXX", 0, buffer
, buffer
, PR_FALSE
, (const char *)0, PR_FALSE
},
215 { "de\0XXX", 1, (char *)0, (char *)0, PR_FALSE
, (const char *)0, PR_FALSE
},
216 { "de\0XXX", 7, (char *)0, (char *)0, PR_FALSE
, (const char *)0, PR_FALSE
},
217 { "fg\0XXX", 1, buffer
, buffer
, PR_TRUE
, "f", PR_FALSE
},
218 { "hi\0XXX", 7, buffer
, buffer
, PR_TRUE
, "hi", PR_TRUE
},
219 { "jklmnopq\0XXX", 0, (char *)0, (char *)0, PR_FALSE
, (const char *)0, PR_FALSE
},
220 { "jklmnopq\0XXX", 0, buffer
, buffer
, PR_FALSE
, (const char *)0, PR_FALSE
},
221 { "jklmnopq\0XXX", 1, (char *)0, (char *)0, PR_FALSE
, (const char *)0, PR_FALSE
},
222 { "jklmnopq\0XXX", 7, (char *)0, (char *)0, PR_FALSE
, (const char *)0, PR_FALSE
},
223 { "rstuvwxy\0XXX", 1, buffer
, buffer
, PR_TRUE
, "r", PR_FALSE
},
224 { "zABCDEFG\0XXX", 7, buffer
, buffer
, PR_TRUE
, "zABCDEF", PR_FALSE
},
229 printf("Test 004 (PL_strncpy) ..."); fflush(stdout
);
231 for( i
= 0; i
< sizeof(array
)/sizeof(array
[0]); i
++ )
236 for( j
= 0; j
< sizeof(buffer
); j
++ ) {
240 rv
= PL_strncpy(array
[i
].dest
, array
[i
].str
, array
[i
].len
);
241 if( array
[i
].rv
!= rv
)
243 printf("FAIL %d: (0x%x, %s, %lu)->0x%x\n", i
, array
[i
].dest
,
244 array
[i
].str
? array
[i
].str
: "(null)", array
[i
].len
, rv
);
250 const char *a
= array
[i
].result
;
251 const char *b
= array
[i
].dest
;
257 printf("FAIL %d: %s != %.32s\n", i
,
258 array
[i
].result
, array
[i
].dest
);
266 if( array
[i
].nulled
)
270 printf("FAIL %d: not terminated\n", i
);
278 printf("FAIL %d: overstepped\n", i
);
290 PRBool
test_005(void)
292 static char buffer
[ 1024 ];
304 { (const char *)0, 0, (char *)0, (char *)0, PR_FALSE
, (const char *)0 },
305 { (const char *)0, 0, buffer
, (char *)0, PR_FALSE
, (const char *)0 },
306 { (const char *)0, 1, (char *)0, (char *)0, PR_FALSE
, (const char *)0 },
307 { (const char *)0, 7, (char *)0, (char *)0, PR_FALSE
, (const char *)0 },
308 { (const char *)0, 1, buffer
, (char *)0, PR_FALSE
, (const char *)0 },
309 { (const char *)0, 7, buffer
, (char *)0, PR_FALSE
, (const char *)0 },
310 { "", 0, (char *)0, (char *)0, PR_FALSE
, (const char *)0 },
311 { "", 0, buffer
, (char *)0, PR_FALSE
, (const char *)0 },
312 { "", 1, (char *)0, (char *)0, PR_FALSE
, (const char *)0 },
313 { "", 7, (char *)0, (char *)0, PR_FALSE
, (const char *)0 },
314 { "", 1, buffer
, buffer
, PR_TRUE
, "" },
315 { "", 7, buffer
, buffer
, PR_TRUE
, "" },
316 { "a", 0, (char *)0, (char *)0, PR_FALSE
, (const char *)0 },
317 { "a", 0, buffer
, (char *)0, PR_FALSE
, (const char *)0 },
318 { "a", 1, (char *)0, (char *)0, PR_FALSE
, (const char *)0 },
319 { "a", 7, (char *)0, (char *)0, PR_FALSE
, (const char *)0 },
320 { "b", 1, buffer
, buffer
, PR_TRUE
, "" },
321 { "c", 7, buffer
, buffer
, PR_TRUE
, "c" },
322 { "de", 0, (char *)0, (char *)0, PR_FALSE
, (const char *)0 },
323 { "de", 0, buffer
, (char *)0, PR_FALSE
, (const char *)0 },
324 { "de", 1, (char *)0, (char *)0, PR_FALSE
, (const char *)0 },
325 { "de", 7, (char *)0, (char *)0, PR_FALSE
, (const char *)0 },
326 { "fg", 1, buffer
, buffer
, PR_TRUE
, "" },
327 { "hi", 7, buffer
, buffer
, PR_TRUE
, "hi" },
328 { "jklmnopq", 0, (char *)0, (char *)0, PR_FALSE
, (const char *)0 },
329 { "jklmnopq", 0, buffer
, (char *)0, PR_FALSE
, (const char *)0 },
330 { "jklmnopq", 1, (char *)0, (char *)0, PR_FALSE
, (const char *)0 },
331 { "jklmnopq", 7, (char *)0, (char *)0, PR_FALSE
, (const char *)0 },
332 { "rstuvwxy", 1, buffer
, buffer
, PR_TRUE
, "" },
333 { "zABCDEFG", 7, buffer
, buffer
, PR_TRUE
, "zABCDE" },
334 { "a\0XXX", 0, (char *)0, (char *)0, PR_FALSE
, (const char *)0 },
335 { "a\0XXX", 0, buffer
, (char *)0, PR_FALSE
, (const char *)0 },
336 { "a\0XXX", 1, (char *)0, (char *)0, PR_FALSE
, (const char *)0 },
337 { "a\0XXX", 7, (char *)0, (char *)0, PR_FALSE
, (const char *)0 },
338 { "b\0XXX", 1, buffer
, buffer
, PR_TRUE
, "" },
339 { "c\0XXX", 7, buffer
, buffer
, PR_TRUE
, "c" },
340 { "de\0XXX", 0, (char *)0, (char *)0, PR_FALSE
, (const char *)0 },
341 { "de\0XXX", 0, buffer
, (char *)0, PR_FALSE
, (const char *)0 },
342 { "de\0XXX", 1, (char *)0, (char *)0, PR_FALSE
, (const char *)0 },
343 { "de\0XXX", 7, (char *)0, (char *)0, PR_FALSE
, (const char *)0 },
344 { "fg\0XXX", 1, buffer
, buffer
, PR_TRUE
, "" },
345 { "hi\0XXX", 7, buffer
, buffer
, PR_TRUE
, "hi" },
346 { "jklmnopq\0XXX", 0, (char *)0, (char *)0, PR_FALSE
, (const char *)0 },
347 { "jklmnopq\0XXX", 0, buffer
, (char *)0, PR_FALSE
, (const char *)0 },
348 { "jklmnopq\0XXX", 1, (char *)0, (char *)0, PR_FALSE
, (const char *)0 },
349 { "jklmnopq\0XXX", 7, (char *)0, (char *)0, PR_FALSE
, (const char *)0 },
350 { "rstuvwxy\0XXX", 1, buffer
, buffer
, PR_TRUE
, "" },
351 { "zABCDEFG\0XXX", 7, buffer
, buffer
, PR_TRUE
, "zABCDE" },
356 printf("Test 005 (PL_strncpyz) ..."); fflush(stdout
);
358 for( i
= 0; i
< sizeof(array
)/sizeof(array
[0]); i
++ )
363 for( j
= 0; j
< sizeof(buffer
); j
++ ) {
367 rv
= PL_strncpyz(array
[i
].dest
, array
[i
].str
, array
[i
].len
);
368 if( array
[i
].rv
!= rv
)
370 printf("FAIL %d: (0x%x, %s, %lu)->0x%x\n", i
, array
[i
].dest
,
371 array
[i
].str
? array
[i
].str
: "(null)", array
[i
].len
, rv
);
377 const char *a
= array
[i
].result
;
378 const char *b
= array
[i
].dest
;
384 printf("FAIL %d: %s != %.32s\n", i
,
385 array
[i
].result
, array
[i
].dest
);
389 if( (char)0 == *a
) {
404 PRBool
test_006(void)
406 static const char *array
[] =
416 printf("Test 006 (PL_strdup) ..."); fflush(stdout
);
418 for( i
= 0; i
< sizeof(array
)/sizeof(array
[0]); i
++ )
420 char *rv
= PL_strdup(array
[i
]);
422 if( (char *)0 == rv
)
424 printf("FAIL %d: 0x%x -> 0\n", i
, array
[i
]);
428 if( (const char *)0 == array
[i
] )
432 printf("FAIL %d: (const char *)0 -> %.32s\n", i
, rv
);
438 const char *a
= array
[i
];
439 const char *b
= (const char *)rv
;
445 printf("FAIL %d: %s != %.32s\n", i
, array
[i
], rv
);
449 if( (char)0 == *a
) {
466 PRBool
test_007(void)
475 { (const char *)0, 0, "" },
476 { (const char *)0, 1, "" },
477 { (const char *)0, 7, "" },
487 { "abcdefg", 0, "" },
488 { "abcdefg", 1, "a" },
489 { "abcdefg", 7, "abcdefg" },
490 { "abcdefghijk", 0, "" },
491 { "abcdefghijk", 1, "a" },
492 { "abcdefghijk", 7, "abcdefg" },
493 { "abcdef\0ghijk", 0, "" },
494 { "abcdef\0ghijk", 1, "a" },
495 { "abcdef\0ghijk", 7, "abcdef" }
500 printf("Test 007 (PL_strndup) ..."); fflush(stdout
);
502 for( i
= 0; i
< sizeof(array
)/sizeof(array
[0]); i
++ )
504 char *rv
= PL_strndup(array
[i
].str
, array
[i
].len
);
508 if( (char *)0 == rv
)
510 printf("FAIL %d: %s,%lu -> 0\n", i
,
511 array
[i
].str
? array
[i
].str
: "(null)", array
[i
].len
);
516 b
= (const char *)rv
;
522 printf("FAIL %d: %s != %.32s\n", i
, array
[i
].result
, rv
);
526 if( (char)0 == *a
) {
542 PRBool
test_008(void)
551 { (const char *)0, (const char *)0, (const char *)0 },
552 { (const char *)0, "xyz", (const char *)0 },
553 { "", (const char *)0, "" },
556 { "cd", "ef", "cdef" },
557 { "gh\0X", "", "gh" },
558 { "ij\0X", "kl", "ijkl" },
559 { "mn\0X", "op\0X", "mnop" },
560 { "qr", "st\0X", "qrst" },
561 { "uv\0X", "wx\0X", "uvwx" }
566 printf("Test 008 (PL_strcat) ..."); fflush(stdout
);
568 for( i
= 0; i
< sizeof(array
)/sizeof(array
[0]); i
++ )
574 for( j
= 0; j
< sizeof(buffer
); j
++ ) {
578 if( (const char *)0 != array
[i
].first
) {
579 (void)PL_strcpy(buffer
, array
[i
].first
);
582 rv
= PL_strcat(((const char *)0 == array
[i
].first
) ? (char *)0 : buffer
,
585 if( (const char *)0 == array
[i
].result
)
587 if( (char *)0 != rv
)
589 printf("FAIL %d: %s+%s -> %.32s, not zero\n", i
,
590 array
[i
].first
? array
[i
].first
: "(null)",
591 array
[i
].second
? array
[i
].second
: "(null)",
598 if( (char *)0 == rv
)
600 printf("FAIL %d: %s+%s -> null, not %s\n", i
,
601 array
[i
].first
? array
[i
].first
: "(null)",
602 array
[i
].second
? array
[i
].second
: "(null)",
608 const char *a
= array
[i
].result
;
609 const char *b
= (const char *)rv
;
615 printf("FAIL %d: %s+%s -> %.32s, not %s\n", i
,
616 array
[i
].first
? array
[i
].first
: "(null)",
617 array
[i
].second
? array
[i
].second
: "(null)",
618 rv
, array
[i
].result
);
622 if( (char)0 == *a
) {
638 PRBool
test_009(void)
649 { (const char *)0, (const char *)0, 0, PR_FALSE
, (const char *)0 },
650 { (const char *)0, (const char *)0, 1, PR_FALSE
, (const char *)0 },
651 { (const char *)0, (const char *)0, 7, PR_FALSE
, (const char *)0 },
652 { (const char *)0, "", 0, PR_FALSE
, (const char *)0 },
653 { (const char *)0, "", 1, PR_FALSE
, (const char *)0 },
654 { (const char *)0, "", 7, PR_FALSE
, (const char *)0 },
655 { (const char *)0, "stuff", 0, PR_FALSE
, (const char *)0 },
656 { (const char *)0, "stuff", 1, PR_FALSE
, (const char *)0 },
657 { (const char *)0, "stuff", 7, PR_FALSE
, (const char *)0 },
658 { "", (const char *)0, 0, PR_TRUE
, "" },
659 { "", (const char *)0, 1, PR_TRUE
, "" },
660 { "", (const char *)0, 7, PR_TRUE
, "" },
661 { "", "", 0, PR_TRUE
, "" },
662 { "", "", 1, PR_TRUE
, "" },
663 { "", "", 7, PR_TRUE
, "" },
664 { "", "abcdefgh", 0, PR_TRUE
, "" },
665 { "", "abcdefgh", 1, PR_FALSE
, "a" },
666 { "", "abcdefgh", 7, PR_FALSE
, "abcdefg" },
667 { "xyz", (const char *)0, 0, PR_TRUE
, "xyz" },
668 { "xyz", (const char *)0, 1, PR_TRUE
, "xyz" },
669 { "xyz", (const char *)0, 7, PR_TRUE
, "xyz" },
670 { "xyz", "", 0, PR_TRUE
, "xyz" },
671 { "xyz", "", 1, PR_TRUE
, "xyz" },
672 { "xyz", "", 7, PR_TRUE
, "xyz" },
673 { "xyz", "abcdefgh", 0, PR_TRUE
, "xyz" },
674 { "xyz", "abcdefgh", 1, PR_FALSE
, "xyza" },
675 { "xyz", "abcdefgh", 7, PR_FALSE
, "xyzabcdefg" }
680 printf("Test 009 (PL_strncat) ..."); fflush(stdout
);
682 for( i
= 0; i
< sizeof(array
)/sizeof(array
[0]); i
++ )
688 for( j
= 0; j
< sizeof(buffer
); j
++ ) {
692 if( (const char *)0 != array
[i
].first
) {
693 (void)PL_strcpy(buffer
, array
[i
].first
);
696 rv
= PL_strncat(((const char *)0 == array
[i
].first
) ? (char *)0 : buffer
,
697 array
[i
].second
, array
[i
].length
);
699 if( (const char *)0 == array
[i
].result
)
701 if( (char *)0 != rv
)
703 printf("FAIL %d: %s+%s/%lu -> %.32s, not zero\n", i
,
704 array
[i
].first
? array
[i
].first
: "(null)",
705 array
[i
].second
? array
[i
].second
: "(null)",
706 array
[i
].length
, rv
);
712 if( (char *)0 == rv
)
714 printf("FAIL %d: %s+%s/%lu -> null, not %s\n", i
,
715 array
[i
].first
? array
[i
].first
: "(null)",
716 array
[i
].second
? array
[i
].second
: "(null)",
717 array
[i
].length
, array
[i
].result
);
722 const char *a
= array
[i
].result
;
723 const char *b
= (const char *)rv
;
729 printf("FAIL %d: %s+%s/%lu -> %.32s, not %s\n", i
,
730 array
[i
].first
? array
[i
].first
: "(null)",
731 array
[i
].second
? array
[i
].second
: "(null)",
732 array
[i
].length
, rv
, array
[i
].result
);
740 if( array
[i
].nulled
)
744 printf("FAIL %d: %s+%s/%lu -> not nulled\n", i
,
745 array
[i
].first
? array
[i
].first
: "(null)",
746 array
[i
].second
? array
[i
].second
: "(null)",
755 printf("FAIL %d: %s+%s/%lu -> overrun\n", i
,
756 array
[i
].first
? array
[i
].first
: "(null)",
757 array
[i
].second
? array
[i
].second
: "(null)",
771 PRBool
test_010(void)
781 { (const char *)0, (const char *)0, 0, (const char *)0 },
782 { (const char *)0, (const char *)0, 1, (const char *)0 },
783 { (const char *)0, (const char *)0, 7, (const char *)0 },
784 { (const char *)0, "", 0, (const char *)0 },
785 { (const char *)0, "", 1, (const char *)0 },
786 { (const char *)0, "", 7, (const char *)0 },
787 { (const char *)0, "stuff", 0, (const char *)0 },
788 { (const char *)0, "stuff", 1, (const char *)0 },
789 { (const char *)0, "stuff", 7, (const char *)0 },
790 { "", (const char *)0, 0, "" },
791 { "", (const char *)0, 1, "" },
792 { "", (const char *)0, 7, "" },
796 { "", "abcdefgh", 0, "" },
797 { "", "abcdefgh", 1, "" },
798 { "", "abcdefgh", 7, "abcdef" },
799 { "xyz", (const char *)0, 0, "xyz" },
800 { "xyz", (const char *)0, 1, "xyz" },
801 { "xyz", (const char *)0, 7, "xyz" },
802 { "xyz", "", 0, "xyz" },
803 { "xyz", "", 1, "xyz" },
804 { "xyz", "", 7, "xyz" },
805 { "xyz", "abcdefgh", 0, "xyz" },
806 { "xyz", "abcdefgh", 1, "xyz" },
807 { "xyz", "abcdefgh", 7, "xyzabc" }
812 printf("Test 010 (PL_strcatn) ..."); fflush(stdout
);
814 for( i
= 0; i
< sizeof(array
)/sizeof(array
[0]); i
++ )
820 for( j
= 0; j
< sizeof(buffer
); j
++ ) {
824 if( (const char *)0 != array
[i
].first
) {
825 (void)PL_strcpy(buffer
, array
[i
].first
);
828 rv
= PL_strcatn(((const char *)0 == array
[i
].first
) ? (char *)0 : buffer
,
829 array
[i
].length
, array
[i
].second
);
831 if( (const char *)0 == array
[i
].result
)
833 if( (char *)0 != rv
)
835 printf("FAIL %d: %s+%s/%lu -> %.32s, not zero\n", i
,
836 array
[i
].first
? array
[i
].first
: "(null)",
837 array
[i
].second
? array
[i
].second
: "(null)",
838 array
[i
].length
, rv
);
844 if( (char *)0 == rv
)
846 printf("FAIL %d: %s+%s/%lu -> null, not %s\n", i
,
847 array
[i
].first
? array
[i
].first
: "(null)",
848 array
[i
].second
? array
[i
].second
: "(null)",
849 array
[i
].length
, array
[i
].result
);
854 const char *a
= array
[i
].result
;
855 const char *b
= (const char *)rv
;
861 printf("FAIL %d: %s+%s/%lu -> %.32s, not %s\n", i
,
862 array
[i
].first
? array
[i
].first
: "(null)",
863 array
[i
].second
? array
[i
].second
: "(null)",
864 array
[i
].length
, rv
, array
[i
].result
);
868 if( (char)0 == *a
) {
884 PRBool
test_011(void)
893 { (const char *)0, (const char *)0, 0 },
894 { (const char *)0, "word", -1 },
895 { "word", (const char *)0, 1 },
896 { "word", "word", 0 },
897 { "aZYXVUT", "bZYXVUT", -1 },
898 { "aZYXVUT", "bAAAAAA", -1 },
902 { "aaaaa", "baaaa", -1 },
903 { "aaaaa", "abaaa", -1 },
904 { "aaaaa", "aabaa", -1 },
905 { "aaaaa", "aaaba", -1 },
906 { "aaaaa", "aaaab", -1 },
907 { "bZYXVUT", "aZYXVUT", 1 },
908 { "bAAAAAA", "aZYXVUT", 1 },
911 { "baaaa", "aaaaa", 1 },
912 { "abaaa", "aaaaa", 1 },
913 { "aabaa", "aaaaa", 1 },
914 { "aaaba", "aaaaa", 1 },
915 { "aaaab", "aaaaa", 1 },
916 { "word", "Word", 1 },
917 { "word", "wOrd", 1 },
918 { "word", "woRd", 1 },
919 { "word", "worD", 1 },
920 { "WORD", "wORD", -1 },
921 { "WORD", "WoRD", -1 },
922 { "WORD", "WOrD", -1 },
923 { "WORD", "WORd", -1 }
928 printf("Test 011 (PL_strcmp) ..."); fflush(stdout
);
930 for( i
= 0; i
< sizeof(array
)/sizeof(array
[0]); i
++ )
932 PRIntn rv
= PL_strcmp(array
[i
].one
, array
[i
].two
);
934 switch( array
[i
].sign
)
952 PR_NOT_REACHED("static data inconsistancy");
956 printf("FAIL %d: %s-%s -> %d, not %d\n", i
,
957 array
[i
].one
? array
[i
].one
: "(null)",
958 array
[i
].two
? array
[i
].two
: "(null)",
968 PRBool
test_012(void)
978 { (const char *)0, (const char *)0, 0, 0 },
979 { (const char *)0, (const char *)0, 1, 0 },
980 { (const char *)0, (const char *)0, 4, 0 },
981 { (const char *)0, "word", 0, -1 },
982 { (const char *)0, "word", 1, -1 },
983 { (const char *)0, "word", 4, -1 },
984 { "word", (const char *)0, 0, 1 },
985 { "word", (const char *)0, 1, 1 },
986 { "word", (const char *)0, 4, 1 },
987 { "word", "word", 0, 0 },
988 { "word", "word", 1, 0 },
989 { "word", "word", 3, 0 },
990 { "word", "word", 5, 0 },
991 { "aZYXVUT", "bZYXVUT", 0, 0 },
992 { "aZYXVUT", "bZYXVUT", 1, -1 },
993 { "aZYXVUT", "bZYXVUT", 4, -1 },
994 { "aZYXVUT", "bZYXVUT", 9, -1 },
995 { "aZYXVUT", "bAAAAAA", 0, 0 },
996 { "aZYXVUT", "bAAAAAA", 1, -1 },
997 { "aZYXVUT", "bAAAAAA", 4, -1 },
998 { "aZYXVUT", "bAAAAAA", 5, -1 },
1000 { "a", "aa", 1, 0 },
1001 { "a", "aa", 4, -1 },
1008 { "aaaaa", "baaaa", 0, 0 },
1009 { "aaaaa", "baaaa", 1, -1 },
1010 { "aaaaa", "baaaa", 4, -1 },
1011 { "aaaaa", "abaaa", 0, 0 },
1012 { "aaaaa", "abaaa", 1, 0 },
1013 { "aaaaa", "abaaa", 4, -1 },
1014 { "aaaaa", "aabaa", 0, 0 },
1015 { "aaaaa", "aabaa", 1, 0 },
1016 { "aaaaa", "aabaa", 4, -1 },
1017 { "aaaaa", "aaaba", 0, 0 },
1018 { "aaaaa", "aaaba", 1, 0 },
1019 { "aaaaa", "aaaba", 4, -1 },
1020 { "aaaaa", "aaaab", 0, 0 },
1021 { "aaaaa", "aaaab", 1, 0 },
1022 { "aaaaa", "aaaab", 4, 0 },
1023 { "bZYXVUT", "aZYXVUT", 0, 0 },
1024 { "bZYXVUT", "aZYXVUT", 1, 1 },
1025 { "bZYXVUT", "aZYXVUT", 4, 1 },
1026 { "bAAAAAA", "aZYXVUT", 0, 0 },
1027 { "bAAAAAA", "aZYXVUT", 1, 1 },
1028 { "bAAAAAA", "aZYXVUT", 4, 1 },
1029 { "aa", "a", 0, 0 },
1030 { "aa", "a", 1, 0 },
1031 { "aa", "a", 4, 1 },
1033 { "A", "a", 1, -1 },
1034 { "A", "a", 4, -1 },
1035 { "baaaa", "aaaaa", 0, 0 },
1036 { "baaaa", "aaaaa", 1, 1 },
1037 { "baaaa", "aaaaa", 4, 1 },
1038 { "abaaa", "aaaaa", 0, 0 },
1039 { "abaaa", "aaaaa", 1, 0 },
1040 { "abaaa", "aaaaa", 4, 1 },
1041 { "aabaa", "aaaaa", 0, 0 },
1042 { "aabaa", "aaaaa", 1, 0 },
1043 { "aabaa", "aaaaa", 4, 1 },
1044 { "aaaba", "aaaaa", 0, 0 },
1045 { "aaaba", "aaaaa", 1, 0 },
1046 { "aaaba", "aaaaa", 4, 1 },
1047 { "aaaab", "aaaaa", 0, 0 },
1048 { "aaaab", "aaaaa", 1, 0 },
1049 { "aaaab", "aaaaa", 4, 0 },
1050 { "word", "Word", 0, 0 },
1051 { "word", "Word", 1, 1 },
1052 { "word", "Word", 3, 1 },
1053 { "word", "wOrd", 0, 0 },
1054 { "word", "wOrd", 1, 0 },
1055 { "word", "wOrd", 3, 1 },
1056 { "word", "woRd", 0, 0 },
1057 { "word", "woRd", 1, 0 },
1058 { "word", "woRd", 3, 1 },
1059 { "word", "worD", 0, 0 },
1060 { "word", "worD", 1, 0 },
1061 { "word", "worD", 3, 0 },
1062 { "WORD", "wORD", 0, 0 },
1063 { "WORD", "wORD", 1, -1 },
1064 { "WORD", "wORD", 3, -1 },
1065 { "WORD", "WoRD", 0, 0 },
1066 { "WORD", "WoRD", 1, 0 },
1067 { "WORD", "WoRD", 3, -1 },
1068 { "WORD", "WOrD", 0, 0 },
1069 { "WORD", "WOrD", 1, 0 },
1070 { "WORD", "WOrD", 3, -1 },
1071 { "WORD", "WORd", 0, 0 },
1072 { "WORD", "WORd", 1, 0 },
1073 { "WORD", "WORd", 3, 0 }
1079 printf("Test 012 (PL_strncmp) ..."); fflush(stdout
);
1081 for( i
= 0; i
< sizeof(array
)/sizeof(array
[0]); i
++ )
1083 PRIntn rv
= PL_strncmp(array
[i
].one
, array
[i
].two
, array
[i
].max
);
1085 switch( array
[i
].sign
)
1103 PR_NOT_REACHED("static data inconsistancy");
1107 printf("FAIL %d: %s-%s/%ld -> %d, not %d\n", i
,
1108 array
[i
].one
? array
[i
].one
: "(null)",
1109 array
[i
].two
? array
[i
].two
: "(null)",
1110 array
[i
].max
, rv
, array
[i
].sign
);
1119 PRBool
test_013(void)
1128 { (const char *)0, (const char *)0, 0 },
1129 { (const char *)0, "word", -1 },
1130 { "word", (const char *)0, 1 },
1131 { "word", "word", 0 },
1132 { "aZYXVUT", "bZYXVUT", -1 },
1133 { "aZYXVUT", "bAAAAAA", -1 },
1137 { "aaaaa", "baaaa", -1 },
1138 { "aaaaa", "abaaa", -1 },
1139 { "aaaaa", "aabaa", -1 },
1140 { "aaaaa", "aaaba", -1 },
1141 { "aaaaa", "aaaab", -1 },
1142 { "bZYXVUT", "aZYXVUT", 1 },
1143 { "bAAAAAA", "aZYXVUT", 1 },
1146 { "baaaa", "aaaaa", 1 },
1147 { "abaaa", "aaaaa", 1 },
1148 { "aabaa", "aaaaa", 1 },
1149 { "aaaba", "aaaaa", 1 },
1150 { "aaaab", "aaaaa", 1 },
1151 { "word", "Word", 0 },
1152 { "word", "wOrd", 0 },
1153 { "word", "woRd", 0 },
1154 { "word", "worD", 0 },
1155 { "WORD", "wORD", 0 },
1156 { "WORD", "WoRD", 0 },
1157 { "WORD", "WOrD", 0 },
1158 { "WORD", "WORd", 0 }
1163 printf("Test 013 (PL_strcasecmp) ..."); fflush(stdout
);
1165 for( i
= 0; i
< sizeof(array
)/sizeof(array
[0]); i
++ )
1167 PRIntn rv
= PL_strcasecmp(array
[i
].one
, array
[i
].two
);
1169 switch( array
[i
].sign
)
1187 PR_NOT_REACHED("static data inconsistancy");
1191 printf("FAIL %d: %s-%s -> %d, not %d\n", i
,
1192 array
[i
].one
? array
[i
].one
: "(null)",
1193 array
[i
].two
? array
[i
].two
: "(null)",
1202 /* PL_strncasecmp */
1203 PRBool
test_014(void)
1213 { (const char *)0, (const char *)0, 0, 0 },
1214 { (const char *)0, (const char *)0, 1, 0 },
1215 { (const char *)0, (const char *)0, 4, 0 },
1216 { (const char *)0, "word", 0, -1 },
1217 { (const char *)0, "word", 1, -1 },
1218 { (const char *)0, "word", 4, -1 },
1219 { "word", (const char *)0, 0, 1 },
1220 { "word", (const char *)0, 1, 1 },
1221 { "word", (const char *)0, 4, 1 },
1222 { "word", "word", 0, 0 },
1223 { "word", "word", 1, 0 },
1224 { "word", "word", 3, 0 },
1225 { "word", "word", 5, 0 },
1226 { "aZYXVUT", "bZYXVUT", 0, 0 },
1227 { "aZYXVUT", "bZYXVUT", 1, -1 },
1228 { "aZYXVUT", "bZYXVUT", 4, -1 },
1229 { "aZYXVUT", "bZYXVUT", 9, -1 },
1230 { "aZYXVUT", "bAAAAAA", 0, 0 },
1231 { "aZYXVUT", "bAAAAAA", 1, -1 },
1232 { "aZYXVUT", "bAAAAAA", 4, -1 },
1233 { "aZYXVUT", "bAAAAAA", 5, -1 },
1234 { "a", "aa", 0, 0 },
1235 { "a", "aa", 1, 0 },
1236 { "a", "aa", 4, -1 },
1243 { "aaaaa", "baaaa", 0, 0 },
1244 { "aaaaa", "baaaa", 1, -1 },
1245 { "aaaaa", "baaaa", 4, -1 },
1246 { "aaaaa", "abaaa", 0, 0 },
1247 { "aaaaa", "abaaa", 1, 0 },
1248 { "aaaaa", "abaaa", 4, -1 },
1249 { "aaaaa", "aabaa", 0, 0 },
1250 { "aaaaa", "aabaa", 1, 0 },
1251 { "aaaaa", "aabaa", 4, -1 },
1252 { "aaaaa", "aaaba", 0, 0 },
1253 { "aaaaa", "aaaba", 1, 0 },
1254 { "aaaaa", "aaaba", 4, -1 },
1255 { "aaaaa", "aaaab", 0, 0 },
1256 { "aaaaa", "aaaab", 1, 0 },
1257 { "aaaaa", "aaaab", 4, 0 },
1258 { "bZYXVUT", "aZYXVUT", 0, 0 },
1259 { "bZYXVUT", "aZYXVUT", 1, 1 },
1260 { "bZYXVUT", "aZYXVUT", 4, 1 },
1261 { "bAAAAAA", "aZYXVUT", 0, 0 },
1262 { "bAAAAAA", "aZYXVUT", 1, 1 },
1263 { "bAAAAAA", "aZYXVUT", 4, 1 },
1264 { "aa", "a", 0, 0 },
1265 { "aa", "a", 1, 0 },
1266 { "aa", "a", 4, 1 },
1270 { "baaaa", "aaaaa", 0, 0 },
1271 { "baaaa", "aaaaa", 1, 1 },
1272 { "baaaa", "aaaaa", 4, 1 },
1273 { "abaaa", "aaaaa", 0, 0 },
1274 { "abaaa", "aaaaa", 1, 0 },
1275 { "abaaa", "aaaaa", 4, 1 },
1276 { "aabaa", "aaaaa", 0, 0 },
1277 { "aabaa", "aaaaa", 1, 0 },
1278 { "aabaa", "aaaaa", 4, 1 },
1279 { "aaaba", "aaaaa", 0, 0 },
1280 { "aaaba", "aaaaa", 1, 0 },
1281 { "aaaba", "aaaaa", 4, 1 },
1282 { "aaaab", "aaaaa", 0, 0 },
1283 { "aaaab", "aaaaa", 1, 0 },
1284 { "aaaab", "aaaaa", 4, 0 },
1285 { "word", "Word", 0, 0 },
1286 { "word", "Word", 1, 0 },
1287 { "word", "Word", 3, 0 },
1288 { "word", "wOrd", 0, 0 },
1289 { "word", "wOrd", 1, 0 },
1290 { "word", "wOrd", 3, 0 },
1291 { "word", "woRd", 0, 0 },
1292 { "word", "woRd", 1, 0 },
1293 { "word", "woRd", 3, 0 },
1294 { "word", "worD", 0, 0 },
1295 { "word", "worD", 1, 0 },
1296 { "word", "worD", 3, 0 },
1297 { "WORD", "wORD", 0, 0 },
1298 { "WORD", "wORD", 1, 0 },
1299 { "WORD", "wORD", 3, 0 },
1300 { "WORD", "WoRD", 0, 0 },
1301 { "WORD", "WoRD", 1, 0 },
1302 { "WORD", "WoRD", 3, 0 },
1303 { "WORD", "WOrD", 0, 0 },
1304 { "WORD", "WOrD", 1, 0 },
1305 { "WORD", "WOrD", 3, 0 },
1306 { "WORD", "WORd", 0, 0 },
1307 { "WORD", "WORd", 1, 0 },
1308 { "WORD", "WORd", 3, 0 }
1313 printf("Test 014 (PL_strncasecmp) ..."); fflush(stdout
);
1315 for( i
= 0; i
< sizeof(array
)/sizeof(array
[0]); i
++ )
1317 PRIntn rv
= PL_strncasecmp(array
[i
].one
, array
[i
].two
, array
[i
].max
);
1319 switch( array
[i
].sign
)
1337 PR_NOT_REACHED("static data inconsistancy");
1341 printf("FAIL %d: %s-%s/%ld -> %d, not %d\n", i
,
1342 array
[i
].one
? array
[i
].one
: "(null)",
1343 array
[i
].two
? array
[i
].two
: "(null)",
1344 array
[i
].max
, rv
, array
[i
].sign
);
1353 PRBool
test_015(void)
1363 { (const char *)0, 'a', PR_FALSE
, 0 },
1364 { (const char *)0, '\0', PR_FALSE
, 0 },
1365 { "abcdefg", 'a', PR_TRUE
, 0 },
1366 { "abcdefg", 'b', PR_TRUE
, 1 },
1367 { "abcdefg", 'c', PR_TRUE
, 2 },
1368 { "abcdefg", 'd', PR_TRUE
, 3 },
1369 { "abcdefg", 'e', PR_TRUE
, 4 },
1370 { "abcdefg", 'f', PR_TRUE
, 5 },
1371 { "abcdefg", 'g', PR_TRUE
, 6 },
1372 { "abcdefg", 'h', PR_FALSE
, 0 },
1373 { "abcdefg", '\0', PR_TRUE
, 7 },
1374 { "abcdefg", 'A', PR_FALSE
, 0 },
1375 { "abcdefg", 'B', PR_FALSE
, 0 },
1376 { "abcdefg", 'C', PR_FALSE
, 0 },
1377 { "abcdefg", 'D', PR_FALSE
, 0 },
1378 { "abcdefg", 'E', PR_FALSE
, 0 },
1379 { "abcdefg", 'F', PR_FALSE
, 0 },
1380 { "abcdefg", 'G', PR_FALSE
, 0 },
1381 { "abcdefg", 'H', PR_FALSE
, 0 },
1382 { "abcdefgabcdefg", 'a', PR_TRUE
, 0 },
1383 { "abcdefgabcdefg", 'b', PR_TRUE
, 1 },
1384 { "abcdefgabcdefg", 'c', PR_TRUE
, 2 },
1385 { "abcdefgabcdefg", 'd', PR_TRUE
, 3 },
1386 { "abcdefgabcdefg", 'e', PR_TRUE
, 4 },
1387 { "abcdefgabcdefg", 'f', PR_TRUE
, 5 },
1388 { "abcdefgabcdefg", 'g', PR_TRUE
, 6 },
1389 { "abcdefgabcdefg", 'h', PR_FALSE
, 0 },
1390 { "abcdefgabcdefg", '\0', PR_TRUE
, 14 }
1395 printf("Test 015 (PL_strchr) ..."); fflush(stdout
);
1397 for( i
= 0; i
< sizeof(array
)/sizeof(array
[0]); i
++ )
1399 char *rv
= PL_strchr(array
[i
].str
, array
[i
].chr
);
1401 if( PR_FALSE
== array
[i
].ret
)
1403 if( (char *)0 != rv
)
1405 printf("FAIL %d: %s,%c -> %.32s, not zero\n", i
, array
[i
].str
,
1412 if( (char *)0 == rv
)
1414 printf("FAIL %d: %s,%c -> null, not +%lu\n", i
, array
[i
].str
,
1415 array
[i
].chr
, array
[i
].off
);
1419 if( &array
[i
].str
[ array
[i
].off
] != rv
)
1421 printf("FAIL %d: %s,%c -> 0x%x, not 0x%x+%lu\n", i
, array
[i
].str
,
1422 array
[i
].chr
, rv
, array
[i
].str
, array
[i
].off
);
1433 PRBool
test_016(void)
1443 { (const char *)0, 'a', PR_FALSE
, 0 },
1444 { (const char *)0, '\0', PR_FALSE
, 0 },
1445 { "abcdefg", 'a', PR_TRUE
, 0 },
1446 { "abcdefg", 'b', PR_TRUE
, 1 },
1447 { "abcdefg", 'c', PR_TRUE
, 2 },
1448 { "abcdefg", 'd', PR_TRUE
, 3 },
1449 { "abcdefg", 'e', PR_TRUE
, 4 },
1450 { "abcdefg", 'f', PR_TRUE
, 5 },
1451 { "abcdefg", 'g', PR_TRUE
, 6 },
1452 { "abcdefg", 'h', PR_FALSE
, 0 },
1453 { "abcdefg", '\0', PR_TRUE
, 7 },
1454 { "abcdefg", 'A', PR_FALSE
, 0 },
1455 { "abcdefg", 'B', PR_FALSE
, 0 },
1456 { "abcdefg", 'C', PR_FALSE
, 0 },
1457 { "abcdefg", 'D', PR_FALSE
, 0 },
1458 { "abcdefg", 'E', PR_FALSE
, 0 },
1459 { "abcdefg", 'F', PR_FALSE
, 0 },
1460 { "abcdefg", 'G', PR_FALSE
, 0 },
1461 { "abcdefg", 'H', PR_FALSE
, 0 },
1462 { "abcdefgabcdefg", 'a', PR_TRUE
, 7 },
1463 { "abcdefgabcdefg", 'b', PR_TRUE
, 8 },
1464 { "abcdefgabcdefg", 'c', PR_TRUE
, 9 },
1465 { "abcdefgabcdefg", 'd', PR_TRUE
, 10 },
1466 { "abcdefgabcdefg", 'e', PR_TRUE
, 11 },
1467 { "abcdefgabcdefg", 'f', PR_TRUE
, 12 },
1468 { "abcdefgabcdefg", 'g', PR_TRUE
, 13 },
1469 { "abcdefgabcdefg", 'h', PR_FALSE
, 0 },
1470 { "abcdefgabcdefg", '\0', PR_TRUE
, 14 }
1475 printf("Test 016 (PL_strrchr) ..."); fflush(stdout
);
1477 for( i
= 0; i
< sizeof(array
)/sizeof(array
[0]); i
++ )
1479 char *rv
= PL_strrchr(array
[i
].str
, array
[i
].chr
);
1481 if( PR_FALSE
== array
[i
].ret
)
1483 if( (char *)0 != rv
)
1485 printf("FAIL %d: %s,%c -> %.32s, not zero\n", i
, array
[i
].str
,
1492 if( (char *)0 == rv
)
1494 printf("FAIL %d: %s,%c -> null, not +%lu\n", i
, array
[i
].str
,
1495 array
[i
].chr
, array
[i
].off
);
1499 if( &array
[i
].str
[ array
[i
].off
] != rv
)
1501 printf("FAIL %d: %s,%c -> 0x%x, not 0x%x+%lu\n", i
, array
[i
].str
,
1502 array
[i
].chr
, rv
, array
[i
].str
, array
[i
].off
);
1513 PRBool
test_017(void)
1524 { (const char *)0, 'a', 2, PR_FALSE
, 0 },
1525 { (const char *)0, '\0', 2, PR_FALSE
, 0 },
1526 { "abcdefg", 'a', 5, PR_TRUE
, 0 },
1527 { "abcdefg", 'b', 5, PR_TRUE
, 1 },
1528 { "abcdefg", 'c', 5, PR_TRUE
, 2 },
1529 { "abcdefg", 'd', 5, PR_TRUE
, 3 },
1530 { "abcdefg", 'e', 5, PR_TRUE
, 4 },
1531 { "abcdefg", 'f', 5, PR_FALSE
, 0 },
1532 { "abcdefg", 'g', 5, PR_FALSE
, 0 },
1533 { "abcdefg", 'h', 5, PR_FALSE
, 0 },
1534 { "abcdefg", '\0', 5, PR_FALSE
, 0 },
1535 { "abcdefg", '\0', 15, PR_TRUE
, 7 },
1536 { "abcdefg", 'A', 5, PR_FALSE
, 0 },
1537 { "abcdefg", 'B', 5, PR_FALSE
, 0 },
1538 { "abcdefg", 'C', 5, PR_FALSE
, 0 },
1539 { "abcdefg", 'D', 5, PR_FALSE
, 0 },
1540 { "abcdefg", 'E', 5, PR_FALSE
, 0 },
1541 { "abcdefg", 'F', 5, PR_FALSE
, 0 },
1542 { "abcdefg", 'G', 5, PR_FALSE
, 0 },
1543 { "abcdefg", 'H', 5, PR_FALSE
, 0 },
1544 { "abcdefgabcdefg", 'a', 10, PR_TRUE
, 0 },
1545 { "abcdefgabcdefg", 'b', 10, PR_TRUE
, 1 },
1546 { "abcdefgabcdefg", 'c', 10, PR_TRUE
, 2 },
1547 { "abcdefgabcdefg", 'd', 10, PR_TRUE
, 3 },
1548 { "abcdefgabcdefg", 'e', 10, PR_TRUE
, 4 },
1549 { "abcdefgabcdefg", 'f', 10, PR_TRUE
, 5 },
1550 { "abcdefgabcdefg", 'g', 10, PR_TRUE
, 6 },
1551 { "abcdefgabcdefg", 'h', 10, PR_FALSE
, 0 },
1552 { "abcdefgabcdefg", '\0', 10, PR_FALSE
, 0 },
1553 { "abcdefgabcdefg", '\0', 14, PR_FALSE
, 0 },
1554 { "abcdefgabcdefg", '\0', 15, PR_TRUE
, 14 }
1559 printf("Test 017 (PL_strnchr) ..."); fflush(stdout
);
1561 for( i
= 0; i
< sizeof(array
)/sizeof(array
[0]); i
++ )
1563 char *rv
= PL_strnchr(array
[i
].str
, array
[i
].chr
, array
[i
].max
);
1565 if( PR_FALSE
== array
[i
].ret
)
1567 if( (char *)0 != rv
)
1569 printf("FAIL %d: %s,%c/%lu -> %.32s, not zero\n", i
, array
[i
].str
,
1570 array
[i
].chr
, array
[i
].max
, rv
);
1576 if( (char *)0 == rv
)
1578 printf("FAIL %d: %s,%c/%lu -> null, not +%lu\n", i
, array
[i
].str
,
1579 array
[i
].chr
, array
[i
].max
, array
[i
].off
);
1583 if( &array
[i
].str
[ array
[i
].off
] != rv
)
1585 printf("FAIL %d: %s,%c/%lu -> 0x%x, not 0x%x+%lu\n", i
, array
[i
].str
,
1586 array
[i
].chr
, array
[i
].max
, rv
, array
[i
].str
, array
[i
].off
);
1597 PRBool
test_018(void)
1608 { (const char *)0, 'a', 2, PR_FALSE
, 0 },
1609 { (const char *)0, '\0', 2, PR_FALSE
, 0 },
1610 { "abcdefg", 'a', 5, PR_TRUE
, 0 },
1611 { "abcdefg", 'b', 5, PR_TRUE
, 1 },
1612 { "abcdefg", 'c', 5, PR_TRUE
, 2 },
1613 { "abcdefg", 'd', 5, PR_TRUE
, 3 },
1614 { "abcdefg", 'e', 5, PR_TRUE
, 4 },
1615 { "abcdefg", 'f', 5, PR_FALSE
, 0 },
1616 { "abcdefg", 'g', 5, PR_FALSE
, 0 },
1617 { "abcdefg", 'h', 5, PR_FALSE
, 0 },
1618 { "abcdefg", '\0', 5, PR_FALSE
, 0 },
1619 { "abcdefg", '\0', 15, PR_TRUE
, 7 },
1620 { "abcdefg", 'A', 5, PR_FALSE
, 0 },
1621 { "abcdefg", 'B', 5, PR_FALSE
, 0 },
1622 { "abcdefg", 'C', 5, PR_FALSE
, 0 },
1623 { "abcdefg", 'D', 5, PR_FALSE
, 0 },
1624 { "abcdefg", 'E', 5, PR_FALSE
, 0 },
1625 { "abcdefg", 'F', 5, PR_FALSE
, 0 },
1626 { "abcdefg", 'G', 5, PR_FALSE
, 0 },
1627 { "abcdefg", 'H', 5, PR_FALSE
, 0 },
1628 { "abcdefgabcdefg", 'a', 10, PR_TRUE
, 7 },
1629 { "abcdefgabcdefg", 'b', 10, PR_TRUE
, 8 },
1630 { "abcdefgabcdefg", 'c', 10, PR_TRUE
, 9 },
1631 { "abcdefgabcdefg", 'd', 10, PR_TRUE
, 3 },
1632 { "abcdefgabcdefg", 'e', 10, PR_TRUE
, 4 },
1633 { "abcdefgabcdefg", 'f', 10, PR_TRUE
, 5 },
1634 { "abcdefgabcdefg", 'g', 10, PR_TRUE
, 6 },
1635 { "abcdefgabcdefg", 'h', 10, PR_FALSE
, 0 },
1636 { "abcdefgabcdefg", '\0', 10, PR_FALSE
, 0 },
1637 { "abcdefgabcdefg", '\0', 14, PR_FALSE
, 0 },
1638 { "abcdefgabcdefg", '\0', 15, PR_TRUE
, 14 }
1643 printf("Test 018 (PL_strnrchr) ..."); fflush(stdout
);
1645 for( i
= 0; i
< sizeof(array
)/sizeof(array
[0]); i
++ )
1647 char *rv
= PL_strnrchr(array
[i
].str
, array
[i
].chr
, array
[i
].max
);
1649 if( PR_FALSE
== array
[i
].ret
)
1651 if( (char *)0 != rv
)
1653 printf("FAIL %d: %s,%c/%lu -> %.32s, not zero\n", i
, array
[i
].str
,
1654 array
[i
].chr
, array
[i
].max
, rv
);
1660 if( (char *)0 == rv
)
1662 printf("FAIL %d: %s,%c/%lu -> null, not +%lu\n", i
, array
[i
].str
,
1663 array
[i
].chr
, array
[i
].max
, array
[i
].off
);
1667 if( &array
[i
].str
[ array
[i
].off
] != rv
)
1669 printf("FAIL %d: %s,%c/%lu -> 0x%x, not 0x%x+%lu\n", i
, array
[i
].str
,
1670 array
[i
].chr
, array
[i
].max
, rv
, array
[i
].str
, array
[i
].off
);
1681 PRBool
test_019(void)
1691 { (const char *)0, (const char *)0, PR_FALSE
, 0 },
1692 { (const char *)0, "abc", PR_FALSE
, 0 },
1693 { "abc", (const char *)0, PR_FALSE
, 0 },
1694 { "abcdefg", "", PR_FALSE
, 0 },
1695 { "", "aeiou", PR_FALSE
, 0 },
1696 { "abcdefg", "ae", PR_TRUE
, 0 },
1697 { "abcdefg", "ei", PR_TRUE
, 4 },
1698 { "abcdefg", "io", PR_FALSE
, 0 },
1699 { "abcdefg", "bcd", PR_TRUE
, 1 },
1700 { "abcdefg", "cbd", PR_TRUE
, 1 },
1701 { "abcdefg", "dbc", PR_TRUE
, 1 },
1702 { "abcdefg", "ghi", PR_TRUE
, 6 },
1703 { "abcdefg", "AE", PR_FALSE
, 0 },
1704 { "abcdefg", "EI", PR_FALSE
, 0 },
1705 { "abcdefg", "IO", PR_FALSE
, 0 },
1706 { "abcdefg", "BCD", PR_FALSE
, 0 },
1707 { "abcdefg", "CBD", PR_FALSE
, 0 },
1708 { "abcdefg", "DBC", PR_FALSE
, 0 },
1709 { "abcdefg", "GHI", PR_FALSE
, 0 },
1710 { "abcdefgabcdefg", "ae", PR_TRUE
, 0 },
1711 { "abcdefgabcdefg", "ei", PR_TRUE
, 4 },
1712 { "abcdefgabcdefg", "io", PR_FALSE
, 0 },
1713 { "abcdefgabcdefg", "bcd", PR_TRUE
, 1 },
1714 { "abcdefgabcdefg", "cbd", PR_TRUE
, 1 },
1715 { "abcdefgabcdefg", "dbc", PR_TRUE
, 1 },
1716 { "abcdefgabcdefg", "ghi", PR_TRUE
, 6 },
1717 { "abcdefgabcdefg", "AE", PR_FALSE
, 0 },
1718 { "abcdefgabcdefg", "EI", PR_FALSE
, 0 },
1719 { "abcdefgabcdefg", "IO", PR_FALSE
, 0 },
1720 { "abcdefgabcdefg", "BCD", PR_FALSE
, 0 },
1721 { "abcdefgabcdefg", "CBD", PR_FALSE
, 0 },
1722 { "abcdefgabcdefg", "DBC", PR_FALSE
, 0 },
1723 { "abcdefgabcdefg", "GHI", PR_FALSE
, 0 }
1728 printf("Test 019 (PL_strpbrk) ..."); fflush(stdout
);
1730 for( i
= 0; i
< sizeof(array
)/sizeof(array
[0]); i
++ )
1732 char *rv
= PL_strpbrk(array
[i
].str
, array
[i
].chrs
);
1734 if( PR_FALSE
== array
[i
].ret
)
1736 if( (char *)0 != rv
)
1738 printf("FAIL %d: %s,%s -> %.32s, not null\n", i
,
1739 array
[i
].str
? array
[i
].str
: "(null)",
1740 array
[i
].chrs
? array
[i
].chrs
: "(null)",
1747 if( (char *)0 == rv
)
1749 printf("FAIL %d: %s,%s -> null, not +%lu\n", i
,
1750 array
[i
].str
? array
[i
].str
: "(null)",
1751 array
[i
].chrs
? array
[i
].chrs
: "(null)",
1756 if( &array
[i
].str
[ array
[i
].off
] != rv
)
1758 printf("FAIL %d: %s,%s -> 0x%x, not 0x%x+%lu\n", i
,
1759 array
[i
].str
? array
[i
].str
: "(null)",
1760 array
[i
].chrs
? array
[i
].chrs
: "(null)",
1761 rv
, array
[i
].str
, array
[i
].off
);
1772 PRBool
test_020(void)
1782 { (const char *)0, (const char *)0, PR_FALSE
, 0 },
1783 { (const char *)0, "abc", PR_FALSE
, 0 },
1784 { "abc", (const char *)0, PR_FALSE
, 0 },
1785 { "abcdefg", "", PR_FALSE
, 0 },
1786 { "", "aeiou", PR_FALSE
, 0 },
1787 { "abcdefg", "ae", PR_TRUE
, 4 },
1788 { "abcdefg", "ei", PR_TRUE
, 4 },
1789 { "abcdefg", "io", PR_FALSE
, 0 },
1790 { "abcdefg", "bcd", PR_TRUE
, 3 },
1791 { "abcdefg", "cbd", PR_TRUE
, 3 },
1792 { "abcdefg", "dbc", PR_TRUE
, 3 },
1793 { "abcdefg", "ghi", PR_TRUE
, 6 },
1794 { "abcdefg", "AE", PR_FALSE
, 0 },
1795 { "abcdefg", "EI", PR_FALSE
, 0 },
1796 { "abcdefg", "IO", PR_FALSE
, 0 },
1797 { "abcdefg", "BCD", PR_FALSE
, 0 },
1798 { "abcdefg", "CBD", PR_FALSE
, 0 },
1799 { "abcdefg", "DBC", PR_FALSE
, 0 },
1800 { "abcdefg", "GHI", PR_FALSE
, 0 },
1801 { "abcdefgabcdefg", "ae", PR_TRUE
, 11 },
1802 { "abcdefgabcdefg", "ei", PR_TRUE
, 11 },
1803 { "abcdefgabcdefg", "io", PR_FALSE
, 0 },
1804 { "abcdefgabcdefg", "bcd", PR_TRUE
, 10 },
1805 { "abcdefgabcdefg", "cbd", PR_TRUE
, 10 },
1806 { "abcdefgabcdefg", "dbc", PR_TRUE
, 10 },
1807 { "abcdefgabcdefg", "ghi", PR_TRUE
, 13 },
1808 { "abcdefgabcdefg", "AE", PR_FALSE
, 0 },
1809 { "abcdefgabcdefg", "EI", PR_FALSE
, 0 },
1810 { "abcdefgabcdefg", "IO", PR_FALSE
, 0 },
1811 { "abcdefgabcdefg", "BCD", PR_FALSE
, 0 },
1812 { "abcdefgabcdefg", "CBD", PR_FALSE
, 0 },
1813 { "abcdefgabcdefg", "DBC", PR_FALSE
, 0 },
1814 { "abcdefgabcdefg", "GHI", PR_FALSE
, 0 }
1819 printf("Test 020 (PL_strprbrk) ..."); fflush(stdout
);
1821 for( i
= 0; i
< sizeof(array
)/sizeof(array
[0]); i
++ )
1823 char *rv
= PL_strprbrk(array
[i
].str
, array
[i
].chrs
);
1825 if( PR_FALSE
== array
[i
].ret
)
1827 if( (char *)0 != rv
)
1829 printf("FAIL %d: %s,%s -> %.32s, not null\n", i
,
1830 array
[i
].str
? array
[i
].str
: "(null)",
1831 array
[i
].chrs
? array
[i
].chrs
: "(null)",
1838 if( (char *)0 == rv
)
1840 printf("FAIL %d: %s,%s -> null, not +%lu\n", i
,
1841 array
[i
].str
? array
[i
].str
: "(null)",
1842 array
[i
].chrs
? array
[i
].chrs
: "(null)",
1847 if( &array
[i
].str
[ array
[i
].off
] != rv
)
1849 printf("FAIL %d: %s,%s -> 0x%x, not 0x%x+%lu\n", i
,
1850 array
[i
].str
? array
[i
].str
: "(null)",
1851 array
[i
].chrs
? array
[i
].chrs
: "(null)",
1852 rv
, array
[i
].str
, array
[i
].off
);
1863 PRBool
test_021(void)
1874 { (const char *)0, (const char *)0, 3, PR_FALSE
, 0 },
1875 { (const char *)0, "abc", 3, PR_FALSE
, 0 },
1876 { "abc", (const char *)0, 3, PR_FALSE
, 0 },
1877 { "abcdefg", "", 3, PR_FALSE
, 0 },
1878 { "", "aeiou", 3, PR_FALSE
, 0 },
1879 { "abcdefg", "ae", 0, PR_FALSE
, 0 },
1880 { "abcdefg", "ae", 1, PR_TRUE
, 0 },
1881 { "abcdefg", "ae", 4, PR_TRUE
, 0 },
1882 { "abcdefg", "ae", 5, PR_TRUE
, 0 },
1883 { "abcdefg", "ae", 6, PR_TRUE
, 0 },
1884 { "abcdefg", "ei", 4, PR_FALSE
, 0 },
1885 { "abcdefg", "io", 10, PR_FALSE
, 0 },
1886 { "abcdefg", "bcd", 2, PR_TRUE
, 1 },
1887 { "abcdefg", "cbd", 2, PR_TRUE
, 1 },
1888 { "abcdefg", "dbc", 2, PR_TRUE
, 1 },
1889 { "abcdefg", "ghi", 6, PR_FALSE
, 0 },
1890 { "abcdefg", "ghi", 7, PR_TRUE
, 6 },
1891 { "abcdefg", "AE", 9, PR_FALSE
, 0 },
1892 { "abcdefg", "EI", 9, PR_FALSE
, 0 },
1893 { "abcdefg", "IO", 9, PR_FALSE
, 0 },
1894 { "abcdefg", "BCD", 9, PR_FALSE
, 0 },
1895 { "abcdefg", "CBD", 9, PR_FALSE
, 0 },
1896 { "abcdefg", "DBC", 9, PR_FALSE
, 0 },
1897 { "abcdefg", "GHI", 9, PR_FALSE
, 0 },
1898 { "abcdefgabcdefg", "ae", 10, PR_TRUE
, 0 },
1899 { "abcdefgabcdefg", "ei", 10, PR_TRUE
, 4 },
1900 { "abcdefgabcdefg", "io", 10, PR_FALSE
, 0 },
1901 { "abcdefgabcdefg", "bcd", 10, PR_TRUE
, 1 },
1902 { "abcdefgabcdefg", "cbd", 10, PR_TRUE
, 1 },
1903 { "abcdefgabcdefg", "dbc", 10, PR_TRUE
, 1 },
1904 { "abcdefgabcdefg", "ghi", 10, PR_TRUE
, 6 },
1905 { "abcdefgabcdefg", "AE", 10, PR_FALSE
, 0 },
1906 { "abcdefgabcdefg", "EI", 10, PR_FALSE
, 0 },
1907 { "abcdefgabcdefg", "IO", 10, PR_FALSE
, 0 },
1908 { "abcdefgabcdefg", "BCD", 10, PR_FALSE
, 0 },
1909 { "abcdefgabcdefg", "CBD", 10, PR_FALSE
, 0 },
1910 { "abcdefgabcdefg", "DBC", 10, PR_FALSE
, 0 },
1911 { "abcdefgabcdefg", "GHI", 10, PR_FALSE
, 0 }
1916 printf("Test 021 (PL_strnpbrk) ..."); fflush(stdout
);
1918 for( i
= 0; i
< sizeof(array
)/sizeof(array
[0]); i
++ )
1920 char *rv
= PL_strnpbrk(array
[i
].str
, array
[i
].chrs
, array
[i
].max
);
1922 if( PR_FALSE
== array
[i
].ret
)
1924 if( (char *)0 != rv
)
1926 printf("FAIL %d: %s,%s/%lu -> %.32s, not null\n", i
,
1927 array
[i
].str
? array
[i
].str
: "(null)",
1928 array
[i
].chrs
? array
[i
].chrs
: "(null)",
1935 if( (char *)0 == rv
)
1937 printf("FAIL %d: %s,%s/%lu -> null, not +%lu\n", i
,
1938 array
[i
].str
? array
[i
].str
: "(null)",
1939 array
[i
].chrs
? array
[i
].chrs
: "(null)",
1940 array
[i
].max
, array
[i
].off
);
1944 if( &array
[i
].str
[ array
[i
].off
] != rv
)
1946 printf("FAIL %d: %s,%s/%lu -> 0x%x, not 0x%x+%lu\n", i
,
1947 array
[i
].str
? array
[i
].str
: "(null)",
1948 array
[i
].chrs
? array
[i
].chrs
: "(null)",
1949 array
[i
].max
, rv
, array
[i
].str
, array
[i
].off
);
1960 PRBool
test_022(void)
1971 { (const char *)0, (const char *)0, 3, PR_FALSE
, 0 },
1972 { (const char *)0, "abc", 3, PR_FALSE
, 0 },
1973 { "abc", (const char *)0, 3, PR_FALSE
, 0 },
1974 { "abcdefg", "", 3, PR_FALSE
, 0 },
1975 { "", "aeiou", 3, PR_FALSE
, 0 },
1976 { "abcdefg", "ae", 0, PR_FALSE
, 0 },
1977 { "abcdefg", "ae", 1, PR_TRUE
, 0 },
1978 { "abcdefg", "ae", 4, PR_TRUE
, 0 },
1979 { "abcdefg", "ae", 5, PR_TRUE
, 4 },
1980 { "abcdefg", "ae", 6, PR_TRUE
, 4 },
1981 { "abcdefg", "ei", 4, PR_FALSE
, 0 },
1982 { "abcdefg", "io", 10, PR_FALSE
, 0 },
1983 { "abcdefg", "bcd", 2, PR_TRUE
, 1 },
1984 { "abcdefg", "cbd", 2, PR_TRUE
, 1 },
1985 { "abcdefg", "dbc", 2, PR_TRUE
, 1 },
1986 { "abcdefg", "bcd", 3, PR_TRUE
, 2 },
1987 { "abcdefg", "cbd", 3, PR_TRUE
, 2 },
1988 { "abcdefg", "dbc", 3, PR_TRUE
, 2 },
1989 { "abcdefg", "bcd", 5, PR_TRUE
, 3 },
1990 { "abcdefg", "cbd", 5, PR_TRUE
, 3 },
1991 { "abcdefg", "dbc", 5, PR_TRUE
, 3 },
1992 { "abcdefg", "bcd", 15, PR_TRUE
, 3 },
1993 { "abcdefg", "cbd", 15, PR_TRUE
, 3 },
1994 { "abcdefg", "dbc", 15, PR_TRUE
, 3 },
1995 { "abcdefg", "ghi", 6, PR_FALSE
, 0 },
1996 { "abcdefg", "ghi", 7, PR_TRUE
, 6 },
1997 { "abcdefg", "AE", 9, PR_FALSE
, 0 },
1998 { "abcdefg", "EI", 9, PR_FALSE
, 0 },
1999 { "abcdefg", "IO", 9, PR_FALSE
, 0 },
2000 { "abcdefg", "BCD", 9, PR_FALSE
, 0 },
2001 { "abcdefg", "CBD", 9, PR_FALSE
, 0 },
2002 { "abcdefg", "DBC", 9, PR_FALSE
, 0 },
2003 { "abcdefg", "GHI", 9, PR_FALSE
, 0 },
2004 { "abcdefgabcdefg", "ae", 10, PR_TRUE
, 7 },
2005 { "abcdefgabcdefg", "ei", 10, PR_TRUE
, 4 },
2006 { "abcdefgabcdefg", "io", 10, PR_FALSE
, 0 },
2007 { "abcdefgabcdefg", "bcd", 10, PR_TRUE
, 9 },
2008 { "abcdefgabcdefg", "cbd", 10, PR_TRUE
, 9 },
2009 { "abcdefgabcdefg", "dbc", 10, PR_TRUE
, 9 },
2010 { "abcdefgabcdefg", "ghi", 10, PR_TRUE
, 6 },
2011 { "abcdefgabcdefg", "AE", 10, PR_FALSE
, 0 },
2012 { "abcdefgabcdefg", "EI", 10, PR_FALSE
, 0 },
2013 { "abcdefgabcdefg", "IO", 10, PR_FALSE
, 0 },
2014 { "abcdefgabcdefg", "BCD", 10, PR_FALSE
, 0 },
2015 { "abcdefgabcdefg", "CBD", 10, PR_FALSE
, 0 },
2016 { "abcdefgabcdefg", "DBC", 10, PR_FALSE
, 0 },
2017 { "abcdefgabcdefg", "GHI", 10, PR_FALSE
, 0 }
2022 printf("Test 022 (PL_strnprbrk) ..."); fflush(stdout
);
2024 for( i
= 0; i
< sizeof(array
)/sizeof(array
[0]); i
++ )
2026 char *rv
= PL_strnprbrk(array
[i
].str
, array
[i
].chrs
, array
[i
].max
);
2028 if( PR_FALSE
== array
[i
].ret
)
2030 if( (char *)0 != rv
)
2032 printf("FAIL %d: %s,%s/%lu -> %.32s, not null\n", i
,
2033 array
[i
].str
? array
[i
].str
: "(null)",
2034 array
[i
].chrs
? array
[i
].chrs
: "(null)",
2041 if( (char *)0 == rv
)
2043 printf("FAIL %d: %s,%s/%lu -> null, not +%lu\n", i
,
2044 array
[i
].str
? array
[i
].str
: "(null)",
2045 array
[i
].chrs
? array
[i
].chrs
: "(null)",
2046 array
[i
].max
, array
[i
].off
);
2050 if( &array
[i
].str
[ array
[i
].off
] != rv
)
2052 printf("FAIL %d: %s,%s/%lu -> 0x%x, not 0x%x+%lu\n", i
,
2053 array
[i
].str
? array
[i
].str
: "(null)",
2054 array
[i
].chrs
? array
[i
].chrs
: "(null)",
2055 array
[i
].max
, rv
, array
[i
].str
, array
[i
].off
);
2066 PRBool
test_023(void)
2076 { (const char *)0, (const char *)0, PR_FALSE
, 0 },
2077 { (const char *)0, "blah", PR_FALSE
, 0 },
2078 { "blah-de-blah", (const char *)0, PR_FALSE
, 0 },
2079 { "blah-de-blah", "blah", PR_TRUE
, 0 },
2080 { "", "blah", PR_FALSE
, 0 },
2081 { "blah-de-blah", "", PR_FALSE
, 0 },
2082 { "abcdefg", "a", PR_TRUE
, 0 },
2083 { "abcdefg", "c", PR_TRUE
, 2 },
2084 { "abcdefg", "e", PR_TRUE
, 4 },
2085 { "abcdefg", "g", PR_TRUE
, 6 },
2086 { "abcdefg", "i", PR_FALSE
, 0 },
2087 { "abcdefg", "ab", PR_TRUE
, 0 },
2088 { "abcdefg", "cd", PR_TRUE
, 2 },
2089 { "abcdefg", "ef", PR_TRUE
, 4 },
2090 { "abcdefg", "gh", PR_FALSE
, 0 },
2091 { "abcdabc", "bc", PR_TRUE
, 1 },
2092 { "abcdefg", "abcdefg", PR_TRUE
, 0 },
2093 { "abcdefgabcdefg", "a", PR_TRUE
, 0 },
2094 { "abcdefgabcdefg", "c", PR_TRUE
, 2 },
2095 { "abcdefgabcdefg", "e", PR_TRUE
, 4 },
2096 { "abcdefgabcdefg", "g", PR_TRUE
, 6 },
2097 { "abcdefgabcdefg", "i", PR_FALSE
, 0 },
2098 { "abcdefgabcdefg", "ab", PR_TRUE
, 0 },
2099 { "abcdefgabcdefg", "cd", PR_TRUE
, 2 },
2100 { "abcdefgabcdefg", "ef", PR_TRUE
, 4 },
2101 { "abcdefgabcdefg", "gh", PR_FALSE
, 0 },
2102 { "abcdabcabcdabc", "bc", PR_TRUE
, 1 },
2103 { "abcdefgabcdefg", "abcdefg", PR_TRUE
, 0 },
2104 { "ABCDEFG", "a", PR_FALSE
, 0 },
2105 { "ABCDEFG", "c", PR_FALSE
, 0 },
2106 { "ABCDEFG", "e", PR_FALSE
, 0 },
2107 { "ABCDEFG", "g", PR_FALSE
, 0 },
2108 { "ABCDEFG", "i", PR_FALSE
, 0 },
2109 { "ABCDEFG", "ab", PR_FALSE
, 0 },
2110 { "ABCDEFG", "cd", PR_FALSE
, 0 },
2111 { "ABCDEFG", "ef", PR_FALSE
, 0 },
2112 { "ABCDEFG", "gh", PR_FALSE
, 0 },
2113 { "ABCDABC", "bc", PR_FALSE
, 0 },
2114 { "ABCDEFG", "abcdefg", PR_FALSE
, 0 },
2115 { "ABCDEFGABCDEFG", "a", PR_FALSE
, 0 },
2116 { "ABCDEFGABCDEFG", "c", PR_FALSE
, 0 },
2117 { "ABCDEFGABCDEFG", "e", PR_FALSE
, 0 },
2118 { "ABCDEFGABCDEFG", "g", PR_FALSE
, 0 },
2119 { "ABCDEFGABCDEFG", "i", PR_FALSE
, 0 },
2120 { "ABCDEFGABCDEFG", "ab", PR_FALSE
, 0 },
2121 { "ABCDEFGABCDEFG", "cd", PR_FALSE
, 0 },
2122 { "ABCDEFGABCDEFG", "ef", PR_FALSE
, 0 },
2123 { "ABCDEFGABCDEFG", "gh", PR_FALSE
, 0 },
2124 { "ABCDABCABCDABC", "bc", PR_FALSE
, 0 },
2125 { "ABCDEFGABCDEFG", "abcdefg", PR_FALSE
, 0 }
2130 printf("Test 023 (PL_strstr) ..."); fflush(stdout
);
2132 for( i
= 0; i
< sizeof(array
)/sizeof(array
[0]); i
++ )
2134 char *rv
= PL_strstr(array
[i
].str
, array
[i
].sub
);
2136 if( PR_FALSE
== array
[i
].ret
)
2138 if( (char *)0 != rv
)
2140 printf("FAIL %d: %s,%s -> %.32s, not null\n", i
,
2141 array
[i
].str
? array
[i
].str
: "(null)",
2142 array
[i
].sub
? array
[i
].sub
: "(null)",
2149 if( (char *)0 == rv
)
2151 printf("FAIL %d: %s,%s -> null, not 0x%x+%lu\n", i
,
2152 array
[i
].str
? array
[i
].str
: "(null)",
2153 array
[i
].sub
? array
[i
].sub
: "(null)",
2154 array
[i
].str
, array
[i
].off
);
2158 if( &array
[i
].str
[ array
[i
].off
] != rv
)
2160 printf("FAIL %d: %s,%s -> 0x%x, not 0x%x+%lu\n", i
,
2161 array
[i
].str
? array
[i
].str
: "(null)",
2162 array
[i
].sub
? array
[i
].sub
: "(null)",
2163 rv
, array
[i
].str
, array
[i
].off
);
2174 PRBool
test_024(void)
2184 { (const char *)0, (const char *)0, PR_FALSE
, 0 },
2185 { (const char *)0, "blah", PR_FALSE
, 0 },
2186 { "blah-de-blah", (const char *)0, PR_FALSE
, 0 },
2187 { "blah-de-blah", "blah", PR_TRUE
, 8 },
2188 { "", "blah", PR_FALSE
, 0 },
2189 { "blah-de-blah", "", PR_FALSE
, 0 },
2190 { "abcdefg", "a", PR_TRUE
, 0 },
2191 { "abcdefg", "c", PR_TRUE
, 2 },
2192 { "abcdefg", "e", PR_TRUE
, 4 },
2193 { "abcdefg", "g", PR_TRUE
, 6 },
2194 { "abcdefg", "i", PR_FALSE
, 0 },
2195 { "abcdefg", "ab", PR_TRUE
, 0 },
2196 { "abcdefg", "cd", PR_TRUE
, 2 },
2197 { "abcdefg", "ef", PR_TRUE
, 4 },
2198 { "abcdefg", "gh", PR_FALSE
, 0 },
2199 { "abcdabc", "bc", PR_TRUE
, 5 },
2200 { "abcdefg", "abcdefg", PR_TRUE
, 0 },
2201 { "abcdefgabcdefg", "a", PR_TRUE
, 7 },
2202 { "abcdefgabcdefg", "c", PR_TRUE
, 9 },
2203 { "abcdefgabcdefg", "e", PR_TRUE
, 11 },
2204 { "abcdefgabcdefg", "g", PR_TRUE
, 13 },
2205 { "abcdefgabcdefg", "i", PR_FALSE
, 0 },
2206 { "abcdefgabcdefg", "ab", PR_TRUE
, 7 },
2207 { "abcdefgabcdefg", "cd", PR_TRUE
, 9 },
2208 { "abcdefgabcdefg", "ef", PR_TRUE
, 11 },
2209 { "abcdefgabcdefg", "gh", PR_FALSE
, 0 },
2210 { "abcdabcabcdabc", "bc", PR_TRUE
, 12 },
2211 { "abcdefgabcdefg", "abcdefg", PR_TRUE
, 7 },
2212 { "ABCDEFG", "a", PR_FALSE
, 0 },
2213 { "ABCDEFG", "c", PR_FALSE
, 0 },
2214 { "ABCDEFG", "e", PR_FALSE
, 0 },
2215 { "ABCDEFG", "g", PR_FALSE
, 0 },
2216 { "ABCDEFG", "i", PR_FALSE
, 0 },
2217 { "ABCDEFG", "ab", PR_FALSE
, 0 },
2218 { "ABCDEFG", "cd", PR_FALSE
, 0 },
2219 { "ABCDEFG", "ef", PR_FALSE
, 0 },
2220 { "ABCDEFG", "gh", PR_FALSE
, 0 },
2221 { "ABCDABC", "bc", PR_FALSE
, 0 },
2222 { "ABCDEFG", "abcdefg", PR_FALSE
, 0 },
2223 { "ABCDEFGABCDEFG", "a", PR_FALSE
, 0 },
2224 { "ABCDEFGABCDEFG", "c", PR_FALSE
, 0 },
2225 { "ABCDEFGABCDEFG", "e", PR_FALSE
, 0 },
2226 { "ABCDEFGABCDEFG", "g", PR_FALSE
, 0 },
2227 { "ABCDEFGABCDEFG", "i", PR_FALSE
, 0 },
2228 { "ABCDEFGABCDEFG", "ab", PR_FALSE
, 0 },
2229 { "ABCDEFGABCDEFG", "cd", PR_FALSE
, 0 },
2230 { "ABCDEFGABCDEFG", "ef", PR_FALSE
, 0 },
2231 { "ABCDEFGABCDEFG", "gh", PR_FALSE
, 0 },
2232 { "ABCDABCABCDABC", "bc", PR_FALSE
, 0 },
2233 { "ABCDEFGABCDEFG", "abcdefg", PR_FALSE
, 0 }
2238 printf("Test 024 (PL_strrstr) ..."); fflush(stdout
);
2240 for( i
= 0; i
< sizeof(array
)/sizeof(array
[0]); i
++ )
2242 char *rv
= PL_strrstr(array
[i
].str
, array
[i
].sub
);
2244 if( PR_FALSE
== array
[i
].ret
)
2246 if( (char *)0 != rv
)
2248 printf("FAIL %d: %s,%s -> %.32s, not null\n", i
,
2249 array
[i
].str
? array
[i
].str
: "(null)",
2250 array
[i
].sub
? array
[i
].sub
: "(null)",
2257 if( (char *)0 == rv
)
2259 printf("FAIL %d: %s,%s -> null, not 0x%x+%lu\n", i
,
2260 array
[i
].str
? array
[i
].str
: "(null)",
2261 array
[i
].sub
? array
[i
].sub
: "(null)",
2262 array
[i
].str
, array
[i
].off
);
2266 if( &array
[i
].str
[ array
[i
].off
] != rv
)
2268 printf("FAIL %d: %s,%s -> 0x%x, not 0x%x+%lu\n", i
,
2269 array
[i
].str
? array
[i
].str
: "(null)",
2270 array
[i
].sub
? array
[i
].sub
: "(null)",
2271 rv
, array
[i
].str
, array
[i
].off
);
2282 PRBool
test_025(void)
2293 { (const char *)0, (const char *)0, 12, PR_FALSE
, 0 },
2294 { (const char *)0, "blah", 12, PR_FALSE
, 0 },
2295 { "blah-de-blah", (const char *)0, 12, PR_FALSE
, 0 },
2296 { "blah-de-blah", "blah", 0, PR_FALSE
, 0 },
2297 { "blah-de-blah", "blah", 2, PR_FALSE
, 0 },
2298 { "blah-de-blah", "blah", 3, PR_FALSE
, 0 },
2299 { "blah-de-blah", "blah", 4, PR_TRUE
, 0 },
2300 { "blah-de-blah", "blah", 5, PR_TRUE
, 0 },
2301 { "blah-de-blah", "blah", 12, PR_TRUE
, 0 },
2302 { "", "blah", 12, PR_FALSE
, 0 },
2303 { "blah-de-blah", "", 12, PR_FALSE
, 0 },
2304 { "abcdefg", "a", 5, PR_TRUE
, 0 },
2305 { "abcdefg", "c", 5, PR_TRUE
, 2 },
2306 { "abcdefg", "e", 5, PR_TRUE
, 4 },
2307 { "abcdefg", "g", 5, PR_FALSE
, 0 },
2308 { "abcdefg", "i", 5, PR_FALSE
, 0 },
2309 { "abcdefg", "ab", 5, PR_TRUE
, 0 },
2310 { "abcdefg", "cd", 5, PR_TRUE
, 2 },
2311 { "abcdefg", "ef", 5, PR_FALSE
, 0 },
2312 { "abcdefg", "gh", 5, PR_FALSE
, 0 },
2313 { "abcdabc", "bc", 5, PR_TRUE
, 1 },
2314 { "abcdabc", "bc", 6, PR_TRUE
, 1 },
2315 { "abcdabc", "bc", 7, PR_TRUE
, 1 },
2316 { "abcdefg", "abcdefg", 6, PR_FALSE
, 0 },
2317 { "abcdefg", "abcdefg", 7, PR_TRUE
, 0 },
2318 { "abcdefg", "abcdefg", 8, PR_TRUE
, 0 },
2319 { "abcdefgabcdefg", "a", 12, PR_TRUE
, 0 },
2320 { "abcdefgabcdefg", "c", 12, PR_TRUE
, 2 },
2321 { "abcdefgabcdefg", "e", 12, PR_TRUE
, 4 },
2322 { "abcdefgabcdefg", "g", 12, PR_TRUE
, 6 },
2323 { "abcdefgabcdefg", "i", 12, PR_FALSE
, 0 },
2324 { "abcdefgabcdefg", "ab", 12, PR_TRUE
, 0 },
2325 { "abcdefgabcdefg", "cd", 12, PR_TRUE
, 2 },
2326 { "abcdefgabcdefg", "ef", 12, PR_TRUE
, 4 },
2327 { "abcdefgabcdefg", "gh", 12, PR_FALSE
, 0 },
2328 { "abcdabcabcdabc", "bc", 5, PR_TRUE
, 1 },
2329 { "abcdabcabcdabc", "bc", 6, PR_TRUE
, 1 },
2330 { "abcdabcabcdabc", "bc", 7, PR_TRUE
, 1 },
2331 { "abcdefgabcdefg", "abcdefg", 6, PR_FALSE
, 0 },
2332 { "abcdefgabcdefg", "abcdefg", 7, PR_TRUE
, 0 },
2333 { "abcdefgabcdefg", "abcdefg", 8, PR_TRUE
, 0 },
2334 { "ABCDEFG", "a", 5, PR_FALSE
, 0 },
2335 { "ABCDEFG", "c", 5, PR_FALSE
, 0 },
2336 { "ABCDEFG", "e", 5, PR_FALSE
, 0 },
2337 { "ABCDEFG", "g", 5, PR_FALSE
, 0 },
2338 { "ABCDEFG", "i", 5, PR_FALSE
, 0 },
2339 { "ABCDEFG", "ab", 5, PR_FALSE
, 0 },
2340 { "ABCDEFG", "cd", 5, PR_FALSE
, 0 },
2341 { "ABCDEFG", "ef", 5, PR_FALSE
, 0 },
2342 { "ABCDEFG", "gh", 5, PR_FALSE
, 0 },
2343 { "ABCDABC", "bc", 5, PR_FALSE
, 0 },
2344 { "ABCDABC", "bc", 6, PR_FALSE
, 0 },
2345 { "ABCDABC", "bc", 7, PR_FALSE
, 0 },
2346 { "ABCDEFG", "abcdefg", 6, PR_FALSE
, 0 },
2347 { "ABCDEFG", "abcdefg", 7, PR_FALSE
, 0 },
2348 { "ABCDEFG", "abcdefg", 8, PR_FALSE
, 0 },
2349 { "ABCDEFGABCDEFG", "a", 12, PR_FALSE
, 0 },
2350 { "ABCDEFGABCDEFG", "c", 12, PR_FALSE
, 0 },
2351 { "ABCDEFGABCDEFG", "e", 12, PR_FALSE
, 0 },
2352 { "ABCDEFGABCDEFG", "g", 12, PR_FALSE
, 0 },
2353 { "ABCDEFGABCDEFG", "i", 12, PR_FALSE
, 0 },
2354 { "ABCDEFGABCDEFG", "ab", 12, PR_FALSE
, 0 },
2355 { "ABCDEFGABCDEFG", "cd", 12, PR_FALSE
, 0 },
2356 { "ABCDEFGABCDEFG", "ef", 12, PR_FALSE
, 0 },
2357 { "ABCDEFGABCDEFG", "gh", 12, PR_FALSE
, 0 },
2358 { "ABCDABCABCDABC", "bc", 5, PR_FALSE
, 0 },
2359 { "ABCDABCABCDABC", "bc", 6, PR_FALSE
, 0 },
2360 { "ABCDABCABCDABC", "bc", 7, PR_FALSE
, },
2361 { "ABCDEFGABCDEFG", "abcdefg", 6, PR_FALSE
, 0 },
2362 { "ABCDEFGABCDEFG", "abcdefg", 7, PR_FALSE
, 0 },
2363 { "ABCDEFGABCDEFG", "abcdefg", 8, PR_FALSE
, 0 }
2368 printf("Test 025 (PL_strnstr) ..."); fflush(stdout
);
2370 for( i
= 0; i
< sizeof(array
)/sizeof(array
[0]); i
++ )
2372 char *rv
= PL_strnstr(array
[i
].str
, array
[i
].sub
, array
[i
].max
);
2374 if( PR_FALSE
== array
[i
].ret
)
2376 if( (char *)0 != rv
)
2378 printf("FAIL %d: %s,%s/%lu -> %.32s, not null\n", i
,
2379 array
[i
].str
? array
[i
].str
: "(null)",
2380 array
[i
].sub
? array
[i
].sub
: "(null)",
2387 if( (char *)0 == rv
)
2389 printf("FAIL %d: %s,%s/%lu -> null, not 0x%x+%lu\n", i
,
2390 array
[i
].str
? array
[i
].str
: "(null)",
2391 array
[i
].sub
? array
[i
].sub
: "(null)",
2392 array
[i
].max
, array
[i
].str
, array
[i
].off
);
2396 if( &array
[i
].str
[ array
[i
].off
] != rv
)
2398 printf("FAIL %d: %s,%s/%lu -> 0x%x, not 0x%x+%lu\n", i
,
2399 array
[i
].str
? array
[i
].str
: "(null)",
2400 array
[i
].sub
? array
[i
].sub
: "(null)",
2401 array
[i
].max
, rv
, array
[i
].str
, array
[i
].off
);
2412 PRBool
test_026(void)
2423 { (const char *)0, (const char *)0, 12, PR_FALSE
, 0 },
2424 { (const char *)0, "blah", 12, PR_FALSE
, 0 },
2425 { "blah-de-blah", (const char *)0, 12, PR_FALSE
, 0 },
2426 { "blah-de-blah", "blah", 0, PR_FALSE
, 0 },
2427 { "blah-de-blah", "blah", 2, PR_FALSE
, 0 },
2428 { "blah-de-blah", "blah", 3, PR_FALSE
, 0 },
2429 { "blah-de-blah", "blah", 4, PR_TRUE
, 0 },
2430 { "blah-de-blah", "blah", 5, PR_TRUE
, 0 },
2431 { "blah-de-blah", "blah", 11, PR_TRUE
, 0 },
2432 { "blah-de-blah", "blah", 12, PR_TRUE
, 8 },
2433 { "blah-de-blah", "blah", 13, PR_TRUE
, 8 },
2434 { "", "blah", 12, PR_FALSE
, 0 },
2435 { "blah-de-blah", "", 12, PR_FALSE
, 0 },
2436 { "abcdefg", "a", 5, PR_TRUE
, 0 },
2437 { "abcdefg", "c", 5, PR_TRUE
, 2 },
2438 { "abcdefg", "e", 5, PR_TRUE
, 4 },
2439 { "abcdefg", "g", 5, PR_FALSE
, 0 },
2440 { "abcdefg", "i", 5, PR_FALSE
, 0 },
2441 { "abcdefg", "ab", 5, PR_TRUE
, 0 },
2442 { "abcdefg", "cd", 5, PR_TRUE
, 2 },
2443 { "abcdefg", "ef", 5, PR_FALSE
, 0 },
2444 { "abcdefg", "gh", 5, PR_FALSE
, 0 },
2445 { "abcdabc", "bc", 5, PR_TRUE
, 1 },
2446 { "abcdabc", "bc", 6, PR_TRUE
, 1 },
2447 { "abcdabc", "bc", 7, PR_TRUE
, 5 },
2448 { "abcdefg", "abcdefg", 6, PR_FALSE
, 0 },
2449 { "abcdefg", "abcdefg", 7, PR_TRUE
, 0 },
2450 { "abcdefg", "abcdefg", 8, PR_TRUE
, 0 },
2451 { "abcdefgabcdefg", "a", 12, PR_TRUE
, 7 },
2452 { "abcdefgabcdefg", "c", 12, PR_TRUE
, 9 },
2453 { "abcdefgabcdefg", "e", 12, PR_TRUE
, 11 },
2454 { "abcdefgabcdefg", "g", 12, PR_TRUE
, 6 },
2455 { "abcdefgabcdefg", "i", 12, PR_FALSE
, 0 },
2456 { "abcdefgabcdefg", "ab", 12, PR_TRUE
, 7 },
2457 { "abcdefgabcdefg", "cd", 12, PR_TRUE
, 9 },
2458 { "abcdefgabcdefg", "ef", 12, PR_TRUE
, 4 },
2459 { "abcdefgabcdefg", "gh", 12, PR_FALSE
, 0 },
2460 { "abcdabcabcdabc", "bc", 12, PR_TRUE
, 8 },
2461 { "abcdabcabcdabc", "bc", 13, PR_TRUE
, 8 },
2462 { "abcdabcabcdabc", "bc", 14, PR_TRUE
, 12 },
2463 { "abcdefgabcdefg", "abcdefg", 13, PR_TRUE
, 0 },
2464 { "abcdefgabcdefg", "abcdefg", 14, PR_TRUE
, 7 },
2465 { "abcdefgabcdefg", "abcdefg", 15, PR_TRUE
, 7 },
2466 { "ABCDEFG", "a", 5, PR_FALSE
, 0 },
2467 { "ABCDEFG", "c", 5, PR_FALSE
, 0 },
2468 { "ABCDEFG", "e", 5, PR_FALSE
, 0 },
2469 { "ABCDEFG", "g", 5, PR_FALSE
, 0 },
2470 { "ABCDEFG", "i", 5, PR_FALSE
, 0 },
2471 { "ABCDEFG", "ab", 5, PR_FALSE
, 0 },
2472 { "ABCDEFG", "cd", 5, PR_FALSE
, 0 },
2473 { "ABCDEFG", "ef", 5, PR_FALSE
, 0 },
2474 { "ABCDEFG", "gh", 5, PR_FALSE
, 0 },
2475 { "ABCDABC", "bc", 5, PR_FALSE
, 0 },
2476 { "ABCDABC", "bc", 6, PR_FALSE
, 0 },
2477 { "ABCDABC", "bc", 7, PR_FALSE
, 0 },
2478 { "ABCDEFG", "abcdefg", 6, PR_FALSE
, 0 },
2479 { "ABCDEFG", "abcdefg", 7, PR_FALSE
, 0 },
2480 { "ABCDEFG", "abcdefg", 8, PR_FALSE
, 0 },
2481 { "ABCDEFGABCDEFG", "a", 12, PR_FALSE
, 0 },
2482 { "ABCDEFGABCDEFG", "c", 12, PR_FALSE
, 0 },
2483 { "ABCDEFGABCDEFG", "e", 12, PR_FALSE
, 0 },
2484 { "ABCDEFGABCDEFG", "g", 12, PR_FALSE
, 0 },
2485 { "ABCDEFGABCDEFG", "i", 12, PR_FALSE
, 0 },
2486 { "ABCDEFGABCDEFG", "ab", 12, PR_FALSE
, 0 },
2487 { "ABCDEFGABCDEFG", "cd", 12, PR_FALSE
, 0 },
2488 { "ABCDEFGABCDEFG", "ef", 12, PR_FALSE
, 0 },
2489 { "ABCDEFGABCDEFG", "gh", 12, PR_FALSE
, 0 },
2490 { "ABCDABCABCDABC", "bc", 12, PR_FALSE
, 0 },
2491 { "ABCDABCABCDABC", "bc", 13, PR_FALSE
, 0 },
2492 { "ABCDABCABCDABC", "bc", 14, PR_FALSE
, 0 },
2493 { "ABCDEFGABCDEFG", "abcdefg", 13, PR_FALSE
, 0 },
2494 { "ABCDEFGABCDEFG", "abcdefg", 14, PR_FALSE
, 0 },
2495 { "ABCDEFGABCDEFG", "abcdefg", 15, PR_FALSE
, 0 }
2500 printf("Test 026 (PL_strnrstr) ..."); fflush(stdout
);
2502 for( i
= 0; i
< sizeof(array
)/sizeof(array
[0]); i
++ )
2504 char *rv
= PL_strnrstr(array
[i
].str
, array
[i
].sub
, array
[i
].max
);
2506 if( PR_FALSE
== array
[i
].ret
)
2508 if( (char *)0 != rv
)
2510 printf("FAIL %d: %s,%s/%lu -> %.32s, not null\n", i
,
2511 array
[i
].str
? array
[i
].str
: "(null)",
2512 array
[i
].sub
? array
[i
].sub
: "(null)",
2519 if( (char *)0 == rv
)
2521 printf("FAIL %d: %s,%s/%lu -> null, not 0x%x+%lu\n", i
,
2522 array
[i
].str
? array
[i
].str
: "(null)",
2523 array
[i
].sub
? array
[i
].sub
: "(null)",
2524 array
[i
].max
, array
[i
].str
, array
[i
].off
);
2528 if( &array
[i
].str
[ array
[i
].off
] != rv
)
2530 printf("FAIL %d: %s,%s/%lu -> 0x%x, not 0x%x+%lu\n", i
,
2531 array
[i
].str
? array
[i
].str
: "(null)",
2532 array
[i
].sub
? array
[i
].sub
: "(null)",
2533 array
[i
].max
, rv
, array
[i
].str
, array
[i
].off
);
2544 PRBool
test_027(void)
2554 { (const char *)0, (const char *)0, PR_FALSE
, 0 },
2555 { (const char *)0, "blah", PR_FALSE
, 0 },
2556 { "blah-de-blah", (const char *)0, PR_FALSE
, 0 },
2557 { "blah-de-blah", "blah", PR_TRUE
, 0 },
2558 { "", "blah", PR_FALSE
, 0 },
2559 { "blah-de-blah", "", PR_FALSE
, 0 },
2560 { "abcdefg", "a", PR_TRUE
, 0 },
2561 { "abcdefg", "c", PR_TRUE
, 2 },
2562 { "abcdefg", "e", PR_TRUE
, 4 },
2563 { "abcdefg", "g", PR_TRUE
, 6 },
2564 { "abcdefg", "i", PR_FALSE
, 0 },
2565 { "abcdefg", "ab", PR_TRUE
, 0 },
2566 { "abcdefg", "cd", PR_TRUE
, 2 },
2567 { "abcdefg", "ef", PR_TRUE
, 4 },
2568 { "abcdefg", "gh", PR_FALSE
, 0 },
2569 { "abcdabc", "bc", PR_TRUE
, 1 },
2570 { "abcdefg", "abcdefg", PR_TRUE
, 0 },
2571 { "abcdefgabcdefg", "a", PR_TRUE
, 0 },
2572 { "abcdefgabcdefg", "c", PR_TRUE
, 2 },
2573 { "abcdefgabcdefg", "e", PR_TRUE
, 4 },
2574 { "abcdefgabcdefg", "g", PR_TRUE
, 6 },
2575 { "abcdefgabcdefg", "i", PR_FALSE
, 0 },
2576 { "abcdefgabcdefg", "ab", PR_TRUE
, 0 },
2577 { "abcdefgabcdefg", "cd", PR_TRUE
, 2 },
2578 { "abcdefgabcdefg", "ef", PR_TRUE
, 4 },
2579 { "abcdefgabcdefg", "gh", PR_FALSE
, 0 },
2580 { "abcdabcabcdabc", "bc", PR_TRUE
, 1 },
2581 { "abcdefgabcdefg", "abcdefg", PR_TRUE
, 0 },
2582 { "ABCDEFG", "a", PR_TRUE
, 0 },
2583 { "ABCDEFG", "c", PR_TRUE
, 2 },
2584 { "ABCDEFG", "e", PR_TRUE
, 4 },
2585 { "ABCDEFG", "g", PR_TRUE
, 6 },
2586 { "ABCDEFG", "i", PR_FALSE
, 0 },
2587 { "ABCDEFG", "ab", PR_TRUE
, 0 },
2588 { "ABCDEFG", "cd", PR_TRUE
, 2 },
2589 { "ABCDEFG", "ef", PR_TRUE
, 4 },
2590 { "ABCDEFG", "gh", PR_FALSE
, 0 },
2591 { "ABCDABC", "bc", PR_TRUE
, 1 },
2592 { "ABCDEFG", "abcdefg", PR_TRUE
, 0 },
2593 { "ABCDEFGABCDEFG", "a", PR_TRUE
, 0 },
2594 { "ABCDEFGABCDEFG", "c", PR_TRUE
, 2 },
2595 { "ABCDEFGABCDEFG", "e", PR_TRUE
, 4 },
2596 { "ABCDEFGABCDEFG", "g", PR_TRUE
, 6 },
2597 { "ABCDEFGABCDEFG", "i", PR_FALSE
, 0 },
2598 { "ABCDEFGABCDEFG", "ab", PR_TRUE
, 0 },
2599 { "ABCDEFGABCDEFG", "cd", PR_TRUE
, 2 },
2600 { "ABCDEFGABCDEFG", "ef", PR_TRUE
, 4 },
2601 { "ABCDEFGABCDEFG", "gh", PR_FALSE
, 0 },
2602 { "ABCDABCABCDABC", "bc", PR_TRUE
, 1 },
2603 { "ABCDEFGABCDEFG", "abcdefg", PR_TRUE
, 0 }
2608 printf("Test 027 (PL_strcasestr) ..."); fflush(stdout
);
2610 for( i
= 0; i
< sizeof(array
)/sizeof(array
[0]); i
++ )
2612 char *rv
= PL_strcasestr(array
[i
].str
, array
[i
].sub
);
2614 if( PR_FALSE
== array
[i
].ret
)
2616 if( (char *)0 != rv
)
2618 printf("FAIL %d: %s,%s -> %.32s, not null\n", i
,
2619 array
[i
].str
? array
[i
].str
: "(null)",
2620 array
[i
].sub
? array
[i
].sub
: "(null)",
2627 if( (char *)0 == rv
)
2629 printf("FAIL %d: %s,%s -> null, not 0x%x+%lu\n", i
,
2630 array
[i
].str
? array
[i
].str
: "(null)",
2631 array
[i
].sub
? array
[i
].sub
: "(null)",
2632 array
[i
].str
, array
[i
].off
);
2636 if( &array
[i
].str
[ array
[i
].off
] != rv
)
2638 printf("FAIL %d: %s,%s -> 0x%x, not 0x%x+%lu\n", i
,
2639 array
[i
].str
? array
[i
].str
: "(null)",
2640 array
[i
].sub
? array
[i
].sub
: "(null)",
2641 rv
, array
[i
].str
, array
[i
].off
);
2651 /* PL_strcaserstr */
2652 PRBool
test_028(void)
2662 { (const char *)0, (const char *)0, PR_FALSE
, 0 },
2663 { (const char *)0, "blah", PR_FALSE
, 0 },
2664 { "blah-de-blah", (const char *)0, PR_FALSE
, 0 },
2665 { "blah-de-blah", "blah", PR_TRUE
, 8 },
2666 { "", "blah", PR_FALSE
, 0 },
2667 { "blah-de-blah", "", PR_FALSE
, 0 },
2668 { "abcdefg", "a", PR_TRUE
, 0 },
2669 { "abcdefg", "c", PR_TRUE
, 2 },
2670 { "abcdefg", "e", PR_TRUE
, 4 },
2671 { "abcdefg", "g", PR_TRUE
, 6 },
2672 { "abcdefg", "i", PR_FALSE
, 0 },
2673 { "abcdefg", "ab", PR_TRUE
, 0 },
2674 { "abcdefg", "cd", PR_TRUE
, 2 },
2675 { "abcdefg", "ef", PR_TRUE
, 4 },
2676 { "abcdefg", "gh", PR_FALSE
, 0 },
2677 { "abcdabc", "bc", PR_TRUE
, 5 },
2678 { "abcdefg", "abcdefg", PR_TRUE
, 0 },
2679 { "abcdefgabcdefg", "a", PR_TRUE
, 7 },
2680 { "abcdefgabcdefg", "c", PR_TRUE
, 9 },
2681 { "abcdefgabcdefg", "e", PR_TRUE
, 11 },
2682 { "abcdefgabcdefg", "g", PR_TRUE
, 13 },
2683 { "abcdefgabcdefg", "i", PR_FALSE
, 0 },
2684 { "abcdefgabcdefg", "ab", PR_TRUE
, 7 },
2685 { "abcdefgabcdefg", "cd", PR_TRUE
, 9 },
2686 { "abcdefgabcdefg", "ef", PR_TRUE
, 11 },
2687 { "abcdefgabcdefg", "gh", PR_FALSE
, 0 },
2688 { "abcdabcabcdabc", "bc", PR_TRUE
, 12 },
2689 { "abcdefgabcdefg", "abcdefg", PR_TRUE
, 7 },
2690 { "ABCDEFG", "a", PR_TRUE
, 0 },
2691 { "ABCDEFG", "c", PR_TRUE
, 2 },
2692 { "ABCDEFG", "e", PR_TRUE
, 4 },
2693 { "ABCDEFG", "g", PR_TRUE
, 6 },
2694 { "ABCDEFG", "i", PR_FALSE
, 0 },
2695 { "ABCDEFG", "ab", PR_TRUE
, 0 },
2696 { "ABCDEFG", "cd", PR_TRUE
, 2 },
2697 { "ABCDEFG", "ef", PR_TRUE
, 4 },
2698 { "ABCDEFG", "gh", PR_FALSE
, 0 },
2699 { "ABCDABC", "bc", PR_TRUE
, 5 },
2700 { "ABCDEFG", "abcdefg", PR_TRUE
, 0 },
2701 { "ABCDEFGABCDEFG", "a", PR_TRUE
, 7 },
2702 { "ABCDEFGABCDEFG", "c", PR_TRUE
, 9 },
2703 { "ABCDEFGABCDEFG", "e", PR_TRUE
, 11 },
2704 { "ABCDEFGABCDEFG", "g", PR_TRUE
, 13 },
2705 { "ABCDEFGABCDEFG", "i", PR_FALSE
, 0 },
2706 { "ABCDEFGABCDEFG", "ab", PR_TRUE
, 7 },
2707 { "ABCDEFGABCDEFG", "cd", PR_TRUE
, 9 },
2708 { "ABCDEFGABCDEFG", "ef", PR_TRUE
, 11 },
2709 { "ABCDEFGABCDEFG", "gh", PR_FALSE
, 0 },
2710 { "ABCDABCABCDABC", "bc", PR_TRUE
, 12 },
2711 { "ABCDEFGABCDEFG", "abcdefg", PR_TRUE
, 7 }
2716 printf("Test 028 (PL_strcaserstr) ..."); fflush(stdout
);
2718 for( i
= 0; i
< sizeof(array
)/sizeof(array
[0]); i
++ )
2720 char *rv
= PL_strcaserstr(array
[i
].str
, array
[i
].sub
);
2722 if( PR_FALSE
== array
[i
].ret
)
2724 if( (char *)0 != rv
)
2726 printf("FAIL %d: %s,%s -> %.32s, not null\n", i
,
2727 array
[i
].str
? array
[i
].str
: "(null)",
2728 array
[i
].sub
? array
[i
].sub
: "(null)",
2735 if( (char *)0 == rv
)
2737 printf("FAIL %d: %s,%s -> null, not 0x%x+%lu\n", i
,
2738 array
[i
].str
? array
[i
].str
: "(null)",
2739 array
[i
].sub
? array
[i
].sub
: "(null)",
2740 array
[i
].str
, array
[i
].off
);
2744 if( &array
[i
].str
[ array
[i
].off
] != rv
)
2746 printf("FAIL %d: %s,%s -> 0x%x, not 0x%x+%lu\n", i
,
2747 array
[i
].str
? array
[i
].str
: "(null)",
2748 array
[i
].sub
? array
[i
].sub
: "(null)",
2749 rv
, array
[i
].str
, array
[i
].off
);
2759 /* PL_strncasestr */
2760 PRBool
test_029(void)
2771 { (const char *)0, (const char *)0, 12, PR_FALSE
, 0 },
2772 { (const char *)0, "blah", 12, PR_FALSE
, 0 },
2773 { "blah-de-blah", (const char *)0, 12, PR_FALSE
, 0 },
2774 { "blah-de-blah", "blah", 0, PR_FALSE
, 0 },
2775 { "blah-de-blah", "blah", 2, PR_FALSE
, 0 },
2776 { "blah-de-blah", "blah", 3, PR_FALSE
, 0 },
2777 { "blah-de-blah", "blah", 4, PR_TRUE
, 0 },
2778 { "blah-de-blah", "blah", 5, PR_TRUE
, 0 },
2779 { "blah-de-blah", "blah", 12, PR_TRUE
, 0 },
2780 { "", "blah", 12, PR_FALSE
, 0 },
2781 { "blah-de-blah", "", 12, PR_FALSE
, 0 },
2782 { "abcdefg", "a", 5, PR_TRUE
, 0 },
2783 { "abcdefg", "c", 5, PR_TRUE
, 2 },
2784 { "abcdefg", "e", 5, PR_TRUE
, 4 },
2785 { "abcdefg", "g", 5, PR_FALSE
, 0 },
2786 { "abcdefg", "i", 5, PR_FALSE
, 0 },
2787 { "abcdefg", "ab", 5, PR_TRUE
, 0 },
2788 { "abcdefg", "cd", 5, PR_TRUE
, 2 },
2789 { "abcdefg", "ef", 5, PR_FALSE
, 0 },
2790 { "abcdefg", "gh", 5, PR_FALSE
, 0 },
2791 { "abcdabc", "bc", 5, PR_TRUE
, 1 },
2792 { "abcdabc", "bc", 6, PR_TRUE
, 1 },
2793 { "abcdabc", "bc", 7, PR_TRUE
, 1 },
2794 { "abcdefg", "abcdefg", 6, PR_FALSE
, 0 },
2795 { "abcdefg", "abcdefg", 7, PR_TRUE
, 0 },
2796 { "abcdefg", "abcdefg", 8, PR_TRUE
, 0 },
2797 { "abcdefgabcdefg", "a", 12, PR_TRUE
, 0 },
2798 { "abcdefgabcdefg", "c", 12, PR_TRUE
, 2 },
2799 { "abcdefgabcdefg", "e", 12, PR_TRUE
, 4 },
2800 { "abcdefgabcdefg", "g", 12, PR_TRUE
, 6 },
2801 { "abcdefgabcdefg", "i", 12, PR_FALSE
, 0 },
2802 { "abcdefgabcdefg", "ab", 12, PR_TRUE
, 0 },
2803 { "abcdefgabcdefg", "cd", 12, PR_TRUE
, 2 },
2804 { "abcdefgabcdefg", "ef", 12, PR_TRUE
, 4 },
2805 { "abcdefgabcdefg", "gh", 12, PR_FALSE
, 0 },
2806 { "abcdabcabcdabc", "bc", 5, PR_TRUE
, 1 },
2807 { "abcdabcabcdabc", "bc", 6, PR_TRUE
, 1 },
2808 { "abcdabcabcdabc", "bc", 7, PR_TRUE
, 1 },
2809 { "abcdefgabcdefg", "abcdefg", 6, PR_FALSE
, 0 },
2810 { "abcdefgabcdefg", "abcdefg", 7, PR_TRUE
, 0 },
2811 { "abcdefgabcdefg", "abcdefg", 8, PR_TRUE
, 0 },
2812 { "ABCDEFG", "a", 5, PR_TRUE
, 0 },
2813 { "ABCDEFG", "c", 5, PR_TRUE
, 2 },
2814 { "ABCDEFG", "e", 5, PR_TRUE
, 4 },
2815 { "ABCDEFG", "g", 5, PR_FALSE
, 0 },
2816 { "ABCDEFG", "i", 5, PR_FALSE
, 0 },
2817 { "ABCDEFG", "ab", 5, PR_TRUE
, 0 },
2818 { "ABCDEFG", "cd", 5, PR_TRUE
, 2 },
2819 { "ABCDEFG", "ef", 5, PR_FALSE
, 0 },
2820 { "ABCDEFG", "gh", 5, PR_FALSE
, 0 },
2821 { "ABCDABC", "bc", 5, PR_TRUE
, 1 },
2822 { "ABCDABC", "bc", 6, PR_TRUE
, 1 },
2823 { "ABCDABC", "bc", 7, PR_TRUE
, 1 },
2824 { "ABCDEFG", "abcdefg", 6, PR_FALSE
, 0 },
2825 { "ABCDEFG", "abcdefg", 7, PR_TRUE
, 0 },
2826 { "ABCDEFG", "abcdefg", 8, PR_TRUE
, 0 },
2827 { "ABCDEFGABCDEFG", "a", 12, PR_TRUE
, 0 },
2828 { "ABCDEFGABCDEFG", "c", 12, PR_TRUE
, 2 },
2829 { "ABCDEFGABCDEFG", "e", 12, PR_TRUE
, 4 },
2830 { "ABCDEFGABCDEFG", "g", 12, PR_TRUE
, 6 },
2831 { "ABCDEFGABCDEFG", "i", 12, PR_FALSE
, 0 },
2832 { "ABCDEFGABCDEFG", "ab", 12, PR_TRUE
, 0 },
2833 { "ABCDEFGABCDEFG", "cd", 12, PR_TRUE
, 2 },
2834 { "ABCDEFGABCDEFG", "ef", 12, PR_TRUE
, 4 },
2835 { "ABCDEFGABCDEFG", "gh", 12, PR_FALSE
, 0 },
2836 { "ABCDABCABCDABC", "bc", 5, PR_TRUE
, 1 },
2837 { "ABCDABCABCDABC", "bc", 6, PR_TRUE
, 1 },
2838 { "ABCDABCABCDABC", "bc", 7, PR_TRUE
, 1 },
2839 { "ABCDEFGABCDEFG", "abcdefg", 6, PR_FALSE
, 0 },
2840 { "ABCDEFGABCDEFG", "abcdefg", 7, PR_TRUE
, 0 },
2841 { "ABCDEFGABCDEFG", "abcdefg", 8, PR_TRUE
, 0 }
2846 printf("Test 029 (PL_strncasestr) ..."); fflush(stdout
);
2848 for( i
= 0; i
< sizeof(array
)/sizeof(array
[0]); i
++ )
2850 char *rv
= PL_strncasestr(array
[i
].str
, array
[i
].sub
, array
[i
].max
);
2852 if( PR_FALSE
== array
[i
].ret
)
2854 if( (char *)0 != rv
)
2856 printf("FAIL %d: %s,%s/%lu -> %.32s, not null\n", i
,
2857 array
[i
].str
? array
[i
].str
: "(null)",
2858 array
[i
].sub
? array
[i
].sub
: "(null)",
2865 if( (char *)0 == rv
)
2867 printf("FAIL %d: %s,%s/%lu -> null, not 0x%x+%lu\n", i
,
2868 array
[i
].str
? array
[i
].str
: "(null)",
2869 array
[i
].sub
? array
[i
].sub
: "(null)",
2870 array
[i
].max
, array
[i
].str
, array
[i
].off
);
2874 if( &array
[i
].str
[ array
[i
].off
] != rv
)
2876 printf("FAIL %d: %s,%s/%lu -> 0x%x, not 0x%x+%lu\n", i
,
2877 array
[i
].str
? array
[i
].str
: "(null)",
2878 array
[i
].sub
? array
[i
].sub
: "(null)",
2879 array
[i
].max
, rv
, array
[i
].str
, array
[i
].off
);
2889 /* PL_strncaserstr */
2890 PRBool
test_030(void)
2901 { (const char *)0, (const char *)0, 12, PR_FALSE
, 0 },
2902 { (const char *)0, "blah", 12, PR_FALSE
, 0 },
2903 { "blah-de-blah", (const char *)0, 12, PR_FALSE
, 0 },
2904 { "blah-de-blah", "blah", 0, PR_FALSE
, 0 },
2905 { "blah-de-blah", "blah", 2, PR_FALSE
, 0 },
2906 { "blah-de-blah", "blah", 3, PR_FALSE
, 0 },
2907 { "blah-de-blah", "blah", 4, PR_TRUE
, 0 },
2908 { "blah-de-blah", "blah", 5, PR_TRUE
, 0 },
2909 { "blah-de-blah", "blah", 11, PR_TRUE
, 0 },
2910 { "blah-de-blah", "blah", 12, PR_TRUE
, 8 },
2911 { "blah-de-blah", "blah", 13, PR_TRUE
, 8 },
2912 { "", "blah", 12, PR_FALSE
, 0 },
2913 { "blah-de-blah", "", 12, PR_FALSE
, 0 },
2914 { "abcdefg", "a", 5, PR_TRUE
, 0 },
2915 { "abcdefg", "c", 5, PR_TRUE
, 2 },
2916 { "abcdefg", "e", 5, PR_TRUE
, 4 },
2917 { "abcdefg", "g", 5, PR_FALSE
, 0 },
2918 { "abcdefg", "i", 5, PR_FALSE
, 0 },
2919 { "abcdefg", "ab", 5, PR_TRUE
, 0 },
2920 { "abcdefg", "cd", 5, PR_TRUE
, 2 },
2921 { "abcdefg", "ef", 5, PR_FALSE
, 0 },
2922 { "abcdefg", "gh", 5, PR_FALSE
, 0 },
2923 { "abcdabc", "bc", 5, PR_TRUE
, 1 },
2924 { "abcdabc", "bc", 6, PR_TRUE
, 1 },
2925 { "abcdabc", "bc", 7, PR_TRUE
, 5 },
2926 { "abcdefg", "abcdefg", 6, PR_FALSE
, 0 },
2927 { "abcdefg", "abcdefg", 7, PR_TRUE
, 0 },
2928 { "abcdefg", "abcdefg", 8, PR_TRUE
, 0 },
2929 { "abcdefgabcdefg", "a", 12, PR_TRUE
, 7 },
2930 { "abcdefgabcdefg", "c", 12, PR_TRUE
, 9 },
2931 { "abcdefgabcdefg", "e", 12, PR_TRUE
, 11 },
2932 { "abcdefgabcdefg", "g", 12, PR_TRUE
, 6 },
2933 { "abcdefgabcdefg", "i", 12, PR_FALSE
, 0 },
2934 { "abcdefgabcdefg", "ab", 12, PR_TRUE
, 7 },
2935 { "abcdefgabcdefg", "cd", 12, PR_TRUE
, 9 },
2936 { "abcdefgabcdefg", "ef", 12, PR_TRUE
, 4 },
2937 { "abcdefgabcdefg", "gh", 12, PR_FALSE
, 0 },
2938 { "abcdabcabcdabc", "bc", 12, PR_TRUE
, 8 },
2939 { "abcdabcabcdabc", "bc", 13, PR_TRUE
, 8 },
2940 { "abcdabcabcdabc", "bc", 14, PR_TRUE
, 12 },
2941 { "abcdefgabcdefg", "abcdefg", 13, PR_TRUE
, 0 },
2942 { "abcdefgabcdefg", "abcdefg", 14, PR_TRUE
, 7 },
2943 { "abcdefgabcdefg", "abcdefg", 15, PR_TRUE
, 7 },
2944 { "ABCDEFG", "a", 5, PR_TRUE
, 0 },
2945 { "ABCDEFG", "c", 5, PR_TRUE
, 2 },
2946 { "ABCDEFG", "e", 5, PR_TRUE
, 4 },
2947 { "ABCDEFG", "g", 5, PR_FALSE
, 0 },
2948 { "ABCDEFG", "i", 5, PR_FALSE
, 0 },
2949 { "ABCDEFG", "ab", 5, PR_TRUE
, 0 },
2950 { "ABCDEFG", "cd", 5, PR_TRUE
, 2 },
2951 { "ABCDEFG", "ef", 5, PR_FALSE
, 0 },
2952 { "ABCDEFG", "gh", 5, PR_FALSE
, 0 },
2953 { "ABCDABC", "bc", 5, PR_TRUE
, 1 },
2954 { "ABCDABC", "bc", 6, PR_TRUE
, 1 },
2955 { "ABCDABC", "bc", 7, PR_TRUE
, 5 },
2956 { "ABCDEFG", "abcdefg", 6, PR_FALSE
, 0 },
2957 { "ABCDEFG", "abcdefg", 7, PR_TRUE
, 0 },
2958 { "ABCDEFG", "abcdefg", 8, PR_TRUE
, 0 },
2959 { "ABCDEFGABCDEFG", "a", 12, PR_TRUE
, 7 },
2960 { "ABCDEFGABCDEFG", "c", 12, PR_TRUE
, 9 },
2961 { "ABCDEFGABCDEFG", "e", 12, PR_TRUE
, 11 },
2962 { "ABCDEFGABCDEFG", "g", 12, PR_TRUE
, 6 },
2963 { "ABCDEFGABCDEFG", "i", 12, PR_FALSE
, 0 },
2964 { "ABCDEFGABCDEFG", "ab", 12, PR_TRUE
, 7 },
2965 { "ABCDEFGABCDEFG", "cd", 12, PR_TRUE
, 9 },
2966 { "ABCDEFGABCDEFG", "ef", 12, PR_TRUE
, 4 },
2967 { "ABCDEFGABCDEFG", "gh", 12, PR_FALSE
, 0 },
2968 { "ABCDABCABCDABC", "bc", 12, PR_TRUE
, 8 },
2969 { "ABCDABCABCDABC", "bc", 13, PR_TRUE
, 8 },
2970 { "ABCDABCABCDABC", "bc", 14, PR_TRUE
, 12 },
2971 { "ABCDEFGABCDEFG", "abcdefg", 13, PR_TRUE
, 0 },
2972 { "ABCDEFGABCDEFG", "abcdefg", 14, PR_TRUE
, 7 },
2973 { "ABCDEFGABCDEFG", "abcdefg", 15, PR_TRUE
, 7 }
2978 printf("Test 030 (PL_strncaserstr)..."); fflush(stdout
);
2980 for( i
= 0; i
< sizeof(array
)/sizeof(array
[0]); i
++ )
2982 char *rv
= PL_strncaserstr(array
[i
].str
, array
[i
].sub
, array
[i
].max
);
2984 if( PR_FALSE
== array
[i
].ret
)
2986 if( (char *)0 != rv
)
2988 printf("FAIL %d: %s,%s/%lu -> %.32s, not null\n", i
,
2989 array
[i
].str
? array
[i
].str
: "(null)",
2990 array
[i
].sub
? array
[i
].sub
: "(null)",
2997 if( (char *)0 == rv
)
2999 printf("FAIL %d: %s,%s/%lu -> null, not 0x%x+%lu\n", i
,
3000 array
[i
].str
? array
[i
].str
: "(null)",
3001 array
[i
].sub
? array
[i
].sub
: "(null)",
3002 array
[i
].max
, array
[i
].str
, array
[i
].off
);
3006 if( &array
[i
].str
[ array
[i
].off
] != rv
)
3008 printf("FAIL %d: %s,%s/%lu -> 0x%x, not 0x%x+%lu\n", i
,
3009 array
[i
].str
? array
[i
].str
: "(null)",
3010 array
[i
].sub
? array
[i
].sub
: "(null)",
3011 array
[i
].max
, rv
, array
[i
].str
, array
[i
].off
);
3022 PRBool
test_031(void)
3024 static const char *tokens
[] = {
3025 "wtc", "relyea", "nelsonb", "jpierre", "nicolson",
3026 "ian.mcgreer", "kirk.erickson", "sonja.mirtitsch", "mhein"
3029 static const char *seps
[] = {
3030 ", ", ",", " ", "\t", ",,,", " ,", " ", " \t\t", ","
3033 static const char s2
[] = ", \t";
3035 char string
[ 1024 ];
3041 printf("Test 031 (PL_strtok_r) ..."); fflush(stdout
);
3043 /* Build the string. */
3045 for( i
= 0; i
< sizeof(tokens
)/sizeof(tokens
[0]); i
++ )
3047 PL_strcat(string
, tokens
[i
]);
3048 PL_strcat(string
, seps
[i
]);
3051 /* Scan the string for tokens. */
3054 while( (token
= PL_strtok_r(s1
, s2
, &lasts
)) != NULL
)
3056 if( PL_strcmp(token
, tokens
[i
]) != 0 )
3058 printf("FAIL wrong token scanned\n");
3064 if( i
!= sizeof(tokens
)/sizeof(tokens
[0]) )
3066 printf("FAIL wrong number of tokens scanned\n");
3081 printf("Testing the Portable Library string functions:\n");
3118 printf("Suite passed.\n");
3123 printf("Suite failed.\n");