mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-10 07:10:06 +00:00
Test of __strcasecmp_l.
This commit is contained in:
parent
908b8bbc06
commit
1b46e4a5a2
75
localedata/tst-xlocale1.c
Normal file
75
localedata/tst-xlocale1.c
Normal file
@ -0,0 +1,75 @@
|
||||
#include <locale.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
|
||||
static struct
|
||||
{
|
||||
const char *locale;
|
||||
const char *str1;
|
||||
const char *str2;
|
||||
int result;
|
||||
} tests[] =
|
||||
{
|
||||
{ "C", "TRANSLIT", "translit", 0 },
|
||||
{ "de_DE.ISO-8859-1", "TRANSLIT", "translit", 0 },
|
||||
{ "de_DE.ISO-8859-1", "TRANSLIT", "trÄnslit", -1 },
|
||||
{ "de_DE.UTF-8", "TRANSLIT", "translit", 0 },
|
||||
{ "de_DE.ISO-8859-1", "ä", "Ä", 1 }
|
||||
};
|
||||
#define ntests (sizeof (tests) / sizeof (tests[0]))
|
||||
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
int cnt;
|
||||
int result = 0;
|
||||
__locale_t loc = __newlocale (1 << LC_ALL, "C", NULL);
|
||||
|
||||
for (cnt = 0; cnt < ntests; ++cnt)
|
||||
{
|
||||
int r;
|
||||
|
||||
if (setlocale (LC_ALL, tests[cnt].locale) == NULL)
|
||||
{
|
||||
printf ("cannot set locale \"%s\": %m\n", tests[cnt].locale);
|
||||
result = 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
printf ("\n__strcasecmp_l (\"%s\", \"%s\", loc)\n",
|
||||
tests[cnt].str1, tests[cnt].str2);
|
||||
|
||||
r = __strcasecmp_l (tests[cnt].str1, tests[cnt].str2, loc);
|
||||
if (tests[cnt].result == 0)
|
||||
{
|
||||
if (r != 0)
|
||||
{
|
||||
printf ("\"%s\" and \"%s\" expected to be the same, result %d\n",
|
||||
tests[cnt].str1, tests[cnt].str2, r);
|
||||
result = 1;
|
||||
}
|
||||
}
|
||||
else if (tests[cnt].result < 0)
|
||||
{
|
||||
if (r >= 0)
|
||||
{
|
||||
printf ("\"%s\" expected to be smaller than \"%s\", result %d\n",
|
||||
tests[cnt].str1, tests[cnt].str2, r);
|
||||
result = 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (r <= 0)
|
||||
{
|
||||
printf ("\"%s\" expected to be larger than \"%s\", result %d\n",
|
||||
tests[cnt].str1, tests[cnt].str2, r);
|
||||
result = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
Loading…
Reference in New Issue
Block a user