Tag
Hash :
c0fea97c
Author :
Date :
2007-05-28T16:49:41
Unconditionally include <config.h> in unit tests. * tests/test-alloca-opt.c: Remove #ifdef HAVE_CONFIG_H. * tests/test-allocsa.c, tests/test-arcfour.c, tests/test-arctwo.c, tests/test-argmatch.c, tests/test-argp.c, tests/test-array_list.c, tests/test-array_oset.c, tests/test-atexit.c, test-avltree_list.c, test-avltree_oset.c, test-avltreehash_list.c, test-base64.c, test-binary-io.c, test-c-ctype.c, test-c-strcasecmp.c, test-c-strcasestr.c, test-c-strncasecmp.c, test-c-strstr.c, test-canonicalize-lgpl.c, test-carray_list.c, test-crc.c, test-des.c, test-dirname.c, test-fflush.c, test-fprintf-posix.c, test-gc-arcfour.c, test-gc-arctwo.c, test-gc-des.c, test-gc-hmac-md5.c, test-gc-hmac-sha1.c, test-gc-md2.c, test-gc-md4.c, test-gc-md5.c, test-gc-pbkdf2-sha1.c, test-gc-rijndael.c, test-gc-sha1.c, test-gc.c, test-getpass.c, test-hmac-md5.c, test-hmac-sha1.c, test-iconv.c, test-linked_list.c, test-linkedhash_list.c, test-lock.c, test-mbscasecmp.c, test-mbscasestr1.c, test-mbscasestr2.c, test-mbscasestr3.c, test-mbscasestr4.c, test-mbschr.c, test-mbscspn.c, test-mbsncasecmp.c, test-mbspbrk.c, test-mbspcasecmp.c, test-mbsrchr.c, test-mbsspn.c, test-mbsstr1.c, test-mbsstr2.c, test-mbsstr3.c, test-md2.c, test-md4.c, test-md5.c, test-memmem.c, test-printf-posix.c, test-rbtree_list.c, test-rbtree_oset.c, test-rbtreehash_list.c, test-read-file.c, test-rijndael.c, test-snprintf-posix.c, test-snprintf.c, test-sprintf-posix.c, test-stdint.c, test-strcasestr.c, test-striconv.c, test-striconveh.c, test-striconveha.c, test-tls.c, test-vasnprintf-posix.c, test-vasnprintf-posix2.c, test-vasnprintf.c, test-vasprintf-posix.c, test-vasprintf.c, test-verify.c, test-vfprintf-posix.c, test-vprintf-posix.c, test-vsnprintf-posix.c, test-vsnprintf.c, test-vsprintf-posix.c, test-xvasprintf.c: Likewise.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
/* Test of case-insensitive string comparison function.
Copyright (C) 2007 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
#include <config.h>
#include "c-strcase.h"
#include <locale.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define ASSERT(expr) \
do \
{ \
if (!(expr)) \
{ \
fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
abort (); \
} \
} \
while (0)
int
main (int argc, char *argv[])
{
if (argc > 1)
{
/* configure should already have checked that the locale is supported. */
if (setlocale (LC_ALL, "") == NULL)
return 1;
}
ASSERT (c_strncasecmp ("paragraph", "Paragraph", 1000000) == 0);
ASSERT (c_strncasecmp ("paragraph", "Paragraph", 9) == 0);
ASSERT (c_strncasecmp ("paragrapH", "parAgRaph", 1000000) == 0);
ASSERT (c_strncasecmp ("paragrapH", "parAgRaph", 9) == 0);
ASSERT (c_strncasecmp ("paragraph", "paraLyzed", 10) < 0);
ASSERT (c_strncasecmp ("paragraph", "paraLyzed", 9) < 0);
ASSERT (c_strncasecmp ("paragraph", "paraLyzed", 5) < 0);
ASSERT (c_strncasecmp ("paragraph", "paraLyzed", 4) == 0);
ASSERT (c_strncasecmp ("paraLyzed", "paragraph", 10) > 0);
ASSERT (c_strncasecmp ("paraLyzed", "paragraph", 9) > 0);
ASSERT (c_strncasecmp ("paraLyzed", "paragraph", 5) > 0);
ASSERT (c_strncasecmp ("paraLyzed", "paragraph", 4) == 0);
ASSERT (c_strncasecmp ("para", "paragraph", 10) < 0);
ASSERT (c_strncasecmp ("para", "paragraph", 9) < 0);
ASSERT (c_strncasecmp ("para", "paragraph", 5) < 0);
ASSERT (c_strncasecmp ("para", "paragraph", 4) == 0);
ASSERT (c_strncasecmp ("paragraph", "para", 10) > 0);
ASSERT (c_strncasecmp ("paragraph", "para", 9) > 0);
ASSERT (c_strncasecmp ("paragraph", "para", 5) > 0);
ASSERT (c_strncasecmp ("paragraph", "para", 4) == 0);
/* The following tests shows how c_strncasecmp() is different from
strncasecmp(). */
ASSERT (c_strncasecmp ("\311mily", "\351mile", 4) < 0);
ASSERT (c_strncasecmp ("\351mile", "\311mily", 4) > 0);
/* The following tests shows how c_strncasecmp() is different from
mbsncasecmp(). */
ASSERT (c_strncasecmp ("\303\266zg\303\274r", "\303\226ZG\303\234R", 99) > 0); /* özgür */
ASSERT (c_strncasecmp ("\303\226ZG\303\234R", "\303\266zg\303\274r", 99) < 0); /* özgür */
/* This test shows how strings of different size cannot compare equal. */
ASSERT (c_strncasecmp ("turkish", "TURK\304\260SH", 7) < 0);
ASSERT (c_strncasecmp ("TURK\304\260SH", "turkish", 7) > 0);
return 0;
}