diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | Versions.def | 3 | ||||
-rw-r--r-- | elf/Versions | 2 | ||||
-rw-r--r-- | scripts/versions.awk | 5 | ||||
-rw-r--r-- | string/tester.c | 51 |
5 files changed, 62 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog index 0bf76aab4d..222b69ee44 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,7 @@ * sysdeps/generic/strcasecmp.c (__strcasecmp): Little performance patch. * sysdeps/generic/strncase.c: Likewise. + * string/tester.c: Add tests for strcasecmp and strncasecmp. 2001-12-05 Geoff Keating <geoffk@redhat.com> @@ -373,6 +374,7 @@ 2001-10-02 Jakub Jelinek <jakub@redhat.com> H.J. Lu <hjl@gnu.org> + * Versions.def (libc): Add GCC_3.0. * configure.in (libc_cv_gcc_static_libgcc): Set to -static-libgcc if gcc supports this flag. (EXPORT_UNWIND_FIND_FDE): Define unless target configure disables it. @@ -388,7 +390,7 @@ * elf/Versions (__register_frame_info, __deregister_frame_info): Add for GLIBC_2.0. (__register_frame_info_bases, __register_frame_info_table_bases, - __deregister_frame_info_bases, _Unwind_Find_FDE): Add for GLIBC_2.2.5. + __deregister_frame_info_bases, _Unwind_Find_FDE): Add for GCC_3.0. * elf/Makefile (routines): Add unwind-dw2-fde. (shared-only-routines): Add unwind-dw2-fde. * sysdeps/alpha/gccframe.h: New file. diff --git a/Versions.def b/Versions.def index 830a610e0b..a5829cf98c 100644 --- a/Versions.def +++ b/Versions.def @@ -17,6 +17,9 @@ libc { %ifdef USE_IN_LIBIO HURD_CTHREADS_0.3 %endif +%ifdef EXPORT_UNWIND_FIND_FDE + GCC_3.0 +%endif } libcrypt { GLIBC_2.0 diff --git a/elf/Versions b/elf/Versions index a0e691c0ac..0c3480450f 100644 --- a/elf/Versions +++ b/elf/Versions @@ -21,7 +21,7 @@ libc { dl_iterate_phdr; } %ifdef EXPORT_UNWIND_FIND_FDE - GLIBC_2.2.5 { + GCC_3.0 { __register_frame_info_bases; __deregister_frame_info_bases; __register_frame_info_table_bases; _Unwind_Find_FDE; } diff --git a/scripts/versions.awk b/scripts/versions.awk index 64ac2d981b..1c03fd3c59 100644 --- a/scripts/versions.awk +++ b/scripts/versions.awk @@ -61,7 +61,10 @@ BEGIN { # current library. This is the only place where we print something to # the intermediate file. /^ / { - printf("%s %s %s\n", actlib, actver, $0) | sort; + sortver=actver + # Ensure GLIBC_ versions come always first + sub(/^GLIBC_/," GLIBC_",sortver) + printf("%s %s %s\n", actlib, sortver, $0) | sort; } diff --git a/string/tester.c b/string/tester.c index 39ae0d837e..eb630a1ff3 100644 --- a/string/tester.c +++ b/string/tester.c @@ -1302,6 +1302,52 @@ test_strerror (void) check(strerror(ENOENT) != 0, 3); } +static void +test_strcasecmp (void) +{ + it = "strcasecmp"; + /* Note that the locale is "C". */ + check(strcasecmp("a", "a") == 0, 1); + check(strcasecmp("a", "A") == 0, 2); + check(strcasecmp("A", "a") == 0, 3); + check(strcasecmp("a", "b") < 0, 4); + check(strcasecmp("c", "b") > 0, 5); + check(strcasecmp("abc", "AbC") == 0, 6); + check(strcasecmp("0123456789", "0123456789") == 0, 7); + check(strcasecmp("", "0123456789") < 0, 8); + check(strcasecmp("AbC", "") > 0, 9); + check(strcasecmp("AbC", "A") > 0, 10); + check(strcasecmp("AbC", "Ab") > 0, 11); + check(strcasecmp("AbC", "ab") > 0, 12); +} + +static void +test_strncasecmp (void) +{ + it = "strncasecmp"; + /* Note that the locale is "C". */ + check(strncasecmp("a", "a", 5) == 0, 1); + check(strncasecmp("a", "A", 5) == 0, 2); + check(strncasecmp("A", "a", 5) == 0, 3); + check(strncasecmp("a", "b", 5) < 0, 4); + check(strncasecmp("c", "b", 5) > 0, 5); + check(strncasecmp("abc", "AbC", 5) == 0, 6); + check(strncasecmp("0123456789", "0123456789", 10) == 0, 7); + check(strncasecmp("", "0123456789", 10) < 0, 8); + check(strncasecmp("AbC", "", 5) > 0, 9); + check(strncasecmp("AbC", "A", 5) > 0, 10); + check(strncasecmp("AbC", "Ab", 5) > 0, 11); + check(strncasecmp("AbC", "ab", 5) > 0, 12); + check(strncasecmp("0123456789", "AbC", 0) == 0, 13); + check(strncasecmp("AbC", "abc", 1) == 0, 14); + check(strncasecmp("AbC", "abc", 2) == 0, 15); + check(strncasecmp("AbC", "abc", 3) == 0, 16); + check(strncasecmp("AbC", "abcd", 3) == 0, 17); + check(strncasecmp("AbC", "abcd", 4) < 0, 18); + check(strncasecmp("ADC", "abcd", 1) == 0, 19); + check(strncasecmp("ADC", "abcd", 2) > 0, 20); +} + int main (void) { @@ -1412,6 +1458,11 @@ main (void) /* strerror - VERY system-dependent. */ test_strerror (); + /* strcasecmp. Without locale dependencies. */ + test_strcasecmp (); + + /* strncasecmp. Without locale dependencies. */ + test_strncasecmp (); if (errors == 0) { |