This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "uClibc-ng - small C library for embedded systems".
The branch, master has been updated
via 99ef2719fb3d703fe38c4113cd7f5adec516dd3a (commit)
from 543308f6c46cf2edf8a524bc9c631e472570fe72 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 99ef2719fb3d703fe38c4113cd7f5adec516dd3a
Author: Waldemar Brodkorb <wbx(a)uclibc-ng.org>
Date: Fri Oct 28 20:29:21 2016 +0200
test: remove test suite
The test suite is now a developed in a separate git repository.
See here:
http://cgit.uclibc-ng.org/cgi/cgit/uclibc-ng-test.git
The test suite should be just like every other software compiled
with the cross-toolchain. In the past strange problems where found
when the test suite got build in the toolchain creation step.
-----------------------------------------------------------------------
Summary of changes:
Makefile.help | 2 -
Makefile.in | 13 -
Makerules | 2 +-
docs/PORTING | 2 +-
test/.gitignore | 334 -
test/Makefile | 91 -
test/README | 87 -
test/Rules.mak | 165 -
test/Test.mak | 155 -
test/argp/Makefile | 8 -
test/argp/Makefile.in | 10 -
test/argp/argp-ex1.c | 15 -
test/argp/argp-ex2.c | 45 -
test/argp/argp-ex3.c | 153 -
test/argp/argp-ex4.c | 167 -
test/argp/argp-test.c | 208 -
test/argp/bug-argp1.c | 26 -
test/argp/tst-argp1.c | 117 -
test/argp/tst-argp2.c | 100 -
test/args/Makefile | 8 -
test/args/Makefile.in | 9 -
test/args/arg_test.c | 40 -
test/args/arg_test.out.good | 13 -
test/args/arg_test_glibc.out.good | 13 -
test/assert/Makefile | 8 -
test/assert/Makefile.in | 5 -
test/assert/assert.c | 47 -
test/build/Makefile | 8 -
test/build/check_config_options.sh | 21 -
test/crypt/Makefile | 8 -
test/crypt/Makefile.in | 15 -
test/crypt/crypt.c | 103 -
test/crypt/crypt.input | 171 -
test/crypt/crypt.out.good | 172 -
test/crypt/md5c-test.c | 19 -
test/crypt/sha256c-test.c | 62 -
test/crypt/sha512c-test.c | 63 -
test/ctype/Makefile | 8 -
test/ctype/Makefile.in | 4 -
test/ctype/ctype.c | 250 -
test/dlopen/Makefile | 8 -
test/dlopen/Makefile.in | 84 -
test/dlopen/dladdr.c | 25 -
test/dlopen/dlafk.c | 36 -
test/dlopen/dlstatic.c | 43 -
test/dlopen/dltest.c | 41 -
test/dlopen/dltest2.c | 1 -
test/dlopen/dlundef.c | 29 -
test/dlopen/libA.c | 7 -
test/dlopen/libB.c | 7 -
test/dlopen/libC.c | 30 -
test/dlopen/libafk-temp.c | 1 -
test/dlopen/libafk.c | 1 -
test/dlopen/libstatic.c | 15 -
test/dlopen/libtest.c | 11 -
test/dlopen/libtest1.c | 40 -
test/dlopen/libtest2.c | 38 -
test/dlopen/libtest3.c | 1 -
test/dlopen/libundef.c | 1 -
test/dlopen/nodelete.c | 205 -
test/dlopen/nodelete1.c | 59 -
test/dlopen/nodelmod1.c | 10 -
test/dlopen/nodelmod2.c | 10 -
test/dlopen/nodelmod3.c | 8 -
test/dlopen/nodelmod4.c | 10 -
test/dlopen/test1.c | 33 -
test/dlopen/test2.c | 39 -
test/dlopen/test3.c | 13 -
test/dlopen/testscope.c | 29 -
test/dlopen/tst-origin.c | 37 -
test/inet/Makefile | 8 -
test/inet/Makefile.in | 17 -
test/inet/bug-if1.c | 53 -
test/inet/gethost.c | 40 -
test/inet/gethost_r-align.c | 50 -
test/inet/gethostid.c | 6 -
test/inet/getnetent.c | 17 -
test/inet/if_nameindex.c | 61 -
test/inet/tst-aton.c | 80 -
test/inet/tst-ether_aton.c | 46 -
test/inet/tst-ethers-line.c | 55 -
test/inet/tst-ethers.c | 37 -
test/inet/tst-ifaddrs.c | 99 -
test/inet/tst-network.c | 104 -
test/inet/tst-ntoa.c | 36 -
test/inet/tst-res.c | 44 -
test/inet/tst-sock-nonblock.c | 53 -
test/librt/Makefile | 8 -
test/librt/Makefile.in | 8 -
test/librt/shmtest.c | 104 -
test/locale-mbwc/Makefile | 8 -
test/locale-mbwc/Makefile.in | 30 -
test/locale-mbwc/dat_isw-funcs.h | 37 -
test/locale-mbwc/dat_iswalnum.c | 196 -
test/locale-mbwc/dat_iswalpha.c | 169 -
test/locale-mbwc/dat_iswcntrl.c | 125 -
test/locale-mbwc/dat_iswctype.c | 667 --
test/locale-mbwc/dat_iswdigit.c | 125 -
test/locale-mbwc/dat_iswgraph.c | 167 -
test/locale-mbwc/dat_iswlower.c | 96 -
test/locale-mbwc/dat_iswprint.c | 170 -
test/locale-mbwc/dat_iswpunct.c | 155 -
test/locale-mbwc/dat_iswspace.c | 129 -
test/locale-mbwc/dat_iswupper.c | 94 -
test/locale-mbwc/dat_iswxdigit.c | 125 -
test/locale-mbwc/dat_mblen.c | 137 -
test/locale-mbwc/dat_mbrlen.c | 222 -
test/locale-mbwc/dat_mbrtowc.c | 140 -
test/locale-mbwc/dat_mbsrtowcs.c | 180 -
test/locale-mbwc/dat_mbstowcs.c | 190 -
test/locale-mbwc/dat_mbtowc.c | 444 --
test/locale-mbwc/dat_strcoll.c | 209 -
test/locale-mbwc/dat_strfmon.c | 268 -
test/locale-mbwc/dat_strxfrm.c | 147 -
test/locale-mbwc/dat_swscanf.c | 185 -
test/locale-mbwc/dat_tow-funcs.h | 24 -
test/locale-mbwc/dat_towctrans.c | 97 -
test/locale-mbwc/dat_towlower.c | 47 -
test/locale-mbwc/dat_towupper.c | 47 -
test/locale-mbwc/dat_wcrtomb.c | 122 -
test/locale-mbwc/dat_wcscat.c | 116 -
test/locale-mbwc/dat_wcschr.c | 94 -
test/locale-mbwc/dat_wcscmp.c | 137 -
test/locale-mbwc/dat_wcscoll.c | 210 -
test/locale-mbwc/dat_wcscpy.c | 44 -
test/locale-mbwc/dat_wcscspn.c | 164 -
test/locale-mbwc/dat_wcslen.c | 62 -
test/locale-mbwc/dat_wcsncat.c | 158 -
test/locale-mbwc/dat_wcsncmp.c | 144 -
test/locale-mbwc/dat_wcsncpy.c | 119 -
test/locale-mbwc/dat_wcspbrk.c | 176 -
test/locale-mbwc/dat_wcsrtombs.c | 272 -
test/locale-mbwc/dat_wcsspn.c | 179 -
test/locale-mbwc/dat_wcsstr.c | 175 -
test/locale-mbwc/dat_wcstod.c | 78 -
test/locale-mbwc/dat_wcstok.c | 138 -
test/locale-mbwc/dat_wcstombs.c | 271 -
test/locale-mbwc/dat_wcswidth.c | 263 -
test/locale-mbwc/dat_wcsxfrm.c | 102 -
test/locale-mbwc/dat_wctob.c | 61 -
test/locale-mbwc/dat_wctomb.c | 168 -
test/locale-mbwc/dat_wctrans.c | 99 -
test/locale-mbwc/dat_wctype.c | 189 -
test/locale-mbwc/dat_wcwidth.c | 149 -
test/locale-mbwc/tgn_funcdef.h | 160 -
test/locale-mbwc/tgn_locdef.h | 32 -
test/locale-mbwc/tsp_common.c | 64 -
test/locale-mbwc/tst2_mbrtowc.c | 21 -
test/locale-mbwc/tst_funcs.h | 294 -
test/locale-mbwc/tst_iswalnum.c | 10 -
test/locale-mbwc/tst_iswalpha.c | 10 -
test/locale-mbwc/tst_iswcntrl.c | 10 -
test/locale-mbwc/tst_iswctype.c | 53 -
test/locale-mbwc/tst_iswdigit.c | 11 -
test/locale-mbwc/tst_iswgraph.c | 10 -
test/locale-mbwc/tst_iswlower.c | 10 -
test/locale-mbwc/tst_iswprint.c | 10 -
test/locale-mbwc/tst_iswpunct.c | 10 -
test/locale-mbwc/tst_iswspace.c | 10 -
test/locale-mbwc/tst_iswupper.c | 10 -
test/locale-mbwc/tst_iswxdigit.c | 10 -
test/locale-mbwc/tst_mblen.c | 85 -
test/locale-mbwc/tst_mbrlen.c | 82 -
test/locale-mbwc/tst_mbrtowc.c | 96 -
test/locale-mbwc/tst_mbsrtowcs.c | 109 -
test/locale-mbwc/tst_mbstowcs.c | 98 -
test/locale-mbwc/tst_mbtowc.c | 130 -
test/locale-mbwc/tst_strcoll.c | 87 -
test/locale-mbwc/tst_strfmon.c | 74 -
test/locale-mbwc/tst_strxfrm.c | 136 -
test/locale-mbwc/tst_swscanf.c | 137 -
test/locale-mbwc/tst_towctrans.c | 82 -
test/locale-mbwc/tst_towlower.c | 11 -
test/locale-mbwc/tst_towupper.c | 10 -
test/locale-mbwc/tst_types.h | 729 ---
test/locale-mbwc/tst_wcrtomb.c | 79 -
test/locale-mbwc/tst_wcscat.c | 78 -
test/locale-mbwc/tst_wcschr.c | 70 -
test/locale-mbwc/tst_wcscmp.c | 40 -
test/locale-mbwc/tst_wcscoll.c | 76 -
test/locale-mbwc/tst_wcscpy.c | 85 -
test/locale-mbwc/tst_wcscspn.c | 38 -
test/locale-mbwc/tst_wcslen.c | 31 -
test/locale-mbwc/tst_wcsncat.c | 75 -
test/locale-mbwc/tst_wcsncmp.c | 40 -
test/locale-mbwc/tst_wcsncpy.c | 93 -
test/locale-mbwc/tst_wcspbrk.c | 80 -
test/locale-mbwc/tst_wcsrtombs.c | 127 -
test/locale-mbwc/tst_wcsspn.c | 38 -
test/locale-mbwc/tst_wcsstr.c | 86 -
test/locale-mbwc/tst_wcstod.c | 69 -
test/locale-mbwc/tst_wcstok.c | 96 -
test/locale-mbwc/tst_wcstombs.c | 115 -
test/locale-mbwc/tst_wcswidth.c | 39 -
test/locale-mbwc/tst_wcsxfrm.c | 122 -
test/locale-mbwc/tst_wctob.c | 37 -
test/locale-mbwc/tst_wctomb.c | 99 -
test/locale-mbwc/tst_wctrans.c | 52 -
test/locale-mbwc/tst_wctype.c | 48 -
test/locale-mbwc/tst_wcwidth.c | 38 -
test/locale/Makefile | 8 -
test/locale/Makefile.in | 29 -
test/locale/bug-iconv-trans.c | 68 -
test/locale/bug-usesetlocale.c | 38 -
test/locale/collate-test.c | 132 -
test/locale/dump-ctype.c | 163 -
test/locale/gen-unicode-ctype.c | 784 ---
test/locale/show-ucs-data.c | 62 -
test/locale/tst-C-locale.c | 497 --
test/locale/tst-ctype-de_DE.ISO-8859-1.in | 56 -
test/locale/tst-ctype.c | 446 --
test/locale/tst-digits.c | 248 -
test/locale/tst-fmon.c | 67 -
test/locale/tst-langinfo.c | 283 -
test/locale/tst-langinfo.input | 302 -
test/locale/tst-leaks.c | 18 -
test/locale/tst-mbswcs1.c | 62 -
test/locale/tst-mbswcs2.c | 64 -
test/locale/tst-mbswcs3.c | 75 -
test/locale/tst-mbswcs4.c | 62 -
test/locale/tst-mbswcs5.c | 74 -
test/locale/tst-mbswcs6.c | 73 -
test/locale/tst-numeric.c | 73 -
test/locale/tst-rpmatch.c | 36 -
test/locale/tst-setlocale.c | 25 -
test/locale/tst-sscanf.c | 56 -
test/locale/tst-strfmon1.c | 42 -
test/locale/tst-trans.c | 70 -
test/locale/tst-wctype.c | 143 -
test/locale/tst-xlocale1.c | 75 -
test/locale/tst-xlocale2.c | 64 -
test/locale/tst_nl_langinfo.c | 296 -
test/locale/xfrm-test.c | 143 -
test/malloc/Makefile | 8 -
test/malloc/Makefile.in | 16 -
test/malloc/malloc-standard-alignment.c | 42 -
test/malloc/malloc.c | 81 -
test/malloc/mallocbug.c | 67 -
test/malloc/realloc-can-shrink.c | 17 -
test/malloc/realloc0.c | 13 -
test/malloc/testmalloc.c | 101 -
test/malloc/time_malloc.c | 62 -
test/malloc/tst-asprintf.c | 27 -
test/malloc/tst-calloc.c | 127 -
test/malloc/tst-malloc.c | 72 -
test/malloc/tst-mallocfork.c | 51 -
test/malloc/tst-mcheck.c | 95 -
test/malloc/tst-obstack.c | 104 -
test/malloc/tst-valloc.c | 23 -
test/math/Makefile | 8 -
test/math/Makefile.in | 46 -
test/math/basic-test.c | 161 -
test/math/c99_test.c | 116 -
test/math/compile_test.c | 141 -
test/math/fenv.h | 3 -
test/math/gamma.c | 73 -
test/math/gen-libm-test.pl | 737 ---
test/math/ilogb.c | 52 -
test/math/libm-test-ulps-arc | 145 -
test/math/libm-test-ulps-arm | 4989 ---------------
test/math/libm-test-ulps-cris | 145 -
test/math/libm-test-ulps-generic | 5 -
test/math/libm-test-ulps-i386 | 1261 ----
test/math/libm-test-ulps-ia64 | 1146 ----
test/math/libm-test-ulps-microblaze | 145 -
test/math/libm-test-ulps-mips32 | 145 -
test/math/libm-test-ulps-mips64 | 9633 -----------------------------
test/math/libm-test-ulps-nds32 | 145 -
test/math/libm-test-ulps-powerpc | 1336 ----
test/math/libm-test-ulps-sh | 1094 ----
test/math/libm-test-ulps-sparc | 1338 ----
test/math/libm-test-ulps-x86_64 | 1328 ----
test/math/libm-test-ulps-xtensa | 145 -
test/math/libm-test.inc | 5096 ---------------
test/math/rint.c | 33 -
test/math/signgam.c | 28 -
test/math/test-double.c | 33 -
test/math/test-float.c | 33 -
test/math/test-fpucw.c | 42 -
test/math/test-idouble.c | 34 -
test/math/test-ifloat.c | 34 -
test/math/test-ildoubl.c | 34 -
test/math/test-ldouble.c | 33 -
test/math/tst-definitions.c | 46 -
test/misc/Makefile | 8 -
test/misc/Makefile.in | 42 -
test/misc/bug-glob1.c | 92 -
test/misc/bug-glob2.c | 300 -
test/misc/bug-readdir1.c | 37 -
test/misc/dirent.c | 39 -
test/misc/dirent64.c | 1 -
test/misc/fdopen.c | 52 -
test/misc/opendir-tst1.c | 95 -
test/misc/outb.c | 9 -
test/misc/popen.c | 47 -
test/misc/seek.c | 82 -
test/misc/sem.c | 45 -
test/misc/stdarg.c | 23 -
test/misc/tst-fnmatch.c | 443 --
test/misc/tst-fnmatch.input | 754 ---
test/misc/tst-gnuglob.c | 446 --
test/misc/tst-inotify.c | 65 -
test/misc/tst-mkostemps.c | 159 -
test/misc/tst-nftw.c | 57 -
test/misc/tst-scandir.c | 23 -
test/misc/tst-seekdir.c | 79 -
test/misc/tst-statfs.c | 31 -
test/misc/tst-statvfs.c | 26 -
test/misc/tst-utmp.c | 423 --
test/misc/tst-utmpx.c | 2 -
test/mmap/Makefile | 8 -
test/mmap/Makefile.in | 2 -
test/mmap/mmap.c | 73 -
test/mmap/mmap2.c | 46 -
test/mmap/mmap64.c | 29 -
test/mmap/tst-mmap-eofsync.c | 106 -
test/mmap/tst-mmap-fflushsync.c | 99 -
test/mmap/tst-mmap-offend.c | 86 -
test/mmap/tst-mmap-setvbuf.c | 81 -
test/nptl/Makefile | 8 -
test/nptl/Makefile.in | 242 -
test/nptl/eintr.c | 88 -
test/nptl/tst-align.c | 70 -
test/nptl/tst-align2.c | 86 -
test/nptl/tst-align3.c | 56 -
test/nptl/tst-atfork1.c | 120 -
test/nptl/tst-atfork2.c | 156 -
test/nptl/tst-atfork2mod.c | 57 -
test/nptl/tst-attr1.c | 305 -
test/nptl/tst-attr2.c | 316 -
test/nptl/tst-attr3.c | 419 --
test/nptl/tst-barrier1.c | 70 -
test/nptl/tst-barrier2.c | 184 -
test/nptl/tst-barrier3.c | 153 -
test/nptl/tst-barrier4.c | 121 -
test/nptl/tst-basic1.c | 81 -
test/nptl/tst-basic2.c | 120 -
test/nptl/tst-basic3.c | 86 -
test/nptl/tst-basic4.c | 100 -
test/nptl/tst-basic5.c | 73 -
test/nptl/tst-basic6.c | 131 -
test/nptl/tst-basic7.c | 75 -
test/nptl/tst-cancel1.c | 162 -
test/nptl/tst-cancel10.c | 125 -
test/nptl/tst-cancel11.c | 122 -
test/nptl/tst-cancel12.c | 126 -
test/nptl/tst-cancel13.c | 128 -
test/nptl/tst-cancel14.c | 136 -
test/nptl/tst-cancel15.c | 141 -
test/nptl/tst-cancel16.c | 230 -
test/nptl/tst-cancel18.c | 173 -
test/nptl/tst-cancel19.c | 286 -
test/nptl/tst-cancel2.c | 99 -
test/nptl/tst-cancel20.c | 263 -
test/nptl/tst-cancel21.c | 293 -
test/nptl/tst-cancel22.c | 121 -
test/nptl/tst-cancel23.c | 1 -
test/nptl/tst-cancel25.c | 171 -
test/nptl/tst-cancel3.c | 97 -
test/nptl/tst-cancel4.c | 2393 -------
test/nptl/tst-cancel5.c | 1 -
test/nptl/tst-cancel6.c | 78 -
test/nptl/tst-cancel7.c | 208 -
test/nptl/tst-cancel8.c | 142 -
test/nptl/tst-cancel9.c | 125 -
test/nptl/tst-cancelx10.c | 1 -
test/nptl/tst-cancelx11.c | 1 -
test/nptl/tst-cancelx12.c | 1 -
test/nptl/tst-cancelx13.c | 1 -
test/nptl/tst-cancelx14.c | 1 -
test/nptl/tst-cancelx15.c | 1 -
test/nptl/tst-cancelx16.c | 1 -
test/nptl/tst-cancelx18.c | 1 -
test/nptl/tst-cancelx2.c | 1 -
test/nptl/tst-cancelx20.c | 1 -
test/nptl/tst-cancelx21.c | 1 -
test/nptl/tst-cancelx3.c | 1 -
test/nptl/tst-cancelx4.c | 1 -
test/nptl/tst-cancelx6.c | 1 -
test/nptl/tst-cancelx7.c | 1 -
test/nptl/tst-cancelx8.c | 1 -
test/nptl/tst-cancelx9.c | 1 -
test/nptl/tst-cleanup0.c | 75 -
test/nptl/tst-cleanup1.c | 99 -
test/nptl/tst-cleanup2.c | 62 -
test/nptl/tst-cleanup3.c | 97 -
test/nptl/tst-cleanup4.c | 197 -
test/nptl/tst-cleanup4aux.c | 120 -
test/nptl/tst-cleanupx0.c | 1 -
test/nptl/tst-cleanupx1.c | 1 -
test/nptl/tst-cleanupx2.c | 1 -
test/nptl/tst-cleanupx3.c | 1 -
test/nptl/tst-cleanupx4.c | 1 -
test/nptl/tst-clock.c | 123 -
test/nptl/tst-clock1.c | 50 -
test/nptl/tst-clock2.c | 201 -
test/nptl/tst-clock_nanosleep.c | 57 -
test/nptl/tst-cond-deadlock.c | 51 -
test/nptl/tst-cond1.c | 93 -
test/nptl/tst-cond10.c | 172 -
test/nptl/tst-cond11.c | 190 -
test/nptl/tst-cond12.c | 195 -
test/nptl/tst-cond13.c | 2 -
test/nptl/tst-cond14.c | 117 -
test/nptl/tst-cond15.c | 159 -
test/nptl/tst-cond16.c | 104 -
test/nptl/tst-cond17.c | 2 -
test/nptl/tst-cond18.c | 116 -
test/nptl/tst-cond19.c | 75 -
test/nptl/tst-cond2.c | 162 -
test/nptl/tst-cond20.c | 169 -
test/nptl/tst-cond21.c | 3 -
test/nptl/tst-cond22.c | 160 -
test/nptl/tst-cond23.c | 183 -
test/nptl/tst-cond3.c | 112 -
test/nptl/tst-cond4.c | 263 -
test/nptl/tst-cond5.c | 105 -
test/nptl/tst-cond6.c | 233 -
test/nptl/tst-cond7.c | 167 -
test/nptl/tst-cond8.c | 276 -
test/nptl/tst-cond9.c | 149 -
test/nptl/tst-cpuclock1.c | 306 -
test/nptl/tst-cpuclock2.c | 331 -
test/nptl/tst-cputimer1.c | 68 -
test/nptl/tst-cputimer2.c | 83 -
test/nptl/tst-cputimer3.c | 130 -
test/nptl/tst-detach1.c | 55 -
test/nptl/tst-dlsym1.c | 66 -
test/nptl/tst-eintr1.c | 104 -
test/nptl/tst-eintr2.c | 117 -
test/nptl/tst-eintr3.c | 71 -
test/nptl/tst-eintr4.c | 55 -
test/nptl/tst-eintr5.c | 80 -
test/nptl/tst-exec2.c | 153 -
test/nptl/tst-exec3.c | 151 -
test/nptl/tst-exec4.c | 115 -
test/nptl/tst-exit1.c | 78 -
test/nptl/tst-exit2.c | 40 -
test/nptl/tst-exit3.c | 81 -
test/nptl/tst-fini1.c | 34 -
test/nptl/tst-fini1mod.c | 71 -
test/nptl/tst-flock1.c | 92 -
test/nptl/tst-flock2.c | 259 -
test/nptl/tst-fork1.c | 119 -
test/nptl/tst-fork2.c | 89 -
test/nptl/tst-fork3.c | 106 -
test/nptl/tst-fork4.c | 64 -
test/nptl/tst-getpid1.c | 122 -
test/nptl/tst-getpid2.c | 2 -
test/nptl/tst-getpid3.c | 114 -
test/nptl/tst-initializers1-c89.c | 1 -
test/nptl/tst-initializers1-c99.c | 1 -
test/nptl/tst-initializers1-gnu89.c | 1 -
test/nptl/tst-initializers1-gnu99.c | 1 -
test/nptl/tst-initializers1.c | 47 -
test/nptl/tst-join1.c | 82 -
test/nptl/tst-join2.c | 103 -
test/nptl/tst-join3.c | 122 -
test/nptl/tst-join4.c | 124 -
test/nptl/tst-join5.c | 142 -
test/nptl/tst-join6.c | 2 -
test/nptl/tst-key1.c | 88 -
test/nptl/tst-key2.c | 114 -
test/nptl/tst-key3.c | 155 -
test/nptl/tst-key4.c | 136 -
test/nptl/tst-kill1.c | 99 -
test/nptl/tst-kill2.c | 138 -
test/nptl/tst-kill3.c | 158 -
test/nptl/tst-kill4.c | 73 -
test/nptl/tst-kill5.c | 48 -
test/nptl/tst-kill6.c | 161 -
test/nptl/tst-mqueue.h | 83 -
test/nptl/tst-mqueue1.c | 416 --
test/nptl/tst-mqueue2.c | 476 --
test/nptl/tst-mqueue3.c | 243 -
test/nptl/tst-mqueue4.c | 287 -
test/nptl/tst-mqueue5.c | 1013 ---
test/nptl/tst-mqueue6.c | 304 -
test/nptl/tst-mqueue7.c | 108 -
test/nptl/tst-mqueue8.c | 265 -
test/nptl/tst-mqueue9.c | 91 -
test/nptl/tst-mutex1.c | 56 -
test/nptl/tst-mutex2.c | 222 -
test/nptl/tst-mutex3.c | 224 -
test/nptl/tst-mutex4.c | 190 -
test/nptl/tst-mutex5.c | 185 -
test/nptl/tst-mutex5a.c | 2 -
test/nptl/tst-mutex6.c | 54 -
test/nptl/tst-mutex7.c | 120 -
test/nptl/tst-mutex7a.c | 2 -
test/nptl/tst-mutex8.c | 366 --
test/nptl/tst-mutex9.c | 190 -
test/nptl/tst-oddstacklimit.c | 1 -
test/nptl/tst-once1.c | 50 -
test/nptl/tst-once2.c | 103 -
test/nptl/tst-once3.c | 161 -
test/nptl/tst-once4.c | 201 -
test/nptl/tst-oncex3.c | 1 -
test/nptl/tst-oncex4.c | 1 -
test/nptl/tst-popen1.c | 59 -
test/nptl/tst-raise1.c | 61 -
test/nptl/tst-rwlock1.c | 116 -
test/nptl/tst-rwlock10.c | 20 -
test/nptl/tst-rwlock11.c | 20 -
test/nptl/tst-rwlock12.c | 207 -
test/nptl/tst-rwlock13.c | 70 -
test/nptl/tst-rwlock14.c | 168 -
test/nptl/tst-rwlock2.c | 142 -
test/nptl/tst-rwlock2a.c | 2 -
test/nptl/tst-rwlock3.c | 92 -
test/nptl/tst-rwlock4.c | 189 -
test/nptl/tst-rwlock5.c | 86 -
test/nptl/tst-rwlock6.c | 225 -
test/nptl/tst-rwlock7.c | 178 -
test/nptl/tst-rwlock8.c | 163 -
test/nptl/tst-rwlock9.c | 202 -
test/nptl/tst-sched1.c | 97 -
test/nptl/tst-sem1.c | 88 -
test/nptl/tst-sem10.c | 87 -
test/nptl/tst-sem11.c | 76 -
test/nptl/tst-sem12.c | 14 -
test/nptl/tst-sem2.c | 53 -
test/nptl/tst-sem3.c | 144 -
test/nptl/tst-sem4.c | 149 -
test/nptl/tst-sem5.c | 79 -
test/nptl/tst-sem6.c | 80 -
test/nptl/tst-sem7.c | 108 -
test/nptl/tst-sem8.c | 73 -
test/nptl/tst-sem9.c | 80 -
test/nptl/tst-signal1.c | 188 -
test/nptl/tst-signal2.c | 197 -
test/nptl/tst-signal3.c | 260 -
test/nptl/tst-signal4.c | 59 -
test/nptl/tst-signal5.c | 110 -
test/nptl/tst-signal6.c | 191 -
test/nptl/tst-signal7.c | 58 -
test/nptl/tst-spin1.c | 56 -
test/nptl/tst-spin2.c | 158 -
test/nptl/tst-spin3.c | 54 -
test/nptl/tst-stack-align.h | 34 -
test/nptl/tst-stack1.c | 145 -
test/nptl/tst-stack2.c | 79 -
test/nptl/tst-stdio1.c | 56 -
test/nptl/tst-stdio2.c | 81 -
test/nptl/tst-sysconf.c | 47 -
test/nptl/tst-timer2.c | 65 -
test/nptl/tst-timer3.c | 86 -
test/nptl/tst-timer4.c | 647 --
test/nptl/tst-timer5.c | 38 -
test/nptl/tst-tls1.c | 121 -
test/nptl/tst-tls2.c | 215 -
test/nptl/tst-tls3.c | 224 -
test/nptl/tst-tls3mod.c | 105 -
test/nptl/tst-tls4.c | 190 -
test/nptl/tst-tls4moda.c | 55 -
test/nptl/tst-tls4modb.c | 64 -
test/nptl/tst-tls5.c | 118 -
test/nptl/tst-tls5.h | 28 -
test/nptl/tst-tls5mod.c | 6 -
test/nptl/tst-tls5moda.c | 6 -
test/nptl/tst-tls5modb.c | 6 -
test/nptl/tst-tls5modc.c | 6 -
test/nptl/tst-tls5modd.c | 6 -
test/nptl/tst-tls5mode.c | 8 -
test/nptl/tst-tls5modf.c | 9 -
test/nptl/tst-tsd1.c | 117 -
test/nptl/tst-tsd2.c | 96 -
test/nptl/tst-tsd3.c | 128 -
test/nptl/tst-tsd4.c | 102 -
test/nptl/tst-tsd5.c | 80 -
test/nptl/tst-tsd6.c | 89 -
test/nptl/tst-typesizes.c | 95 -
test/nptl/tst-umask1.c | 136 -
test/nptl/tst-unload.c | 46 -
test/nptl/tst-vfork1.c | 149 -
test/nptl/tst-vfork1x.c | 149 -
test/nptl/tst-vfork2.c | 198 -
test/nptl/tst-vfork2x.c | 198 -
test/plt/check-plt.sh | 38 -
test/pthread/Makefile | 8 -
test/pthread/Makefile.in | 10 -
test/pthread/cancellation-points.c | 286 -
test/pthread/ex1.c | 35 -
test/pthread/ex2.c | 113 -
test/pthread/ex3.c | 152 -
test/pthread/ex4.c | 107 -
test/pthread/ex5.c | 102 -
test/pthread/ex6.c | 44 -
test/pthread/ex7.c | 106 -
test/pthread/ex8-mtx-odd.c | 56 -
test/pthread/tst-c99.c | 2 -
test/pthread/tst-join2.c | 103 -
test/pthread/tst-join3.c | 122 -
test/pthread/tst-too-many-cleanups.c | 104 -
test/pwd_grp/.indent.pro | 33 -
test/pwd_grp/Makefile | 8 -
test/pwd_grp/Makefile.in | 8 -
test/pwd_grp/getgroups.c | 100 -
test/pwd_grp/grcat.c | 32 -
test/pwd_grp/pwcat.c | 26 -
test/pwd_grp/test_grp.c | 87 -
test/pwd_grp/test_pwd.c | 74 -
test/regex/LICENSE | 72 -
test/regex/Makefile | 8 -
test/regex/Makefile.in | 6 -
test/regex/basic.dat | 216 -
test/regex/categorize.dat | 62 -
test/regex/forcedassoc.dat | 30 -
test/regex/interpretation.dat | 93 -
test/regex/leftassoc.dat | 16 -
test/regex/nullsubexpr.dat | 73 -
test/regex/repetition.dat | 79 -
test/regex/rightassoc.dat | 16 -
test/regex/testregex.c | 2145 -------
test/regex/tst-regex2.c | 250 -
test/regex/tst-regex2.dat | 2176 -------
test/regex/tst-regexloc.c | 53 -
test/rpc/Makefile | 8 -
test/rpc/Makefile.in | 11 -
test/rpc/getrpcent.c | 18 -
test/rpc/getrpcent_r.c | 25 -
test/setjmp/Makefile | 8 -
test/setjmp/Makefile.in | 0
test/setjmp/bug269-setjmp.c | 106 -
test/setjmp/jmpbug.c | 51 -
test/setjmp/sigjmpbug.c | 51 -
test/setjmp/tst-setjmp.c | 118 -
test/setjmp/tst-vfork-longjmp.c | 108 -
test/signal/.indent.pro | 33 -
test/signal/Makefile | 8 -
test/signal/Makefile.in | 6 -
test/signal/sigchld.c | 68 -
test/signal/signal.c | 95 -
test/signal/tst-raise.c | 62 -
test/signal/tst-signal.c | 44 -
test/signal/tst-signalfd.c | 63 -
test/signal/tst-sigset.c | 45 -
test/signal/tst-sigsimple.c | 56 -
test/silly/Makefile | 8 -
test/silly/Makefile.in | 24 -
test/silly/hello.c | 8 -
test/silly/tiny.c | 6 -
test/silly/tst-atomic-long.c | 27 -
test/silly/tst-atomic.c | 573 --
test/stat/Makefile | 8 -
test/stat/Makefile.in | 13 -
test/stat/memcmp-stat.c | 107 -
test/stat/stat-loop256.c | 32 -
test/stat/stat.c | 71 -
test/stat/stat64.c | 1 -
test/stdio/64bit.c | 12 -
test/stdio/Makefile | 8 -
test/stdio/Makefile.in | 8 -
test/stdio/fclose-loop.c | 21 -
test/stdio/lseek_no_lfs.c | 22 -
test/stdio/scanf_m.c | 27 -
test/stdio/tst-fmemopen.c | 53 -
test/stdlib/Makefile | 8 -
test/stdlib/Makefile.in | 15 -
test/stdlib/ptytest.c | 20 -
test/stdlib/qsort.c | 53 -
test/stdlib/test-canon.c | 251 -
test/stdlib/test-canon2.c | 86 -
test/stdlib/test-mkostemp-O_CLOEXEC.c | 45 -
test/stdlib/test-mkostemp-child.c | 22 -
test/stdlib/testarc4random.c | 10 -
test/stdlib/testatexit.c | 81 -
test/stdlib/teston_exit.c | 82 -
test/stdlib/teststrtol.c | 109 -
test/stdlib/teststrtoq.c | 89 -
test/string/Makefile | 8 -
test/string/Makefile.in | 8 -
test/string/bug-strcoll1.c | 24 -
test/string/bug-strncat1.c | 31 -
test/string/bug-strpbrk1.c | 19 -
test/string/bug-strspn1.c | 19 -
test/string/stratcliff.c | 348 --
test/string/test-ffs.c | 65 -
test/string/testcopy.c | 107 -
test/string/tester.c | 1646 -----
test/string/tst-bswap.c | 73 -
test/string/tst-inlcall.c | 82 -
test/string/tst-memmove.c | 46 -
test/string/tst-strlen.c | 45 -
test/string/tst-strtok.c | 23 -
test/string/tst-strxfrm.c | 80 -
test/termios/Makefile | 8 -
test/termios/termios.c | 25 -
test/test-skeleton.c | 419 --
test/testsuite.h | 101 -
test/time/Makefile | 8 -
test/time/Makefile.in | 22 -
test/time/bug-asctime.c | 40 -
test/time/bug-asctime_r.c | 37 -
test/time/clocktest.c | 36 -
test/time/test_time.c | 115 -
test/time/time.c | 76 -
test/time/tst-ctime.c | 44 -
test/time/tst-ftime_l.c | 136 -
test/time/tst-futimens1.c | 105 -
test/time/tst-mktime.c | 70 -
test/time/tst-mktime2.c | 141 -
test/time/tst-mktime3.c | 50 -
test/time/tst-posixtz.c | 88 -
test/time/tst-strftime.c | 111 -
test/time/tst-strptime.c | 192 -
test/time/tst-strptime2.c | 59 -
test/time/tst-timerfd.c | 71 -
test/time/tst-timezone.c | 169 -
test/time/tst_wcsftime.c | 65 -
test/tls/Makefile | 8 -
test/tls/Makefile.in | 161 -
test/tls/README | 8 -
test/tls/tls-macros-alpha.h | 25 -
test/tls/tls-macros-arc.h | 28 -
test/tls/tls-macros-arm.h | 51 -
test/tls/tls-macros-i386.h | 76 -
test/tls/tls-macros-ia64.h | 63 -
test/tls/tls-macros-metag.h | 38 -
test/tls/tls-macros-mips.h | 64 -
test/tls/tls-macros-powerpc.h | 87 -
test/tls/tls-macros-sh.h | 143 -
test/tls/tls-macros-sparc.h | 67 -
test/tls/tls-macros-thumb.h | 57 -
test/tls/tls-macros-x86_64.h | 40 -
test/tls/tls-macros-xtensa.h | 61 -
test/tls/tls-macros.h | 74 -
test/tls/tst-tls-at-ctor.c | 21 -
test/tls/tst-tls1-static.c | 1 -
test/tls/tst-tls1.c | 92 -
test/tls/tst-tls10.c | 40 -
test/tls/tst-tls10.h | 38 -
test/tls/tst-tls11.c | 27 -
test/tls/tst-tls12.c | 18 -
test/tls/tst-tls13.c | 30 -
test/tls/tst-tls14.c | 66 -
test/tls/tst-tls15.c | 33 -
test/tls/tst-tls16.c | 53 -
test/tls/tst-tls17.c | 29 -
test/tls/tst-tls18.c | 38 -
test/tls/tst-tls2-static.c | 1 -
test/tls/tst-tls2.c | 91 -
test/tls/tst-tls3.c | 76 -
test/tls/tst-tls4.c | 56 -
test/tls/tst-tls5.c | 72 -
test/tls/tst-tls6.c | 107 -
test/tls/tst-tls7.c | 78 -
test/tls/tst-tls8.c | 229 -
test/tls/tst-tls9-static.c | 1 -
test/tls/tst-tls9.c | 42 -
test/tls/tst-tlsmod-at-ctor.c | 25 -
test/tls/tst-tlsmod1.c | 68 -
test/tls/tst-tlsmod10.c | 1 -
test/tls/tst-tlsmod11.c | 6 -
test/tls/tst-tlsmod12.c | 14 -
test/tls/tst-tlsmod13.c | 14 -
test/tls/tst-tlsmod13a.c | 16 -
test/tls/tst-tlsmod14a.c | 41 -
test/tls/tst-tlsmod14b.c | 2 -
test/tls/tst-tlsmod15a.c | 6 -
test/tls/tst-tlsmod15b.c | 17 -
test/tls/tst-tlsmod16a.c | 7 -
test/tls/tst-tlsmod16b.c | 13 -
test/tls/tst-tlsmod17a.c | 23 -
test/tls/tst-tlsmod17b.c | 15 -
test/tls/tst-tlsmod18a.c | 21 -
test/tls/tst-tlsmod2.c | 38 -
test/tls/tst-tlsmod3.c | 41 -
test/tls/tst-tlsmod4.c | 38 -
test/tls/tst-tlsmod5.c | 7 -
test/tls/tst-tlsmod6.c | 7 -
test/tls/tst-tlsmod7.c | 103 -
test/tls/tst-tlsmod8.c | 72 -
test/tls/tst-tlsmod9.c | 101 -
test/uclibcng-testrunner.sh | 62 -
test/unistd/Makefile | 8 -
test/unistd/Makefile.in | 44 -
test/unistd/clone.c | 101 -
test/unistd/clone_cruft.h | 24 -
test/unistd/errno.c | 29 -
test/unistd/exec-null.c | 13 -
test/unistd/fork.c | 91 -
test/unistd/getcwd.c | 39 -
test/unistd/getopt.c | 69 -
test/unistd/getopt_long.c | 93 -
test/unistd/tst-fallocate.c | 166 -
test/unistd/tst-fallocate64.c | 2 -
test/unistd/tst-getconf.sh | 240 -
test/unistd/tst-posix_fallocate.c | 127 -
test/unistd/tst-posix_fallocate64.c | 2 -
test/unistd/tst-preadwrite.c | 104 -
test/unistd/tst-preadwrite64.c | 23 -
test/unistd/tst-pselect.c | 51 -
test/unistd/tstgetopt.c | 76 -
test/unistd/vfork.c | 53 -
795 files changed, 2 insertions(+), 107551 deletions(-)
delete mode 100644 test/.gitignore
delete mode 100644 test/Makefile
delete mode 100644 test/README
delete mode 100644 test/Rules.mak
delete mode 100644 test/Test.mak
delete mode 100644 test/argp/Makefile
delete mode 100644 test/argp/Makefile.in
delete mode 100644 test/argp/argp-ex1.c
delete mode 100644 test/argp/argp-ex2.c
delete mode 100644 test/argp/argp-ex3.c
delete mode 100644 test/argp/argp-ex4.c
delete mode 100644 test/argp/argp-test.c
delete mode 100644 test/argp/bug-argp1.c
delete mode 100644 test/argp/tst-argp1.c
delete mode 100644 test/argp/tst-argp2.c
delete mode 100644 test/args/Makefile
delete mode 100644 test/args/Makefile.in
delete mode 100644 test/args/arg_test.c
delete mode 100644 test/args/arg_test.out.good
delete mode 100644 test/args/arg_test_glibc.out.good
delete mode 100644 test/assert/Makefile
delete mode 100644 test/assert/Makefile.in
delete mode 100644 test/assert/assert.c
delete mode 100644 test/build/Makefile
delete mode 100755 test/build/check_config_options.sh
delete mode 100644 test/crypt/Makefile
delete mode 100644 test/crypt/Makefile.in
delete mode 100644 test/crypt/crypt.c
delete mode 100644 test/crypt/crypt.input
delete mode 100644 test/crypt/crypt.out.good
delete mode 100644 test/crypt/md5c-test.c
delete mode 100644 test/crypt/sha256c-test.c
delete mode 100644 test/crypt/sha512c-test.c
delete mode 100644 test/ctype/Makefile
delete mode 100644 test/ctype/Makefile.in
delete mode 100644 test/ctype/ctype.c
delete mode 100644 test/dlopen/Makefile
delete mode 100644 test/dlopen/Makefile.in
delete mode 100644 test/dlopen/dladdr.c
delete mode 100644 test/dlopen/dlafk.c
delete mode 100644 test/dlopen/dlstatic.c
delete mode 100644 test/dlopen/dltest.c
delete mode 100644 test/dlopen/dltest2.c
delete mode 100644 test/dlopen/dlundef.c
delete mode 100644 test/dlopen/libA.c
delete mode 100644 test/dlopen/libB.c
delete mode 100644 test/dlopen/libC.c
delete mode 100644 test/dlopen/libafk-temp.c
delete mode 100644 test/dlopen/libafk.c
delete mode 100644 test/dlopen/libstatic.c
delete mode 100644 test/dlopen/libtest.c
delete mode 100644 test/dlopen/libtest1.c
delete mode 100644 test/dlopen/libtest2.c
delete mode 100644 test/dlopen/libtest3.c
delete mode 100644 test/dlopen/libundef.c
delete mode 100644 test/dlopen/nodelete.c
delete mode 100644 test/dlopen/nodelete1.c
delete mode 100644 test/dlopen/nodelmod1.c
delete mode 100644 test/dlopen/nodelmod2.c
delete mode 100644 test/dlopen/nodelmod3.c
delete mode 100644 test/dlopen/nodelmod4.c
delete mode 100644 test/dlopen/test1.c
delete mode 100644 test/dlopen/test2.c
delete mode 100644 test/dlopen/test3.c
delete mode 100644 test/dlopen/testscope.c
delete mode 100644 test/dlopen/tst-origin.c
delete mode 100644 test/inet/Makefile
delete mode 100644 test/inet/Makefile.in
delete mode 100644 test/inet/bug-if1.c
delete mode 100644 test/inet/gethost.c
delete mode 100644 test/inet/gethost_r-align.c
delete mode 100644 test/inet/gethostid.c
delete mode 100644 test/inet/getnetent.c
delete mode 100644 test/inet/if_nameindex.c
delete mode 100644 test/inet/tst-aton.c
delete mode 100644 test/inet/tst-ether_aton.c
delete mode 100644 test/inet/tst-ethers-line.c
delete mode 100644 test/inet/tst-ethers.c
delete mode 100644 test/inet/tst-ifaddrs.c
delete mode 100644 test/inet/tst-network.c
delete mode 100644 test/inet/tst-ntoa.c
delete mode 100644 test/inet/tst-res.c
delete mode 100644 test/inet/tst-sock-nonblock.c
delete mode 100644 test/librt/Makefile
delete mode 100644 test/librt/Makefile.in
delete mode 100644 test/librt/shmtest.c
delete mode 100644 test/locale-mbwc/Makefile
delete mode 100644 test/locale-mbwc/Makefile.in
delete mode 100644 test/locale-mbwc/dat_isw-funcs.h
delete mode 100644 test/locale-mbwc/dat_iswalnum.c
delete mode 100644 test/locale-mbwc/dat_iswalpha.c
delete mode 100644 test/locale-mbwc/dat_iswcntrl.c
delete mode 100644 test/locale-mbwc/dat_iswctype.c
delete mode 100644 test/locale-mbwc/dat_iswdigit.c
delete mode 100644 test/locale-mbwc/dat_iswgraph.c
delete mode 100644 test/locale-mbwc/dat_iswlower.c
delete mode 100644 test/locale-mbwc/dat_iswprint.c
delete mode 100644 test/locale-mbwc/dat_iswpunct.c
delete mode 100644 test/locale-mbwc/dat_iswspace.c
delete mode 100644 test/locale-mbwc/dat_iswupper.c
delete mode 100644 test/locale-mbwc/dat_iswxdigit.c
delete mode 100644 test/locale-mbwc/dat_mblen.c
delete mode 100644 test/locale-mbwc/dat_mbrlen.c
delete mode 100644 test/locale-mbwc/dat_mbrtowc.c
delete mode 100644 test/locale-mbwc/dat_mbsrtowcs.c
delete mode 100644 test/locale-mbwc/dat_mbstowcs.c
delete mode 100644 test/locale-mbwc/dat_mbtowc.c
delete mode 100644 test/locale-mbwc/dat_strcoll.c
delete mode 100644 test/locale-mbwc/dat_strfmon.c
delete mode 100644 test/locale-mbwc/dat_strxfrm.c
delete mode 100644 test/locale-mbwc/dat_swscanf.c
delete mode 100644 test/locale-mbwc/dat_tow-funcs.h
delete mode 100644 test/locale-mbwc/dat_towctrans.c
delete mode 100644 test/locale-mbwc/dat_towlower.c
delete mode 100644 test/locale-mbwc/dat_towupper.c
delete mode 100644 test/locale-mbwc/dat_wcrtomb.c
delete mode 100644 test/locale-mbwc/dat_wcscat.c
delete mode 100644 test/locale-mbwc/dat_wcschr.c
delete mode 100644 test/locale-mbwc/dat_wcscmp.c
delete mode 100644 test/locale-mbwc/dat_wcscoll.c
delete mode 100644 test/locale-mbwc/dat_wcscpy.c
delete mode 100644 test/locale-mbwc/dat_wcscspn.c
delete mode 100644 test/locale-mbwc/dat_wcslen.c
delete mode 100644 test/locale-mbwc/dat_wcsncat.c
delete mode 100644 test/locale-mbwc/dat_wcsncmp.c
delete mode 100644 test/locale-mbwc/dat_wcsncpy.c
delete mode 100644 test/locale-mbwc/dat_wcspbrk.c
delete mode 100644 test/locale-mbwc/dat_wcsrtombs.c
delete mode 100644 test/locale-mbwc/dat_wcsspn.c
delete mode 100644 test/locale-mbwc/dat_wcsstr.c
delete mode 100644 test/locale-mbwc/dat_wcstod.c
delete mode 100644 test/locale-mbwc/dat_wcstok.c
delete mode 100644 test/locale-mbwc/dat_wcstombs.c
delete mode 100644 test/locale-mbwc/dat_wcswidth.c
delete mode 100644 test/locale-mbwc/dat_wcsxfrm.c
delete mode 100644 test/locale-mbwc/dat_wctob.c
delete mode 100644 test/locale-mbwc/dat_wctomb.c
delete mode 100644 test/locale-mbwc/dat_wctrans.c
delete mode 100644 test/locale-mbwc/dat_wctype.c
delete mode 100644 test/locale-mbwc/dat_wcwidth.c
delete mode 100644 test/locale-mbwc/tgn_funcdef.h
delete mode 100644 test/locale-mbwc/tgn_locdef.h
delete mode 100644 test/locale-mbwc/tsp_common.c
delete mode 100644 test/locale-mbwc/tst2_mbrtowc.c
delete mode 100644 test/locale-mbwc/tst_funcs.h
delete mode 100644 test/locale-mbwc/tst_iswalnum.c
delete mode 100644 test/locale-mbwc/tst_iswalpha.c
delete mode 100644 test/locale-mbwc/tst_iswcntrl.c
delete mode 100644 test/locale-mbwc/tst_iswctype.c
delete mode 100644 test/locale-mbwc/tst_iswdigit.c
delete mode 100644 test/locale-mbwc/tst_iswgraph.c
delete mode 100644 test/locale-mbwc/tst_iswlower.c
delete mode 100644 test/locale-mbwc/tst_iswprint.c
delete mode 100644 test/locale-mbwc/tst_iswpunct.c
delete mode 100644 test/locale-mbwc/tst_iswspace.c
delete mode 100644 test/locale-mbwc/tst_iswupper.c
delete mode 100644 test/locale-mbwc/tst_iswxdigit.c
delete mode 100644 test/locale-mbwc/tst_mblen.c
delete mode 100644 test/locale-mbwc/tst_mbrlen.c
delete mode 100644 test/locale-mbwc/tst_mbrtowc.c
delete mode 100644 test/locale-mbwc/tst_mbsrtowcs.c
delete mode 100644 test/locale-mbwc/tst_mbstowcs.c
delete mode 100644 test/locale-mbwc/tst_mbtowc.c
delete mode 100644 test/locale-mbwc/tst_strcoll.c
delete mode 100644 test/locale-mbwc/tst_strfmon.c
delete mode 100644 test/locale-mbwc/tst_strxfrm.c
delete mode 100644 test/locale-mbwc/tst_swscanf.c
delete mode 100644 test/locale-mbwc/tst_towctrans.c
delete mode 100644 test/locale-mbwc/tst_towlower.c
delete mode 100644 test/locale-mbwc/tst_towupper.c
delete mode 100644 test/locale-mbwc/tst_types.h
delete mode 100644 test/locale-mbwc/tst_wcrtomb.c
delete mode 100644 test/locale-mbwc/tst_wcscat.c
delete mode 100644 test/locale-mbwc/tst_wcschr.c
delete mode 100644 test/locale-mbwc/tst_wcscmp.c
delete mode 100644 test/locale-mbwc/tst_wcscoll.c
delete mode 100644 test/locale-mbwc/tst_wcscpy.c
delete mode 100644 test/locale-mbwc/tst_wcscspn.c
delete mode 100644 test/locale-mbwc/tst_wcslen.c
delete mode 100644 test/locale-mbwc/tst_wcsncat.c
delete mode 100644 test/locale-mbwc/tst_wcsncmp.c
delete mode 100644 test/locale-mbwc/tst_wcsncpy.c
delete mode 100644 test/locale-mbwc/tst_wcspbrk.c
delete mode 100644 test/locale-mbwc/tst_wcsrtombs.c
delete mode 100644 test/locale-mbwc/tst_wcsspn.c
delete mode 100644 test/locale-mbwc/tst_wcsstr.c
delete mode 100644 test/locale-mbwc/tst_wcstod.c
delete mode 100644 test/locale-mbwc/tst_wcstok.c
delete mode 100644 test/locale-mbwc/tst_wcstombs.c
delete mode 100644 test/locale-mbwc/tst_wcswidth.c
delete mode 100644 test/locale-mbwc/tst_wcsxfrm.c
delete mode 100644 test/locale-mbwc/tst_wctob.c
delete mode 100644 test/locale-mbwc/tst_wctomb.c
delete mode 100644 test/locale-mbwc/tst_wctrans.c
delete mode 100644 test/locale-mbwc/tst_wctype.c
delete mode 100644 test/locale-mbwc/tst_wcwidth.c
delete mode 100644 test/locale/Makefile
delete mode 100644 test/locale/Makefile.in
delete mode 100644 test/locale/bug-iconv-trans.c
delete mode 100644 test/locale/bug-usesetlocale.c
delete mode 100644 test/locale/collate-test.c
delete mode 100644 test/locale/dump-ctype.c
delete mode 100644 test/locale/gen-unicode-ctype.c
delete mode 100644 test/locale/show-ucs-data.c
delete mode 100644 test/locale/tst-C-locale.c
delete mode 100644 test/locale/tst-ctype-de_DE.ISO-8859-1.in
delete mode 100644 test/locale/tst-ctype.c
delete mode 100644 test/locale/tst-digits.c
delete mode 100644 test/locale/tst-fmon.c
delete mode 100644 test/locale/tst-langinfo.c
delete mode 100644 test/locale/tst-langinfo.input
delete mode 100644 test/locale/tst-leaks.c
delete mode 100644 test/locale/tst-mbswcs1.c
delete mode 100644 test/locale/tst-mbswcs2.c
delete mode 100644 test/locale/tst-mbswcs3.c
delete mode 100644 test/locale/tst-mbswcs4.c
delete mode 100644 test/locale/tst-mbswcs5.c
delete mode 100644 test/locale/tst-mbswcs6.c
delete mode 100644 test/locale/tst-numeric.c
delete mode 100644 test/locale/tst-rpmatch.c
delete mode 100644 test/locale/tst-setlocale.c
delete mode 100644 test/locale/tst-sscanf.c
delete mode 100644 test/locale/tst-strfmon1.c
delete mode 100644 test/locale/tst-trans.c
delete mode 100644 test/locale/tst-wctype.c
delete mode 100644 test/locale/tst-xlocale1.c
delete mode 100644 test/locale/tst-xlocale2.c
delete mode 100644 test/locale/tst_nl_langinfo.c
delete mode 100644 test/locale/xfrm-test.c
delete mode 100644 test/malloc/Makefile
delete mode 100644 test/malloc/Makefile.in
delete mode 100644 test/malloc/malloc-standard-alignment.c
delete mode 100644 test/malloc/malloc.c
delete mode 100644 test/malloc/mallocbug.c
delete mode 100644 test/malloc/realloc-can-shrink.c
delete mode 100644 test/malloc/realloc0.c
delete mode 100644 test/malloc/testmalloc.c
delete mode 100644 test/malloc/time_malloc.c
delete mode 100644 test/malloc/tst-asprintf.c
delete mode 100644 test/malloc/tst-calloc.c
delete mode 100644 test/malloc/tst-malloc.c
delete mode 100644 test/malloc/tst-mallocfork.c
delete mode 100644 test/malloc/tst-mcheck.c
delete mode 100644 test/malloc/tst-obstack.c
delete mode 100644 test/malloc/tst-valloc.c
delete mode 100644 test/math/Makefile
delete mode 100644 test/math/Makefile.in
delete mode 100644 test/math/basic-test.c
delete mode 100644 test/math/c99_test.c
delete mode 100644 test/math/compile_test.c
delete mode 100644 test/math/fenv.h
delete mode 100644 test/math/gamma.c
delete mode 100755 test/math/gen-libm-test.pl
delete mode 100644 test/math/ilogb.c
delete mode 100644 test/math/libm-test-ulps-arc
delete mode 100644 test/math/libm-test-ulps-arm
delete mode 100644 test/math/libm-test-ulps-cris
delete mode 100644 test/math/libm-test-ulps-generic
delete mode 100644 test/math/libm-test-ulps-i386
delete mode 100644 test/math/libm-test-ulps-ia64
delete mode 100644 test/math/libm-test-ulps-microblaze
delete mode 100644 test/math/libm-test-ulps-mips32
delete mode 100644 test/math/libm-test-ulps-mips64
delete mode 100644 test/math/libm-test-ulps-nds32
delete mode 100644 test/math/libm-test-ulps-powerpc
delete mode 100644 test/math/libm-test-ulps-sh
delete mode 100644 test/math/libm-test-ulps-sparc
delete mode 100644 test/math/libm-test-ulps-x86_64
delete mode 100644 test/math/libm-test-ulps-xtensa
delete mode 100644 test/math/libm-test.inc
delete mode 100644 test/math/rint.c
delete mode 100644 test/math/signgam.c
delete mode 100644 test/math/test-double.c
delete mode 100644 test/math/test-float.c
delete mode 100644 test/math/test-fpucw.c
delete mode 100644 test/math/test-idouble.c
delete mode 100644 test/math/test-ifloat.c
delete mode 100644 test/math/test-ildoubl.c
delete mode 100644 test/math/test-ldouble.c
delete mode 100644 test/math/tst-definitions.c
delete mode 100644 test/misc/Makefile
delete mode 100644 test/misc/Makefile.in
delete mode 100644 test/misc/bug-glob1.c
delete mode 100644 test/misc/bug-glob2.c
delete mode 100644 test/misc/bug-readdir1.c
delete mode 100644 test/misc/dirent.c
delete mode 100644 test/misc/dirent64.c
delete mode 100644 test/misc/fdopen.c
delete mode 100644 test/misc/opendir-tst1.c
delete mode 100644 test/misc/outb.c
delete mode 100644 test/misc/popen.c
delete mode 100644 test/misc/seek.c
delete mode 100644 test/misc/sem.c
delete mode 100644 test/misc/stdarg.c
delete mode 100644 test/misc/tst-fnmatch.c
delete mode 100644 test/misc/tst-fnmatch.input
delete mode 100644 test/misc/tst-gnuglob.c
delete mode 100644 test/misc/tst-inotify.c
delete mode 100644 test/misc/tst-mkostemps.c
delete mode 100644 test/misc/tst-nftw.c
delete mode 100644 test/misc/tst-scandir.c
delete mode 100644 test/misc/tst-seekdir.c
delete mode 100644 test/misc/tst-statfs.c
delete mode 100644 test/misc/tst-statvfs.c
delete mode 100644 test/misc/tst-utmp.c
delete mode 100644 test/misc/tst-utmpx.c
delete mode 100644 test/mmap/Makefile
delete mode 100644 test/mmap/Makefile.in
delete mode 100644 test/mmap/mmap.c
delete mode 100644 test/mmap/mmap2.c
delete mode 100644 test/mmap/mmap64.c
delete mode 100644 test/mmap/tst-mmap-eofsync.c
delete mode 100644 test/mmap/tst-mmap-fflushsync.c
delete mode 100644 test/mmap/tst-mmap-offend.c
delete mode 100644 test/mmap/tst-mmap-setvbuf.c
delete mode 100644 test/nptl/Makefile
delete mode 100644 test/nptl/Makefile.in
delete mode 100644 test/nptl/eintr.c
delete mode 100644 test/nptl/tst-align.c
delete mode 100644 test/nptl/tst-align2.c
delete mode 100644 test/nptl/tst-align3.c
delete mode 100644 test/nptl/tst-atfork1.c
delete mode 100644 test/nptl/tst-atfork2.c
delete mode 100644 test/nptl/tst-atfork2mod.c
delete mode 100644 test/nptl/tst-attr1.c
delete mode 100644 test/nptl/tst-attr2.c
delete mode 100644 test/nptl/tst-attr3.c
delete mode 100644 test/nptl/tst-barrier1.c
delete mode 100644 test/nptl/tst-barrier2.c
delete mode 100644 test/nptl/tst-barrier3.c
delete mode 100644 test/nptl/tst-barrier4.c
delete mode 100644 test/nptl/tst-basic1.c
delete mode 100644 test/nptl/tst-basic2.c
delete mode 100644 test/nptl/tst-basic3.c
delete mode 100644 test/nptl/tst-basic4.c
delete mode 100644 test/nptl/tst-basic5.c
delete mode 100644 test/nptl/tst-basic6.c
delete mode 100644 test/nptl/tst-basic7.c
delete mode 100644 test/nptl/tst-cancel1.c
delete mode 100644 test/nptl/tst-cancel10.c
delete mode 100644 test/nptl/tst-cancel11.c
delete mode 100644 test/nptl/tst-cancel12.c
delete mode 100644 test/nptl/tst-cancel13.c
delete mode 100644 test/nptl/tst-cancel14.c
delete mode 100644 test/nptl/tst-cancel15.c
delete mode 100644 test/nptl/tst-cancel16.c
delete mode 100644 test/nptl/tst-cancel18.c
delete mode 100644 test/nptl/tst-cancel19.c
delete mode 100644 test/nptl/tst-cancel2.c
delete mode 100644 test/nptl/tst-cancel20.c
delete mode 100644 test/nptl/tst-cancel21.c
delete mode 100644 test/nptl/tst-cancel22.c
delete mode 100644 test/nptl/tst-cancel23.c
delete mode 100644 test/nptl/tst-cancel25.c
delete mode 100644 test/nptl/tst-cancel3.c
delete mode 100644 test/nptl/tst-cancel4.c
delete mode 100644 test/nptl/tst-cancel5.c
delete mode 100644 test/nptl/tst-cancel6.c
delete mode 100644 test/nptl/tst-cancel7.c
delete mode 100644 test/nptl/tst-cancel8.c
delete mode 100644 test/nptl/tst-cancel9.c
delete mode 100644 test/nptl/tst-cancelx10.c
delete mode 100644 test/nptl/tst-cancelx11.c
delete mode 100644 test/nptl/tst-cancelx12.c
delete mode 100644 test/nptl/tst-cancelx13.c
delete mode 100644 test/nptl/tst-cancelx14.c
delete mode 100644 test/nptl/tst-cancelx15.c
delete mode 100644 test/nptl/tst-cancelx16.c
delete mode 100644 test/nptl/tst-cancelx18.c
delete mode 100644 test/nptl/tst-cancelx2.c
delete mode 100644 test/nptl/tst-cancelx20.c
delete mode 100644 test/nptl/tst-cancelx21.c
delete mode 100644 test/nptl/tst-cancelx3.c
delete mode 100644 test/nptl/tst-cancelx4.c
delete mode 100644 test/nptl/tst-cancelx6.c
delete mode 100644 test/nptl/tst-cancelx7.c
delete mode 100644 test/nptl/tst-cancelx8.c
delete mode 100644 test/nptl/tst-cancelx9.c
delete mode 100644 test/nptl/tst-cleanup0.c
delete mode 100644 test/nptl/tst-cleanup1.c
delete mode 100644 test/nptl/tst-cleanup2.c
delete mode 100644 test/nptl/tst-cleanup3.c
delete mode 100644 test/nptl/tst-cleanup4.c
delete mode 100644 test/nptl/tst-cleanup4aux.c
delete mode 100644 test/nptl/tst-cleanupx0.c
delete mode 100644 test/nptl/tst-cleanupx1.c
delete mode 100644 test/nptl/tst-cleanupx2.c
delete mode 100644 test/nptl/tst-cleanupx3.c
delete mode 100644 test/nptl/tst-cleanupx4.c
delete mode 100644 test/nptl/tst-clock.c
delete mode 100644 test/nptl/tst-clock1.c
delete mode 100644 test/nptl/tst-clock2.c
delete mode 100644 test/nptl/tst-clock_nanosleep.c
delete mode 100644 test/nptl/tst-cond-deadlock.c
delete mode 100644 test/nptl/tst-cond1.c
delete mode 100644 test/nptl/tst-cond10.c
delete mode 100644 test/nptl/tst-cond11.c
delete mode 100644 test/nptl/tst-cond12.c
delete mode 100644 test/nptl/tst-cond13.c
delete mode 100644 test/nptl/tst-cond14.c
delete mode 100644 test/nptl/tst-cond15.c
delete mode 100644 test/nptl/tst-cond16.c
delete mode 100644 test/nptl/tst-cond17.c
delete mode 100644 test/nptl/tst-cond18.c
delete mode 100644 test/nptl/tst-cond19.c
delete mode 100644 test/nptl/tst-cond2.c
delete mode 100644 test/nptl/tst-cond20.c
delete mode 100644 test/nptl/tst-cond21.c
delete mode 100644 test/nptl/tst-cond22.c
delete mode 100644 test/nptl/tst-cond23.c
delete mode 100644 test/nptl/tst-cond3.c
delete mode 100644 test/nptl/tst-cond4.c
delete mode 100644 test/nptl/tst-cond5.c
delete mode 100644 test/nptl/tst-cond6.c
delete mode 100644 test/nptl/tst-cond7.c
delete mode 100644 test/nptl/tst-cond8.c
delete mode 100644 test/nptl/tst-cond9.c
delete mode 100644 test/nptl/tst-cpuclock1.c
delete mode 100644 test/nptl/tst-cpuclock2.c
delete mode 100644 test/nptl/tst-cputimer1.c
delete mode 100644 test/nptl/tst-cputimer2.c
delete mode 100644 test/nptl/tst-cputimer3.c
delete mode 100644 test/nptl/tst-detach1.c
delete mode 100644 test/nptl/tst-dlsym1.c
delete mode 100644 test/nptl/tst-eintr1.c
delete mode 100644 test/nptl/tst-eintr2.c
delete mode 100644 test/nptl/tst-eintr3.c
delete mode 100644 test/nptl/tst-eintr4.c
delete mode 100644 test/nptl/tst-eintr5.c
delete mode 100644 test/nptl/tst-exec2.c
delete mode 100644 test/nptl/tst-exec3.c
delete mode 100644 test/nptl/tst-exec4.c
delete mode 100644 test/nptl/tst-exit1.c
delete mode 100644 test/nptl/tst-exit2.c
delete mode 100644 test/nptl/tst-exit3.c
delete mode 100644 test/nptl/tst-fini1.c
delete mode 100644 test/nptl/tst-fini1mod.c
delete mode 100644 test/nptl/tst-flock1.c
delete mode 100644 test/nptl/tst-flock2.c
delete mode 100644 test/nptl/tst-fork1.c
delete mode 100644 test/nptl/tst-fork2.c
delete mode 100644 test/nptl/tst-fork3.c
delete mode 100644 test/nptl/tst-fork4.c
delete mode 100644 test/nptl/tst-getpid1.c
delete mode 100644 test/nptl/tst-getpid2.c
delete mode 100644 test/nptl/tst-getpid3.c
delete mode 100644 test/nptl/tst-initializers1-c89.c
delete mode 100644 test/nptl/tst-initializers1-c99.c
delete mode 100644 test/nptl/tst-initializers1-gnu89.c
delete mode 100644 test/nptl/tst-initializers1-gnu99.c
delete mode 100644 test/nptl/tst-initializers1.c
delete mode 100644 test/nptl/tst-join1.c
delete mode 100644 test/nptl/tst-join2.c
delete mode 100644 test/nptl/tst-join3.c
delete mode 100644 test/nptl/tst-join4.c
delete mode 100644 test/nptl/tst-join5.c
delete mode 100644 test/nptl/tst-join6.c
delete mode 100644 test/nptl/tst-key1.c
delete mode 100644 test/nptl/tst-key2.c
delete mode 100644 test/nptl/tst-key3.c
delete mode 100644 test/nptl/tst-key4.c
delete mode 100644 test/nptl/tst-kill1.c
delete mode 100644 test/nptl/tst-kill2.c
delete mode 100644 test/nptl/tst-kill3.c
delete mode 100644 test/nptl/tst-kill4.c
delete mode 100644 test/nptl/tst-kill5.c
delete mode 100644 test/nptl/tst-kill6.c
delete mode 100644 test/nptl/tst-mqueue.h
delete mode 100644 test/nptl/tst-mqueue1.c
delete mode 100644 test/nptl/tst-mqueue2.c
delete mode 100644 test/nptl/tst-mqueue3.c
delete mode 100644 test/nptl/tst-mqueue4.c
delete mode 100644 test/nptl/tst-mqueue5.c
delete mode 100644 test/nptl/tst-mqueue6.c
delete mode 100644 test/nptl/tst-mqueue7.c
delete mode 100644 test/nptl/tst-mqueue8.c
delete mode 100644 test/nptl/tst-mqueue9.c
delete mode 100644 test/nptl/tst-mutex1.c
delete mode 100644 test/nptl/tst-mutex2.c
delete mode 100644 test/nptl/tst-mutex3.c
delete mode 100644 test/nptl/tst-mutex4.c
delete mode 100644 test/nptl/tst-mutex5.c
delete mode 100644 test/nptl/tst-mutex5a.c
delete mode 100644 test/nptl/tst-mutex6.c
delete mode 100644 test/nptl/tst-mutex7.c
delete mode 100644 test/nptl/tst-mutex7a.c
delete mode 100644 test/nptl/tst-mutex8.c
delete mode 100644 test/nptl/tst-mutex9.c
delete mode 100644 test/nptl/tst-oddstacklimit.c
delete mode 100644 test/nptl/tst-once1.c
delete mode 100644 test/nptl/tst-once2.c
delete mode 100644 test/nptl/tst-once3.c
delete mode 100644 test/nptl/tst-once4.c
delete mode 100644 test/nptl/tst-oncex3.c
delete mode 100644 test/nptl/tst-oncex4.c
delete mode 100644 test/nptl/tst-popen1.c
delete mode 100644 test/nptl/tst-raise1.c
delete mode 100644 test/nptl/tst-rwlock1.c
delete mode 100644 test/nptl/tst-rwlock10.c
delete mode 100644 test/nptl/tst-rwlock11.c
delete mode 100644 test/nptl/tst-rwlock12.c
delete mode 100644 test/nptl/tst-rwlock13.c
delete mode 100644 test/nptl/tst-rwlock14.c
delete mode 100644 test/nptl/tst-rwlock2.c
delete mode 100644 test/nptl/tst-rwlock2a.c
delete mode 100644 test/nptl/tst-rwlock3.c
delete mode 100644 test/nptl/tst-rwlock4.c
delete mode 100644 test/nptl/tst-rwlock5.c
delete mode 100644 test/nptl/tst-rwlock6.c
delete mode 100644 test/nptl/tst-rwlock7.c
delete mode 100644 test/nptl/tst-rwlock8.c
delete mode 100644 test/nptl/tst-rwlock9.c
delete mode 100644 test/nptl/tst-sched1.c
delete mode 100644 test/nptl/tst-sem1.c
delete mode 100644 test/nptl/tst-sem10.c
delete mode 100644 test/nptl/tst-sem11.c
delete mode 100644 test/nptl/tst-sem12.c
delete mode 100644 test/nptl/tst-sem2.c
delete mode 100644 test/nptl/tst-sem3.c
delete mode 100644 test/nptl/tst-sem4.c
delete mode 100644 test/nptl/tst-sem5.c
delete mode 100644 test/nptl/tst-sem6.c
delete mode 100644 test/nptl/tst-sem7.c
delete mode 100644 test/nptl/tst-sem8.c
delete mode 100644 test/nptl/tst-sem9.c
delete mode 100644 test/nptl/tst-signal1.c
delete mode 100644 test/nptl/tst-signal2.c
delete mode 100644 test/nptl/tst-signal3.c
delete mode 100644 test/nptl/tst-signal4.c
delete mode 100644 test/nptl/tst-signal5.c
delete mode 100644 test/nptl/tst-signal6.c
delete mode 100644 test/nptl/tst-signal7.c
delete mode 100644 test/nptl/tst-spin1.c
delete mode 100644 test/nptl/tst-spin2.c
delete mode 100644 test/nptl/tst-spin3.c
delete mode 100644 test/nptl/tst-stack-align.h
delete mode 100644 test/nptl/tst-stack1.c
delete mode 100644 test/nptl/tst-stack2.c
delete mode 100644 test/nptl/tst-stdio1.c
delete mode 100644 test/nptl/tst-stdio2.c
delete mode 100644 test/nptl/tst-sysconf.c
delete mode 100644 test/nptl/tst-timer2.c
delete mode 100644 test/nptl/tst-timer3.c
delete mode 100644 test/nptl/tst-timer4.c
delete mode 100644 test/nptl/tst-timer5.c
delete mode 100644 test/nptl/tst-tls1.c
delete mode 100644 test/nptl/tst-tls2.c
delete mode 100644 test/nptl/tst-tls3.c
delete mode 100644 test/nptl/tst-tls3mod.c
delete mode 100644 test/nptl/tst-tls4.c
delete mode 100644 test/nptl/tst-tls4moda.c
delete mode 100644 test/nptl/tst-tls4modb.c
delete mode 100644 test/nptl/tst-tls5.c
delete mode 100644 test/nptl/tst-tls5.h
delete mode 100644 test/nptl/tst-tls5mod.c
delete mode 100644 test/nptl/tst-tls5moda.c
delete mode 100644 test/nptl/tst-tls5modb.c
delete mode 100644 test/nptl/tst-tls5modc.c
delete mode 100644 test/nptl/tst-tls5modd.c
delete mode 100644 test/nptl/tst-tls5mode.c
delete mode 100644 test/nptl/tst-tls5modf.c
delete mode 100644 test/nptl/tst-tsd1.c
delete mode 100644 test/nptl/tst-tsd2.c
delete mode 100644 test/nptl/tst-tsd3.c
delete mode 100644 test/nptl/tst-tsd4.c
delete mode 100644 test/nptl/tst-tsd5.c
delete mode 100644 test/nptl/tst-tsd6.c
delete mode 100644 test/nptl/tst-typesizes.c
delete mode 100644 test/nptl/tst-umask1.c
delete mode 100644 test/nptl/tst-unload.c
delete mode 100644 test/nptl/tst-vfork1.c
delete mode 100644 test/nptl/tst-vfork1x.c
delete mode 100644 test/nptl/tst-vfork2.c
delete mode 100644 test/nptl/tst-vfork2x.c
delete mode 100755 test/plt/check-plt.sh
delete mode 100644 test/pthread/Makefile
delete mode 100644 test/pthread/Makefile.in
delete mode 100644 test/pthread/cancellation-points.c
delete mode 100644 test/pthread/ex1.c
delete mode 100644 test/pthread/ex2.c
delete mode 100644 test/pthread/ex3.c
delete mode 100644 test/pthread/ex4.c
delete mode 100644 test/pthread/ex5.c
delete mode 100644 test/pthread/ex6.c
delete mode 100644 test/pthread/ex7.c
delete mode 100644 test/pthread/ex8-mtx-odd.c
delete mode 100644 test/pthread/tst-c99.c
delete mode 100644 test/pthread/tst-join2.c
delete mode 100644 test/pthread/tst-join3.c
delete mode 100644 test/pthread/tst-too-many-cleanups.c
delete mode 100644 test/pwd_grp/.indent.pro
delete mode 100644 test/pwd_grp/Makefile
delete mode 100644 test/pwd_grp/Makefile.in
delete mode 100644 test/pwd_grp/getgroups.c
delete mode 100644 test/pwd_grp/grcat.c
delete mode 100644 test/pwd_grp/pwcat.c
delete mode 100644 test/pwd_grp/test_grp.c
delete mode 100644 test/pwd_grp/test_pwd.c
delete mode 100644 test/regex/LICENSE
delete mode 100644 test/regex/Makefile
delete mode 100644 test/regex/Makefile.in
delete mode 100644 test/regex/basic.dat
delete mode 100644 test/regex/categorize.dat
delete mode 100644 test/regex/forcedassoc.dat
delete mode 100644 test/regex/interpretation.dat
delete mode 100644 test/regex/leftassoc.dat
delete mode 100644 test/regex/nullsubexpr.dat
delete mode 100644 test/regex/repetition.dat
delete mode 100644 test/regex/rightassoc.dat
delete mode 100644 test/regex/testregex.c
delete mode 100644 test/regex/tst-regex2.c
delete mode 100644 test/regex/tst-regex2.dat
delete mode 100644 test/regex/tst-regexloc.c
delete mode 100644 test/rpc/Makefile
delete mode 100644 test/rpc/Makefile.in
delete mode 100644 test/rpc/getrpcent.c
delete mode 100644 test/rpc/getrpcent_r.c
delete mode 100644 test/setjmp/Makefile
delete mode 100644 test/setjmp/Makefile.in
delete mode 100644 test/setjmp/bug269-setjmp.c
delete mode 100644 test/setjmp/jmpbug.c
delete mode 100644 test/setjmp/sigjmpbug.c
delete mode 100644 test/setjmp/tst-setjmp.c
delete mode 100644 test/setjmp/tst-vfork-longjmp.c
delete mode 100644 test/signal/.indent.pro
delete mode 100644 test/signal/Makefile
delete mode 100644 test/signal/Makefile.in
delete mode 100644 test/signal/sigchld.c
delete mode 100644 test/signal/signal.c
delete mode 100644 test/signal/tst-raise.c
delete mode 100644 test/signal/tst-signal.c
delete mode 100644 test/signal/tst-signalfd.c
delete mode 100644 test/signal/tst-sigset.c
delete mode 100644 test/signal/tst-sigsimple.c
delete mode 100644 test/silly/Makefile
delete mode 100644 test/silly/Makefile.in
delete mode 100644 test/silly/hello.c
delete mode 100644 test/silly/tiny.c
delete mode 100644 test/silly/tst-atomic-long.c
delete mode 100644 test/silly/tst-atomic.c
delete mode 100644 test/stat/Makefile
delete mode 100644 test/stat/Makefile.in
delete mode 100644 test/stat/memcmp-stat.c
delete mode 100644 test/stat/stat-loop256.c
delete mode 100644 test/stat/stat.c
delete mode 100644 test/stat/stat64.c
delete mode 100644 test/stdio/64bit.c
delete mode 100644 test/stdio/Makefile
delete mode 100644 test/stdio/Makefile.in
delete mode 100644 test/stdio/fclose-loop.c
delete mode 100644 test/stdio/lseek_no_lfs.c
delete mode 100644 test/stdio/scanf_m.c
delete mode 100644 test/stdio/tst-fmemopen.c
delete mode 100644 test/stdlib/Makefile
delete mode 100644 test/stdlib/Makefile.in
delete mode 100644 test/stdlib/ptytest.c
delete mode 100644 test/stdlib/qsort.c
delete mode 100644 test/stdlib/test-canon.c
delete mode 100644 test/stdlib/test-canon2.c
delete mode 100644 test/stdlib/test-mkostemp-O_CLOEXEC.c
delete mode 100644 test/stdlib/test-mkostemp-child.c
delete mode 100644 test/stdlib/testarc4random.c
delete mode 100644 test/stdlib/testatexit.c
delete mode 100644 test/stdlib/teston_exit.c
delete mode 100644 test/stdlib/teststrtol.c
delete mode 100644 test/stdlib/teststrtoq.c
delete mode 100644 test/string/Makefile
delete mode 100644 test/string/Makefile.in
delete mode 100644 test/string/bug-strcoll1.c
delete mode 100644 test/string/bug-strncat1.c
delete mode 100644 test/string/bug-strpbrk1.c
delete mode 100644 test/string/bug-strspn1.c
delete mode 100644 test/string/stratcliff.c
delete mode 100644 test/string/test-ffs.c
delete mode 100644 test/string/testcopy.c
delete mode 100644 test/string/tester.c
delete mode 100644 test/string/tst-bswap.c
delete mode 100644 test/string/tst-inlcall.c
delete mode 100644 test/string/tst-memmove.c
delete mode 100644 test/string/tst-strlen.c
delete mode 100644 test/string/tst-strtok.c
delete mode 100644 test/string/tst-strxfrm.c
delete mode 100644 test/termios/Makefile
delete mode 100644 test/termios/termios.c
delete mode 100644 test/test-skeleton.c
delete mode 100644 test/testsuite.h
delete mode 100644 test/time/Makefile
delete mode 100644 test/time/Makefile.in
delete mode 100644 test/time/bug-asctime.c
delete mode 100644 test/time/bug-asctime_r.c
delete mode 100644 test/time/clocktest.c
delete mode 100644 test/time/test_time.c
delete mode 100644 test/time/time.c
delete mode 100644 test/time/tst-ctime.c
delete mode 100644 test/time/tst-ftime_l.c
delete mode 100644 test/time/tst-futimens1.c
delete mode 100644 test/time/tst-mktime.c
delete mode 100644 test/time/tst-mktime2.c
delete mode 100644 test/time/tst-mktime3.c
delete mode 100644 test/time/tst-posixtz.c
delete mode 100644 test/time/tst-strftime.c
delete mode 100644 test/time/tst-strptime.c
delete mode 100644 test/time/tst-strptime2.c
delete mode 100644 test/time/tst-timerfd.c
delete mode 100644 test/time/tst-timezone.c
delete mode 100644 test/time/tst_wcsftime.c
delete mode 100644 test/tls/Makefile
delete mode 100644 test/tls/Makefile.in
delete mode 100644 test/tls/README
delete mode 100644 test/tls/tls-macros-alpha.h
delete mode 100644 test/tls/tls-macros-arc.h
delete mode 100644 test/tls/tls-macros-arm.h
delete mode 100644 test/tls/tls-macros-i386.h
delete mode 100644 test/tls/tls-macros-ia64.h
delete mode 100644 test/tls/tls-macros-metag.h
delete mode 100644 test/tls/tls-macros-mips.h
delete mode 100644 test/tls/tls-macros-powerpc.h
delete mode 100644 test/tls/tls-macros-sh.h
delete mode 100644 test/tls/tls-macros-sparc.h
delete mode 100644 test/tls/tls-macros-thumb.h
delete mode 100644 test/tls/tls-macros-x86_64.h
delete mode 100644 test/tls/tls-macros-xtensa.h
delete mode 100644 test/tls/tls-macros.h
delete mode 100644 test/tls/tst-tls-at-ctor.c
delete mode 100644 test/tls/tst-tls1-static.c
delete mode 100644 test/tls/tst-tls1.c
delete mode 100644 test/tls/tst-tls10.c
delete mode 100644 test/tls/tst-tls10.h
delete mode 100644 test/tls/tst-tls11.c
delete mode 100644 test/tls/tst-tls12.c
delete mode 100644 test/tls/tst-tls13.c
delete mode 100644 test/tls/tst-tls14.c
delete mode 100644 test/tls/tst-tls15.c
delete mode 100644 test/tls/tst-tls16.c
delete mode 100644 test/tls/tst-tls17.c
delete mode 100644 test/tls/tst-tls18.c
delete mode 100644 test/tls/tst-tls2-static.c
delete mode 100644 test/tls/tst-tls2.c
delete mode 100644 test/tls/tst-tls3.c
delete mode 100644 test/tls/tst-tls4.c
delete mode 100644 test/tls/tst-tls5.c
delete mode 100644 test/tls/tst-tls6.c
delete mode 100644 test/tls/tst-tls7.c
delete mode 100644 test/tls/tst-tls8.c
delete mode 100644 test/tls/tst-tls9-static.c
delete mode 100644 test/tls/tst-tls9.c
delete mode 100644 test/tls/tst-tlsmod-at-ctor.c
delete mode 100644 test/tls/tst-tlsmod1.c
delete mode 100644 test/tls/tst-tlsmod10.c
delete mode 100644 test/tls/tst-tlsmod11.c
delete mode 100644 test/tls/tst-tlsmod12.c
delete mode 100644 test/tls/tst-tlsmod13.c
delete mode 100644 test/tls/tst-tlsmod13a.c
delete mode 100644 test/tls/tst-tlsmod14a.c
delete mode 100644 test/tls/tst-tlsmod14b.c
delete mode 100644 test/tls/tst-tlsmod15a.c
delete mode 100644 test/tls/tst-tlsmod15b.c
delete mode 100644 test/tls/tst-tlsmod16a.c
delete mode 100644 test/tls/tst-tlsmod16b.c
delete mode 100644 test/tls/tst-tlsmod17a.c
delete mode 100644 test/tls/tst-tlsmod17b.c
delete mode 100644 test/tls/tst-tlsmod18a.c
delete mode 100644 test/tls/tst-tlsmod2.c
delete mode 100644 test/tls/tst-tlsmod3.c
delete mode 100644 test/tls/tst-tlsmod4.c
delete mode 100644 test/tls/tst-tlsmod5.c
delete mode 100644 test/tls/tst-tlsmod6.c
delete mode 100644 test/tls/tst-tlsmod7.c
delete mode 100644 test/tls/tst-tlsmod8.c
delete mode 100644 test/tls/tst-tlsmod9.c
delete mode 100644 test/uclibcng-testrunner.sh
delete mode 100644 test/unistd/Makefile
delete mode 100644 test/unistd/Makefile.in
delete mode 100644 test/unistd/clone.c
delete mode 100644 test/unistd/clone_cruft.h
delete mode 100644 test/unistd/errno.c
delete mode 100644 test/unistd/exec-null.c
delete mode 100644 test/unistd/fork.c
delete mode 100644 test/unistd/getcwd.c
delete mode 100644 test/unistd/getopt.c
delete mode 100644 test/unistd/getopt_long.c
delete mode 100644 test/unistd/tst-fallocate.c
delete mode 100644 test/unistd/tst-fallocate64.c
delete mode 100755 test/unistd/tst-getconf.sh
delete mode 100644 test/unistd/tst-posix_fallocate.c
delete mode 100644 test/unistd/tst-posix_fallocate64.c
delete mode 100644 test/unistd/tst-preadwrite.c
delete mode 100644 test/unistd/tst-preadwrite64.c
delete mode 100644 test/unistd/tst-pselect.c
delete mode 100644 test/unistd/tstgetopt.c
delete mode 100644 test/unistd/vfork.c
diff --git a/Makefile.help b/Makefile.help
index f6c7627..43f68a3 100644
--- a/Makefile.help
+++ b/Makefile.help
@@ -46,8 +46,6 @@ help:
@echo ' install_hostutils - install host utilities'
@echo
@echo 'Development:'
- @echo ' check - run testsuite'
- @echo ' test_compile - compile testsuite binaries'
@echo ' release - create a distribution tarball'
@echo
@echo 'Environment variables:'
diff --git a/Makefile.in b/Makefile.in
index 877a0b6..76008a2 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -539,7 +539,6 @@ include_clean:
clean: include_clean
$(Q)$(RM) -r $(top_builddir)lib
@$(MAKE) -C utils CLEAN_utils
- +$(MAKE) -s -C test clean
$(Q)$(RM) $(top_builddir)extra/scripts/unifdef
$(Q)$(RM) -r $(LOCAL_INSTALL_PATH)
@@ -556,15 +555,3 @@ dist release:
cat ../uClibc-$(VERSION).tar | bzip2 -c9 > ../uClibc-$(VERSION).tar.bz2
cat ../uClibc-$(VERSION).tar | xz -e -c8 > ../uClibc-$(VERSION).tar.xz
du -b ../uClibc-$(VERSION).tar.{bz2,xz}
-
-test check: test_compile
- $(Q)$(MAKE) -C test \
- $(if $(O),top_builddir=$(O)/)
-
-test_compile: $(LOCAL_INSTALL_PATH)
- $(Q)$(MAKE) -C test compile \
- $(if $(O),top_builddir=$(O)/)
-
-test_gen: $(LOCAL_INSTALL_PATH)
- $(Q)$(MAKE) -C test gen \
- $(if $(O),top_builddir=$(O)/)
diff --git a/Makerules b/Makerules
index d35e40d..e0784e1 100644
--- a/Makerules
+++ b/Makerules
@@ -7,7 +7,7 @@
PHONY := FORCE
.PHONY: dummy $(PHONY) subdirs \
- all check test $(clean_targets) \
+ all $(clean_targets) \
config dist menuconfig oldconfig release \
utils help
diff --git a/docs/PORTING b/docs/PORTING
index 2ffdeda..d04f3b4 100644
--- a/docs/PORTING
+++ b/docs/PORTING
@@ -45,7 +45,7 @@ you are hacking on.
version) if you wish to properly support shared libraries.
- at this point, you should have enough to generate a working HELLO WORLD
- static binary (see test/silly/*.c files)
+ static binary
- if you want UCLIBC_CTOR_DTOR support, you will need to create crti.S and
crtn.S files which define function prologues/epilogues.
diff --git a/test/.gitignore b/test/.gitignore
deleted file mode 100644
index 0d19285..0000000
--- a/test/.gitignore
+++ /dev/null
@@ -1,334 +0,0 @@
-#
-# Never ignore these
-#
-!.gitignore
-#
-# Generated files
-#
-*.out
-#
-# Executable test
-#
-*_glibc
-argp/argp-ex[1-4]
-argp/argp-test
-argp/bug-argp1
-argp/tst-argp[12]
-args/arg_test
-assert/assert
-crypt/crypt
-crypt/md5c-test
-crypt/sha256c-test
-crypt/sha512c-test
-ctype/ctype
-dlopen/dladdr
-dlopen/dlafk
-dlopen/dlstatic
-dlopen/dltest
-dlopen/dltest2
-dlopen/dlundef
-dlopen/libafk.so
-dlopen/libafk-temp.so
-dlopen/libA.so
-dlopen/libB.so
-dlopen/libC.so
-dlopen/libstatic.so
-dlopen/libtest[123].so
-dlopen/libtest.so
-dlopen/libundef.so
-dlopen/test[1-3]
-dlopen/testscope
-inet/bug-if1
-inet/gethost_r-align
-inet/gethostid
-inet/getnetent
-inet/if_nameindex
-inet/tst-aton
-inet/tst-ether_aton
-inet/tst-ethers
-inet/tst-ethers-line
-inet/tst-network
-inet/tst-ntoa
-inet/tst-res
-inet/tst-sock-nonblock
-librt/shmtest
-locale/bug-iconv-trans
-locale/bug-usesetlocale
-locale/C
-locale/collate-test
-locale/dump-ctype
-locale/gen-unicode-ctype
-locale/show-ucs-data
-locale/tst-digits
-locale/tst-langinfo
-locale/tst-mbswcs[1-6]
-locale/tst_nl_langinfo
-locale/tst-numeric
-locale/tst-setlocale
-locale/tst-sscanf
-locale/tst-trans
-locale/tst-wctype
-locale/tst-xlocale1
-locale/tst-xlocale2
-locale/xfrm-test
-locale-mbwc/tst_iswalnum
-locale-mbwc/tst_iswalpha
-locale-mbwc/tst_iswcntrl
-locale-mbwc/tst_iswctype
-locale-mbwc/tst_iswdigit
-locale-mbwc/tst_iswgraph
-locale-mbwc/tst_iswlower
-locale-mbwc/tst_iswprint
-locale-mbwc/tst_iswpunct
-locale-mbwc/tst_iswspace
-locale-mbwc/tst_iswupper
-locale-mbwc/tst_iswxdigit
-locale-mbwc/tst_mblen
-locale-mbwc/tst_mbrlen
-locale-mbwc/tst_mbrtowc
-locale-mbwc/tst_mbsrtowcs
-locale-mbwc/tst_mbstowcs
-locale-mbwc/tst_mbtowc
-locale-mbwc/tst_strcoll
-locale-mbwc/tst_strxfrm
-locale-mbwc/tst_swscanf
-locale-mbwc/tst_towctrans
-locale-mbwc/tst_towlower
-locale-mbwc/tst_towupper
-locale-mbwc/tst_wcrtomb
-locale-mbwc/tst_wcscat
-locale-mbwc/tst_wcschr
-locale-mbwc/tst_wcscmp
-locale-mbwc/tst_wcscoll
-locale-mbwc/tst_wcscpy
-locale-mbwc/tst_wcscspn
-locale-mbwc/tst_wcslen
-locale-mbwc/tst_wcsncat
-locale-mbwc/tst_wcsncmp
-locale-mbwc/tst_wcsncpy
-locale-mbwc/tst_wcspbrk
-locale-mbwc/tst_wcsrtombs
-locale-mbwc/tst_wcsspn
-locale-mbwc/tst_wcsstr
-locale-mbwc/tst_wcstod
-locale-mbwc/tst_wcstok
-locale-mbwc/tst_wcstombs
-locale-mbwc/tst_wcswidth
-locale-mbwc/tst_wcsxfrm
-locale-mbwc/tst_wctob
-locale-mbwc/tst_wctomb
-locale-mbwc/tst_wctrans
-locale-mbwc/tst_wctype
-locale-mbwc/tst_wcwidth
-locale-mbwc/tst2_mbrtowc
-malloc/malloc
-malloc/mallocbug
-malloc/malloc-standard-alignment
-malloc/realloc0
-malloc/realloc-can-shrink
-malloc/testmalloc
-malloc/tst-[cmv]alloc
-malloc/tst-mallocfork
-malloc/tst-mcheck
-malloc/tst-obstack
-math/basic-test
-math/compile_test
-math/c99_test
-math/ilogb
-math/libm-test-ulps.h
-math/libm-test.c
-math/rint
-math/signgam
-math/test-double
-math/test-ildoubl
-math/test-ldouble
-math/test-float
-math/test-fpucw
-math/test-idouble
-math/test-ifloat
-math/tst-definitions
-misc/bug-glob2
-misc/bug-readdir1
-misc/dirent
-misc/dirent64
-misc/fdopen
-misc/opendir-tst1
-misc/popen
-misc/seek
-misc/sem
-misc/stdarg
-misc/tst-inotify
-misc/tst-scandir
-misc/tst-seekdir
-misc/tst-statfs
-misc/tst-statvfs
-misc/tst-utmp
-misc/tst-utmpx
-mmap/mmap
-mmap/mmap2
-mmap/mmap64
-nptl/tst-align
-nptl/tst-align2
-nptl/tst-align3
-nptl/tst-atfork1
-nptl/tst-attr[1-3]
-nptl/tst-barrier[1-4]
-nptl/tst-basic[1-7]
-nptl/tst-cancel[1-9]
-nptl/tst-cancelx[2-4]
-nptl/tst-cancelx[6-9]
-nptl/tst-cancelx1[0-8]
-nptl/tst-cancelx2[0-1]
-nptl/tst-cancel[1-3][0-9]
-nptl/tst-cleanup[0-4]
-nptl/tst-cleanupx[0-4]
-nptl/tst-clock
-nptl/tst-clock[12]
-nptl/tst-clock_nanosleep
-nptl/tst-cond[1-9]
-nptl/tst-cond[1-2][0-9]
-nptl/tst-cpuclock[12]
-nptl/tst-cputimer[1-3]
-nptl/tst-detach1
-nptl/tst-dlsym1
-nptl/tst-eintr[1-5]
-nptl/tst-exec[2-4]
-nptl/tst-exit[1-3]
-nptl/tst-fini1
-nptl/tst-fini1mod.so
-nptl/tst-flock[1-2]
-nptl/tst-fork[1-4]
-nptl/tst-getpid[1-3]
-nptl/tst-initializers1
-nptl/tst-initializers1-c[89]9
-nptl/tst-initializers1-gnu[89]9
-nptl/tst-join[1-6]
-nptl/tst-key[1-4]
-nptl/tst-kill[1-6]
-nptl/tst-mqueue[1-9]
-nptl/tst-mutex[1-9]
-nptl/tst-mutex[57]a
-nptl/tst-once[1-4]
-nptl/tst-oncex[3-4]
-nptl/tst-popen1
-nptl/tst-oddstacklimit
-nptl/tst-raise1
-nptl/tst-rwlock[1-9]
-nptl/tst-rwlock1[0-4]
-nptl/tst-rwlock2a
-nptl/tst-sched1
-nptl/tst-sem[1-9]
-nptl/tst-sem1[0-2]
-nptl/tst-signal[1-7]
-nptl/tst-spin[1-3]
-nptl/tst-stack[12]
-nptl/tst-stdio[12]
-nptl/tst-sysconf
-nptl/tst-timer[2-5]
-nptl/tst-tls[1-5]
-nptl/tst-tls4mod.so
-nptl/tst-tls?mod[a-f].so
-nptl/tst-tls4modb.so
-nptl/tst-tls[35]mod.so
-nptl/tst-tls6.sh
-nptl/tst-tsd[1-6]
-nptl/tst-typesizes
-nptl/tst-umask1
-nptl/tst-unload
-nptl/tst-vfork[12]x
-pthread/cancellation-points
-pthread/ex[1-7]
-pthread/tst-too-many-cleanups
-pwd_grp/getgroups
-pwd_grp/grcat
-pwd_grp/pwcat
-pwd_grp/test_grp
-pwd_grp/test_pwd
-regex/testregex
-regex/tst-regex2
-regex/tst-regexloc
-rpc/getrpcent
-rpc/getrpcent_r
-setjmp/bug269-setjmp
-setjmp/jmpbug
-setjmp/sigjmpbug
-setjmp/tst-setjmp
-setjmp/tst-vfork-longjmp
-signal/sigchld
-signal/signal
-signal/tst-raise
-signal/tst-signal
-signal/tst-signalfd
-signal/tst-sigset
-signal/tst-sigsimple
-silly/hello
-silly/tiny
-silly/tst-atomic
-silly/tst-atomic-long
-stat/memcmp-stat
-stat/stat
-stat/stat64
-stat/stat-loop256
-stdio/64bit
-stdio/fclose-loop
-stdlib/ptytest
-stdlib/qsort
-stdlib/testarc4random
-stdlib/testatexit
-stdlib/test-canon
-stdlib/test-canon2
-stdlib/test-mkostemp-O_CLOEXEC
-stdlib/test-mkostemp-child
-stdlib/teston_exit
-stdlib/teststrtol
-stdlib/teststrtoq
-string/bug-strcoll1
-string/bug-strncat1
-string/bug-strpbrk1
-string/bug-strspn1
-string/stratcliff
-string/testcopy
-string/tester
-string/test-ffs
-string/tst-bswap
-string/tst-inlcall
-string/tst-strlen
-string/tst-strtok
-string/tst-strxfrm
-termios/termios
-time/clocktest
-time/test_time
-time/tst-ctime
-time/tst-ftime_l
-time/tst-futimens1
-time/tst-mktime
-time/tst-mktime3
-time/tst-strptime2
-time/tst-timerfd
-time/tst_wcsftime
-tls/tst-tls[1-9]
-tls/tst-tls1[0-8]
-tls/tst-tls-at-ctor
-tls/tst-tlsmod[1-9].so
-tls/tst-tlsmod1[0-9].so
-tls/tst-tlsmod1[0-9][ab].so
-tls/tst-tlsmod1[78]a[0-9].so
-tls/tst-tlsmod1[78]a1[0-9].so
-tls/tst-tlsmod-at-ctor.so
-unistd/clone
-unistd/errno
-unistd/exec-null
-unistd/fork
-unistd/getconf
-unistd/getconf.c
-unistd/getcwd
-unistd/getopt
-unistd/getopt_long
-unistd/tstgetopt
-unistd/tst-fallocate
-unistd/tst-fallocate64
-unistd/tst-posix_fallocate
-unistd/tst-posix_fallocate64
-unistd/tst-preadwrite
-unistd/tst-preadwrite64
-unistd/vfork
diff --git a/test/Makefile b/test/Makefile
deleted file mode 100644
index 532a43a..0000000
--- a/test/Makefile
+++ /dev/null
@@ -1,91 +0,0 @@
-# Makefile for uClibc
-#
-# Copyright (C) 2000-2005 Erik Andersen <andersen(a)uclibc.org>
-#
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-#
-
-top_srcdir=../
-top_builddir=../
-include Rules.mak
-
-ALL_SUBDIRS := $(patsubst %/Makefile,%,$(wildcard */Makefile))
-
-DIRS := $(ALL_SUBDIRS)
-ifneq ($(HAVE_SHARED)$(UCLIBC_HAS_THREADS),yy)
- DIRS := $(filter-out dlopen,$(DIRS))
-endif
-ifneq ($(findstring -static,$(LDFLAGS)),)
- DIRS := $(filter-out dlopen,$(DIRS))
-endif
-ifneq ($(UCLIBC_HAS_THREADS)$(ARCH_USE_MMU),yy)
- DIRS := $(filter-out pthread,$(DIRS))
-endif
-ifneq ($(UCLIBC_HAS_FLOATS),y)
- DIRS := $(filter-out math,$(DIRS))
-endif
-ifneq ($(UCLIBC_HAS_FULL_RPC),y)
- DIRS := $(filter-out rpc,$(DIRS))
-endif
-ifneq ($(UCLIBC_HAS_REGEX),y)
- DIRS := $(filter-out regex,$(DIRS))
-endif
-ifneq ($(HAVE_SHARED)$(UCLIBC_HAS_THREADS_NATIVE),yy)
- DIRS := $(filter-out tls nptl,$(DIRS))
-endif
-ifneq ($(UCLIBC_HAS_WCHAR),y)
- DIRS := $(filter-out locale-mbwc,$(DIRS))
-endif
-ifneq ($(UCLIBC_HAS_LOCALE),y)
- DIRS := $(filter-out locale,$(DIRS))
-endif
-ifneq ($(UCLIBC_HAS_CRYPT_IMPL),y)
- DIRS := $(filter-out crypt,$(DIRS))
-endif
-ifeq ($(HAS_NO_THREADS),y)
- DIRS := $(filter-out pthread,$(DIRS))
-endif
-ifneq ($(UCLIBC_HAS_ARGP),y)
- DIRS := $(filter-out argp,$(DIRS))
-endif
-
-test check all: run
-
-run: subdirs_run
-
-gen:
- -rm -f $(top_builddir)/test/uclibcng-testrunner.in
- $(MAKE) run UCLIBCNG_GENERATE_TESTRUNNER=1
-
-compile: $(top_builddir)$(LOCAL_INSTALL_PATH) subdirs_compile
-
-$(top_builddir)$(LOCAL_INSTALL_PATH):
- $(Q)$(MAKE) -C $(top_builddir) $(LOCAL_INSTALL_PATH)
-
-tags:
- ctags -R
-
-clean: subdirs_clean
-
-subdirs: $(patsubst %, _dir_%, $(DIRS))
-subdirs_compile: $(patsubst %, _dircompile_%, $(DIRS))
-subdirs_run: $(patsubst %, _dirrun_%, $(DIRS))
-subdirs_clean: $(patsubst %, _dirclean_%, $(ALL_SUBDIRS))
-
-$(patsubst %, _dir_%, $(DIRS)) : dummy
- $(Q)$(MAKE) -C $(patsubst _dir_%, %, $@) \
- KCONFIG_CONFIG=$(KCONFIG_CONFIG)
-
-$(patsubst %, _dirrun_%, $(DIRS)) : dummy
- $(Q)$(MAKE) -C $(patsubst _dirrun_%, %, $@) run \
- UCLIBCNG_TEST_SUBDIR=$(strip $(patsubst _dirrun_%, %, $@)) \
- KCONFIG_CONFIG=$(KCONFIG_CONFIG)
-
-$(patsubst %, _dircompile_%, $(DIRS)) : dummy
- $(Q)$(MAKE) -C $(patsubst _dircompile_%, %, $@) compile \
- KCONFIG_CONFIG=$(KCONFIG_CONFIG)
-
-$(patsubst %, _dirclean_%, $(ALL_SUBDIRS)) : dummy
- $(Q)$(MAKE) -C $(patsubst _dirclean_%, %, $@) clean
-
-.PHONY: all check clean dummy subdirs_compile subdirs_run subdirs subdirs_clean test run
compile
diff --git a/test/README b/test/README
deleted file mode 100644
index 723ce6e..0000000
--- a/test/README
+++ /dev/null
@@ -1,87 +0,0 @@
------------
- For: User
------------
-Following make targets are avaialable
-
-make compile
-
-This will compile and link the tests.
-
-make run
-
-This will execute all the tests.
-
-make check
-make all
-
-This will build and run tests.
-
-The following make variables may help you in testing:
-
- - UCLIBC_ONLY - only run tests against uClibc
- - GLIBC_ONLY - only run tests against glibc
- - V / VERBOSE - run tests with a lot of output
- - TEST_INSTALLED_UCLIBC - Test installed libraries
- under /lib and /usr/lib.
- - TIMEOUTFACTOR=nn - increase test timeout nn times.
- At least REGEX_OLD + regex/tst-regex2 needs it increased.
-
-So, to just run the uClibc tests, try this:
-make check UCLIBC_ONLY=1
-
-You can pass the following 2 environment variables to "make run":
- - make run SIMULATOR_uclibc=qemu-sh4 SIMULATOR_glibc=qemu-x86_64
-
-If you need to test just a subset of all test, delete subdirectories
-you do not need.
-
-As of 2009-07, build machinery does not track dependencies on uclibc.
-If you edit a header and re-run "make compile", it does not re-install it
-into ../install_dir. If you delete ../install_dir, "make compile"
-rebuilds uclibc as needed and re-installs ../install_dir,
-but still does not rebuild testcases.
-(You can work around it by "touch */*.c" for now).
-
-----------------
- For: Developer
-----------------
-
-The structure of this test system is:
- test/ toplevel dir containing common test code
- test/Rules.mak Common build code
- test/Test.mak Runtime test make code
- test/subdir/ code specific to a subsystem is stored in a subdir
- test/subdir/Makefile.in describe the tests to run
- test/subdir/Makefile test entry point, includes needed upper-level
- makefiles plus Makefile.in
- test/subdir/*.c the tests
-
-Each subdir has a Makefile (same for any subdir) that must include in strict order:
- - the upper-level Rules.mak file
- - the Makefile.in
- - the upper-level Test.mak file
-Makefile.in may be used to define the TESTS and TESTS_DISABLED variables.
-If you do not, TESTS is built automatically based upon all the .c files in the subdir.
-TESTS := foo
-TESTS_DISABLED := bar
-Each test must use a similar .c name; so the "foo" test needs a
"foo.c".
-
-Additionally, the following options further control specific test behavior:
-CFLAGS_foo := extra cflags to use to compile test
-DODIFF_foo := compare the output of the glibc and uClibc tests (see below)
-LDFLAGS_foo := extra ldflags to use to link test
-OPTS_foo := extra options to pass to test
-RET_foo := expected exit code of test; default is 0
-WRAPPER_foo := execute stuff just before test
-
-Or to control all tests in a subdir:
-EXTRA_CLEAN := extra files to remove in the clean target
-EXTRA_DIRS := extra directories to remove in the clean target
-EXTRA_CFLAGS := -DFOO
-EXTRA_LDFLAGS := -lpthread
-OPTS :=
-WRAPPER :=
-
-If you want to compare the output of a test with known good output, then just
-create a local file named "foo.out.good" and the output generated by the test
-"foo" will be automatically stored in "foo.out" and compared to
"foo.out.good".
diff --git a/test/Rules.mak b/test/Rules.mak
deleted file mode 100644
index 9416a0c..0000000
--- a/test/Rules.mak
+++ /dev/null
@@ -1,165 +0,0 @@
-# Rules.mak for uClibc test subdirs
-#
-# Copyright (C) 2000-2006 Erik Andersen <andersen(a)uclibc.org>
-#
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-#
-
-.SUFFIXES:
-
-top_builddir ?= ../
-abs_top_builddir ?= $(shell cd $(top_builddir); pwd)/
-
-TESTDIR=$(top_builddir)test/
-
-include $(top_srcdir)Rules.mak
-ifeq ($(filter $(clean_targets) CLEAN_%,$(MAKECMDGOALS)),)
-ifeq ($(HAVE_DOT_CONFIG),)
-$(error no HAVE_DOT_CONFIG, failed to read .config)
-endif
-endif
-
-ifdef UCLIBC_LDSO
-ifeq (,$(findstring /,$(UCLIBC_LDSO)))
-UCLIBC_LDSO := $(UCLIBC_LDSO)
-else
-UCLIBC_LDSO := $(notdir $(UCLIBC_LDSO))
-endif
-else
-UCLIBC_LDSO := $(notdir $(firstword $(wildcard $(top_builddir)lib/ld*)))
-endif
-ifndef TEST_INSTALLED_UCLIBC
-ifeq ($(LDSO_SAFE_RUNPATH),y)
-UCLIBC_PATH := $(abs_top_builddir)lib
-else
-UCLIBC_PATH := $(top_builddir)lib
-endif
-else
-UCLIBC_PATH := $(RUNTIME_PREFIX)$(MULTILIB_DIR)
-endif
-#--------------------------------------------------------
-# Ensure consistent sort order, 'gcc -print-search-dirs' behavior, etc.
-LC_ALL:= C
-export LC_ALL
-
-ifeq ($(strip $(TARGET_ARCH)),)
-TARGET_ARCH:=$(shell $(CC) -dumpmachine | sed -e s'/-.*//' \
- -e 's/i.86/i386/' \
- -e 's/sun.*/sparc/' -e 's/sparc.*/sparc/' \
- -e 's/sa110/arm/' -e 's/arm.*/arm/g' \
- -e 's/m68k.*/m68k/' \
- -e 's/parisc.*/hppa/' \
- -e 's/ppc/powerpc/g' \
- -e 's/sh[234]/sh/' \
- -e 's/mips.*/mips/' \
- -e 's/cris.*/cris/' \
- -e 's/xtensa.*/xtensa/' \
- )
-endif
-export TARGET_ARCH
-
-RM_R = $(Q)$(RM) -r
-LN_S = $(Q)$(LN) -fs
-
-ifneq ($(KERNEL_HEADERS),)
-ifeq ($(patsubst /%,/,$(KERNEL_HEADERS)),/)
-# Absolute path in KERNEL_HEADERS
-KERNEL_INCLUDES += -I$(KERNEL_HEADERS)
-else
-# Relative path in KERNEL_HEADERS
-KERNEL_INCLUDES += -I$(top_builddir)$(KERNEL_HEADERS)
-endif
-endif
-
-XCOMMON_CFLAGS := -I$(top_builddir)test -D_GNU_SOURCE
-XWARNINGS += $(CFLAG_-Wstrict-prototypes)
-CFLAGS := -nostdinc -I$(top_builddir)$(LOCAL_INSTALL_PATH)/usr/include
-CFLAGS += $(XCOMMON_CFLAGS) $(KERNEL_INCLUDES) $(CC_INC)
-CFLAGS += $(OPTIMIZATION) $(CPU_CFLAGS) $(XWARNINGS)
-
-$(eval $(call check-gcc-var,-Wno-missing-field-initializers))
-CFLAGS += $(CFLAG_-Wno-missing-field-initializers)
-
-# Can't add $(OPTIMIZATION) here, it may be target-specific.
-# Just adding -Os for now.
-HOST_CFLAGS += $(XCOMMON_CFLAGS) -Os $(XWARNINGS) -std=gnu99
-
-LDFLAGS := $(CPU_LDFLAGS-y) -Wl,-z,now
-ifeq ($(DODEBUG),y)
- CFLAGS += -g
- HOST_CFLAGS += -g
- LDFLAGS += -Wl,-g
- HOST_LDFLAGS += -Wl,-g
-endif
-
-ifeq ($(DOSTRIP),y)
- LDFLAGS += -Wl,-s
- HOST_LDFLAGS += -Wl,-s
-endif
-
-ifneq ($(HAVE_SHARED),y)
- LDFLAGS += -Wl,-static -static-libgcc
-endif
-
-ifndef TEST_INSTALLED_UCLIBC
-LDFLAGS += -B$(UCLIBC_PATH) -Wl,-rpath,$(UCLIBC_PATH):$(shell pwd)
-Wl,-rpath-link,$(UCLIBC_PATH):$(shell pwd)
-else
-LDFLAGS += -Wl,-rpath,$(shell pwd)
-endif
-
-ifeq ($(findstring -static,$(LDFLAGS)),)
-LDFLAGS += -Wl,--dynamic-linker,$(UCLIBC_PATH)/$(UCLIBC_LDSO)
-endif
-
-ifeq ($(LDSO_GNU_HASH_SUPPORT),y)
-# Check for binutils support is done on root Rules.mak
-LDFLAGS += $(CFLAG_-Wl--hash-style=gnu)
-endif
-
-ifneq ($(strip $(UCLIBC_EXTRA_CFLAGS)),"")
-CFLAGS += $(call qstrip,$(UCLIBC_EXTRA_CFLAGS))
-endif
-ifneq ($(strip $(UCLIBC_EXTRA_LDFLAGS)),"")
-LDFLAGS += $(call qstrip,$(UCLIBC_EXTRA_LDFLAGS))
-endif
-
-ifneq ($(findstring -s,$(MAKEFLAGS)),)
-DISP := sil
-Q := @
-SCAT := -@true
-else
-ifneq ($(V)$(VERBOSE),)
-DISP := ver
-Q :=
-SCAT := cat
-else
-DISP := pur
-Q := @
-SCAT := -@true
-endif
-endif
-ifneq ($(Q),)
-MAKEFLAGS += --no-print-directory
-endif
-
-banner := ---------------------------------
-pur_showclean = echo " "CLEAN $(notdir $(CURDIR))
-pur_showdiff = echo " "TEST_DIFF $(notdir $(CURDIR))/
-pur_showlink = echo " "TEST_LINK $(notdir $(CURDIR))/ $@
-pur_showtest = echo " "TEST_EXEC $(notdir $(CURDIR))/ $(@:.exe=)
-sil_showclean =
-sil_showdiff = true
-sil_showlink = true
-sil_showtest = true
-ver_showclean =
-ver_showdiff = true echo
-ver_showlink = true echo
-ver_showtest = printf "\n$(banner)\nTEST $(notdir $(CURDIR))/
$(@:.exe=)\n$(banner)\n"
-do_showclean = $($(DISP)_showclean)
-do_showdiff = $($(DISP)_showdiff)
-do_showlink = $($(DISP)_showlink)
-do_showtest = $($(DISP)_showtest)
-showclean = @$(do_showclean)
-showdiff = @$(do_showdiff)
-showlink = @$(do_showlink)
-showtest = @$(do_showtest)
diff --git a/test/Test.mak b/test/Test.mak
deleted file mode 100644
index c9b1f5a..0000000
--- a/test/Test.mak
+++ /dev/null
@@ -1,155 +0,0 @@
-# Common makefile rules for tests
-#
-# Copyright (C) 2000-2006 Erik Andersen <andersen(a)uclibc.org>
-#
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-shellescape='$(subst ','\'',$(1))'
-
-ifeq ($(TESTS),)
-TESTS := $(patsubst %.c,%,$(wildcard *.c))
-endif
-ifneq ($(TESTS_DISABLED),)
-TESTS := $(filter-out $(TESTS_DISABLED),$(TESTS))
-endif
-ifeq ($(SHELL_TESTS),)
-SHELL_TESTS := $(patsubst %.sh,shell_%,$(wildcard *.sh))
-endif
-
-ifneq ($(filter-out test,$(strip $(TESTS))),$(strip $(TESTS)))
-$(error Sanity check: cannot have a test named "test.c")
-endif
-
-U_TARGETS := $(TESTS)
-G_TARGETS := $(addsuffix _glibc,$(U_TARGETS))
-
-ifneq ($(GLIBC_TESTS_DISABLED),)
-G_TARGETS := $(filter-out $(GLIBC_TESTS_DISABLED),$(G_TARGETS))
-endif
-
-ifeq ($(GLIBC_ONLY),)
-TARGETS += $(U_TARGETS)
-endif
-ifeq ($(UCLIBC_ONLY),)
-TARGETS += $(G_TARGETS)
-endif
-
-CLEAN_TARGETS := $(U_TARGETS) $(G_TARGETS)
-CLEAN_TARGETS += $(TESTS_DISABLED) $(addsuffix _glibc,$(TESTS_DISABLED))
$(GLIBC_TESTS_DISABLED)
-COMPILE_TARGETS := $(TARGETS)
-# We sort the targets so uClibc and host-libc tests are run adjacent
-RUN_TARGETS := $(sort $(addsuffix .exe,$(TARGETS)))
-COMPILE_TARGETS := $(sort $(COMPILE_TARGETS))
-# provide build rules even for disabled tests:
-U_TARGETS += $(TESTS_DISABLED)
-G_TARGETS += $(addsuffix _glibc,$(TESTS_DISABLED)) $(GLIBC_TESTS_DISABLED)
-TARGETS += $(SHELL_TESTS)
-CFLAGS += $(CFLAGS_$(notdir $(CURDIR)))
-ifeq (1,$(UCLIBCNG_GENERATE_TESTRUNNER))
-UCLIBCNG_TEST_SUBDIR ?= $(patsubst $(realpath $(TESTDIR))/%,%,$(CURDIR))
-endif
-
-define binary_name
-$(patsubst %.exe,%,$@)
-endef
-define tst_src_name
-$(patsubst %_glibc,%,$(binary_name))
-endef
-
-define diff_test
- $(Q)\
- for x in "$(binary_name).out" "$(tst_src_name).out" ; do \
- test -e "$$x.good" && $(do_showdiff) "$(binary_name).out"
"$$x.good" && exec diff -u "$(binary_name).out"
"$$x.good" ; \
- done ; \
- true
-endef
-define uclibc_glibc_diff_test
- $(Q)\
- test -z "$(DODIFF_$(tst_src_name))" && exec true ; \
- uclibc_out="$(binary_name).out" ; \
- glibc_out="$(tst_src_name).out" ; \
- $(do_showdiff) $$uclibc_out $$glibc_out ; \
- exec diff -u "$$uclibc_out" "$$glibc_out"
-endef
-define exec_test
- $(showtest)
- $(Q)\
- $(SIMULATOR) $(WRAPPER) $(WRAPPER_$(tst_src_name)) \
- ./$(binary_name) $(OPTS) $(OPTS_$(tst_src_name)) > "$(binary_name).out"
2>&1 ; \
- ret=$$? ; \
- expected_ret="$(RET_$(tst_src_name))" ; \
- test -z "$$expected_ret" && export expected_ret=0 ; \
- if ! test $$ret -eq $$expected_ret ; then \
- echo "ret == $$ret ; expected_ret == $$expected_ret" ; \
- echo "The output of the failed test is:"; \
- cat "$(binary_name).out"; \
- exit 1 ; \
- fi
- $(SCAT) "$(binary_name).out"
-endef
-
-test check all: run
-run: $(RUN_TARGETS)
-
-$(addsuffix .exe,$(U_TARGETS)): SIMULATOR:=$(SIMULATOR_uclibc)
-$(addsuffix .exe,$(G_TARGETS)): SIMULATOR:=$(SIMULATOR_glibc)
-$(RUN_TARGETS):
-ifeq (1,$(UCLIBCNG_GENERATE_TESTRUNNER))
- $(Q)\
- expected_ret="$(RET_$(tst_src_name))"; echo \
- "$${expected_ret:-0}" \
- $(call shellescape,$(tst_src_name)) \
- $(call shellescape,$(binary_name)) \
- $(call shellescape,$(UCLIBCNG_TEST_SUBDIR)) \
- $(call shellescape,$(WRAPPER) $(WRAPPER_$(tst_src_name)) ./$(binary_name) $(OPTS)
$(OPTS_$(tst_src_name))) \
- >>$(top_builddir)/test/uclibcng-testrunner.in
-else
- $(exec_test)
- $(diff_test)
-ifeq ($(UCLIBC_ONLY),)
- $(uclibc_glibc_diff_test)
-endif
-endif
-
-compile: $(COMPILE_TARGETS)
-
-G_TARGET_SRCS := $(addsuffix .c,$(G_TARGETS))
-U_TARGET_SRCS := $(addsuffix .c,$(U_TARGETS))
-
-MAKE_SRCS := $(wildcard Makefile.in) $(TESTDIR)Makefile $(TESTDIR)Rules.mak
$(TESTDIR)Test.mak
-
-$(U_TARGETS): $(U_TARGET_SRCS) $(MAKE_SRCS)
- $(showlink)
- $(Q)$(CC) $(filter-out $(CFLAGS-OMIT-$@),$(CFLAGS)) $(EXTRA_CFLAGS) $(CFLAGS_$(notdir
$(CURDIR))) $(CFLAGS_$@) -c $@.c -o $@.o
- $(Q)$(CC) $(filter-out $(LDFLAGS-OMIT-$@),$(LDFLAGS)) $@.o -o $@ $(EXTRA_LDFLAGS)
$(LDFLAGS_$@)
-
-$(G_TARGETS): $(U_TARGET_SRCS) $(MAKE_SRCS)
- $(showlink)
- $(Q)$(HOSTCC) $(filter-out $(HOST_CFLAGS-OMIT-$(patsubst %_glibc,%,$@)),$(HOST_CFLAGS))
\
- $(CFLAGS_$(notdir $(CURDIR))) $(CFLAGS_$(patsubst %_glibc,%,$@)) \
- -c $(patsubst %_glibc,%,$(a)).c -o $@.o
- $(Q)$(HOSTCC) $(filter-out $(LDFLAGS-OMIT-$(patsubst %_glibc,%,$@)),$(HOST_LDFLAGS)) \
- $@.o -o $@ $(EXTRA_LDFLAGS) $(LDFLAGS_$(patsubst %_glibc,%,$@)) $(LDFLAGS_$@)
-
-
-shell_%:
- $(showtest)
- $(Q)$(if $(PRE_RUN_$(@)),$(PRE_RUN_$(@)))
- $(Q)$(SHELL) $(patsubst shell_%,%.sh,$(binary_name))
- $(Q)$(if $(POST_RUN_$(@)),$(POST_RUN_$(@)))
-
-%.so: %.c
- $(showlink)
- $(Q)$(CC) \
- $(filter-out $(CFLAGS-OMIT-$<),$(CFLAGS)) $(EXTRA_CFLAGS) \
- $(CFLAGS_$(patsubst %_glibc,%,$@)) \
- -fPIC -shared $< -o $@ -Wl,-soname,$@ \
- $(filter-out $(LDFLAGS-OMIT-$<),$(LDFLAGS)) $(EXTRA_LIBS) \
- $(LDFLAGS_$(patsubst %_glibc,%,$@))
-
-clean:
- $(showclean)
- $(Q)$(RM) *.a *.o *.so *~ core *.out *.gdb $(CLEAN_TARGETS) $(EXTRA_CLEAN)
- $(Q)$(RM_R) $(EXTRA_DIRS)
-
-.PHONY: all check clean test run compile
diff --git a/test/argp/Makefile b/test/argp/Makefile
deleted file mode 100644
index fcb5a83..0000000
--- a/test/argp/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc argp tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/argp/Makefile.in b/test/argp/Makefile.in
deleted file mode 100644
index c472964..0000000
--- a/test/argp/Makefile.in
+++ /dev/null
@@ -1,10 +0,0 @@
-# uClibc argp tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-TESTS := $(addprefix argp-, ex1 ex2 ex3 ex4 test) \
- bug-argp1 tst-argp1 tst-argp2
-
-OPTS_argp-ex3 = ARG1 ARG2
-OPTS_argp-ex4 = ARG1 string1 string2 string3
-OPTS_bug-argp1 = -- --help
-
diff --git a/test/argp/argp-ex1.c b/test/argp/argp-ex1.c
deleted file mode 100644
index 7bb5f22..0000000
--- a/test/argp/argp-ex1.c
+++ /dev/null
@@ -1,15 +0,0 @@
-/* Argp example #1 -- a minimal program using argp */
-
-/* This is (probably) the smallest possible program that
- uses argp. It won't do much except give an error
- messages and exit when there are any arguments, and print
- a (rather pointless) messages for --help. */
-
-#include <stdlib.h>
-#include <argp.h>
-
-int main (int argc, char **argv)
-{
- argp_parse (0, argc, argv, 0, 0, 0);
- exit (0);
-}
diff --git a/test/argp/argp-ex2.c b/test/argp/argp-ex2.c
deleted file mode 100644
index c49fbac..0000000
--- a/test/argp/argp-ex2.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Argp example #2 -- a pretty minimal program using argp */
-
-/* This program doesn't use any options or arguments, but uses
- argp to be compliant with the GNU standard command line
- format.
-
- In addition to making sure no arguments are given, and
- implementing a --help option, this example will have a
- --version option, and will put the given documentation string
- and bug address in the --help output, as per GNU standards.
-
- The variable ARGP contains the argument parser specification;
- adding fields to this structure is the way most parameters are
- passed to argp_parse (the first three fields are usually used,
- but not in this small program). There are also two global
- variables that argp knows about defined here,
- ARGP_PROGRAM_VERSION and ARGP_PROGRAM_BUG_ADDRESS (they are
- global variables because they will almost always be constant
- for a given program, even if it uses different argument
- parsers for various tasks). */
-
-#include <stdlib.h>
-#include <argp.h>
-
-const char *argp_program_version =
- "argp-ex2 1.0";
-const char *argp_program_bug_address =
- "<bug-gnu-utils@@gnu.org>";
-
-/* Program documentation. */
-static char doc[] =
- "Argp example #2 -- a pretty minimal program using argp";
-
-/* Our argument parser. The @code{options}, @code{parser}, and
- @code{args_doc} fields are zero because we have neither options or
- arguments; @code{doc} and @code{argp_program_bug_address} will be
- used in the output for @samp{--help}, and the @samp{--version}
- option will print out @code{argp_program_version}. */
-static struct argp argp = { 0, 0, 0, doc };
-
-int main (int argc, char **argv)
-{
- argp_parse (&argp, argc, argv, 0, 0, 0);
- exit (0);
-}
diff --git a/test/argp/argp-ex3.c b/test/argp/argp-ex3.c
deleted file mode 100644
index 24d5c50..0000000
--- a/test/argp/argp-ex3.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/* Argp example #3 -- a program with options and arguments using argp */
-
-/* This program uses the same features as example 2, and uses options and
- arguments.
-
- We now use the first four fields in ARGP, so here's a description of them:
- OPTIONS -- A pointer to a vector of struct argp_option (see below)
- PARSER -- A function to parse a single option, called by argp
- ARGS_DOC -- A string describing how the non-option arguments should look
- DOC -- A descriptive string about this program; if it contains a
- vertical tab character (\v), the part after it will be
- printed *following* the options
-
- The function PARSER takes the following arguments:
- KEY -- An integer specifying which option this is (taken
- from the KEY field in each struct argp_option), or
- a special key specifying something else; the only
- special keys we use here are ARGP_KEY_ARG, meaning
- a non-option argument, and ARGP_KEY_END, meaning
- that all arguments have been parsed
- ARG -- For an option KEY, the string value of its
- argument, or NULL if it has none
- STATE-- A pointer to a struct argp_state, containing
- various useful information about the parsing state; used here
- are the INPUT field, which reflects the INPUT argument to
- argp_parse, and the ARG_NUM field, which is the number of the
- current non-option argument being parsed
- It should return either 0, meaning success, ARGP_ERR_UNKNOWN, meaning the
- given KEY wasn't recognized, or an errno value indicating some other
- error.
-
- Note that in this example, main uses a structure to communicate with the
- parse_opt function, a pointer to which it passes in the INPUT argument to
- argp_parse. Of course, it's also possible to use global variables
- instead, but this is somewhat more flexible.
-
- The OPTIONS field contains a pointer to a vector of struct argp_option's;
- that structure has the following fields (if you assign your option
- structures using array initialization like this example, unspecified
- fields will be defaulted to 0, and need not be specified):
- NAME -- The name of this option's long option (may be zero)
- KEY -- The KEY to pass to the PARSER function when parsing this option,
- *and* the name of this option's short option, if it is a
- printable ascii character
- ARG -- The name of this option's argument, if any
- FLAGS -- Flags describing this option; some of them are:
- OPTION_ARG_OPTIONAL -- The argument to this option is optional
- OPTION_ALIAS -- This option is an alias for the
- previous option
- OPTION_HIDDEN -- Don't show this option in --help output
- DOC -- A documentation string for this option, shown in --help output
-
- An options vector should be terminated by an option with all fields zero. */
-
-#include <stdlib.h>
-#include <argp.h>
-
-const char *argp_program_version =
- "argp-ex3 1.0";
-const char *argp_program_bug_address =
- "<bug-gnu-utils@@gnu.org>";
-
-/* Program documentation. */
-static char doc[] =
- "Argp example #3 -- a program with options and arguments using argp";
-
-/* A description of the arguments we accept. */
-static char args_doc[] = "ARG1 ARG2";
-
-/* The options we understand. */
-static struct argp_option options[] = {
- {"verbose", 'v', 0, 0, "Produce verbose output" },
- {"quiet", 'q', 0, 0, "Don't produce any
output" },
- {"silent", 's', 0, OPTION_ALIAS },
- {"output", 'o', "FILE", 0,
- "Output to FILE instead of standard output" },
- { 0 }
-};
-
-/* Used by @code{main} to communicate with @code{parse_opt}. */
-struct arguments
-{
- char *args[2]; /* @var{arg1} & @var{arg2} */
- int silent, verbose;
- char *output_file;
-};
-
-/* Parse a single option. */
-static error_t
-parse_opt (int key, char *arg, struct argp_state *state)
-{
- /* Get the @var{input} argument from @code{argp_parse}, which we
- know is a pointer to our arguments structure. */
- struct arguments *arguments = state->input;
-
- switch (key)
- {
- case 'q': case 's':
- arguments->silent = 1;
- break;
- case 'v':
- arguments->verbose = 1;
- break;
- case 'o':
- arguments->output_file = arg;
- break;
-
- case ARGP_KEY_ARG:
- if (state->arg_num >= 2)
- /* Too many arguments. */
- argp_usage (state);
-
- arguments->args[state->arg_num] = arg;
-
- break;
-
- case ARGP_KEY_END:
- if (state->arg_num < 2)
- /* Not enough arguments. */
- argp_usage (state);
- break;
-
- default:
- return ARGP_ERR_UNKNOWN;
- }
- return 0;
-}
-
-/* Our argp parser. */
-static struct argp argp = { options, parse_opt, args_doc, doc };
-
-int main (int argc, char **argv)
-{
- struct arguments arguments;
-
- /* Default values. */
- arguments.silent = 0;
- arguments.verbose = 0;
- arguments.output_file = "-";
-
- /* Parse our arguments; every option seen by @code{parse_opt} will
- be reflected in @code{arguments}. */
- argp_parse (&argp, argc, argv, 0, 0, &arguments);
-
- printf ("ARG1 = %s\nARG2 = %s\nOUTPUT_FILE = %s\n"
- "VERBOSE = %s\nSILENT = %s\n",
- arguments.args[0], arguments.args[1],
- arguments.output_file,
- arguments.verbose ? "yes" : "no",
- arguments.silent ? "yes" : "no");
-
- exit (0);
-}
diff --git a/test/argp/argp-ex4.c b/test/argp/argp-ex4.c
deleted file mode 100644
index c77c7ef..0000000
--- a/test/argp/argp-ex4.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/* Argp example #4 -- a program with somewhat more complicated options */
-
-/* This program uses the same features as example 3, but has more
- options, and somewhat more structure in the -help output. It
- also shows how you can `steal' the remainder of the input
- arguments past a certain point, for programs that accept a
- list of items. It also shows the special argp KEY value
- ARGP_KEY_NO_ARGS, which is only given if no non-option
- arguments were supplied to the program.
-
- For structuring the help output, two features are used,
- *headers* which are entries in the options vector with the
- first four fields being zero, and a two part documentation
- string (in the variable DOC), which allows documentation both
- before and after the options; the two parts of DOC are
- separated by a vertical-tab character ('\v', or '\013'). By
- convention, the documentation before the options is just a
- short string saying what the program does, and that afterwards
- is longer, describing the behavior in more detail. All
- documentation strings are automatically filled for output,
- although newlines may be included to force a line break at a
- particular point. All documentation strings are also passed to
- the `gettext' function, for possible translation into the
- current locale. */
-
-#include <stdlib.h>
-#include <error.h>
-#include <argp.h>
-
-const char *argp_program_version =
- "argp-ex4 1.0";
-const char *argp_program_bug_address =
- "<bug-gnu-utils@@prep.ai.mit.edu>";
-
-/* Program documentation. */
-static char doc[] =
- "Argp example #4 -- a program with somewhat more complicated\
-options\
-\vThis part of the documentation comes *after* the options;\
- note that the text is automatically filled, but it's possible\
- to force a line-break, e.g.\n<-- here.";
-
-/* A description of the arguments we accept. */
-static char args_doc[] = "ARG1 [STRING...]";
-
-/* Keys for options without short-options. */
-#define OPT_ABORT 1 /* --abort */
-
-/* The options we understand. */
-static struct argp_option options[] = {
- {"verbose", 'v', 0, 0, "Produce verbose output" },
- {"quiet", 'q', 0, 0, "Don't produce any
output" },
- {"silent", 's', 0, OPTION_ALIAS },
- {"output", 'o', "FILE", 0,
- "Output to FILE instead of standard output" },
-
- {0,0,0,0, "The following options should be grouped together:" },
- {"repeat", 'r', "COUNT", OPTION_ARG_OPTIONAL,
- "Repeat the output COUNT (default 10) times"},
- {"abort", OPT_ABORT, 0, 0, "Abort before showing any output"},
-
- { 0 }
-};
-
-/* Used by @code{main} to communicate with @code{parse_opt}. */
-struct arguments
-{
- char *arg1; /* @var{arg1} */
- char **strings; /* [@var{string}@dots{}] */
- int silent, verbose, abort; /* @samp{-s}, @samp{-v}, @samp{--abort} */
- char *output_file; /* @var{file} arg to @samp{--output} */
- int repeat_count; /* @var{count} arg to @samp{--repeat} */
-};
-
-/* Parse a single option. */
-static error_t
-parse_opt (int key, char *arg, struct argp_state *state)
-{
- /* Get the @code{input} argument from @code{argp_parse}, which we
- know is a pointer to our arguments structure. */
- struct arguments *arguments = state->input;
-
- switch (key)
- {
- case 'q': case 's':
- arguments->silent = 1;
- break;
- case 'v':
- arguments->verbose = 1;
- break;
- case 'o':
- arguments->output_file = arg;
- break;
- case 'r':
- arguments->repeat_count = arg ? atoi (arg) : 10;
- break;
- case OPT_ABORT:
- arguments->abort = 1;
- break;
-
- case ARGP_KEY_NO_ARGS:
- argp_usage (state);
-
- case ARGP_KEY_ARG:
- /* Here we know that @code{state->arg_num == 0}, since we
- force argument parsing to end before any more arguments can
- get here. */
- arguments->arg1 = arg;
-
- /* Now we consume all the rest of the arguments.
- @code{state->next} is the index in @code{state->argv} of the
- next argument to be parsed, which is the first @var{string}
- we're interested in, so we can just use
- @code{&state->argv[state->next]} as the value for
- arguments->strings.
-
- @emph{In addition}, by setting @code{state->next} to the end
- of the arguments, we can force argp to stop parsing here and
- return. */
- arguments->strings = &state->argv[state->next];
- state->next = state->argc;
-
- break;
-
- default:
- return ARGP_ERR_UNKNOWN;
- }
- return 0;
-}
-
-/* Our argp parser. */
-static struct argp argp = { options, parse_opt, args_doc, doc };
-
-int main (int argc, char **argv)
-{
- int i, j;
- struct arguments arguments;
-
- /* Default values. */
- arguments.silent = 0;
- arguments.verbose = 0;
- arguments.output_file = "-";
- arguments.repeat_count = 1;
- arguments.abort = 0;
-
- /* Parse our arguments; every option seen by @code{parse_opt} will be
- reflected in @code{arguments}. */
- argp_parse (&argp, argc, argv, 0, 0, &arguments);
-
- if (arguments.abort)
- error (10, 0, "ABORTED");
-
- for (i = 0; i < arguments.repeat_count; i++)
- {
- printf ("ARG1 = %s\n", arguments.arg1);
- printf ("STRINGS = ");
- for (j = 0; arguments.strings[j]; j++)
- printf (j == 0 ? "%s" : ", %s", arguments.strings[j]);
- printf ("\n");
- printf ("OUTPUT_FILE = %s\nVERBOSE = %s\nSILENT = %s\n",
- arguments.output_file,
- arguments.verbose ? "yes" : "no",
- arguments.silent ? "yes" : "no");
- }
-
- exit (0);
-}
diff --git a/test/argp/argp-test.c b/test/argp/argp-test.c
deleted file mode 100644
index 2e0c749..0000000
--- a/test/argp/argp-test.c
+++ /dev/null
@@ -1,208 +0,0 @@
-/* Test program for argp argument parser
- Copyright (C) 1997 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Written by Miles Bader <miles at gnu.ai.mit.edu>.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdlib.h>
-#include <time.h>
-#include <string.h>
-#include <argp.h>
-
-const char *argp_program_version = "argp-test 1.0";
-
-struct argp_option sub_options[] =
-{
- {"subopt1", 's', 0, 0, "Nested option 1"},
- {"subopt2", 'S', 0, 0, "Nested option 2"},
-
- { 0, 0, 0, 0, "Some more nested options:", 10},
- {"subopt3", 'p', 0, 0, "Nested option 3"},
-
- {"subopt4", 'q', 0, 0, "Nested option 4", 1},
-
- {0}
-};
-
-static const char sub_args_doc[] = "STRING...\n-";
-static const char sub_doc[] = "\vThis is the doc string from the
sub-arg-parser.";
-
-static error_t
-sub_parse_opt (int key, char *arg, struct argp_state *state)
-{
- switch (key)
- {
- case ARGP_KEY_NO_ARGS:
- printf ("NO SUB ARGS\n");
- break;
- case ARGP_KEY_ARG:
- printf ("SUB ARG: %s\n", arg);
- break;
-
- case 's' : case 'S': case 'p': case 'q':
- printf ("SUB KEY %c\n", key);
- break;
-
- default:
- return ARGP_ERR_UNKNOWN;
- }
- return 0;
-}
-
-static char *
-sub_help_filter (int key, const char *text, void *input)
-{
- if (key == ARGP_KEY_HELP_EXTRA)
- return strdup ("This is some extra text from the sub parser (note that it \
-is preceded by a blank line).");
- else
- return (char *)text;
-}
-
-static struct argp sub_argp = {
- sub_options, sub_parse_opt, sub_args_doc, sub_doc, 0, sub_help_filter
-};
-
-/* Structure used to communicate with the parsing functions. */
-struct params
-{
- unsigned foonly; /* Value parsed for foonly. */
- unsigned foonly_default; /* Default value for it. */
-};
-
-#define OPT_PGRP 1
-#define OPT_SESS 2
-
-struct argp_option options[] =
-{
- {"pid", 'p', "PID", 0, "List the process
PID"},
- {"pgrp", OPT_PGRP,"PGRP",0, "List processes in the
process group PGRP"},
- {"no-parent", 'P', 0, 0, "Include processes without
parents"},
- {0, 'x', 0, OPTION_ALIAS},
- {"all-fields",'Q', 0, 0, "Don't elide unusable
fields (normally"
- " if there's some reason ps can't"
- " print a field for any process, it's"
- " removed from the output entirely)" },
- {"reverse", 'r', 0, 0, "Reverse the order of any
sort"},
- {"gratuitously-long-reverse-option", 0, 0, OPTION_ALIAS},
- {"session", OPT_SESS,"SID", OPTION_ARG_OPTIONAL,
- "Add the processes from the session"
- " SID (which defaults to the sid of"
- " the current process)" },
-
- {0,0,0,0, "Here are some more options:"},
- {"foonly", 'f', "ZOT", OPTION_ARG_OPTIONAL, "Glork a
foonly"},
- {"zaza", 'z', 0, 0, "Snit a zar"},
-
- {0}
-};
-
-static const char args_doc[] = "STRING";
-static const char doc[] = "Test program for argp."
- "\vThis doc string comes after the options."
- "\nHey! Some manual formatting!"
- "\nThe current time is: %s";
-
-static void
-popt (int key, char *arg)
-{
- char buf[10];
- if (isprint (key))
- sprintf (buf, "%c", key);
- else
- sprintf (buf, "%d", key);
- if (arg)
- printf ("KEY %s: %s\n", buf, arg);
- else
- printf ("KEY %s\n", buf);
-}
-
-static error_t
-parse_opt (int key, char *arg, struct argp_state *state)
-{
- struct params *params = state->input;
-
- switch (key)
- {
- case ARGP_KEY_NO_ARGS:
- printf ("NO ARGS\n");
- break;
-
- case ARGP_KEY_ARG:
- if (state->arg_num > 0)
- return ARGP_ERR_UNKNOWN; /* Leave it for the sub-arg parser. */
- printf ("ARG: %s\n", arg);
- break;
-
- case 'f':
- if (arg)
- params->foonly = atoi (arg);
- else
- params->foonly = params->foonly_default;
- popt (key, arg);
- break;
-
- case 'p': case 'P': case OPT_PGRP: case 'x': case
'Q':
- case 'r': case OPT_SESS: case 'z':
- popt (key, arg);
- break;
-
- default:
- return ARGP_ERR_UNKNOWN;
- }
- return 0;
-}
-
-static char *
-help_filter (int key, const char *text, void *input)
-{
- char *new_text;
- struct params *params = input;
-
- if (key == ARGP_KEY_HELP_POST_DOC && text)
- {
- time_t now = time (0);
- asprintf (&new_text, text, ctime (&now));
- }
- else if (key == 'f')
- /* Show the default for the --foonly option. */
- asprintf (&new_text, "%s (ZOT defaults to %x)",
- text, params->foonly_default);
- else
- new_text = (char *)text;
-
- return new_text;
-}
-
-static struct argp_child argp_children[] = { { &sub_argp }, { 0 } };
-static struct argp argp = {
- options, parse_opt, args_doc, doc, argp_children, help_filter
-};
-
-int
-main (int argc, char **argv)
-{
- struct params params;
- params.foonly = 0;
- params.foonly_default = random ();
- argp_parse (&argp, argc, argv, 0, 0, ¶ms);
- printf ("After parsing: foonly = %x\n", params.foonly);
- return 0;
-}
diff --git a/test/argp/bug-argp1.c b/test/argp/bug-argp1.c
deleted file mode 100644
index a28cf4b..0000000
--- a/test/argp/bug-argp1.c
+++ /dev/null
@@ -1,26 +0,0 @@
-#include <argp.h>
-
-
-static const struct argp_option test_options[] =
-{
- { NULL, 'a', NULL, OPTION_DOC, NULL },
- { NULL, 'b', NULL, OPTION_DOC, NULL },
- { NULL, 0, NULL, 0, NULL }
-};
-
-static struct argp test_argp =
-{
- test_options
-};
-
-
-static int
-do_test (int argc, char *argv[])
-{
- int i;
- argp_parse (&test_argp, argc, argv, 0, &i, NULL);
- return 0;
-}
-
-#define TEST_FUNCTION do_test (argc, argv)
-#include "../test-skeleton.c"
diff --git a/test/argp/tst-argp1.c b/test/argp/tst-argp1.c
deleted file mode 100644
index 912e0cb..0000000
--- a/test/argp/tst-argp1.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper at redhat.com>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
-
-#include <argp.h>
-
-
-
-
-#define OPT_TO_THREAD 300
-#define OPT_TO_PROCESS 301
-#define OPT_SYNC_SIGNAL 302
-#define OPT_SYNC_JOIN 303
-#define OPT_TOPLEVEL 304
-
-
-static const struct argp_option test_options[] =
- {
- { NULL, 0, NULL, 0, "\
-This is a test for threads so we allow ther user to selection the number of \
-threads which are used at any one time. Independently the total number of \
-rounds can be selected. This is the total number of threads which will have \
-run when the process terminates:" },
- { "threads", 't', "NUMBER", 0, "Number of threads
used at once" },
- { "starts", 's', "NUMBER", 0, "Total number of
working threads" },
- { "toplevel", OPT_TOPLEVEL, "NUMBER", 0,
- "Number of toplevel threads which start the other threads; this \
-implies --sync-join" },
-
- { NULL, 0, NULL, 0, "\
-Each thread can do one of two things: sleep or do work. The latter is 100% \
-CPU bound. The work load is the probability a thread does work. All values \
-from zero to 100 (inclusive) are valid. How often each thread repeats this \
-can be determined by the number of rounds. The work cost determines how long \
-each work session (not sleeping) takes. If it is zero a thread would \
-effectively nothing. By setting the number of rounds to zero the thread \
-does no work at all and pure thread creation times can be measured." },
- { "workload", 'w', "PERCENT", 0, "Percentage of time
spent working" },
- { "workcost", 'c', "NUMBER", 0,
- "Factor in the cost of each round of working" },
- { "rounds", 'r', "NUMBER", 0, "Number of rounds each
thread runs" },
-
- { NULL, 0, NULL, 0, "\
-There are a number of different methods how thread creation can be \
-synchronized. Synchronization is necessary since the number of concurrently \
-running threads is limited." },
- { "sync-signal", OPT_SYNC_SIGNAL, NULL, 0,
- "Synchronize using a signal (default)" },
- { "sync-join", OPT_SYNC_JOIN, NULL, 0, "Synchronize using
pthread_join" },
-
- { NULL, 0, NULL, 0, "\
-One parameter for each threads execution is the size of the stack. If this \
-parameter is not used the system's default stack size is used. If many \
-threads are used the stack size should be chosen quite small." },
- { "stacksize", 'S', "BYTES", 0, "Size of threads
stack" },
- { "guardsize", 'g', "BYTES", 0,
- "Size of stack guard area; must fit into the stack" },
-
- { NULL, 0, NULL, 0, "Signal options:" },
- { "to-thread", OPT_TO_THREAD, NULL, 0, "Send signal to main
thread" },
- { "to-process", OPT_TO_PROCESS, NULL, 0,
- "Send signal to process (default)" },
-
- { NULL, 0, NULL, 0, "Administrative options:" },
- { "progress", 'p', NULL, 0, "Show signs of progress" },
- { "timing", 'T', NULL, 0,
- "Measure time from startup to the last thread finishing" },
- { NULL, 0, NULL, 0, NULL }
- };
-
-/* Prototype for option handler. */
-static error_t parse_opt (int key, char *arg, struct argp_state *state);
-
-/* Data structure to communicate with argp functions. */
-static struct argp argp =
-{
- test_options, parse_opt
-};
-
-
-static int
-do_test (void)
-{
- int argc = 2;
- char *argv[3] = { (char *) "tst-argp1", (char *) "--help", NULL };
- int remaining;
-
- /* Parse and process arguments. */
- argp_parse (&argp, argc, argv, 0, &remaining, NULL);
-
- return 0;
-}
-
-
-/* Handle program arguments. */
-static error_t
-parse_opt (int key, char *arg, struct argp_state *state)
-{
- return ARGP_ERR_UNKNOWN;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/argp/tst-argp2.c b/test/argp/tst-argp2.c
deleted file mode 100644
index 03afc0b..0000000
--- a/test/argp/tst-argp2.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/* Copyright (C) 2007 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub at redhat.com>, 2007.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
-
-#include <argp.h>
-
-static const struct argp_option opt1[] =
- {
- { "opt1", '1', "NUMBER", 0, "Option 1" },
- { NULL, 0, NULL, 0, NULL }
- };
-
-static const struct argp_option opt2[] =
- {
- { "opt2", '2', "NUMBER", 0, "Option 2" },
- { NULL, 0, NULL, 0, NULL }
- };
-
-static const struct argp_option opt3[] =
- {
- { "opt3", '3', "NUMBER", 0, "Option 3" },
- { NULL, 0, NULL, 0, NULL }
- };
-
-static const struct argp_option opt4[] =
- {
- { "opt4", '4', "NUMBER", 0, "Option 4" },
- { NULL, 0, NULL, 0, NULL }
- };
-
-static const struct argp_option opt5[] =
- {
- { "opt5", '5', "NUMBER", 0, "Option 5" },
- { NULL, 0, NULL, 0, NULL }
- };
-
-static struct argp argp5 =
- {
- opt5, NULL, "args doc5", "doc5", NULL, NULL, NULL
- };
-
-static struct argp argp4 =
- {
- opt4, NULL, "args doc4", "doc4", NULL, NULL, NULL
- };
-
-static struct argp argp3 =
- {
- opt3, NULL, "args doc3", "doc3", NULL, NULL, NULL
- };
-
-static struct argp_child children2[] =
- {
- { &argp4, 0, "child3", 3 },
- { &argp5, 0, "child4", 4 },
- { NULL, 0, NULL, 0 }
- };
-
-static struct argp argp2 =
- {
- opt2, NULL, "args doc2", "doc2", children2, NULL, NULL
- };
-
-static struct argp_child children1[] =
- {
- { &argp2, 0, "child1", 1 },
- { &argp3, 0, "child2", 2 },
- { NULL, 0, NULL, 0 }
- };
-
-static struct argp argp1 =
- {
- opt1, NULL, "args doc1", "doc1", children1, NULL, NULL
- };
-
-
-static int
-do_test (void)
-{
- argp_help (&argp1, stdout, ARGP_HELP_LONG, (char *) "tst-argp2");
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/args/Makefile b/test/args/Makefile
deleted file mode 100644
index 0ae3f01..0000000
--- a/test/args/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc args tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/args/Makefile.in b/test/args/Makefile.in
deleted file mode 100644
index f4edab4..0000000
--- a/test/args/Makefile.in
+++ /dev/null
@@ -1,9 +0,0 @@
-# uClibc args tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-OPTS_arg_test = a b c d e f g h
-WRAPPER_arg_test = \
- env -i \
- ENVVAR=123 \
- SOMETHING=sldajfasdf \
- BLAHBLAH=" hi hi "
diff --git a/test/args/arg_test.c b/test/args/arg_test.c
deleted file mode 100644
index 86f3157..0000000
--- a/test/args/arg_test.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* vi: set sw=4 ts=4: */
-/*
- * Test application for argc and argv handling
- * Copyright (C) 2000-2006 by Erik Andersen <andersen(a)uclibc.org>
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-int main(int argc, char **argv)
-{
- int i=0;
- char** index=__environ;
-
-#ifdef __powerpc__
- {
- unsigned long sp;
- sp = (unsigned long) __builtin_frame_address(0);
- if(sp&0xf){
- printf("stack pointer is unaligned! (%08lx)\n", sp);
- }
- }
-#endif
-
- printf("argc=%d\n", argc);
-
- for(i=0;i<argc;i++) {
- printf("argv[%d]='%s'\n", i, argv[i]);
- }
-
- i=0;
- while(*index) {
- printf("environ[%d]='%s'\n", i++, *index++);
- }
-
- exit(0);
-}
diff --git a/test/args/arg_test.out.good b/test/args/arg_test.out.good
deleted file mode 100644
index 937a803..0000000
--- a/test/args/arg_test.out.good
+++ /dev/null
@@ -1,13 +0,0 @@
-argc=9
-argv[0]='./arg_test'
-argv[1]='a'
-argv[2]='b'
-argv[3]='c'
-argv[4]='d'
-argv[5]='e'
-argv[6]='f'
-argv[7]='g'
-argv[8]='h'
-environ[0]='ENVVAR=123'
-environ[1]='SOMETHING=sldajfasdf'
-environ[2]='BLAHBLAH= hi hi '
diff --git a/test/args/arg_test_glibc.out.good b/test/args/arg_test_glibc.out.good
deleted file mode 100644
index af0efcb..0000000
--- a/test/args/arg_test_glibc.out.good
+++ /dev/null
@@ -1,13 +0,0 @@
-argc=9
-argv[0]='./arg_test_glibc'
-argv[1]='a'
-argv[2]='b'
-argv[3]='c'
-argv[4]='d'
-argv[5]='e'
-argv[6]='f'
-argv[7]='g'
-argv[8]='h'
-environ[0]='ENVVAR=123'
-environ[1]='SOMETHING=sldajfasdf'
-environ[2]='BLAHBLAH= hi hi '
diff --git a/test/assert/Makefile b/test/assert/Makefile
deleted file mode 100644
index 841a4da..0000000
--- a/test/assert/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc assert tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/assert/Makefile.in b/test/assert/Makefile.in
deleted file mode 100644
index 8e3514f..0000000
--- a/test/assert/Makefile.in
+++ /dev/null
@@ -1,5 +0,0 @@
-# uClibc assert tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-RET_assert := 134
-WRAPPER_assert := trap ":" ABRT ;
diff --git a/test/assert/assert.c b/test/assert/assert.c
deleted file mode 100644
index c7058ff..0000000
--- a/test/assert/assert.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* vi: set sw=4 ts=4: */
-/*
- * Test application for functions defined in ctype.h
- * Copyright (C) 2000-2006 by Erik Andersen <andersen(a)uclibc.org>
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-#undef NDEBUG
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <assert.h>
-#include <signal.h>
-#include "../testsuite.h"
-
-int got_abort;
-
-static void aborthandler(int junk)
-{
- got_abort = 1;
-}
-
-int main(int argc, char *argv[])
-{
- signal(SIGABRT, aborthandler);
-
- init_testsuite("Testing functions defined in assert.h:\n\t");
-
- got_abort=0;
- assert(0 == 0);
- TEST_NUMERIC(got_abort, 0);
-
-#define NDEBUG
- got_abort = 0;
- printf("Don't worry -- This next test is supposed to print an assert
message:\n");
- fprintf(stderr, "\t");
- assert(0 == 1);
- TEST_NUMERIC(got_abort, 0);
-
-#undef NDEBUG
- got_abort = 0;
- assert(0 == 1);
- TEST_NUMERIC(got_abort, 1);
-
- exit(0);
-}
diff --git a/test/build/Makefile b/test/build/Makefile
deleted file mode 100644
index ce74a8a..0000000
--- a/test/build/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc build tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/build/check_config_options.sh b/test/build/check_config_options.sh
deleted file mode 100755
index 086131f..0000000
--- a/test/build/check_config_options.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-
-ret=0
-
-# Make sure nothing uses the ARCH_HAS_MMU option anymore
-result=$(
-find ../.. \
- | grep -v \
- -e include/bits/uClibc_config.h \
- -e /test/ \
- -e /.svn/ \
- | xargs grep -sHI \
- __ARCH_HAS_MMU__
-)
-if [ -n "$result" ] ; then
- echo "The build system is incorrectly using ARCH_HAS_MMU:"
- echo "$result"
- ret=1
-fi
-
-exit $ret
diff --git a/test/crypt/Makefile b/test/crypt/Makefile
deleted file mode 100644
index 25b0f3c..0000000
--- a/test/crypt/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc crypt tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/crypt/Makefile.in b/test/crypt/Makefile.in
deleted file mode 100644
index f852219..0000000
--- a/test/crypt/Makefile.in
+++ /dev/null
@@ -1,15 +0,0 @@
-# uClibc crypt tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-EXTRA_LDFLAGS := -lcrypt
-
-OPTS_crypt = < crypt.input
-
-ifneq ($(UCLIBC_HAS_SHA512_CRYPT_IMPL),y)
-TESTS_DISABLED += sha512c-test
-endif
-ifneq ($(UCLIBC_HAS_SHA256_CRYPT_IMPL),y)
-TESTS_DISABLED += sha256c-test
-endif
-
-WRAPPER := env TIMEOUTFACTOR=50
diff --git a/test/crypt/crypt.c b/test/crypt/crypt.c
deleted file mode 100644
index 7864647..0000000
--- a/test/crypt/crypt.c
+++ /dev/null
@@ -1,103 +0,0 @@
-
-/*
- * This crypt(3) validation program shipped with UFC-crypt
- * is derived from one distributed with Phil Karns PD DES package.
- *
- * @(#)cert.c 1.8 11 Aug 1996
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include "crypt.h"
-
-static int totfails = 0;
-
-static void good_bye (void) __attribute__ ((noreturn));
-static void good_bye (void)
-{
- if(totfails == 0) {
- printf("Passed DES validation suite\n");
- exit(0);
- } else {
- printf("%d failures during DES validation suite!!!\n", totfails);
- exit(1);
- }
-}
-
-static void get8(char *cp)
-{
- int i,j,t;
-
- for(i=0;i<8;i++){
- scanf("%2x",&t);
- if(feof(stdin))
- good_bye();
- for(j=0; j<8 ; j++) {
- *cp++ = (t & (0x01 << (7-j))) != 0;
- }
- }
-}
-
-static void put8(char *cp)
-{
- int i,j,t;
-
- for(i=0;i<8;i++){
- t = 0;
- for(j = 0; j<8; j++)
- t = (t<<1) | *cp++;
- printf("%02x", t);
- }
-}
-
-int main(void)
-{
- char key[64],plain[64],cipher[64],answer[64];
- int i;
- int test;
- int fail;
-
- for(test=0;!feof(stdin);test++){
-
- get8(key);
- printf(" K: "); put8(key);
- setkey(key);
-
- get8(plain);
- printf(" P: "); put8(plain);
-
- get8(answer);
- printf(" C: "); put8(answer);
-
- for(i=0;i<64;i++)
- cipher[i] = plain[i];
- encrypt(cipher, 0);
-
- for(i=0;i<64;i++) {
- if(cipher[i] != answer[i])
- break;
- }
- fail = 0;
- if(i != 64){
- printf(" Encrypt FAIL");
- fail++; totfails++;
- }
-
- encrypt(cipher, 1);
-
- for(i=0;i<64;i++)
- if(cipher[i] != plain[i])
- break;
- if(i != 64){
- printf(" Decrypt FAIL");
- fail++; totfails++;
- }
-
- if(fail == 0)
- printf(" OK");
- printf("\n");
- }
- good_bye();
-}
-
-
diff --git a/test/crypt/crypt.input b/test/crypt/crypt.input
deleted file mode 100644
index d843fa8..0000000
--- a/test/crypt/crypt.input
+++ /dev/null
@@ -1,171 +0,0 @@
-0101010101010101 95f8a5e5dd31d900 8000000000000000
-0101010101010101 dd7f121ca5015619 4000000000000000
-0101010101010101 2e8653104f3834ea 2000000000000000
-0101010101010101 4bd388ff6cd81d4f 1000000000000000
-0101010101010101 20b9e767b2fb1456 0800000000000000
-0101010101010101 55579380d77138ef 0400000000000000
-0101010101010101 6cc5defaaf04512f 0200000000000000
-0101010101010101 0d9f279ba5d87260 0100000000000000
-0101010101010101 d9031b0271bd5a0a 0080000000000000
-0101010101010101 424250b37c3dd951 0040000000000000
-0101010101010101 b8061b7ecd9a21e5 0020000000000000
-0101010101010101 f15d0f286b65bd28 0010000000000000
-0101010101010101 add0cc8d6e5deba1 0008000000000000
-0101010101010101 e6d5f82752ad63d1 0004000000000000
-0101010101010101 ecbfe3bd3f591a5e 0002000000000000
-0101010101010101 f356834379d165cd 0001000000000000
-0101010101010101 2b9f982f20037fa9 0000800000000000
-0101010101010101 889de068a16f0be6 0000400000000000
-0101010101010101 e19e275d846a1298 0000200000000000
-0101010101010101 329a8ed523d71aec 0000100000000000
-0101010101010101 e7fce22557d23c97 0000080000000000
-0101010101010101 12a9f5817ff2d65d 0000040000000000
-0101010101010101 a484c3ad38dc9c19 0000020000000000
-0101010101010101 fbe00a8a1ef8ad72 0000010000000000
-0101010101010101 750d079407521363 0000008000000000
-0101010101010101 64feed9c724c2faf 0000004000000000
-0101010101010101 f02b263b328e2b60 0000002000000000
-0101010101010101 9d64555a9a10b852 0000001000000000
-0101010101010101 d106ff0bed5255d7 0000000800000000
-0101010101010101 e1652c6b138c64a5 0000000400000000
-0101010101010101 e428581186ec8f46 0000000200000000
-0101010101010101 aeb5f5ede22d1a36 0000000100000000
-0101010101010101 e943d7568aec0c5c 0000000080000000
-0101010101010101 df98c8276f54b04b 0000000040000000
-0101010101010101 b160e4680f6c696f 0000000020000000
-0101010101010101 fa0752b07d9c4ab8 0000000010000000
-0101010101010101 ca3a2b036dbc8502 0000000008000000
-0101010101010101 5e0905517bb59bcf 0000000004000000
-0101010101010101 814eeb3b91d90726 0000000002000000
-0101010101010101 4d49db1532919c9f 0000000001000000
-0101010101010101 25eb5fc3f8cf0621 0000000000800000
-0101010101010101 ab6a20c0620d1c6f 0000000000400000
-0101010101010101 79e90dbc98f92cca 0000000000200000
-0101010101010101 866ecedd8072bb0e 0000000000100000
-0101010101010101 8b54536f2f3e64a8 0000000000080000
-0101010101010101 ea51d3975595b86b 0000000000040000
-0101010101010101 caffc6ac4542de31 0000000000020000
-0101010101010101 8dd45a2ddf90796c 0000000000010000
-0101010101010101 1029d55e880ec2d0 0000000000008000
-0101010101010101 5d86cb23639dbea9 0000000000004000
-0101010101010101 1d1ca853ae7c0c5f 0000000000002000
-0101010101010101 ce332329248f3228 0000000000001000
-0101010101010101 8405d1abe24fb942 0000000000000800
-0101010101010101 e643d78090ca4207 0000000000000400
-0101010101010101 48221b9937748a23 0000000000000200
-0101010101010101 dd7c0bbd61fafd54 0000000000000100
-0101010101010101 2fbc291a570db5c4 0000000000000080
-0101010101010101 e07c30d7e4e26e12 0000000000000040
-0101010101010101 0953e2258e8e90a1 0000000000000020
-0101010101010101 5b711bc4ceebf2ee 0000000000000010
-0101010101010101 cc083f1e6d9e85f6 0000000000000008
-0101010101010101 d2fd8867d50d2dfe 0000000000000004
-0101010101010101 06e7ea22ce92708f 0000000000000002
-0101010101010101 166b40b44aba4bd6 0000000000000001
-8001010101010101 0000000000000000 95a8d72813daa94d
-4001010101010101 0000000000000000 0eec1487dd8c26d5
-2001010101010101 0000000000000000 7ad16ffb79c45926
-1001010101010101 0000000000000000 d3746294ca6a6cf3
-0801010101010101 0000000000000000 809f5f873c1fd761
-0401010101010101 0000000000000000 c02faffec989d1fc
-0201010101010101 0000000000000000 4615aa1d33e72f10
-0180010101010101 0000000000000000 2055123350c00858
-0140010101010101 0000000000000000 df3b99d6577397c8
-0120010101010101 0000000000000000 31fe17369b5288c9
-0110010101010101 0000000000000000 dfdd3cc64dae1642
-0108010101010101 0000000000000000 178c83ce2b399d94
-0104010101010101 0000000000000000 50f636324a9b7f80
-0102010101010101 0000000000000000 a8468ee3bc18f06d
-0101800101010101 0000000000000000 a2dc9e92fd3cde92
-0101400101010101 0000000000000000 cac09f797d031287
-0101200101010101 0000000000000000 90ba680b22aeb525
-0101100101010101 0000000000000000 ce7a24f350e280b6
-0101080101010101 0000000000000000 882bff0aa01a0b87
-0101040101010101 0000000000000000 25610288924511c2
-0101020101010101 0000000000000000 c71516c29c75d170
-0101018001010101 0000000000000000 5199c29a52c9f059
-0101014001010101 0000000000000000 c22f0a294a71f29f
-0101012001010101 0000000000000000 ee371483714c02ea
-0101011001010101 0000000000000000 a81fbd448f9e522f
-0101010801010101 0000000000000000 4f644c92e192dfed
-0101010401010101 0000000000000000 1afa9a66a6df92ae
-0101010201010101 0000000000000000 b3c1cc715cb879d8
-0101010180010101 0000000000000000 19d032e64ab0bd8b
-0101010140010101 0000000000000000 3cfaa7a7dc8720dc
-0101010120010101 0000000000000000 b7265f7f447ac6f3
-0101010110010101 0000000000000000 9db73b3c0d163f54
-0101010108010101 0000000000000000 8181b65babf4a975
-0101010104010101 0000000000000000 93c9b64042eaa240
-0101010102010101 0000000000000000 5570530829705592
-0101010101800101 0000000000000000 8638809e878787a0
-0101010101400101 0000000000000000 41b9a79af79ac208
-0101010101200101 0000000000000000 7a9be42f2009a892
-0101010101100101 0000000000000000 29038d56ba6d2745
-0101010101080101 0000000000000000 5495c6abf1e5df51
-0101010101040101 0000000000000000 ae13dbd561488933
-0101010101020101 0000000000000000 024d1ffa8904e389
-0101010101018001 0000000000000000 d1399712f99bf02e
-0101010101014001 0000000000000000 14c1d7c1cffec79e
-0101010101012001 0000000000000000 1de5279dae3bed6f
-0101010101011001 0000000000000000 e941a33f85501303
-0101010101010801 0000000000000000 da99dbbc9a03f379
-0101010101010401 0000000000000000 b7fc92f91d8e92e9
-0101010101010201 0000000000000000 ae8e5caa3ca04e85
-0101010101010180 0000000000000000 9cc62df43b6eed74
-0101010101010140 0000000000000000 d863dbb5c59a91a0
-0101010101010120 0000000000000000 a1ab2190545b91d7
-0101010101010110 0000000000000000 0875041e64c570f7
-0101010101010108 0000000000000000 5a594528bebef1cc
-0101010101010104 0000000000000000 fcdb3291de21f0c0
-0101010101010102 0000000000000000 869efd7f9f265a09
-1046913489980131 0000000000000000 88d55e54f54c97b4
-1007103489988020 0000000000000000 0c0cc00c83ea48fd
-10071034c8980120 0000000000000000 83bc8ef3a6570183
-1046103489988020 0000000000000000 df725dcad94ea2e9
-1086911519190101 0000000000000000 e652b53b550be8b0
-1086911519580101 0000000000000000 af527120c485cbb0
-5107b01519580101 0000000000000000 0f04ce393db926d5
-1007b01519190101 0000000000000000 c9f00ffc74079067
-3107915498080101 0000000000000000 7cfd82a593252b4e
-3107919498080101 0000000000000000 cb49a2f9e91363e3
-10079115b9080140 0000000000000000 00b588be70d23f56
-3107911598080140 0000000000000000 406a9a6ab43399ae
-1007d01589980101 0000000000000000 6cb773611dca9ada
-9107911589980101 0000000000000000 67fd21c17dbb5d70
-9107d01589190101 0000000000000000 9592cb4110430787
-1007d01598980120 0000000000000000 a6b7ff68a318ddd3
-1007940498190101 0000000000000000 4d102196c914ca16
-0107910491190401 0000000000000000 2dfa9f4573594965
-0107910491190101 0000000000000000 b46604816c0e0774
-0107940491190401 0000000000000000 6e7e6221a4f34e87
-19079210981a0101 0000000000000000 aa85e74643233199
-1007911998190801 0000000000000000 2e5a19db4d1962d6
-10079119981a0801 0000000000000000 23a866a809d30894
-1007921098190101 0000000000000000 d812d961f017d320
-100791159819010b 0000000000000000 055605816e58608f
-1004801598190101 0000000000000000 abd88e8b1b7716f1
-1004801598190102 0000000000000000 537ac95be69da1e1
-1004801598190108 0000000000000000 aed0f6ae3c25cdd8
-1002911598100104 0000000000000000 b3e35a5ee53e7b8d
-1002911598190104 0000000000000000 61c79c71921a2ef8
-1002911598100201 0000000000000000 e2f5728f0995013c
-1002911698100101 0000000000000000 1aeac39a61f0a464
-7ca110454a1a6e57 01a1d6d039776742 690f5b0d9a26939b
-0131d9619dc1376e 5cd54ca83def57da 7a389d10354bd271
-07a1133e4a0b2686 0248d43806f67172 868ebb51cab4599a
-3849674c2602319e 51454b582ddf440a 7178876e01f19b2a
-04b915ba43feb5b6 42fd443059577fa2 af37fb421f8c4095
-0113b970fd34f2ce 059b5e0851cf143a 86a560f10ec6d85b
-0170f175468fb5e6 0756d8e0774761d2 0cd3da020021dc09
-43297fad38e373fe 762514b829bf486a ea676b2cb7db2b7a
-07a7137045da2a16 3bdd119049372802 dfd64a815caf1a0f
-04689104c2fd3b2f 26955f6835af609a 5c513c9c4886c088
-37d06bb516cb7546 164d5e404f275232 0a2aeeae3ff4ab77
-1f08260d1ac2465e 6b056e18759f5cca ef1bf03e5dfa575a
-584023641aba6176 004bd6ef09176062 88bf0db6d70dee56
-025816164629b007 480d39006ee762f2 a1f9915541020b56
-49793ebc79b3258f 437540c8698f3cfa 6fbf1cafcffd0556
-4fb05e1515ab73a7 072d43a077075292 2f22e49bab7ca1ac
-49e95d6d4ca229bf 02fe55778117f12a 5a6b612cc26cce4a
-018310dc409b26d6 1d9d5c5018f728c2 5f4c038ed12b2e41
-1c587f1c13924fef 305532286d6f295a 63fac0d034d9f793
diff --git a/test/crypt/crypt.out.good b/test/crypt/crypt.out.good
deleted file mode 100644
index 073ab2b..0000000
--- a/test/crypt/crypt.out.good
+++ /dev/null
@@ -1,172 +0,0 @@
- K: 0101010101010101 P: 95f8a5e5dd31d900 C: 8000000000000000 OK
- K: 0101010101010101 P: dd7f121ca5015619 C: 4000000000000000 OK
- K: 0101010101010101 P: 2e8653104f3834ea C: 2000000000000000 OK
- K: 0101010101010101 P: 4bd388ff6cd81d4f C: 1000000000000000 OK
- K: 0101010101010101 P: 20b9e767b2fb1456 C: 0800000000000000 OK
- K: 0101010101010101 P: 55579380d77138ef C: 0400000000000000 OK
- K: 0101010101010101 P: 6cc5defaaf04512f C: 0200000000000000 OK
- K: 0101010101010101 P: 0d9f279ba5d87260 C: 0100000000000000 OK
- K: 0101010101010101 P: d9031b0271bd5a0a C: 0080000000000000 OK
- K: 0101010101010101 P: 424250b37c3dd951 C: 0040000000000000 OK
- K: 0101010101010101 P: b8061b7ecd9a21e5 C: 0020000000000000 OK
- K: 0101010101010101 P: f15d0f286b65bd28 C: 0010000000000000 OK
- K: 0101010101010101 P: add0cc8d6e5deba1 C: 0008000000000000 OK
- K: 0101010101010101 P: e6d5f82752ad63d1 C: 0004000000000000 OK
- K: 0101010101010101 P: ecbfe3bd3f591a5e C: 0002000000000000 OK
- K: 0101010101010101 P: f356834379d165cd C: 0001000000000000 OK
- K: 0101010101010101 P: 2b9f982f20037fa9 C: 0000800000000000 OK
- K: 0101010101010101 P: 889de068a16f0be6 C: 0000400000000000 OK
- K: 0101010101010101 P: e19e275d846a1298 C: 0000200000000000 OK
- K: 0101010101010101 P: 329a8ed523d71aec C: 0000100000000000 OK
- K: 0101010101010101 P: e7fce22557d23c97 C: 0000080000000000 OK
- K: 0101010101010101 P: 12a9f5817ff2d65d C: 0000040000000000 OK
- K: 0101010101010101 P: a484c3ad38dc9c19 C: 0000020000000000 OK
- K: 0101010101010101 P: fbe00a8a1ef8ad72 C: 0000010000000000 OK
- K: 0101010101010101 P: 750d079407521363 C: 0000008000000000 OK
- K: 0101010101010101 P: 64feed9c724c2faf C: 0000004000000000 OK
- K: 0101010101010101 P: f02b263b328e2b60 C: 0000002000000000 OK
- K: 0101010101010101 P: 9d64555a9a10b852 C: 0000001000000000 OK
- K: 0101010101010101 P: d106ff0bed5255d7 C: 0000000800000000 OK
- K: 0101010101010101 P: e1652c6b138c64a5 C: 0000000400000000 OK
- K: 0101010101010101 P: e428581186ec8f46 C: 0000000200000000 OK
- K: 0101010101010101 P: aeb5f5ede22d1a36 C: 0000000100000000 OK
- K: 0101010101010101 P: e943d7568aec0c5c C: 0000000080000000 OK
- K: 0101010101010101 P: df98c8276f54b04b C: 0000000040000000 OK
- K: 0101010101010101 P: b160e4680f6c696f C: 0000000020000000 OK
- K: 0101010101010101 P: fa0752b07d9c4ab8 C: 0000000010000000 OK
- K: 0101010101010101 P: ca3a2b036dbc8502 C: 0000000008000000 OK
- K: 0101010101010101 P: 5e0905517bb59bcf C: 0000000004000000 OK
- K: 0101010101010101 P: 814eeb3b91d90726 C: 0000000002000000 OK
- K: 0101010101010101 P: 4d49db1532919c9f C: 0000000001000000 OK
- K: 0101010101010101 P: 25eb5fc3f8cf0621 C: 0000000000800000 OK
- K: 0101010101010101 P: ab6a20c0620d1c6f C: 0000000000400000 OK
- K: 0101010101010101 P: 79e90dbc98f92cca C: 0000000000200000 OK
- K: 0101010101010101 P: 866ecedd8072bb0e C: 0000000000100000 OK
- K: 0101010101010101 P: 8b54536f2f3e64a8 C: 0000000000080000 OK
- K: 0101010101010101 P: ea51d3975595b86b C: 0000000000040000 OK
- K: 0101010101010101 P: caffc6ac4542de31 C: 0000000000020000 OK
- K: 0101010101010101 P: 8dd45a2ddf90796c C: 0000000000010000 OK
- K: 0101010101010101 P: 1029d55e880ec2d0 C: 0000000000008000 OK
- K: 0101010101010101 P: 5d86cb23639dbea9 C: 0000000000004000 OK
- K: 0101010101010101 P: 1d1ca853ae7c0c5f C: 0000000000002000 OK
- K: 0101010101010101 P: ce332329248f3228 C: 0000000000001000 OK
- K: 0101010101010101 P: 8405d1abe24fb942 C: 0000000000000800 OK
- K: 0101010101010101 P: e643d78090ca4207 C: 0000000000000400 OK
- K: 0101010101010101 P: 48221b9937748a23 C: 0000000000000200 OK
- K: 0101010101010101 P: dd7c0bbd61fafd54 C: 0000000000000100 OK
- K: 0101010101010101 P: 2fbc291a570db5c4 C: 0000000000000080 OK
- K: 0101010101010101 P: e07c30d7e4e26e12 C: 0000000000000040 OK
- K: 0101010101010101 P: 0953e2258e8e90a1 C: 0000000000000020 OK
- K: 0101010101010101 P: 5b711bc4ceebf2ee C: 0000000000000010 OK
- K: 0101010101010101 P: cc083f1e6d9e85f6 C: 0000000000000008 OK
- K: 0101010101010101 P: d2fd8867d50d2dfe C: 0000000000000004 OK
- K: 0101010101010101 P: 06e7ea22ce92708f C: 0000000000000002 OK
- K: 0101010101010101 P: 166b40b44aba4bd6 C: 0000000000000001 OK
- K: 8001010101010101 P: 0000000000000000 C: 95a8d72813daa94d OK
- K: 4001010101010101 P: 0000000000000000 C: 0eec1487dd8c26d5 OK
- K: 2001010101010101 P: 0000000000000000 C: 7ad16ffb79c45926 OK
- K: 1001010101010101 P: 0000000000000000 C: d3746294ca6a6cf3 OK
- K: 0801010101010101 P: 0000000000000000 C: 809f5f873c1fd761 OK
- K: 0401010101010101 P: 0000000000000000 C: c02faffec989d1fc OK
- K: 0201010101010101 P: 0000000000000000 C: 4615aa1d33e72f10 OK
- K: 0180010101010101 P: 0000000000000000 C: 2055123350c00858 OK
- K: 0140010101010101 P: 0000000000000000 C: df3b99d6577397c8 OK
- K: 0120010101010101 P: 0000000000000000 C: 31fe17369b5288c9 OK
- K: 0110010101010101 P: 0000000000000000 C: dfdd3cc64dae1642 OK
- K: 0108010101010101 P: 0000000000000000 C: 178c83ce2b399d94 OK
- K: 0104010101010101 P: 0000000000000000 C: 50f636324a9b7f80 OK
- K: 0102010101010101 P: 0000000000000000 C: a8468ee3bc18f06d OK
- K: 0101800101010101 P: 0000000000000000 C: a2dc9e92fd3cde92 OK
- K: 0101400101010101 P: 0000000000000000 C: cac09f797d031287 OK
- K: 0101200101010101 P: 0000000000000000 C: 90ba680b22aeb525 OK
- K: 0101100101010101 P: 0000000000000000 C: ce7a24f350e280b6 OK
- K: 0101080101010101 P: 0000000000000000 C: 882bff0aa01a0b87 OK
- K: 0101040101010101 P: 0000000000000000 C: 25610288924511c2 OK
- K: 0101020101010101 P: 0000000000000000 C: c71516c29c75d170 OK
- K: 0101018001010101 P: 0000000000000000 C: 5199c29a52c9f059 OK
- K: 0101014001010101 P: 0000000000000000 C: c22f0a294a71f29f OK
- K: 0101012001010101 P: 0000000000000000 C: ee371483714c02ea OK
- K: 0101011001010101 P: 0000000000000000 C: a81fbd448f9e522f OK
- K: 0101010801010101 P: 0000000000000000 C: 4f644c92e192dfed OK
- K: 0101010401010101 P: 0000000000000000 C: 1afa9a66a6df92ae OK
- K: 0101010201010101 P: 0000000000000000 C: b3c1cc715cb879d8 OK
- K: 0101010180010101 P: 0000000000000000 C: 19d032e64ab0bd8b OK
- K: 0101010140010101 P: 0000000000000000 C: 3cfaa7a7dc8720dc OK
- K: 0101010120010101 P: 0000000000000000 C: b7265f7f447ac6f3 OK
- K: 0101010110010101 P: 0000000000000000 C: 9db73b3c0d163f54 OK
- K: 0101010108010101 P: 0000000000000000 C: 8181b65babf4a975 OK
- K: 0101010104010101 P: 0000000000000000 C: 93c9b64042eaa240 OK
- K: 0101010102010101 P: 0000000000000000 C: 5570530829705592 OK
- K: 0101010101800101 P: 0000000000000000 C: 8638809e878787a0 OK
- K: 0101010101400101 P: 0000000000000000 C: 41b9a79af79ac208 OK
- K: 0101010101200101 P: 0000000000000000 C: 7a9be42f2009a892 OK
- K: 0101010101100101 P: 0000000000000000 C: 29038d56ba6d2745 OK
- K: 0101010101080101 P: 0000000000000000 C: 5495c6abf1e5df51 OK
- K: 0101010101040101 P: 0000000000000000 C: ae13dbd561488933 OK
- K: 0101010101020101 P: 0000000000000000 C: 024d1ffa8904e389 OK
- K: 0101010101018001 P: 0000000000000000 C: d1399712f99bf02e OK
- K: 0101010101014001 P: 0000000000000000 C: 14c1d7c1cffec79e OK
- K: 0101010101012001 P: 0000000000000000 C: 1de5279dae3bed6f OK
- K: 0101010101011001 P: 0000000000000000 C: e941a33f85501303 OK
- K: 0101010101010801 P: 0000000000000000 C: da99dbbc9a03f379 OK
- K: 0101010101010401 P: 0000000000000000 C: b7fc92f91d8e92e9 OK
- K: 0101010101010201 P: 0000000000000000 C: ae8e5caa3ca04e85 OK
- K: 0101010101010180 P: 0000000000000000 C: 9cc62df43b6eed74 OK
- K: 0101010101010140 P: 0000000000000000 C: d863dbb5c59a91a0 OK
- K: 0101010101010120 P: 0000000000000000 C: a1ab2190545b91d7 OK
- K: 0101010101010110 P: 0000000000000000 C: 0875041e64c570f7 OK
- K: 0101010101010108 P: 0000000000000000 C: 5a594528bebef1cc OK
- K: 0101010101010104 P: 0000000000000000 C: fcdb3291de21f0c0 OK
- K: 0101010101010102 P: 0000000000000000 C: 869efd7f9f265a09 OK
- K: 1046913489980131 P: 0000000000000000 C: 88d55e54f54c97b4 OK
- K: 1007103489988020 P: 0000000000000000 C: 0c0cc00c83ea48fd OK
- K: 10071034c8980120 P: 0000000000000000 C: 83bc8ef3a6570183 OK
- K: 1046103489988020 P: 0000000000000000 C: df725dcad94ea2e9 OK
- K: 1086911519190101 P: 0000000000000000 C: e652b53b550be8b0 OK
- K: 1086911519580101 P: 0000000000000000 C: af527120c485cbb0 OK
- K: 5107b01519580101 P: 0000000000000000 C: 0f04ce393db926d5 OK
- K: 1007b01519190101 P: 0000000000000000 C: c9f00ffc74079067 OK
- K: 3107915498080101 P: 0000000000000000 C: 7cfd82a593252b4e OK
- K: 3107919498080101 P: 0000000000000000 C: cb49a2f9e91363e3 OK
- K: 10079115b9080140 P: 0000000000000000 C: 00b588be70d23f56 OK
- K: 3107911598080140 P: 0000000000000000 C: 406a9a6ab43399ae OK
- K: 1007d01589980101 P: 0000000000000000 C: 6cb773611dca9ada OK
- K: 9107911589980101 P: 0000000000000000 C: 67fd21c17dbb5d70 OK
- K: 9107d01589190101 P: 0000000000000000 C: 9592cb4110430787 OK
- K: 1007d01598980120 P: 0000000000000000 C: a6b7ff68a318ddd3 OK
- K: 1007940498190101 P: 0000000000000000 C: 4d102196c914ca16 OK
- K: 0107910491190401 P: 0000000000000000 C: 2dfa9f4573594965 OK
- K: 0107910491190101 P: 0000000000000000 C: b46604816c0e0774 OK
- K: 0107940491190401 P: 0000000000000000 C: 6e7e6221a4f34e87 OK
- K: 19079210981a0101 P: 0000000000000000 C: aa85e74643233199 OK
- K: 1007911998190801 P: 0000000000000000 C: 2e5a19db4d1962d6 OK
- K: 10079119981a0801 P: 0000000000000000 C: 23a866a809d30894 OK
- K: 1007921098190101 P: 0000000000000000 C: d812d961f017d320 OK
- K: 100791159819010b P: 0000000000000000 C: 055605816e58608f OK
- K: 1004801598190101 P: 0000000000000000 C: abd88e8b1b7716f1 OK
- K: 1004801598190102 P: 0000000000000000 C: 537ac95be69da1e1 OK
- K: 1004801598190108 P: 0000000000000000 C: aed0f6ae3c25cdd8 OK
- K: 1002911598100104 P: 0000000000000000 C: b3e35a5ee53e7b8d OK
- K: 1002911598190104 P: 0000000000000000 C: 61c79c71921a2ef8 OK
- K: 1002911598100201 P: 0000000000000000 C: e2f5728f0995013c OK
- K: 1002911698100101 P: 0000000000000000 C: 1aeac39a61f0a464 OK
- K: 7ca110454a1a6e57 P: 01a1d6d039776742 C: 690f5b0d9a26939b OK
- K: 0131d9619dc1376e P: 5cd54ca83def57da C: 7a389d10354bd271 OK
- K: 07a1133e4a0b2686 P: 0248d43806f67172 C: 868ebb51cab4599a OK
- K: 3849674c2602319e P: 51454b582ddf440a C: 7178876e01f19b2a OK
- K: 04b915ba43feb5b6 P: 42fd443059577fa2 C: af37fb421f8c4095 OK
- K: 0113b970fd34f2ce P: 059b5e0851cf143a C: 86a560f10ec6d85b OK
- K: 0170f175468fb5e6 P: 0756d8e0774761d2 C: 0cd3da020021dc09 OK
- K: 43297fad38e373fe P: 762514b829bf486a C: ea676b2cb7db2b7a OK
- K: 07a7137045da2a16 P: 3bdd119049372802 C: dfd64a815caf1a0f OK
- K: 04689104c2fd3b2f P: 26955f6835af609a C: 5c513c9c4886c088 OK
- K: 37d06bb516cb7546 P: 164d5e404f275232 C: 0a2aeeae3ff4ab77 OK
- K: 1f08260d1ac2465e P: 6b056e18759f5cca C: ef1bf03e5dfa575a OK
- K: 584023641aba6176 P: 004bd6ef09176062 C: 88bf0db6d70dee56 OK
- K: 025816164629b007 P: 480d39006ee762f2 C: a1f9915541020b56 OK
- K: 49793ebc79b3258f P: 437540c8698f3cfa C: 6fbf1cafcffd0556 OK
- K: 4fb05e1515ab73a7 P: 072d43a077075292 C: 2f22e49bab7ca1ac OK
- K: 49e95d6d4ca229bf P: 02fe55778117f12a C: 5a6b612cc26cce4a OK
- K: 018310dc409b26d6 P: 1d9d5c5018f728c2 C: 5f4c038ed12b2e41 OK
- K: 1c587f1c13924fef P: 305532286d6f295a C: 63fac0d034d9f793 OK
-Passed DES validation suite
diff --git a/test/crypt/md5c-test.c b/test/crypt/md5c-test.c
deleted file mode 100644
index 3c61540..0000000
--- a/test/crypt/md5c-test.c
+++ /dev/null
@@ -1,19 +0,0 @@
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <crypt.h>
-
-int
-main (int argc, char *argv[])
-{
- const char salt[] = "$1$saltstring";
- char *cp;
-
- cp = crypt ("Hello world!", salt);
- if (strcmp ("$1$saltstri$YMyguxXMBpd2TEZ.vS/3q1", cp)) {
- fprintf(stderr, "Failed md5 crypt test!\n");
- return EXIT_FAILURE;
- }
- fprintf(stderr, "Passed md5 crypt test!\n");
- return EXIT_SUCCESS;
-}
diff --git a/test/crypt/sha256c-test.c b/test/crypt/sha256c-test.c
deleted file mode 100644
index 357f0d8..0000000
--- a/test/crypt/sha256c-test.c
+++ /dev/null
@@ -1,62 +0,0 @@
-#include <crypt.h>
-#include <stdio.h>
-#include <string.h>
-
-static const struct
-{
- const char *salt;
- const char *input;
- const char *expected;
-} tests[] =
-{
- { "$5$saltstring", "Hello world!",
- "$5$saltstring$5B8vYYiY.CVt1RlTTf8KbXBH3hsxY/GNooZaBBGWEc5" },
- { "$5$rounds=10000$saltstringsaltstring", "Hello world!",
- "$5$rounds=10000$saltstringsaltst$3xv.VbSHBb41AL9AvLeujZkZRBAwqFMz2."
- "opqey6IcA" },
- { "$5$rounds=5000$toolongsaltstring", "This is just a test",
- "$5$rounds=5000$toolongsaltstrin$Un/5jzAHMgOGZ5.mWJpuVolil07guHPvOW8"
- "mGRcvxa5" },
- { "$5$rounds=1400$anotherlongsaltstring",
- "a very much longer text to encrypt. This one even stretches over more"
- "than one line.",
- "$5$rounds=1400$anotherlongsalts$Rx.j8H.h8HjEDGomFU8bDkXm3XIUnzyxf12"
- "oP84Bnq1" },
- { "$5$rounds=77777$short",
- "we have a short salt string but not a short password",
- "$5$rounds=77777$short$JiO1O3ZpDAxGJeaDIuqCoEFysAe1mZNJRs3pw0KQRd/" },
- { "$5$rounds=123456$asaltof16chars..", "a short string",
- "$5$rounds=123456$asaltof16chars..$gP3VQ/6X7UUEW3HkBn2w1/Ptq2jxPyzV/"
- "cZKmF/wJvD" },
- { "$5$rounds=10$roundstoolow", "the minimum number is still
observed",
- "$5$rounds=1000$roundstoolow$yfvwcWrQ8l/K0DAWyuPMDNHpIVlTQebY9l/gL97"
- "2bIC" },
-};
-#define ntests (sizeof (tests) / sizeof (tests[0]))
-
-
-
-static int
-do_test (void)
-{
- int result = 0;
- int i;
-
- for (i = 0; i < ntests; ++i)
- {
- char *cp = crypt (tests[i].input, tests[i].salt);
-
- if (strcmp (cp, tests[i].expected) != 0)
- {
- printf ("test %d: expected \"%s\", got \"%s\"\n",
- i, tests[i].expected, cp);
- result = 1;
- }
- }
-
- return result;
-}
-
-#define TIMEOUT 6
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/crypt/sha512c-test.c b/test/crypt/sha512c-test.c
deleted file mode 100644
index c829242..0000000
--- a/test/crypt/sha512c-test.c
+++ /dev/null
@@ -1,63 +0,0 @@
-#include <crypt.h>
-#include <stdio.h>
-#include <string.h>
-
-static const struct
-{
- const char *salt;
- const char *input;
- const char *expected;
-} tests[] =
-{
- { "$6$saltstring", "Hello world!",
- "$6$saltstring$svn8UoSVapNtMuq1ukKS4tPQd8iKwSMHWjl/O817G3uBnIFNjnQJu"
- "esI68u4OTLiBFdcbYEdFCoEOfaS35inz1" },
- { "$6$rounds=10000$saltstringsaltstring", "Hello world!",
- "$6$rounds=10000$saltstringsaltst$OW1/O6BYHV6BcXZu8QVeXbDWra3Oeqh0sb"
- "HbbMCVNSnCM/UrjmM0Dp8vOuZeHBy/YTBmSK6H9qs/y3RnOaw5v." },
- { "$6$rounds=5000$toolongsaltstring", "This is just a test",
- "$6$rounds=5000$toolongsaltstrin$lQ8jolhgVRVhY4b5pZKaysCLi0QBxGoNeKQ"
- "zQ3glMhwllF7oGDZxUhx1yxdYcz/e1JSbq3y6JMxxl8audkUEm0" },
- { "$6$rounds=1400$anotherlongsaltstring",
- "a very much longer text to encrypt. This one even stretches over more"
- "than one line.",
- "$6$rounds=1400$anotherlongsalts$POfYwTEok97VWcjxIiSOjiykti.o/pQs.wP"
- "vMxQ6Fm7I6IoYN3CmLs66x9t0oSwbtEW7o7UmJEiDwGqd8p4ur1" },
- { "$6$rounds=77777$short",
- "we have a short salt string but not a short password",
- "$6$rounds=77777$short$WuQyW2YR.hBNpjjRhpYD/ifIw05xdfeEyQoMxIXbkvr0g"
- "ge1a1x3yRULJ5CCaUeOxFmtlcGZelFl5CxtgfiAc0" },
- { "$6$rounds=123456$asaltof16chars..", "a short string",
- "$6$rounds=123456$asaltof16chars..$BtCwjqMJGx5hrJhZywWvt0RLE8uZ4oPwc"
- "elCjmw2kSYu.Ec6ycULevoBK25fs2xXgMNrCzIMVcgEJAstJeonj1" },
- { "$6$rounds=10$roundstoolow", "the minimum number is still
observed",
- "$6$rounds=1000$roundstoolow$kUMsbe306n21p9R.FRkW3IGn.S9NPN0x50YhH1x"
- "hLsPuWGsUSklZt58jaTfF4ZEQpyUNGc0dqbpBYYBaHHrsX." },
-};
-#define ntests (sizeof (tests) / sizeof (tests[0]))
-
-
-static int
-do_test (void)
-{
- int result = 0;
- int i;
-
- for (i = 0; i < ntests; ++i)
- {
- char *cp = crypt (tests[i].input, tests[i].salt);
-
- if (strcmp (cp, tests[i].expected) != 0)
- {
- printf ("test %d: expected \"%s\", got \"%s\"\n",
- i, tests[i].expected, cp);
- result = 1;
- }
- }
-
- return result;
-}
-
-#define TIMEOUT 6
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/ctype/Makefile b/test/ctype/Makefile
deleted file mode 100644
index 99dbdbc..0000000
--- a/test/ctype/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc ctype tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/ctype/Makefile.in b/test/ctype/Makefile.in
deleted file mode 100644
index ee10d59..0000000
--- a/test/ctype/Makefile.in
+++ /dev/null
@@ -1,4 +0,0 @@
-# uClibc ctype tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-TESTS := ctype
diff --git a/test/ctype/ctype.c b/test/ctype/ctype.c
deleted file mode 100644
index f38f722..0000000
--- a/test/ctype/ctype.c
+++ /dev/null
@@ -1,250 +0,0 @@
-/* vi: set sw=4 ts=4: */
-/*
- * Test application for functions defined in ctype.h
- * Copyright (C) 2000-2006 by Erik Andersen <andersen(a)uclibc.org>
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdarg.h>
-#include <ctype.h>
-#include "../testsuite.h"
-
-
-int main( int argc, char **argv)
-{
- int i, c;
-
-
- init_testsuite("Testing functions defined in ctype.h\n");
-
- /* isalnum() */
- {
- int buffer[]={ '1', '4', 'a', 'z', 'A',
'Z', '5', -1};
- for(i=0; buffer[i]!=-1; i++) {
- c = buffer[i];
- TEST( isalnum(c)!=0);
- }
- }
- {
- int buffer[]={ 2, 128, 254, '\n', -1};
- for(i=0; buffer[i]!=-1; i++) {
- c = buffer[i];
- TEST( isalnum(c)==0);
- }
- }
-
-
-
- /* isalpha() */
- {
- int buffer[]={ 'a', 'z', 'A', 'Z', -1};
- for(i=0; buffer[i]!=-1; i++) {
- c = buffer[i];
- TEST( isalpha(c)!=0);
- }
- }
- {
- int buffer[]={ 2, 63, 128, 254, '\n', -1};
- for(i=0; buffer[i]!=-1; i++) {
- c = buffer[i];
- TEST( isalpha(c)==0);
- }
- }
-
-
-
-#ifdef __UCLIBC_SUSV4_LEGACY__
- /* isascii() */
- {
- int buffer[]={ 'a', 'z', 'A', 'Z', '\n', -1};
- for(i=0; buffer[i]!=-1; i++) {
- c = buffer[i];
- TEST( isascii(c)!=0);
- }
- }
- {
- int buffer[]={ 128, 254, -1};
- for(i=0; buffer[i]!=-1; i++) {
- c = buffer[i];
- TEST( isascii(c)==0);
- }
- }
-#endif
-
-
- /* iscntrl() */
- {
- int buffer[]={ 0x7F, 6, '\t', '\n', 0x7F, -1};
- for(i=0; buffer[i]!=-1; i++) {
- c = buffer[i];
- TEST( iscntrl(c)!=0);
- }
- }
- {
- int buffer[]={ 63, 128, 254, -1};
- for(i=0; buffer[i]!=-1; i++) {
- c = buffer[i];
- TEST( iscntrl(c)==0);
- }
- }
-
-
- /* isdigit() */
- {
- int buffer[]={ '1', '5', '7', '9', -1};
- for(i=0; buffer[i]!=-1; i++) {
- c = buffer[i];
- TEST( isdigit(c)!=0);
- }
- }
- {
- int buffer[]={ 2, 'a', 'z', 'A', 'Z', 63, 128, 254,
'\n', -1};
- for(i=0; buffer[i]!=-1; i++) {
- c = buffer[i];
- TEST( isdigit(c)==0);
- }
- }
-
-
-
- /* isgraph() */
- {
- int buffer[]={ ')', '~', '9', -1};
- for(i=0; buffer[i]!=-1; i++) {
- c = buffer[i];
- TEST( isgraph(c)!=0);
- }
- }
- {
- int buffer[]={ 9, ' ', '\t', '\n', 200, 0x7F, -1};
- for(i=0; buffer[i]!=-1; i++) {
- c = buffer[i];
- TEST( isgraph(c)==0);
- }
- }
-
-
- /* islower() */
- {
- int buffer[]={ 'a', 'g', 'z', -1};
- for(i=0; buffer[i]!=-1; i++) {
- c = buffer[i];
- TEST( islower(c)!=0);
- }
- }
- {
- int buffer[]={ 9, 'A', 'Z', 128, 254, ' ', '\t',
'\n', 0x7F, -1};
- for(i=0; buffer[i]!=-1; i++) {
- c = buffer[i];
- TEST( islower(c)==0);
- }
- }
-
-
- /* isprint() */
- {
- int buffer[]={ ' ', ')', '~', '9', -1};
- for(i=0; buffer[i]!=-1; i++) {
- c = buffer[i];
- TEST( isprint(c)!=0);
- }
- }
- {
- int buffer[]={ '\b', '\t', '\n', 9, 128, 254, 200, 0x7F, -1};
- for(i=0; buffer[i]!=-1; i++) {
- c = buffer[i];
- TEST( isprint(c)==0);
- }
- }
-
-
- /* ispunct() */
- {
- int buffer[]={ '.', '#', '@', ';', -1};
- for(i=0; buffer[i]!=-1; i++) {
- c = buffer[i];
- TEST( ispunct(c)!=0);
- }
- }
- {
- int buffer[]={ 2, 'a', 'Z', '1', 128, 254, '\n', -1};
- for(i=0; buffer[i]!=-1; i++) {
- c = buffer[i];
- TEST( ispunct(c)==0);
- }
- }
-
-
- /* isspace() */
- {
- int buffer[]={ ' ', '\t', '\r', '\v', '\n',
-1};
- for(i=0; buffer[i]!=-1; i++) {
- c = buffer[i];
- TEST( isspace(c)!=0);
- }
- }
- {
- int buffer[]={ 2, 'a', 'Z', '1', 128, 254, -1};
- for(i=0; buffer[i]!=-1; i++) {
- c = buffer[i];
- TEST( isspace(c)==0);
- }
- }
-
-
- /* isupper() */
- {
- int buffer[]={ 'A', 'G', 'Z', -1};
- for(i=0; buffer[i]!=-1; i++) {
- c = buffer[i];
- TEST( isupper(c)!=0);
- }
- }
- {
- int buffer[]={ 2, 'a', 'z', '1', 128, 254, -1};
- for(i=0; buffer[i]!=-1; i++) {
- c = buffer[i];
- TEST( isupper(c)==0);
- }
- }
-
-
-
- /* isxdigit() */
- {
- int buffer[]={ 'f', 'A', '1', '8', -1};
- for(i=0; buffer[i]!=-1; i++) {
- c = buffer[i];
- TEST( isxdigit(c)!=0);
- }
- }
- {
- int buffer[]={ 2, 'g', 'G', 'x', '\n', -1};
- for(i=0; buffer[i]!=-1; i++) {
- c = buffer[i];
- TEST( isxdigit(c)==0);
- }
- }
-
-
- /* tolower() */
- c='A';
- TEST_NUMERIC( tolower(c), 'a');
- c='a';
- TEST_NUMERIC( tolower(c), 'a');
- c='#';
- TEST_NUMERIC( tolower(c), c);
-
- /* toupper() */
- c='a';
- TEST_NUMERIC( toupper(c), 'A');
- c='A';
- TEST_NUMERIC( toupper(c), 'A');
- c='#';
- TEST_NUMERIC( toupper(c), c);
-
- exit(0);
-}
diff --git a/test/dlopen/Makefile b/test/dlopen/Makefile
deleted file mode 100644
index d5be53c..0000000
--- a/test/dlopen/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc dlopen tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/dlopen/Makefile.in b/test/dlopen/Makefile.in
deleted file mode 100644
index 740453a..0000000
--- a/test/dlopen/Makefile.in
+++ /dev/null
@@ -1,84 +0,0 @@
-# uClibc dlopen tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-# rules need a little love to work with glibc ...
-export UCLIBC_ONLY := 1
-
-TESTS := dltest dltest2 dlstatic test1 test2 test3 dlundef dlafk dladdr \
- testscope nodelete nodelete1 tst-origin
-
-ifneq ($(HAVE_SHARED),y)
-TESTS_DISABLED := test3
-LDFLAGS_libtest.so := -lpthread
-endif
-
-CFLAGS_dltest := -DLIBNAME="\"./libtest.so\""
-CFLAGS_dltest2 := -DLIBNAME="\"./libtest3.so\""
-
-LDFLAGS_dlstatic := -ldl
-LDFLAGS_dltest := -ldl
-LDFLAGS_dltest2 := -ldl
-LDFLAGS_dlundef := -ldl
-LDFLAGS_dlafk := -ldl ./libafk.so -Wl,-rpath,.
-LDFLAGS_test1 := -ldl
-LDFLAGS_test2 := -ldl
-LDFLAGS_test3 := -ldl ./libtest1.so ./libtest2.so -Wl,-rpath,.
-LDFLAGS_dladdr := -ldl
-LDFLAGS_testscope:= -ldl
-LDFLAGS_tst-origin:= -ldl -Wl,-rpath,\$$ORIGIN/testlib
-
-DEBUG_LIBS := X
-WRAPPER := env $(DEBUG_LIBS)=all LD_LIBRARY_PATH="$$PWD:.:$(LD_LIBRARY_PATH)"
-
-testlib:
- @mkdir $@
-
-testlib/libtest31.so: libtest3.so | testlib
- @cp $^ $@
-
-EXTRA_DIRS := testlib
-
-# Build libC.so without -mprefergot compilation flag to force a
-# R_SH_JMP_SLOT relocation instead of R_SH_GLOB_DAT for _libC_fini. This is
-# needed to resolve the _libC_fini symbol when used (by libC.so destructor),
-# whereas with GLOB_DAT relocation the resolution happens in the GOT entry
-# when the libC is loaded, for the same reason remove also the "-z now"
-# linker flag.
-# These are needed to spot the issue test case want raise.
-
-ifeq ($(TARGET_ARCH),sh)
-CFLAGS-OMIT-libC.c = -mprefergot
-endif
-LDFLAGS-OMIT-libC.c = -Wl,-z,now
-
-dltest: libtest.so
-dltest2: libtest3.so
-dlstatic: libstatic.so
-dlundef: libundef.so
-dlafk: libafk.so
-testscope:libA.so
-libafk.so: libafk-temp.so
-LDFLAGS_libafk.so := ./libafk-temp.so -Wl,-rpath,.
-test1: libtest1.so
-test2: libtest1.so libtest2.so
-test3: libtest1.so libtest2.so
-tst-origin: testlib/libtest31.so
-libtest1.so: libtest2.so
-libB.so: libC.so
-libA.so: libB.so
-LDFLAGS_libtest.so := -lpthread
-LDFLAGS_libtest1.so := ./libtest2.so -Wl,-rpath,.
-LDFLAGS_libtest2.so := -Wl,-rpath,.
-LDFLAGS_libtest3.so := -lpthread -Wl,-rpath,.
-LDFLAGS_libC.so := -ldl
-LDFLAGS_libB.so := ./libC.so -Wl,-rpath,.
-LDFLAGS_libA.so := ./libB.so -Wl,-rpath,.
-
-nodelete: nodelmod1.so nodelmod2.so nodelmod3.so
-nodelmod3.so: nodelmod4.so
-LDFLAGS_nodelete := -rdynamic -ldl
-LDFLAGS_nodelmod1.so := -Wl,-z,nodelete
-LDFLAGS_nodelmod3.so := ./nodelmod4.so
-LDFLAGS_nodelmod4.so := -Wl,-z,nodelete
-nodelete1: nodelmod1.so nodelmod2.so
-LDFLAGS_nodelete1 := -rdynamic -ldl
diff --git a/test/dlopen/dladdr.c b/test/dlopen/dladdr.c
deleted file mode 100644
index b64c000..0000000
--- a/test/dlopen/dladdr.c
+++ /dev/null
@@ -1,25 +0,0 @@
-#include <dlfcn.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-int main(int argc, char **argv)
-{
- Dl_info info;
- int res = 0;
-
- memset(&info, '\0', sizeof(Dl_info));
- res = dladdr((void *)1, &info);
- if (res != 0) {
- fprintf(stderr, "dladdr() should fail\n");
- fprintf(stderr, "dli_fname = %s\n", info.dli_fname);
- fprintf(stderr, "dli_fbase = 0x%08x\n", (unsigned int)info.dli_fbase);
- fprintf(stderr, "dli_sname = %s\n", info.dli_sname);
- fprintf(stderr, "dli_saddr = 0x%08x\n", (unsigned int)info.dli_saddr);
- exit(1);
- }
-
- fprintf(stderr, "dladdr() failed as expected\n");
- return EXIT_SUCCESS;
-}
-
diff --git a/test/dlopen/dlafk.c b/test/dlopen/dlafk.c
deleted file mode 100644
index 2eac4af..0000000
--- a/test/dlopen/dlafk.c
+++ /dev/null
@@ -1,36 +0,0 @@
-#include <fcntl.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <dlfcn.h>
-#include <stdint.h>
-#include <unistd.h>
-#include <errno.h>
-#include <string.h>
-
-#define LIBNAME "libafk.so"
-
-#define LIBAFK "libafk-temp.so"
-#define LIBAFK_BAK ".libafk-temp.so.temp"
-
-int main(int argc, char **argv)
-{
- void *handle;
-
- if (rename(LIBAFK, LIBAFK_BAK)) {
- fprintf(stderr, "Unable to rename %s: %s\n", LIBAFK, strerror(errno));
- return EXIT_FAILURE;
- }
-
- handle = dlopen(LIBNAME, RTLD_NOW);
- if (!handle) {
- fprintf(stderr, "Could not open ./%s: %s\n", LIBNAME, dlerror());
- return EXIT_FAILURE;
- }
-
- if (rename(LIBAFK_BAK, LIBAFK)) {
- fprintf(stderr, "Unable to rename %s: %s\n", LIBAFK_BAK, strerror(errno));
- return EXIT_FAILURE;
- }
-
- return EXIT_SUCCESS;
-}
diff --git a/test/dlopen/dlstatic.c b/test/dlopen/dlstatic.c
deleted file mode 100644
index 57c8c5d..0000000
--- a/test/dlopen/dlstatic.c
+++ /dev/null
@@ -1,43 +0,0 @@
-#include <fcntl.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <dlfcn.h>
-#include <stdint.h>
-
-#define LIBNAME "libstatic.so"
-
-int load_and_test(void)
-{
- void *handle;
- int (*mystatic)(void);
-
- handle = dlopen(LIBNAME, RTLD_LAZY);
- if (!handle) {
- fprintf(stderr, "Could not open ./%s: %s\n", LIBNAME, dlerror());
- return 1;
- }
-
- mystatic = dlsym(handle, "static_test");
- if (mystatic == NULL) {
- fprintf(stderr, "Could not locate symbol 'static_test': %s\n",
dlerror());
- return 1;
- }
-
- if (!mystatic()) {
- fprintf(stderr, "mystatic() failed: static vars were not setup properly\n");
- return 1;
- }
-
- dlclose(handle);
-
- return 0;
-}
-
-int main(int argc, char **argv)
-{
- int count = 5;
- while (count-- > 0)
- if (load_and_test())
- return EXIT_FAILURE;
- return EXIT_SUCCESS;
-}
diff --git a/test/dlopen/dltest.c b/test/dlopen/dltest.c
deleted file mode 100644
index a0fac90..0000000
--- a/test/dlopen/dltest.c
+++ /dev/null
@@ -1,41 +0,0 @@
-#include <fcntl.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <dlfcn.h>
-#include <stdint.h>
-
-int main(int argc, char **argv)
-{
- int ret = EXIT_SUCCESS;
- void *handle;
- void (*mydltest)(void *value1, void *value2);
- char *error;
- uint32_t *value1, *value2;
-
- handle = dlopen (LIBNAME, RTLD_LAZY);
- if (!handle) {
- fprintf(stderr, "Could not open ./%s: %s\n", LIBNAME, dlerror());
- exit(1);
- }
-
- mydltest = dlsym(handle, "dltest");
- if ((error = dlerror()) != NULL) {
- fprintf(stderr, "Could not locate symbol 'dltest': %s\n", error);
- exit(1);
- }
-
- mydltest(&value1, &value2);
- printf("dltest: pthread_once=%p\n", value1);
- printf("dltest: pthread_self=%p\n", value2);
- if (value1 == value2) {
- ret = EXIT_FAILURE;
- printf("dltest: values should NOT be equal Weak values resolved
incorrectly!\n");
- } else {
- printf("dltest: weak symbols resolved correctly.\n");
- }
-
- dlclose(handle);
-
- return ret;
-}
-
diff --git a/test/dlopen/dltest2.c b/test/dlopen/dltest2.c
deleted file mode 100644
index 127b3b5..0000000
--- a/test/dlopen/dltest2.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "dltest.c"
diff --git a/test/dlopen/dlundef.c b/test/dlopen/dlundef.c
deleted file mode 100644
index cefd933..0000000
--- a/test/dlopen/dlundef.c
+++ /dev/null
@@ -1,29 +0,0 @@
-#include <fcntl.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <dlfcn.h>
-#include <stdint.h>
-
-#define LIBNAME "libundef.so"
-
-int main(int argc, char **argv)
-{
- void *handle;
- int (*myundefined)(void);
-
- handle = dlopen(LIBNAME, RTLD_LAZY);
- if (!handle) {
- fprintf(stderr, "Could not open ./%s: %s\n", LIBNAME, dlerror());
- return EXIT_FAILURE;
- }
-
- myundefined = dlsym(handle, "__booga_booga_you_cant_touch_this__");
- if (myundefined != NULL) {
- fprintf(stderr, "dlsym() found a symbol that does not exist!\n");
- return EXIT_FAILURE;
- }
-
- dlclose(handle);
-
- return EXIT_SUCCESS;
-}
diff --git a/test/dlopen/libA.c b/test/dlopen/libA.c
deleted file mode 100644
index 13b83dc..0000000
--- a/test/dlopen/libA.c
+++ /dev/null
@@ -1,7 +0,0 @@
-extern void libB_func(void);
-
-void libA_func(void);
-void libA_func(void)
-{
- libB_func();
-}
diff --git a/test/dlopen/libB.c b/test/dlopen/libB.c
deleted file mode 100644
index 9b9fff4..0000000
--- a/test/dlopen/libB.c
+++ /dev/null
@@ -1,7 +0,0 @@
-extern void libC_func(void);
-
-void libB_func(void);
-void libB_func(void)
-{
- libC_func();
-}
diff --git a/test/dlopen/libC.c b/test/dlopen/libC.c
deleted file mode 100644
index 84cbbef..0000000
--- a/test/dlopen/libC.c
+++ /dev/null
@@ -1,30 +0,0 @@
-#include <dlfcn.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#define LIBNAME "libB.so"
-void _libC_fini(void);
-void _libC_fini(void)
-{
- printf("libC_fini():finish - atexit()\n");
-}
-
-void libC_fini(void);
-void libC_fini(void)
-{
- _libC_fini();
-}
-
-void libC_func(void);
-void libC_func(void)
-{
- void *libB;
-
- libB = dlopen(LIBNAME, RTLD_LAZY);
- if (!libB) {
- fprintf(stderr, "Could not open ./%s: %s\n", LIBNAME, dlerror());
- exit(1);
- }
-
- atexit(libC_fini);
-}
diff --git a/test/dlopen/libafk-temp.c b/test/dlopen/libafk-temp.c
deleted file mode 100644
index 39b58df..0000000
--- a/test/dlopen/libafk-temp.c
+++ /dev/null
@@ -1 +0,0 @@
-/* the actual contents doesnt matter */
diff --git a/test/dlopen/libafk.c b/test/dlopen/libafk.c
deleted file mode 100644
index 39b58df..0000000
--- a/test/dlopen/libafk.c
+++ /dev/null
@@ -1 +0,0 @@
-/* the actual contents doesnt matter */
diff --git a/test/dlopen/libstatic.c b/test/dlopen/libstatic.c
deleted file mode 100644
index bf44c3c..0000000
--- a/test/dlopen/libstatic.c
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <stdio.h>
-
-static int global_static = -1;
-
-int static_test(void)
-{
- static int local_static = -2;
-
- if (global_static != -1)
- printf("FAIL: global_static is not -1\n");
- if (local_static != -2)
- printf("FAIL: local_static is not -2\n");
-
- return (global_static == -1 && local_static == -2);
-}
diff --git a/test/dlopen/libtest.c b/test/dlopen/libtest.c
deleted file mode 100644
index 3fd137f..0000000
--- a/test/dlopen/libtest.c
+++ /dev/null
@@ -1,11 +0,0 @@
-#include <stdio.h>
-#include <pthread.h>
-#include <stdint.h>
-
-void dltest(uint32_t **value1, uint32_t **value2);
-void dltest(uint32_t **value1, uint32_t **value2)
-{
- *value1 = (uint32_t *) pthread_once;
- *value2 = (uint32_t *) pthread_self;
-}
-
diff --git a/test/dlopen/libtest1.c b/test/dlopen/libtest1.c
deleted file mode 100644
index a2f7dcd..0000000
--- a/test/dlopen/libtest1.c
+++ /dev/null
@@ -1,40 +0,0 @@
-#include <stdio.h>
-
-extern int libtest2_func(const char *s);
-
-void __attribute__((constructor)) libtest1_ctor(void);
-void libtest1_ctor(void)
-{
- printf("libtest1: constructor!\n");
-}
-
-void __attribute__((destructor)) libtest1_dtor(void);
-void libtest1_dtor(void)
-{
- printf("libtest1: destructor!\n");
-}
-
-void __attribute__((weak)) function1(void);
-void function1(void)
-{
- printf("libtest1: I am weak function1!\n");
-}
-
-void function2(void);
-void function2(void)
-{
- printf("libtest1: I am function2!\n");
-}
-
-int dltest(const char *s);
-int dltest(const char *s)
-{
- printf( "libtest1: function1 = %p\n"
- "libtest1: function2 = %p\n",
- function1, function2);
- function1();
- function2();
- return(libtest2_func(s));
-}
-
-
diff --git a/test/dlopen/libtest2.c b/test/dlopen/libtest2.c
deleted file mode 100644
index 5261506..0000000
--- a/test/dlopen/libtest2.c
+++ /dev/null
@@ -1,38 +0,0 @@
-#include <stdio.h>
-#include <pthread.h>
-
-void __attribute__((constructor)) libtest2_ctor(void);
-void libtest2_ctor(void)
-{
- printf("libtest2: constructor!\n");
-}
-
-void __attribute__((destructor)) libtest2_dtor(void);
-void libtest2_dtor(void)
-{
- printf("libtest2: destructor!\n");
-}
-
-void function1(void);
-void function1(void)
-{
- printf("libtest2: I am function1!\n");
-}
-
-void __attribute__((weak)) function2(void);
-void function2(void)
-{
- printf("libtest2: I am weak function2!\n");
-}
-
-
-int libtest2_func(const char *s);
-int libtest2_func(const char *s)
-{
- printf( "libtest2: function1 = %p\n"
- "libtest2: function2 = %p\n",
- function1, function2);
- function1();
- function2();
- return 0;
-}
diff --git a/test/dlopen/libtest3.c b/test/dlopen/libtest3.c
deleted file mode 100644
index 1d4bd7e..0000000
--- a/test/dlopen/libtest3.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "libtest.c"
diff --git a/test/dlopen/libundef.c b/test/dlopen/libundef.c
deleted file mode 100644
index 39b58df..0000000
--- a/test/dlopen/libundef.c
+++ /dev/null
@@ -1 +0,0 @@
-/* the actual contents doesnt matter */
diff --git a/test/dlopen/nodelete.c b/test/dlopen/nodelete.c
deleted file mode 100644
index 07ff961..0000000
--- a/test/dlopen/nodelete.c
+++ /dev/null
@@ -1,205 +0,0 @@
-#include <dlfcn.h>
-#include <setjmp.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static sigjmp_buf jmpbuf;
-
-
-int fini_ran;
-
-
-static void
-__attribute__ ((noreturn))
-handler (int sig)
-{
- siglongjmp (jmpbuf, 1);
-}
-
-
-#define TEST_FUNCTION do_test ()
-static int
-do_test (void)
-{
- /* We are testing the two possibilities to mark an object as not deletable:
- - marked on the linker commandline with `-z nodelete'
- - with the RTLD_NODELETE flag at dlopen()-time.
-
- The test we are performing should be safe. We are loading the objects,
- get the address of variables in the respective object, unload the object
- and then try to read the variable. If the object is unloaded this
- should lead to an segmentation fault. */
- void *p;
- struct sigaction sa;
-
- sa.sa_handler = handler;
- sigfillset (&sa.sa_mask);
- sa.sa_flags = SA_RESTART;
-
- if (sigaction (SIGSEGV, &sa, NULL) == -1)
- puts ("cannot install signal handler: %m");
-
- p = dlopen ("nodelmod1.so", RTLD_LAZY);
- if (p == NULL)
- {
- printf ("failed to load \"nodelmod1.so\": %s\n", dlerror ());
- exit (1);
- }
- else
- {
- int *varp;
-
- varp = dlsym (p, "var1");
- if (varp == NULL)
- {
- puts ("failed to get address of \"var1\" in
\"nodelmod1.so\"");
- exit (1);
- }
- else
- {
- *varp = 20000720;
-
- /* Now close the object. */
- fini_ran = 0;
- if (dlclose (p) != 0)
- {
- puts ("failed to close \"nodelmod1.so\"");
- exit (1);
- }
- else if (! sigsetjmp (jmpbuf, 1))
- {
- /* Access the variable again. */
- if (*varp != 20000720)
- {
- puts ("\"var1\" value not correct");
- exit (1);
- }
- else if (fini_ran != 0)
- {
- puts ("destructor of \"nodelmod1.so\" ran");
- exit (1);
- }
- else
- puts ("-z nodelete test succeeded");
- }
- else
- {
- /* We caught an segmentation fault. */
- puts ("\"nodelmod1.so\" got deleted!");
- exit (1);
- }
- }
- }
-
- p = dlopen ("nodelmod2.so", RTLD_LAZY | RTLD_NODELETE);
- if (p == NULL)
- {
- printf ("failed to load \"nodelmod2.so\": %s\n", dlerror ());
- exit (1);
- }
- else
- {
- int *varp;
-
- varp = dlsym (p, "var2");
- if (varp == NULL)
- {
- puts ("failed to get address of \"var2\" in
\"nodelmod2.so\"");
- exit (1);
- }
- else
- {
- *varp = 42;
-
- /* Now close the object. */
- fini_ran = 0;
- if (dlclose (p) != 0)
- {
- puts ("failed to close \"nodelmod2.so\"");
- exit (1);
- }
- else if (! sigsetjmp (jmpbuf, 1))
- {
- /* Access the variable again. */
- if (*varp != 42)
- {
- puts ("\"var2\" value not correct");
- exit (1);
- }
- else if (fini_ran != 0)
- {
- puts ("destructor of \"nodelmod2.so\" ran");
- exit (1);
- }
- else
- puts ("RTLD_NODELETE test succeeded");
- }
- else
- {
- /* We caught an segmentation fault. */
- puts ("\"nodelmod2.so\" got deleted!");
- exit (1);
- }
- }
- }
-
- p = dlopen ("nodelmod3.so", RTLD_LAZY);
- if (p == NULL)
- {
- printf ("failed to load \"nodelmod3.so\": %s\n", dlerror ());
- exit (1);
- }
- else
- {
- int *(*fctp) (void);
-
- fctp = dlsym (p, "addr");
- if (fctp == NULL)
- {
- puts ("failed to get address of \"addr\" in
\"nodelmod3.so\"");
- exit (1);
- }
- else
- {
- int *varp = fctp ();
-
- *varp = -1;
-
- /* Now close the object. */
- fini_ran = 0;
- if (dlclose (p) != 0)
- {
- puts ("failed to close \"nodelmod3.so\"");
- exit (1);
- }
- else if (! sigsetjmp (jmpbuf, 1))
- {
- /* Access the variable again. */
- if (*varp != -1)
- {
- puts ("\"var_in_mod4\" value not correct");
- exit (1);
- }
- else if (fini_ran != 0)
- {
- puts ("destructor of \"nodelmod4.so\" ran");
- exit (1);
- }
- else
- puts ("-z nodelete in dependency succeeded");
- }
- else
- {
- /* We caught an segmentation fault. */
- puts ("\"nodelmod4.so\" got deleted!");
- exit (1);
- }
- }
- }
-
- return 0;
-}
-
-#include "../test-skeleton.c"
diff --git a/test/dlopen/nodelete1.c b/test/dlopen/nodelete1.c
deleted file mode 100644
index 720e37f..0000000
--- a/test/dlopen/nodelete1.c
+++ /dev/null
@@ -1,59 +0,0 @@
-#include <dlfcn.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-int fini_ran;
-
-#define LIBNAME1 "nodelmod1.so"
-
-static int
-do_test (void)
-{
- /* Verify ability to reload RTLD_NODELETE libraries.
- */
- void *p;
-
- p = dlopen (LIBNAME1, RTLD_NOW);
- if (p == NULL)
- {
- printf ("failed to load "LIBNAME1": %s\n", dlerror ());
- exit (1);
- }
-
- if (dlclose (p) != 0)
- {
- puts ("failed to close "LIBNAME1"");
- exit (1);
- }
-
- p = dlopen (LIBNAME1, RTLD_LAZY);
- if (p == NULL)
- {
- printf ("failed to load "LIBNAME1": %s\n", dlerror ());
- exit (1);
- }
-
- if (dlclose (p) != 0)
- {
- puts ("failed to close "LIBNAME1"");
- exit (1);
- }
-
- p = dlopen ("nodelmod2.so", RTLD_LAZY);
- if (p == NULL)
- {
- printf ("failed to load \"nodelmod2.so\": %s\n", dlerror ());
- exit (1);
- }
- if (dlclose (p) != 0)
- {
- puts ("failed to close \"nodelmod2.so\"");
- exit (1);
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/dlopen/nodelmod1.c b/test/dlopen/nodelmod1.c
deleted file mode 100644
index 51be080..0000000
--- a/test/dlopen/nodelmod1.c
+++ /dev/null
@@ -1,10 +0,0 @@
-extern int fini_ran;
-
-int var1 = 42;
-
-static void
-__attribute__ ((__destructor__))
-destr (void)
-{
- fini_ran = 1;
-}
diff --git a/test/dlopen/nodelmod2.c b/test/dlopen/nodelmod2.c
deleted file mode 100644
index ff2ffc2..0000000
--- a/test/dlopen/nodelmod2.c
+++ /dev/null
@@ -1,10 +0,0 @@
-extern int fini_ran;
-
-int var2 = 100;
-
-static void
-__attribute__ ((__destructor__))
-destr (void)
-{
- fini_ran = 1;
-}
diff --git a/test/dlopen/nodelmod3.c b/test/dlopen/nodelmod3.c
deleted file mode 100644
index 817c94d..0000000
--- a/test/dlopen/nodelmod3.c
+++ /dev/null
@@ -1,8 +0,0 @@
-extern int var_in_mod4;
-extern int *addr (void);
-
-int *
-addr (void)
-{
- return &var_in_mod4;
-}
diff --git a/test/dlopen/nodelmod4.c b/test/dlopen/nodelmod4.c
deleted file mode 100644
index d7fa893..0000000
--- a/test/dlopen/nodelmod4.c
+++ /dev/null
@@ -1,10 +0,0 @@
-extern int fini_ran;
-
-int var_in_mod4 = 99;
-
-static void
-__attribute__ ((__destructor__))
-destr (void)
-{
- fini_ran = 1;
-}
diff --git a/test/dlopen/test1.c b/test/dlopen/test1.c
deleted file mode 100644
index c13eb30..0000000
--- a/test/dlopen/test1.c
+++ /dev/null
@@ -1,33 +0,0 @@
-#include <fcntl.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <dlfcn.h>
-
-#ifdef __UCLIBC__
-extern void _dlinfo(void);
-#endif
-
-int main(int argc, char **argv) {
- void *handle;
- int (*mydltest)(const char *s);
- char *error;
-
- handle = dlopen ("./libtest1.so", RTLD_LAZY);
- if (!handle) {
- fprintf(stderr, "Could not open ./libtest1.so: %s\n", dlerror());
- exit(1);
- }
-
- mydltest = dlsym(handle, "dltest");
- if ((error = dlerror()) != NULL) {
- fprintf(stderr, "Could not locate symbol 'dltest': %s\n", error);
- exit(1);
- }
-
- mydltest("hello world!");
-
- dlclose(handle);
-
- return EXIT_SUCCESS;
-}
-
diff --git a/test/dlopen/test2.c b/test/dlopen/test2.c
deleted file mode 100644
index d8428f7..0000000
--- a/test/dlopen/test2.c
+++ /dev/null
@@ -1,39 +0,0 @@
-#include <fcntl.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <dlfcn.h>
-
-#ifdef __UCLIBC__
-extern void _dlinfo(void);
-#endif
-
-int main(int argc, char **argv) {
- void *handle;
- int (*mydltest)(const char *s);
- char *error;
-
- handle = dlopen ("./libtest2.so", RTLD_LAZY);
- if (!handle) {
- fprintf(stderr, "Could not open ./libtest2.so: %s\n", dlerror());
- exit(1);
- }
-
- handle = dlopen ("./libtest1.so", RTLD_LAZY);
- if (!handle) {
- fprintf(stderr, "Could not open ./libtest1.so: %s\n", dlerror());
- exit(1);
- }
-
- mydltest = dlsym(handle, "dltest");
- if ((error = dlerror()) != NULL) {
- fprintf(stderr, "Could not locate symbol 'dltest': %s\n", error);
- exit(1);
- }
-
- mydltest("hello world!");
-
- dlclose(handle);
-
- return EXIT_SUCCESS;
-}
-
diff --git a/test/dlopen/test3.c b/test/dlopen/test3.c
deleted file mode 100644
index 2f2dfc6..0000000
--- a/test/dlopen/test3.c
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <fcntl.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <dlfcn.h>
-
-extern int dltest(const char *s);
-
-int main(int argc, char **argv)
-{
- dltest("hello world!");
- return EXIT_SUCCESS;
-}
-
diff --git a/test/dlopen/testscope.c b/test/dlopen/testscope.c
deleted file mode 100644
index 90e0798..0000000
--- a/test/dlopen/testscope.c
+++ /dev/null
@@ -1,29 +0,0 @@
-#include <dlfcn.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#define LIBNAME "libA.so"
-int main(int argc, char **argv)
-{
- void *libA;
- void (*libAfn)(void);
- char *error;
-
- libA = dlopen(LIBNAME, RTLD_LAZY);
- if (!libA) {
- fprintf(stderr, "Could not open ./%s: %s\n", LIBNAME, dlerror());
- exit(1);
- }
-
- libAfn = dlsym(libA, "libA_func");
- if ((error = dlerror()) != NULL) {
- fprintf(stderr, "Could not locate symbol 'libA_func': %s\n", error);
- exit(1);
- }
-
- libAfn();
-
- dlclose(libA);
-
- return EXIT_SUCCESS;
-}
diff --git a/test/dlopen/tst-origin.c b/test/dlopen/tst-origin.c
deleted file mode 100644
index 60fcd3f..0000000
--- a/test/dlopen/tst-origin.c
+++ /dev/null
@@ -1,37 +0,0 @@
-#include <fcntl.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <dlfcn.h>
-
-#ifdef __UCLIBC__
-extern void _dlinfo(void);
-#endif
-
-int main(int argc, char **argv) {
- void *h1, *h2;
- int __attribute__((unused))(*mydltest)(const char *s);
- char *error;
-
- h1 = dlopen ("libtest31.so", RTLD_LAZY);
- if (!h1) {
- fprintf(stderr, "Could not open libtest31.so: %s\n", dlerror());
- exit(1);
- }
-
- h2 = dlopen ("libtest31.so", RTLD_NOLOAD);
- if (!h2) {
- fprintf(stderr, "Could not open libtest31.so(RTLD_NOLOAD): %s\n",
dlerror());
- exit(1);
- }
-
- mydltest = dlsym(h1, "dltest");
- if ((error = dlerror()) != NULL) {
- fprintf(stderr, "Could not locate symbol 'dltest': %s\n", error);
- exit(1);
- }
-
- dlclose(h2);
- dlclose(h1);
-
- return EXIT_SUCCESS;
-}
diff --git a/test/inet/Makefile b/test/inet/Makefile
deleted file mode 100644
index b294ea6..0000000
--- a/test/inet/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc inet tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/inet/Makefile.in b/test/inet/Makefile.in
deleted file mode 100644
index 31a4837..0000000
--- a/test/inet/Makefile.in
+++ /dev/null
@@ -1,17 +0,0 @@
-# uClibc inet tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-#
-ifeq ($(UCLIBC_HAS_IPV4)$(UCLIBC_HAS_IPV6),)
-TESTS_DISABLED := bug-if1 gethost_r-align gethostid if_nameindex tst-aton \
- tst-network tst-ntoa test-ifaddrs
-endif
-
-ifeq ($(UCLIBC_HAS_SOCKET)$(UCLIBC_HAS_IPV4)$(UCLIBC_HAS_IPV6),)
-TESTS_DISABLED += tst-ether_aton tst-ethers tst-ethers-line
-endif
-
-ifeq ($(UCLIBC_HAS_RESOLVER_SUPPORT),)
-TESTS_DISABLED += tst-res
-else
-LDFLAGS_tst-res_glibc := -lresolv # assume it's glibc or somebody with that lib
-endif
diff --git a/test/inet/bug-if1.c b/test/inet/bug-if1.c
deleted file mode 100644
index ea84a68..0000000
--- a/test/inet/bug-if1.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copyright (C) 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <limits.h>
-#include <stdio.h>
-#include <string.h>
-#include <net/if.h>
-
-
-static int
-do_test (void)
-{
- char buf[IF_NAMESIZE];
- /* Index 0 is always invalid (see RFC 3493). */
- char *cp = if_indextoname (0, buf);
- if (cp != NULL)
- {
- printf ("invalid index returned result \"%s\"\n", cp);
- return 1;
- }
- else if (errno != ENXIO)
- {
- int err = errno;
- char errbuf1[256];
- char errbuf2[256];
-
- printf ("errno = %d (%s), expected %d (%s)\n",
- err, strerror_r (err, errbuf1, sizeof (errbuf1)),
- ENXIO, strerror_r (ENXIO, errbuf2, sizeof (errbuf2)));
- return 1;
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/inet/gethost.c b/test/inet/gethost.c
deleted file mode 100644
index 77467e9..0000000
--- a/test/inet/gethost.c
+++ /dev/null
@@ -1,40 +0,0 @@
-#include <errno.h>
-#include <netdb.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <arpa/inet.h>
-#include <sys/socket.h>
-
-int main(void)
-{
- in_addr_t addr = inet_addr("127.0.0.1");
- struct hostent *hent;
-
- hent = gethostent();
- if (hent == NULL) {
- printf("gethostent(%d):%s\n", errno, hstrerror(h_errno));
- exit(1);
- }
-
- hent = gethostbyname("localhost");
- if (hent == NULL) {
- printf("gethostbyname(%d):%s\n", errno, hstrerror(h_errno));
- exit(1);
- }
-
- hent = gethostbyname2("localhost", AF_INET);
- if (hent == NULL) {
- printf("gethostbyname2(%d):%s\n", errno, hstrerror(h_errno));
- exit(1);
- }
-
- hent = gethostbyaddr(&addr, sizeof(addr), AF_INET);
- if (hent == NULL) {
- printf("gethostbyaddr(%d):%s\n", errno, hstrerror(h_errno));
- exit(1);
- }
-
- return 0;
-}
-
diff --git a/test/inet/gethost_r-align.c b/test/inet/gethost_r-align.c
deleted file mode 100644
index 53ce93a..0000000
--- a/test/inet/gethost_r-align.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Since the reentrant gethost functions take a char * buffer,
- * we have to make sure they internally do not assume alignment.
- * The actual return values are not relevant. If the test fails,
- * it'll be due to an alignment exception which means the test
- * app is killed by the kernel.
- */
-
-#include <errno.h>
-#include <netdb.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <arpa/inet.h>
-#include <sys/socket.h>
-
-int main(int argc, char *argv[])
-{
- size_t i;
- char buf[1024];
- in_addr_t addr;
-
- addr = inet_addr("127.0.0.1");
-
- for (i = 0; i < sizeof(size_t) * 2; ++i) {
- struct hostent hent, *hentres;
- int ret, herr;
-
- printf("Testing misalignment of %2zi bytes: ", i);
-
- memset(&hent, 0x00, sizeof(hent));
- ret = gethostent_r(&hent, buf + i, sizeof(buf) - i, &hentres, &herr);
- printf("%sgethostent_r() ", (ret ? "!!!" : ""));
-
- memset(&hent, 0x00, sizeof(hent));
- ret = gethostbyname_r("localhost", &hent, buf + i, sizeof(buf) - i,
&hentres, &herr);
- printf("%sgethostbyname_r() ", (ret ? "!!!" : ""));
-
- memset(&hent, 0x00, sizeof(hent));
- ret = gethostbyname2_r("localhost", AF_INET, &hent, buf + i, sizeof(buf)
- i, &hentres, &herr);
- printf("%sgethostbyname2_r() ", (ret ? "!!!" : ""));
-
- memset(&hent, 0x00, sizeof(hent));
- ret = gethostbyaddr_r(&addr, sizeof(addr), AF_INET, &hent, buf + i, sizeof(buf)
- i, &hentres, &herr);
- printf("%sgethostbyaddr_r() ", (ret ? "!!!" : ""));
-
- puts("OK!");
- }
-
- return 0;
-}
diff --git a/test/inet/gethostid.c b/test/inet/gethostid.c
deleted file mode 100644
index 1b9af86..0000000
--- a/test/inet/gethostid.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <unistd.h>
-#include <stdio.h>
-int main(void) {
- printf("hostid=%ld\n", gethostid());
- return 0;
-}
diff --git a/test/inet/getnetent.c b/test/inet/getnetent.c
deleted file mode 100644
index 1f55e43..0000000
--- a/test/inet/getnetent.c
+++ /dev/null
@@ -1,17 +0,0 @@
-#include <stdio.h>
-#include <netdb.h>
-int main(void)
-{
- struct netent *net;
- setnetent(0);
- while ((net = getnetent())) {
- while (net->n_net && !((net->n_net >> 24) & 0xff)) {
- net->n_net <<= 8;
- }
- printf("%u.%u.%u.%u\n",
- (net->n_net >> 24) & 0xff, (net->n_net >> 16) & 0xff,
- (net->n_net >> 8) & 0xff, net->n_net & 0xff);
- }
- endnetent();
- return 0;
-}
diff --git a/test/inet/if_nameindex.c b/test/inet/if_nameindex.c
deleted file mode 100644
index 126c5ba..0000000
--- a/test/inet/if_nameindex.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* if_nameindex.c: test the if_nameindex() function
- *
- * Copyright (C) 2006 Erik Andersen <andersen(a)uclibc.org>
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <net/if.h>
-
-static char ifname[IF_NAMESIZE];
-
-static void test_if_nameindex(void)
-{
- size_t i;
- struct if_nameindex *ret;
-
- ret = if_nameindex();
-
- if (ret == NULL) {
- perror("if_nameindex()");
- exit(1);
- }
-
- printf("--- if_nameindex()\n");
- for (i=0; ret[i].if_name; ++i)
- printf("%i: %s\n", ret[i].if_index, ret[i].if_name);
-
- if_freenameindex(ret);
-}
-
-static void test_if_indextoname(void)
-{
- if (if_indextoname(1, ifname) == NULL) {
- perror("if_nameindex()");
- exit(1);
- }
-
- printf("if_indextoname(1) = %s\n", ifname);
-}
-
-static void test_if_nametoindex(void)
-{
- int ifindex = if_nametoindex(ifname);
-
- if (ifindex == 0) {
- perror("if_nametoindex()");
- exit(1);
- }
-
- printf("if_nametoindex(%s) = %i\n", ifname, ifindex);
-}
-
-int main(void)
-{
- test_if_nameindex();
- test_if_indextoname();
- test_if_nametoindex();
- return 0;
-}
diff --git a/test/inet/tst-aton.c b/test/inet/tst-aton.c
deleted file mode 100644
index 3e945f1..0000000
--- a/test/inet/tst-aton.c
+++ /dev/null
@@ -1,80 +0,0 @@
-#include <stdio.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-/* Note: uClibc only supports the standard notation 'a.b.c.d' */
-
-static struct tests
-{
- const char *input;
- int valid;
- uint32_t result;
-} tests[] =
-{
- { "", 0, 0 },
- { "-1", 0, 0 },
-/*
- { "256", 1, 0x00000100 },
-*/
- { "256.", 0, 0 },
- { "256a", 0, 0 },
-/*
- { "0x100", 1, 0x00000100 },
- { "0200.0x123456", 1, 0x80123456 },
- { "0300.0x89123456.", 0 ,0 },
- { "0100.-0xffff0000", 0, 0 },
- { "0.0xffffff", 1, 0x00ffffff },
- { "0.0x1000000", 0, 0 },
- { "0377.16777215", 1, 0xffffffff },
- { "0377.16777216", 0, 0 },
- { "0x87.077777777", 1, 0x87ffffff },
- { "0x87.0100000000", 0, 0 },
- { "0.1.3", 1, 0x00010003 },
-*/
- { "0.256.3", 0, 0 },
- { "256.1.3", 0, 0 },
-/*
- { "0.1.0x10000", 0, 0 },
- { "0.1.0xffff", 1, 0x0001ffff },
-*/
- { "0.1a.3", 0, 0 },
- { "0.1.a3", 0, 0 },
- { "1.2.3.4", 1, 0x01020304 },
- { "0400.2.3.4", 0, 0 },
- { "1.0x100.3.4", 0, 0 },
- { "1.2.256.4", 0, 0 },
- { "1.2.3.0x100", 0, 0 },
- { "323543357756889", 0, 0 },
- { "10.1.2.3.4", 0, 0},
-};
-
-
-int
-main (int argc, char *argv[])
-{
- int result = 0;
- size_t cnt;
-
- for (cnt = 0; cnt < sizeof (tests) / sizeof (tests[0]); ++cnt)
- {
- struct in_addr addr;
-
- if ((int) inet_aton (tests[cnt].input, &addr) != tests[cnt].valid)
- {
- if (tests[cnt].valid)
- printf ("\"%s\" not seen as valid IP address\n",
tests[cnt].input);
- else
- printf ("\"%s\" seen as valid IP address\n", tests[cnt].input);
- result = 1;
- }
- else if (tests[cnt].valid && addr.s_addr != ntohl (tests[cnt].result))
- {
- printf ("\"%s\" not converted correctly: is %08x, should be
%08x\n",
- tests[cnt].input, addr.s_addr, tests[cnt].result);
- result = 1;
- }
- }
-
- return result;
-}
diff --git a/test/inet/tst-ether_aton.c b/test/inet/tst-ether_aton.c
deleted file mode 100644
index 67cb435..0000000
--- a/test/inet/tst-ether_aton.c
+++ /dev/null
@@ -1,46 +0,0 @@
-#include <stdio.h>
-#include <stdint.h>
-#include <string.h>
-#include <netinet/ether.h>
-
-static struct tests
-{
- const char *input;
- int valid;
- uint8_t result[6];
-} tests[] =
-{
- { "", 0, {0, 0, 0, 0, 0, 0} },
- { "AB:CD:EF:01:23:45", 1, {171, 205, 239, 1, 35, 69} },
- { "\022B:BB:BB:BB:BB:BB", 0, {0, 0, 0, 0, 0, 0} }
-};
-
-
-int
-main (int argc, char *argv[])
-{
- int result = 0;
- size_t cnt;
-
- for (cnt = 0; cnt < sizeof (tests) / sizeof (tests[0]); ++cnt)
- {
- struct ether_addr *addr;
-
- if (!!(addr = ether_aton (tests[cnt].input)) != tests[cnt].valid)
- {
- if (tests[cnt].valid)
- printf ("\"%s\" not seen as valid MAC address\n",
tests[cnt].input);
- else
- printf ("\"%s\" seen as valid MAC address\n",
tests[cnt].input);
- result = 1;
- }
- else if (tests[cnt].valid
- && memcmp(addr, &tests[cnt].result, sizeof(struct
ether_addr)))
- {
- printf ("\"%s\" not converted correctly\n",
tests[cnt].input);
- result = 1;
- }
- }
-
- return result;
-}
diff --git a/test/inet/tst-ethers-line.c b/test/inet/tst-ethers-line.c
deleted file mode 100644
index 182faf0..0000000
--- a/test/inet/tst-ethers-line.c
+++ /dev/null
@@ -1,55 +0,0 @@
-#include <netinet/ether.h>
-#include <stdio.h>
-#include <sys/mman.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <stdlib.h>
-
-/* glibc 2.4 has no ETHER_FILE_NAME, host compile fails without this */
-#ifndef ETHER_FILE_NAME
-#define ETHER_FILE_NAME "/etc/ethers"
-#endif
-
-#define ETHER_LINE_LEN 256
-
-/* This test requires /etc/ethers to exist
- * and to have nonzero length. You should create it manually,
- * if it doesn't exist.
- */
-
-int main(void)
-{
- struct ether_addr addr;
- char hostname[ETHER_LINE_LEN];
- int fd, i;
- const char *ethers;
- struct stat statb;
-
- if ((fd = open(ETHER_FILE_NAME, O_RDONLY)) == -1) {
- perror ("Cannot open file /etc/ethers");
- exit(1);
- }
-
- if (fstat(fd, &statb)) {
- perror("Stat failed");
- exit(1);
- }
- ethers = mmap(NULL, statb.st_size, PROT_READ, MAP_SHARED, fd, 0);
-
- if (ethers == MAP_FAILED) {
- perror("File mapping failed");
- exit(1);
- }
-
- ether_line(ethers, &addr, hostname);
-
- for (i = 0; i < 6; i++) {
- printf("%02x", addr.ether_addr_octet[i]);
- if (i < 5)
- printf(":");
- }
- printf(" %s\n", hostname);
-
- return 0;
-}
diff --git a/test/inet/tst-ethers.c b/test/inet/tst-ethers.c
deleted file mode 100644
index f12813a..0000000
--- a/test/inet/tst-ethers.c
+++ /dev/null
@@ -1,37 +0,0 @@
-#include <netinet/ether.h>
-#include <stdio.h>
-
-#define ETHER_LINE_LEN 256
-
-/* This test requires /etc/ethers to exist
- * and to have host "teeth". For example:
- * 00:11:22:33:44:55 teeth
- * You should create /etc/ethers file with
- * host "teeth" manually, if it doesn't exist.
- */
-
-int main(void)
-{
- struct ether_addr addr;
- char host[ETHER_LINE_LEN];
- int i;
- int res = ether_hostton("teeth", &addr);
-
- if (res) {
- printf("Either /etc/ethers is missing or it has incorrect contents\n");
- return 1;
- }
-
- for (i = 0; i < 6; i++) {
- printf("%02x", addr.ether_addr_octet[i]);
- if (i < 5)
- printf(":");
- }
-
- res = ether_ntohost(host, &addr);
- if (res)
- return 1;
- printf(" %s\n", host);
-
- return 0;
-}
diff --git a/test/inet/tst-ifaddrs.c b/test/inet/tst-ifaddrs.c
deleted file mode 100644
index 6e6c015..0000000
--- a/test/inet/tst-ifaddrs.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/* Test listing of network interface addresses.
- Copyright (C) 2002-2015 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ifaddrs.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-static int failures;
-
-static const char *
-addr_string (struct sockaddr *sa, char *buf, size_t size)
-{
- if (sa == NULL)
- return "<none>";
-
- switch (sa->sa_family)
- {
- case AF_INET:
- return inet_ntop (AF_INET, &((struct sockaddr_in *) sa)->sin_addr,
- buf, size);
- case AF_INET6:
- return inet_ntop (AF_INET6, &((struct sockaddr_in6 *) sa)->sin6_addr,
- buf, size);
-#ifdef AF_LINK
- case AF_LINK:
- return "<link>";
-#endif
- case AF_UNSPEC:
- return "---";
-
-#ifdef AF_PACKET
- case AF_PACKET:
- return "<packet>";
-#endif
-
- default:
- ++failures;
- printf ("sa_family=%d %08x\n", sa->sa_family,
- *(int*)&((struct sockaddr_in *) sa)->sin_addr.s_addr);
- return "<unexpected sockaddr family>";
- }
-}
-
-
-static int
-do_test (void)
-{
- struct ifaddrs *ifaces, *ifa;
-
- if (getifaddrs (&ifaces) < 0)
- {
- if (errno != ENOSYS)
- {
- printf ("Couldn't get any interfaces: %s.\n", strerror (errno));
- exit (1);
- }
- /* The function is simply not implemented. */
- exit (0);
- }
-
- puts ("\
-Name Flags Address Netmask Broadcast/Destination");
-
- for (ifa = ifaces; ifa != NULL; ifa = ifa->ifa_next)
- {
- char abuf[64], mbuf[64], dbuf[64];
- printf ("%-15s%#.4x %-15s %-15s %-15s\n",
- ifa->ifa_name, ifa->ifa_flags,
- addr_string (ifa->ifa_addr, abuf, sizeof (abuf)),
- addr_string (ifa->ifa_netmask, mbuf, sizeof (mbuf)),
- addr_string (ifa->ifa_broadaddr, dbuf, sizeof (dbuf)));
- }
-
- freeifaddrs (ifaces);
-
- return failures ? 1 : 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/inet/tst-network.c b/test/inet/tst-network.c
deleted file mode 100644
index c6089aa..0000000
--- a/test/inet/tst-network.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/* Test for inet_network.
- Copyright (C) 2000, 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Andreas Jaeger <aj(a)suse.de>de>, 2000.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stdio.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-struct
-{
- const char *network;
- uint32_t number;
-} tests [] =
-{
- {"1.0.0.0", 0x1000000},
- {"1.0.0", 0x10000},
- {"1.0", 0x100},
- {"1", 0x1},
- {"192.168.0.0", 0xC0A80000},
- /* Now some invalid addresses. */
- {"141.30.225.2800", INADDR_NONE},
- {"141.76.1.1.1", INADDR_NONE},
- {"141.76.1.11.", INADDR_NONE},
- {"1410", INADDR_NONE},
- {"1.1410", INADDR_NONE},
- {"1.1410.", INADDR_NONE},
- {"1.1410", INADDR_NONE},
- {"141.76.1111", INADDR_NONE},
- {"141.76.1111.", INADDR_NONE},
- {"1.1.1.257", INADDR_NONE},
- /* Now some from BSD */
- {"0x12", 0x00000012},
- {"127.1", 0x00007f01},
- {"127.1.2.3", 0x7f010203},
- {"0x123456", INADDR_NONE},
- {"0x12.0x34", 0x00001234},
- {"0x12.0x345", INADDR_NONE},
- {"1.2.3.4.5", INADDR_NONE},
- {"1..3.4", INADDR_NONE},
- {".", INADDR_NONE},
- {"1.", INADDR_NONE},
- {".1", INADDR_NONE},
- {"x", INADDR_NONE},
- {"0x", INADDR_NONE},
- {"0", 0x00000000},
- {"0x0", 0x00000000},
- {"01.02.07.077", 0x0102073f},
- {"0x1.23.045.0", 0x01172500},
- {"", INADDR_NONE},
- {" ", INADDR_NONE},
- {"bar", INADDR_NONE},
- {"1.2bar", INADDR_NONE},
- {"1.", INADDR_NONE},
- {"������", INADDR_NONE},
- {"255.255.255.255", INADDR_NONE},
- {"x", INADDR_NONE},
- {"0X12", 0x00000012},
- {"078", INADDR_NONE},
- {"1 bar", INADDR_NONE},
- {"127.0xfff", INADDR_NONE},
-};
-
-
-int
-main (void)
-{
- int errors = 0;
- size_t i;
- uint32_t res;
-
- for (i = 0; i < sizeof (tests) / sizeof (tests[0]); ++i)
- {
- printf ("Testing: %s\n", tests[i].network);
- res = inet_network (tests[i].network);
-
- if (res != tests[i].number)
- {
- ++errors;
- printf ("Test failed for inet_network (\"%s\"):\n",
- tests[i].network);
- printf ("Expected return value %u (0x%x) but got %u (0x%x).\n",
- tests[i].number, tests[i].number, res, res);
- }
-
- }
-
- return errors != 0;
-}
diff --git a/test/inet/tst-ntoa.c b/test/inet/tst-ntoa.c
deleted file mode 100644
index 9be91eb..0000000
--- a/test/inet/tst-ntoa.c
+++ /dev/null
@@ -1,36 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include <arpa/inet.h>
-#include <netinet/in.h>
-
-
-static int
-test (unsigned int inaddr, const char *expected)
-{
- struct in_addr addr;
- char *res;
- int fail;
-
- addr.s_addr = htonl (inaddr);
- res = inet_ntoa (addr);
- fail = strcmp (res, expected);
-
- printf ("%#010x -> \"%s\" -> %s%s\n", inaddr, res,
- fail ? "fail, expected" : "ok", fail ? expected : "");
-
- return fail;
-}
-
-
-int
-main (void)
-{
- int result = 0;
-
- result |= test (INADDR_LOOPBACK, "127.0.0.1");
- result |= test (INADDR_BROADCAST, "255.255.255.255");
- result |= test (INADDR_ANY, "0.0.0.0");
- result |= test (0xc0060746, "192.6.7.70");
-
- return result;
-}
diff --git a/test/inet/tst-res.c b/test/inet/tst-res.c
deleted file mode 100644
index b65f30f..0000000
--- a/test/inet/tst-res.c
+++ /dev/null
@@ -1,44 +0,0 @@
-#include <stdlib.h>
-#include <assert.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
-#include <netdb.h>
-
-int main(int argc, char **argv)
-{
- int r;
- struct __res_state state;
-
- r = res_ninit(&state);
- if (r) {
- herror("ninit");
- abort();
- }
- r = res_init();
- if (r) {
- herror("init");
- abort();
- }
-
-#ifdef __UCLIBC_HAS_BSD_RES_CLOSE__
- res_close();
-#endif
-#ifdef __UCLIBC__
- /* assume there is at least one resolver configured */
- assert (state._u._ext.nscount > 0);
-#else
- assert (state._u._ext.nscount == 0);
-#endif
- assert (state.options & RES_INIT);
- res_nclose(&state);
-#ifdef __UCLIBC__
- /* We wipe the whole thing */
- assert ((state.options & RES_INIT) == 0);
-#endif
- assert (state._u._ext.nscount == 0);
-
- return 0;
-}
-
diff --git a/test/inet/tst-sock-nonblock.c b/test/inet/tst-sock-nonblock.c
deleted file mode 100644
index 54a7ee2..0000000
--- a/test/inet/tst-sock-nonblock.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* vi: set sw=4 ts=4 sts=4: */
-/*
- * Nonblocking socket test for uClibc
- * Copyright (C) 2012 by Kevin Cernekee <cernekee(a)gmail.com>
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <errno.h>
-#include <error.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-#include <sys/fcntl.h>
-
-static int
-do_test(void)
-{
- int fd, ret, result = 0;
- struct sockaddr_un sa;
- char buf;
-
- fd = socket(AF_UNIX, SOCK_DGRAM | SOCK_NONBLOCK, 0);
- if (fd < 0) {
- perror("socket()");
- result = 1;
- }
-
- memset(&sa, 0, sizeof(sa));
- sa.sun_family = AF_UNIX;
- strcpy(sa.sun_path, "socktest");
- unlink("socktest");
- if (bind(fd, (const struct sockaddr *)&sa, sizeof(sa)) < 0) {
- perror("bind()");
- result = 1;
- }
-
- ret = read(fd, &buf, sizeof(buf));
- if (ret != -1 || errno != EAGAIN) {
- error(0, 0, "Nonblocking read returned %d", ret);
- result = 1;
- }
-
- return result;
-}
-
-#define TIMEOUT 5
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/librt/Makefile b/test/librt/Makefile
deleted file mode 100644
index 1021afe..0000000
--- a/test/librt/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc shm tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/librt/Makefile.in b/test/librt/Makefile.in
deleted file mode 100644
index f25522c..0000000
--- a/test/librt/Makefile.in
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc shm tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-LDFLAGS_shmtest := -lrt
-
-ifeq ($(ARCH_USE_MMU),)
-TESTS_DISABLED := shmtest
-endif
diff --git a/test/librt/shmtest.c b/test/librt/shmtest.c
deleted file mode 100644
index a14302d..0000000
--- a/test/librt/shmtest.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/* Copyright (C) 2009 Mikael Lund Jepsen <mlj(a)iccc.dk>
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/mman.h>
-#include <sys/stat.h>
-#include <sys/wait.h>
-
-#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
-
-char shared_name[] = "/sharetest";
-int test_data[11] = {0,1,2,3,4,5,6,7,8,9,10};
-
-int main(void) {
- int pfds[2];
- pid_t pid;
- int fd;
- int test_data_fails = 0;
- char *ptest_data;
- unsigned int i;
- char buf[30];
- int rv;
-
- pipe(pfds);
-
- switch(pid = fork()) {
- case -1:
- perror("fork");
- exit(1); /* parent exits */
-
- case 0:
- /* Child */
-
- /* wait for parent */
- read(pfds[0], buf, 5);
-
- fd = shm_open(shared_name, O_RDWR, DEFFILEMODE);
- if (fd == -1) {
- perror("CHILD - shm_open(existing):");
- exit(1);
- } else {
- ptest_data = mmap(0, sizeof(test_data), PROT_READ + PROT_WRITE, MAP_SHARED, fd, 0);
- if (ptest_data != MAP_FAILED) {
- for (i=0; i < ARRAY_SIZE(test_data); i++) {
- if (ptest_data[i] != test_data[i]) {
- printf("%-40s: Offset %d, local %d, shm %d\n", "Compare memory
error", i, test_data[i], ptest_data[i]);
- test_data_fails++;
- }
- }
- if (test_data_fails == 0)
- printf("%-40s: %s\n", "Compare memory", "Success");
-
- munmap(ptest_data, sizeof(test_data));
- }
- }
- exit(0);
-
- default:
- /* Parent */
- fd = shm_open(shared_name, O_RDWR+O_CREAT+O_EXCL, DEFFILEMODE );
- if (fd == -1) {
- perror("PARENT - shm_open(create):");
- } else {
- if ((ftruncate(fd, sizeof(test_data))) == -1)
- {
- printf("%-40s: %s", "ftruncate", strerror(errno));
- shm_unlink(shared_name);
- return 0;
- }
-
- ptest_data = mmap(0, sizeof(test_data), PROT_READ + PROT_WRITE, MAP_SHARED, fd, 0);
- if (ptest_data == MAP_FAILED)
- {
- perror("PARENT - mmap:");
- if (shm_unlink(shared_name) == -1) {
- perror("PARENT - shm_unlink:");
- }
- return 0;
- }
- for (i=0; i < ARRAY_SIZE(test_data); i++)
- ptest_data[i] = test_data[i];
-
- /* signal child */
- write(pfds[1], "rdy", 5);
- /* wait for child */
- wait(&rv);
-
- /* Cleanup */
- munmap(ptest_data, sizeof(test_data));
- if (shm_unlink(shared_name) == -1) {
- perror("PARENT - shm_unlink:");
- }
- }
- }
- return 0;
-}
diff --git a/test/locale-mbwc/Makefile b/test/locale-mbwc/Makefile
deleted file mode 100644
index 263f325..0000000
--- a/test/locale-mbwc/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc locale tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/locale-mbwc/Makefile.in b/test/locale-mbwc/Makefile.in
deleted file mode 100644
index 6c0d894..0000000
--- a/test/locale-mbwc/Makefile.in
+++ /dev/null
@@ -1,30 +0,0 @@
-# uClibc locale tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-# tst_mbtowc tst_strcoll tst_strfmon tst_strxfrm \
-
-TESTS := tst_iswalnum tst_iswalpha tst_iswcntrl \
- tst_iswctype tst_iswdigit tst_iswgraph \
- tst_iswlower tst_iswprint tst_iswpunct \
- tst_iswspace tst_iswupper tst_iswxdigit \
- tst_mblen tst_mbrlen tst_mbrtowc tst_mbsrtowcs \
- tst_mbstowcs tst_mbtowc tst_strcoll tst_strxfrm \
- tst_swscanf tst_towctrans tst_towlower \
- tst_towupper tst_wcrtomb tst_wcscat tst_wcschr \
- tst_wcscmp tst_wcscoll tst_wcscpy tst_wcscspn \
- tst_wcslen tst_wcsncat tst_wcsncmp tst_wcsncpy \
- tst_wcspbrk tst_wcsrtombs tst_wcsspn tst_wcsstr \
- tst_wcstod tst_wcstok tst_wcstombs tst_wcswidth \
- tst_wcsxfrm tst_wctob tst_wctomb tst_wctrans \
- tst_wctype tst_wcwidth tst_strfmon \
- tst2_mbrtowc
-
-# NOTE: For now disabled tst_strfmon to avoid build failure.
-TESTS_DISABLED := tst_strfmon
-
-ifneq ($(UCLIBC_HAS_FLOATS),y)
-TESTS_DISABLED += tst_swscanf tst_wcstod
-endif
-
-DODIFF_rint := 1
-
-EXTRA_CFLAGS := -D__USE_GNU -fno-builtin
diff --git a/test/locale-mbwc/dat_isw-funcs.h b/test/locale-mbwc/dat_isw-funcs.h
deleted file mode 100644
index 70aecb0..0000000
--- a/test/locale-mbwc/dat_isw-funcs.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_isw-funcs.h
- *
- * ISW*: int isw* (wint_t wc);
- */
-
-#include <errno.h>
-#include <stdlib.h>
-#include <wctype.h>
-#include "tst_types.h"
-#include "tgn_locdef.h"
-
-#define TST_ISW_LOC(FUNC, func) \
- TST_ISW## FUNC tst_isw## func ##_loc []
-
-#define TST_ISW_REC(locale, func) \
- { Tisw## func, TST_LOC_## locale },
-
-/*
- * NOTE:
- * Set ret_flg = 1, when a return value is expected to be 0 (FALSE).
- * Set ret_flg = 0, when a return value is expected to be non-zero (TRUE).
- *
- * Since the functions return *non*-zero value for TRUE, can't
- * compare an actual return value with an expected return value.
- * Set the ret_flg=0 for TRUE cases and the tst_isw*() will check
- * the non-zero value.
- *
- * { { WEOF }, { 0,1,0 } },
- * | |
- * | ret_val: an expected return value
- * ret_flg: if 1, compare an actual return value with the
- * ret_val; if 0, the test program
- * checks the actual return value.
- */
diff --git a/test/locale-mbwc/dat_iswalnum.c b/test/locale-mbwc/dat_iswalnum.c
deleted file mode 100644
index 5093703..0000000
--- a/test/locale-mbwc/dat_iswalnum.c
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_iswalnum.c
- *
- * ISW*: int iswalnum (wint_t wc);
- */
-
-
-#include "dat_isw-funcs.h"
-
-
-TST_ISW_LOC (ALNUM, alnum) = {
-
- { TST_ISW_REC (de, alnum)
- {
- { { 0x0080 }, { 0,1,0 } }, /* CTRL */
- { { 0x009F }, { 0,1,0 } }, /* CTRL */
- { { 0x00A0 }, { 0,1,0 } }, /* NB SPACE */
- { { 0x00A1 }, { 0,1,0 } }, /* UD ! */
- { { 0x00B0 }, { 0,1,0 } }, /* Degree */
- { { 0x00B1 }, { 0,1,0 } }, /* +- sign */
- { { 0x00B2 }, { 0,1,0 } }, /* SUP 2 */
- { { 0x00B3 }, { 0,1,0 } }, /* SUP 3 */
- { { 0x00B4 }, { 0,1,0 } }, /* ACUTE */
- { { 0x00B8 }, { 0,1,0 } }, /* CEDILLA */
- { { 0x00B9 }, { 0,1,0 } }, /* SUP 1 */
- { { 0x00BB }, { 0,1,0 } }, /* >> */
- { { 0x00BC }, { 0,1,0 } }, /* 1/4 */
- { { 0x00BD }, { 0,1,0 } }, /* 1/2 */
- { { 0x00BE }, { 0,1,0 } }, /* 3/4 */
- { { 0x00BF }, { 0,1,0 } }, /* UD ? */
- { { 0x00C0 }, { 0,0,0 } }, /* A Grave */
- { { 0x00D6 }, { 0,0,0 } }, /* O dia */
- { { 0x00D7 }, { 0,1,0 } }, /* multipl. */
- { { 0x00D8 }, { 0,0,0 } }, /* O stroke */
- { { 0x00DF }, { 0,0,0 } }, /* small Sh */
- { { 0x00E0 }, { 0,0,0 } }, /* a grave */
- { { 0x00F6 }, { 0,0,0 } }, /* o dia */
- { { 0x00F7 }, { 0,1,0 } }, /* division */
- { { 0x00F8 }, { 0,0,0 } }, /* o stroke */
- { { 0x00FF }, { 0,0,0 } }, /* y dia */
- { .is_last = 1 } /* last element */
- }
- },
- { TST_ISW_REC (de_UTF8, alnum)
- {
- { { 0x0080 }, { 0,1,0 } }, /* CTRL */
- { { 0x009F }, { 0,1,0 } }, /* CTRL */
- { { 0x00A0 }, { 0,1,0 } }, /* NB SPACE */
- { { 0x00A1 }, { 0,1,0 } }, /* UD ! */
- { { 0x00B0 }, { 0,1,0 } }, /* Degree */
- { { 0x00B1 }, { 0,1,0 } }, /* +- sign */
- { { 0x00B2 }, { 0,1,0 } }, /* SUP 2 */
- { { 0x00B3 }, { 0,1,0 } }, /* SUP 3 */
- { { 0x00B4 }, { 0,1,0 } }, /* ACUTE */
- { { 0x00B8 }, { 0,1,0 } }, /* CEDILLA */
- { { 0x00B9 }, { 0,1,0 } }, /* SUP 1 */
- { { 0x00BB }, { 0,1,0 } }, /* >> */
- { { 0x00BC }, { 0,1,0 } }, /* 1/4 */
- { { 0x00BD }, { 0,1,0 } }, /* 1/2 */
- { { 0x00BE }, { 0,1,0 } }, /* 3/4 */
- { { 0x00BF }, { 0,1,0 } }, /* UD ? */
- { { 0x00C0 }, { 0,0,0 } }, /* A Grave */
- { { 0x00D6 }, { 0,0,0 } }, /* O dia */
- { { 0x00D7 }, { 0,1,0 } }, /* multipl. */
- { { 0x00D8 }, { 0,0,0 } }, /* O stroke */
- { { 0x00DF }, { 0,0,0 } }, /* small Sh */
- { { 0x00E0 }, { 0,0,0 } }, /* a grave */
- { { 0x00F6 }, { 0,0,0 } }, /* o dia */
- { { 0x00F7 }, { 0,1,0 } }, /* division */
- { { 0x00F8 }, { 0,0,0 } }, /* o stroke */
- { { 0x00FF }, { 0,0,0 } }, /* y dia */
- { .is_last = 1 } /* last element */
- }
- },
- { TST_ISW_REC (enUS, alnum)
- {
- { { WEOF }, { 0,1,0 } },
- { { 0x0000 }, { 0,1,0 } },
- { { 0x001F }, { 0,1,0 } },
- { { 0x0020 }, { 0,1,0 } },
- { { 0x0021 }, { 0,1,0 } },
- { { 0x002F }, { 0,1,0 } },
- { { 0x0030 }, { 0,0,0 } },
- { { 0x0039 }, { 0,0,0 } },
- { { 0x003A }, { 0,1,0 } },
- { { 0x0040 }, { 0,1,0 } },
- { { 0x0041 }, { 0,0,0 } },
- { { 0x005A }, { 0,0,0 } },
- { { 0x005B }, { 0,1,0 } },
- { { 0x0060 }, { 0,1,0 } },
- { { 0x0061 }, { 0,0,0 } },
- { { 0x007A }, { 0,0,0 } },
- { { 0x007B }, { 0,1,0 } },
- { { 0x007E }, { 0,1,0 } },
- { { 0x007F }, { 0,1,0 } },
- { { 0x0080 }, { 0,1,0 } },
- { .is_last = 1 } /* last element */
- }
- },
-#if 0
- { TST_ISW_REC (eucJP, alnum)
-#else
- { TST_ISW_REC (ja_UTF8, alnum)
-#endif
- {
- { { 0x3000 }, { 0,1,0 } }, /* IDEO. SPACE */
- { { 0x3020 }, { 0,1,0 } }, /* POSTAL MARK FACE */
-#ifdef SHOJI_IS_RIGHT
- { { 0x3029 }, { 0,1,0 } }, /* Hangzhou NUM9 */
-#else
- { { 0x3029 }, { 0,0,0 } }, /* Hangzhou NUM9 */
-#endif
- { { 0x302F }, { 0,1,0 } }, /* Diacritics(Hangul) */
- { { 0x3037 }, { 0,1,0 } }, /* Separator Symbol */
- { { 0x303F }, { 0,1,0 } }, /* IDEO. HALF SPACE */
-#ifdef SHOJI_IS_RIGHT
- { { 0x3041 }, { 0,1,0 } }, /* HIRAGANA a */
- { { 0x3094 }, { 0,1,0 } }, /* HIRAGANA u" */
-#else
- { { 0x3041 }, { 0,0,0 } }, /* HIRAGANA a */
- { { 0x3094 }, { 0,0,0 } }, /* HIRAGANA u" */
-#endif
- { { 0x3099 }, { 0,1,0 } }, /* SOUND MARK */
-#ifdef SHOJI_IS_RIGHT
- { { 0x309E }, { 0,1,0 } }, /* ITERATION MARK */
- { { 0x30A1 }, { 0,1,0 } }, /* KATAKANA a */
- { { 0x30FA }, { 0,1,0 } }, /* KATAKANA wo" */
-#else
- { { 0x309E }, { 0,0,0 } }, /* ITERATION MARK */
- { { 0x30A1 }, { 0,0,0 } }, /* KATAKANA a */
- { { 0x30FA }, { 0,0,0 } }, /* KATAKANA wo" */
-#endif
- { { 0x30FB }, { 0,1,0 } }, /* KATAKANA MID.DOT */
-#ifdef SHOJI_IS_RIGHT
- { { 0x30FE }, { 0,1,0 } }, /* KATAKANA ITERATION */
-#else
- { { 0x30FE }, { 0,0,0 } }, /* KATAKANA ITERATION */
-#endif
- { { 0x3191 }, { 0,1,0 } }, /* KANBUN REV.MARK */
- { { 0x3243 }, { 0,1,0 } }, /* IDEO. MARK (reach) */
- { { 0x32CB }, { 0,1,0 } }, /* IDEO.TEL.SYM.DEC12 */
- { { 0x32FE }, { 0,1,0 } }, /* MARU KATAKANA wo */
- { { 0x33FE }, { 0,1,0 } }, /* CJK IDEO.TEL.31th */
-#ifdef SHOJI_IS_RIGHT
- { { 0x4E00 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x4E05 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x4E06 }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x4E07 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x4FFF }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x9000 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x9006 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x9007 }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x9FA4 }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x9FA5 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
-#else
- { { 0x4E00 }, { 0,0,0 } }, /* CJK UNI.IDEO. */
- { { 0x4E05 }, { 0,0,0 } }, /* CJK UNI.IDEO. */
- { { 0x4E06 }, { 0,0,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x4E07 }, { 0,0,0 } }, /* CJK UNI.IDEO. */
- { { 0x4FFF }, { 0,0,0 } }, /* CJK UNI.IDEO. */
- { { 0x9000 }, { 0,0,0 } }, /* CJK UNI.IDEO. */
- { { 0x9006 }, { 0,0,0 } }, /* CJK UNI.IDEO. */
- { { 0x9007 }, { 0,0,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x9FA4 }, { 0,0,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x9FA5 }, { 0,0,0 } }, /* CJK UNI.IDEO. */
-#endif
- { { 0xFE4F }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0xFF0F }, { 0,1,0 } }, /* FULL SLASH */
- { { 0xFF19 }, { 0,0,0 } }, /* FULL 9 */
- { { 0xFF20 }, { 0,1,0 } }, /* FULL @ */
- { { 0xFF3A }, { 0,0,0 } }, /* FULL Z */
- { { 0xFF40 }, { 0,1,0 } }, /* FULL GRAVE ACC. */
- { { 0xFF5A }, { 0,0,0 } }, /* FULL z */
- { { 0xFF5E }, { 0,1,0 } }, /* FULL ~ (tilde) */
- { { 0xFF61 }, { 0,1,0 } }, /* HALF IDEO.STOP. . */
- { { 0xFF65 }, { 0,1,0 } }, /* HALF KATA MID.DOT */
-#ifdef SHOJI_IS_RIGHT
- { { 0xFF66 }, { 0,1,0 } }, /* HALF KATA WO */
- { { 0xFF6F }, { 0,1,0 } }, /* HALF KATA tu */
- { { 0xFF70 }, { 0,1,0 } }, /* HALF KATA PL - */
- { { 0xFF71 }, { 0,1,0 } }, /* HALF KATA A */
- { { 0xFF9E }, { 0,1,0 } }, /* HALF KATA MI */
-#else
- { { 0xFF66 }, { 0,0,0 } }, /* HALF KATA WO */
- { { 0xFF6F }, { 0,0,0 } }, /* HALF KATA tu */
- { { 0xFF70 }, { 0,0,0 } }, /* HALF KATA PL - */
- { { 0xFF71 }, { 0,0,0 } }, /* HALF KATA A */
- { { 0xFF9E }, { 0,0,0 } }, /* HALF KATA MI */
-#endif
- { .is_last = 1 } /* last element */
- }
- },
- { TST_ISW_REC (end, alnum) }
-};
diff --git a/test/locale-mbwc/dat_iswalpha.c b/test/locale-mbwc/dat_iswalpha.c
deleted file mode 100644
index c2b59fb..0000000
--- a/test/locale-mbwc/dat_iswalpha.c
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_iswalpha.c
- *
- * ISW*: int iswalpha (wint_t wc);
- */
-
-
-#include "dat_isw-funcs.h"
-
-
-TST_ISW_LOC (ALPHA, alpha) = {
-
- { TST_ISW_REC (de, alpha)
- {
- { { 0x0080 }, { 0,1,0 } }, /* CTRL */
- { { 0x009F }, { 0,1,0 } }, /* CTRL */
- { { 0x00A0 }, { 0,1,0 } }, /* NB SPACE */
- { { 0x00A1 }, { 0,1,0 } }, /* UD ! */
- { { 0x00B0 }, { 0,1,0 } }, /* Degree */
- { { 0x00B1 }, { 0,1,0 } }, /* +- sign */
- { { 0x00B2 }, { 0,1,0 } }, /* SUP 2 */
- { { 0x00B3 }, { 0,1,0 } }, /* SUP 3 */
- { { 0x00B4 }, { 0,1,0 } }, /* ACUTE */
- { { 0x00B8 }, { 0,1,0 } }, /* CEDILLA */
- { { 0x00B9 }, { 0,1,0 } }, /* SUP 1 */
- { { 0x00BB }, { 0,1,0 } }, /* >> */
- { { 0x00BC }, { 0,1,0 } }, /* 1/4 */
- { { 0x00BD }, { 0,1,0 } }, /* 1/2 */
- { { 0x00BE }, { 0,1,0 } }, /* 3/4 */
- { { 0x00BF }, { 0,1,0 } }, /* UD ? */
- { { 0x00C0 }, { 0,0,0 } }, /* A Grave */
- { { 0x00D6 }, { 0,0,0 } }, /* O dia */
- { { 0x00D7 }, { 0,1,0 } }, /* multipl. */
- { { 0x00D8 }, { 0,0,0 } }, /* O stroke */
- { { 0x00DF }, { 0,0,0 } }, /* small Sh */
- { { 0x00E0 }, { 0,0,0 } }, /* a grave */
- { { 0x00F6 }, { 0,0,0 } }, /* o dia */
- { { 0x00F7 }, { 0,1,0 } }, /* division */
- { { 0x00F8 }, { 0,0,0 } }, /* o stroke */
- { { 0x00FF }, { 0,0,0 } }, /* y dia */
- { .is_last = 1 } /* last element */
- }
- },
- { TST_ISW_REC (enUS, alpha)
- {
- { { WEOF }, { 0,1,0 } },
- { { 0x0000 }, { 0,1,0 } },
- { { 0x001F }, { 0,1,0 } },
- { { 0x0020 }, { 0,1,0 } },
- { { 0x0021 }, { 0,1,0 } },
- { { 0x002F }, { 0,1,0 } },
- { { 0x0030 }, { 0,1,0 } },
- { { 0x0039 }, { 0,1,0 } },
- { { 0x003A }, { 0,1,0 } },
- { { 0x0040 }, { 0,1,0 } },
- { { 0x0041 }, { 0,0,0 } },
- { { 0x005A }, { 0,0,0 } },
- { { 0x005B }, { 0,1,0 } },
- { { 0x0060 }, { 0,1,0 } },
- { { 0x0061 }, { 0,0,0 } },
- { { 0x007A }, { 0,0,0 } },
- { { 0x007B }, { 0,1,0 } },
- { { 0x007E }, { 0,1,0 } },
- { { 0x007F }, { 0,1,0 } },
- { { 0x0080 }, { 0,1,0 } }, /* 20 */
- { .is_last = 1 } /* last element */
- }
- },
-#if 0
- { TST_ISW_REC (eucJP, alpha)
-#else
- { TST_ISW_REC (ja_UTF8, alpha)
-#endif
- {
- { { 0x3000 }, { 0,1,0 } }, /* IDEO. SPACE */
- { { 0x3020 }, { 0,1,0 } }, /* POSTAL MARK FACE */
-#ifdef SHOJI_IS_RIGHT
- { { 0x3029 }, { 0,1,0 } }, /* Hangzhou NUM9 */
-#else
- { { 0x3029 }, { 0,0,0 } }, /* Hangzhou NUM9 */
-#endif
- { { 0x302F }, { 0,1,0 } }, /* Diacritics(Hangul) */
- { { 0x3037 }, { 0,1,0 } }, /* Separator Symbol */
- { { 0x303F }, { 0,1,0 } }, /* IDEO. HALF SPACE */
-#ifdef SHOJI_IS_RIGHT
- { { 0x3041 }, { 0,1,0 } }, /* HIRAGANA a */
- { { 0x3094 }, { 0,1,0 } }, /* HIRAGANA u" */
-#else
- { { 0x3041 }, { 0,0,0 } }, /* HIRAGANA a */
- { { 0x3094 }, { 0,0,0 } }, /* HIRAGANA u" */
-#endif
- { { 0x3099 }, { 0,1,0 } }, /* SOUND MARK */
-#ifdef SHOJI_IS_RIGHT
- { { 0x309E }, { 0,1,0 } }, /* ITERATION MARK */
- { { 0x30A1 }, { 0,1,0 } }, /* KATAKANA a */
- { { 0x30FA }, { 0,1,0 } }, /* KATAKANA wo" */
-#else
- { { 0x309E }, { 0,0,0 } }, /* ITERATION MARK */
- { { 0x30A1 }, { 0,0,0 } }, /* KATAKANA a */
- { { 0x30FA }, { 0,0,0 } }, /* KATAKANA wo" */
-#endif
- { { 0x30FB }, { 0,1,0 } }, /* KATAKANA MID.DOT */
-#ifdef SHOJI_IS_RIGHT
- { { 0x30FE }, { 0,1,0 } }, /* KATAKANA ITERATION */
-#else
- { { 0x30FE }, { 0,0,0 } }, /* KATAKANA ITERATION */
-#endif
- { { 0x3191 }, { 0,1,0 } }, /* KANBUN REV.MARK */
- { { 0x3243 }, { 0,1,0 } }, /* IDEO. MARK (reach) */
- { { 0x32CB }, { 0,1,0 } }, /* IDEO.TEL.SYM.DEC12 */
- { { 0x32FE }, { 0,1,0 } }, /* MARU KATAKANA wo */
- { { 0x33FE }, { 0,1,0 } }, /* CJK IDEO.TEL.31th */
-#ifdef SHOJI_IS_RIGHT
- { { 0x4E00 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x4E05 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x4E06 }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x4E07 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x4FFF }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x9000 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x9006 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x9007 }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x9FA4 }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x9FA5 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
-#else
- { { 0x4E00 }, { 0,0,0 } }, /* CJK UNI.IDEO. */
- { { 0x4E05 }, { 0,0,0 } }, /* CJK UNI.IDEO. */
- { { 0x4E06 }, { 0,0,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x4E07 }, { 0,0,0 } }, /* CJK UNI.IDEO. */
- { { 0x4FFF }, { 0,0,0 } }, /* CJK UNI.IDEO. */
- { { 0x9000 }, { 0,0,0 } }, /* CJK UNI.IDEO. */
- { { 0x9006 }, { 0,0,0 } }, /* CJK UNI.IDEO. */
- { { 0x9007 }, { 0,0,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x9FA4 }, { 0,0,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x9FA5 }, { 0,0,0 } }, /* CJK UNI.IDEO. */
-#endif
- { { 0xFE4F }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0xFF0F }, { 0,1,0 } }, /* FULL SLASH */
-#ifdef SHOJI_IS_RIGHT
- { { 0xFF19 }, { 0,1,0 } }, /* FULL 9 */
-#else
- { { 0xFF19 }, { 0,0,0 } }, /* FULL 9 */
-#endif
- { { 0xFF20 }, { 0,1,0 } }, /* FULL @ */
- { { 0xFF3A }, { 0,0,0 } }, /* FULL Z */
- { { 0xFF40 }, { 0,1,0 } }, /* FULL GRAVE ACC. */
- { { 0xFF5A }, { 0,0,0 } }, /* FULL z */
- { { 0xFF5E }, { 0,1,0 } }, /* FULL ~ (tilde) */
- { { 0xFF61 }, { 0,1,0 } }, /* HALF IDEO.STOP. . */
- { { 0xFF65 }, { 0,1,0 } }, /* HALF KATA MID.DOT */
-#ifdef SHOJI_IS_RIGHT
- { { 0xFF66 }, { 0,1,0 } }, /* HALF KATA WO */
- { { 0xFF6F }, { 0,1,0 } }, /* HALF KATA tu */
- { { 0xFF70 }, { 0,1,0 } }, /* HALF KATA PL - */
- { { 0xFF71 }, { 0,1,0 } }, /* HALF KATA A */
- { { 0xFF9E }, { 0,1,0 } }, /* HALF KATA MI */
-#else
- { { 0xFF66 }, { 0,0,0 } }, /* HALF KATA WO */
- { { 0xFF6F }, { 0,0,0 } }, /* HALF KATA tu */
- { { 0xFF70 }, { 0,0,0 } }, /* HALF KATA PL - */
- { { 0xFF71 }, { 0,0,0 } }, /* HALF KATA A */
- { { 0xFF9E }, { 0,0,0 } }, /* HALF KATA MI */
-#endif
- { .is_last = 1 } /* last element */
- }
- },
- { TST_ISW_REC (end, alpha) }
-};
diff --git a/test/locale-mbwc/dat_iswcntrl.c b/test/locale-mbwc/dat_iswcntrl.c
deleted file mode 100644
index e6ec685..0000000
--- a/test/locale-mbwc/dat_iswcntrl.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_iswcntrl.c
- *
- * ISW*: int iswcntrl (wint_t wc);
- */
-
-
-#include "dat_isw-funcs.h"
-
-
-TST_ISW_LOC (CNTRL, cntrl) = {
-
- { TST_ISW_REC (de, cntrl)
- {
- { { 0x0080 }, { 0,0,0 } }, /* CTRL */
- { { 0x009F }, { 0,0,0 } }, /* CTRL */
- { { 0x00A0 }, { 0,1,0 } }, /* NB SPACE */
- { { 0x00A1 }, { 0,1,0 } }, /* UD ! */
- { { 0x00B0 }, { 0,1,0 } }, /* Degree */
- { { 0x00B1 }, { 0,1,0 } }, /* +- sign */
- { { 0x00B2 }, { 0,1,0 } }, /* SUP 2 */
- { { 0x00B3 }, { 0,1,0 } }, /* SUP 3 */
- { { 0x00B4 }, { 0,1,0 } }, /* ACUTE */
- { { 0x00B8 }, { 0,1,0 } }, /* CEDILLA */
- { { 0x00B9 }, { 0,1,0 } }, /* SUP 1 */
- { { 0x00BB }, { 0,1,0 } }, /* >> */
- { { 0x00BC }, { 0,1,0 } }, /* 1/4 */
- { { 0x00BD }, { 0,1,0 } }, /* 1/2 */
- { { 0x00BE }, { 0,1,0 } }, /* 3/4 */
- { { 0x00BF }, { 0,1,0 } }, /* UD ? */
- { { 0x00C0 }, { 0,1,0 } }, /* A Grave */
- { { 0x00D6 }, { 0,1,0 } }, /* O dia */
- { { 0x00D7 }, { 0,1,0 } }, /* multipl. */
- { { 0x00D8 }, { 0,1,0 } }, /* O stroke */
- { { 0x00DF }, { 0,1,0 } }, /* small Sh */
- { { 0x00E0 }, { 0,1,0 } }, /* a grave */
- { { 0x00F6 }, { 0,1,0 } }, /* o dia */
- { { 0x00F7 }, { 0,1,0 } }, /* division */
- { { 0x00F8 }, { 0,1,0 } }, /* o stroke */
- { { 0x00FF }, { 0,1,0 } }, /* y dia */
- { .is_last = 1 } /* Last element. */
- }
- },
- { TST_ISW_REC (enUS, cntrl)
- {
- { { WEOF }, { 0,1,0 } },
- { { 0x0000 }, { 0,0,0 } },
- { { 0x001F }, { 0,0,0 } },
- { { 0x0020 }, { 0,1,0 } },
- { { 0x0021 }, { 0,1,0 } },
- { { 0x002F }, { 0,1,0 } },
- { { 0x0030 }, { 0,1,0 } },
- { { 0x0039 }, { 0,1,0 } },
- { { 0x003A }, { 0,1,0 } },
- { { 0x0040 }, { 0,1,0 } },
- { { 0x0041 }, { 0,1,0 } },
- { { 0x005A }, { 0,1,0 } },
- { { 0x005B }, { 0,1,0 } },
- { { 0x0060 }, { 0,1,0 } },
- { { 0x0061 }, { 0,1,0 } },
- { { 0x007A }, { 0,1,0 } },
- { { 0x007B }, { 0,1,0 } },
- { { 0x007E }, { 0,1,0 } },
- { { 0x007F }, { 0,0,0 } },
- { { 0x0080 }, { 0,1,0 } },
- { .is_last = 1 } /* Last element. */
- }
- },
-#if 0
- { TST_ISW_REC (eucJP, cntrl)
-#else
- { TST_ISW_REC (ja_UTF8, cntrl)
-#endif
- {
- { { 0x3000 }, { 0,1,0 } }, /* IDEO. SPACE */
- { { 0x3020 }, { 0,1,0 } }, /* POSTAL MARK FACE */
- { { 0x3029 }, { 0,1,0 } }, /* Hangzhou NUM9 */
- { { 0x302F }, { 0,1,0 } }, /* Diacritics(Hangul) */
- { { 0x3037 }, { 0,1,0 } }, /* Separator Symbol */
- { { 0x303F }, { 0,1,0 } }, /* IDEO. HALF SPACE */
- { { 0x3041 }, { 0,1,0 } }, /* HIRAGANA a */
- { { 0x3094 }, { 0,1,0 } }, /* HIRAGANA u" */
- { { 0x3099 }, { 0,1,0 } }, /* SOUND MARK */
- { { 0x309E }, { 0,1,0 } }, /* ITERATION MARK */
- { { 0x30A1 }, { 0,1,0 } }, /* KATAKANA a */
- { { 0x30FA }, { 0,1,0 } }, /* KATAKANA wo" */
- { { 0x30FB }, { 0,1,0 } }, /* KATAKANA MID.DOT */
- { { 0x30FE }, { 0,1,0 } }, /* KATAKANA ITERATION */
- { { 0x3191 }, { 0,1,0 } }, /* KANBUN REV.MARK */
- { { 0x3243 }, { 0,1,0 } }, /* IDEO. MARK (reach) */
- { { 0x32CB }, { 0,1,0 } }, /* IDEO.TEL.SYM.DEC12 */
- { { 0x32FE }, { 0,1,0 } }, /* MARU KATAKANA wo */
- { { 0x33FE }, { 0,1,0 } }, /* CJK IDEO.TEL.31th */
- { { 0x4E00 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x4E05 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x4E06 }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x4E07 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x4FFF }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x9000 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x9006 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x9007 }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x9FA4 }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x9FA5 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0xFE4F }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0xFF0F }, { 0,1,0 } }, /* FULL SLASH */
- { { 0xFF19 }, { 0,1,0 } }, /* FULL 9 */
- { { 0xFF20 }, { 0,1,0 } }, /* FULL @ */
- { { 0xFF3A }, { 0,1,0 } }, /* FULL Z */
- { { 0xFF40 }, { 0,1,0 } }, /* FULL GRAVE ACC. */
- { { 0xFF5A }, { 0,1,0 } }, /* FULL z */
- { { 0xFF5E }, { 0,1,0 } }, /* FULL ~ (tilde) */
- { { 0xFF61 }, { 0,1,0 } }, /* HALF IDEO.STOP. . */
- { { 0xFF65 }, { 0,1,0 } }, /* HALF KATA MID.DOT */
- { { 0xFF66 }, { 0,1,0 } }, /* HALF KATA WO */
- { { 0xFF6F }, { 0,1,0 } }, /* HALF KATA tu */
- { { 0xFF70 }, { 0,1,0 } }, /* HALF KATA PL - */
- { { 0xFF71 }, { 0,1,0 } }, /* HALF KATA A */
- { { 0xFF9E }, { 0,1,0 } }, /* HALF KATA MI */
- { .is_last = 1 } /* Last element. */
- }
- },
- { TST_ISW_REC(end, cntrl) }
-};
diff --git a/test/locale-mbwc/dat_iswctype.c b/test/locale-mbwc/dat_iswctype.c
deleted file mode 100644
index 0dcf182..0000000
--- a/test/locale-mbwc/dat_iswctype.c
+++ /dev/null
@@ -1,667 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_iswctype.c
- *
- * ISWCTYPE: int iswctype( wint_t wc, wctype_t charclass );
- */
-
-#include <errno.h>
-#include <stdlib.h>
-#include <wctype.h>
-#include "tst_types.h"
-#include "tgn_locdef.h"
-
-/*
- * NOTE:
- * Set ret_flg = 1, when a return value is expected to be 0 (FALSE).
- * Set ret_flg = 0, when a return value is expected to be non-zero (TRUE).
- *
- * Since the functions return *non*-zero value for TRUE, can't
- * compare an actual return value with an expected return value.
- * Set the ret_flg=0 for TRUE cases and the tst_isw*() will check
- * the non-zero value.
- *
- * { { WEOF }, { 0,1,0 } },
- * | |
- * | ret_val: an expected return value
- * ret_flg: if 1, compare an actual return value with the
- * ret_val; if 0, the test program checks
- * the actual return value.
- */
-
-TST_ISWCTYPE tst_iswctype_loc [] = {
- {
- { Tiswctype, TST_LOC_de },
- {
- { { 0x009F, "alnum" }, { 0,1,0 } }, /* CTRL */
- { { 0x00A0, "alnum" }, { 0,1,0 } }, /* NB SPACE */
- { { 0x00A1, "alnum" }, { 0,1,0 } }, /* UD ! */
- { { 0x00B1, "alnum" }, { 0,1,0 } }, /* +- sign */
- { { 0x00B3, "alnum" }, { 0,1,0 } }, /* SUP 3 */
- { { 0x00B4, "alnum" }, { 0,1,0 } }, /* ACUTE */
- { { 0x00BB, "alnum" }, { 0,1,0 } }, /* >> */
- { { 0x00BE, "alnum" }, { 0,1,0 } }, /* 3/4 */
- { { 0x00BF, "alnum" }, { 0,1,0 } }, /* UD ? */
- { { 0x00C0, "alnum" }, { 0,0,0 } }, /* A Grave */
- { { 0x00D6, "alnum" }, { 0,0,0 } }, /* O dia */
- { { 0x00D7, "alnum" }, { 0,1,0 } }, /* multipl. */
- { { 0x00D8, "alnum" }, { 0,0,0 } }, /* O stroke */
- { { 0x00DF, "alnum" }, { 0,0,0 } }, /* small Sh */
- { { 0x00E0, "alnum" }, { 0,0,0 } }, /* a grave */
- { { 0x00F6, "alnum" }, { 0,0,0 } }, /* o dia */
- { { 0x00F7, "alnum" }, { 0,1,0 } }, /* division */
- { { 0x00F8, "alnum" }, { 0,0,0 } }, /* o stroke */
- { { 0x00FF, "alnum" }, { 0,0,0 } }, /* y dia */
- { { 0x0080, "alpha" }, { 0,1,0 } }, /* CTRL */
- { { 0x00A0, "alpha" }, { 0,1,0 } }, /* NB SPACE */
- { { 0x00A1, "alpha" }, { 0,1,0 } }, /* UD ! */
- { { 0x00B1, "alpha" }, { 0,1,0 } }, /* +- sign */
- { { 0x00B4, "alpha" }, { 0,1,0 } }, /* ACUTE */
- { { 0x00B8, "alpha" }, { 0,1,0 } }, /* CEDILLA */
- { { 0x00B9, "alpha" }, { 0,1,0 } }, /* SUP 1 */
- { { 0x00BB, "alpha" }, { 0,1,0 } }, /* >> */
- { { 0x00BE, "alpha" }, { 0,1,0 } }, /* 3/4 */
- { { 0x00BF, "alpha" }, { 0,1,0 } }, /* UD ? */
- { { 0x00C0, "alpha" }, { 0,0,0 } }, /* A Grave */
- { { 0x00D6, "alpha" }, { 0,0,0 } }, /* O dia */
- { { 0x00D7, "alpha" }, { 0,1,0 } }, /* multipl. */
- { { 0x00D8, "alpha" }, { 0,0,0 } }, /* O stroke */
- { { 0x00DF, "alpha" }, { 0,0,0 } }, /* small Sh */
- { { 0x00E0, "alpha" }, { 0,0,0 } }, /* a grave */
- { { 0x00F6, "alpha" }, { 0,0,0 } }, /* o dia */
- { { 0x00F7, "alpha" }, { 0,1,0 } }, /* division */
- { { 0x00F8, "alpha" }, { 0,0,0 } }, /* o stroke */
- { { 0x00FF, "alpha" }, { 0,0,0 } }, /* y dia */
- { { 0x0080, "cntrl" }, { 0,0,0 } }, /* CTRL */
- { { 0x009F, "cntrl" }, { 0,0,0 } }, /* CTRL */
- { { 0x00A0, "cntrl" }, { 0,1,0 } }, /* NB SPACE */
- { { 0x00F6, "cntrl" }, { 0,1,0 } }, /* o dia */
- { { 0x00FF, "cntrl" }, { 0,1,0 } }, /* y dia */
- { { 0x00B9, "digit" }, { 0,1,0 } }, /* SUP 1 */
- { { 0x00BE, "digit" }, { 0,1,0 } }, /* 3/4 */
- { { 0x009F, "graph" }, { 0,1,0 } }, /* CTRL */
-#ifdef SHOJI_IS_RIGHT
- { { 0x00A0, "graph" }, { 0,1,0 } }, /* NB SPACE */
-#else
- { { 0x00A0, "graph" }, { 0,0,0 } }, /* NB SPACE */
-#endif
- { { 0x00A1, "graph" }, { 0,0,0 } }, /* UD ! */
- { { 0x00B1, "graph" }, { 0,0,0 } }, /* +- sign */
- { { 0x00B3, "graph" }, { 0,0,0 } }, /* SUP 3 */
- { { 0x00B4, "graph" }, { 0,0,0 } }, /* ACUTE */
- { { 0x00BB, "graph" }, { 0,0,0 } }, /* >> */
- { { 0x00BE, "graph" }, { 0,0,0 } }, /* 3/4 */
- { { 0x00C0, "graph" }, { 0,0,0 } }, /* A Grave */
- { { 0x00D6, "graph" }, { 0,0,0 } }, /* O dia */
- { { 0x00D7, "graph" }, { 0,0,0 } }, /* multipl. */
- { { 0x00D8, "graph" }, { 0,0,0 } }, /* O stroke */
- { { 0x00DF, "graph" }, { 0,0,0 } }, /* small Sh */
- { { 0x00F7, "graph" }, { 0,0,0 } }, /* division */
- { { 0x00F8, "graph" }, { 0,0,0 } }, /* o stroke */
- { { 0x00FF, "graph" }, { 0,0,0 } }, /* y dia */
- { { 0x009F, "print" }, { 0,1,0 } }, /* CTRL */
-#ifdef SHOJI_IS_RIGHT
- { { 0x00A0, "print" }, { 0,1,0 } }, /* NB SPACE */
-#else
- { { 0x00A0, "print" }, { 0,0,0 } }, /* NB SPACE */
-#endif
- { { 0x00A1, "print" }, { 0,0,0 } }, /* UD ! */
- { { 0x00B1, "print" }, { 0,0,0 } }, /* +- sign */
- { { 0x00B4, "print" }, { 0,0,0 } }, /* ACUTE */
- { { 0x00B8, "print" }, { 0,0,0 } }, /* CEDILLA */
- { { 0x00B9, "print" }, { 0,0,0 } }, /* SUP 1 */
- { { 0x00BB, "print" }, { 0,0,0 } }, /* >> */
- { { 0x00BE, "print" }, { 0,0,0 } }, /* 3/4 */
- { { 0x00C0, "print" }, { 0,0,0 } }, /* A Grave */
- { { 0x00DF, "print" }, { 0,0,0 } }, /* small Sh */
- { { 0x00F6, "print" }, { 0,0,0 } }, /* o dia */
- { { 0x00F7, "print" }, { 0,0,0 } }, /* division */
- { { 0x00F8, "print" }, { 0,0,0 } }, /* o stroke */
- { { 0x00FF, "print" }, { 0,0,0 } }, /* y dia */
- { { 0x009F, "punct" }, { 0,1,0 } }, /* CTRL */
-#ifdef SHOJI_IS_RIGHT
- { { 0x00A0, "punct" }, { 0,1,0 } }, /* NB SPACE */
-#else
- { { 0x00A0, "punct" }, { 0,0,0 } }, /* NB SPACE */
-#endif
- { { 0x00A1, "punct" }, { 0,0,0 } }, /* UD ! */
- { { 0x00B0, "punct" }, { 0,0,0 } }, /* Degree */
- { { 0x00B1, "punct" }, { 0,0,0 } }, /* +- sign */
- { { 0x00B2, "punct" }, { 0,0,0 } }, /* SUP 2 */
- { { 0x00B3, "punct" }, { 0,0,0 } }, /* SUP 3 */
- { { 0x00B4, "punct" }, { 0,0,0 } }, /* ACUTE */
- { { 0x00B8, "punct" }, { 0,0,0 } }, /* CEDILLA */
- { { 0x00B9, "punct" }, { 0,0,0 } }, /* SUP 1 */
- { { 0x00BB, "punct" }, { 0,0,0 } }, /* >> */
- { { 0x00BC, "punct" }, { 0,0,0 } }, /* 1/4 */
- { { 0x00BD, "punct" }, { 0,0,0 } }, /* 1/2 */
- { { 0x00BE, "punct" }, { 0,0,0 } }, /* 3/4 */
- { { 0x00BF, "punct" }, { 0,0,0 } }, /* UD ? */
- { { 0x00C0, "punct" }, { 0,1,0 } }, /* A Grave */
- { { 0x00D7, "punct" }, { 0,0,0 } }, /* multipl. */
- { { 0x00DF, "punct" }, { 0,1,0 } }, /* small Sh */
- { { 0x00F6, "punct" }, { 0,1,0 } }, /* o dia */
- { { 0x00F7, "punct" }, { 0,0,0 } }, /* division */
- { { 0x00FF, "punct" }, { 0,1,0 } }, /* y dia */
- { { 0x009F, "space" }, { 0,1,0 } }, /* CTRL */
- { { 0x00A0, "space" }, { 0,1,0 } }, /* NB SPACE */
- { { 0x00A1, "space" }, { 0,1,0 } }, /* UD ! */
- { { 0x00B1, "space" }, { 0,1,0 } }, /* +- sign */
- { { 0x00F8, "space" }, { 0,1,0 } }, /* o stroke */
- { { 0x00B3, "lower" }, { 0,1,0 } }, /* SUP 3 */
- { { 0x00B8, "lower" }, { 0,1,0 } }, /* CEDILLA */
- { { 0x00BE, "lower" }, { 0,1,0 } }, /* 3/4 */
- { { 0x00C0, "lower" }, { 0,1,0 } }, /* A Grave */
- { { 0x00D6, "lower" }, { 0,1,0 } }, /* O dia */
- { { 0x00D8, "lower" }, { 0,1,0 } }, /* O stroke */
- { { 0x00DF, "lower" }, { 0,0,0 } }, /* small Sh */
- { { 0x00E0, "lower" }, { 0,0,0 } }, /* a grave */
- { { 0x00F6, "lower" }, { 0,0,0 } }, /* o dia */
- { { 0x00F7, "lower" }, { 0,1,0 } }, /* division */
- { { 0x00F8, "lower" }, { 0,0,0 } }, /* o stroke */
- { { 0x00FF, "lower" }, { 0,0,0 } }, /* y dia */
- { { 0x00B4, "upper" }, { 0,1,0 } }, /* ACUTE */
- { { 0x00B8, "upper" }, { 0,1,0 } }, /* CEDILLA */
- { { 0x00B9, "upper" }, { 0,1,0 } }, /* SUP 1 */
- { { 0x00BE, "upper" }, { 0,1,0 } }, /* 3/4 */
- { { 0x00BF, "upper" }, { 0,1,0 } }, /* UD ? */
- { { 0x00C0, "upper" }, { 0,0,0 } }, /* A Grave */
- { { 0x00D6, "upper" }, { 0,0,0 } }, /* O dia */
- { { 0x00D7, "upper" }, { 0,1,0 } }, /* multipl. */
- { { 0x00D8, "upper" }, { 0,0,0 } }, /* O stroke */
- { { 0x00DF, "upper" }, { 0,1,0 } }, /* small Sh */
- { { 0x00FF, "upper" }, { 0,1,0 } }, /* y dia */
- { { 0x00B9, "xdigit" }, { 0,1,0 } }, /* SUP 1 */
- { { 0x00BC, "xdigit" }, { 0,1,0 } }, /* 1/4 */
- { .is_last = 1 }
- }
- },
- {
- { Tiswctype, TST_LOC_enUS },
- {
- { { WEOF, "alnum" }, { 0,1,0 } },
- { { 0x0000, "alnum" }, { 0,1,0 } },
- { { 0x001F, "alnum" }, { 0,1,0 } },
- { { 0x0020, "alnum" }, { 0,1,0 } },
- { { 0x0021, "alnum" }, { 0,1,0 } },
- { { 0x002F, "alnum" }, { 0,1,0 } },
- { { 0x0030, "alnum" }, { 0,0,0 } },
- { { 0x0039, "alnum" }, { 0,0,0 } },
- { { 0x003A, "alnum" }, { 0,1,0 } },
- { { 0x0040, "alnum" }, { 0,1,0 } },
- { { 0x0041, "alnum" }, { 0,0,0 } },
- { { 0x005A, "alnum" }, { 0,0,0 } },
- { { 0x005B, "alnum" }, { 0,1,0 } },
- { { 0x0060, "alnum" }, { 0,1,0 } },
- { { 0x0061, "alnum" }, { 0,0,0 } },
- { { 0x007A, "alnum" }, { 0,0,0 } },
- { { 0x007B, "alnum" }, { 0,1,0 } },
- { { 0x007E, "alnum" }, { 0,1,0 } },
- { { 0x007F, "alnum" }, { 0,1,0 } },
- { { 0x0080, "alnum" }, { 0,1,0 } },
- { { 0x0000, "alpha" }, { 0,1,0 } },
- { { 0x001F, "alpha" }, { 0,1,0 } },
- { { 0x0020, "alpha" }, { 0,1,0 } },
- { { 0x0021, "alpha" }, { 0,1,0 } },
- { { 0x002F, "alpha" }, { 0,1,0 } },
- { { 0x0030, "alpha" }, { 0,1,0 } },
- { { 0x0039, "alpha" }, { 0,1,0 } },
- { { 0x003A, "alpha" }, { 0,1,0 } },
- { { 0x0040, "alpha" }, { 0,1,0 } },
- { { 0x0041, "alpha" }, { 0,0,0 } },
- { { 0x005A, "alpha" }, { 0,0,0 } },
- { { 0x005B, "alpha" }, { 0,1,0 } },
- { { 0x0060, "alpha" }, { 0,1,0 } },
- { { 0x0061, "alpha" }, { 0,0,0 } },
- { { 0x007A, "alpha" }, { 0,0,0 } },
- { { 0x007B, "alpha" }, { 0,1,0 } },
- { { 0x007E, "alpha" }, { 0,1,0 } },
- { { 0x007F, "alpha" }, { 0,1,0 } },
- { { 0x0080, "alpha" }, { 0,1,0 } },
- { { 0x0009, "blank" }, { 0,0,0 } },
- { { 0x000B, "blank" }, { 0,1,0 } },
- { { 0x0020, "blank" }, { 0,0,0 } },
- { { 0x0000, "cntrl" }, { 0,0,0 } },
- { { 0x001F, "cntrl" }, { 0,0,0 } },
- { { 0x0020, "cntrl" }, { 0,1,0 } },
- { { 0x0021, "cntrl" }, { 0,1,0 } },
- { { 0x002F, "cntrl" }, { 0,1,0 } },
- { { 0x0030, "cntrl" }, { 0,1,0 } },
- { { 0x0039, "cntrl" }, { 0,1,0 } },
- { { 0x003A, "cntrl" }, { 0,1,0 } },
- { { 0x0040, "cntrl" }, { 0,1,0 } },
- { { 0x0041, "cntrl" }, { 0,1,0 } },
- { { 0x005A, "cntrl" }, { 0,1,0 } },
- { { 0x005B, "cntrl" }, { 0,1,0 } },
- { { 0x0060, "cntrl" }, { 0,1,0 } },
- { { 0x0061, "cntrl" }, { 0,1,0 } },
- { { 0x007A, "cntrl" }, { 0,1,0 } },
- { { 0x007B, "cntrl" }, { 0,1,0 } },
- { { 0x007E, "cntrl" }, { 0,1,0 } },
- { { 0x007F, "cntrl" }, { 0,0,0 } },
- { { 0x0080, "cntrl" }, { 0,1,0 } },
- { { 0x0000, "digit" }, { 0,1,0 } },
- { { 0x001F, "digit" }, { 0,1,0 } },
- { { 0x0020, "digit" }, { 0,1,0 } },
- { { 0x0021, "digit" }, { 0,1,0 } },
- { { 0x002F, "digit" }, { 0,1,0 } },
- { { 0x0030, "digit" }, { 0,0,0 } },
- { { 0x0039, "digit" }, { 0,0,0 } },
- { { 0x003A, "digit" }, { 0,1,0 } },
- { { 0x0040, "digit" }, { 0,1,0 } },
- { { 0x0041, "digit" }, { 0,1,0 } },
- { { 0x005A, "digit" }, { 0,1,0 } },
- { { 0x005B, "digit" }, { 0,1,0 } },
- { { 0x0060, "digit" }, { 0,1,0 } },
- { { 0x0061, "digit" }, { 0,1,0 } },
- { { 0x007A, "digit" }, { 0,1,0 } },
- { { 0x007B, "digit" }, { 0,1,0 } },
- { { 0x007E, "digit" }, { 0,1,0 } },
- { { 0x007F, "digit" }, { 0,1,0 } },
- { { 0x0080, "digit" }, { 0,1,0 } },
- { { 0x0000, "graph" }, { 0,1,0 } },
- { { 0x001F, "graph" }, { 0,1,0 } },
- { { 0x0020, "graph" }, { 0,1,0 } },
- { { 0x0021, "graph" }, { 0,0,0 } },
- { { 0x002F, "graph" }, { 0,0,0 } },
- { { 0x0030, "graph" }, { 0,0,0 } },
- { { 0x0039, "graph" }, { 0,0,0 } },
- { { 0x003A, "graph" }, { 0,0,0 } },
- { { 0x0040, "graph" }, { 0,0,0 } },
- { { 0x0041, "graph" }, { 0,0,0 } },
- { { 0x005A, "graph" }, { 0,0,0 } },
- { { 0x005B, "graph" }, { 0,0,0 } },
- { { 0x0060, "graph" }, { 0,0,0 } },
- { { 0x0061, "graph" }, { 0,0,0 } },
- { { 0x007A, "graph" }, { 0,0,0 } },
- { { 0x007B, "graph" }, { 0,0,0 } },
- { { 0x007E, "graph" }, { 0,0,0 } },
- { { 0x007F, "graph" }, { 0,1,0 } },
- { { 0x0080, "graph" }, { 0,1,0 } },
- { { 0x0000, "print" }, { 0,1,0 } },
- { { 0x001F, "print" }, { 0,1,0 } },
- { { 0x0020, "print" }, { 0,0,0 } },
- { { 0x0021, "print" }, { 0,0,0 } },
- { { 0x002F, "print" }, { 0,0,0 } },
- { { 0x0030, "print" }, { 0,0,0 } },
- { { 0x0039, "print" }, { 0,0,0 } },
- { { 0x003A, "print" }, { 0,0,0 } },
- { { 0x0040, "print" }, { 0,0,0 } },
- { { 0x0041, "print" }, { 0,0,0 } },
- { { 0x005A, "print" }, { 0,0,0 } },
- { { 0x005B, "print" }, { 0,0,0 } },
- { { 0x0060, "print" }, { 0,0,0 } },
- { { 0x0061, "print" }, { 0,0,0 } },
- { { 0x007A, "print" }, { 0,0,0 } },
- { { 0x007B, "print" }, { 0,0,0 } },
- { { 0x007E, "print" }, { 0,0,0 } },
- { { 0x007F, "print" }, { 0,1,0 } },
- { { 0x0080, "print" }, { 0,1,0 } },
- { { 0x0000, "punct" }, { 0,1,0 } },
- { { 0x001F, "punct" }, { 0,1,0 } },
- { { 0x0020, "punct" }, { 0,1,0 } },
- { { 0x0021, "punct" }, { 0,0,0 } },
- { { 0x002F, "punct" }, { 0,0,0 } },
- { { 0x0030, "punct" }, { 0,1,0 } },
- { { 0x0039, "punct" }, { 0,1,0 } },
- { { 0x003A, "punct" }, { 0,0,0 } },
- { { 0x0040, "punct" }, { 0,0,0 } },
- { { 0x0041, "punct" }, { 0,1,0 } },
- { { 0x005A, "punct" }, { 0,1,0 } },
- { { 0x005B, "punct" }, { 0,0,0 } },
- { { 0x0060, "punct" }, { 0,0,0 } },
- { { 0x0061, "punct" }, { 0,1,0 } },
- { { 0x007A, "punct" }, { 0,1,0 } },
- { { 0x007B, "punct" }, { 0,0,0 } },
- { { 0x007E, "punct" }, { 0,0,0 } },
- { { 0x007F, "punct" }, { 0,1,0 } },
- { { 0x0080, "punct" }, { 0,1,0 } },
- { { 0x0000, "space" }, { 0,1,0 } },
- { { 0x001F, "space" }, { 0,1,0 } },
- { { 0x0020, "space" }, { 0,0,0 } },
- { { 0x0021, "space" }, { 0,1,0 } },
- { { 0x002F, "space" }, { 0,1,0 } },
- { { 0x007E, "space" }, { 0,1,0 } },
- { { 0x007F, "space" }, { 0,1,0 } },
- { { 0x0080, "space" }, { 0,1,0 } },
- { { 0x0000, "lower" }, { 0,1,0 } },
- { { 0x001F, "lower" }, { 0,1,0 } },
- { { 0x0020, "lower" }, { 0,1,0 } },
- { { 0x0021, "lower" }, { 0,1,0 } },
- { { 0x002F, "lower" }, { 0,1,0 } },
- { { 0x0030, "lower" }, { 0,1,0 } },
- { { 0x0039, "lower" }, { 0,1,0 } },
- { { 0x003A, "lower" }, { 0,1,0 } },
- { { 0x0040, "lower" }, { 0,1,0 } },
- { { 0x0041, "lower" }, { 0,1,0 } },
- { { 0x005A, "lower" }, { 0,1,0 } },
- { { 0x005B, "lower" }, { 0,1,0 } },
- { { 0x0060, "lower" }, { 0,1,0 } },
- { { 0x0061, "lower" }, { 0,0,0 } },
- { { 0x007A, "lower" }, { 0,0,0 } },
- { { 0x007B, "lower" }, { 0,1,0 } },
- { { 0x007E, "lower" }, { 0,1,0 } },
- { { 0x007F, "lower" }, { 0,1,0 } },
- { { 0x0080, "lower" }, { 0,1,0 } },
- { { 0x0000, "upper" }, { 0,1,0 } },
- { { 0x001F, "upper" }, { 0,1,0 } },
- { { 0x0020, "upper" }, { 0,1,0 } },
- { { 0x0021, "upper" }, { 0,1,0 } },
- { { 0x002F, "upper" }, { 0,1,0 } },
- { { 0x0030, "upper" }, { 0,1,0 } },
- { { 0x0039, "upper" }, { 0,1,0 } },
- { { 0x003A, "upper" }, { 0,1,0 } },
- { { 0x0040, "upper" }, { 0,1,0 } },
- { { 0x0041, "upper" }, { 0,0,0 } },
- { { 0x005A, "upper" }, { 0,0,0 } },
- { { 0x005B, "upper" }, { 0,1,0 } },
- { { 0x0060, "upper" }, { 0,1,0 } },
- { { 0x0061, "upper" }, { 0,1,0 } },
- { { 0x007A, "upper" }, { 0,1,0 } },
- { { 0x007B, "upper" }, { 0,1,0 } },
- { { 0x007E, "upper" }, { 0,1,0 } },
- { { 0x007F, "upper" }, { 0,1,0 } },
- { { 0x0080, "upper" }, { 0,1,0 } },
- { { 0x0000, "xdigit" }, { 0,1,0 } },
- { { 0x001F, "xdigit" }, { 0,1,0 } },
- { { 0x0020, "xdigit" }, { 0,1,0 } },
- { { 0x0021, "xdigit" }, { 0,1,0 } },
- { { 0x002F, "xdigit" }, { 0,1,0 } },
- { { 0x0030, "xdigit" }, { 0,0,0 } },
- { { 0x0039, "xdigit" }, { 0,0,0 } },
- { { 0x003A, "xdigit" }, { 0,1,0 } },
- { { 0x0040, "xdigit" }, { 0,1,0 } },
- { { 0x0041, "xdigit" }, { 0,0,0 } },
- { { 0x005A, "xdigit" }, { 0,1,0 } },
- { { 0x005B, "xdigit" }, { 0,1,0 } },
- { { 0x0060, "xdigit" }, { 0,1,0 } },
- { { 0x0061, "xdigit" }, { 0,0,0 } },
- { { 0x007A, "xdigit" }, { 0,1,0 } },
- { { 0x007B, "xdigit" }, { 0,1,0 } },
- { { 0x007E, "xdigit" }, { 0,1,0 } },
- { { 0x007F, "xdigit" }, { 0,1,0 } },
- { { 0x0080, "xdigit" }, { 0,1,0 } },
- { { 0x0061, "xxxxxx" }, { 0,1,0 } },
- { .is_last = 1 }
- }
- },
- {
-#if 0
- { Tiswctype, TST_LOC_eucJP },
-#else
- { Tiswctype, TST_LOC_ja_UTF8 },
-#endif
- {
-#ifdef SHOJI_IS_RIGHT
- { { 0x3029, "alnum" }, { 0,1,0 } }, /* Hangzhou NUM9 */
-#else
- { { 0x3029, "alnum" }, { 0,0,0 } }, /* Hangzhou NUM9 */
-#endif
- { { 0xFE4F, "alnum" }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0xFF19, "alnum" }, { 0,0,0 } }, /* FULL 9 */
- { { 0xFF20, "alnum" }, { 0,1,0 } }, /* FULL @ */
- { { 0xFF3A, "alnum" }, { 0,0,0 } }, /* FULL Z */
- { { 0xFF40, "alnum" }, { 0,1,0 } }, /* FULL GRAVE ACC. */
- { { 0xFF5A, "alnum" }, { 0,0,0 } }, /* FULL z */
-#ifdef SHOJI_IS_RIGHT
- { { 0xFF71, "alnum" }, { 0,1,0 } }, /* HALF KATA A */
-#else
- { { 0xFF71, "alnum" }, { 0,0,0 } }, /* HALF KATA A */
-#endif
-#ifdef SHOJI_IS_RIGHT
- { { 0x3029, "alpha" }, { 0,1,0 } }, /* Hangzhou NUM9 */
-#else
- { { 0x3029, "alpha" }, { 0,0,0 } }, /* Hangzhou NUM9 */
-#endif
- { { 0xFE4F, "alpha" }, { 0,1,0 } }, /* CJK UNI.IDEO. */
-#ifdef SHOJI_IS_RIGHT
- { { 0xFF19, "alpha" }, { 0,1,0 } }, /* FULL 9 */
-#else
- { { 0xFF19, "alpha" }, { 0,0,0 } }, /* FULL 9 */
-#endif
- { { 0xFF20, "alpha" }, { 0,1,0 } }, /* FULL @ */
- { { 0xFF3A, "alpha" }, { 0,0,0 } }, /* FULL Z */
- { { 0xFF40, "alpha" }, { 0,1,0 } }, /* FULL GRAVE ACC. */
- { { 0xFF5A, "alpha" }, { 0,0,0 } }, /* FULL z */
-#ifdef SHOJI_IS_RIGHT
- { { 0xFF71, "alpha" }, { 0,1,0 } }, /* HALF KATA A */
-#else
- { { 0xFF71, "alpha" }, { 0,0,0 } }, /* HALF KATA A */
-#endif
- { { 0x0080, "cntrl" }, { 0,0,0 } }, /* CNTRL */
- { { 0x3000, "cntrl" }, { 0,1,0 } }, /* IDEO. SPACE */
- { { 0x3029, "digit" }, { 0,1,0 } }, /* Hangzhou NUM9 */
- { { 0x32CB, "digit" }, { 0,1,0 } }, /* IDEO.TEL.SYM.DEC12 */
- /* 21: */
- { { 0x33FE, "digit" }, { 0,1,0 } }, /* CJK IDEO.TEL.31th */
- { { 0xFF19, "digit" }, { 0,1,0 } }, /* FULL 9 */
- { { 0x3000, "graph" }, { 0,1,0 } }, /* IDEO. SPACE */
-#ifdef SHOJI_IS_RIGHT
- { { 0x3020, "graph" }, { 0,1,0 } }, /* POSTAL MARK FACE */
- { { 0x3029, "graph" }, { 0,1,0 } }, /* Hangzhou NUM9 */
- { { 0x302F, "graph" }, { 0,1,0 } }, /* Diacritics(Hangul) */
- { { 0x3037, "graph" }, { 0,1,0 } }, /* Separator Symbol */
- { { 0x303F, "graph" }, { 0,1,0 } }, /* IDEO. HALF SPACE */
-#else
- { { 0x3020, "graph" }, { 0,0,0 } }, /* POSTAL MARK FACE */
- { { 0x3029, "graph" }, { 0,0,0 } }, /* Hangzhou NUM9 */
- { { 0x302F, "graph" }, { 0,0,0 } }, /* Diacritics(Hangul) */
- { { 0x3037, "graph" }, { 0,0,0 } }, /* Separator Symbol */
- { { 0x303F, "graph" }, { 0,0,0 } }, /* IDEO. HALF SPACE */
-#endif
- /* 29: */
- { { 0x3041, "graph" }, { 0,0,0 } }, /* HIRAGANA a */
- /* Non jis: */
-#ifdef SHOJI_IS_RIGHT
- { { 0x3094, "graph" }, { 0,1,0 } }, /* HIRAGANA u" */
-#else
- { { 0x3094, "graph" }, { 0,0,0 } }, /* HIRAGANA u" */
-#endif
- /* Non jis: */
-#ifdef SHOJI_IS_RIGHT
- { { 0x3099, "graph" }, { 0,1,0 } }, /* SOUND MARK */
-#else
- { { 0x3099, "graph" }, { 0,0,0 } }, /* SOUND MARK */
-#endif
- { { 0x309E, "graph" }, { 0,0,0 } }, /* ITERATION MARK */
- /* 33: */
- { { 0x30A1, "graph" }, { 0,0,0 } }, /* KATAKANA a */
- /* Non jis: */
-#ifdef SHOJI_IS_RIGHT
- { { 0x30FA, "graph" }, { 0,1,0 } }, /* KATAKANA wo" */
-#else
- { { 0x30FA, "graph" }, { 0,0,0 } }, /* KATAKANA wo" */
-#endif
- { { 0x30FB, "graph" }, { 0,0,0 } }, /* KATAKANA MID.DOT */
- { { 0x30FE, "graph" }, { 0,0,0 } }, /* KATAKANA ITERATION */
-#ifdef SHOJI_IS_RIGHT
- { { 0x3191, "graph" }, { 0,1,0 } }, /* KANBUN REV.MARK */
- { { 0x3243, "graph" }, { 0,1,0 } }, /* IDEO. MARK (reach) */
- { { 0x32CB, "graph" }, { 0,1,0 } }, /* IDEO.TEL.SYM.DEC12 */
- { { 0x32FE, "graph" }, { 0,1,0 } }, /* MARU KATAKANA wo */
- { { 0x33FE, "graph" }, { 0,1,0 } }, /* CJK IDEO.TEL.31th */
-#else
- { { 0x3191, "graph" }, { 0,0,0 } }, /* KANBUN REV.MARK */
- { { 0x3243, "graph" }, { 0,0,0 } }, /* IDEO. MARK (reach) */
- { { 0x32CB, "graph" }, { 0,0,0 } }, /* IDEO.TEL.SYM.DEC12 */
- { { 0x32FE, "graph" }, { 0,0,0 } }, /* MARU KATAKANA wo */
- { { 0x33FE, "graph" }, { 0,0,0 } }, /* CJK IDEO.TEL.31th */
-#endif
- { { 0x4E00, "graph" }, { 0,0,0 } }, /* CJK UNI.IDEO. */
- { { 0x4E05, "graph" }, { 0,0,0 } }, /* CJK UNI.IDEO. */
-#ifdef SHOJI_IS_RIGHT
- { { 0x4E06, "graph" }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
-#else
- { { 0x4E06, "graph" }, { 0,0,0 } }, /* CJK UNI.IDEO.NON-J */
-#endif
- { { 0x4E07, "graph" }, { 0,0,0 } }, /* CJK UNI.IDEO. */
- { { 0x4FFF, "graph" }, { 0,0,0 } }, /* CJK UNI.IDEO. */
- { { 0x9000, "graph" }, { 0,0,0 } }, /* CJK UNI.IDEO. */
- { { 0x9006, "graph" }, { 0,0,0 } }, /* CJK UNI.IDEO. */
-#ifdef SHOJI_IS_RIGHT
- { { 0x9007, "graph" }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x9FA4, "graph" }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
-#else
- { { 0x9007, "graph" }, { 0,0,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x9FA4, "graph" }, { 0,0,0 } }, /* CJK UNI.IDEO.NON-J */
-#endif
- /* 51 */
- { { 0x9FA5, "graph" }, { 0,0,0 } }, /* CJK UNI.IDEO. */
- /* Non jis: */
-#ifdef SHOJI_IS_RIGHT
- { { 0xFE4F, "graph" }, { 0,1,0 } }, /* CJK UNI.IDEO. */
-#else
- { { 0xFE4F, "graph" }, { 0,0,0 } }, /* CJK UNI.IDEO. */
-#endif
- { { 0xFF0F, "graph" }, { 0,0,0 } }, /* FULL SLASH */
- { { 0xFF19, "graph" }, { 0,0,0 } }, /* FULL 9 */
- { { 0xFF20, "graph" }, { 0,0,0 } }, /* FULL @ */
- { { 0xFF3A, "graph" }, { 0,0,0 } }, /* FULL Z */
- { { 0xFF40, "graph" }, { 0,0,0 } }, /* FULL GRAVE ACC. */
- { { 0xFF5A, "graph" }, { 0,0,0 } }, /* FULL z */
- { { 0xFF5E, "graph" }, { 0,0,0 } }, /* FULL ~ (tilde) */
- { { 0xFF61, "graph" }, { 0,0,0 } }, /* HALF IDEO.STOP. . */
- { { 0xFF65, "graph" }, { 0,0,0 } }, /* HALF KATA MID.DOT */
- { { 0xFF66, "graph" }, { 0,0,0 } }, /* HALF KATA WO */
- { { 0xFF6F, "graph" }, { 0,0,0 } }, /* HALF KATA tu */
- { { 0xFF70, "graph" }, { 0,0,0 } }, /* HALF KATA PL - */
- { { 0xFF71, "graph" }, { 0,0,0 } }, /* HALF KATA A */
- { { 0xFF9E, "graph" }, { 0,0,0 } }, /* HALF KATA MI */
- { { 0x3000, "print" }, { 0,0,0 } }, /* IDEO. SPACE */
-#ifdef SHOJI_IS_RIGHT
- { { 0x3020, "print" }, { 0,1,0 } }, /* POSTAL MARK FACE */
- { { 0x3029, "print" }, { 0,1,0 } }, /* Hangzhou NUM9 */
- { { 0x302F, "print" }, { 0,1,0 } }, /* Diacritics(Hangul) */
- { { 0x3037, "print" }, { 0,1,0 } }, /* Separator Symbol */
-#else
- { { 0x3020, "print" }, { 0,0,0 } }, /* POSTAL MARK FACE */
- { { 0x3029, "print" }, { 0,0,0 } }, /* Hangzhou NUM9 */
- { { 0x302F, "print" }, { 0,0,0 } }, /* Diacritics(Hangul) */
- { { 0x3037, "print" }, { 0,0,0 } }, /* Separator Symbol */
-#endif
- { { 0x4E00, "print" }, { 0,0,0 } }, /* CJK UNI.IDEO. */
- { { 0x4E05, "print" }, { 0,0,0 } }, /* CJK UNI.IDEO. */
-#ifdef SHOJI_IS_RIGHT
- { { 0x4E06, "print" }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
-#else
- { { 0x4E06, "print" }, { 0,0,0 } }, /* CJK UNI.IDEO.NON-J */
-#endif
- { { 0x4E07, "print" }, { 0,0,0 } }, /* CJK UNI.IDEO. */
- { { 0x4FFF, "print" }, { 0,0,0 } }, /* CJK UNI.IDEO. */
- { { 0x9000, "print" }, { 0,0,0 } }, /* CJK UNI.IDEO. */
- { { 0x9006, "print" }, { 0,0,0 } }, /* CJK UNI.IDEO. */
-#ifdef SHOJI_IS_RIGHT
- { { 0x9007, "print" }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x9FA4, "print" }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
-#else
- { { 0x9007, "print" }, { 0,0,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x9FA4, "print" }, { 0,0,0 } }, /* CJK UNI.IDEO.NON-J */
-#endif
- /* 81: */
- { { 0x9FA5, "print" }, { 0,0,0 } }, /* CJK UNI.IDEO. */
- /* Non jis: */
-#ifdef SHOJI_IS_RIGHT
- { { 0xFE4F, "print" }, { 0,1,0 } }, /* CJK UNI.IDEO. */
-#else
- { { 0xFE4F, "print" }, { 0,0,0 } }, /* CJK UNI.IDEO. */
-#endif
- { { 0x3000, "punct" }, { 0,1,0 } }, /* IDEO. SPACE */
-#ifdef SHOJI_IS_RIGHT
- { { 0x3020, "punct" }, { 0,1,0 } }, /* POSTAL MARK FACE */
- { { 0x302F, "punct" }, { 0,1,0 } }, /* Diacritics(Hangul) */
- { { 0x3037, "punct" }, { 0,1,0 } }, /* FEED Separator */
- { { 0x303F, "punct" }, { 0,1,0 } }, /* IDEO. HALF SPACE */
-#else
- { { 0x3020, "punct" }, { 0,0,0 } }, /* POSTAL MARK FACE */
- { { 0x302F, "punct" }, { 0,0,0 } }, /* Diacritics(Hangul) */
- { { 0x3037, "punct" }, { 0,0,0 } }, /* FEED Separator */
- { { 0x303F, "punct" }, { 0,0,0 } }, /* IDEO. HALF SPACE */
-#endif
- { { 0x3041, "punct" }, { 0,1,0 } }, /* HIRAGANA a */
- { { 0x3094, "punct" }, { 0,1,0 } }, /* HIRAGANA u" */
- /* 90: */
-#ifdef SHOJI_IS_RIGHT
- { { 0x3099, "punct" }, { 0,1,0 } }, /* SOUND MARK */
-#else
- { { 0x3099, "punct" }, { 0,0,0 } }, /* SOUND MARK */
-#endif
- { { 0x309E, "punct" }, { 0,1,0 } }, /* ITERATION MARK */
- { { 0x30A1, "punct" }, { 0,1,0 } }, /* KATAKANA a */
- { { 0x30FA, "punct" }, { 0,1,0 } }, /* KATAKANA wo" */
- { { 0x30FB, "punct" }, { 0,0,0 } }, /* KATAKANA MID.DOT */
- /* 95: */
- { { 0x30FE, "punct" }, { 0,1,0 } }, /* KATAKANA ITERATION */
-#ifdef SHOJI_IS_RIGHT
- { { 0x3191, "punct" }, { 0,1,0 } }, /* KANBUN REV.MARK */
- { { 0x3243, "punct" }, { 0,1,0 } }, /* IDEO. MARK (reach) */
- { { 0x32CB, "punct" }, { 0,1,0 } }, /* IDEO.TEL.SYM.DEC12 */
- { { 0x32FE, "punct" }, { 0,1,0 } }, /* MARU KATAKANA wo */
- { { 0x33FE, "punct" }, { 0,1,0 } }, /* CJK IDEO.TEL.31th */
-#else
- { { 0x3191, "punct" }, { 0,0,0 } }, /* KANBUN REV.MARK */
- { { 0x3243, "punct" }, { 0,0,0 } }, /* IDEO. MARK (reach) */
- { { 0x32CB, "punct" }, { 0,0,0 } }, /* IDEO.TEL.SYM.DEC12 */
- { { 0x32FE, "punct" }, { 0,0,0 } }, /* MARU KATAKANA wo */
- { { 0x33FE, "punct" }, { 0,0,0 } }, /* CJK IDEO.TEL.31th */
-#endif
- { { 0x9007, "punct" }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x9FA4, "punct" }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x9FA5, "punct" }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0xFF0F, "punct" }, { 0,0,0 } }, /* FULL SLASH */
- /* 105: */
- { { 0xFF19, "punct" }, { 0,1,0 } }, /* FULL 9 */
- { { 0xFF20, "punct" }, { 0,0,0 } }, /* FULL @ */
- { { 0xFF3A, "punct" }, { 0,1,0 } }, /* FULL Z */
- { { 0xFF40, "punct" }, { 0,0,0 } }, /* FULL GRAVE ACC. */
- { { 0xFF5A, "punct" }, { 0,1,0 } }, /* FULL z */
- { { 0xFF5E, "punct" }, { 0,0,0 } }, /* FULL ~ (tilde) */
- { { 0xFF61, "punct" }, { 0,0,0 } }, /* HALF IDEO.STOP. . */
- { { 0xFF65, "punct" }, { 0,0,0 } }, /* HALF KATA MID.DOT */
- { { 0xFF70, "punct" }, { 0,1,0 } }, /* HALF KATA PL - */
- { { 0xFF9E, "punct" }, { 0,1,0 } }, /* HALF KATA MI */
- /* 115: */
- { { 0x3000, "space" }, { 0,0,0 } }, /* IDEO. SPACE */
- { { 0x303F, "space" }, { 0,1,0 } }, /* IDEO. HALF SPACE */
- { { 0x3041, "lower" }, { 0,1,0 } }, /* HIRAGANA a */
- { { 0x3094, "lower" }, { 0,1,0 } }, /* HIRAGANA u" */
- { { 0x30A1, "lower" }, { 0,1,0 } }, /* KATAKANA a */
- { { 0x30FA, "lower" }, { 0,1,0 } }, /* KATAKANA wo" */
- { { 0xFF66, "lower" }, { 0,1,0 } }, /* HALF KATA WO */
- { { 0xFF6F, "lower" }, { 0,1,0 } }, /* HALF KATA tu */
- { { 0xFF70, "lower" }, { 0,1,0 } }, /* HALF KATA PL - */
- /* 124: */
- { { 0xFF71, "lower" }, { 0,1,0 } }, /* HALF KATA A */
- { { 0xFF9E, "lower" }, { 0,1,0 } }, /* HALF KATA MI */
- { { 0xFF71, "upper" }, { 0,1,0 } }, /* HALF KATA A */
- { { 0xFF19, "xdigit" }, { 0,1,0 } }, /* FULL 9 */
- { { 0x3000, "jspace" }, { 0,0,0 } }, /* IDEO. SPACE */
- /* Non jis? */
- { { 0x303F, "jspace" }, { 0,1,0 } }, /* IDEO.HALF SPACE */
- { { 0xFF19, "jdigit" }, { 0,0,0 } }, /* FULL 9 */
- { { 0x3041, "jhira" }, { 0,0,0 } }, /* HIRAGANA a */
- { { 0x3094, "jhira" }, { 0,1,0 } }, /* HIRAGANA u" */
- { { 0x30A1, "jkata" }, { 0,0,0 } }, /* KATAKANA a */
- /* Non jis: */
- { { 0x30FA, "jkata" }, { 0,1,0 } }, /* KATAKANA wo" */
- { { 0xFF66, "jkata" }, { 0,0,0 } }, /* HALF KATA WO */
- { { 0xFF6F, "jkata" }, { 0,0,0 } }, /* HALF KATA tu */
- { { 0x4E05, "jkanji" }, { 0,0,0 } }, /* CJK UNI.IDEO. */
-#ifdef SHOJI_IS_RIGHT
- /* <NO_WAIVER>: */
- { { 0x4E06, "jkanji" }, { 0,1,1 } }, /* CJK UNI.IDEO.NON-J */
-#else
- /* XXX This character does not exist in EUC-JP. */
- { { 0x4E06, "jkanji" }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
-#endif
- { { 0x4E07, "jkanji" }, { 0,0,0 } }, /* CJK UNI.IDEO. */
- { .is_last = 1 }
- }
- },
- {
- { Tiswctype, TST_LOC_end }
- }
-};
-
-
-/* dat_isw-funcs.c */
diff --git a/test/locale-mbwc/dat_iswdigit.c b/test/locale-mbwc/dat_iswdigit.c
deleted file mode 100644
index 70ca544..0000000
--- a/test/locale-mbwc/dat_iswdigit.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_iswdigit.c
- *
- * ISW*: int iswdigit (wint_t wc);
- */
-
-
-#include "dat_isw-funcs.h"
-
-
-TST_ISW_LOC (DIGIT, digit) = {
-
- { TST_ISW_REC (de, digit)
- {
- { { 0x0080 }, { 0,1,0 } }, /* CTRL */
- { { 0x009F }, { 0,1,0 } }, /* CTRL */
- { { 0x00A0 }, { 0,1,0 } }, /* NB SPACE */
- { { 0x00A1 }, { 0,1,0 } }, /* UD ! */
- { { 0x00B0 }, { 0,1,0 } }, /* Degree */
- { { 0x00B1 }, { 0,1,0 } }, /* +- sign */
- { { 0x00B2 }, { 0,1,0 } }, /* SUP 2 */
- { { 0x00B3 }, { 0,1,0 } }, /* SUP 3 */
- { { 0x00B4 }, { 0,1,0 } }, /* ACUTE */
- { { 0x00B8 }, { 0,1,0 } }, /* CEDILLA */
- { { 0x00B9 }, { 0,1,0 } }, /* SUP 1 */
- { { 0x00BB }, { 0,1,0 } }, /* >> */
- { { 0x00BC }, { 0,1,0 } }, /* 1/4 */
- { { 0x00BD }, { 0,1,0 } }, /* 1/2 */
- { { 0x00BE }, { 0,1,0 } }, /* 3/4 */
- { { 0x00BF }, { 0,1,0 } }, /* UD ? */
- { { 0x00C0 }, { 0,1,0 } }, /* A Grave */
- { { 0x00D6 }, { 0,1,0 } }, /* O dia */
- { { 0x00D7 }, { 0,1,0 } }, /* multipl. */
- { { 0x00D8 }, { 0,1,0 } }, /* O stroke */
- { { 0x00DF }, { 0,1,0 } }, /* small Sh */
- { { 0x00E0 }, { 0,1,0 } }, /* a grave */
- { { 0x00F6 }, { 0,1,0 } }, /* o dia */
- { { 0x00F7 }, { 0,1,0 } }, /* division */
- { { 0x00F8 }, { 0,1,0 } }, /* o stroke */
- { { 0x00FF }, { 0,1,0 } }, /* y dia */
- { .is_last = 1 } /* Last element. */
- }
- },
- { TST_ISW_REC (enUS, digit)
- {
- { { WEOF }, { 0,1,0 } },
- { { 0x0000 }, { 0,1,0 } },
- { { 0x001F }, { 0,1,0 } },
- { { 0x0020 }, { 0,1,0 } },
- { { 0x0021 }, { 0,1,0 } },
- { { 0x002F }, { 0,1,0 } },
- { { 0x0030 }, { 0,0,0 } },
- { { 0x0039 }, { 0,0,0 } },
- { { 0x003A }, { 0,1,0 } },
- { { 0x0040 }, { 0,1,0 } },
- { { 0x0041 }, { 0,1,0 } },
- { { 0x005A }, { 0,1,0 } },
- { { 0x005B }, { 0,1,0 } },
- { { 0x0060 }, { 0,1,0 } },
- { { 0x0061 }, { 0,1,0 } },
- { { 0x007A }, { 0,1,0 } },
- { { 0x007B }, { 0,1,0 } },
- { { 0x007E }, { 0,1,0 } },
- { { 0x007F }, { 0,1,0 } },
- { { 0x0080 }, { 0,1,0 } },
- { .is_last = 1 } /* Last element. */
- }
- },
-#if 0
- { TST_ISW_REC (eucJP, digit)
-#else
- { TST_ISW_REC (ja_UTF8, digit)
-#endif
- {
- { { 0x3000 }, { 0,1,0 } }, /* IDEO. SPACE */
- { { 0x3020 }, { 0,1,0 } }, /* POSTAL MARK FACE */
- { { 0x3029 }, { 0,1,0 } }, /* Hangzhou NUM9 */
- { { 0x302F }, { 0,1,0 } }, /* Diacritics(Hangul) */
- { { 0x3037 }, { 0,1,0 } }, /* Separator Symbol */
- { { 0x303F }, { 0,1,0 } }, /* IDEO. HALF SPACE */
- { { 0x3041 }, { 0,1,0 } }, /* HIRAGANA a */
- { { 0x3094 }, { 0,1,0 } }, /* HIRAGANA u" */
- { { 0x3099 }, { 0,1,0 } }, /* SOUND MARK */
- { { 0x309E }, { 0,1,0 } }, /* ITERATION MARK */
- { { 0x30A1 }, { 0,1,0 } }, /* KATAKANA a */
- { { 0x30FA }, { 0,1,0 } }, /* KATAKANA wo" */
- { { 0x30FB }, { 0,1,0 } }, /* KATAKANA MID.DOT */
- { { 0x30FE }, { 0,1,0 } }, /* KATAKANA ITERATION */
- { { 0x3191 }, { 0,1,0 } }, /* KANBUN REV.MARK */
- { { 0x3243 }, { 0,1,0 } }, /* IDEO. MARK (reach) */
- { { 0x32CB }, { 0,1,0 } }, /* IDEO.TEL.SYM.DEC12 */
- { { 0x32FE }, { 0,1,0 } }, /* MARU KATAKANA wo */
- { { 0x33FE }, { 0,1,0 } }, /* CJK IDEO.TEL.31th */
- { { 0x4E00 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x4E05 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x4E06 }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x4E07 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x4FFF }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x9000 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x9006 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x9007 }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x9FA4 }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x9FA5 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0xFE4F }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0xFF0F }, { 0,1,0 } }, /* FULL SLASH */
- { { 0xFF19 }, { 0,1,0 } }, /* FULL 9 */
- { { 0xFF20 }, { 0,1,0 } }, /* FULL @ */
- { { 0xFF3A }, { 0,1,0 } }, /* FULL Z */
- { { 0xFF40 }, { 0,1,0 } }, /* FULL GRAVE ACC. */
- { { 0xFF5A }, { 0,1,0 } }, /* FULL z */
- { { 0xFF5E }, { 0,1,0 } }, /* FULL ~ (tilde) */
- { { 0xFF61 }, { 0,1,0 } }, /* HALF IDEO.STOP. . */
- { { 0xFF65 }, { 0,1,0 } }, /* HALF KATA MID.DOT */
- { { 0xFF66 }, { 0,1,0 } }, /* HALF KATA WO */
- { { 0xFF6F }, { 0,1,0 } }, /* HALF KATA tu */
- { { 0xFF70 }, { 0,1,0 } }, /* HALF KATA PL - */
- { { 0xFF71 }, { 0,1,0 } }, /* HALF KATA A */
- { { 0xFF9E }, { 0,1,0 } }, /* HALF KATA MI */
- { .is_last = 1 } /* Last element. */
- }
- },
- { TST_ISW_REC (end, digit) }
-};
diff --git a/test/locale-mbwc/dat_iswgraph.c b/test/locale-mbwc/dat_iswgraph.c
deleted file mode 100644
index 80cacb2..0000000
--- a/test/locale-mbwc/dat_iswgraph.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_iswgraph.c
- *
- * ISW*: int iswgraph (wint_t wc);
- */
-
-
-#include "dat_isw-funcs.h"
-
-
-TST_ISW_LOC (GRAPH, graph) = {
-
- { TST_ISW_REC (de, graph)
- {
- { { 0x0080 }, { 0,1,0 } }, /* CTRL */
- { { 0x009F }, { 0,1,0 } }, /* CTRL */
-#ifdef SHOJI_IS_RIGHT
- { { 0x00A0 }, { 0,1,0 } }, /* NB SPACE */
-#else
- { { 0x00A0 }, { 0,0,0 } }, /* NB SPACE */
-#endif
- { { 0x00A1 }, { 0,0,0 } }, /* UD ! */
- { { 0x00B0 }, { 0,0,0 } }, /* Degree */
- { { 0x00B1 }, { 0,0,0 } }, /* +- sign */
- { { 0x00B2 }, { 0,0,0 } }, /* SUP 2 */
- { { 0x00B3 }, { 0,0,0 } }, /* SUP 3 */
- { { 0x00B4 }, { 0,0,0 } }, /* ACUTE */
- { { 0x00B8 }, { 0,0,0 } }, /* CEDILLA */
- { { 0x00B9 }, { 0,0,0 } }, /* SUP 1 */
- { { 0x00BB }, { 0,0,0 } }, /* >> */
- { { 0x00BC }, { 0,0,0 } }, /* 1/4 */
- { { 0x00BD }, { 0,0,0 } }, /* 1/2 */
- { { 0x00BE }, { 0,0,0 } }, /* 3/4 */
- { { 0x00BF }, { 0,0,0 } }, /* UD ? */
- { { 0x00C0 }, { 0,0,0 } }, /* A Grave */
- { { 0x00D6 }, { 0,0,0 } }, /* O dia */
- { { 0x00D7 }, { 0,0,0 } }, /* multipl. */
- { { 0x00D8 }, { 0,0,0 } }, /* O stroke */
- { { 0x00DF }, { 0,0,0 } }, /* small Sh */
- { { 0x00E0 }, { 0,0,0 } }, /* a grave */
- { { 0x00F6 }, { 0,0,0 } }, /* o dia */
- { { 0x00F7 }, { 0,0,0 } }, /* division */
- { { 0x00F8 }, { 0,0,0 } }, /* o stroke */
- { { 0x00FF }, { 0,0,0 } }, /* y dia */
- { .is_last = 1 } /* Last element. */
- }
- },
- { TST_ISW_REC (enUS, graph)
- {
- { { WEOF }, { 0,1,0 } },
- { { 0x0000 }, { 0,1,0 } },
- { { 0x001F }, { 0,1,0 } },
- { { 0x0020 }, { 0,1,0 } },
- { { 0x0021 }, { 0,0,0 } },
- { { 0x002F }, { 0,0,0 } },
- { { 0x0030 }, { 0,0,0 } },
- { { 0x0039 }, { 0,0,0 } },
- { { 0x003A }, { 0,0,0 } },
- { { 0x0040 }, { 0,0,0 } },
- { { 0x0041 }, { 0,0,0 } },
- { { 0x005A }, { 0,0,0 } },
- { { 0x005B }, { 0,0,0 } },
- { { 0x0060 }, { 0,0,0 } },
- { { 0x0061 }, { 0,0,0 } },
- { { 0x007A }, { 0,0,0 } },
- { { 0x007B }, { 0,0,0 } },
- { { 0x007E }, { 0,0,0 } },
- { { 0x007F }, { 0,1,0 } },
- { { 0x0080 }, { 0,1,0 } }, /* 20 */
- { .is_last = 1 } /* Last element. */
- }
- },
-#if 0
- { TST_ISW_REC( eucJP, graph )
-#else
- { TST_ISW_REC( ja_UTF8, graph )
-#endif
- {
- { { 0x3000 }, { 0,1,0 } }, /* IDEO. SPACE */
-#ifdef SHOJI_IS_RIGHT
- { { 0x3020 }, { 0,1,0 } }, /* POSTAL MARK FACE */
- { { 0x3029 }, { 0,1,0 } }, /* Hangzhou NUM9 */
- { { 0x302F }, { 0,1,0 } }, /* Diacritics(Hangul) */
- { { 0x3037 }, { 0,1,0 } }, /* Separator Symbol */
- { { 0x303F }, { 0,1,0 } }, /* IDEO. HALF SPACE */
-#else
- { { 0x3020 }, { 0,0,0 } }, /* POSTAL MARK FACE */
- { { 0x3029 }, { 0,0,0 } }, /* Hangzhou NUM9 */
- { { 0x302F }, { 0,0,0 } }, /* Diacritics(Hangul) */
- { { 0x3037 }, { 0,0,0 } }, /* Separator Symbol */
- { { 0x303F }, { 0,0,0 } }, /* IDEO. HALF SPACE */
-#endif
- { { 0x3041 }, { 0,0,0 } }, /* HIRAGANA a */
-#ifdef SHOJI_IS_RIGHT
- { { 0x3094 }, { 0,1,0 } }, /* HIRAGANA u" */ /* non jis */
- { { 0x3099 }, { 0,1,0 } }, /* SOUND MARK */
-#else
- { { 0x3094 }, { 0,0,0 } }, /* HIRAGANA u" */ /* non jis */
- { { 0x3099 }, { 0,0,0 } }, /* SOUND MARK */
-#endif
- { { 0x309E }, { 0,0,0 } }, /* ITERATION MARK */ /* 10 */
- { { 0x30A1 }, { 0,0,0 } }, /* KATAKANA a */
-#ifdef SHOJI_IS_RIGHT
- { { 0x30FA }, { 0,1,0 } }, /* KATAKANA wo" */ /* non jis */
-#else
- { { 0x30FA }, { 0,0,0 } }, /* KATAKANA wo" */ /* non jis */
-#endif
- { { 0x30FB }, { 0,0,0 } }, /* KATAKANA MID.DOT */
- { { 0x30FE }, { 0,0,0 } }, /* KATAKANA ITERATION */
-#ifdef SHOJI_IS_RIGHT
- { { 0x3191 }, { 0,1,0 } }, /* KANBUN REV.MARK */
- { { 0x3243 }, { 0,1,0 } }, /* IDEO. MARK (reach) */
- { { 0x32CB }, { 0,1,0 } }, /* IDEO.TEL.SYM.DEC12 */
- { { 0x32FE }, { 0,1,0 } }, /* MARU KATAKANA wo */
- { { 0x33FE }, { 0,1,0 } }, /* CJK IDEO.TEL.31th */
-#else
- { { 0x3191 }, { 0,0,0 } }, /* KANBUN REV.MARK */
- { { 0x3243 }, { 0,0,0 } }, /* IDEO. MARK (reach) */
- { { 0x32CB }, { 0,0,0 } }, /* IDEO.TEL.SYM.DEC12 */
- { { 0x32FE }, { 0,0,0 } }, /* MARU KATAKANA wo */
- { { 0x33FE }, { 0,0,0 } }, /* CJK IDEO.TEL.31th */
-#endif
- { { 0x4E00 }, { 0,0,0 } }, /* CJK UNI.IDEO. */ /* 20 */
- { { 0x4E05 }, { 0,0,0 } }, /* CJK UNI.IDEO. */
-#ifdef SHOJI_IS_RIGHT
- { { 0x4E06 }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
-#else
- { { 0x4E06 }, { 0,0,0 } }, /* CJK UNI.IDEO.NON-J */
-#endif
- { { 0x4E07 }, { 0,0,0 } }, /* CJK UNI.IDEO. */
- { { 0x4FFF }, { 0,0,0 } }, /* CJK UNI.IDEO. */
- { { 0x9000 }, { 0,0,0 } }, /* CJK UNI.IDEO. */
- { { 0x9006 }, { 0,0,0 } }, /* CJK UNI.IDEO. */
-#ifdef SHOJI_IS_RIGHT
- { { 0x9007 }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x9FA4 }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
-#else
- { { 0x9007 }, { 0,0,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x9FA4 }, { 0,0,0 } }, /* CJK UNI.IDEO.NON-J */
-#endif
- { { 0x9FA5 }, { 0,0,0 } }, /* CJK UNI.IDEO. */
-#ifdef SHOJI_IS_RIGHT
- { { 0xFE4F }, { 0,1,0 } }, /* CJK Wave Low Line */ /* 30 */
-#else
- { { 0xFE4F }, { 0,0,0 } }, /* CJK Wave Low Line */ /* 30 */
-#endif
- { { 0xFF0F }, { 0,0,0 } }, /* FULL SLASH */
- { { 0xFF19 }, { 0,0,0 } }, /* FULL 9 */
- { { 0xFF20 }, { 0,0,0 } }, /* FULL @ */
- { { 0xFF3A }, { 0,0,0 } }, /* FULL Z */
- { { 0xFF40 }, { 0,0,0 } }, /* FULL GRAVE ACC. */
- { { 0xFF5A }, { 0,0,0 } }, /* FULL z */
- { { 0xFF5E }, { 0,0,0 } }, /* FULL ~ (tilde) */
- { { 0xFF61 }, { 0,0,0 } }, /* HALF IDEO.STOP. . */
- { { 0xFF65 }, { 0,0,0 } }, /* HALF KATA MID.DOT */
- { { 0xFF66 }, { 0,0,0 } }, /* HALF KATA WO */
- { { 0xFF6F }, { 0,0,0 } }, /* HALF KATA tu */
- { { 0xFF70 }, { 0,0,0 } }, /* HALF KATA PL - */
- { { 0xFF71 }, { 0,0,0 } }, /* HALF KATA A */
- { { 0xFF9E }, { 0,0,0 } }, /* HALF KATA MI */
- { .is_last = 1 } /* Last element. */
- }
- },
- { TST_ISW_REC (end, graph) }
-};
diff --git a/test/locale-mbwc/dat_iswlower.c b/test/locale-mbwc/dat_iswlower.c
deleted file mode 100644
index 58ec08e..0000000
--- a/test/locale-mbwc/dat_iswlower.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_iswlower.c
- *
- * ISW*: int iswlower (wint_t wc);
- */
-
-
-#include "dat_isw-funcs.h"
-
-
-TST_ISW_LOC (LOWER, lower) = {
-
- { TST_ISW_REC (de, lower)
- {
- { { 0x0080 }, { 0,1,0 } }, /* CTRL */
- { { 0x009F }, { 0,1,0 } }, /* CTRL */
- { { 0x00A0 }, { 0,1,0 } }, /* NB SPACE */
- { { 0x00A1 }, { 0,1,0 } }, /* UD ! */
- { { 0x00B0 }, { 0,1,0 } }, /* Degree */
- { { 0x00B1 }, { 0,1,0 } }, /* +- sign */
- { { 0x00B2 }, { 0,1,0 } }, /* SUP 2 */
- { { 0x00B3 }, { 0,1,0 } }, /* SUP 3 */
- { { 0x00B4 }, { 0,1,0 } }, /* ACUTE */
- { { 0x00B8 }, { 0,1,0 } }, /* CEDILLA */
- { { 0x00B9 }, { 0,1,0 } }, /* SUP 1 */
- { { 0x00BB }, { 0,1,0 } }, /* >> */
- { { 0x00BC }, { 0,1,0 } }, /* 1/4 */
- { { 0x00BD }, { 0,1,0 } }, /* 1/2 */
- { { 0x00BE }, { 0,1,0 } }, /* 3/4 */
- { { 0x00BF }, { 0,1,0 } }, /* UD ? */
- { { 0x00C0 }, { 0,1,0 } }, /* A Grave */
- { { 0x00D6 }, { 0,1,0 } }, /* O dia */
- { { 0x00D7 }, { 0,1,0 } }, /* multipl. */
- { { 0x00D8 }, { 0,1,0 } }, /* O stroke */
- { { 0x00DF }, { 0,0,0 } }, /* small Sh */
- { { 0x00E0 }, { 0,0,0 } }, /* a grave */
- { { 0x00F6 }, { 0,0,0 } }, /* o dia */
- { { 0x00F7 }, { 0,1,0 } }, /* division */
- { { 0x00F8 }, { 0,0,0 } }, /* o stroke */
- { { 0x00FF }, { 0,0,0 } }, /* y dia */
- { .is_last = 1 } /* Last element. */
- }
- },
- { TST_ISW_REC (enUS, lower)
- {
- { { WEOF }, { 0,1,0 } },
- { { 0x0000 }, { 0,1,0 } },
- { { 0x001F }, { 0,1,0 } },
- { { 0x0020 }, { 0,1,0 } },
- { { 0x0021 }, { 0,1,0 } },
- { { 0x002F }, { 0,1,0 } },
- { { 0x0030 }, { 0,1,0 } },
- { { 0x0039 }, { 0,1,0 } },
- { { 0x003A }, { 0,1,0 } },
- { { 0x0040 }, { 0,1,0 } },
- { { 0x0041 }, { 0,1,0 } },
- { { 0x005A }, { 0,1,0 } },
- { { 0x005B }, { 0,1,0 } },
- { { 0x0060 }, { 0,1,0 } },
- { { 0x0061 }, { 0,0,0 } },
- { { 0x007A }, { 0,0,0 } },
- { { 0x007B }, { 0,1,0 } },
- { { 0x007E }, { 0,1,0 } },
- { { 0x007F }, { 0,1,0 } },
- { { 0x0080 }, { 0,1,0 } },
- { .is_last = 1 } /* Last element. */
- }
- },
-#if 0
- { TST_ISW_REC (eucJP, lower)
-#else
- { TST_ISW_REC (ja_UTF8, lower)
-#endif
- {
- { { 0x3000 }, { 0,1,0 } }, /* IDEO. SPACE */
- { { 0x303F }, { 0,1,0 } }, /* IDEO. HALF SPACE */
- { { 0x3041 }, { 0,1,0 } }, /* HIRAGANA a */
- { { 0x3094 }, { 0,1,0 } }, /* HIRAGANA u" */
- { { 0x3099 }, { 0,1,0 } }, /* SOUND MARK */
- { { 0x309E }, { 0,1,0 } }, /* ITERATION MARK */
- { { 0x30A1 }, { 0,1,0 } }, /* KATAKANA a */
- { { 0x30FA }, { 0,1,0 } }, /* KATAKANA wo" */
- { { 0xFF3A }, { 0,1,0 } }, /* FULL Z */
- { { 0xFF40 }, { 0,1,0 } }, /* FULL GRAVE ACC. */
- { { 0xFF5A }, { 0,0,0 } }, /* FULL z */
- { { 0xFF6F }, { 0,1,0 } }, /* HALF KATA tu */
- { { 0xFF71 }, { 0,1,0 } }, /* HALF KATA A */
- { { 0xFF9E }, { 0,1,0 } }, /* HALF KATA MI */
- { .is_last = 1 } /* Last element. */
- }
- },
- { TST_ISW_REC (end, lower) }
-
-};
diff --git a/test/locale-mbwc/dat_iswprint.c b/test/locale-mbwc/dat_iswprint.c
deleted file mode 100644
index bcd96d0..0000000
--- a/test/locale-mbwc/dat_iswprint.c
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_iswprint.c
- *
- * ISW*: int iswprint (wint_t wc);
- */
-
-
-#include "dat_isw-funcs.h"
-
-
-TST_ISW_LOC (PRINT, print) = {
-
- { TST_ISW_REC (de, print)
- {
- { { 0x0080 }, { 0,1,0 } }, /* CTRL */
- { { 0x009F }, { 0,1,0 } }, /* CTRL */
-#ifdef SHOJI_IS_RIGHT
- { { 0x00A0 }, { 0,1,0 } }, /* NB SPACE */
-#else
- { { 0x00A0 }, { 0,0,0 } }, /* NB SPACE */
-#endif
- { { 0x00A1 }, { 0,0,0 } }, /* UD ! */
- { { 0x00B0 }, { 0,0,0 } }, /* Degree */
- { { 0x00B1 }, { 0,0,0 } }, /* +- sign */
- { { 0x00B2 }, { 0,0,0 } }, /* SUP 2 */
- { { 0x00B3 }, { 0,0,0 } }, /* SUP 3 */
- { { 0x00B4 }, { 0,0,0 } }, /* ACUTE */
- { { 0x00B8 }, { 0,0,0 } }, /* CEDILLA */
- { { 0x00B9 }, { 0,0,0 } }, /* SUP 1 */
- { { 0x00BB }, { 0,0,0 } }, /* >> */
- { { 0x00BC }, { 0,0,0 } }, /* 1/4 */
- { { 0x00BD }, { 0,0,0 } }, /* 1/2 */
- { { 0x00BE }, { 0,0,0 } }, /* 3/4 */
- { { 0x00BF }, { 0,0,0 } }, /* UD ? */
- { { 0x00C0 }, { 0,0,0 } }, /* A Grave */
- { { 0x00D6 }, { 0,0,0 } }, /* O dia */
- { { 0x00D7 }, { 0,0,0 } }, /* multipl. */
- { { 0x00D8 }, { 0,0,0 } }, /* O stroke */
- { { 0x00DF }, { 0,0,0 } }, /* small Sh */
- { { 0x00E0 }, { 0,0,0 } }, /* a grave */
- { { 0x00F6 }, { 0,0,0 } }, /* o dia */
- { { 0x00F7 }, { 0,0,0 } }, /* division */
- { { 0x00F8 }, { 0,0,0 } }, /* o stroke */
- { { 0x00FF }, { 0,0,0 } }, /* y dia */
- { .is_last = 1 } /* Last element. */
- }
- },
- { TST_ISW_REC (enUS, print)
- {
- { { WEOF }, { 0,1,0 } }, /* 01 */
- { { 0x0000 }, { 0,1,0 } },
- { { 0x001F }, { 0,1,0 } },
- { { 0x0020 }, { 0,0,0 } },
- { { 0x0021 }, { 0,0,0 } },
- { { 0x002F }, { 0,0,0 } },
- { { 0x0030 }, { 0,0,0 } },
- { { 0x0039 }, { 0,0,0 } },
- { { 0x003A }, { 0,0,0 } },
- { { 0x0040 }, { 0,0,0 } },
- { { 0x0041 }, { 0,0,0 } },
- { { 0x005A }, { 0,0,0 } },
- { { 0x005B }, { 0,0,0 } },
- { { 0x0060 }, { 0,0,0 } },
- { { 0x0061 }, { 0,0,0 } },
- { { 0x007A }, { 0,0,0 } },
- { { 0x007B }, { 0,0,0 } },
- { { 0x007E }, { 0,0,0 } },
- { { 0x007F }, { 0,1,0 } },
- { { 0x0080 }, { 0,1,0 } }, /* 20 */
-#ifdef NO_WAIVER
- { { 0x3042 }, { 0,1,0 } }, /* <WAIVER> */
-#endif
- { .is_last = 1 } /* Last element. */
- }
- },
-#if 0
- { TST_ISW_REC (eucJP, print)
-#else
- { TST_ISW_REC (ja_UTF8, print)
-#endif
- {
- { { 0x3000 }, { 0,0,0 } }, /* IDEO. SPACE */
-#ifdef SHOJI_IS_RIGHT
- { { 0x3020 }, { 0,1,0 } }, /* POSTAL MARK FACE */
- { { 0x3029 }, { 0,1,0 } }, /* Hangzhou NUM9 */
- { { 0x302F }, { 0,1,0 } }, /* Diacritics(Hangul) */
- { { 0x3037 }, { 0,1,0 } }, /* Separator Symbol */
- { { 0x303F }, { 0,1,0 } }, /* IDEO. HALF SPACE */
-#else
- { { 0x3020 }, { 0,0,0 } }, /* POSTAL MARK FACE */
- { { 0x3029 }, { 0,0,0 } }, /* Hangzhou NUM9 */
- { { 0x302F }, { 0,0,0 } }, /* Diacritics(Hangul) */
- { { 0x3037 }, { 0,0,0 } }, /* Separator Symbol */
- { { 0x303F }, { 0,0,0 } }, /* IDEO. HALF SPACE */
-#endif
- { { 0x3041 }, { 0,0,0 } }, /* HIRAGANA a */
-#ifdef SHOJI_IS_RIGHT
- { { 0x3094 }, { 0,1,0 } }, /* HIRAGANA u" */ /* non jis */
- { { 0x3099 }, { 0,1,0 } }, /* SOUND MARK */
-#else
- { { 0x3094 }, { 0,0,0 } }, /* HIRAGANA u" */ /* non jis */
- { { 0x3099 }, { 0,0,0 } }, /* SOUND MARK */
-#endif
- { { 0x309E }, { 0,0,0 } }, /* ITERATION MARK */ /* 10 */
- { { 0x30A1 }, { 0,0,0 } }, /* KATAKANA a */
-#ifdef SHOJI_IS_RIGHT
- { { 0x30FA }, { 0,1,0 } }, /* KATAKANA wo" */ /* non jis */
-#else
- { { 0x30FA }, { 0,0,0 } }, /* KATAKANA wo" */ /* non jis */
-#endif
- { { 0x30FB }, { 0,0,0 } }, /* KATAKANA MID.DOT */
- { { 0x30FE }, { 0,0,0 } }, /* KATAKANA ITERATION */
-#ifdef SHOJI_IS_RIGHT
- { { 0x3191 }, { 0,1,0 } }, /* KANBUN REV.MARK */
- { { 0x3243 }, { 0,1,0 } }, /* IDEO. MARK (reach) */
- { { 0x32CB }, { 0,1,0 } }, /* IDEO.TEL.SYM.DEC12 */
- { { 0x32FE }, { 0,1,0 } }, /* MARU KATAKANA wo */
- { { 0x33FE }, { 0,1,0 } }, /* CJK IDEO.TEL.31th */
-#else
- { { 0x3191 }, { 0,0,0 } }, /* KANBUN REV.MARK */
- { { 0x3243 }, { 0,0,0 } }, /* IDEO. MARK (reach) */
- { { 0x32CB }, { 0,0,0 } }, /* IDEO.TEL.SYM.DEC12 */
- { { 0x32FE }, { 0,0,0 } }, /* MARU KATAKANA wo */
- { { 0x33FE }, { 0,0,0 } }, /* CJK IDEO.TEL.31th */
-#endif
- { { 0x4E00 }, { 0,0,0 } }, /* CJK UNI.IDEO. */ /* 20 */
- { { 0x4E05 }, { 0,0,0 } }, /* CJK UNI.IDEO. */
-#ifdef SHOJI_IS_RIGHT
- { { 0x4E06 }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
-#else
- { { 0x4E06 }, { 0,0,0 } }, /* CJK UNI.IDEO.NON-J */
-#endif
- { { 0x4E07 }, { 0,0,0 } }, /* CJK UNI.IDEO. */
- { { 0x4FFF }, { 0,0,0 } }, /* CJK UNI.IDEO. */
- { { 0x9000 }, { 0,0,0 } }, /* CJK UNI.IDEO. */
- { { 0x9006 }, { 0,0,0 } }, /* CJK UNI.IDEO. */
-#ifdef SHOJI_IS_RIGHT
- { { 0x9007 }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x9FA4 }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
-#else
- { { 0x9007 }, { 0,0,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x9FA4 }, { 0,0,0 } }, /* CJK UNI.IDEO.NON-J */
-#endif
- { { 0x9FA5 }, { 0,0,0 } }, /* CJK UNI.IDEO. */
-#ifdef SHOJI_IS_RIGHT
- { { 0xFE4F }, { 0,1,0 } }, /* WAVE LOW LINE */ /* 30 */
-#else
- { { 0xFE4F }, { 0,0,0 } }, /* WAVE LOW LINE */ /* 30 */
-#endif
- { { 0xFF0F }, { 0,0,0 } }, /* FULL SLASH */
- { { 0xFF19 }, { 0,0,0 } }, /* FULL 9 */
- { { 0xFF20 }, { 0,0,0 } }, /* FULL @ */
- { { 0xFF3A }, { 0,0,0 } }, /* FULL Z */
- { { 0xFF40 }, { 0,0,0 } }, /* FULL GRAVE ACC. */
- { { 0xFF5A }, { 0,0,0 } }, /* FULL z */
- { { 0xFF5E }, { 0,0,0 } }, /* FULL ~ (tilde) */
- { { 0xFF61 }, { 0,0,0 } }, /* HALF IDEO.STOP. . */
- { { 0xFF65 }, { 0,0,0 } }, /* HALF KATA MID.DOT */
- { { 0xFF66 }, { 0,0,0 } }, /* HALF KATA WO */ /* 40 */
- { { 0xFF6F }, { 0,0,0 } }, /* HALF KATA tu */
- { { 0xFF70 }, { 0,0,0 } }, /* HALF KATA PL - */
- { { 0xFF71 }, { 0,0,0 } }, /* HALF KATA A */
- { { 0xFF9E }, { 0,0,0 } }, /* HALF KATA MI */
- { .is_last = 1 } /* Last element. */
- }
- },
- { TST_ISW_REC (end, print) }
-};
diff --git a/test/locale-mbwc/dat_iswpunct.c b/test/locale-mbwc/dat_iswpunct.c
deleted file mode 100644
index 2b3612f..0000000
--- a/test/locale-mbwc/dat_iswpunct.c
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_iswpunct.c
- *
- * ISW*: int iswpunct (wint_t wc);
- */
-
-
-#include "dat_isw-funcs.h"
-
-
-TST_ISW_LOC (PUNCT, punct) = {
-
- { TST_ISW_REC (de, punct)
- {
- { { 0x0080 }, { 0,1,0 } }, /* CTRL */
- { { 0x009F }, { 0,1,0 } }, /* CTRL */
-#ifdef SHOJI_IS_RIGHT
- { { 0x00A0 }, { 0,1,0 } }, /* NB SPACE */
-#else
- { { 0x00A0 }, { 0,0,0 } }, /* NB SPACE */
-#endif
- { { 0x00A1 }, { 0,0,0 } }, /* UD ! */
- { { 0x00B0 }, { 0,0,0 } }, /* Degree */
- { { 0x00B1 }, { 0,0,0 } }, /* +- sign */
- { { 0x00B2 }, { 0,0,0 } }, /* SUP 2 */
- { { 0x00B3 }, { 0,0,0 } }, /* SUP 3 */
- { { 0x00B4 }, { 0,0,0 } }, /* ACUTE */
- { { 0x00B8 }, { 0,0,0 } }, /* CEDILLA */
- { { 0x00B9 }, { 0,0,0 } }, /* SUP 1 */
- { { 0x00BB }, { 0,0,0 } }, /* >> */
- { { 0x00BC }, { 0,0,0 } }, /* 1/4 */
- { { 0x00BD }, { 0,0,0 } }, /* 1/2 */
- { { 0x00BE }, { 0,0,0 } }, /* 3/4 */
- { { 0x00BF }, { 0,0,0 } }, /* UD ? */
- { { 0x00C0 }, { 0,1,0 } }, /* A Grave */
- { { 0x00D6 }, { 0,1,0 } }, /* O dia */
- { { 0x00D7 }, { 0,0,0 } }, /* multipl. */
- { { 0x00D8 }, { 0,1,0 } }, /* O stroke */
- { { 0x00DF }, { 0,1,0 } }, /* small Sh */
- { { 0x00E0 }, { 0,1,0 } }, /* a grave */
- { { 0x00F6 }, { 0,1,0 } }, /* o dia */
- { { 0x00F7 }, { 0,0,0 } }, /* division */
- { { 0x00F8 }, { 0,1,0 } }, /* o stroke */
- { { 0x00FF }, { 0,1,0 } }, /* y dia */
- { .is_last = 1 } /* Last element. */
- }
- },
- { TST_ISW_REC (enUS, punct)
- {
- { { WEOF }, { 0,1,0 } }, /* 01 */
- { { 0x0000 }, { 0,1,0 } },
- { { 0x001F }, { 0,1,0 } },
- { { 0x0020 }, { 0,1,0 } },
- { { 0x0021 }, { 0,0,0 } },
- { { 0x002F }, { 0,0,0 } },
- { { 0x0030 }, { 0,1,0 } },
- { { 0x0039 }, { 0,1,0 } },
- { { 0x003A }, { 0,0,0 } },
- { { 0x0040 }, { 0,0,0 } },
- { { 0x0041 }, { 0,1,0 } },
- { { 0x005A }, { 0,1,0 } },
- { { 0x005B }, { 0,0,0 } },
- { { 0x0060 }, { 0,0,0 } },
- { { 0x0061 }, { 0,1,0 } },
- { { 0x007A }, { 0,1,0 } },
- { { 0x007B }, { 0,0,0 } },
- { { 0x007E }, { 0,0,0 } },
- { { 0x007F }, { 0,1,0 } },
- { { 0x0080 }, { 0,1,0 } }, /* 20 */
- { .is_last = 1 } /* Last element. */
- }
- },
-#if 0
- { TST_ISW_REC (eucJP, punct)
-#else
- { TST_ISW_REC (ja_UTF8, punct)
-#endif
- {
- { { 0x3000 }, { 0,1,0 } }, /* IDEO. SPACE */
-#ifdef SHOJI_IS_RIGHT
- { { 0x3020 }, { 0,1,0 } }, /* POSTAL MARK FACE */
-#else
- { { 0x3020 }, { 0,0,0 } }, /* POSTAL MARK FACE */
-#endif
- { { 0x3029 }, { 0,1,0 } }, /* Hangzhou NUM9 */
-#ifdef SHOJI_IS_RIGHT
- { { 0x302F }, { 0,1,0 } }, /* Diacritics(Hangul) */
- { { 0x3037 }, { 0,1,0 } }, /* Separator Symbol */
- { { 0x303F }, { 0,1,0 } }, /* IDEO. HALF SPACE */
-#else
- { { 0x302F }, { 0,0,0 } }, /* Diacritics(Hangul) */
- { { 0x3037 }, { 0,0,0 } }, /* Separator Symbol */
- { { 0x303F }, { 0,0,0 } }, /* IDEO. HALF SPACE */
-#endif
- { { 0x3041 }, { 0,1,0 } }, /* HIRAGANA a */
- { { 0x3094 }, { 0,1,0 } }, /* HIRAGANA u" */
-#ifdef SHOJI_IS_RIGHT
- { { 0x3099 }, { 0,1,0 } }, /* SOUND MARK */
-#else
- { { 0x3099 }, { 0,0,0 } }, /* SOUND MARK */
-#endif
- { { 0x309E }, { 0,1,0 } }, /* ITERATION MARK */ /* 10 */
- { { 0x30A1 }, { 0,1,0 } }, /* KATAKANA a */
- { { 0x30FA }, { 0,1,0 } }, /* KATAKANA wo" */
- { { 0x30FB }, { 0,0,0 } }, /* KATAKANA MID.DOT */
- { { 0x30FE }, { 0,1,0 } }, /* KATAKANA ITERATION */
-#ifdef SHOJI_IS_RIGHT
- { { 0x3191 }, { 0,1,0 } }, /* KANBUN REV.MARK */
- { { 0x3243 }, { 0,1,0 } }, /* IDEO. MARK (reach) */
- { { 0x32CB }, { 0,1,0 } }, /* IDEO.TEL.SYM.DEC12 */
- { { 0x32FE }, { 0,1,0 } }, /* MARU KATAKANA wo */
- { { 0x33FE }, { 0,1,0 } }, /* CJK IDEO.TEL.31th */
-#else
- { { 0x3191 }, { 0,0,0 } }, /* KANBUN REV.MARK */
- { { 0x3243 }, { 0,0,0 } }, /* IDEO. MARK (reach) */
- { { 0x32CB }, { 0,0,0 } }, /* IDEO.TEL.SYM.DEC12 */
- { { 0x32FE }, { 0,0,0 } }, /* MARU KATAKANA wo */
- { { 0x33FE }, { 0,0,0 } }, /* CJK IDEO.TEL.31th */
-#endif
- { { 0x4E00 }, { 0,1,0 } }, /* CJK UNI.IDEO. */ /* 20 */
- { { 0x4E05 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x4E06 }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x4E07 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x4FFF }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x9000 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x9006 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x9007 }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x9FA4 }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x9FA5 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
-#ifdef SHOJI_IS_RIGHT
- { { 0xFE4F }, { 0,1,0 } }, /* CJK UNI.IDEO. */ /* 30 */
-#else
- { { 0xFE4F }, { 0,0,0 } }, /* CJK UNI.IDEO. */ /* 30 */
-#endif
- { { 0xFF0F }, { 0,0,0 } }, /* FULL SLASH */
- { { 0xFF19 }, { 0,1,0 } }, /* FULL 9 */
- { { 0xFF20 }, { 0,0,0 } }, /* FULL @ */
- { { 0xFF3A }, { 0,1,0 } }, /* FULL Z */
- { { 0xFF40 }, { 0,0,0 } }, /* FULL GRAVE ACC. */
- { { 0xFF5A }, { 0,1,0 } }, /* FULL z */
- { { 0xFF5E }, { 0,0,0 } }, /* FULL ~ (tilde) */
- { { 0xFF61 }, { 0,0,0 } }, /* HALF IDEO.STOP. . */
- { { 0xFF65 }, { 0,0,0 } }, /* HALF KATA MID.DOT */
- { { 0xFF66 }, { 0,1,0 } }, /* HALF KATA WO */ /* 40 */
- { { 0xFF6F }, { 0,1,0 } }, /* HALF KATA tu */
- { { 0xFF70 }, { 0,1,0 } }, /* HALF KATA PL - */
- { { 0xFF71 }, { 0,1,0 } }, /* HALF KATA A */
- { { 0xFF9E }, { 0,1,0 } }, /* HALF KATA MI */
- { .is_last = 1 } /* Last element. */
- }
- },
- { TST_ISW_REC (end, punct) }
-};
diff --git a/test/locale-mbwc/dat_iswspace.c b/test/locale-mbwc/dat_iswspace.c
deleted file mode 100644
index 2131b87..0000000
--- a/test/locale-mbwc/dat_iswspace.c
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_iswspace.c
- *
- * ISW*: int iswspace (wint_t wc);
- */
-
-
-#include "dat_isw-funcs.h"
-
-
-TST_ISW_LOC (SPACE, space) = {
-
- { TST_ISW_REC (de, space)
- {
- { { 0x0080 }, { 0,1,0 } }, /* CTRL */
- { { 0x009F }, { 0,1,0 } }, /* CTRL */
- { { 0x00A0 }, { 0,1,0 } }, /* NB SPACE */
- { { 0x00A1 }, { 0,1,0 } }, /* UD ! */
- { { 0x00B0 }, { 0,1,0 } }, /* Degree */
- { { 0x00B1 }, { 0,1,0 } }, /* +- sign */
- { { 0x00B2 }, { 0,1,0 } }, /* SUP 2 */
- { { 0x00B3 }, { 0,1,0 } }, /* SUP 3 */
- { { 0x00B4 }, { 0,1,0 } }, /* ACUTE */
- { { 0x00B8 }, { 0,1,0 } }, /* CEDILLA */
- { { 0x00B9 }, { 0,1,0 } }, /* SUP 1 */
- { { 0x00BB }, { 0,1,0 } }, /* >> */
- { { 0x00BC }, { 0,1,0 } }, /* 1/4 */
- { { 0x00BD }, { 0,1,0 } }, /* 1/2 */
- { { 0x00BE }, { 0,1,0 } }, /* 3/4 */
- { { 0x00BF }, { 0,1,0 } }, /* UD ? */
- { { 0x00C0 }, { 0,1,0 } }, /* A Grave */
- { { 0x00D6 }, { 0,1,0 } }, /* O dia */
- { { 0x00D7 }, { 0,1,0 } }, /* multipl. */
- { { 0x00D8 }, { 0,1,0 } }, /* O stroke */
- { { 0x00DF }, { 0,1,0 } }, /* small Sh */
- { { 0x00E0 }, { 0,1,0 } }, /* a grave */
- { { 0x00F6 }, { 0,1,0 } }, /* o dia */
- { { 0x00F7 }, { 0,1,0 } }, /* division */
- { { 0x00F8 }, { 0,1,0 } }, /* o stroke */
- { { 0x00FF }, { 0,1,0 } }, /* y dia */
- { .is_last = 1 } /* Last element. */
- }
- },
- { TST_ISW_REC (enUS, space)
- {
- { { WEOF }, { 0,1,0 } },
- { { 0x0000 }, { 0,1,0 } },
- { { 0x0008 }, { 0,1,0 } },
- { { 0x0009 }, { 0,0,0 } },
- { { 0x000D }, { 0,0,0 } },
- { { 0x000E }, { 0,1,0 } },
- { { 0x001F }, { 0,1,0 } },
- { { 0x0020 }, { 0,0,0 } },
- { { 0x0021 }, { 0,1,0 } },
- { { 0x002F }, { 0,1,0 } },
- { { 0x0030 }, { 0,1,0 } },
- { { 0x0039 }, { 0,1,0 } },
- { { 0x003A }, { 0,1,0 } },
- { { 0x0040 }, { 0,1,0 } },
- { { 0x0041 }, { 0,1,0 } },
- { { 0x005A }, { 0,1,0 } },
- { { 0x005B }, { 0,1,0 } },
- { { 0x0060 }, { 0,1,0 } },
- { { 0x0061 }, { 0,1,0 } },
- { { 0x007A }, { 0,1,0 } }, /* 20 */
- { { 0x007B }, { 0,1,0 } },
- { { 0x007E }, { 0,1,0 } },
- { { 0x007F }, { 0,1,0 } },
- { { 0x0080 }, { 0,1,0 } },
- { .is_last = 1 } /* Last element. */
- }
- },
-#if 0
- { TST_ISW_REC (eucJP, space)
-#else
- { TST_ISW_REC (ja_UTF8, space)
-#endif
- {
- { { 0x3000 }, { 0,0,0 } }, /* IDEO. SPACE */
- { { 0x3020 }, { 0,1,0 } }, /* POSTAL MARK FACE */
- { { 0x3029 }, { 0,1,0 } }, /* Hangzhou NUM9 */
- { { 0x302F }, { 0,1,0 } }, /* Diacritics(Hangul) */
- { { 0x3037 }, { 0,1,0 } }, /* Separator Symbol */
- { { 0x303F }, { 0,1,0 } }, /* IDEO. HALF SPACE */ /* No JIS */
- { { 0x3041 }, { 0,1,0 } }, /* HIRAGANA a */
- { { 0x3094 }, { 0,1,0 } }, /* HIRAGANA u" */
- { { 0x3099 }, { 0,1,0 } }, /* SOUND MARK */
- { { 0x309E }, { 0,1,0 } }, /* ITERATION MARK */
- { { 0x30A1 }, { 0,1,0 } }, /* KATAKANA a */
- { { 0x30FA }, { 0,1,0 } }, /* KATAKANA wo" */
- { { 0x30FB }, { 0,1,0 } }, /* KATAKANA MID.DOT */
- { { 0x30FE }, { 0,1,0 } }, /* KATAKANA ITERATION */
- { { 0x3191 }, { 0,1,0 } }, /* KANBUN REV.MARK */
- { { 0x3243 }, { 0,1,0 } }, /* IDEO. MARK (reach) */
- { { 0x32CB }, { 0,1,0 } }, /* IDEO.TEL.SYM.DEC12 */
- { { 0x32FE }, { 0,1,0 } }, /* MARU KATAKANA wo */
- { { 0x33FE }, { 0,1,0 } }, /* CJK IDEO.TEL.31th */
- { { 0x4E00 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x4E05 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x4E06 }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x4E07 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x4FFF }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x9000 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x9006 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x9007 }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x9FA4 }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x9FA5 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0xFE4F }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0xFF0F }, { 0,1,0 } }, /* FULL SLASH */
- { { 0xFF19 }, { 0,1,0 } }, /* FULL 9 */
- { { 0xFF20 }, { 0,1,0 } }, /* FULL @ */
- { { 0xFF3A }, { 0,1,0 } }, /* FULL Z */
- { { 0xFF40 }, { 0,1,0 } }, /* FULL GRAVE ACC. */
- { { 0xFF5A }, { 0,1,0 } }, /* FULL z */
- { { 0xFF5E }, { 0,1,0 } }, /* FULL ~ (tilde) */
- { { 0xFF61 }, { 0,1,0 } }, /* HALF IDEO.STOP. . */
- { { 0xFF65 }, { 0,1,0 } }, /* HALF KATA MID.DOT */
- { { 0xFF66 }, { 0,1,0 } }, /* HALF KATA WO */
- { { 0xFF6F }, { 0,1,0 } }, /* HALF KATA tu */
- { { 0xFF70 }, { 0,1,0 } }, /* HALF KATA PL - */
- { { 0xFF71 }, { 0,1,0 } }, /* HALF KATA A */
- { { 0xFF9E }, { 0,1,0 } }, /* HALF KATA MI */
- { .is_last = 1 } /* Last element. */
- }
- },
- { TST_ISW_REC (end, space) }
-};
diff --git a/test/locale-mbwc/dat_iswupper.c b/test/locale-mbwc/dat_iswupper.c
deleted file mode 100644
index 865f42f..0000000
--- a/test/locale-mbwc/dat_iswupper.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_iswupper.c
- *
- * ISW*: int iswupper (wint_t wc);
- */
-
-
-#include "dat_isw-funcs.h"
-
-
-TST_ISW_LOC (UPPER, upper) = {
-
- { TST_ISW_REC (de, upper)
- {
- { { 0x0080 }, { 0,1,0 } }, /* CTRL */
- { { 0x009F }, { 0,1,0 } }, /* CTRL */
- { { 0x00A0 }, { 0,1,0 } }, /* NB SPACE */
- { { 0x00A1 }, { 0,1,0 } }, /* UD ! */
- { { 0x00B0 }, { 0,1,0 } }, /* Degree */
- { { 0x00B1 }, { 0,1,0 } }, /* +- sign */
- { { 0x00B2 }, { 0,1,0 } }, /* SUP 2 */
- { { 0x00B3 }, { 0,1,0 } }, /* SUP 3 */
- { { 0x00B4 }, { 0,1,0 } }, /* ACUTE */
- { { 0x00B8 }, { 0,1,0 } }, /* CEDILLA */
- { { 0x00B9 }, { 0,1,0 } }, /* SUP 1 */
- { { 0x00BB }, { 0,1,0 } }, /* >> */
- { { 0x00BC }, { 0,1,0 } }, /* 1/4 */
- { { 0x00BD }, { 0,1,0 } }, /* 1/2 */
- { { 0x00BE }, { 0,1,0 } }, /* 3/4 */
- { { 0x00BF }, { 0,1,0 } }, /* UD ? */
- { { 0x00C0 }, { 0,0,0 } }, /* A Grave */
- { { 0x00D6 }, { 0,0,0 } }, /* O dia */
- { { 0x00D7 }, { 0,1,0 } }, /* multipl. */
- { { 0x00D8 }, { 0,0,0 } }, /* O stroke */
- { { 0x00DF }, { 0,1,0 } }, /* small Sh */
- { { 0x00E0 }, { 0,1,0 } }, /* a grave */
- { { 0x00F6 }, { 0,1,0 } }, /* o dia */
- { { 0x00F7 }, { 0,1,0 } }, /* division */
- { { 0x00F8 }, { 0,1,0 } }, /* o stroke */
- { { 0x00FF }, { 0,1,0 } }, /* y dia */
- { .is_last = 1 } /* Last entry. */
- }
- },
- { TST_ISW_REC (enUS, upper)
- {
- { { WEOF }, { 0,1,0 } },
- { { 0x0000 }, { 0,1,0 } },
- { { 0x001F }, { 0,1,0 } },
- { { 0x0020 }, { 0,1,0 } },
- { { 0x0021 }, { 0,1,0 } },
- { { 0x002F }, { 0,1,0 } },
- { { 0x0030 }, { 0,1,0 } },
- { { 0x0039 }, { 0,1,0 } },
- { { 0x003A }, { 0,1,0 } },
- { { 0x0040 }, { 0,1,0 } },
- { { 0x0041 }, { 0,0,0 } },
- { { 0x005A }, { 0,0,0 } },
- { { 0x005B }, { 0,1,0 } },
- { { 0x0060 }, { 0,1,0 } },
- { { 0x0061 }, { 0,1,0 } },
- { { 0x007A }, { 0,1,0 } },
- { { 0x007B }, { 0,1,0 } },
- { { 0x007E }, { 0,1,0 } },
- { { 0x007F }, { 0,1,0 } },
- { { 0x0080 }, { 0,1,0 } },
- { .is_last = 1 } /* Last entry. */
- }
- },
-#if 0
- { TST_ISW_REC (eucJP, upper)
-#else
- { TST_ISW_REC (ja_UTF8, upper)
-#endif
- {
- { { 0x3041 }, { 0,1,0 } }, /* HIRAGANA a */
- { { 0x3094 }, { 0,1,0 } }, /* HIRAGANA u" */
- { { 0x30A1 }, { 0,1,0 } }, /* KATAKANA a */
- { { 0x30FA }, { 0,1,0 } }, /* KATAKANA wo" */
- { { 0xFF19 }, { 0,1,0 } }, /* FULL 9 */
- { { 0xFF20 }, { 0,1,0 } }, /* FULL @ */
- { { 0xFF3A }, { 0,0,0 } }, /* FULL Z */
- { { 0xFF40 }, { 0,1,0 } }, /* FULL GRAVE ACC. */
- { { 0xFF5A }, { 0,1,0 } }, /* FULL z */
- { { 0xFF66 }, { 0,1,0 } }, /* HALF KATA WO */
- { { 0xFF6F }, { 0,1,0 } }, /* HALF KATA tu */
- { { 0xFF71 }, { 0,1,0 } }, /* HALF KATA A */
- { { 0xFF9E }, { 0,1,0 } }, /* HALF KATA MI */
- { .is_last = 1 } /* Last entry. */
- }
- },
- { TST_ISW_REC (end, upper) }
-};
diff --git a/test/locale-mbwc/dat_iswxdigit.c b/test/locale-mbwc/dat_iswxdigit.c
deleted file mode 100644
index 5d6c652..0000000
--- a/test/locale-mbwc/dat_iswxdigit.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_iswxdigit.c
- *
- * ISW*: int iswxdigit (wint_t wc);
- */
-
-
-#include "dat_isw-funcs.h"
-
-
-TST_ISW_LOC (XDIGIT, xdigit) = {
-
- { TST_ISW_REC (de, xdigit)
- {
- { { 0x0080 }, { 0,1,0 } }, /* CTRL */
- { { 0x009F }, { 0,1,0 } }, /* CTRL */
- { { 0x00A0 }, { 0,1,0 } }, /* NB SPACE */
- { { 0x00A1 }, { 0,1,0 } }, /* UD ! */
- { { 0x00B0 }, { 0,1,0 } }, /* Degree */
- { { 0x00B1 }, { 0,1,0 } }, /* +- sign */
- { { 0x00B2 }, { 0,1,0 } }, /* SUP 2 */
- { { 0x00B3 }, { 0,1,0 } }, /* SUP 3 */
- { { 0x00B4 }, { 0,1,0 } }, /* ACUTE */
- { { 0x00B8 }, { 0,1,0 } }, /* CEDILLA */
- { { 0x00B9 }, { 0,1,0 } }, /* SUP 1 */
- { { 0x00BB }, { 0,1,0 } }, /* >> */
- { { 0x00BC }, { 0,1,0 } }, /* 1/4 */
- { { 0x00BD }, { 0,1,0 } }, /* 1/2 */
- { { 0x00BE }, { 0,1,0 } }, /* 3/4 */
- { { 0x00BF }, { 0,1,0 } }, /* UD ? */
- { { 0x00C0 }, { 0,1,0 } }, /* A Grave */
- { { 0x00D6 }, { 0,1,0 } }, /* O dia */
- { { 0x00D7 }, { 0,1,0 } }, /* multipl. */
- { { 0x00D8 }, { 0,1,0 } }, /* O stroke */
- { { 0x00DF }, { 0,1,0 } }, /* small Sh */
- { { 0x00E0 }, { 0,1,0 } }, /* a grave */
- { { 0x00F6 }, { 0,1,0 } }, /* o dia */
- { { 0x00F7 }, { 0,1,0 } }, /* division */
- { { 0x00F8 }, { 0,1,0 } }, /* o stroke */
- { { 0x00FF }, { 0,1,0 } }, /* y dia */
- { .is_last = 1 } /* Last element. */
- }
- },
- { TST_ISW_REC( enUS, xdigit )
- {
- { { WEOF }, { 0,1,0 } },
- { { 0x0000 }, { 0,1,0 } },
- { { 0x001F }, { 0,1,0 } },
- { { 0x0020 }, { 0,1,0 } },
- { { 0x0021 }, { 0,1,0 } },
- { { 0x002F }, { 0,1,0 } },
- { { 0x0030 }, { 0,0,0 } },
- { { 0x0039 }, { 0,0,0 } },
- { { 0x003A }, { 0,1,0 } },
- { { 0x0040 }, { 0,1,0 } },
- { { 0x0041 }, { 0,0,0 } },
- { { 0x005A }, { 0,1,0 } },
- { { 0x005B }, { 0,1,0 } },
- { { 0x0060 }, { 0,1,0 } },
- { { 0x0061 }, { 0,0,0 } },
- { { 0x007A }, { 0,1,0 } },
- { { 0x007B }, { 0,1,0 } },
- { { 0x007E }, { 0,1,0 } },
- { { 0x007F }, { 0,1,0 } },
- { { 0x0080 }, { 0,1,0 } },
- { .is_last = 1 } /* Last element. */
- }
- },
-#if 0
- { TST_ISW_REC( eucJP, xdigit )
-#else
- { TST_ISW_REC( ja_UTF8, xdigit )
-#endif
- {
- { { 0x3000 }, { 0,1,0 } }, /* IDEO. SPACE */
- { { 0x3020 }, { 0,1,0 } }, /* POSTAL MARK FACE */
- { { 0x3029 }, { 0,1,0 } }, /* Hangzhou NUM9 */
- { { 0x302F }, { 0,1,0 } }, /* Diacritics(Hangul) */
- { { 0x3037 }, { 0,1,0 } }, /* Separator Symbol */
- { { 0x303F }, { 0,1,0 } }, /* IDEO. HALF SPACE */
- { { 0x3041 }, { 0,1,0 } }, /* HIRAGANA a */
- { { 0x3094 }, { 0,1,0 } }, /* HIRAGANA u" */
- { { 0x3099 }, { 0,1,0 } }, /* SOUND MARK */
- { { 0x309E }, { 0,1,0 } }, /* ITERATION MARK */
- { { 0x30A1 }, { 0,1,0 } }, /* KATAKANA a */
- { { 0x30FA }, { 0,1,0 } }, /* KATAKANA wo" */
- { { 0x30FB }, { 0,1,0 } }, /* KATAKANA MID.DOT */
- { { 0x30FE }, { 0,1,0 } }, /* KATAKANA ITERATION */
- { { 0x3191 }, { 0,1,0 } }, /* KANBUN REV.MARK */
- { { 0x3243 }, { 0,1,0 } }, /* IDEO. MARK (reach) */
- { { 0x32CB }, { 0,1,0 } }, /* IDEO.TEL.SYM.DEC12 */
- { { 0x32FE }, { 0,1,0 } }, /* MARU KATAKANA wo */
- { { 0x33FE }, { 0,1,0 } }, /* CJK IDEO.TEL.31th */
- { { 0x4E00 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x4E05 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x4E06 }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x4E07 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x4FFF }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x9000 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x9006 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0x9007 }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x9FA4 }, { 0,1,0 } }, /* CJK UNI.IDEO.NON-J */
- { { 0x9FA5 }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0xFE4F }, { 0,1,0 } }, /* CJK UNI.IDEO. */
- { { 0xFF0F }, { 0,1,0 } }, /* FULL SLASH */
- { { 0xFF19 }, { 0,1,0 } }, /* FULL 9 */
- { { 0xFF20 }, { 0,1,0 } }, /* FULL @ */
- { { 0xFF3A }, { 0,1,0 } }, /* FULL Z */
- { { 0xFF40 }, { 0,1,0 } }, /* FULL GRAVE ACC. */
- { { 0xFF5A }, { 0,1,0 } }, /* FULL z */
- { { 0xFF5E }, { 0,1,0 } }, /* FULL ~ (tilde) */
- { { 0xFF61 }, { 0,1,0 } }, /* HALF IDEO.STOP. . */
- { { 0xFF65 }, { 0,1,0 } }, /* HALF KATA MID.DOT */
- { { 0xFF66 }, { 0,1,0 } }, /* HALF KATA WO */
- { { 0xFF6F }, { 0,1,0 } }, /* HALF KATA tu */
- { { 0xFF70 }, { 0,1,0 } }, /* HALF KATA PL - */
- { { 0xFF71 }, { 0,1,0 } }, /* HALF KATA A */
- { { 0xFF9E }, { 0,1,0 } }, /* HALF KATA MI */
- { .is_last = 1 } /* Last element. */
- }
- },
- { TST_ISW_REC (end, xdigit) }
-};
diff --git a/test/locale-mbwc/dat_mblen.c b/test/locale-mbwc/dat_mblen.c
deleted file mode 100644
index 8da038c..0000000
--- a/test/locale-mbwc/dat_mblen.c
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_mblen.c
- *
- * MBLEN: int mblen (char *s, size_t n);
- */
-
-
-/*
- * NOTE:
- * int mblen (char *s, size_t n);
- *
- * where n: a maximum number of bytes
- *
- * return - the number of bytes
- *
- * CAUTION:
- *
- * o When you feed a null pointer for a string (s) to the function,
- * set s_flg=0 instead of putting just a 'NULL' there.
- * Even if you set a 'NULL', it doens't mean a NULL pointer.
- *
- * o When s is a null pointer, the function checks state dependency.
- *
- * state-dependent encoding - return NON-zero
- * state-independent encoding - return 0
- *
- * If state-dependent encoding is expected, set
- *
- * s_flg = 0, ret_flg = 0, ret_val = +1
- *
- * If state-independent encoding is expected, set
- *
- * s_flg = 0, ret_flg = 0, ret_val = 0
- *
- *
- * When you set ret_flg=1, the test program simply compares an
- * actual return value with an expected value. You can check
- * state-independent case (return value is 0) in that way, but
- * you can not check state-dependent case. So when you check
- * state- dependency in this test function: tst_mblen(), set
- * ret_flg=0 always. It's a special case, and the test
- * function takes care of it.
- *
- * s_flg=0 ret_flg=0
- * | |
- * { 0, 0 }, { 0, 0, 0, x }
- * | |
- * not used ret_val: 0/+1
- * (expected val) */
-
-
-TST_MBLEN tst_mblen_loc [] = {
- {
- { Tmblen, TST_LOC_de },
- {
- /* 01: a character. */
- { { 1, "\300", USE_MBCURMAX }, { 0, 1, 1 } },
- /* 02: a character. */
- { { 1, "\309", USE_MBCURMAX }, { 0, 1, 1 } },
- /* 03: a character + an invalid byte. */
- { { 1, "Z\204", USE_MBCURMAX }, { 0, 1, +1 } },
- /* 04: control/invalid characters. */
- { { 1, "\177\000", USE_MBCURMAX }, { 0, 1, +1 } },
- /* 05: a null string. */
- { { 1, "", USE_MBCURMAX }, { 0, 1, 0 } },
- /* 06: a null pointer. */
- { { 0, "", USE_MBCURMAX }, { 0, 0, 0 } },
- /* Last element. */
- { .is_last = 1 }
- }
- },
- {
- { Tmblen, TST_LOC_enUS },
- {
- /* 01: a character. */
- { { 1, "A", USE_MBCURMAX }, { 0, 1, 1 } },
- /* 02: a character. */
- { { 1, "a", USE_MBCURMAX }, { 0, 1, 1 } },
- /* 03: a character + an invalid byte. */
- { { 1, "Z\204", USE_MBCURMAX }, { 0, 1, +1 } },
- /* 04: control/invalid characters. */
- { { 1, "\177\000", USE_MBCURMAX }, { 0, 1, +1 } },
- /* 05: a null string. */
- { { 1, "", USE_MBCURMAX }, { 0, 1, 0 } },
- /* 06: a null pointer. */
- { { 0, "", USE_MBCURMAX }, { 0, 0, 0 } },
- /* Last element. */
- { .is_last = 1 }
- }
- },
-#if 0
- {
- { Tmblen, TST_LOC_eucJP },
- {
- /* 01: a character. */
- { { 1, "\264\301", USE_MBCURMAX }, { 0, 1, 2 } },
- /* 02: a character. */
- { { 1, "\216\261", USE_MBCURMAX }, { 0, 1, 2 } },
- /* 03: a character + an invalid byte. */
- { { 1, "\260\241\200", USE_MBCURMAX }, { 0, 1, 2 } },
- /* 04: control/invalid characters. */
- { { 1, "\377\202", USE_MBCURMAX }, { EILSEQ, 1, -1 } },
- /* 05: a null string. */
- { { 1, "", USE_MBCURMAX }, { 0, 1, 0 } },
- /* 06: a null pointer. */
- { { 0, "", USE_MBCURMAX }, { 0, 0, 0 } },
- /* Last element. */
- { .is_last = 1 }
- }
- },
-#else
- {
- { Tmblen, TST_LOC_ja_UTF8 },
- {
- /* 01: a character. */
- { { 1, "\346\274\242", USE_MBCURMAX }, { 0, 1, 3 } },
- /* 02: a character. */
- { { 1, "\357\275\261", USE_MBCURMAX }, { 0, 1, 3 } },
- /* 03: a character + an invalid byte. */
- { { 1, "\345\272\234\200", USE_MBCURMAX }, { 0, 1, 3 } },
- /* 04: control/invalid characters. */
- { { 1, "\377\202", USE_MBCURMAX }, { EILSEQ, 1, -1 } },
- /* 05: a null string. */
- { { 1, "", USE_MBCURMAX }, { 0, 1, 0 } },
- /* 06: a null pointer. */
- { { 0, "", USE_MBCURMAX }, { 0, 0, 0 } },
- /* Last element. */
- { .is_last = 1 }
- }
- },
-#endif
- {
- { Tmblen, TST_LOC_end}
- }
-};
diff --git a/test/locale-mbwc/dat_mbrlen.c b/test/locale-mbwc/dat_mbrlen.c
deleted file mode 100644
index 63ae19f..0000000
--- a/test/locale-mbwc/dat_mbrlen.c
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_mbrlen.c
- *
- * MBRLEN: size_t mbrlen (const char *s, size_t n, mbstate_t *ps);
- */
-
-/*
- * NOTE:
- * (1) A mbstate object is initialized for
- * every new data record by the test program.
- *
- * (2) USE_MBCURMAX is defined as a value of 99.
- *
- */
-
-
-TST_MBRLEN tst_mbrlen_loc [] = {
- {
- { Tmbrlen, TST_LOC_de },
- {
- { /*----------------- #01 -----------------*/
- {
- {
- { 1, "", 0, 0, 0 },
- { 1, "", 1, 0, 0 },
- { 1, "\300", USE_MBCURMAX, 0, 0 },
- }
- },
- {
- {
- { 0, 1, 0, },
- { 0, 1, 0, },
- { 0, 1, 1, },
- }
- }
- },
- { /*----------------- #02 -----------------*/
- {
- {
- { 1, "\300\001", 0, 0, 0 },
- { 1, "\300\001", 1, 0, 0 },
- { 1, "\317\001", USE_MBCURMAX, 0, 0 },
- }
- },
- {
- {
- { 0, 1, 0, },
- { 0, 1, 1, },
- { 0, 1, 1, },
- }
- }
- },
- { .is_last = 1 }
- }
- },
- {
- { Tmbrlen, TST_LOC_enUS },
- {
- { /*----------------- #01 -----------------*/
- {
- {
- { 1, "A", 0, 0, 0 },
- { 1, "A", 1, 0, 0 },
- { 1, "A", USE_MBCURMAX, 0, 0 },
- }
- },
- {
- {
- { 0, 1, 0, },
- { 0, 1, 1, },
- { 0, 1, 1, },
- }
- }
- },
- { /*----------------- #02 -----------------*/
- {
- {
- { 1, "\317\001", 0, 1, 0 },
- { 1, "\317\001", 1, 1, 0 },
- { 1, "\317\001", USE_MBCURMAX, 1, 0 },
- }
- },
- {
- {
- { 0, 1, 0, },
- { EILSEQ, 1, -1, },
- { EILSEQ, 1, -1, },
- }
- }
- },
- { .is_last = 1 }
- }
- },
-#if 0
- {
- { Tmbrlen, TST_LOC_eucJP },
- {
- { /*----------------- #01 -----------------*/
- {
- {
- { 1, "\317\302", 1, 1, 1 },
- { 0, "", 0, 1, 0 },
- { 1, "\317\302", USE_MBCURMAX, 1, 1 },
- }
- },
- {
- {
- { 0, 1, -2, },
- { 0, 1, -1, },
- { 0, 1, 2, },
- }
- }
- },
- { /*----------------- #02 -----------------*/
- {
- {
- { 1, "\317", 1, 1, 0 },
- { 1, "\302", 1, 1, 0 },
- { 1, "\317\302", USE_MBCURMAX, 0, 0 },
- }
- },
- {
- {
- { 0, 1, -2, },
-#ifdef SHOJI_IS_RIGHT
- { 0, 1, +2, },
-#else
- /* XXX ISO C explicitly says that the return value does not
- XXX reflect the bytes contained in the state. */
- { 0, 1, +1, },
-#endif
- { 0, 1, 2, },
- }
- }
- },
- { /*----------------- #03 -----------------*/
- {
- {
- { 1, "\216\217", 0, 0, 0 },
- { 1, "\216\217", 1, 0, 0 },
- { 1, "\216\217", USE_MBCURMAX, 0, 0 },
- }
- },
- {
- {
- { 0, 1, 0, },
- { 0, 1, -2, },
- { EILSEQ, 1, -1, },
- }
- }
- },
- { .is_last = 1 }
- }
- },
-#else
- {
- { Tmbrlen, TST_LOC_ja_UTF8 },
- {
- { /*----------------- #01 -----------------*/
- {
- {
- { 1, "\345\222\214", 1, 1, 1 },
- { 0, "", 0, 1, 0 },
- { 1, "\345\222\214", USE_MBCURMAX, 1, 1 },
- }
- },
- {
- {
- { 0, 1, -2, },
- { 0, 1, -1, },
- { 0, 1, 3, },
- }
- }
- },
- { /*----------------- #02 -----------------*/
- {
- {
- { 1, "\317", 1, 1, 0 },
- { 1, "\266", 1, 1, 0 },
- { 1, "\345\222\214", USE_MBCURMAX, 0, 0 },
- }
- },
- {
- {
- { 0, 1, -2, },
-#ifdef SHOJI_IS_RIGHT
- { 0, 1, +2, },
-#else
- /* XXX ISO C explicitly says that the return value does not
- XXX reflect the bytes contained in the state. */
- { 0, 1, +1, },
-#endif
- { 0, 1, 3, },
- }
- }
- },
- { /*----------------- #03 -----------------*/
- {
- {
- { 1, "\302\303", 0, 0, 0 },
- { 1, "\302\303", 1, 0, 0 },
- { 1, "\302\303", USE_MBCURMAX, 0, 0 },
- }
- },
- {
- {
- { 0, 1, 0, },
- { 0, 1, -2, },
- { EILSEQ, 1, -1, },
- }
- }
- },
- { .is_last = 1 }
- }
- },
-#endif
- {
- { Tmbrlen, TST_LOC_end }
- }
-};
diff --git a/test/locale-mbwc/dat_mbrtowc.c b/test/locale-mbwc/dat_mbrtowc.c
deleted file mode 100644
index b8eb3dd..0000000
--- a/test/locale-mbwc/dat_mbrtowc.c
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_mbrtowc.c
- *
- * MBTOWC: size_t mbrtowc (wchar_t *pwc, char *s, size_t n,
- * mbstate_t *ps);
- */
-
-#include <limits.h>
-
-/* Note:
- assumes en_US = en_US.ascii
-*/
-
-
-
-
-TST_MBRTOWC tst_mbrtowc_loc [] = {
- {
- { Tmbrtowc, TST_LOC_de },
- {
- { /*----------------- #01 -----------------*/
- {
- {
- { 1, 1, "���", 1, 0, 0 },
- { 1, 1, "���", 2, 0, 0 },
- { 1, 1, "���", USE_MBCURMAX, 0, 0 },
- }
- },
- {
- {
- { 0, 1, 1, 0x00C4 },
- { 0, 1, 1, 0x00C4 },
- { 0, 1, 1, 0x00C4 },
- }
- }
- },
- { /*----------------- #02 -----------------*/
- {
- {
- { 1, 1, "���", 1, 0, 0 },
- { 1, 1, "���", 2, 0, 0 },
- { 1, 1, "���", USE_MBCURMAX, 0, 0 },
- }
- },
- {
- {
- { 0, 1, 1, 0x00C4 },
- { 0, 1, 1, 0x00C4 },
- { 0, 1, 1, 0x00C4 },
- }
- }
- },
- { .is_last = 1 }
- }
- },
-#if 0
- /* XXX: These tests don't make sense to me. */
- {
- { Tmbrtowc, TST_LOC_enUS },
- {
- { /*----------------- #01 -----------------*/
- {
- {
- { 1, 1, "���", 1, 0, 0 },
- { 1, 1, "���", 2, 0, 0 },
- { 1, 1, "���", USE_MBCURMAX, 0, 0 },
- }
- },
- {
- {
- { 0, 1, 1, 0x00C4 },
- { 0, 1, 1, 0x00C4 },
- { 0, 1, 1, 0x00C4 },
- }
- }
- },
- { /*----------------- #02 -----------------*/
- {
- {
- { 1, 1, "���", 1, 0, 0 },
- { 1, 1, "���", 2, 0, 0 },
- { 1, 1, "���", USE_MBCURMAX, 0, 0 },
- }
- },
- {
- {
- { 0, 1, 1, 0x00C4 },
- { 0, 1, 1, 0x00C4 },
- { 0, 1, 1, 0x00C4 },
- }
- }
- },
- { .is_last = 1 }
- }
- },
- {
- { Tmbrtowc, TST_LOC_eucJP },
- {
- { /*----------------- #01 -----------------*/
- {
- {
- { 1, 1, "���", 1, 0, 0 },
- { 1, 1, "���", 2, 0, 0 },
- { 1, 1, "���", USE_MBCURMAX, 0, 0 },
- }
- },
- {
- {
- { 0, 1, 1, 0x00C4 },
- { 0, 1, 1, 0x00C4 },
- { 0, 1, 1, 0x00C4 },
- }
- }
- },
- { /*----------------- #02 -----------------*/
- {
- {
- { 1, 1, "���", 1, 0, 0 },
- { 1, 1, "���", 2, 0, 0 },
- { 1, 1, "���", USE_MBCURMAX, 0, 0 },
- }
- },
- {
- {
- { 0, 1, 1, 0x00C4 },
- { 0, 1, 1, 0x00C4 },
- { 0, 1, 1, 0x00C4 },
- }
- }
- },
- { .is_last = 1 }
- }
- },
-#endif
- {
- { Tmbrtowc, TST_LOC_end }
- }
-};
diff --git a/test/locale-mbwc/dat_mbsrtowcs.c b/test/locale-mbwc/dat_mbsrtowcs.c
deleted file mode 100644
index 30a0a6c..0000000
--- a/test/locale-mbwc/dat_mbsrtowcs.c
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_mbsrtowcs.c
- *
- * MBSRTOWCS: size_t mbsrtowcs (wchar_t *ws, char **s, size_t n,
- * mbstate_t *ps);
- */
-
-
-TST_MBSRTOWCS tst_mbsrtowcs_loc [] = {
- {
- { Tmbsrtowcs, TST_LOC_de },
- {
- { /*----------------- #01 -----------------*/
- {
- {
- { 1, "���", 4, 0,0 },
- { 1, "���", 3, 0,0 },
- { 1, "���", 2, 0,0 },
- }
- },
- {
- {
- { 0,1,3, { 0x00FC,0x00E4,0x00F6,0x0000 } },
- { 0,1,3, { 0x00FC,0x00E4,0x00F6,0x0000 } },
- { 0,1,2, { 0x00FC,0x00E4,0x00F6,0x0000 } },
- }
- }
- },
- { /*----------------- #02 -----------------*/
- {
- {
- { 1, "���", 4, 0,0 },
- { 1, "", 1, 0,0 },
- { 0, "���", 4, 0,0 },
- }
- },
- {
- {
- { 0,1,3, { 0x00FC,0x00E4,0x00F6,0x0000 } },
- { 0,1,0, { 0x0000 } },
- { 0,1,3, { 0x0000 } },
- }
- }
- },
- { /*----------------- END -----------------*/
- .is_last = 1
- }
- }
- },
-
- {
- { Tmbsrtowcs, TST_LOC_enUS },
- {
- { /*----------------- #01 -----------------*/
- {
- {
- { 1, "ABC", 4, 0,0 },
- { 1, "ABC", 3, 0,0 },
- { 1, "ABC", 2, 0,0 },
- }
- },
- {
- {
- { 0,1,3, { 0x0041,0x0042,0x0043,0x0000 } },
- { 0,1,3, { 0x0041,0x0042,0x0043,0x0000 } },
- { 0,1,2, { 0x0041,0x0042,0x0043,0x0000 } },
- }
- }
- },
- { /*----------------- #02 -----------------*/
- {
- {
- { 1, "ABC", 4, 0,0 },
- { 1, "", 1, 0,0 },
- { 0, "ABC", 4, 0,0 },
- }
- },
- {
- {
- { 0,1,3, { 0x0041,0x0042,0x0043,0x0000 } },
- { 0,1,0, { 0x0000 } },
- { 0,1,3, { 0x0000 } },
- }
- }
- },
- { /*----------------- END -----------------*/
- .is_last = 1
- }
- }
- },
-
-#if 0
- {
- { Tmbsrtowcs, TST_LOC_eucJP },
- {
- { /*----------------- #01 -----------------*/
- {
- {
- { 1, "\244\242\244\244\244\246ABC", 7, 0,0 },
- { 1, "\244\242\244\244\244\246ABC", 6, 0,0 },
- { 1, "\244\242\244\244\244\246ABC", 4, 0,0 },
- }
- },
- {
- {
- { 0,1,6, { 0x3042,0x3044,0x3046,0x0041,0x0042,0x0043,0x0000 }},
- { 0,1,6, { 0x3042,0x3044,0x3046,0x0041,0x0042,0x0043,0x0000 }},
- { 0,1,4, { 0x3042,0x3044,0x3046,0x0041,0x0000 } },
- }
- }
- },
- { /*----------------- #02 -----------------*/
- {
- {
- { 1, "\244\242\244\244\244\246ABC", 7, 0,0 },
- { 1, "", 1, 0,0 },
- { 0, "\244\242\244\244\244\246ABC", 7, 0,0 },
- }
- },
- {
- {
- { 0,1,6, { 0x3042,0x3044,0x3046,0x0041,0x0042,0x0043,0x0000 }},
- { 0,1,0, { 0x0000 } },
- { 0,1,6, { 0x0000 } },
- }
- }
- },
- { /*----------------- END -----------------*/
- .is_last = 1
- }
- }
- },
-#else
- {
- { Tmbsrtowcs, TST_LOC_ja_UTF8 },
- {
- { /*----------------- #01 -----------------*/
- {
- {
- { 1, "\343\201\202\343\201\204\343\201\206ABC", 7, 0,0 },
- { 1, "\343\201\202\343\201\204\343\201\206ABC", 6, 0,0 },
- { 1, "\343\201\202\343\201\204\343\201\206ABC", 4, 0,0 },
- }
- },
- {
- {
- { 0,1,6, { 0x3042,0x3044,0x3046,0x0041,0x0042,0x0043,0x0000 }},
- { 0,1,6, { 0x3042,0x3044,0x3046,0x0041,0x0042,0x0043,0x0000 }},
- { 0,1,4, { 0x3042,0x3044,0x3046,0x0041,0x0000 } },
- }
- }
- },
- { /*----------------- #02 -----------------*/
- {
- {
- { 1, "\343\201\202\343\201\204\343\201\206ABC", 7, 0,0 },
- { 1, "", 1, 0,0 },
- { 0, "\343\201\202\343\201\204\343\201\206ABC", 7, 0,0 },
- }
- },
- {
- {
- { 0,1,6, { 0x3042,0x3044,0x3046,0x0041,0x0042,0x0043,0x0000 }},
- { 0,1,0, { 0x0000 } },
- { 0,1,6, { 0x0000 } },
- }
- }
- },
- { /*----------------- END -----------------*/
- .is_last = 1
- }
- }
- },
-#endif
- {
- { Tmbsrtowcs, TST_LOC_end }
- }
-};
diff --git a/test/locale-mbwc/dat_mbstowcs.c b/test/locale-mbwc/dat_mbstowcs.c
deleted file mode 100644
index 3b8ce65..0000000
--- a/test/locale-mbwc/dat_mbstowcs.c
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_mbstowcs.c
- *
- * MBSTOWCS: size_t mbstowcs (wchar_t *ws, char *s, size_t n);
- */
-
-#include <limits.h>
-
-TST_MBSTOWCS tst_mbstowcs_loc [] = {
- {
- { Tmbstowcs, TST_LOC_de },
- {
- { /*----------------- #01 -----------------*/
- {
- {
- { 1, 1, "ABC", 4 },
- { 1, 1, "ABC", 3 },
- { 1, 1, "ABC", 2 },
- }
- },
- {
- {
- { 0,1,3, { 0x0041,0x0042,0x0043,0x0000 } },
- { 0,1,3, { 0x0041,0x0042,0x0043,0x0000 } },
- { 0,1,2, { 0x0041,0x0042,0x0043,0x0000 } },
- }
- }
- },
- { /*----------------- #02 -----------------*/
- {
- {
- { 1, 1, "ABC", 4 },
- { 1, 1, "", 1 },
- { 0, 1, "ABC", 4 },
- }
- },
- {
- {
- { 0,1,3, { 0x0041,0x0042,0x0043,0x0000 } },
- { 0,1,0, { 0x0000 } },
- { 0,1,3, { 0x0000 } },
- }
- }
- },
- { .is_last = 1 }
- }
- },
- {
- { Tmbstowcs, TST_LOC_enUS },
- {
- { /*----------------- #01 -----------------*/
- {
- {
- { 1, 1, "ABC", 4 },
- { 1, 1, "ABC", 3 },
- { 1, 1, "ABC", 2 },
- }
- },
- {
- {
- { 0,1,3, { 0x0041,0x0042,0x0043,0x0000 } },
- { 0,1,3, { 0x0041,0x0042,0x0043,0x0000 } },
- { 0,1,2, { 0x0041,0x0042,0x0043,0x0000 } },
- }
- }
- },
- { /*----------------- #02 -----------------*/
- {
- {
- { 1, 1, "ABC", 4 },
- { 1, 1, "", 1 },
- { 0, 1, "ABC", 4 },
- }
- },
- {
- {
- { 0,1,3, { 0x0041,0x0042,0x0043,0x0000 } },
- { 0,1,0, { 0x0000 } },
- { 0,1,3, { 0x0000 } },
- }
- }
- },
- { .is_last = 1 }
- }
- },
-#if 0
- {
- { Tmbstowcs, TST_LOC_eucJP },
- {
- { /*----------------- #01 -----------------*/
- {
- {
- { 1, 1, "\244\242\244\244\244\246ABC", 7 },
- { 1, 1, "\244\242\244\244\244\246ABC", 6 },
- { 1, 1, "\244\242\244\244\244\246ABC", 4 },
- }
- },
- {
- {
- { 0,1,6, { 0x3042,0x3044,0x3046,0x0041,0x0042,0x0043,0x0000 }},
- { 0,1,6, { 0x3042,0x3044,0x3046,0x0041,0x0042,0x0043,0x0000 }},
- { 0,1,4, { 0x3042,0x3044,0x3046,0x0041,0x0000 } },
- }
- }
- },
- { /*----------------- #02 -----------------*/
- {
- {
-#ifdef SHOJI_IS_RIGHT
- /* XXX I really don't understand the first and third line.
- the result of the first line is the same as the first
- in the last test (i.e., returns 6). Also, the third
- test will simply convert everything. */
- { 1, 1, "\244\242\244\244\244\246ABC", 7 },
- { 1, 1, "", 1 },
- { 0, 1, "\244\242\244\244\244\246ABC", 7 },
-#else
- { 1, 1, "\244\242\244\244\244\246ABC", 4 },
- { 1, 1, "", 1 },
- { 0, 1, "\244\242\244\244\244\246ABC", 0 },
-#endif
- }
- },
- {
- {
- { 0,1,4, { 0x3042,0x3044,0x3046,0x0041,0x0000 } },
- { 0,1,0, { 0x0000 } },
- { 0,1,6, { 0x0000 } },
- }
- }
- },
- { .is_last = 1 }
- }
- },
-#else
- {
- { Tmbstowcs, TST_LOC_ja_UTF8 },
- {
- { /*----------------- #01 -----------------*/
- {
- {
- { 1, 1, "\343\201\202\343\201\204\343\201\206ABC", 7 },
- { 1, 1, "\343\201\202\343\201\204\343\201\206ABC", 6 },
- { 1, 1, "\343\201\202\343\201\204\343\201\206ABC", 4 },
- }
- },
- {
- {
- { 0,1,6, { 0x3042,0x3044,0x3046,0x0041,0x0042,0x0043,0x0000 }},
- { 0,1,6, { 0x3042,0x3044,0x3046,0x0041,0x0042,0x0043,0x0000 }},
- { 0,1,4, { 0x3042,0x3044,0x3046,0x0041,0x0000 } },
- }
- }
- },
- { /*----------------- #02 -----------------*/
- {
- {
-#ifdef SHOJI_IS_RIGHT
- /* XXX I really don't understand the first and third line.
- the result of the first line is the same as the first
- in the last test (i.e., returns 6). Also, the third
- test will simply convert everything. */
- { 1, 1, "\244\242\244\244\244\246ABC", 7 },
- { 1, 1, "", 1 },
- { 0, 1, "\244\242\244\244\244\246ABC", 7 },
-#else
- { 1, 1, "\343\201\202\343\201\204\343\201\206ABC", 4 },
- { 1, 1, "", 1 },
- { 0, 1, "\343\201\202\343\201\204\343\201\206ABC", 7 },
-#endif
- }
- },
- {
- {
- { 0,1,4, { 0x3042,0x3044,0x3046,0x0041,0x0000 } },
- { 0,1,0, { 0x0000 } },
- { 0,1,6, { 0x0000 } },
- }
- }
- },
- { .is_last = 1 }
- }
- },
-#endif
- {
- { Tmbstowcs, TST_LOC_end }
- }
-};
diff --git a/test/locale-mbwc/dat_mbtowc.c b/test/locale-mbwc/dat_mbtowc.c
deleted file mode 100644
index 9a7a9c3..0000000
--- a/test/locale-mbwc/dat_mbtowc.c
+++ /dev/null
@@ -1,444 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_mbtowc.c
- *
- * MBTOWC: int mbtowc (wchar_t *wp, char *s, size_t n);
- */
-
-/* NOTE:
- *
- * int mbtowc (wchar_t *wp, char *s, size_t n);
- *
- * where n: a maximum number of bytes
- * return: the number of bytes
- *
- *
- * o When you feed a null pointer for a string (s) to the function,
- * set s_flg=0 instead of putting just a 'NULL' there.
- * Even if you put a 'NULL', it means a null string as well as "".
- *
- * o When s is a null pointer, the function checks state dependency.
- *
- * state-dependent encoding - return NON-zero
- * state-independent encoding - return 0
- *
- * If state-dependent encoding is expected, set
- *
- * s_flg = 0, ret_flg = 0, ret_val = +1
- *
- * If state-independent encoding is expected, set
- *
- * s_flg = 0, ret_flg = 0, ret_val = 0
- *
- *
- * When you set ret_flg=1, the test program simply compares
- * an actual return value with an expected value. You can
- * check state-independent case (return value is 0) in that
- * way, but you can not check state-dependent case. So when
- * you check state- dependency in this test function:
- * tst_mbtowc(), set ret_flg=0 always. It's a special case
- * and the test function takes care of it.
- *
- * w_flg
- * | s: (a null string; can't be (char *)NULL)
- * | |
- * input. { 1, 0, (char)NULL, MB_LEN_MAX },
- * |
- * s_flg=0: makes _s_ a null pointer.
- *
- * expect { 0,0,0,x, 0x0000 },
- * | |
- * | ret_val: 0/+1
- * ret_flg=0
- *
- *
- * Test data for State dependent encodings:
- *
- * mbtowc( NULL, NULL, 0 ); ... first data
- * mbtowc( &wc, s1, n1 ); ... second data
- * mbtowc( &wc, s2, n2 ); ... third data
- * */
-
-#include <limits.h>
-
-TST_MBTOWC tst_mbtowc_loc [] = {
- {
- { Tmbtowc, TST_LOC_de },
- {
- { /*----------------- #01 -----------------*/
- {
- {
- { 1, 1, "\xfc\xe4\xf6", 1 },
- { 1, 1, "\xfc\xe4\xf6", 2 },
- { 1, 1, "\xfc\xe4\xf6", MB_LEN_MAX },
- }
- },
- {
- {
- { 0, 1, 1, 0x00FC },
- { 0, 1, 1, 0x00FC },
- { 0, 1, 1, 0x00FC },
- }
- }
- },
- { /*----------------- #02 -----------------*/
- {
- {
- { 1, 1, "\177", MB_LEN_MAX },
- { 1, 1, "\200", MB_LEN_MAX },
- { 1, 1, "\201", MB_LEN_MAX },
- }
- },
- {
- {
- { 0, 1, 1, 0x007F },
- { 0, 1, 1, 0x0080 },
- { 0, 1, 1, 0x0081 },
- }
- }
- },
- { /*----------------- #03 -----------------*/
- {
- {
- { 1, 1, "", MB_LEN_MAX },
- { 0, 1, "\xfc\xe4\xf6", 1 },
- { 0, 1, "\xfc\xe4\xf6", 2 },
- }
- },
- {
- {
- { 0, 1, 0, 0x0000 },
- { 0, 1, 1, 0x0000 },
- { 0, 1, 1, 0x0000 },
- }
- }
- },
- { /*----------------- #04 -----------------*/
- {
- {
- { 0, 1, "\xfc\xe4\xf6", MB_LEN_MAX },
- { 0, 1, "\177", MB_LEN_MAX },
- { 0, 1, "", MB_LEN_MAX },
- }
- },
- {
- {
- { 0, 1, 1, 0x0000 },
- { 0, 1, 1, 0x0000 },
- { 0, 1, 0, 0x0000 },
- }
- }
- },
- { /*----------------- #05 -----------------*/
- {
- {
- { 0, 1, "\xfc\xe4\xf6", MB_LEN_MAX },
- { 0, 1, "\177", MB_LEN_MAX },
- { 0, 0, NULL, MB_LEN_MAX },
- }
- },
- {
- {
- { 0, 1, 1, 0x0000 },
- { 0, 1, 1, 0x0000 },
- { 0, 0, 0, 0x0000 },
- }
- }
- },
- { .is_last = 1 }
- }
- },
- {
- { Tmbtowc, TST_LOC_enUS },
- {
- { /*----------------- #01 -----------------*/
- {
- {
- { 1, 1, "ABC", 1 },
- { 1, 1, "ABC", 2 },
- { 1, 1, "ABC", MB_LEN_MAX },
- }
- },
- {
- {
- { 0, 1, 1, 0x0041 },
- { 0, 1, 1, 0x0041 },
- { 0, 1, 1, 0x0041 },
- }
- }
- },
- { /*----------------- #02 -----------------*/
- {
- {
- { 1, 1, "\177", MB_LEN_MAX },
- { 1, 1, "\200", MB_LEN_MAX },
- { 1, 1, "\201", MB_LEN_MAX },
- }
- },
- {
- {
- { 0, 1, 1, 0x007F },
- { EILSEQ, 1, -1, 0x0000 },
- { EILSEQ, 1, -1, 0x0000 },
- }
- }
- },
- { /*----------------- #03 -----------------*/
- {
- {
- { 1, 1, "", MB_LEN_MAX },
- { 0, 1, "ABC", 1 },
- { 0, 1, "ABC", 2 },
- }
- },
- {
- {
- { 0, 1, 0, 0x0000 },
- { 0, 1, 1, 0x0000 },
- { 0, 1, 1, 0x0000 },
- }
- }
- },
- { /*----------------- #04 -----------------*/
- {
- {
- { 0, 1, "ABC", MB_LEN_MAX },
- { 0, 1, "\177", MB_LEN_MAX },
- { 0, 1, "", MB_LEN_MAX },
- }
- },
- {
- {
- { 0, 1, 1, 0x0000 },
- { 0, 1, 1, 0x0000 },
- { 0, 1, 0, 0x0000 },
- }
- }
- },
- { /*----------------- #05 -----------------*/
- {
- {
- { 0, 1, "ABC", MB_LEN_MAX },
- { 0, 1, "\177", MB_LEN_MAX },
- { 0, 0, NULL, MB_LEN_MAX },
- }
- },
- {
- {
- { 0, 1, 1, 0x0000 },
- { 0, 1, 1, 0x0000 },
- { 0, 0, 0, 0x0000 },
- }
- }
- },
- { .is_last = 1 }
- }
- },
-#if 0
- {
- { Tmbtowc, TST_LOC_eucJP },
- {
- { /*----------------- #01 -----------------*/
- {
- {
- { 1, 1, "\244\242A", 1 },
- { 1, 1, "\244\242A", 2 },
- { 1, 1, "\244\242A", MB_LEN_MAX },
- }
- },
- {
- {
-#ifdef SHOJI_IS_RIGHT
- { EILSEQ, 1, -1, 0x0000 },
-#else
- /* XXX EILSEQ was introduced in ISO C99. */
- { 0, 1, -1, 0x0000 },
-#endif
- { 0, 1, 2, 0x3042 },
- { 0, 1, 2, 0x3042 },
- }
- }
- },
- { /*----------------- #02 -----------------*/
- {
- {
- { 1, 1, "\177\244\242", MB_LEN_MAX },
- { 1, 1, "\377\244\242", MB_LEN_MAX },
- { 1, 1, "\201\244\242", MB_LEN_MAX },
- }
- },
- {
- {
- { 0, 1, +1, 0x007F },
-#ifdef SHOJI_IS_RIGHT
- { EILSEQ, 1, -1, 0x0000 },
-#else
- { 0, 1, -1, 0x0000 },
-#endif
- { 0, 1, +1, 0x0081 },
- }
- }
- },
- { /*----------------- #03 -----------------*/
- {
- {
- { 1, 1, "", MB_LEN_MAX },
- { 0, 1, "\244\242A", 1 },
- { 0, 1, "\244\242A", 2 },
- }
- },
- {
- {
- { 0, 1, 0, 0x0000 },
-#ifdef SHOJI_IS_RIGHT
- { EILSEQ, 1, -1, 0x0000 },
-#else
- /* XXX EILSEQ was introduced in ISO C99. */
- { 0, 1, -1, 0x0000 },
-#endif
- { 0, 1, 2, 0x0000 },
- }
- }
- },
- { /*----------------- #04 -----------------*/
- {
- {
- { 0, 1, "\244\242A", MB_LEN_MAX },
- { 0, 1, "\177\244\242", MB_LEN_MAX },
- { 0, 1, "", MB_LEN_MAX },
- }
- },
- {
- {
- { 0, 1, 2, 0x0000 },
- { 0, 1, +1, 0x0000 },
- { 0, 1, 0, 0x0000 },
- }
- }
- },
- { /*----------------- #05 -----------------*/
- {
- {
- { 0, 1, "\244\242A", MB_LEN_MAX },
- { 0, 1, "\177\244\242", MB_LEN_MAX },
- { 0, 0, NULL, MB_LEN_MAX },
- }
- },
- {
- {
- { 0, 1, 2, 0x0000 },
- { 0, 1, +1, 0x0000 },
- { 0, 0, 0, 0x0000 },
- }
- }
- },
- { .is_last = 1 }
- }
- },
-#else
- {
- { Tmbtowc, TST_LOC_ja_UTF8 },
- {
- { /*----------------- #01 -----------------*/
- {
- {
- { 1, 1, "\343\201\202A", 1 },
- { 1, 1, "\343\201\202A", 3 },
- { 1, 1, "\343\201\202A", MB_LEN_MAX },
- }
- },
- {
- {
-#ifdef SHOJI_IS_RIGHT
- { EILSEQ, 1, -1, 0x0000 },
-#else
- /* XXX EILSEQ was introduced in ISO C99. */
- { 0, 1, -1, 0x0000 },
-#endif
- { 0, 1, 3, 0x3042 },
- { 0, 1, 3, 0x3042 },
- }
- }
- },
- { /*----------------- #02 -----------------*/
- {
- {
- { 1, 1, "\177\343\201\202", MB_LEN_MAX },
- { 1, 1, "\377\343\201\202", MB_LEN_MAX },
- { 1, 1, "\302\201\343\201\202", MB_LEN_MAX },
- }
- },
- {
- {
- { 0, 1, +1, 0x007F },
-#ifdef SHOJI_IS_RIGHT
- { EILSEQ, 1, -1, 0x0000 },
-#else
- { 0, 1, -1, 0x0000 },
-#endif
- { 0, 1, +2, 0x0081 },
- }
- }
- },
- { /*----------------- #03 -----------------*/
- {
- {
- { 1, 1, "", MB_LEN_MAX },
- { 0, 1, "\343\201\202A", 1 },
- { 0, 1, "\343\201\202A", 3 },
- }
- },
- {
- {
- { 0, 1, 0, 0x0000 },
-#ifdef SHOJI_IS_RIGHT
- { EILSEQ, 1, -1, 0x0000 },
-#else
- /* XXX EILSEQ was introduced in ISO C99. */
- { 0, 1, -1, 0x0000 },
-#endif
- { 0, 1, 3, 0x0000 },
- }
- }
- },
- { /*----------------- #04 -----------------*/
- {
- {
- { 0, 1, "\343\201\202A", MB_LEN_MAX },
- { 0, 1, "\177\343\201\202", MB_LEN_MAX },
- { 0, 1, "", MB_LEN_MAX },
- }
- },
- {
- {
- { 0, 1, 3, 0x0000 },
- { 0, 1, +1, 0x0000 },
- { 0, 1, 0, 0x0000 },
- }
- }
- },
- { /*----------------- #05 -----------------*/
- {
- {
- { 0, 1, "\343\201\202A", MB_LEN_MAX },
- { 0, 1, "\177\343\201\202", MB_LEN_MAX },
- { 0, 0, NULL, MB_LEN_MAX },
- }
- },
- {
- {
- { 0, 1, 3, 0x0000 },
- { 0, 1, +1, 0x0000 },
- { 0, 0, 0, 0x0000 },
- }
- }
- },
- { .is_last = 1 }
- }
- },
-#endif
- {
- { Tmbtowc, TST_LOC_end }
- }
-};
diff --git a/test/locale-mbwc/dat_strcoll.c b/test/locale-mbwc/dat_strcoll.c
deleted file mode 100644
index e12037c..0000000
--- a/test/locale-mbwc/dat_strcoll.c
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_strcoll.c
- *
- * STRCOLL: int strcoll (const char *s1, const char *s2);
- */
-
-/*
- NOTE:
-
- If a return value is expected to be 0, set ret_flg=1 and the
- expected value = 0. If a return value is expected to be a
- positive/negative value, set ret_flg=0, and set the expected value
- = +1/-1.
- There is inconsistensy between tst_strcoll() and tst_wcscoll()(it
- has cmp_flg) for input data. I'll fix it.
-
- Assuming en_US to be en_US.ascii. (maybe, should be iso8859-1).
-
-
-
- ASCII CODE : A,B,C, ... , a, b, c, ... B,a:-1 a,B:+1
- DICTIONARY : A,a,B,b,C,c,.... a,B:-1 B,a:+1 */
-
-TST_STRCOLL tst_strcoll_loc [] = {
- {
- { Tstrcoll, TST_LOC_de },
- {
- { /*input.*/ { "�BCDEFG", "�BCDEFG" }, /* #1 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { "XX � XX", "XX B XX" }, /* #2 */
- /*expect*/ { 0,0,-1, },
- },
- { /*input.*/ { "XX B XX", "XX � XX" }, /* #3 */
- /*expect*/ { 0,0,+1, },
- },
- { /*input.*/ { "B", "a" }, /* #4 */
- /*expect*/ { 0,0,+1, },
- },
- { /*input.*/ { "a", "B" }, /* #5 */
- /*expect*/ { 0,0,-1, },
- },
- { /*input.*/ { "b", "A" }, /* #6 */
- /*expect*/ { 0,0,+1, },
- },
- { /*input.*/ { "A", "b" }, /* #7 */
- /*expect*/ { 0,0,-1, },
- },
- { /*input.*/ { "�", "B" }, /* #8 */
- /*expect*/ { 0,0,-1, },
- },
- { /*input.*/ { "B", "�" }, /* #9 */
- /*expect*/ { 0,0,+1, },
- },
- { .is_last = 1 } /* Last element. */
- }
- },
- {
- { Tstrcoll, TST_LOC_en },
- {
- { /*input.*/ { "ABCDEFG", "ABCDEFG" }, /* #1 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { "XX a XX", "XX B XX" }, /* #2 */
- /*expect*/ { 0,0,-1, },
- },
- { /*input.*/ { "XX B XX", "XX a XX" }, /* #3 */
- /*expect*/ { 0,0,+1, },
- },
- {
- /* <WAIVER> */
- /*input.*/ { "B", "a" }, /* #4 */
-#ifdef SHOJI_IS_RIGHT
- /*expect*/ { 0,0,-1, },
-#else
- /* XXX We are not testing the C locale. */
- /*expect*/ { 0,0,+1, },
-#endif
- },
- {
- /* <WAIVER> */
- /*input.*/ { "a", "B" }, /* #5 */
-#ifdef SHOJI_IS_RIGHT
- /*expect*/ { 0,0,+1, },
-#else
- /* XXX We are not testing the C locale. */
- /*expect*/ { 0,0,-1, },
-#endif
- },
- { /*input.*/ { "b", "A" }, /* #6 */
- /*expect*/ { 0,0,+1, },
- },
- { /*input.*/ { "A", "b" }, /* #7 */
- /*expect*/ { 0,0,-1, },
- },
-#ifdef NO_WAIVER
- /* XXX I do not yet know whether strcoll really should reject
- characters outside the multibyte character range. */
- {
- /* #8 */ /* <WAIVER> */
- /*input.*/ { "\244\242\244\244\244\246\244\250\244\252", "ABCDEFG"
},
- /*expect*/ { EINVAL,0,0, },
- },
- {
- /* #9 */ /* <WAIVER> */
- /*input.*/ { "ABCZEFG", "\244\242\244\244\244\246\244\250\244\252"
},
- /*expect*/ { EINVAL,0,0, },
- },
-#endif
- { .is_last = 1 } /* Last element. */
- }
- },
-#if 0
- {
- { Tstrcoll, TST_LOC_eucJP },
- {
- { /*input.*/ { "\244\242\244\244\244\246\244\250\244\252",
- "\244\242\244\244\244\246\244\250\244\252" }, /* #1 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { "\244\242\244\244\244\246\244\250\244\252",
- "\244\242\244\244\244\363\244\250\244\252" }, /* #2 */
- /*expect*/ { 0,0,-1, },
- },
- { /*input.*/ { "\244\242\244\244\244\363\244\250\244\252",
- "\244\242\244\244\244\246\244\250\244\252" }, /* #3 */
- /*expect*/ { 0,0,+1, },
- },
- { /*input.*/ { "B", "a" }, /* #4 */
- /*expect*/ { 0,0,-1, },
- },
- { /*input.*/ { "a", "B" }, /* #5 */
- /*expect*/ { 0,0,+1, },
- },
- { /*input.*/ { "b", "A" }, /* #6 */
- /*expect*/ { 0,0,+1, },
- },
- { /*input.*/ { "A", "b" }, /* #7 */
- /*expect*/ { 0,0,-1, },
- },
-#ifdef NO_WAIVER
- /* XXX I do not yet know whether strcoll really should reject
- characters outside the multibyte character range. */
- {
- /* <WAIVER> */
- /*input.*/ { "\200\216\217", "ABCDEFG" }, /* #8 */
- /*expect*/ { EINVAL,0,0, },
- },
- {
- /* <WAIVER> */
- /*input.*/ { "ABCZEFG", "\200\216\217" }, /* #9 */
- /*expect*/ { EINVAL,0,0, },
- },
-#endif
- { .is_last = 1 } /* Last element. */
- }
- },
-#else
- {
- { Tstrcoll, TST_LOC_ja_UTF8 },
- {
- { /*input.*/ {
"\343\201\202\343\201\204\343\201\206\343\201\210\343\201\212",
- "\343\201\202\343\201\204\343\201\206\343\201\210\343\201\212" }, /* #1
*/
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ {
"\343\201\202\343\201\204\343\201\206\343\201\210\343\201\212",
- "\343\201\202\343\201\204\343\202\223\343\201\210\343\201\212" }, /* #2
*/
- /*expect*/ { 0,0,-1, },
- },
- { /*input.*/ {
"\343\201\202\343\201\204\343\202\223\343\201\210\343\201\212",
- "\343\201\202\343\201\204\343\201\206\343\201\210\343\201\212" }, /* #3
*/
- /*expect*/ { 0,0,+1, },
- },
- { /*input.*/ { "B", "a" }, /* #4 */
- /*expect*/ { 0,0,-1, },
- },
- { /*input.*/ { "a", "B" }, /* #5 */
- /*expect*/ { 0,0,+1, },
- },
- { /*input.*/ { "b", "A" }, /* #6 */
- /*expect*/ { 0,0,+1, },
- },
- { /*input.*/ { "A", "b" }, /* #7 */
- /*expect*/ { 0,0,-1, },
- },
-#ifdef NO_WAIVER
- /* XXX I do not yet know whether strcoll really should reject
- characters outside the multibyte character range. */
- {
- /* <WAIVER> */
- /*input.*/ { "\200\216\217", "ABCDEFG" }, /* #8 */
- /*expect*/ { EINVAL,0,0, },
- },
- {
- /* <WAIVER> */
- /*input.*/ { "ABCZEFG", "\200\216\217" }, /* #9 */
- /*expect*/ { EINVAL,0,0, },
- },
-#endif
- { .is_last = 1 } /* Last element. */
- }
- },
-#endif
- {
- { Tstrcoll, TST_LOC_end }
- }
-};
diff --git a/test/locale-mbwc/dat_strfmon.c b/test/locale-mbwc/dat_strfmon.c
deleted file mode 100644
index 8c28bba..0000000
--- a/test/locale-mbwc/dat_strfmon.c
+++ /dev/null
@@ -1,268 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN CLIBRARY
- *
- * FILE: dat_strfmon.c
- *
- * STRFMON: size_t strfmon (char *buf, size_t nbyte, char *fmt, ... );
- */
-
-/*
- * NOTE:
- *
- * The buffer size should be enough to contain a string including a
- * null char.
- * Returns the number of bytes of the string (NOT including a null char).
- */
-
-TST_STRFMON tst_strfmon_loc [] = {
- {
- { Tstrfmon, TST_LOC_de },
- {
- {
- /* #01 */
- /*inp*/ { 24, "%n %% %i", 123.00 },
- /*exp*/ { 0,1,23, "123,00 EUR % 123,00 EUR" },
- },
- {
- /* #02 */
- /*inp*/ { 24, "%n %% %i", 123.00 },
- /*exp*/ { 0,1,23, "123,00 EUR % 123,00 EUR" },
- },
- {
- /* #03 */
- /*inp*/ { 23, "%n %% %i", 123.00 },
- /*exp*/ { E2BIG,1,-1, "" },
- },
- {
- /* #04 */
- /*inp*/ { 31, "%n|%i", 1234.561 },
- /*exp*/ { 0,1,25, "1.234,56 EUR|1.234,56 EUR"},
- },
- {
- /* #05 */
- /*inp*/ { 33, "%n|%i", -1234.561 },
- /*exp*/ { 0,1,27, "-1.234,56 EUR|-1.234,56 EUR"},
- },
- {
- /* #06 */
- /*inp*/ { 33, "%13n|%12i", 1234.561 },
- /*exp*/ { 0,1,26, " 1.234,56 EUR|1.234,56 EUR"},
- },
- {
- /* #07 */
- /*inp*/ { 33, "%12n|%12i", -1234.561 },
- /*exp*/ { 0,1,27, "-1.234,56 EUR|-1.234,56 EUR"},
- },
- {
- /* #08 */
- /*inp*/ { 33, "%#5n|%#5i", 1234.561 },
- /*exp*/ { 0,1,29, " 1.234,56 EUR| 1.234,56 EUR"},
- },
- {
- /* #09 */
- /*inp*/ { 33, "%#5n|%#5i", -1234.561 },
- /*exp*/ { 0,1,29, "- 1.234,56 EUR|- 1.234,56 EUR"},
- },
- {
- /* #10 */
- /*inp*/ { 33, "%=*#5n|%=*#5i", 1234.561 },
- /*exp*/ { 0,1,29, " *1.234,56 EUR| *1.234,56 EUR"},
- },
- {
- /* #11 */
- /*inp*/ { 33, "%=0#5n|%=0#5i", -1234.561 },
- /*exp*/ { 0,1,29, "-01.234,56 EUR|-01.234,56 EUR"},
- },
- {
- /* #12 */
- /*inp*/ { 33, "%^#5n|%^#5i", -1234.561 },
- /*exp*/ { 0,1,27, "- 1234,56 EUR|- 1234,56 EUR"},
- },
- {
- /* #13 */
- /*inp*/ { 33, "%#5.0n|%#5.0i", 1234.444 },
- /*exp*/ { 0,1,23, " 1.234 EUR| 1.234 EUR" },
- },
- {
- /* #14 */
- /*inp*/ { 33, "%#5.0n|%#5.4i", -1234.555 },
- /*exp*/ { 0,1,28, "- 1.235 EUR|- 1.234,5550 EUR"},
- },
- {
- /* #15 */
- /*inp*/ { 33, "%(#5n|%!(#5i", -1234.561 },
- /*exp*/ { 0,1,27, "( 1.234,56 EUR)|( 1.234,56)"},
- },
- { .is_last = 1 }
- }
- },
- {
- { Tstrfmon, TST_LOC_enUS },
- {
- {
- /* #01 */
- /*inp*/ { 22, "%n %% %i", 123.00 },
- /*exp*/ { 0,1,20, "$123.00 % USD 123.00" },
- },
- {
- /* #02 */
- /*inp*/ { 21, "%n %% %i", 123.00 },
- /*exp*/ { 0,1,20, "$123.00 % USD 123.00" },
- },
- {
- /* #03 */
- /*inp*/ { 20, "%n %% %i", 123.00 },
- /*exp*/ { E2BIG,1,-1, "" },
- },
- {
- /* #04 */
- /*inp*/ { 30, "%n|%i", 1234.561 },
- /*exp*/ { 0,1,22, "$1,234.56|USD 1,234.56" },
- },
- {
- /* #05 */
- /*inp*/ { 32, "%n|%i", -1234.561 },
- /*exp*/ { 0,1,24, "-$1,234.56|-USD 1,234.56" },
- },
- {
- /* #06 */
- /*inp*/ { 30, "%12n|%12i", 1234.561 },
- /*exp*/ { 0,1,25, " $1,234.56|USD 1,234.56"},
- },
- {
- /* #07 */
- /*inp*/ { 32, "%12n|%12i", -1234.561 },
- /*exp*/ { 0,1,26, " -$1,234.56|-USD 1,234.56"},
- },
- {
- /* #08 */
- /*inp*/ { 32, "%#5n|%#5i", 1234.561 },
- /*exp*/ { 0,1,26, " $ 1,234.56| USD 1,234.56"},
- },
- {
- /* #09 */
- /*inp*/ { 32, "%#5n|%#5i", -1234.561 },
- /*exp*/ { 0,1,26, "-$ 1,234.56|-USD 1,234.56"},
- },
- {
- /* #10 */
- /*inp*/ { 32, "%=*#5n|%=*#5i", 1234.561 },
- /*exp*/ { 0,1,26, " $*1,234.56| USD *1,234.56"},
- },
- {
- /* #11 */
- /*inp*/ { 32, "%=0#5n|%=0#5i", -1234.561 },
- /*exp*/ { 0,1,26, "-$01,234.56|-USD 01,234.56"},
- },
- {
- /* #12 */
- /*inp*/ { 32, "%^#5n|%^#5i", -1234.561 },
- /*exp*/ { 0,1,24, "-$ 1234.56|-USD 1234.56" },
- },
- {
- /* #13 */
- /*inp*/ { 32, "%#5.0n|%#5.0i", 1234.444 },
- /*exp*/ { 0,1,20, " $ 1,234| USD 1,234" },
- },
- {
- /* #14 */
- /*inp*/ { 32, "%#5.0n|%#5.4i", -1234.555 },
- /*exp*/ { 0,1,25, "-$ 1,235|-USD 1,234.5550"},
- },
- {
- /* #15 */
- /*inp*/ { 32, "%(#5n|%!(#5i", -1234.561 },
- /*exp*/ { 0,1,24, "($ 1,234.56)|( 1,234.56)" },
- },
- { .is_last = 1 }
- }
- },
- {
-#if 0
- { Tstrfmon, TST_LOC_eucJP },
-#else
- { Tstrfmon, TST_LOC_ja_UTF8 },
-#endif
- {
- {
- /* #01 */
- /*inp*/ { 17, "%n %% %i", 123.00 },
- /*exp*/ { 0,1,15, "\241\357123 % JPY 123" },
- },
- {
- /* #02 */
- /*inp*/ { 16, "%n %% %i", 123.00 },
- /*exp*/ { 0,1,15, "\241\357123 % JPY 123" },
- },
- {
- /* #03 */
- /*inp*/ { 15, "%n %% %i", 123.00 },
- /*exp*/ { E2BIG,1,-1, "" },
- },
- {
- /* #04 */
- /*inp*/ { 30, "%n|%i", 1234.561 },
- /*exp*/ { 0,1,17, "\241\3571,235|JPY 1,235" },
- },
- {
- /* #05 */
- /*inp*/ { 32, "%n|%i", -1234.561 },
- /*exp*/ { 0,1,19, "\241\357-1,235|JPY -1,235" },
- },
- {
- /* #06 */
- /*inp*/ { 32, "%12n|%12i", 1234.561 },
- /*exp*/ { 0,1,25, " \241\3571,235| JPY 1,235" },
- },
- {
- /* #07 */
- /*inp*/ { 32, "%12n|%12i", -1234.561 },
- /*exp*/ { 0,1,25, " \241\357-1,235| JPY -1,235" },
- },
- {
- /* #08 */
- /*inp*/ { 32, "%#5n|%#5i", 1234.561 },
- /*exp*/ { 0,1,21, " \241\357 1,235| JPY 1,235" },
- },
- {
- /* #09 */
- /*inp*/ { 32, "%#5n|%#5i", -1234.561 },
- /*exp*/ { 0,1,21, "\241\357- 1,235|JPY - 1,235" },
- },
- {
- /* #10 */
- /*inp*/ { 32, "%=*#5n|%=*#5i", 1234.561 },
- /*exp*/ { 0,1,21, " \241\357*1,235| JPY *1,235" },
- },
- {
- /* #11 */
- /*inp*/ { 32, "%=0#5n|%=0#5i", -1234.561 },
- /*exp*/ { 0,1,21, "\241\357-01,235|JPY -01,235" },
- },
- {
- /* #12 */
- /*inp*/ { 32, "%^#5n|%^#5i", -1234.561 },
- /*exp*/ { 0,1,19, "\241\357- 1235|JPY - 1235" },
- },
- {
- /* #13 */
- /*inp*/ { 32, "%#5.0n|%#5.0i", 1234.444 },
- /*exp*/ { 0,1,21, " \241\357 1,234| JPY 1,234" },
- },
- {
- /* #14 */
- /*inp*/ { 32, "%#5.0n|%#5.4i", -1234.555 },
- /*exp*/ { 0,1,26, "\241\357- 1,235|JPY - 1,234.5550"},
- },
- {
- /* #15 */
- /*inp*/ { 32, "%(#5n|%!(#5i", -1234.561 },
- /*exp*/ { 0,1,19, "(\241\357 1,235)|( 1,235)" },
- },
- { .is_last = 1 }
- }
- },
- {
- { Tstrfmon, TST_LOC_end }
- }
-};
diff --git a/test/locale-mbwc/dat_strxfrm.c b/test/locale-mbwc/dat_strxfrm.c
deleted file mode 100644
index 0c672d3..0000000
--- a/test/locale-mbwc/dat_strxfrm.c
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN CLIBRARY
- *
- * FILE: dat_strxfrm.c
- *
- * STRXFRM: size_t strxfrm (char *s1, const char s2, size_t n);
- */
-
-
-/*
- * NOTE:
- *
- * Return value and errno value are checked only for 2nd string:
- * org2[]; n1 and n2 don't mean bytes to be translated.
- * It means a buffer size including a null character.
- * Results of this test depens on results of strcoll().
- * If you got errors, check both test results.
- *
- * The buffer size should be enough to contain a string including a
- * null char. Returns the number of bytes of the string (NOT
- * including a null char).
- */
-
-
-
-TST_STRXFRM tst_strxfrm_loc [] = {
- {
- { Tstrxfrm, TST_LOC_de },
- {
- { /*inp*/ { "\xf6\xc4\xe4\xfc", "\xf6\xc4\xe4\xfc", 17, 17 },
/* #01 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "aA", "Aa", 10, 10 }, /* #02 */
- /*exp*/ { 0,0,0 , },
- },
- { /*inp*/ { "Aa", "aA", 10, 10 }, /* #03 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "abc", "", 13, 13 }, /* #04 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "a", "B", 7, 7 }, /* #05 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "B", "a", 7, 7 }, /* #06 */
- /*exp*/ { 0,0,0, },
- },
- {
- /* hiragana == latin1 */
- /*inp*/ { "abc", "\244\241\244\242", 13, 9 }, /* #07 */
- /*exp*/ { 0,0,0, },
- },
- { .is_last = 1 }
- }
- },
- {
- { Tstrxfrm, TST_LOC_enUS },
- {
- { /*inp*/ { "abcd", "abcd", 17, 17 }, /* #01 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "aA", "Aa", 10, 10 }, /* #02 */
- /*exp*/ { 0,0,0 , },
- },
- { /*inp*/ { "Aa", "aA", 10, 10 }, /* #03 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "abc", "", 13, 13 }, /* #04 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "a", "B", 7, 7 }, /* #05 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "B", "a", 7, 7 }, /* #06 */
- /*exp*/ { 0,0,0, },
- },
-#ifdef NO_WAIVER
- {
- /* <WAIVER> */
- /*inp*/ { "abc", "\244\241\244\242", 13, 9 }, /* #07 */
- /*exp*/ { EINVAL,0,0, },
- },
-#endif
- { .is_last = 1 }
- }
- },
-#if 0
- {
- { Tstrxfrm, TST_LOC_eucJP }, /* ??? */
- {
- {
- /* #01 */
- /*inp*/ { "\244\242\244\241", "\244\241\244\242", 5, 5 },
- /*exp*/ { 0,0,0, },
- },
- {
- /* #02 */
- /*inp*/ { "\244\241\244\242", "\244\242\244\241", 5, 5 },
- /*exp*/ { 0,0,0, },
- },
- {
- /* #03 */
- /*inp*/ { "\244\242\216\261", "\216\261\244\242", 5, 5 },
- /*exp*/ { 0,0,0, },
- },
-#ifdef NO_WAIVER
- {
- /*inp*/ { "AAA", "\216\217", 5, 5 }, /* #04 */ /* <WAIVER>
*/
- /*exp*/ { EINVAL,0,0, },
- },
-#endif
- { .is_last = 1 }
- }
- },
-#else
- {
- { Tstrxfrm, TST_LOC_ja_UTF8 }, /* ??? */
- {
- {
- /* #01 */
- /*inp*/ { "\343\201\202\343\201\201", "\343\201\201\343\201\202",
7, 7 },
- /*exp*/ { 0,0,0, },
- },
- {
- /* #02 */
- /*inp*/ { "\343\201\201\343\201\202", "\343\201\202\343\201\201",
7, 7 },
- /*exp*/ { 0,0,0, },
- },
- {
- /* #03 */
- /*inp*/ { "\343\201\202\357\275\261", "\357\275\261343\201\202",
7, 7 },
- /*exp*/ { 0,0,0, },
- },
-#ifdef NO_WAIVER
- {
- /*inp*/ { "AAA", "\340\277\220", 5, 5 }, /* #04 */ /*
<WAIVER> */
- /*exp*/ { EINVAL,0,0, },
- },
-#endif
- { .is_last = 1 }
- }
- },
-#endif
- {
- { Tstrxfrm, TST_LOC_end }
- }
-};
diff --git a/test/locale-mbwc/dat_swscanf.c b/test/locale-mbwc/dat_swscanf.c
deleted file mode 100644
index 088f165..0000000
--- a/test/locale-mbwc/dat_swscanf.c
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN CLIBRARY
- *
- * FILE: dat_swscanf.c
- *
- * SWSCANF: int swscanf (const wchar_t *s, const wchar_t *fmt, ...);
- */
-
-
-#include <errno.h>
-#include <stdlib.h>
-#include "tst_types.h"
-#include "tgn_locdef.h"
-
-
-TST_SWSCANF tst_swscanf_loc [] =
-{
- {
- { Tswscanf, TST_LOC_de },
- {
- /*------------------------ 01 -----------------------*/
- { { {
- 0x002D, 0x0031, 0x003A, /* %d: -1 */
- 0x0032, 0x003A, /* %u: 2 */
- 0x0033, 0x002C, 0x0033, 0x003A, /* %f: 3.3 */
- 0x00E4, 0x003A, /* %c: '�' */
- 0x00C4, 0x00DC, 0x0000, 0x0000, /* %s: "��" */
- },
- L"%d:%u:%f:%c:%s", 0
- },
- { /* The fields are: err_val, ret_flag, ret_val,
- val_int, val_uns, val_flt, val_c, val_s, val_S. */
- 0,1,5,
- -1, 2, 3.3, '�', "��", { 0x0000, },
- },
- },
- /*------------------------ 02 -----------------------*/
- { { {
- 0x00E4, 0x00C4, 0x0000 /* "��" */
- },
- L"%lc", 'C'
- },
- { 0,1,1,
- 0,0,0,0,"", { 0x00E4, 0x0000 },
- },
- },
- /*------------------------ 03 -----------------------*/
- { { {
- 0x00E4, 0x00C4, 0x0000 /* "��" */
- },
- L"%ls", 'S'
- },
- { 0,1,1,
- 0,0,0,0,"", { 0x00E4, 0x00C4, 0x0000 },
- },
- },
- /*------------------------ 04 -----------------------*/
- /* <NO_WAIVER> x 2 */
- { { {
- 0x00E4, 0x00C4, 0x0000 /* "��" */
- },
- L"1%d:2%d:3%d:4%d:5%d:6%d:7%d:8%d:9%d", 0
- },
-#ifdef SHOJI_IS_RIGHT
- { 1,EINVAL,1,WEOF,
- 0,0,0,0,"", { 0x0000 },
-#else
- { 0,1,0,
- 0,0,0,0,"", { 0x0000 },
-#endif
- },
- },
- /*---------------------------------------------------*/
- { .is_last = 1} /* Last element. */
- }
- },
- {
- { Tswscanf, TST_LOC_enUS },
- {
- /*------------------------ 01 -----------------------*/
- { { { 0x002D, 0x0031, 0x003A,
- 0x0032, 0x003A,
- 0x0035, 0x0034, 0x002E, 0x0033, 0x0045, 0x002D, 0x0031, 0x003A,
- 0x0041, 0x003A,
- 0x0061, 0x0062, 0x0000, 0x0000,
- },
- L"%d:%u:%f:%c:%s", 0
- },
- { 0,1,5,
- -1, 2, 5.43, 'A', "ab", { 0x0000 },
- },
- },
- /*------------------------ 02 -----------------------*/
- /* <NO_WAIVER> x 2 */
- { { {
- 0x0063, 0x0064, 0x0000
- },
- L"%C", 'C'
- },
- { 0,1,1,
- 0,0,0,0,"", { 0x0063, 0x0000 },
- },
- },
- /*------------------------ 03 -----------------------*/
- { { {
- 0x0063, 0x0064, 0x0000
- },
- L"%S", 'S'
- },
- { 0,1,1,
- 0,0,0,0,"", { 0x0063, 0x0064, 0x0000 },
- },
- },
- /*---------------------------------------------------*/
- { .is_last = 1} /* Last element. */
- }
- },
- {
-#if 0
- { Tswscanf, TST_LOC_eucJP },
-#else
- { Tswscanf, TST_LOC_ja_UTF8 },
-#endif
- {
- /*------------------------ 01 -----------------------*/
- { { { 0x002D, 0x0031, 0x003A,
- 0x0032, 0x003A,
- 0x0033, 0x002E, 0x0033, 0x003A,
- 0x0062, 0x003A,
- 0x0061, 0x0062, 0x0000, 0x0000,
- },
- L"%d:%u:%f:%c:%s", 0
- },
- { 0,1,5,
- -1, 2, 3.3, 'b', "ab", { 0x0000 }
- },
- },
- /*------------------------ 02 -----------------------*/
- { { {
- 0x30A2, 0x30A4, 0x0000
- },
- L"%ls", 'S'
- },
- { 0,1,1,
- 0,0,0,0,"", { 0x30A2, 0x30A4, 0x0000 }
- },
- },
- /*------------------------ 03 -----------------------*/
- { { {
- 0x0031, 0x003A,
- 0x0030, 0x003A,
- 0x0033, 0x002E, 0x0039, 0x003A,
- 0x0061, 0x003A,
- 0x0063, 0x0064, 0x0000, 0x0000,
- },
- L"%2$d:%1$u:%3$f:%4$c:%5$s", 0
- },
- { 0,1,5,
- 0, 1, 3.9, 'a', "cd", { 0x0000 }
- },
- },
-#ifdef SHOJI_IS_RIGHT
- /* XXX This test does not make sense. The format string is
- L"\x1\x2\x25\x53" and it is supposed to match the words
- 0x30A2, 0x30A4, 0x0001. */
- /*------------------------ 04 -----------------------*/
- /* <NO_WAIVER> x 2 */
- { { {
- 0x30A2, 0x30A4, 0x0001, 0x0000
- },
- { 0x0001,0x0002,0x0025,0x0053,0x0000 }, 'S'
- },
- { EILSEQ,1,EOF,
- 0,0,0,0,"", { 0x0000 }
- },
- },
-#endif
- /*---------------------------------------------------*/
- { .is_last = 1} /* Last element. */
- }
- },
- {
- { Tswscanf, TST_LOC_end }
- }
-};
diff --git a/test/locale-mbwc/dat_tow-funcs.h b/test/locale-mbwc/dat_tow-funcs.h
deleted file mode 100644
index 4456437..0000000
--- a/test/locale-mbwc/dat_tow-funcs.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_tow-funcs.h
- *
- * ISW*: int tow*( wint_t wc );
- */
-
-#include <errno.h>
-#include <stdlib.h>
-#include <wctype.h>
-#include "tst_types.h"
-#include "tgn_locdef.h"
-
-#define TST_TOW_LOC(FUNC, func) \
- TST_TOW## FUNC tst_tow## func ##_loc[]
-
-#define TST_TOW_REC(locale, func) \
- { Ttow## func, TST_LOC_## locale },
-
-/*
- * NOTE:
- * need more test data!
- */
diff --git a/test/locale-mbwc/dat_towctrans.c b/test/locale-mbwc/dat_towctrans.c
deleted file mode 100644
index cf3712a..0000000
--- a/test/locale-mbwc/dat_towctrans.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_towctrans.c
- *
- * TOWCTRANS: wint_t towctrans (wint_t wc, wctrans_t charclass);
- */
-
-#include <errno.h>
-#include <stdlib.h>
-#include <wctype.h>
-#include "tst_types.h"
-#include "tgn_locdef.h"
-
-/*
- * NOTE:
- * Set ret_flg = 1, when a return value is expected to be 0 (FALSE).
- * Set ret_flg = 0, when a return value is expected to be non-zero (TRUE).
- *
- * Since the functions return *non*-zero value for TRUE, can't
- * compare an actual return value with an expected return value.
- * Set the ret_flg=0 for TRUE cases and the tst_isw*() will check
- * the non-zero value.
- *
- * { { WEOF }, { 0,0,1,0 } },
- * | |
- * | ret_val: an expected return value
- * ret_flg: if 1, compare an actual return value with the
- * ret_val; if 0, the test program checks
- * the actual return value.
- *
- * CAUTION: if a charclass is invalid, the test function gives
- * towctrans() an invalid wctrans object instead of a return value
- * from wctrans() which is supposed to be 0.
- */
-
-TST_TOWCTRANS tst_towctrans_loc [] = {
- {
- { Ttowctrans, TST_LOC_C },
- {
-#ifdef SHOJI_IS_RIGHT
- { { 0x0010, "xxxxxxx" }, { EINVAL,1,0x0010 } },
-#else
- { { 0x0010, "xxxxxxx" }, { 0, 1,0x0010 } },
-#endif
- { { 0x007F, "tolower" }, { 0, 1,0x007F } },
- { { 0x0061, "toupper" }, { 0, 1,0x0041 } },
- { { 0x0041, "tolower" }, { 0, 1,0x0061 } },
- { .is_last = 1 }
- }
- },
- {
- { Ttowctrans, TST_LOC_de },
- {
-#ifdef SHOJI_IS_RIGHT
- { { 0x0010, "tojkata" }, { EINVAL,1,0x0010 } },
-#else
- { { 0x0010, "tojkata" }, { 0, 1,0x0010 } },
-#endif
- { { 0x0080, "tolower" }, { 0, 1,0x0080 } },
- { { 0x00EC, "toupper" }, { 0, 1,0x00CC } },
- { { 0x00CC, "tolower" }, { 0, 1,0x00EC } },
- { .is_last = 1 }
- }
- },
- {
- { Ttowctrans, TST_LOC_enUS },
- {
-#ifdef SHOJI_IS_RIGHT
- { { 0x0010, "xxxxxxx" }, { EINVAL,1,0x0010 } },
-#else
- { { 0x0010, "xxxxxxx" }, { 0, 1,0x0010 } },
-#endif
- { { 0x007F, "tolower" }, { 0, 1,0x007F } },
- { { 0x0061, "toupper" }, { 0, 1,0x0041 } },
- { { 0x0041, "tolower" }, { 0, 1,0x0061 } },
- { .is_last = 1 }
- }
- },
- {
-#if 0
- { Ttowctrans, TST_LOC_eucJP },
-#else
- { Ttowctrans, TST_LOC_ja_UTF8 },
-#endif
- {
- { { 0xFF21, "tolower" }, { 0, 1,0xFF41 } },
- { { 0xFF41, "toupper" }, { 0, 1,0xFF21 } },
- { { 0x30A1, "tojhira" }, { 0, 1,0x3041 } },
- { { 0x3041, "tojkata" }, { 0, 1,0x30A1 } },
- { .is_last = 1 }
- }
- },
- {
- { Ttowctrans, TST_LOC_end }
- }
-};
diff --git a/test/locale-mbwc/dat_towlower.c b/test/locale-mbwc/dat_towlower.c
deleted file mode 100644
index b6dd275..0000000
--- a/test/locale-mbwc/dat_towlower.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_towlower.c
- *
- * ISW*: int towlower (wint_t wc);
- */
-
-
-#include "dat_tow-funcs.h"
-
-
-TST_TOW_LOC (LOWER, lower) = {
-
- { TST_TOW_REC (de, lower)
- {
- { { WEOF }, { 0, 1, (wint_t)-1 } },
- { { 0x0080 }, { 0, 1, 0x0080 } },
- { { 0x00CC }, { 0, 1, 0x00EC } },
- { { 0x00EC }, { 0, 1, 0x00EC } },
- { .is_last = 1 } /* Last element. */
- }
- },
- { TST_TOW_REC (enUS, lower)
- {
- { { WEOF }, { 0, 1, (wint_t)-1 } },
- { { 0x007F }, { 0, 1, 0x007F } },
- { { 0x0041 }, { 0, 1, 0x0061 } },
- { { 0x0061 }, { 0, 1, 0x0061 } },
- { .is_last = 1 } /* Last element. */
- }
- },
-#if 0
- { TST_TOW_REC (eucJP, lower)
-#else
- { TST_TOW_REC (ja_UTF8, lower)
-#endif
- {
- { { 0x007F }, { 0, 1, 0x007F } },
- { { 0x0080 }, { 0, 1, 0x0080 } },
- { { 0xFF21 }, { 0, 1, 0xFF41 } },
- { { 0xFF41 }, { 0, 1, 0xFF41 } },
- { .is_last = 1 } /* Last element. */
- }
- },
- { TST_TOW_REC (end, lower) }
-};
diff --git a/test/locale-mbwc/dat_towupper.c b/test/locale-mbwc/dat_towupper.c
deleted file mode 100644
index 704ad44..0000000
--- a/test/locale-mbwc/dat_towupper.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_towupper.c
- *
- * ISW*: int towupper (wint_t wc);
- */
-
-
-#include "dat_tow-funcs.h"
-
-
-TST_TOW_LOC (UPPER, upper) = {
-
- { TST_TOW_REC (de, upper)
- {
- { { WEOF }, { 0, 1, (wint_t)-1 } },
- { { 0x0080 }, { 0, 1, 0x0080 } },
- { { 0x00EC }, { 0, 1, 0x00CC } },
- { { 0x00CC }, { 0, 1, 0x00CC } },
- { .is_last = 1 } /* Last element. */
- }
- },
- { TST_TOW_REC (enUS, upper)
- {
- { { WEOF }, { 0, 1, (wint_t)-1 } },
- { { 0x0080 }, { 0, 1, 0x0080 } },
- { { 0x0041 }, { 0, 1, 0x0041 } },
- { { 0x0061 }, { 0, 1, 0x0041 } },
- { .is_last = 1 } /* Last element. */
- }
- },
-#if 0
- { TST_TOW_REC (eucJP, upper)
-#else
- { TST_TOW_REC (ja_UTF8, upper)
-#endif
- {
- { { WEOF }, { 0, 1, (wint_t)-1 } },
- { { 0x007F }, { 0, 1, 0x007F } },
- { { 0xFF41 }, { 0, 1, 0xFF21 } },
- { { 0xFF21 }, { 0, 1, 0xFF21 } },
- { .is_last = 1 } /* Last element. */
- }
- },
- { TST_TOW_REC (end, upper) }
-};
diff --git a/test/locale-mbwc/dat_wcrtomb.c b/test/locale-mbwc/dat_wcrtomb.c
deleted file mode 100644
index 055f7b0..0000000
--- a/test/locale-mbwc/dat_wcrtomb.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_wcrtomb.c
- *
- * WCRTOMB: intwcrtomb (char *s, wchar_t wc, mbstate_t *ps);
- *
- */
-
-TST_WCRTOMB tst_wcrtomb_loc [] = {
- {
- { Twcrtomb, TST_LOC_de },
- {
- /* #01 : normal case */
- { /*input.*/ { 1, 0x00FC, 0,0 },
- /*expect*/ { 0, 1,1, "�" },
- },
- /* #02 : normal case */
- { /*input.*/ { 1, 0x00D6, 0,0 },
- /*expect*/ { 0, 1,1, "�" },
- },
- /* #03 : error case */
- { /*input.*/ { 1, 0xFFA1, 0,0 },
- /*expect*/ { EILSEQ,1,-1, "" },
- },
- /* #04 : */
- { /*input.*/ { 0, 0x0041, 0,0 },
- /*expect*/ { 0, 1,1, "" },
- },
- /* #05 : */
- { /*input.*/ { 0, 0x0092, 0,0 },
- /*expect*/ { 0, 1,1, "" },
- },
- { .is_last = 1 }
- }
- },
- {
- { Twcrtomb, TST_LOC_enUS },
- {
- /* #01 : normal case */
- { /*input.*/ { 1, 0x0041, 0,0 },
- /*expect*/ { 0, 1,1, "A" },
- },
- /* #02 : normal case */
- { /*input.*/ { 1, 0x0042, 0,0 },
- /*expect*/ { 0, 1,1, "B" },
- },
- /* #03 : error case */
- /* <WAIVER> x 2 */
- { /*input.*/ { 1, 0x0092, 0,0 }, /* assume ascii */
- /*expect*/ { EILSEQ,1,-1, "" },
- },
- /* #04 : */
- { /*input.*/ { 0, 0x0041, 0,0 },
- /*expect*/ { 0, 1,1, "" },
- },
- /* #05 : */
- { /*input.*/ { 0, 0x0092, 0,0 },
- /*expect*/ { 0, 1,1, "" },
- },
- { .is_last = 1 }
- }
- },
-#if 0
- {
- { Twcrtomb, TST_LOC_eucJP },
- {
- /* #01 : normal case */
- { /*input.*/ { 1, 0x3042, 0,0 },
- /*expect*/ { 0, 1,2, "\244\242" },
- },
- /* #02 : normal case */
- { /*input.*/ { 1, 0x3044, 0,0 },
- /*expect*/ { 0, 1,2, "\244\244" },
- },
- /* #03 : normal case */
- { /*input.*/ { 1, 0x008E, 0,0 },
- /*expect*/ { EILSEQ, 1,-1, "" },
- },
- /* #04 : */
- { /*input.*/ { 0, 0x3042, 0,0 },
- /*expect*/ { 0, 0,0, "" },
- },
- /* #05 : */
- { /*input.*/ { 0, 0x008E, 0,0 },
- /*expect*/ { 0, 0,0, "" },
- },
- { .is_last = 1 }
- }
- },
-#else
- {
- { Twcrtomb, TST_LOC_ja_UTF8 },
- {
- /* #01 : normal case */
- { /*input.*/ { 1, 0x3042, 0,0 },
- /*expect*/ { 0, 1,3, "\343\201\202" },
- },
- /* #02 : normal case */
- { /*input.*/ { 1, 0x3044, 0,0 },
- /*expect*/ { 0, 1,3, "\343\201\204" },
- },
- /* #03 : normal case */
- { /*input.*/ { 1, 0x008E, 0,0 },
- /*expect*/ { EILSEQ, 1,-1, "" },
- },
- /* #04 : */
- { /*input.*/ { 0, 0x3042, 0,0 },
- /*expect*/ { 0, 0,0, "" },
- },
- /* #05 : */
- { /*input.*/ { 0, 0x008E, 0,0 },
- /*expect*/ { 0, 0,0, "" },
- },
- { .is_last = 1 }
- }
- },
-#endif
- {
- { Twcrtomb, TST_LOC_end }
- }
-};
diff --git a/test/locale-mbwc/dat_wcscat.c b/test/locale-mbwc/dat_wcscat.c
deleted file mode 100644
index f54e72d..0000000
--- a/test/locale-mbwc/dat_wcscat.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_wcscat.c
- *
- * WCSCAT: wchar_t *wcscat (wchar_t *ws1, wchar_t *ws2)
- */
-
-/* NOTE:
- Since this is not a locale sensitive function,
- it doesn't make sense to test the function on some
- locales. Better make different test cases for each locale ...
- (Also some wc* functions are not locale sensitive.)
-*/
-
-
-TST_WCSCAT tst_wcscat_loc [] = {
-
- {
- {Twcscat, TST_LOC_de},
- {
- /* 1 */
- {{{ 0x00C1,0x00C2,0x0000 },
- { 0x00C3,0x00C4,0x0000 }, },
- { 0, 0, 0,
- { 0x00C1,0x00C2,0x00C3,0x00C4,0x0000 } },
- },
- /* 2 */
- {{{ 0x0001,0x0002,0x0000 },
- { 0x0003,0x0004,0x0000 }, },
- { 0, 0, 0,
- { 0x0001,0x0002,0x0003,0x0004,0x0000 } },
- },
- /* 3 */
- {{{ 0x0000 },
- { 0x00C3,0x00C4,0x0000 }, },
- { 0, 0, 0,
- { 0x00C3,0x00C4,0x0000 } },
- },
- /* 4 */
- {{{ 0x0001,0xFFFF,0x0000 },
- { 0x0080,0x0090,0x0000 }, },
- { 0, 0, 0,
- { 0x0001,0xFFFF,0x0080,0x0090,0x0000 } },
- },
- {.is_last = 1}
- }
- },
- {
- {Twcscat, TST_LOC_enUS},
- {
- /* 1 */
- {{{ 0x0041,0x0042,0x0000 },
- { 0x0043,0x0044,0x0000 }, },
- { 0, 0, 0,
- { 0x0041,0x0042,0x0043,0x0044,0x0000 } },
- },
- /* 2 */
- {{{ 0x0001,0x0002,0x0000 },
- { 0x0003,0x0004,0x0000 }, },
- { 0, 0, 0,
- { 0x0001,0x0002,0x0003,0x0004,0x0000 } },
- },
- /* 3 */
- {{{ 0x0000 },
- { 0x0043,0x0044,0x0000 }, },
- { 0, 0, 0,
- { 0x0043,0x0044,0x0000 } },
- },
- /* 4 */
- {{{ 0x0001,0xFFFF,0x0000 },
- { 0x0080,0x0090,0x0000 }, },
- { 0, 0, 0,
- { 0x0001,0xFFFF,0x0080,0x0090,0x0000 } },
- },
- {.is_last = 1}
- }
- },
- {
-#if 0
- {Twcscat, TST_LOC_eucJP},
-#else
- {Twcscat, TST_LOC_ja_UTF8},
-#endif
- {
- /* 1 */
- {{{ 0x30A2,0x74E0,0x0000 },
- { 0xFF71,0x0041,0x0000 }, },
- { 0, 0, 0,
- { 0x30A2,0x74E0,0xFF71,0x0041,0x0000 } },
- },
- /* 2 */
- {{{ 0x0001,0x0002,0x0000 },
- { 0x0003,0x0004,0x0000 }, },
- { 0, 0, 0,
- { 0x0001,0x0002,0x0003,0x0004,0x0000 } },
- },
- /* 3 */
- {{{ 0x30A2,0xFF71,0x0000 },
- { 0x0000 }, },
- { 0, 0, 0,
- { 0x30A2,0xFF71,0x0000 } },
- },
- /* 4 */
- {{{ 0x0001,0xFFFF,0x0000 },
- { 0x0080,0x0090,0x0000 }, },
- { 0, 0, 0,
- { 0x0001,0xFFFF,0x0080,0x0090,0x0000 } },
- },
- {.is_last = 1}
- }
- },
- {
- {Twcscat, TST_LOC_end}
- }
-};
diff --git a/test/locale-mbwc/dat_wcschr.c b/test/locale-mbwc/dat_wcschr.c
deleted file mode 100644
index aa355e9..0000000
--- a/test/locale-mbwc/dat_wcschr.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_wcschr.c
- *
- * WCSCHR: wchar_t *wcschr (const wchar_t *ws, wchar_t wc);
- */
-
-TST_WCSCHR tst_wcschr_loc [] = {
-
- { { Twcschr, TST_LOC_de },
- {
- { /*input.*/ { { 0x00C1,0x00C2,0x00C3,0x0000 }, 0x00C0 }, /* #1 */
- /*expect*/ { 0,1,(wchar_t *)NULL },
- },
- { /*input.*/ { { 0x00C1,0x00C2,0x00C3,0x0000 }, 0x00C1 }, /* #2 */
- /*expect*/ { 0,0,0 },
- },
- { /*input.*/ { { 0x00C1,0x00C2,0x00C3,0x0000 }, 0x00C2 }, /* #3 */
- /*expect*/ { 0,0,0 },
- },
- { /*input.*/ { { 0x00C1,0x00C2,0x00C3,0x0000 }, 0x00C3 }, /* #4 */
- /*expect*/ { 0,0,0 },
- },
- { /*input.*/ { { 0x00C1,0x00C2,0x00C3,0x0000 }, 0x0000 }, /* #5 */
- /*expect*/ { 0,0,0 },
- },
- { /*input.*/ { { 0x0000,0x00C2,0x00C3,0x0000 }, 0x00C1 }, /* #6 */
- /*expect*/ { 0,1,(wchar_t *)NULL },
- },
- { /*input.*/ { { 0x0000,0x00C2,0x00C3,0x0000 }, 0x0000 }, /* #7 */
- /*expect*/ { 0,0,0 },
- },
- { .is_last = 1 }
- }
- },
- { { Twcschr, TST_LOC_enUS },
- {
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 }, 0x0040 }, /* #1 */
- /*expect*/ { 0,1,(wchar_t *)NULL },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 }, 0x0041 }, /* #2 */
- /*expect*/ { 0,0,0 },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 }, 0x0042 }, /* #3 */
- /*expect*/ { 0,0,0 },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 }, 0x0043 }, /* #4 */
- /*expect*/ { 0,0,0 },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 }, 0x0000 }, /* #5 */
- /*expect*/ { 0,0,0 },
- },
- { /*input.*/ { { 0x0000,0x0042,0x0043,0x0000 }, 0x0041 }, /* #6 */
- /*expect*/ { 0,1,(wchar_t *)NULL },
- },
- { /*input.*/ { { 0x0000,0x0042,0x0043,0x0000 }, 0x0000 }, /* #7 */
- /*expect*/ { 0,0,0 },
- },
- { .is_last = 1 }
- }
- },
-#if 0
- { { Twcschr, TST_LOC_eucJP },
-#else
- { { Twcschr, TST_LOC_ja_UTF8 },
-#endif
- {
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 }, 0x3040 }, /* #1 */
- /*expect*/ { 0,1,(wchar_t *)NULL },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 }, 0x3041 }, /* #2 */
- /*expect*/ { 0,0,0 },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 }, 0x3042 }, /* #3 */
- /*expect*/ { 0,0,0 },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 }, 0x3043 }, /* #4 */
- /*expect*/ { 0,0,0 },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 }, 0x0000 }, /* #5 */
- /*expect*/ { 0,0,0 },
- },
- { /*input.*/ { { 0x0000,0x3042,0x3043,0x0000 }, 0x3041 }, /* #6 */
- /*expect*/ { 0,1,(wchar_t *)NULL },
- },
- { /*input.*/ { { 0x0000,0x3042,0x3043,0x0000 }, 0x0000 }, /* #7 */
- /*expect*/ { 0,0,0 },
- },
- { .is_last = 1 }
- }
- },
- { { Twcschr, TST_LOC_end } }
-};
diff --git a/test/locale-mbwc/dat_wcscmp.c b/test/locale-mbwc/dat_wcscmp.c
deleted file mode 100644
index a2da551..0000000
--- a/test/locale-mbwc/dat_wcscmp.c
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_wcscmp.c
- *
- * WCSCMP: int wcscmp (const wchar_t *ws1, const wchar_t *ws2);
- */
-
-/* NOTE:
- This is not a locale sensitive function and
- it may not make sence testing it for each locale ...
-*/
-
-
-TST_WCSCMP tst_wcscmp_loc [] = {
- {
- { Twcscmp, TST_LOC_de },
- {
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D1,0x00D2,0x00D3,0x0000 }, }, /* #1 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x0000,0x00D1,0x00D3,0x0000 },
- { 0x0000,0x00D2,0x00D3,0x0000 }, }, /* #2 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x00D1,0x00D1,0x00D3,0x0000 },
- { 0x0000,0x00D2,0x00D3,0x0000 }, }, /* #3 */
- /*expect*/ { 0,1,1, },
- },
- { /*input.*/ { { 0x0000,0x00D2,0x00D3,0x0000 },
- { 0x00D1,0x00D1,0x00D3,0x0000 }, }, /* #4 */
- /*expect*/ { 0,1,-1, },
- },
- { /*input.*/ { { 0x00D1,0x00D5,0x00D3,0x0000 },
- { 0x00D1,0x00D2,0x00D3,0x0000 }, }, /* #5 */
- /*expect*/ { 0,1,1, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D1,0x00D2,0x00D9,0x0000 }, }, /* #6 */
- /*expect*/ { 0,1,-1, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x0000 },
- { 0x00D1,0x00D2,0x00D9,0x0000 }, }, /* #7 */
- /*expect*/ { 0,1,-1, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D9,0x0000 },
- { 0x00D1,0x00D2,0x0000 }, }, /* #8 */
- /*expect*/ { 0,1,1, },
- },
- { .is_last = 1 }
- }
- },
- {
- { Twcscmp, TST_LOC_enUS },
- {
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0041,0x0042,0x0043,0x0000 }, }, /* #1 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x0000,0x0041,0x0043,0x0000 },
- { 0x0000,0x0042,0x0043,0x0000 }, }, /* #2 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x0041,0x0041,0x0043,0x0000 },
- { 0x0000,0x0042,0x0043,0x0000 }, }, /* #3 */
- /*expect*/ { 0,1,1, },
- },
- { /*input.*/ { { 0x0000,0x0042,0x0043,0x0000 },
- { 0x0041,0x0041,0x0043,0x0000 }, }, /* #4 */
- /*expect*/ { 0,1,-1, },
- },
- { /*input.*/ { { 0x0041,0x0045,0x0043,0x0000 },
- { 0x0041,0x0042,0x0043,0x0000 }, }, /* #5 */
- /*expect*/ { 0,1,1, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0041,0x0042,0x0049,0x0000 }, }, /* #6 */
- /*expect*/ { 0,1,-1, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0000 },
- { 0x0041,0x0042,0x0049,0x0000 }, }, /* #7 */
- /*expect*/ { 0,1,-1, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0049,0x0000 },
- { 0x0041,0x0042,0x0000 }, }, /* #8 */
- /*expect*/ { 0,1,1, },
- },
- { .is_last = 1 }
- }
- },
- {
-#if 0
- { Twcscmp, TST_LOC_eucJP},
-#else
- { Twcscmp, TST_LOC_ja_UTF8},
-#endif
- {
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3041,0x3042,0x3043,0x0000 }, }, /* #1 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x0000,0x3041,0x3043,0x0000 },
- { 0x0000,0x3042,0x3043,0x0000 }, }, /* #2 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x3041,0x3041,0x3043,0x0000 },
- { 0x0000,0x3042,0x3043,0x0000 }, }, /* #3 */
- /*expect*/ { 0,1,1, },
- },
- { /*input.*/ { { 0x0000,0x3042,0x3043,0x0000 },
- { 0x3041,0x3041,0x3043,0x0000 }, }, /* #4 */
- /*expect*/ { 0,1,-1, },
- },
- { /*input.*/ { { 0x3041,0x3045,0x3043,0x0000 },
- { 0x3041,0x3042,0x3043,0x0000 }, }, /* #5 */
- /*expect*/ { 0,1,1, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3041,0x3042,0x3049,0x0000 }, }, /* #6 */
- /*expect*/ { 0,1,-1, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x0000 },
- { 0x3041,0x3042,0x3049,0x0000 }, }, /* #7 */
- /*expect*/ { 0,1,-1, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3049,0x0000 },
- { 0x3041,0x3042,0x0000 }, }, /* #8 */
- /*expect*/ { 0,1,1, },
- },
- { .is_last = 1 }
- }
- },
- {
- { Twcschr, TST_LOC_end}
- }
-};
diff --git a/test/locale-mbwc/dat_wcscoll.c b/test/locale-mbwc/dat_wcscoll.c
deleted file mode 100644
index a9733ad..0000000
--- a/test/locale-mbwc/dat_wcscoll.c
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_wcscoll.c
- *
- * WCSCOLL: int wcscoll (const wchar_t *ws1, const wchar_t *ws2);
- */
-
-/*
- * CAUTION:
- * When LC_COLLATE (or LC_ALL) is set for ja_JP.EUC,
- * wcscoll() core-dumps for big values such as 0x3041
- * (0x0041 is okay) in glibc 2.1.2.
- *
- * NOTE:
- * a) When 0 is expected as a return value, set ret_flg=1.
- * - the return value is compared with an expected value: ret_val.
- * b) When a positive value is expected as a return value,
- * set ret_flg=0 and set cmp_flg=+1.
- * - the return value is not compared with the expected value
- * (can not be compared); instead, the test program checks
- * if the return value is positive when cmp_flg=+1.
- * c) When a negative value is expected as a return value,
- * ......
- * d) When data contains invalid values, set err_val to the expected errno.
- * Set ret_flg=0 and cmp_flg=0 so that it doesn't compare
- * the return value with an expected value or doesn't check
- * the sign of the return value.
- *
- *
- * -------------------------------------------
- * CASE err_val ret_flg ret_val cmp_flg
- * -------------------------------------------
- * a) 0 1 0 0
- * b) 0 0 0 +1
- * c) 0 0 0 -1
- * d) EINVAL 0 0 0
- * -------------------------------------------
- */
-
-
-TST_WCSCOLL tst_wcscoll_loc [] = {
-
- { { Twcscoll, TST_LOC_de },
- {
- { /*input.*/ { { 0x00E1,0x00E2,0x00E3,0x0000 },
- { 0x00E1,0x00E2,0x00E3,0x0000 }, }, /* #1 */
- /*expect*/ { 0,1,0, 0, },
- },
- { /*input.*/ { { 0x0000,0x00E1,0x00E3,0x0000 },
- { 0x0000,0x00E2,0x00E3,0x0000 }, }, /* #2 */
- /*expect*/ { 0,1,0, 0, },
- },
- { /*input.*/ { { 0x00E1,0x00E1,0x00E3,0x0000 },
- { 0x0000,0x00E2,0x00E3,0x0000 }, }, /* #3 */
- /*expect*/ { 0,0,0, +1, },
- },
- { /*input.*/ { { 0x0000,0x00E2,0x00E3,0x0000 },
- { 0x00E1,0x00E1,0x00E3,0x0000 }, }, /* #4 */
- /*expect*/ { 0,0,0, -1, },
- },
- { /*input.*/ { { 0x00E1,0x0042,0x00E3,0x0000 },
- { 0x00E1,0x0061,0x00E3,0x0000 }, }, /* #5 */
- /*expect*/ { 0,0,0, +1, },
- },
- { /*input.*/ { { 0x00E1,0x0061,0x00E3,0x0000 },
- { 0x00E1,0x0042,0x00E3,0x0000 }, }, /* #6 */
- /*expect*/ { 0,0,0, -1, },
- },
- { /*input.*/ { { 0x00E1,0x00E2,0x0000 },
- { 0x00E1,0x00E2,0x00E9,0x0000 }, }, /* #7 */
- /*expect*/ { 0,0,0, -1, },
- },
- { /*input.*/ { { 0x00E1,0x00E2,0x00E9,0x0000 },
- { 0x00E1,0x00E2,0x0000 }, }, /* #8 */
- /*expect*/ { 0,0,0, +1, },
- },
- { /*input.*/ { { 0x00E1,0x0092,0x00E9,0x0000 },
- { 0x00E1,0x008E,0x00E9,0x0000 }, }, /* #9 */
- /*expect*/ { 0,0,0, +1, },
- },
- { /*input.*/ { { 0x00E1,0x008E,0x00E9,0x0000 },
- { 0x00E1,0x0092,0x00E9,0x0000 }, }, /* #10 */
- /*expect*/ { 0,0,0, -1, },
- },
- { .is_last = 1 }
- }
- },
- { { Twcscoll, TST_LOC_en },
- {
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0041,0x0042,0x0043,0x0000 }, }, /* #1 */
- /*expect*/ { 0,1,0, 0, },
- },
- { /*input.*/ { { 0x0000,0x0041,0x0043,0x0000 },
- { 0x0000,0x0042,0x0043,0x0000 }, }, /* #2 */
- /*expect*/ { 0,1,0, 0, },
- },
- { /*input.*/ { { 0x0041,0x0041,0x0043,0x0000 },
- { 0x0000,0x0042,0x0043,0x0000 }, }, /* #3 */
- /*expect*/ { 0,0,0, +1, },
- },
- { /*input.*/ { { 0x0000,0x0042,0x0043,0x0000 },
- { 0x0041,0x0041,0x0043,0x0000 }, }, /* #4 */
- /*expect*/ { 0,0,0, -1, },
- },
-#ifdef SHOJI_IS_RIGHT
- /* <WAIVER> */ /* assume ascii */
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0041,0x0061,0x0043,0x0000 }, }, /* #5 */
- /*expect*/ { 0,0,0, -1, },
- },
- /* <WAIVER> */ /* assume ascii */
- { /*input.*/ { { 0x0041,0x0061,0x0043,0x0000 },
- { 0x0041,0x0042,0x0043,0x0000 }, }, /* #6 */
- /*expect*/ { 0,0,0, +1, },
- },
-#else
- /* XXX Correct order is lowercase before uppercase. */
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0041,0x0061,0x0043,0x0000 }, }, /* #5 */
- /*expect*/ { 0,0,0, +1, },
- },
- { /*input.*/ { { 0x0041,0x0061,0x0043,0x0000 },
- { 0x0041,0x0042,0x0043,0x0000 }, }, /* #6 */
- /*expect*/ { 0,0,0, -1, },
- },
-#endif
- { /*input.*/ { { 0x0041,0x0042,0x0000 },
- { 0x0041,0x0042,0x0049,0x0000 }, }, /* #7 */
- /*expect*/ { 0,0,0, -1, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0049,0x0000 },
- { 0x0041,0x0042,0x0000 }, }, /* #8 */
- /*expect*/ { 0,0,0, +1, },
- },
-#ifdef SHOJI_IS_RIGHT
- { /*input.*/ { { 0x0041,0x0092,0x0049,0x0000 },
- { 0x0041,0x008E,0x0049,0x0000 }, }, /* #9 */
- /*expect*/ { 0,0,0, +1, },
- },
- { /*input.*/ { { 0x0041,0x008E,0x0049,0x0000 },
- { 0x0041,0x0092,0x0049,0x0000 }, }, /* #10 */
- /*expect*/ { 0,0,0, -1, },
- },
-#else
- /* Do not assume position of character out of range. */
- { /*input.*/ { { 0x0041,0x0092,0x0049,0x0000 },
- { 0x0041,0x008E,0x0049,0x0000 }, }, /* #9 */
- /*expect*/ { 0,0,0, 0, },
- },
- { /*input.*/ { { 0x0041,0x008E,0x0049,0x0000 },
- { 0x0041,0x0092,0x0049,0x0000 }, }, /* #10 */
- /*expect*/ { 0,0,0, 0, },
- },
-#endif
- { .is_last = 1 }
- }
- },
-#if 0
- { { Twcscoll, TST_LOC_eucJP },
-#else
- { { Twcscoll, TST_LOC_ja_UTF8 },
-#endif
- {
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3041,0x3042,0x3043,0x0000 }, }, /* #1 */
- /*expect*/ { 0,1,0, 0, },
- },
- { /*input.*/ { { 0x0000,0x3041,0x3043,0x0000 },
- { 0x0000,0x3042,0x3043,0x0000 }, }, /* #2 */
- /*expect*/ { 0,1,0, 0, },
- },
- { /*input.*/ { { 0x3041,0x3041,0x3043,0x0000 },
- { 0x0000,0x3042,0x3043,0x0000 }, }, /* #3 */
- /*expect*/ { 0,0,0, +1, },
- },
- { /*input.*/ { { 0x0000,0x3042,0x3043,0x0000 },
- { 0x3041,0x3041,0x3043,0x0000 }, }, /* #4 */
- /*expect*/ { 0,0,0, -1, },
- },
- { /*input.*/ { { 0x3041,0x0042,0x3043,0x0000 },
- { 0x3041,0x0061,0x3043,0x0000 }, }, /* #5 */
- /*expect*/ { 0,0,0, -1, },
- },
- { /*input.*/ { { 0x3041,0x0061,0x3043,0x0000 },
- { 0x3041,0x0042,0x3043,0x0000 }, }, /* #6 */
- /*expect*/ { 0,0,0, +1, },
- },
- { /*input.*/ { { 0x3041,0x3042,0xFF71,0x0000 },
- { 0x3041,0x3042,0x30A2,0x0000 }, }, /* #7 */
- /*expect*/ { 0,0,0, -1, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x30A2,0x0000 },
- { 0x3041,0x3042,0xFF71,0x0000 }, }, /* #8 */
- /*expect*/ { 0,0,0, +1, },
- },
- { /*input.*/ { { 0x30FF,0x3092,0x3049,0x0000 },
- { 0x3041,0x308E,0x3049,0x0000 }, }, /* #9 */
- /*expect*/ { 0,0,0, -1, },
- },
- { /*input.*/ { { 0x3041,0x308E,0x3049,0x0000 },
- { 0x30FF,0x3092,0x3049,0x0000 }, }, /* #10 */
- /*expect*/ { 0,0,0, +1, },
- },
- { .is_last = 1 }
- }
- },
- { { Twcscoll, TST_LOC_end } }
-};
diff --git a/test/locale-mbwc/dat_wcscpy.c b/test/locale-mbwc/dat_wcscpy.c
deleted file mode 100644
index b376bfc..0000000
--- a/test/locale-mbwc/dat_wcscpy.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_wcscpy.c
- *
- * WCSCPY: wchar_t *wcscpy (wchar_t *ws1, const wchar_t *ws2);
- */
-
-TST_WCSCPY tst_wcscpy_loc [] = {
-
- { { Twcscpy, TST_LOC_de },
- {
- { { { 0x00F1,0x00F2,0x00F3,0x0000 }, }, /* 1 */
- { 0,0,0, { 0x00F1,0x00F2,0x00F3,0x0000, } }, },
- { { { 0x0000,0x00F2,0x00F3,0x0000 }, }, /* 2 */
- { 0,0,0, { 0x0000, } }, },
- { .is_last = 1 }
- }
- },
- { { Twcscpy, TST_LOC_enUS },
- {
- { { { 0x0041,0x0082,0x0043,0x0000 }, }, /* 1 */
- { 0,0,0, { 0x0041,0x0082,0x0043,0x0000, } }, },
- { { { 0x0000,0x0082,0x0043,0x0000 }, }, /* 2 */
- { 0,0,0, { 0x0000, } }, },
- { .is_last = 1 }
- }
- },
-#if 0
- { { Twcscpy, TST_LOC_eucJP },
-#else
- { { Twcscpy, TST_LOC_ja_UTF8 },
-#endif
- {
- { { { 0x3041,0x0092,0x3043,0x0000 }, }, /* 1 */
- { 0,0,0, { 0x3041,0x0092,0x3043,0x0000, } }, },
- { { { 0x0000,0x0092,0x3043,0x0000 }, }, /* 2 */
- { 0,0,0, { 0x0000, } }, },
- { .is_last = 1 }
- }
- },
- { { Twcscpy, TST_LOC_end }}
-
-};
diff --git a/test/locale-mbwc/dat_wcscspn.c b/test/locale-mbwc/dat_wcscspn.c
deleted file mode 100644
index f6eb0c3..0000000
--- a/test/locale-mbwc/dat_wcscspn.c
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_wcscspn.c
- *
- * WCSCSPN: size_t wcscspn (const wchar_t *ws1, const wchar_t *ws2);
- */
-
-
-TST_WCSCSPN tst_wcscspn_loc [] = {
-
- { { Twcscspn, TST_LOC_de },
- {
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D1,0x0000 }, }, /* #1 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D2,0x0000 }, }, /* #2 */
- /*expect*/ { 0,1,1, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D3,0x0000 }, }, /* #3 */
- /*expect*/ { 0,1,2, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D2,0x00D3,0x0000 }, }, /* #4 */
- /*expect*/ { 0,1,1, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D2,0x00D3,0x00D4,0x0000 }, }, /* #5 */
- /*expect*/ { 0,1,1, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D3,0x00D4,0x00D5,0x0000 }, }, /* #6 */
- /*expect*/ { 0,1,2, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D1,0x00D2,0x00D3,0x0000 }, }, /* #7 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x0000,0x00D2,0x00D3,0x0000 },
- { 0x00D2,0x000 }, }, /* #8 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x0000,0x00D2,0x00D3,0x0000 }, }, /* #9 */
- /*expect*/ { 0,1,3, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x0000 },
- { 0x00D1,0x00D2,0x00D3,0x0000 }, }, /* #10 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x0000 },
- { 0x00D1,0x00D3,0x00D4,0x0000 }, }, /* #11 */
- /*expect*/ { 0,1,0, },
- },
- { .is_last = 1 }
- }
- },
- { { Twcscspn, TST_LOC_enUS },
- {
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0041,0x0000 }, }, /* #1 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0042,0x0000 }, }, /* #2 */
- /*expect*/ { 0,1,1, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0043,0x0000 }, }, /* #3 */
- /*expect*/ { 0,1,2, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0042,0x0043,0x0000 }, }, /* #4 */
- /*expect*/ { 0,1,1, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0042,0x0043,0x0044,0x0000 }, }, /* #5 */
- /*expect*/ { 0,1,1, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0043,0x0044,0x0045,0x0000 }, }, /* #6 */
- /*expect*/ { 0,1,2, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0041,0x0042,0x0043,0x0000 }, }, /* #7 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x0000,0x0042,0x0043,0x0000 },
- { 0x0042,0x000 }, }, /* #8 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0000,0x0042,0x0043,0x0000 }, }, /* #9 */
- /*expect*/ { 0,1,3, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0000 },
- { 0x0041,0x0042,0x0043,0x0000 }, }, /* #10 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0000 },
- { 0x0041,0x0043,0x0044,0x0000 }, }, /* #11 */
- /*expect*/ { 0,1,0, },
- },
- { .is_last = 1 }
- }
- },
-#if 0
- { { Twcscspn, TST_LOC_eucJP },
-#else
- { { Twcscspn, TST_LOC_ja_UTF8 },
-#endif
- {
- { /*input.*/ { { 0x3041,0x3042,0x0043,0x0000 },
- { 0x3041,0x0000 }, }, /* #1 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x0043,0x0000 },
- { 0x3042,0x0000 }, }, /* #2 */
- /*expect*/ { 0,1,1, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3043,0x0000 }, }, /* #3 */
- /*expect*/ { 0,1,2, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3042,0x3043,0x0000 }, }, /* #4 */
- /*expect*/ { 0,1,1, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3042,0x3043,0x3044,0x0000 }, }, /* #5 */
- /*expect*/ { 0,1,1, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3043,0x3044,0x3045,0x0000 }, }, /* #6 */
- /*expect*/ { 0,1,2, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3041,0x3042,0x3043,0x0000 }, }, /* #7 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x0000,0x3042,0x3043,0x0000 },
- { 0x3042,0x0000 }, }, /* #8 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x0000,0x3042,0x3043,0x0000 }, }, /* #9 */
- /*expect*/ { 0,1,3, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x0000 },
- { 0x3041,0x3042,0x3043,0x0000 }, }, /* #10 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x0000 },
- { 0x3041,0x3043,0x3044,0x0000 }, }, /* #11 */
- /*expect*/ { 0,1,0, },
- },
- { .is_last = 1 }
- }
- },
- { { Twcscspn, TST_LOC_end }}
-};
diff --git a/test/locale-mbwc/dat_wcslen.c b/test/locale-mbwc/dat_wcslen.c
deleted file mode 100644
index 7bb2c89..0000000
--- a/test/locale-mbwc/dat_wcslen.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN CLIBRARY
- *
- * FILE: dat_wcslen.c
- *
- * WCSLEN: size_t wcslen (const wchar_t *ws);
- */
-
-
-/*
- * NOTE:
- *
- * a header in each expected data:
- *
- * int err_val; ... expected value for errno
- * <typ> ret_flg; ... set ret_flg=1 to compare an expected
- * value with an actual value
- * <typ> ret_val; ... expected value for return
- */
-
-
-TST_WCSLEN tst_wcslen_loc [] = {
-
- { { Twcslen, TST_LOC_de },
- {
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 } }, /* #01 */
- /*expect*/ { 0,1,3, },
- },
- { /*input.*/ { { 0x0000 } }, /* #02 */
- /*expect*/ { 0,1,0, },
- },
- { .is_last = 1 }
- }
- },
- { { Twcslen, TST_LOC_enUS },
- {
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 } }, /* #01 */
- /*expect*/ { 0,1,3, },
- },
- { /*input.*/ { { 0x0000 } }, /* #02 */
- /*expect*/ { 0,1,0, },
- },
- { .is_last = 1 }
- }
- },
-#if 0
- { { Twcslen, TST_LOC_eucJP },
-#else
- { { Twcslen, TST_LOC_ja_UTF8 },
-#endif
- {
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 } }, /* #01 */
- /*expect*/ { 0,1,3, },
- },
- { /*input.*/ { { 0x0000 } }, /* #02 */
- /*expect*/ { 0,1,0, },
- },
- { .is_last = 1 }
- }
- },
- { { Twcslen, TST_LOC_end }}
-};
diff --git a/test/locale-mbwc/dat_wcsncat.c b/test/locale-mbwc/dat_wcsncat.c
deleted file mode 100644
index 9d1e46b..0000000
--- a/test/locale-mbwc/dat_wcsncat.c
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_wcsncat.c
- *
- * WCSNCAT: wchar_t *wcsncat (wchar_t *ws1, wchar_t *ws2, size_t n);
- */
-
-
-/*
- * Note:
- * A terminating null wide chararacter is always appended to
- * the result: ws1.
- *
- */
-
-
-TST_WCSNCAT tst_wcsncat_loc [] = {
- {
- {Twcsncat, TST_LOC_de},
- {
- /* 1 */
- {
- /* Input: */
- {{ 0x00D1,0x00D2,0x0000 },
- { 0x00D3,0x00D4,0x0000 }, 3 },
- /* Expect: */
- { 0, 0, 0,
- { 0x00D1,0x00D2,0x00D3,0x00D4,0x0000 } },
- },
- /* 2 */
- {{{ 0x00D1,0x00D2,0x0000 },
- { 0x00D3,0x00D4,0x0000 }, 2 },
- { 0, 0, 0,
- { 0x00D1,0x00D2,0x00D3,0x00D4,0x0000 } },
- },
- /* 3 */
- {{{ 0x00E1,0x00E2,0x0000 },
- { 0x00E3,0x00E4,0x0000 }, 1 },
- { 0, 0, 0,
- { 0x00E1,0x00E2,0x00E3,0x0000 } },
- },
- /* 4 */
- {{{ 0x00E1,0x00E2,0x0000 },
- { 0x00E3,0x00E4,0x0000 }, 0 },
- { 0, 0, 0,
- { 0x00E1,0x00E2,0x0000 } },
- },
- /* 5 */
- {{{ 0x0000 },
- { 0x00D3,0x00D4,0x0000 }, 3 },
- { 0, 0, 0,
- { 0x00D3,0x00D4,0x0000 } },
- },
- /* 6 */
- {{{ 0x00E1,0x00E2,0x0000 },
- { 0x0000 }, 3 },
- { 0, 0, 0,
- { 0x00E1,0x00E2,0x0000 } },
- },
- {.is_last = 1}
- }
- },
- {
- {Twcsncat, TST_LOC_enUS},
- {
- /* 1 */
- {
- /* Input: */
- {{ 0x0041,0x0042,0x0000 },
- { 0x0043,0x0044,0x0000 }, 3 },
- /* Expect: */
- { 0, 0, 0,
- { 0x0041,0x0042,0x0043,0x0044,0x0000 } },
- },
- /* 2 */
- {{{ 0x0041,0x0042,0x0000 },
- { 0x0043,0x0044,0x0000 }, 2 },
- { 0, 0, 0,
- { 0x0041,0x0042,0x0043,0x0044,0x0000 } },
- },
- /* 3 */
- {{{ 0x0051,0x0052,0x0000 },
- { 0x0053,0x0054,0x0000 }, 1 },
- { 0, 0, 0,
- { 0x0051,0x0052,0x0053,0x0000 } },
- },
- /* 4 */
- {{{ 0x0051,0x0052,0x0000 },
- { 0x0053,0x0054,0x0000 }, 0 },
- { 0, 0, 0,
- { 0x0051,0x0052,0x0000 } },
- },
- /* 5 */
- {{{ 0x0000 },
- { 0x0043,0x0044,0x0000 }, 3 },
- { 0, 0, 0,
- { 0x0043,0x0044,0x0000 } },
- },
- /* 6 */
- {{{ 0x0051,0x0052,0x0000 },
- { 0x0000 }, 3 },
- { 0, 0, 0,
- { 0x0051,0x0052,0x0000 } },
- },
- {.is_last = 1}
- }
- },
- {
-#if 0
- {Twcsncat, TST_LOC_eucJP},
-#else
- {Twcsncat, TST_LOC_ja_UTF8},
-#endif
- {
- /* 1 */
- {{{ 0x3041,0x3042,0x0000 },
- { 0x3043,0x3044,0x0000 }, 3 },
- { 0, 0, 0,
- { 0x3041,0x3042,0x3043,0x3044,0x0000 } },
- },
- /* 2 */
- {{{ 0x30A2,0x30A3,0x0000 },
- { 0xFF71,0xFF72,0x0000 }, 2 },
- { 0, 0, 0,
- { 0x30A2,0x30A3,0xFF71,0xFF72,0x0000 } },
- },
- /* 3 */
- {{{ 0x3051,0x3052,0x0000 },
- { 0x3053,0x3054,0x0000 }, 1 },
- { 0, 0, 0,
- { 0x3051,0x3052,0x3053,0x0000 } },
- },
- /* 4 */
- {{{ 0x3051,0x3052,0x0000 },
- { 0x3053,0x3054,0x0000 }, 0 },
- { 0, 0, 0,
- { 0x3051,0x3052,0x0000 } },
- },
- /* 5 */
- {{{ 0x0000 },
- { 0x3043,0x3044,0x0000 }, 3 },
- { 0, 0, 0,
- { 0x3043,0x3044,0x0000 } },
- },
- /* 6 */
- {{{ 0x3051,0x3052,0x0000 },
- { 0x0000 }, 3 },
- { 0, 0, 0,
- { 0x3051,0x3052,0x0000 } },
- },
- {.is_last = 1}
- }
- },
- {
- {Twcsncat, TST_LOC_end}
- }
-};
diff --git a/test/locale-mbwc/dat_wcsncmp.c b/test/locale-mbwc/dat_wcsncmp.c
deleted file mode 100644
index 5c59631..0000000
--- a/test/locale-mbwc/dat_wcsncmp.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_wcsncmp.c
- *
- * WCSNCMP: int wcsncmp (const wchar_t *ws1, const wchar_t *ws2,
- * size_t n);
- */
-
-TST_WCSNCMP tst_wcsncmp_loc [] = {
- {
- { Twcsncmp, TST_LOC_de },
- {
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D1,0x00D2,0x00D3,0x0000 }, 4 }, /* #01 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D1,0x00D2,0x00D3,0x0000 }, 3 }, /* #02 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D1,0x0000 },
- { 0x00D1,0x00D2,0x00D3,0x0000 }, 2 }, /* #03 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D0,0x00D2,0x00D3,0x0000 }, 0 }, /* #04 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x0000,0x00D2,0x00D3,0x0000 },
- { 0x0000,0x00D2,0x00D1,0x0000 }, 3 }, /* #05 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x0000,0x00D2,0x00D3,0x0000 }, 3 }, /* #06 */
- /*expect*/ { 0,1,0x00D1, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D1,0x00D2,0x00D9,0x0000 }, 2 }, /* #07 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D1,0x00D2,0x00D9,0x0000 }, 3 }, /* #08 */
- /*expect*/ { 0,1,-0x0006, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D1,0x00D2,0x0000 }, 4 }, /* #09 */
- /*expect*/ { 0,1,0x00D3, },
- },
- { .is_last = 1 }
- }
- },
- {
- { Twcsncmp, TST_LOC_enUS },
- {
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0041,0x0042,0x0043,0x0000 }, 4 }, /* #01 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0041,0x0042,0x0043,0x0000 }, 3 }, /* #02 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0041,0x0000 },
- { 0x0041,0x0042,0x0043,0x0000 }, 2 }, /* #03 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0040,0x0042,0x0043,0x0000 }, 0 }, /* #04 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x0000,0x0042,0x0043,0x0000 },
- { 0x0000,0x0042,0x0041,0x0000 }, 3 }, /* #05 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0000,0x0042,0x0043,0x0000 }, 3 }, /* #06 */
- /*expect*/ { 0,1,0x0041, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0041,0x0042,0x0049,0x0000 }, 2 }, /* #07 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0041,0x0042,0x0049,0x0000 }, 3 }, /* #08 */
- /*expect*/ { 0,1,-0x0006, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0041,0x0042,0x0000 }, 4 }, /* #09 */
- /*expect*/ { 0,1,0x0043, },
- },
- { .is_last = 1 }
- }
- },
- {
-#if 0
- { Twcsncmp, TST_LOC_eucJP },
-#else
- { Twcsncmp, TST_LOC_ja_UTF8 },
-#endif
- {
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3041,0x3042,0x3043,0x0000 }, 4 }, /* #01 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3041,0x3042,0x3043,0x0000 }, 3 }, /* #02 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3041,0x0000 },
- { 0x3041,0x3042,0x3043,0x0000 }, 2 }, /* #03 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3040,0x3042,0x3043,0x0000 }, 0 }, /* #04 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x0000,0x3042,0x3043,0x0000 },
- { 0x0000,0x3042,0x3041,0x0000 }, 3 }, /* #05 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x0000,0x3042,0x3043,0x0000 }, 3 }, /* #06 */
- /*expect*/ { 0,1,0x3041, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3041,0x3042,0x3049,0x0000 }, 2 }, /* #07 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3041,0x3042,0x3049,0x0000 }, 3 }, /* #08 */
- /*expect*/ { 0,1,-0x0006, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3041,0x3042,0x0000 }, 4 }, /* #09 */
- /*expect*/ { 0,1,0x3043, },
- },
- { .is_last = 1 }
- }
- },
- {
- { Twcsncmp, TST_LOC_end }
- }
-};
diff --git a/test/locale-mbwc/dat_wcsncpy.c b/test/locale-mbwc/dat_wcsncpy.c
deleted file mode 100644
index 7a65783..0000000
--- a/test/locale-mbwc/dat_wcsncpy.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_wcsncpy.c
- *
- * WCSNCPY: wchar_t *wcsncpy (wchar_t *ws1, const wchar_t *ws2,
- * size_t n);
- */
-
-
-/* Note:
- *
- * An initial value of ws1 in the test program is defined as:
- *
- * #define WCSNUM_NCPY 7
- * wchar_t ws1 [WCSSIZE] = { 0x9999, 0x9999, 0x9999, 0x9999,
- * 0x9999, 0x9999, 0x0000 };
- * */
-
-
-TST_WCSNCPY tst_wcsncpy_loc [] = {
- {
- {Twcsncpy, TST_LOC_de},
- {
- /* 1 */
- {{ { 0x00D1,0x00D2,0x00D3,0x0000 }, 6 },
- { 0,0,0, { 0x00D1,0x00D2,0x00D3,0x0000,0x0000,0x0000,0x0000 } },
- },
- /* 2 */
- {{ { 0x00D1,0x00D2,0x00D3,0x0000 }, 5 },
- { 0,0,0, { 0x00D1,0x00D2,0x00D3,0x0000,0x0000,0x9999,0x0000 } },
- },
- /* 3 */
- {{ { 0x00D1,0x00D2,0x00D3,0x0000 }, 3 },
- { 0,0,0, { 0x00D1,0x00D2,0x00D3,0x9999,0x9999,0x9999,0x0000 } },
- },
- /* 4 */
- {{ { 0x00D1,0x00D2,0x00D3,0x0000 }, 2 },
- { 0,0,0, { 0x00D1,0x00D2,0x9999,0x9999,0x9999,0x9999,0x0000 } },
- },
- /* 5 */
- {{ { 0x00D1,0x00D2,0x00D3,0x0000 }, 0 },
- { 0,0,0, { 0x9999,0x9999,0x9999,0x9999,0x9999,0x9999,0x0000 } },
- },
- /* 6 */
- {{ { 0x0000,0x00D2,0x00D3,0x0000 }, 3 },
- { 0,0,0, { 0x0000,0x0000,0x0000,0x9999,0x9999,0x9999,0x0000 } },
- },
- {.is_last = 1}
- }
- },
- {
- {Twcsncpy, TST_LOC_enUS},
- {
- /* 1 */
- {{ { 0x0041,0x0042,0x0043,0x0000 }, 6 },
- { 0,0,0, { 0x0041,0x0042,0x0043,0x0000,0x0000,0x0000,0x0000 } },
- },
- /* 2 */
- {{ { 0x0041,0x0042,0x0043,0x0000 }, 5 },
- { 0,0,0, { 0x0041,0x0042,0x0043,0x0000,0x0000,0x9999,0x0000 } },
- },
- /* 3 */
- {{ { 0x0041,0x0042,0x0043,0x0000 }, 3 },
- { 0,0,0, { 0x0041,0x0042,0x0043,0x9999,0x9999,0x9999,0x0000 } },
- },
- /* 4 */
- {{ { 0x0041,0x0042,0x0043,0x0000 }, 2 },
- { 0,0,0, { 0x0041,0x0042,0x9999,0x9999,0x9999,0x9999,0x0000 } },
- },
- /* 5 */
- {{ { 0x0041,0x0042,0x0043,0x0000 }, 0 },
- { 0,0,0, { 0x9999,0x9999,0x9999,0x9999,0x9999,0x9999,0x0000 } },
- },
- /* 6 */
- {{ { 0x0000,0x0042,0x0043,0x0000 }, 3 },
- { 0,0,0, { 0x0000,0x0000,0x0000,0x9999,0x9999,0x9999,0x0000 } },
- },
- {.is_last = 1}
- }
- },
- {
-#if 0
- {Twcsncpy, TST_LOC_eucJP},
-#else
- {Twcsncpy, TST_LOC_ja_UTF8},
-#endif
- {
- /* 1 */
- {{ { 0x3041,0x3042,0x3043,0x0000 }, 6 },
- { 0,0,0, { 0x3041,0x3042,0x3043,0x0000,0x0000,0x0000,0x0000 } },
- },
- /* 2 */
- {{ { 0x3041,0x3042,0x3043,0x0000 }, 5 },
- { 0,0,0, { 0x3041,0x3042,0x3043,0x0000,0x0000,0x9999,0x0000 } },
- },
- /* 3 */
- {{ { 0x3041,0x3042,0x3043,0x0000 }, 3 },
- { 0,0,0, { 0x3041,0x3042,0x3043,0x9999,0x9999,0x9999,0x0000 } },
- },
- /* 4 */
- {{ { 0x3041,0x3042,0x3043,0x0000 }, 2 },
- { 0,0,0, { 0x3041,0x3042,0x9999,0x9999,0x9999,0x9999,0x0000 } },
- },
- /* 5 */
- {{ { 0x3041,0x3042,0x3043,0x0000 }, 0 },
- { 0,0,0, { 0x9999,0x9999,0x9999,0x9999,0x9999,0x9999,0x0000 } },
- },
- /* 6 */
- {{ { 0x0000,0x3042,0x3043,0x0000 }, 3 },
- { 0,0,0, { 0x0000,0x0000,0x0000,0x9999,0x9999,0x9999,0x0000 } },
- },
- {.is_last = 1}
- }
- },
- {
- {Twcsncpy, TST_LOC_end}
- }
-};
diff --git a/test/locale-mbwc/dat_wcspbrk.c b/test/locale-mbwc/dat_wcspbrk.c
deleted file mode 100644
index 471515e..0000000
--- a/test/locale-mbwc/dat_wcspbrk.c
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_wcspbrk.c
- *
- * WCSSTR: wchar_t *wcspbrk (const wchar_t *ws1, const wchar_t *ws2);
- */
-
-
-/*
- * NOTE:
- * This is not a locale sensitive function.
- * So those data in each locale doesn't make sense
- * ... (redundant test cases)
- */
-
-
-TST_WCSPBRK tst_wcspbrk_loc [] = {
- {
- { Twcspbrk, TST_LOC_de },
- {
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D1,0x0000 }, }, /* #01 */
- /*expect*/ { 0,0,0, 0x00D1 },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D2,0x0000 }, }, /* #02 */
- /*expect*/ { 0,0,0, 0x00D2 },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D3,0x0000 }, }, /* #03 */
- /*expect*/ { 0,0,0, 0x00D3 },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D1,0x00D2,0x0000 }, }, /* #04 */
- /*expect*/ { 0,0,0, 0x00D1 },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D2,0x00D3,0x0000 }, }, /* #05 */
- /*expect*/ { 0,0,0, 0x00D2 },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D1,0x00D2,0x00D3,0x0000 }, }, /* #06 */
- /*expect*/ { 0,0,0, 0x00D1 },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D0,0x00D4,0x00D5,0x0000 }, }, /* #07 */
- /*expect*/ { 0,1,(wchar_t *)NULL, 0x0000 },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D5,0x00D0,0x00D4,0x0000 }, }, /* #08 */
- /*expect*/ { 0,1,(wchar_t *)NULL, 0x0000 },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x0000 }, }, /* #09 */
- /*expect*/ { 0,1,(wchar_t *)NULL, 0x0000 },
- },
- { /*input.*/ { { 0x0000,0x00D2,0x00D3,0x0000 },
- { 0x00D1,0x0000 }, }, /* #10 */
- /*expect*/ { 0,1,(wchar_t *)NULL, 0x0000 },
- },
- { /*input.*/ { { 0x0000,0x00D2,0x00D3,0x0000 },
- { 0x0000 }, }, /* #11 */
- /*expect*/ { 0,1,(wchar_t *)NULL, 0x0000 },
- },
- { .is_last = 1 }
- }
- },
- {
- { Twcspbrk, TST_LOC_enUS },
- {
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0041,0x0000 }, }, /* #01 */
- /*expect*/ { 0,0,0, 0x0041 },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0042,0x0000 }, }, /* #02 */
- /*expect*/ { 0,0,0, 0x0042 },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0043,0x0000 }, }, /* #03 */
- /*expect*/ { 0,0,0, 0x0043 },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0041,0x0042,0x0000 }, }, /* #04 */
- /*expect*/ { 0,0,0, 0x0041 },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0042,0x0043,0x0000 }, }, /* #05 */
- /*expect*/ { 0,0,0, 0x0042 },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0041,0x0042,0x0043,0x0000 }, }, /* #06 */
- /*expect*/ { 0,0,0, 0x0041 },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0040,0x0044,0x0045,0x0000 }, }, /* #07 */
- /*expect*/ { 0,1,(wchar_t *)NULL, 0x0000 },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0045,0x0040,0x0044,0x0000 }, }, /* #08 */
- /*expect*/ { 0,1,(wchar_t *)NULL, 0x0000 },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0000 }, }, /* #09 */
- /*expect*/ { 0,1,(wchar_t *)NULL, 0x0000 },
- },
- { /*input.*/ { { 0x0000,0x0042,0x0043,0x0000 },
- { 0x0041,0x0000 }, }, /* #10 */
- /*expect*/ { 0,1,(wchar_t *)NULL, 0x0000 },
- },
- { /*input.*/ { { 0x0000,0x0042,0x0043,0x0000 },
- { 0x0000 }, }, /* #11 */
- /*expect*/ { 0,1,(wchar_t *)NULL, 0x0000 },
- },
- { .is_last = 1 }
- }
- },
- {
-#if 0
- { Twcspbrk, TST_LOC_eucJP },
-#else
- { Twcspbrk, TST_LOC_ja_UTF8 },
-#endif
- {
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3041,0x0000 }, }, /* #01 */
- /*expect*/ { 0,0,0, 0x3041 },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3042,0x0000 }, }, /* #02 */
- /*expect*/ { 0,0,0, 0x3042 },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3043,0x0000 }, }, /* #03 */
- /*expect*/ { 0,0,0, 0x3043 },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3041,0x3042,0x0000 }, }, /* #04 */
- /*expect*/ { 0,0,0, 0x3041 },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3042,0x3043,0x0000 }, }, /* #05 */
- /*expect*/ { 0,0,0, 0x3042 },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3041,0x3042,0x3043,0x0000 }, }, /* #06 */
- /*expect*/ { 0,0,0, 0x3041 },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3042,0x3043,0x3044,0x0000 }, }, /* #07 */
- /*expect*/ { 0,0,0, 0x3042 },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3040,0x3041,0x3042,0x0000 }, }, /* #08 */
- /*expect*/ { 0,0,0, 0x3041 },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x0000 }, }, /* #09 */
- /*expect*/ { 0,1,(wchar_t *)NULL, 0x0000 },
- },
- { /*input.*/ { { 0x0000,0x3042,0x3043,0x0000 },
- { 0x3041,0x0000 }, }, /* #10 */
- /*expect*/ { 0,1,(wchar_t *)NULL, 0x0000 },
- },
- { /*input.*/ { { 0x0000,0x3042,0x3043,0x0000 },
- { 0x0000 }, }, /* #11 */
- /*expect*/ { 0,1,(wchar_t *)NULL, 0x0000 },
- },
- { .is_last = 1 }
- }
- },
- {
- { Twcspbrk, TST_LOC_end }
- }
-};
diff --git a/test/locale-mbwc/dat_wcsrtombs.c b/test/locale-mbwc/dat_wcsrtombs.c
deleted file mode 100644
index f8adc6c..0000000
--- a/test/locale-mbwc/dat_wcsrtombs.c
+++ /dev/null
@@ -1,272 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_wcsrtombs.c
- *
- * WCSTOMBS: size_t wcsrtombs (char *s, const wchar_t **ws,
- * size_t n, mbstate *ps)
- */
-
-
-/*
- * CAUTION:
- * Do not use a value 0x01 for string data. The test program
- * uses it.
- *
- */
-
-
-TST_WCSRTOMBS tst_wcsrtombs_loc [] = {
- {
- { Twcsrtombs, TST_LOC_de },
- {
- /* #01 : Any chars including a null char should not be stored in s. */
- { /*input.*/ { 1,1, { 0x00C4,0x00D6,0x00DC,0x0000 }, 0, 0, 0},
- /*expect*/ { 0,1,0, "" },
- },
- /* #02 : Only one chars should be stored in s. No null termination. */
- { /*input.*/ { 1,1, { 0x00C4,0x00D6,0x00DC,0x0000 }, 1, 0, 0 },
- /*expect*/ { 0,1,1, "�" },
- },
- /* #03 : Only two chars should be stored in s. No null termination. */
- { /*input.*/ { 1,1, { 0x00C4,0x00D6,0x00DC,0x0000 }, 2, 0, 0 },
- /*expect*/ { 0,1,2, "��" },
- },
- /* #04 : Only three chars should be stored in s. No null
- termination. */
- { /*input.*/ { 1,1, { 0x00C4,0x00D6,0x00DC,0x0000 }, 3, 0, 0 },
- /*expect*/ { 0,1,3, "���" },
- },
- /* #05 : Only three chars should be stored in s with a null
- termination. */
- { /*input.*/ { 1,1, { 0x00C4,0x00D6,0x00DC,0x0000 }, 4, 0, 0 },
- /*expect*/ { 0,1,3, "���" },
- },
- /* #06 : Only three chars should be stored in s with a null
- termination. */
- { /*input.*/ { 1,1, { 0x00C4,0x00D6,0x00DC,0x0000 }, 5, 0, 0 },
- /*expect*/ { 0,1,3, "���" },
- },
- /* #07 : Invalid mb sequence. No chars should be stored in s. */
- { /*input.*/ { 1,1, { 0x0201,0x0221,0x0000,0x0000 }, 2, 0, 0 },
- /*expect*/ { EILSEQ,1,(size_t)-1, "" },
- },
- /* #08 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x00C4,0x00D6,0x00DC,0x0000 }, 0, 0, 0 },
- /*expect*/ { 0,1,3, "" },
- },
- /* #09 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x00C4,0x00D6,0x00DC,0x0000 }, 1, 0, 0 },
- /*expect*/ { 0,1,3, "" },
- },
- /* #10 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x00C4,0x00D6,0x00DC,0x0000 }, 5, 0, 0 },
- /*expect*/ { 0,1,3, "" },
- },
- /* #11 : s is a null pointer. No chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x0201,0x0221,0x0000,0x0000 }, 5, 0, 0 },
- /*expect*/ { EILSEQ,1,(size_t)-1, "" },
- },
- /* #12 : ws is a null wc string, no chars should be stored in s. */
- { /*input.*/ { 1,1, { 0x0000 }, 5, 0, 0 },
- /*expect*/ { 0,1,0, "" },
- },
- /* #13 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x0000 }, 5, 0, 0 },
- /*expect*/ { 0,1,0, "" },
- },
- { .is_last = 1 }
- }
- },
- {
- { Twcsrtombs, TST_LOC_enUS },
- {
- /* #01 : Any chars including a null char should not be stored in s. */
- { /*input.*/ { 1,1, { 0x0041,0x0042,0x0043,0x0000 }, 0, 0, 0 },
- /*expect*/ { 0,1,0, "" },
- },
- /* #02 : Only one chars should be stored in s. No null termination. */
- { /*input.*/ { 1,1, { 0x0041,0x0042,0x0043,0x0000 }, 1, 0, 0 },
- /*expect*/ { 0,1,1, "A" },
- },
- /* #03 : Only two chars should be stored in s. No null termination. */
- { /*input.*/ { 1,1, { 0x0041,0x0042,0x0043,0x0000 }, 2, 0, 0 },
- /*expect*/ { 0,1,2, "AB" },
- },
- /* #04 : Only three chars should be stored in s. No null
- termination. */
- { /*input.*/ { 1,1, { 0x0041,0x0042,0x0043,0x0000 }, 3, 0, 0 },
- /*expect*/ { 0,1,3, "ABC" },
- },
- /* #05 : Only three chars should be stored in s with a null
- termination. */
- { /*input.*/ { 1,1, { 0x0041,0x0042,0x0043,0x0000 }, 4, 0, 0 },
- /*expect*/ { 0,1,3, "ABC" },
- },
- /* #06 : Only three chars should be stored in s with a null
- termination. */
- { /*input.*/ { 1,1, { 0x0041,0x0042,0x0043,0x0000 }, 5, 0, 0 },
- /*expect*/ { 0,1,3, "ABC" },
- },
- /* #07 : Invalid mb sequence. No chars should be stored in s. */
- { /*input.*/ { 1,1, { 0x0201,0x0221,0x0000,0x0000 }, 2, 0, 0 },
- /*expect*/ { EILSEQ,1,(size_t)-1, "" },
- },
- /* #08 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x0041,0x0042,0x0043,0x0000 }, 0, 0, 0 },
- /*expect*/ { 0,1,3, "" },
- },
- /* #09 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x0041,0x0042,0x0043,0x0000 }, 1, 0, 0 },
- /*expect*/ { 0,1,3, "" },
- },
- /* #10 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x0041,0x0042,0x0043,0x0000 }, 5, 0, 0 },
- /*expect*/ { 0,1,3, "" },
- },
- /* #11 : s is a null pointer. No chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x0201,0x0221,0x0000,0x0000 }, 5, 0, 0 },
- /*expect*/ { EILSEQ,1,(size_t)-1, "" },
- },
- /* #12 : ws is a null wc string, no chars should be stored in s. */
- { /*input.*/ { 1,1, { 0x0000 }, 5, 0, 0 },
- /*expect*/ { 0,1,0, "" },
- },
- /* #13 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x0000 }, 5, 0, 0 },
- /*expect*/ { 0,1,0, "" },
- },
- { .is_last = 1 }
- }
- },
-#if 0
- {
- { Twcsrtombs, TST_LOC_eucJP },
- {
-
- /* #01 : Any chars including a null char should not be stored in s. */
- { /*input.*/ { 1,1, { 0x3042,0x3044,0xFF73,0x0000 }, 0, 0, 0 },
- /*expect*/ { 0,1,0, "" },
- },
- /* #02 : Only one chars should be stored in s. No null termination. */
- { /*input.*/ { 1,1, { 0x3042,0x3044,0xFF73,0x0000 }, 2, 0, 0 },
- /*expect*/ { 0,1,2, "\244\242" },
- },
- /* #03 : Only two chars should be stored in s. No null termination. */
- { /*input.*/ { 1,1, { 0x3042,0x3044,0xFF73,0x0000 }, 4, 0, 0 },
- /*expect*/ { 0,1,4, "\244\242\244\244" },
- },
- /* #04 : Only three chars should be stored in s. No null
- termination. */
- { /*input.*/ { 1,1, { 0x3042,0x3044,0xFF73,0x0000 }, 6, 0, 0 },
- /*expect*/ { 0,1,6, "\244\242\244\244\216\263" },
- },
- /* #05 : Only three chars should be stored in s with a null
- termination. */
- { /*input.*/ { 1,1, { 0x3042,0x3044,0xFF73,0x0000 }, 7, 0, 0 },
- /*expect*/ { 0,1,6, "\244\242\244\244\216\263" },
- },
- /* #06 : Only three chars should be stored in s with a null
- termination. */
- { /*input.*/ { 1,1, { 0x3042,0x3044,0xFF73,0x0000 }, 8, 0, 0 },
- /*expect*/ { 0,1,6, "\244\242\244\244\216\263" },
- },
- /* #07 : Invalid mb sequence. No chars should be stored in s. */
- { /*input.*/ { 1,1, { 0x0201,0x0221,0x0000,0x0000 }, 2, 0, 0 },
- /*expect*/ { EILSEQ,1,-1, "" },
- },
- /* #08 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x3042,0x3044,0xFF73,0x0000 }, 0, 0, 0 },
- /*expect*/ { 0,1,6, "" },
- },
- /* #09 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x3042,0x3044,0xFF73,0x0000 }, 1, 0, 0 },
- /*expect*/ { 0,1,6, "" },
- },
- /* #10 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x3042,0x3044,0xFF73,0x0000 }, 8, 0, 0 },
- /*expect*/ { 0,1,6, "" },
- },
- /* #11 : s is a null pointer. No chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x0201,0x0221,0x0000,0x0000 }, 5, 0, 0 },
- /*expect*/ { EILSEQ,1,(size_t)-1, "" },
- },
- /* #12 : ws is a null wc string, no chars should be stored in s. */
- { /*input.*/ { 1,1, { 0x0000 }, 5, 0, 0 },
- /*expect*/ { 0,1,0, "" },
- },
- /* #13 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x0000 }, 5, 0, 0 },
- /*expect*/ { 0,1,0, "" },
- },
- { .is_last = 1 }
- }
- },
-#else
- {
- { Twcsrtombs, TST_LOC_ja_UTF8 },
- {
-
- /* #01 : Any chars including a null char should not be stored in s. */
- { /*input.*/ { 1,1, { 0x3042,0x3044,0xFF73,0x0000 }, 0, 0, 0 },
- /*expect*/ { 0,1,0, "" },
- },
- /* #02 : Only one chars should be stored in s. No null termination. */
- { /*input.*/ { 1,1, { 0x3042,0x3044,0xFF73,0x0000 }, 3, 0, 0 },
- /*expect*/ { 0,1,3, "\343\201\202" },
- },
- /* #03 : Only two chars should be stored in s. No null termination. */
- { /*input.*/ { 1,1, { 0x3042,0x3044,0xFF73,0x0000 }, 6, 0, 0 },
- /*expect*/ { 0,1,6, "\343\201\202\343\201\204" },
- },
- /* #04 : Only three chars should be stored in s. No null
- termination. */
- { /*input.*/ { 1,1, { 0x3042,0x3044,0xFF73,0x0000 }, 9, 0, 0 },
- /*expect*/ { 0,1,9, "\343\201\202\343\201\204\357\275\263" },
- },
- /* #05 : Only three chars should be stored in s with a null
- termination. */
- { /*input.*/ { 1,1, { 0x3042,0x3044,0xFF73,0x0000 }, 10, 0, 0 },
- /*expect*/ { 0,1,9, "\343\201\202\343\201\204\357\275\263" },
- },
- /* #06 : Only three chars should be stored in s with a null
- termination. */
- { /*input.*/ { 1,1, { 0x3042,0x3044,0xFF73,0x0000 }, 11, 0, 0 },
- /*expect*/ { 0,1,9, "\343\201\202\343\201\204\357\275\263" },
- },
- /* #07 : Invalid mb sequence. No chars should be stored in s. */
- { /*input.*/ { 1,1, { 0x0201,0x0221,0x0000,0x0000 }, 2, 0, 0 },
- /*expect*/ { EILSEQ,1,-1, "" },
- },
- /* #08 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x3042,0x3044,0xFF73,0x0000 }, 0, 0, 0 },
- /*expect*/ { 0,1,9, "" },
- },
- /* #09 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x3042,0x3044,0xFF73,0x0000 }, 1, 0, 0 },
- /*expect*/ { 0,1,9, "" },
- },
- /* #10 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x3042,0x3044,0xFF73,0x0000 }, 8, 0, 0 },
- /*expect*/ { 0,1,9, "" },
- },
- /* #11 : s is a null pointer. No chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x0201,0x0221,0x0000,0x0000 }, 5, 0, 0 },
- /*expect*/ { EILSEQ,1,(size_t)-1, "" },
- },
- /* #12 : ws is a null wc string, no chars should be stored in s. */
- { /*input.*/ { 1,1, { 0x0000 }, 5, 0, 0 },
- /*expect*/ { 0,1,0, "" },
- },
- /* #13 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x0000 }, 5, 0, 0 },
- /*expect*/ { 0,1,0, "" },
- },
- { .is_last = 1 }
- }
- },
-#endif
- {
- { Twcsrtombs, TST_LOC_end }
- }
-};
diff --git a/test/locale-mbwc/dat_wcsspn.c b/test/locale-mbwc/dat_wcsspn.c
deleted file mode 100644
index 06af2d6..0000000
--- a/test/locale-mbwc/dat_wcsspn.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_wcsspn.c
- *
- * WCSSPN: size_t wcsspn (const wchar_t *ws1, const wchar_t *ws2);
- */
-
-TST_WCSSPN tst_wcsspn_loc [] = {
- {
- { Twcsspn, TST_LOC_de },
- {
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D1,0x0000 }, }, /* #01 */
- /*expect*/ { 0,1,1, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D2,0x0000 }, }, /* #02 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D3,0x0000 }, }, /* #03 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D4,0x0000 }, }, /* #04 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D2,0x00D3,0x0000 }, }, /* #05 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D3,0x00D4,0x0000 }, }, /* #06 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D1,0x00D2,0x00D3,0x0000 }, }, /* #07 */
- /*expect*/ { 0,1,3, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x0000 },
- { 0x00D1,0x00D2,0x00D3,0x0000 }, }, /* #08 */
- /*expect*/ { 0,1,2, },
- },
- { /*input.*/ { { 0x0000,0x00D2,0x00D3,0x0000 },
- { 0x00D2,0x0000 }, }, /* #09 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x0000,0x00D2,0x0000 }, }, /* #10 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x0000,0x00D2,0x00D3,0x0000 },
- { 0x0000,0x00D2,0x0000 }, }, /* #11 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D2,0x00D1,0x0000 }, }, /* #12 */
- /*expect*/ { 0,1,2, },
- },
- { .is_last = 1 }
- }
- },
- {
- { Twcsspn, TST_LOC_enUS },
- {
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0041,0x0000 }, }, /* #01 */
- /*expect*/ { 0,1,1, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0042,0x0000 }, }, /* #02 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0043,0x0000 }, }, /* #03 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0044,0x0000 }, }, /* #04 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0042,0x0043,0x0000 }, }, /* #05 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0043,0x0044,0x0000 }, }, /* #06 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0041,0x0042,0x0043,0x0000 }, }, /* #07 */
- /*expect*/ { 0,1,3, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0000 },
- { 0x0041,0x0042,0x0043,0x0000 }, }, /* #08 */
- /*expect*/ { 0,1,2, },
- },
- { /*input.*/ { { 0x0000,0x0042,0x0043,0x0000 },
- { 0x0042,0x0000 }, }, /* #09 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0000,0x0042,0x0000 }, }, /* #10 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x0000,0x0042,0x0043,0x0000 },
- { 0x0000,0x0042,0x0000 }, }, /* #11 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0042,0x0041,0x0000 }, }, /* #12 */
- /*expect*/ { 0,1,2, },
- },
- { .is_last = 1 }
- }
- },
- {
-#if 0
- { Twcsspn, TST_LOC_eucJP },
-#else
- { Twcsspn, TST_LOC_ja_UTF8 },
-#endif
- {
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3041,0x0000 }, }, /* #1 */
- /*expect*/ { 0,1,1, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3042,0x0000 }, }, /* #2 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3043,0x0000 }, }, /* #3 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3044,0x0000 }, }, /* #4 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3042,0x3043,0x0000 }, }, /* #5 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3043,0x3044,0x0000 }, }, /* #6 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3041,0x3042,0x3043,0x0000 }, }, /* #7 */
- /*expect*/ { 0,1,3, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x0000 },
- { 0x3041,0x3042,0x3043,0x0000 }, }, /* #8 */
- /*expect*/ { 0,1,2, },
- },
- { /*input.*/ { { 0x0000,0x3042,0x3043,0x0000 },
- { 0x3042,0x0000 }, }, /* #9 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x0000,0x3042,0x0000 }, }, /* #10 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x0000,0x3042,0x3043,0x0000 },
- { 0x0000,0x3042,0x0000 }, }, /* #11 */
- /*expect*/ { 0,1,0, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3042,0x3041,0x0000 }, }, /* #12 */
- /*expect*/ { 0,1,2, },
- },
- { .is_last = 1 }
- }
- },
- {
- { Twcsspn, TST_LOC_end }
- }
-};
diff --git a/test/locale-mbwc/dat_wcsstr.c b/test/locale-mbwc/dat_wcsstr.c
deleted file mode 100644
index f999dc5..0000000
--- a/test/locale-mbwc/dat_wcsstr.c
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_wcsstr.c
- *
- * WCSSTR: wchar_t *wcsstr (const wchar_t *ws1, const wchar_t *ws2);
- */
-
-/*
- * NOTE:
- * This is not a locale sensitive function.
- * So those data in each locale doesn't make sense ...
- * (redundant test cases)
- */
-
-
-TST_WCSSTR tst_wcsstr_loc [] = {
- {
- { Twcsstr, TST_LOC_de },
- {
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D1,0x0000 }, }, /* #01 */
- /*expect*/ { 0,0,0, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D2,0x0000 }, }, /* #02 */
- /*expect*/ { 0,0,0, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D3,0x0000 }, }, /* #03 */
- /*expect*/ { 0,0,0, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D1,0x00D2,0x0000 }, }, /* #04 */
- /*expect*/ { 0,0,0, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D2,0x00D3,0x0000 }, }, /* #05 */
- /*expect*/ { 0,0,0, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D1,0x00D2,0x00D3,0x0000 }, }, /* #06 */
- /*expect*/ { 0,0,0, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D2,0x00D3,0x00D4,0x0000 }, }, /* #07 */
- /*expect*/ { 0,1,(wchar_t *)NULL, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x00D0,0x00D1,0x00D2,0x0000 }, }, /* #08 */
- /*expect*/ { 0,1,(wchar_t *)NULL, },
- },
- { /*input.*/ { { 0x00D1,0x00D2,0x00D3,0x0000 },
- { 0x0000 }, }, /* #09 */
- /*expect*/ { 0,0,0, },
- },
- { /*input.*/ { { 0x0000,0x00D2,0x00D3,0x0000 },
- { 0x00D1,0x0000 }, }, /* #10 */
- /*expect*/ { 0,1,(wchar_t *)NULL, },
- },
- { /*input.*/ { { 0x0000,0x00D2,0x00D3,0x0000 },
- { 0x0000 }, }, /* #11 */
- /*expect*/ { 0,0,0, },
- },
- { .is_last = 1 }
- }
- },
- {
- { Twcsstr, TST_LOC_enUS },
- {
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0041,0x0000 }, }, /* #01 */
- /*expect*/ { 0,0,0, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0042,0x0000 }, }, /* #02 */
- /*expect*/ { 0,0,0, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0043,0x0000 }, }, /* #03 */
- /*expect*/ { 0,0,0, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0041,0x0042,0x0000 }, }, /* #04 */
- /*expect*/ { 0,0,0, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0042,0x0043,0x0000 }, }, /* #05 */
- /*expect*/ { 0,0,0, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0041,0x0042,0x0043,0x0000 }, }, /* #06 */
- /*expect*/ { 0,0,0, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0042,0x0043,0x0044,0x0000 }, }, /* #07 */
- /*expect*/ { 0,1,(wchar_t *)NULL, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0040,0x0041,0x0042,0x0000 }, }, /* #08 */
- /*expect*/ { 0,1,(wchar_t *)NULL, },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
- { 0x0000 }, }, /* #09 */
- /*expect*/ { 0,0,0, },
- },
- { /*input.*/ { { 0x0000,0x0042,0x0043,0x0000 },
- { 0x0041,0x0000 }, }, /* #10 */
- /*expect*/ { 0,1,(wchar_t *)NULL, },
- },
- { /*input.*/ { { 0x0000,0x0042,0x0043,0x0000 },
- { 0x0000 }, }, /* #11 */
- /*expect*/ { 0,0,0, },
- },
- { .is_last = 1 }
- }
- },
- {
-#if 0
- { Twcsstr, TST_LOC_eucJP },
-#else
- { Twcsstr, TST_LOC_ja_UTF8 },
-#endif
- {
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3041,0x0000 }, }, /* #01 */
- /*expect*/ { 0,0,0, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3042,0x0000 }, }, /* #02 */
- /*expect*/ { 0,0,0, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3043,0x0000 }, }, /* #03 */
- /*expect*/ { 0,0,0, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3041,0x3042,0x0000 }, }, /* #04 */
- /*expect*/ { 0,0,0, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3042,0x3043,0x0000 }, }, /* #05 */
- /*expect*/ { 0,0,0, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3041,0x3042,0x3043,0x0000 }, }, /* #06 */
- /*expect*/ { 0,0,0, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3042,0x3043,0x3044,0x0000 }, }, /* #07 */
- /*expect*/ { 0,1,(wchar_t *)NULL, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x3040,0x3041,0x3042,0x0000 }, }, /* #08 */
- /*expect*/ { 0,1,(wchar_t *)NULL, },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },
- { 0x0000 }, }, /* #09 */
- /*expect*/ { 0,0,0, },
- },
- { /*input.*/ { { 0x0000,0x3042,0x3043,0x0000 },
- { 0x3041,0x0000 }, }, /* #10 */
- /*expect*/ { 0,1,(wchar_t *)NULL, },
- },
- { /*input.*/ { { 0x0000,0x3042,0x3043,0x0000 },
- { 0x0000 }, }, /* #11 */
- /*expect*/ { 0,0,0, },
- },
- { .is_last = 1 }
- }
- },
- {
- { Twcsstr, TST_LOC_end }
- }
-};
diff --git a/test/locale-mbwc/dat_wcstod.c b/test/locale-mbwc/dat_wcstod.c
deleted file mode 100644
index c7b4018..0000000
--- a/test/locale-mbwc/dat_wcstod.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN CLIBRARY
- *
- * FILE: dat_wcstod.c
- *
- * WCSTOD: double wcstod (const wchar_t *np, wchar_t **endp);
- */
-
-
-/*
- * NOTE:
- * need more test data!
- *
- */
-
-
-TST_WCSTOD tst_wcstod_loc [] = {
- {
- { Twcstod, TST_LOC_de },
- {
- {
- /*01*/
- /*I*/
- {{ 0x0030,0x0030,0x0030,0x002C,0x0030,0x0030,0x0030,0x0030,0x0000 }},
- /*E*/
- { 0,1,0.0, 0.0, 0x0000 }
- },
- {
- /*02*/
- /*I*/
- {{ 0x0031,0x0032,0x0033,0x002C,0x0034,0x0035,0x0036,0x0040,0x0000 }},
- /*E*/
- { 0,1,123.456, 123.456, 0x0040 }
- },
- { .is_last = 1 }
- }
- },
- {
- { Twcstod, TST_LOC_enUS },
- {
- {
- /*01*/
- /*I*/
- {{ 0x0030,0x0030,0x0030,0x002E,0x0030,0x0030,0x0030,0x0030,0x0000 }},
- /*E*/
- { 0,1,0.0, 0.0, 0x0000 }
- },
- {
- /*02*/
- /*I*/
- {{ 0x0031,0x0032,0x0033,0x002E,0x0034,0x0035,0x0036,0x0040,0x0000 }},
- /*E*/
- { 0,1,123.456, 123.456, 0x0040 }
- },
- { .is_last = 1 }
- }
- },
- {
-#if 0
- { Twcstod, TST_LOC_eucJP },
-#else
- { Twcstod, TST_LOC_ja_UTF8 },
-#endif
- {
- {
- /*01*/
- /*I*/
- {{ 0x0031,0x0032,0x0033,0x002E,0x0034,0x0035,0x0036,0x0040,0x0000 }},
- /*E*/
- { 0,1,123.456, 123.456, 0x0040 }
- },
- { .is_last = 1 }
- }
- },
- {
- { Twcstod, TST_LOC_end }
- }
-};
diff --git a/test/locale-mbwc/dat_wcstok.c b/test/locale-mbwc/dat_wcstok.c
deleted file mode 100644
index 559b401..0000000
--- a/test/locale-mbwc/dat_wcstok.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN CLIBRARY
- *
- * FILE: dat_wcstok.c
- *
- * WCSTOK: wchar_t *wcstok (wchar_t *ws, const wchar_t *dlm,
- * wchar_t **pt);
- */
-
-/*
- * NOTE:
- * need more test data!
- * locale insensitive function...
- */
-
-
-
-
-TST_WCSTOK tst_wcstok_loc [] = {
- {
- { Twcstok, TST_LOC_de },
- {
- {
- {
- {
- { 1, { 0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7,0x00D8,
- 0x00D9,0x0000 },
- { 0x00D3,0x00D2, 0x00D5 }
- },
- { 0, { 0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7,0x00D8,
- 0x00D9,0x0000 },
- { 0x00D3,0x00D2, 0x00D5 }
- },
- { 0, { 0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7,0x00D8,
- 0x00D9,0x0000 },
- { 0x00D3,0x00D2, 0x00D5 }
- },
- }
- },
- {
- {
- { 0, 0,0,
- { 0x00D1,0x0000 }
- },
- { 0, 0,0,
- { 0x00D4,0x0000 }
- },
- { 0, 0,0,
- { 0x00D6,0x00D7,0x00D8,0x00D9,0x0000 }
- },
- }
- }
- },
- { .is_last = 1 }
- }
- },
- {
- { Twcstok, TST_LOC_enUS },
- {
- {
- {
- {
- { 1, { 0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,
- 0x0049,0x0000 },
- { 0x0043,0x0042, 0x0045 }
- },
- { 0, { 0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,
- 0x0049,0x0000 },
- { 0x0043,0x0042, 0x0045 }
- },
- { 0, { 0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,
- 0x0049,0x0000 },
- { 0x0043,0x0042, 0x0045 }
- },
- }
- },
- {
- {
- { 0, 0,0,
- { 0x0041,0x0000 }
- },
- { 0, 0,0,
- { 0x0044,0x0000 }
- },
- { 0, 0,0,
- { 0x0046,0x0047,0x0048,0x0049,0x0000 }
- },
- }
- }
- },
- { .is_last = 1 }
- }
- },
- {
-#if 0
- { Twcstok, TST_LOC_eucJP },
-#else
- { Twcstok, TST_LOC_ja_UTF8 },
-#endif
- {
- {
- {
- {
- { 1, { 0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,
- 0x0049,0x0000 },
- { 0x0043,0x0042, 0x0045 }
- },
- { 0, { 0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,
- 0x0049,0x0000 },
- { 0x0043,0x0042, 0x0045 }
- },
- { 0, { 0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,
- 0x0049,0x0000 },
- { 0x0043,0x0042, 0x0045 }
- },
- }
- },
- {
- {
- { 0, 0,0,
- { 0x0041,0x0000 }
- },
- { 0, 0,0,
- { 0x0044,0x0000 }
- },
- { 0, 0,0,
- { 0x0046,0x0047,0x0048,0x0049,0x0000 }
- },
- }
- }
- },
- { .is_last = 1 }
- }
- },
- {
- { Twcstok, TST_LOC_end }
- }
-};
diff --git a/test/locale-mbwc/dat_wcstombs.c b/test/locale-mbwc/dat_wcstombs.c
deleted file mode 100644
index ffeb0ef..0000000
--- a/test/locale-mbwc/dat_wcstombs.c
+++ /dev/null
@@ -1,271 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_wcstombs.c
- *
- * WCSTOMBS: size_t wcstombs (char *s, const wchar_t *ws, size_t n)
- */
-
-
-/*
- * CAUTION:
- * Do not use a value 0x01 for string data. The test program
- * uses it.
- *
- */
-
-
-TST_WCSTOMBS tst_wcstombs_loc [] = {
- {
- { Twcstombs, TST_LOC_de },
- {
- /* #01 : Any chars including a null char should not be stored in s. */
- { /*input.*/ { 1,1, { 0x00C4,0x00D6,0x00DC,0x0000 }, 0 },
- /*expect*/ { 0,1,0, "" },
- },
- /* #02 : Only one chars should be stored in s. No null termination. */
- { /*input.*/ { 1,1, { 0x00C4,0x00D6,0x00DC,0x0000 }, 1 },
- /*expect*/ { 0,1,1, "�" },
- },
- /* #03 : Only two chars should be stored in s. No null termination. */
- { /*input.*/ { 1,1, { 0x00C4,0x00D6,0x00DC,0x0000 }, 2 },
- /*expect*/ { 0,1,2, "��" },
- },
- /* #04 : Only three chars should be stored in s. No null
- termination. */
- { /*input.*/ { 1,1, { 0x00C4,0x00D6,0x00DC,0x0000 }, 3 },
- /*expect*/ { 0,1,3, "���" },
- },
- /* #05 : Only three chars should be stored in s with a null
- termination. */
- { /*input.*/ { 1,1, { 0x00C4,0x00D6,0x00DC,0x0000 }, 4 },
- /*expect*/ { 0,1,3, "���" },
- },
- /* #06 : Only three chars should be stored in s with a null
- termination. */
- { /*input.*/ { 1,1, { 0x00C4,0x00D6,0x00DC,0x0000 }, 5 },
- /*expect*/ { 0,1,3, "���" },
- },
- /* #07 : Invalid mb sequence. No chars should be stored in s. */
- { /*input.*/ { 1,1, { 0x0201,0x0221,0x0000,0x0000 }, 2 },
- /*expect*/ { EILSEQ,1,(size_t)-1, "" },
- },
- /* #08 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x00C4,0x00D6,0x00DC,0x0000 }, 0 },
- /*expect*/ { 0,1,3, "" },
- },
- /* #09 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x00C4,0x00D6,0x00DC,0x0000 }, 1 },
- /*expect*/ { 0,1,3, "" },
- },
- /* #10 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x00C4,0x00D6,0x00DC,0x0000 }, 5 },
- /*expect*/ { 0,1,3, "" },
- },
- /* #11 : s is a null pointer. No chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x0201,0x0221,0x0000,0x0000 }, 5 },
- /*expect*/ { EILSEQ,1,(size_t)-1, "" },
- },
- /* #12 : ws is a null wc string, no chars should be stored in s. */
- { /*input.*/ { 1,1, { 0x0000 }, 5 },
- /*expect*/ { 0,1,0, "" },
- },
- /* #13 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x0000 }, 5 },
- /*expect*/ { 0,1,0, "" },
- },
- { .is_last = 1 }
- }
- },
- {
- { Twcstombs, TST_LOC_enUS },
- {
- /* #01 : Any chars including a null char should not be stored in s. */
- { /*input.*/ { 1,1, { 0x00C4,0x0042,0x0043,0x0000 }, 0 },
- /*expect*/ { 0,1,0, "" },
- },
- /* #02 : Only one chars should be stored in s. No null termination. */
- { /*input.*/ { 1,1, { 0x0041,0x0042,0x0043,0x0000 }, 1 },
- /*expect*/ { 0,1,1, "A" },
- },
- /* #03 : Only two chars should be stored in s. No null termination. */
- { /*input.*/ { 1,1, { 0x0041,0x0042,0x0043,0x0000 }, 2 },
- /*expect*/ { 0,1,2, "AB" },
- },
- /* #04 : Only three chars should be stored in s. No null
- termination. */
- { /*input.*/ { 1,1, { 0x0041,0x0042,0x0043,0x0000 }, 3 },
- /*expect*/ { 0,1,3, "ABC" },
- },
- /* #05 : Only three chars should be stored in s with a null
- termination. */
- { /*input.*/ { 1,1, { 0x0041,0x0042,0x0043,0x0000 }, 4 },
- /*expect*/ { 0,1,3, "ABC" },
- },
- /* #06 : Only three chars should be stored in s with a null
- termination. */
- { /*input.*/ { 1,1, { 0x0041,0x0042,0x0043,0x0000 }, 5 },
- /*expect*/ { 0,1,3, "ABC" },
- },
- /* #07 : Invalid mb sequence. No chars should be stored in s. */
- { /*input.*/ { 1,1, { 0x0201,0x0221,0x0000,0x0000 }, 2 },
- /*expect*/ { EILSEQ,1,(size_t)-1, "" },
- },
- /* #08 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x0041,0x0042,0x0043,0x0000 }, 0 },
- /*expect*/ { 0,1,3, "" },
- },
- /* #09 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x0041,0x0042,0x0043,0x0000 }, 1 },
- /*expect*/ { 0,1,3, "" },
- },
- /* #10 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x0041,0x0042,0x0043,0x0000 }, 5 },
- /*expect*/ { 0,1,3, "" },
- },
- /* #11 : s is a null pointer. No chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x0201,0x0221,0x0000,0x0000 }, 5 },
- /*expect*/ { EILSEQ,1,(size_t)-1, "" },
- },
- /* #12 : ws is a null wc string, no chars should be stored in s. */
- { /*input.*/ { 1,1, { 0x0000 }, 5, },
- /*expect*/ { 0,1,0, "" },
- },
- /* #13 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x0000 }, 5 },
- /*expect*/ { 0,1,0, "" },
- },
- { .is_last = 1 }
- }
- },
-#if 0
- {
- { Twcstombs, TST_LOC_eucJP },
- {
-
- /* #01 : Any chars including a null char should not be stored in s. */
- { /*input.*/ { 1,1, { 0x3042,0x3044,0xFF73,0x0000 }, 0 },
- /*expect*/ { 0,1,0, "" },
- },
- /* #02 : Only one chars should be stored in s. No null termination. */
- { /*input.*/ { 1,1, { 0x3042,0x3044,0xFF73,0x0000 }, 2 },
- /*expect*/ { 0,1,2, "\244\242" },
- },
- /* #03 : Only two chars should be stored in s. No null termination. */
- { /*input.*/ { 1,1, { 0x3042,0x3044,0xFF73,0x0000 }, 4 },
- /*expect*/ { 0,1,4, "\244\242\244\244" },
- },
- /* #04 : Only three chars should be stored in s. No null
- termination. */
- { /*input.*/ { 1,1, { 0x3042,0x3044,0xFF73,0x0000 }, 6 },
- /*expect*/ { 0,1,6, "\244\242\244\244\216\263" },
- },
- /* #05 : Only three chars should be stored in s with a null
- termination. */
- { /*input.*/ { 1,1, { 0x3042,0x3044,0xFF73,0x0000 }, 7 },
- /*expect*/ { 0,1,6, "\244\242\244\244\216\263" },
- },
- /* #06 : Only three chars should be stored in s with a null
- termination. */
- { /*input.*/ { 1,1, { 0x3042,0x3044,0xFF73,0x0000 }, 8 },
- /*expect*/ { 0,1,6, "\244\242\244\244\216\263" },
- },
- /* #07 : Invalid mb sequence. No chars should be stored in s. */
- { /*input.*/ { 1,1, { 0x0201,0x0221,0x0000,0x0000 }, 2 },
- /*expect*/ { EILSEQ,1,-1, "" },
- },
- /* #08 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x3042,0x3044,0xFF73,0x0000 }, 0 },
- /*expect*/ { 0,1,6, "" },
- },
- /* #09 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x3042,0x3044,0xFF73,0x0000 }, 1 },
- /*expect*/ { 0,1,6, "" },
- },
- /* #10 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x3042,0x3044,0xFF73,0x0000 }, 8 },
- /*expect*/ { 0,1,6, "" },
- },
- /* #11 : s is a null pointer. No chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x0201,0x0221,0x0000,0x0000 }, 5 },
- /*expect*/ { EILSEQ,1,(size_t)-1, "" },
- },
- /* #12 : ws is a null wc string, no chars should be stored in s. */
- { /*input.*/ { 1,1, { 0x0000 }, 5 },
- /*expect*/ { 0,1,0, "" },
- },
- /* #13 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x0000 }, 5 },
- /*expect*/ { 0,1,0, "" },
- },
- { .is_last = 1 }
- }
- },
-#else
- {
- { Twcstombs, TST_LOC_ja_UTF8 },
- {
-
- /* #01 : Any chars including a null char should not be stored in s. */
- { /*input.*/ { 1,1, { 0x3042,0x3044,0xFF73,0x0000 }, 0 },
- /*expect*/ { 0,1,0, "" },
- },
- /* #02 : Only one chars should be stored in s. No null termination. */
- { /*input.*/ { 1,1, { 0x3042,0x3044,0xFF73,0x0000 }, 3 },
- /*expect*/ { 0,1,3, "\343\201\202" },
- },
- /* #03 : Only two chars should be stored in s. No null termination. */
- { /*input.*/ { 1,1, { 0x3042,0x3044,0xFF73,0x0000 }, 6 },
- /*expect*/ { 0,1,6, "\343\201\202\343\201\204" },
- },
- /* #04 : Only three chars should be stored in s. No null
- termination. */
- { /*input.*/ { 1,1, { 0x3042,0x3044,0xFF73,0x0000 }, 9 },
- /*expect*/ { 0,1,9, "\343\201\202\343\201\204\357\275\263" },
- },
- /* #05 : Only three chars should be stored in s with a null
- termination. */
- { /*input.*/ { 1,1, { 0x3042,0x3044,0xFF73,0x0000 }, 10 },
- /*expect*/ { 0,1,9, "\343\201\202\343\201\204\357\275\263" },
- },
- /* #06 : Only three chars should be stored in s with a null
- termination. */
- { /*input.*/ { 1,1, { 0x3042,0x3044,0xFF73,0x0000 }, 11 },
- /*expect*/ { 0,1,9, "\343\201\202\343\201\204\357\275\263" },
- },
- /* #07 : Invalid mb sequence. No chars should be stored in s. */
- { /*input.*/ { 1,1, { 0x0201,0x0221,0x0000,0x0000 }, 2 },
- /*expect*/ { EILSEQ,1,-1, "" },
- },
- /* #08 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x3042,0x3044,0xFF73,0x0000 }, 0 },
- /*expect*/ { 0,1,9, "" },
- },
- /* #09 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x3042,0x3044,0xFF73,0x0000 }, 1 },
- /*expect*/ { 0,1,9, "" },
- },
- /* #10 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x3042,0x3044,0xFF73,0x0000 }, 8 },
- /*expect*/ { 0,1,9, "" },
- },
- /* #11 : s is a null pointer. No chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x0201,0x0221,0x0000,0x0000 }, 5 },
- /*expect*/ { EILSEQ,1,(size_t)-1, "" },
- },
- /* #12 : ws is a null wc string, no chars should be stored in s. */
- { /*input.*/ { 1,1, { 0x0000 }, 5 },
- /*expect*/ { 0,1,0, "" },
- },
- /* #13 : s is a null pointer, no chars should be stored in s. */
- { /*input.*/ { 0,1, { 0x0000 }, 5 },
- /*expect*/ { 0,1,0, "" },
- },
- { .is_last = 1 }
- }
- },
-#endif
- {
- { Twcstombs, TST_LOC_end }
- }
-};
diff --git a/test/locale-mbwc/dat_wcswidth.c b/test/locale-mbwc/dat_wcswidth.c
deleted file mode 100644
index 6d2f98e..0000000
--- a/test/locale-mbwc/dat_wcswidth.c
+++ /dev/null
@@ -1,263 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_wcswidth.c
- *
- * WCSWIDTH: int wcswidth (const wchar_t *ws, size_t n);
- */
-
-TST_WCSWIDTH tst_wcswidth_loc [] = {
- {
- { Twcswidth, TST_LOC_de },
- {
- { /*input.*/ { { 0x00C1,0x00C2,0x00C3,0x0000 }, 0 }, /* 01 */
- /*expect*/ { 0,1,0 },
- },
- { /*input.*/ { { 0x00C1,0x00C2,0x00C3,0x0000 }, 1 }, /* 02 */
- /*expect*/ { 0,1,1 },
- },
- { /*input.*/ { { 0x00C1,0x00C2,0x00C3,0x0000 }, 2 }, /* 03 */
- /*expect*/ { 0,1,2 },
- },
- { /*input.*/ { { 0x00C1,0x00C2,0x00C3,0x0000 }, 3 }, /* 04 */
- /*expect*/ { 0,1,3 },
- },
- { /*input.*/ { { 0x00C1,0x00C2,0x00C3,0x0000 }, 4 }, /* 05 */
- /*expect*/ { 0,1,3 },
- },
- { /*input.*/ { { 0x0000 }, 1 }, /* 06 */
- /*expect*/ { 0,1,0 },
- },
- { /*input.*/ { { 0x00C1,0x0001,0x0000 }, 2 }, /* 07 */
- /*expect*/ { 0,1,-1 },
- },
- { /*input.*/ { { 0x00C1,0x0001,0x0000 }, 1 }, /* 08 */
- /*expect*/ { 0,1,1 },
- },
- { /*input.*/ { { 0x00C1,0x0001,0x0000 }, 2 }, /* 09 */
- /*expect*/ { 0,1,-1 },
- },
- { /*input.*/ { { 0x00C1,0x0092,0x0000 }, 2 }, /* 10 */
- /*expect*/ { 0,1,-1 },
- },
- { /*input.*/ { { 0x00C1,0x0020,0x0000 }, 2 }, /* 11 */
- /*expect*/ { 0,1,2 },
- },
- { /*input.*/ { { 0x00C1,0x0021,0x0000 }, 2 }, /* 12 */
- /*expect*/ { 0,1,2 },
- },
- { /*input.*/ { { 0x00C1,0x007E,0x0000 }, 2 }, /* 13 */
- /*expect*/ { 0,1,2 },
- },
- { /*input.*/ { { 0x00C1,0x007F,0x0000 }, 2 }, /* 14 */
- /*expect*/ { 0,1,-1 },
- },
- { /*input.*/ { { 0x00C1,0x0080,0x0000 }, 2 }, /* 15 */
- /*expect*/ { 0,1,-1 },
- },
- { /*input.*/ { { 0x00C1,0x00A0,0x0000 }, 2 }, /* 16 */
-#ifdef SHOJI_IS_RIGHT
- /*expect*/ { 0,1,-1 },
-#else
- /*expect*/ { 0,1,2 },
-#endif
- },
- { /*input.*/ { { 0x00C1,0x00A1,0x0000 }, 2 }, /* 17 */
- /*expect*/ { 0,1,2 },
- },
- { /*input.*/ { { 0x00C1,0x00FF,0x0000 }, 2 }, /* 18 */
- /*expect*/ { 0,1,2 },
- },
- { /*input.*/ { { 0x00C1,0x3042,0x0000 }, 2 }, /* 19 */
- /*expect*/ { 0,1,-1 },
- },
- { /*input.*/ { { 0x00C1,0x3044,0x0000 }, 2 }, /* 20 */
- /*expect*/ { 0,1,-1 },
- },
- { .is_last = 1 }
- }
- },
- {
- { Twcswidth, TST_LOC_enUS },
- {
- { /*input.*/ { { 0x0041,0x0042,0x00C3,0x0000 }, 0 }, /* 01 */
- /*expect*/ { 0,1,0 },
- },
- { /*input.*/ { { 0x0041,0x0042,0x00C3,0x0000 }, 1 }, /* 02 */
- /*expect*/ { 0,1,1 },
- },
- { /*input.*/ { { 0x0041,0x0042,0x00C3,0x0000 }, 2 }, /* 03 */
- /*expect*/ { 0,1,2 },
- },
-#ifdef SHOJI_IS_RIGHT
- { /*input.*/ { { 0x0041,0x0042,0x00C3,0x0000 }, 3 }, /* 04 */
- /*expect*/ { 0,1,3 },
- },
- { /*input.*/ { { 0x0041,0x0042,0x00C3,0x0000 }, 4 }, /* 05 */
- /*expect*/ { 0,1,3 },
- },
-#else
- { /*input.*/ { { 0x0041,0x0042,0x00C3,0x0000 }, 3 }, /* 04 */
- /*expect*/ { 0,1,-1 },
- },
- { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 }, 4 }, /* 05 */
- /*expect*/ { 0,1,3 },
- },
-#endif
- { /*input.*/ { { 0x0000 }, 1 }, /* 06 */
- /*expect*/ { 0,1,0 },
- },
- { /*input.*/ { { 0x0041,0x0001,0x0000 }, 2 }, /* 07 */
- /*expect*/ { 0,1,-1 },
- },
- { /*input.*/ { { 0x0041,0x0001,0x0000 }, 1 }, /* 08 */
- /*expect*/ { 0,1,1 },
- },
- { /*input.*/ { { 0x0041,0x0001,0x0000 }, 2 }, /* 09 */
- /*expect*/ { 0,1,-1 },
- },
- { /*input.*/ { { 0x0041,0x0092,0x0000 }, 2 }, /* 10 */
- /*expect*/ { 0,1,-1 },
- },
- { /*input.*/ { { 0x0041,0x0020,0x0000 }, 2 }, /* 11 */
- /*expect*/ { 0,1,2 },
- },
- { /*input.*/ { { 0x0041,0x0021,0x0000 }, 2 }, /* 12 */
- /*expect*/ { 0,1,2 },
- },
- { /*input.*/ { { 0x0041,0x007E,0x0000 }, 2 }, /* 13 */
- /*expect*/ { 0,1,2 },
- },
- { /*input.*/ { { 0x0041,0x007F,0x0000 }, 2 }, /* 14 */
- /*expect*/ { 0,1,-1 },
- },
- { /*input.*/ { { 0x0041,0x0080,0x0000 }, 2 }, /* 15 */
- /*expect*/ { 0,1,-1 },
- },
- { /*input.*/ { { 0x0041,0x00A0,0x0000 }, 2 }, /* 16 */
- /*expect*/ { 0,1,-1 },
- },
-#ifdef SHOJI_IS_RIGHT
- { /*input.*/ { { 0x0041,0x00A1,0x0000 }, 2 }, /* 17 */
- /*expect*/ { 0,1,2 },
- },
- { /*input.*/ { { 0x0041,0x00FF,0x0000 }, 2 }, /* 18 */
- /*expect*/ { 0,1,2 },
- },
-#else
- { /*input.*/ { { 0x0041,0x007E,0x0000 }, 2 }, /* 17 */
- /*expect*/ { 0,1,2 },
- },
- { /*input.*/ { { 0x0041,0x0020,0x0000 }, 2 }, /* 18 */
- /*expect*/ { 0,1,2 },
- },
-#endif
- { /*input.*/ { { 0x0041,0x3042,0x0000 }, 2 }, /* 19 */
- /*expect*/ { 0,1,-1 },
- },
- { /*input.*/ { { 0x0041,0x3044,0x0000 }, 2 }, /* 20 */
- /*expect*/ { 0,1,-1 },
- },
- { .is_last = 1 }
- }
- },
- {
-#if 0
- { Twcswidth, TST_LOC_eucJP },
-#else
- { Twcswidth, TST_LOC_ja_UTF8 },
-#endif
- {
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 }, 0 }, /* 01 */
- /*expect*/ { 0,1,0 },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 }, 1 }, /* 02 */
- /*expect*/ { 0,1,2 },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 }, 2 }, /* 03 */
- /*expect*/ { 0,1,4 },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 }, 3 }, /* 04 */
- /*expect*/ { 0,1,6 },
- },
- { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 }, 4 }, /* 05 */
- /*expect*/ { 0,1,6 },
- },
- { /*input.*/ { { 0x0000 }, 1 }, /* 06 */
- /*expect*/ { 0,1,0 },
- },
- { /*input.*/ { { 0x008E,0x0001,0x0000 }, 2 }, /* 07 */
- /*expect*/ { 0,1,-1 },
- },
- { /*input.*/ { { 0x3041,0x008E,0x0000 }, 1 }, /* 08 */
- /*expect*/ { 0,1,2 },
- },
- { /*input.*/ { { 0x3041,0x008E,0x0000 }, 2 }, /* 09 */
- /*expect*/ { 0,1,-1 },
- },
- { /*input.*/ { { 0x3041,0x0001,0x0000 }, 2 }, /* 10 */
- /*expect*/ { 0,1,-1 },
- },
- { /*input.*/ { { 0x3041,0x3000,0x0000 }, 2 }, /* 11 */
- /*expect*/ { 0,1,4 },
- },
- { /*input.*/ { { 0x0041,0x0021,0x0000 }, 2 }, /* 12 */
- /*expect*/ { 0,1,2 },
- },
- { /*input.*/ { { 0x0041,0x007E,0x0000 }, 2 }, /* 13 */
- /*expect*/ { 0,1,2 },
- },
- { /*input.*/ { { 0x0041,0x007F,0x0000 }, 2 }, /* 14 */
- /*expect*/ { 0,1,-1 },
- },
- { /*input.*/ { { 0x0041,0x0080,0x0000 }, 2 }, /* 15 */
- /*expect*/ { 0,1,-1 },
- },
-#if 0
- { /*input.*/ { { 0x0041,0x00A0,0x0000 }, 2 }, /* 16 */
- /*expect*/ { 0,1,-1 },
- },
-#ifdef NO_WAIVER
- /* <NO_WAIVER> */ /* returns 3 */
- { /*input.*/ { { 0x0041,0x00A1,0x0000 }, 2 }, /* 17 */
- /*expect*/ { 0,1,-1 },
- },
-#else
- /* XXX U00A1 is valid -> /x8f/xa2/xc4 in JIS X 0212 */
- { /*input.*/ { { 0x0041,0x00A1,0x0000 }, 2 }, /* 17 */
- /*expect*/ { 0,1,3 },
- },
-#endif
-#else
- /* XXX U00A0 i UTF8 is valid -> /xc2/xa0 */
- { /*input.*/ { { 0x0041,0x00A0,0x0000 }, 2 }, /* 16 */
- /*expect*/ { 0,1,2 },
- },
-#ifdef NO_WAIVER
- /* <NO_WAIVER> */ /* returns 3 */
- { /*input.*/ { { 0x0041,0x00A1,0x0000 }, 2 }, /* 17 */
- /*expect*/ { 0,1,-1 },
- },
-#else
- /* XXX U00A1 in UTF-8 is valid -> /xc2/xa1 */
- { /*input.*/ { { 0x0041,0x00A1,0x0000 }, 2 }, /* 17 */
- /*expect*/ { 0,1,2 },
- },
-#endif
-#endif
- { /*input.*/ { { 0x0041,0xFF71,0x0000 }, 2 }, /* 18 */
- /*expect*/ { 0,1,2 },
- },
- { /*input.*/ { { 0x0041,0x3042,0x0000 }, 2 }, /* 19 */
- /*expect*/ { 0,1,3 },
- },
- { /*input.*/ { { 0x0041,0x3044,0x0000 }, 2 }, /* 20 */
- /*expect*/ { 0,1,3 },
- },
- { .is_last = 1 }
- }
- },
- {
- { Twcswidth, TST_LOC_end }
- }
-};
diff --git a/test/locale-mbwc/dat_wcsxfrm.c b/test/locale-mbwc/dat_wcsxfrm.c
deleted file mode 100644
index acb6727..0000000
--- a/test/locale-mbwc/dat_wcsxfrm.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN CLIBRARY
- *
- * FILE: dat_wcsxfrm.c
- *
- * WCSXFRM: size_t wcsxfrm (char *s1, const char s2, size_t n);
- */
-
-/*
- * NOTE:
- *
- * Return value and errno value are checked only for 2nd string:
- * org2[]; n1 and n2 don't mean bytes to be translated.
- * It means a buffer size including a null character.
- * Results of this test depens on results of wcscoll().
- * If you got errors, check both test results.
- */
-
-
-TST_WCSXFRM tst_wcsxfrm_loc [] = {
-
- {
- { Twcsxfrm, TST_LOC_de },
- {
- { /*inp*/ { { 0x00C1,0x0000 }, { 0x00C1,0x0000 }, 7, 7 }, /* #01 */
- /*exp*/ { 0, 0,0, },
- },
- { /*inp*/ { { 0x0042,0x0000 }, { 0x0061,0x0000 }, 7, 7 }, /* #02 */
- /*exp*/ { 0, 0,0, },
- },
- { /*inp*/ { { 0x0061,0x0000 }, { 0x0042,0x0000 }, 7, 7 }, /* #03 */
- /*exp*/ { 0, 0,0, },
- },
- { /*inp*/ { { 0x00E4,0x0000 }, { 0x00DC,0x0000 }, 7, 7 }, /* #04 */
- /*exp*/ { 0, 0,0, },
- },
- { /*inp*/ { { 0x00DC,0x0000 }, { 0x00E4,0x0000 }, 7, 7 }, /* #05 */
- /*exp*/ { 0, 0,0, },
- },
- { .is_last = 1 }
- }
- },
- {
- { Twcsxfrm, TST_LOC_enUS },
- {
- { /*inp*/ { { 0x0041,0x0000 }, { 0x0041,0x0000 }, 7, 7 }, /* #01 */
- /*exp*/ { 0, 0,0, },
- },
- { /*inp*/ { { 0x0042,0x0000 }, { 0x0061,0x0000 }, 7, 7 }, /* #02 */
- /*exp*/ { 0, 0,0, },
- },
- { /*inp*/ { { 0x0061,0x0000 }, { 0x0042,0x0000 }, 7, 7 }, /* #03 */
- /*exp*/ { 0, 0,0, },
- },
- { /*inp*/ { { 0x0000,0x0000 }, { 0x0000,0x0000 }, 7, 7 }, /* #04 */
- /*exp*/ { 0, 0,0, },
- },
-#ifdef NO_WAIVER
- { /* <WAIVER> x 2 */
- /*inp*/ { { 0x3061,0x0000 }, { 0xFF42,0x0000 }, 7, 7 }, /* #05 */
- /* <WAIVER> */
- /*exp*/ { EINVAL, 1,(size_t)-1, },
- },
-#endif
- { .is_last = 1 }
- }
- },
- {
-#if 0
- { Twcsxfrm, TST_LOC_eucJP }, /* need more test data ! */
-#else
- { Twcsxfrm, TST_LOC_ja_UTF8 }, /* need more test data ! */
-#endif
- {
- { /*inp*/ { { 0x3041,0x0000 }, { 0x3041,0x0000 }, 7, 7 }, /* #01 */
- /*exp*/ { 0, 0,0, },
- },
- { /*inp*/ { { 0x0042,0x0000 }, { 0x0061,0x0000 }, 7, 7 }, /* #02 */
- /*exp*/ { 0, 0,0, },
- },
- { /*inp*/ { { 0x0061,0x0000 }, { 0x0042,0x0000 }, 7, 7 }, /* #03 */
- /*exp*/ { 0, 0,0, },
- },
- { /*inp*/ { { 0x30A2,0x0000 }, { 0xFF71,0x0000 }, 7, 7 }, /* #04 */
- /*exp*/ { 0, 0,0, },
- },
- { /*inp*/ { { 0xFF71,0x0000 }, { 0x30A2,0x0000 }, 7, 7 }, /* #05 */
- /*exp*/ { 0, 0,0, },
- },
-#ifdef NO_WAIVER
- /* <WAIVER> x 2 */
- { /*inp*/ { { 0x008E,0x0000 }, { 0x008F,0x0000 }, 7, 7 }, /* #06 */
- /*exp*/ { EINVAL, 1,(size_t)-1, },
- },
-#endif
- { .is_last = 1 }
- }
- },
- {
- { Twcsxfrm, TST_LOC_end }
- }
-};
diff --git a/test/locale-mbwc/dat_wctob.c b/test/locale-mbwc/dat_wctob.c
deleted file mode 100644
index dfd344e..0000000
--- a/test/locale-mbwc/dat_wctob.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_wctob.c
- *
- * ISW*: int wctob( wint_t wc );
- */
-
-
-TST_WCTOB tst_wctob_loc [] = {
-
- { { Twctob, TST_LOC_de },
- {
- { { WEOF }, { 0, 1, EOF } },
- { { 0x0020 }, { 0, 1, 0x20 } },
- { { 0x0061 }, { 0, 1, 0x61 } },
- { { 0x0080 }, { 0, 1, 0x80 } },
- { { 0x00C4 }, { 0, 1, 0xC4 } },
- { { 0x30C4 }, { 0, 1, EOF } },
- { .is_last = 1 } /* Last element. */
- }
- },
- { { Twctob, TST_LOC_enUS },
- {
- { { WEOF }, { 0, 1, EOF } },
- { { 0x0020 }, { 0, 1, 0x20 } },
- { { 0x0061 }, { 0, 1, 0x61 } },
-#ifdef SHOJI_IS_RIGHT
- { { 0x0080 }, { 0, 1, 0x80 } },
- { { 0x00C4 }, { 0, 1, 0xC4 } },
-#else
- /* XXX These are no valid characters. */
- { { 0x0080 }, { 0, 1, EOF } },
- { { 0x00C4 }, { 0, 1, EOF } },
-#endif
- { { 0x30C4 }, { 0, 1, EOF } },
- { .is_last = 1 } /* Last element. */
- }
- },
-#if 0
- { { Twctob, TST_LOC_eucJP },
-#else
- { { Twctob, TST_LOC_ja_UTF8 },
-#endif
- {
- { { WEOF }, { 0, 1, EOF } },
- { { 0x0020 }, { 0, 1, 0x20 } },
- { { 0x0061 }, { 0, 1, 0x61 } },
-#if 0
- { { 0x0080 }, { 0, 1, 0x80 } },
-#else
- { { 0x0080 }, { 0, 1, EOF } },
-#endif
- { { 0x00FF }, { 0, 1, EOF } },
- { { 0x00C4 }, { 0, 1, EOF } },
- { { 0x30C4 }, { 0, 1, EOF } },
- { .is_last = 1 } /* Last element. */
- }
- },
- { { Twctob, TST_LOC_end } }
-};
diff --git a/test/locale-mbwc/dat_wctomb.c b/test/locale-mbwc/dat_wctomb.c
deleted file mode 100644
index 0ec3a9c..0000000
--- a/test/locale-mbwc/dat_wctomb.c
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_wctomb.c
- *
- * WCTOMB: int wctomb (char *s, wchar_t wc)
- */
-
-
-/*
- * FUNCTION:
- *
- * int wctomb (char *s, wchar_t wc);
- *
- * return: the number of bytes
- *
- * NOTE:
- *
- * o When you feed a null pointer for a string (s) to the function,
- * set s_flg=0 instead of putting just a 'NULL' there.
- * Even if you put a 'NULL', it means a null string as well as "".
- *
- * o When s is a null pointer, the function checks state dependency.
- *
- * state-dependent encoding - return NON-zero
- * state-independent encoding - return 0
- *
- * If state-dependent encoding is expected, set
- *
- * s_flg = 0, ret_flg = 0, ret_val = +1
- *
- * If state-independent encoding is expected, set
- *
- * s_flg = 0, ret_flg = 0, ret_val = 0
- *
- *
- * When you set ret_flg=1, the test program simply compares an
- * actual return value with an expected value. You can check
- * state-independent case (return value is 0) in that way, but
- * you can not check state-dependent case. So when you check
- * state- dependency in this test function: tst_wctomb(), set
- * ret_flg=0 always. It's a special case, and the test
- * function takes care of it.
- *
- * Input Expect
- *
- * s_flg=0 ret_flg=0
- * | |
- * { 0, 0 }, { 0, 0, 0, x, "" }
- * | |
- * not used ret_val: 0/+1
- * (expected val)
- */
-
-
-TST_WCTOMB tst_wctomb_loc [] = {
- {
- { Twctomb, TST_LOC_de },
- {
- /* #01 : normal case */
- { /*input.*/ { 1, 0x00C4 },
- /*expect*/ { 0,1,1, "�" },
- },
- /* #02 : normal case */
- { /*input.*/ { 1, 0x00DC },
- /*expect*/ { 0,1,1, "�" },
- },
- /* #03 : normal case */
- { /*input.*/ { 1, 0x0092 },
- /*expect*/ { 0,1,1, "\222" },
- },
- /* #04 : error case */
- { /*input.*/ { 1, 0x3041 },
- /*expect*/ { 0,1,-1, "" },
- },
- /* #05 : state dependency */
- { /*input.*/ { 0, 0x0000 },
- /*expect*/ { 0,0,0, "" },
- },
- { .is_last = 1 }
- }
- },
- {
- { Twctomb, TST_LOC_enUS },
- {
- /* #01 : normal case */
- { /*input.*/ { 1, 0x0041 },
- /*expect*/ { 0,1,1, "A" },
- },
- /* #02 : normal case */
- { /*input.*/ { 1, 0x0042 },
- /*expect*/ { 0,1,1, "B" },
- },
- /* #03 : error case */
- /* <WAIVER> */
- { /*input.*/ { 1, 0x00C4 },
- /*expect*/ { 0,1,-1, "" },
- },
- /* #04 : error case */
- { /*input.*/ { 1, 0x30A4 },
- /*expect*/ { 0,1,-1, "" },
- },
- /* #05 : state dependency */
- { /*input.*/ { 0, 0x0000 },
- /*expect*/ { 0,0,0, "" },
- },
- { .is_last = 1 }
- }
- },
-#if 0
- {
- { Twctomb, TST_LOC_eucJP },
- {
- /* #01 : normal case */
- { /*input.*/ { 1, 0x3042 },
- /*expect*/ { 0,1,2, "\244\242" },
- },
- /* #02 : normal case */
- { /*input.*/ { 1, 0x3044 },
- /*expect*/ { 0,1,2, "\244\244" },
- },
- /* #03 : normal case */
- { /*input.*/ { 1, 0x008E },
- /*expect*/ { 0,1,-1, "" },
- },
- /* #04 : jisX0212 */
- { /*input.*/ { 1, 0x00C4 },
- /*expect*/ { 0,1,3, "\217\252\243" }, /* jisx0210 returns 3 */
- },
- /* #05 : state dependency */
- { /*input.*/ { 0, 0x008E },
- /*expect*/ { 0,0,0, "" },
- },
- { .is_last = 1 }
- }
- },
-#else
- {
- { Twctomb, TST_LOC_ja_UTF8 },
- {
- /* #01 : normal case */
- { /*input.*/ { 1, 0x3042 },
- /*expect*/ { 0,1,3, "\343\201\202" },
- },
- /* #02 : normal case */
- { /*input.*/ { 1, 0x3044 },
- /*expect*/ { 0,1,3, "\343\201\204" },
- },
- /* #03 : normal case */
- { /*input.*/ { 1, 0x008E },
- /*expect*/ { 0,1,2, "\302\216" },
- },
- /* #04 : jisX0212 */
- { /*input.*/ { 1, 0x00C4 },
- /*expect*/ { 0,1,2, "\303\204" }, /* jisx0210 returns 3 */
- },
- /* #05 : state dependency */
- { /*input.*/ { 0, 0x008E },
- /*expect*/ { 0,0,0, "" },
- },
- { .is_last = 1 }
- }
- },
-#endif
- {
- { Twctomb, TST_LOC_end }
- }
-};
diff --git a/test/locale-mbwc/dat_wctrans.c b/test/locale-mbwc/dat_wctrans.c
deleted file mode 100644
index df4d3ad..0000000
--- a/test/locale-mbwc/dat_wctrans.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN CLIBRARY
- *
- * FILE: dat_wctrans.c
- *
- * WCTRANS: wctrans_t wctrans( const char *charclass );
- */
-
-/*
- * NOTE:
- * When a return value is expected to be 0 (false),
- * set ret_flg=1 and set ret_val=0.
- * Otherwise just set ret_flg=0.
- */
-
-
-TST_WCTRANS tst_wctrans_loc [] = {
-
- { { Twctrans, TST_LOC_de },
- {
- { /*inp*/ { "" }, /* #1 */
- /*exp*/ { 0,1,0, },
- },
- { /*inp*/ { "upper" }, /* #2 */
- /*exp*/ { 0,1,0, },
- },
- { /*inp*/ { "lower" }, /* #3 */
- /*exp*/ { 0,1,0, },
- },
- { /*inp*/ { "toupper" }, /* #4 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "tolower" }, /* #5 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "xxxxx" }, /* #6 */
- /*exp*/ { 0,1,0, },
- },
- { .is_last = 1 }
- }
- },
- { { Twctrans, TST_LOC_enUS },
- {
- { /*inp*/ { "" }, /* #1 */
- /*exp*/ { 0,1,0, },
- },
- { /*inp*/ { "upper" }, /* #2 */
- /*exp*/ { 0,1,0, },
- },
- { /*inp*/ { "lower" }, /* #3 */
- /*exp*/ { 0,1,0, },
- },
- { /*inp*/ { "toupper" }, /* #4 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "tolower" }, /* #5 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "xxxxx" }, /* #6 */
- /*exp*/ { 0,1,0, },
- },
- { .is_last = 1 }
- }
- },
-#if 0
- { { Twctrans, TST_LOC_eucJP },
-#else
- { { Twctrans, TST_LOC_ja_UTF8 },
-#endif
- {
- { /*inp*/ { "" }, /* #1 */
- /*exp*/ { 0,1,0, },
- },
- { /*inp*/ { "upper" }, /* #2 */
- /*exp*/ { 0,1,0, },
- },
- { /*inp*/ { "lower" }, /* #3 */
- /*exp*/ { 0,1,0, },
- },
- { /*inp*/ { "toupper" }, /* #4 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "tolower" }, /* #5 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "xxxxx" }, /* #6 */
- /*exp*/ { 0,1,0, },
- },
- { /*inp*/ { "tojhira" }, /* #7 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "tojkata" }, /* #8 */
- /*exp*/ { 0,0,0, },
- },
- { .is_last = 1 }
- }
- },
- { { Twctrans, TST_LOC_end }}
-};
diff --git a/test/locale-mbwc/dat_wctype.c b/test/locale-mbwc/dat_wctype.c
deleted file mode 100644
index db3bf33..0000000
--- a/test/locale-mbwc/dat_wctype.c
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN CLIBRARY
- *
- * FILE: dat_wctype.c
- *
- * WCTYPE: wctype_t wctype( const char *class );
- */
-
-/*
- * NOTE:
- * When a return value is expected to be 0 (false),
- * set ret_flg=1 and set ret_val=0.
- * Otherwise just set ret_flg=0.
- */
-
-
-TST_WCTYPE tst_wctype_loc [] = {
-
- { { Twctype, TST_LOC_de },
- {
- { /*inp*/ { "alnum" }, /* #01 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "alpha" }, /* #02 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "cntrl" }, /* #03 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "digit" }, /* #04 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "graph" }, /* #05 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "lower" }, /* #06 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "print" }, /* #07 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "punct" }, /* #08 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "space" }, /* #09 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "upper" }, /* #10 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "xdigit" }, /* #11 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "" }, /* #12 */
- /*exp*/ { 0,1,0, },
- },
- { /*inp*/ { "ideograph" }, /* #13 */
- /*exp*/ { 0,1,0, },
- },
- { /*inp*/ { "english" }, /* #14 */
- /*exp*/ { 0,1,0, },
- },
- { /*inp*/ { "ascii" }, /* #15 */
- /*exp*/ { 0,1,0, },
- },
- { /*inp*/ { "special" }, /* #16 */
- /*exp*/ { 0,1,0, },
- },
- { .is_last = 1 }
- }
- },
- { { Twctype, TST_LOC_enUS },
- {
- { /*inp*/ { "alnum" }, /* #01 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "alpha" }, /* #02 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "cntrl" }, /* #03 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "digit" }, /* #04 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "graph" }, /* #05 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "lower" }, /* #06 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "print" }, /* #07 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "punct" }, /* #08 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "space" }, /* #09 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "upper" }, /* #10 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "xdigit" }, /* #11 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "" }, /* #12 */
- /*exp*/ { 0,1,0, },
- },
- { /*inp*/ { "ideograph" }, /* #13 */
- /*exp*/ { 0,1,0, },
- },
- { /*inp*/ { "english" }, /* #14 */
- /*exp*/ { 0,1,0, },
- },
- { /*inp*/ { "ascii" }, /* #15 */
- /*exp*/ { 0,1,0, },
- },
- { /*inp*/ { "special" }, /* #16 */
- /*exp*/ { 0,1,0, },
- },
- { .is_last = 1 }
- }
- },
-#if 0
- { { Twctype, TST_LOC_eucJP },
-#else
- { { Twctype, TST_LOC_ja_UTF8 },
-#endif
- {
- { /*inp*/ { "alnum" }, /* #01 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "alpha" }, /* #02 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "cntrl" }, /* #03 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "digit" }, /* #04 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "graph" }, /* #05 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "lower" }, /* #06 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "print" }, /* #07 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "punct" }, /* #08 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "space" }, /* #09 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "upper" }, /* #10 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "xdigit" }, /* #11 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "ideogram" }, /* #12 */
- /*exp*/ { 0,1,0, },
- },
- { /*inp*/ { "phonogram" }, /* #13 */
- /*exp*/ { 0,1,0, },
- },
- { /*inp*/ { "jspace" }, /* #14 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "jhira" }, /* #15 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "jkata" }, /* #16 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "jkanji" }, /* #17 */
- /*exp*/ { 0,0,0, },
- },
- { /*inp*/ { "jdigit" }, /* #18 */
- /*exp*/ { 0,0,0, },
- },
- { .is_last = 1 }
- }
- },
- { { Twctype, TST_LOC_end }}
-};
diff --git a/test/locale-mbwc/dat_wcwidth.c b/test/locale-mbwc/dat_wcwidth.c
deleted file mode 100644
index b6b7c29..0000000
--- a/test/locale-mbwc/dat_wcwidth.c
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: dat_wcwidth.c
- *
- * WCWIDTH: int wcwidth (wchar_t wc);
- */
-
-TST_WCWIDTH tst_wcwidth_loc [] = {
- {
- { Twcwidth, TST_LOC_de },
- {
- { /*inp*/ { 0x0000 }, /* #01 */
- /*exp*/ { 0, 1,0, },
- },
- { /*inp*/ { 0x0020 }, /* #02 */
- /*exp*/ { 0, 1,1, },
- },
- { /*inp*/ { 0x007F }, /* #03 */
- /*exp*/ { 0, 1,-1, },
- },
- { /*inp*/ { 0x0080 }, /* #04 */
- /*exp*/ { 0, 1,-1, },
- },
- { /*inp*/ { 0x00A1 }, /* #05 */
- /*exp*/ { 0, 1,1, },
- },
- { /*inp*/ { 0x00C1 }, /* #06 */
- /*exp*/ { 0, 1,1, },
- },
-#ifdef SHOJI_IS_RIGHT
- /* <WAIVER> */ /* CHECK : wint_t */
- { /*inp*/ { 0x3041 }, /* #07 */
- /*exp*/ { 0, 1,0, },
- },
-#else
- { /*inp*/ { 0x3041 }, /* #07 */
- /*exp*/ { 0, 1,EOF, },
- },
-#endif
- { .is_last = 1 }
- }
- },
- {
- { Twcwidth, TST_LOC_enUS },
- {
- { /*inp*/ { 0x0000 }, /* #01 */
- /*exp*/ { 0, 1,0, },
- },
- { /*inp*/ { 0x0020 }, /* #02 */
- /*exp*/ { 0, 1,1, },
- },
- { /*inp*/ { 0x007F }, /* #03 */
- /*exp*/ { 0, 1,-1, },
- },
- { /*inp*/ { 0x0080 }, /* #04 */
- /*exp*/ { 0, 1,-1, },
- },
- { /*inp*/ { 0x00A1 }, /* #05 */
- /*exp*/ { 0, 1,-1, },
- },
- { /*inp*/ { 0x00C1 }, /* #06 */
- /*exp*/ { 0, 1,-1, },
- },
- { /*inp*/ { 0x3041 }, /* #07 */
- /*exp*/ { 0, 1,-1, },
- },
- { .is_last = 1 }
- }
- },
-#if 0
- {
- { Twcwidth, TST_LOC_eucJP },
- {
- { /*inp*/ { 0x0000 }, /* #01 */
- /*exp*/ { 0, 1,0, },
- },
- { /*inp*/ { 0x0020 }, /* #02 */
- /*exp*/ { 0, 1,1, },
- },
- { /*inp*/ { 0x007F }, /* #03 */
- /*exp*/ { 0, 1,-1, },
- },
- { /*inp*/ { 0x0080 }, /* #04 */
- /*exp*/ { 0, 1,-1, },
- },
-#ifdef SHOJI_IS_RIGHT
- /* <NO_WAIVER> */
- { /*inp*/ { 0x00A1 }, /* #05 */
- /*exp*/ { 0, 1,0, },
- },
-#else
- /* XXX U00A1 is a valid character in EUC-JP. */
- { /*inp*/ { 0x00A1 }, /* #05 */
- /*exp*/ { 0, 1,2, },
- },
-#endif
- /* jisx0212 */
- { /*inp*/ { 0x00C1 }, /* #06 */
- /*exp*/ { 0, 1,2, },
- },
- { /*inp*/ { 0x3041 }, /* #07 */
- /*exp*/ { 0, 1,2, },
- },
- { .is_last = 1 }
- }
- },
-#else
- {
- { Twcwidth, TST_LOC_ja_UTF8 },
- {
- { /*inp*/ { 0x0000 }, /* #01 */
- /*exp*/ { 0, 1,0, },
- },
- { /*inp*/ { 0x0020 }, /* #02 */
- /*exp*/ { 0, 1,1, },
- },
- { /*inp*/ { 0x007F }, /* #03 */
- /*exp*/ { 0, 1,-1, },
- },
- { /*inp*/ { 0x0080 }, /* #04 */
- /*exp*/ { 0, 1,-1, },
- },
-#ifdef SHOJI_IS_RIGHT
- /* <NO_WAIVER> */
- { /*inp*/ { 0x00A1 }, /* #05 */
- /*exp*/ { 0, 1,0, },
- },
-#else
- /* XXX U00A1 is a valid character in EUC-JP.UTF-8. */
- { /*inp*/ { 0x00A1 }, /* #05 */
- /*exp*/ { 0, 1,1, },
- },
-#endif
- /* jisx0212 */
- { /*inp*/ { 0x00C1 }, /* #06 */
- /*exp*/ { 0, 1,1, },
- },
- { /*inp*/ { 0x3041 }, /* #07 */
- /*exp*/ { 0, 1,2, },
- },
- { .is_last = 1 }
- }
- },
-#endif
- {
- { Twcwidth, TST_LOC_end }
- }
-};
diff --git a/test/locale-mbwc/tgn_funcdef.h b/test/locale-mbwc/tgn_funcdef.h
deleted file mode 100644
index ec24792..0000000
--- a/test/locale-mbwc/tgn_funcdef.h
+++ /dev/null
@@ -1,160 +0,0 @@
-#ifndef TGN_FUNCDEF_H
-#define TGN_FUNCDEF_H
-
-/* Unique number for each test. */
-#define Tiswalnum 1
-#define Tiswalpha 2
-#define Tiswcntrl 3
-#define Tiswctype 4
-#define Tiswdigit 5
-#define Tiswgraph 6
-#define Tiswlower 7
-#define Tiswprint 8
-#define Tiswpunct 9
-#define Tiswspace 10
-#define Tiswupper 11
-#define Tiswxdigit 12
-#define Tmblen 13
-#define Tmbrlen 14
-#define Tmbrtowc 15
-#define Tmbsrtowcs 16
-#define Tmbstowcs 17
-#define Tmbtowc 18
-#define Tstrcoll 19
-#define Tstrfmon 20
-#define Tstrxfrm 21
-#define Tswscanf 22
-#define Ttowctrans 23
-#define Ttowlower 24
-#define Ttowupper 25
-#define Twcrtomb 26
-#define Twcscat 27
-#define Twcschr 28
-#define Twcscmp 29
-#define Twcscoll 30
-#define Twcscpy 31
-#define Twcscspn 32
-#define Twcslen 33
-#define Twcsncat 34
-#define Twcsncmp 35
-#define Twcsncpy 36
-#define Twcspbrk 37
-#define Twcsrtombs 38
-#define Twcsspn 39
-#define Twcsstr 40
-#define Twcstod 41
-#define Twcstok 42
-#define Twcstombs 43
-#define Twcswidth 44
-#define Twcsxfrm 45
-#define Twctob 46
-#define Twctomb 47
-#define Twctrans 48
-#define Twctype 49
-#define Twcwidth 50
-
-/* Name of each test. */
-#define S_ISWALNUM "iswalnum"
-#define S_ISWALPHA "iswalpha"
-#define S_ISWCNTRL "iswcntrl"
-#define S_ISWCTYPE "iswctype"
-#define S_ISWDIGIT "iswdigit"
-#define S_ISWGRAPH "iswgraph"
-#define S_ISWLOWER "iswlower"
-#define S_ISWPRINT "iswprint"
-#define S_ISWPUNCT "iswpunct"
-#define S_ISWSPACE "iswspace"
-#define S_ISWUPPER "iswupper"
-#define S_ISWXDIGIT "iswxdigit"
-#define S_MBLEN "mblen"
-#define S_MBRLEN "mbrlen"
-#define S_MBRTOWC "mbrtowc"
-#define S_MBSRTOWCS "mbsrtowcs"
-#define S_MBSTOWCS "mbstowcs"
-#define S_MBTOWC "mbtowc"
-#define S_STRCOLL "strcoll"
-#define S_STRFMON "strfmon"
-#define S_STRXFRM "strxfrm"
-#define S_SWSCANF "swscanf"
-#define S_TOWCTRANS "towctrans"
-#define S_TOWLOWER "towlower"
-#define S_TOWUPPER "towupper"
-#define S_WCRTOMB "wcrtomb"
-#define S_WCSCAT "wcscat"
-#define S_WCSCHR "wcschr"
-#define S_WCSCMP "wcscmp"
-#define S_WCSCOLL "wcscoll"
-#define S_WCSCPY "wcscpy"
-#define S_WCSCSPN "wcscspn"
-#define S_WCSLEN "wcslen"
-#define S_WCSNCAT "wcsncat"
-#define S_WCSNCMP "wcsncmp"
-#define S_WCSNCPY "wcsncpy"
-#define S_WCSPBRK "wcspbrk"
-#define S_WCSRTOMBS "wcsrtombs"
-#define S_WCSSPN "wcsspn"
-#define S_WCSSTR "wcsstr"
-#define S_WCSTOD "wcstod"
-#define S_WCSTOK "wcstok"
-#define S_WCSTOMBS "wcstombs"
-#define S_WCSWIDTH "wcswidth"
-#define S_WCSXFRM "wcsxfrm"
-#define S_WCTOB "wctob"
-#define S_WCTOMB "wctomb"
-#define S_WCTRANS "wctrans"
-#define S_WCTYPE "wctype"
-#define S_WCWIDTH "wcwidth"
-
-/* Prototypes for test functions. */
-extern int tst_iswalnum (FILE *, int);
-extern int tst_iswalpha (FILE *, int);
-extern int tst_iswcntrl (FILE *, int);
-extern int tst_iswctype (FILE *, int);
-extern int tst_iswdigit (FILE *, int);
-extern int tst_iswgraph (FILE *, int);
-extern int tst_iswlower (FILE *, int);
-extern int tst_iswprint (FILE *, int);
-extern int tst_iswpunct (FILE *, int);
-extern int tst_iswspace (FILE *, int);
-extern int tst_iswupper (FILE *, int);
-extern int tst_iswxdigit (FILE *, int);
-extern int tst_mblen (FILE *, int);
-extern int tst_mbrlen (FILE *, int);
-extern int tst_mbrtowc (FILE *, int);
-extern int tst_mbsrtowcs (FILE *, int);
-extern int tst_mbstowcs (FILE *, int);
-extern int tst_mbtowc (FILE *, int);
-extern int tst_strcoll (FILE *, int);
-extern int tst_strfmon (FILE *, int);
-extern int tst_strxfrm (FILE *, int);
-extern int tst_swscanf (FILE *, int);
-extern int tst_towctrans (FILE *, int);
-extern int tst_towlower (FILE *, int);
-extern int tst_towupper (FILE *, int);
-extern int tst_wcrtomb (FILE *, int);
-extern int tst_wcscat (FILE *, int);
-extern int tst_wcschr (FILE *, int);
-extern int tst_wcscmp (FILE *, int);
-extern int tst_wcscoll (FILE *, int);
-extern int tst_wcscpy (FILE *, int);
-extern int tst_wcscspn (FILE *, int);
-extern int tst_wcslen (FILE *, int);
-extern int tst_wcsncat (FILE *, int);
-extern int tst_wcsncmp (FILE *, int);
-extern int tst_wcsncpy (FILE *, int);
-extern int tst_wcspbrk (FILE *, int);
-extern int tst_wcsrtombs (FILE *, int);
-extern int tst_wcsspn (FILE *, int);
-extern int tst_wcsstr (FILE *, int);
-extern int tst_wcstod (FILE *, int);
-extern int tst_wcstok (FILE *, int);
-extern int tst_wcstombs (FILE *, int);
-extern int tst_wcswidth (FILE *, int);
-extern int tst_wcsxfrm (FILE *, int);
-extern int tst_wctob (FILE *, int);
-extern int tst_wctomb (FILE *, int);
-extern int tst_wctrans (FILE *, int);
-extern int tst_wctype (FILE *, int);
-extern int tst_wcwidth (FILE *, int);
-
-#endif /* TGN_FUNCDEF_H */
diff --git a/test/locale-mbwc/tgn_locdef.h b/test/locale-mbwc/tgn_locdef.h
deleted file mode 100644
index 89146a7..0000000
--- a/test/locale-mbwc/tgn_locdef.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef TGN_LOCDEF_H
-#define TGN_LOCDEF_H
-
-/* Defines for all locales used in the suite. */
-
-/* POSIX C locale. */
-#define TST_LOC_C "C"
-
-/* German locale with ISO-8859-1. */
-#define TST_LOC_de "de_DE.ISO-8859-1"
-
-/* For US we use ANSI_X3.4-1968 (ASCII). Changed in en_US.ISO-8859-1 */
-#define TST_LOC_en "en_US.ISO-8859-1"
-#define TST_LOC_enUS TST_LOC_C
-
-/* NOTE: ja_JP.EUC-JP locale isn't supported into the uClibc!
- UTF-8 is the only multibyte codeset supported. */
-/* Japanese locale with EUC-JP. */
-#if 0
-#define TST_LOC_eucJP "ja_JP.EUC-JP"
-#endif
-
-/* Japanese locale with UTF-8. */
-#define TST_LOC_ja_UTF8 "ja_JP.UTF-8"
-
-/* German locale with UTF-8. */
-#define TST_LOC_de_UTF8 "de_DE.UTF-8"
-
-/* End marker - must appear in each table as last entry. */
-#define TST_LOC_end "lastEntry"
-
-#endif /* TGN_LOCDEF_H */
diff --git a/test/locale-mbwc/tsp_common.c b/test/locale-mbwc/tsp_common.c
deleted file mode 100644
index cd88274..0000000
--- a/test/locale-mbwc/tsp_common.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- * Main driver
- */
-
-
-#define TST_FUNCTION_CALL(func) _TST_FUNCTION_CALL(func)
-#define _TST_FUNCTION_CALL(func) tst ##_## func
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <locale.h>
-#include <errno.h>
-#include <signal.h>
-
-#include "tst_types.h"
-#include "tgn_locdef.h"
-
-
-int
-main (int argc, char *argv[])
-{
- int ret;
- int debug;
-
- debug = argc > 1 ? atoi (argv[1]) : 0;
-
- if (debug)
- {
- fprintf (stdout, "\nTST_MBWC ===> %s ...\n", argv[0]);
- }
- ret = TST_FUNCTION_CALL (TST_FUNCTION) (stdout, debug);
-
- return (ret != 0);
-}
-
-#define MAX_RESULT_REC 132
-char result_rec[MAX_RESULT_REC];
-
-
-int
-result (FILE * fp, char res, const char *func, const char *loc, int rec_no,
- int seq_no, int case_no, const char *msg)
-{
- if (fp == NULL
- || strlen (func) + strlen (loc) + strlen (msg) + 32 > MAX_RESULT_REC)
- {
- fprintf (stderr,
- "Warning: result(): can't write the result: %s:%s:%d:%d:%s\n",
- func, loc, rec_no, case_no, msg);
- return 0;
- }
-
- sprintf (result_rec, "%s:%s:%d:%d:%d:%c:%s\n", func, loc, rec_no, seq_no,
- case_no, res, msg);
-
- if (fputs (result_rec, fp) == EOF)
- {
- return 0;
- }
-
- return 1;
-}
diff --git a/test/locale-mbwc/tst2_mbrtowc.c b/test/locale-mbwc/tst2_mbrtowc.c
deleted file mode 100644
index 92e1283..0000000
--- a/test/locale-mbwc/tst2_mbrtowc.c
+++ /dev/null
@@ -1,21 +0,0 @@
-#include <wchar.h>
-#include <assert.h>
-#include <stdlib.h>
-
-/*
bugs.uclibc.org/1471 : make sure output is 0 */
-static int
-do_test(void)
-{
- wchar_t output;
- int result;
-
- output = L'A'; /* anything other than 0 will do... */
- result = mbrtowc (&output, "", 1, 0);
-
- assert (result == 0);
- assert (output == 0);
-
- return EXIT_SUCCESS;
-}
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/locale-mbwc/tst_funcs.h b/test/locale-mbwc/tst_funcs.h
deleted file mode 100644
index 02d5d34..0000000
--- a/test/locale-mbwc/tst_funcs.h
+++ /dev/null
@@ -1,294 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: tst_funcs.h
- *
- * Definitions of macros
- */
-
-
-#ifndef TST_FUNCS_H
-#define TST_FUNCS_H
-
-#define C_SUCCESS 'S' /* test case test passed */
-#define C_FAILURE 'F' /* test case failed */
-#define C_IGNORED 'I' /* test case/result ignored (not tested) */
-#define C_INVALID 'D' /* test data may be wrong */
-#define C_LOCALES 'L' /* can't set locale (skip) */
-
-
-extern int result (FILE * fp, char res, const char *func, const char *loc,
- int rec_no, int seq_num, int case_no, const char *msg);
-
-#define Result(C, S, E, M) \
- result (fp, (C), (S), locale, rec+1, seq_num+1, (E), (M))
-
-#define CASE_0 0
-#define CASE_1 1
-#define CASE_2 2
-#define CASE_3 3
-#define CASE_4 4
-#define CASE_5 5
-#define CASE_6 6
-#define CASE_7 7
-#define CASE_8 8
-#define CASE_9 9
-
-#define MS_PASSED "PASSED"
-#define MS_SPACE " "
-#define MS_FAILED " "
-#define MS_NOTEST "NOTEST"
-#define MS_ABORTU "ABEND0"
-#define MS_ABORT "ABEND1"
-
-#define MK_PASSED 0x00
-#define MK_SPACE 0x01
-#define MK_NOTEST 0x02
-#define MK_ABORTU 0x04
-#define MK_ABORT 0x08
-
-
-
-/* ------------------ COMMON MACROS ------------------ */
-
-#define TST_ABS(x) (((x) > 0) ? (x) : -(x))
-
-#define TMD_ERRET(_type_) int err_val; \
- int ret_flg; \
- _type_ ret_val
-
-#define TMD_RECHEAD(_FUNC_) \
- \
- typedef struct { \
- TIN_##_FUNC_##_REC input; \
- TEX_##_FUNC_##_REC expect; \
- int is_last; \
- } TST_##_FUNC_##_REC; \
- typedef struct { \
- TST_HEAD hd; \
- TST_##_FUNC_##_REC rec[ MAX_LOC_TEST ]; \
- } TST_##_FUNC_
-
-#define TST_FTYP(func) tst_##func##_loc
-#define TST_HEAD(func) tst_##func##_loc[ loc ].hd
-#define TST_INPUT(func) tst_##func##_loc[ loc ].rec[ rec ].input
-#define TST_EXPECT(func) tst_##func##_loc[ loc ].rec[ rec ].expect
-#define TST_INPUT_SEQ(func) \
- tst_##func##_loc[ loc ].rec[ rec ].input.seq[ seq_num ]
-#define TST_EXPECT_SEQ(func) \
- tst_##func##_loc[ loc ].rec[ rec ].expect.seq[ seq_num ]
-#define TST_IS_LAST(func) \
- tst_##func##_loc[ loc ].rec[ rec ].is_last
-
-
-#define TST_DECL_VARS(_type_) \
- int loc, rec, err_count = 0; \
- int warn_count __attribute__ ((unused)); \
- int seq_num = 0; \
- const char *locale; \
- int err_exp, ret_flg; \
- int errno_save = 0; \
- _type_ ret_exp; \
- _type_ ret
-
-#define TST_DO_TEST(o_func) \
- for (loc = 0; strcmp (TST_HEAD (o_func).locale, TST_LOC_end); ++loc)
-
-
-#ifdef __UCLIBC_HAS_LOCALE__
-#define TST_HEAD_LOCALE(ofunc, s_func) \
- locale = TST_HEAD (ofunc).locale; \
- if (setlocale (LC_ALL, locale) == NULL) \
- { \
- fprintf (stderr, "Warning : can't set locale: %s\nskipping ...\n",
\
- locale); \
- result (fp, C_LOCALES, s_func, locale, 0, 0, 0, "can't set locale");
\
- ++err_count; \
- continue; \
- }
-#else
-#define TST_HEAD_LOCALE(ofunc, s_func) \
- locale = TST_HEAD (ofunc).locale; \
- if (strcmp(locale, "C") == 0) \
- { \
- if (setlocale (LC_ALL, locale) == NULL) \
- { \
- fprintf (stderr, "Warning : can't set locale: %s\nskipping ...\n", \
- locale); \
- result (fp, C_LOCALES, s_func, locale, 0, 0, 0, "can't set locale"); \
- ++err_count; \
- continue; \
- } \
- } \
- else \
- { \
- fprintf (stderr, "Warning : locale %s unsupported\n\n", \
- locale); \
- result (fp, C_LOCALES, s_func, locale, 0, 0, 0, "unsupported"); \
- continue; \
- }
-#endif
-
-#define TST_DO_REC(ofunc) \
- for (rec=0; !TST_IS_LAST (ofunc); ++rec)
-
-#define TST_DO_SEQ(_count_) \
- for (seq_num=0; seq_num < _count_; seq_num++)
-
-#define TST_GET_ERRET(_ofunc_) \
- err_exp = TST_EXPECT (_ofunc_).err_val; \
- ret_flg = TST_EXPECT (_ofunc_).ret_flg; \
- ret_exp = TST_EXPECT (_ofunc_).ret_val
-
-#define TST_GET_ERRET_SEQ(_ofunc_) \
- err_exp = TST_EXPECT_SEQ (_ofunc_).err_val; \
- ret_flg = TST_EXPECT_SEQ (_ofunc_).ret_flg; \
- ret_exp = TST_EXPECT_SEQ (_ofunc_).ret_val
-
-#define TST_CLEAR_ERRNO \
- errno = 0
-
-#define TST_SAVE_ERRNO \
- errno_save = errno
-
-/* Test value of ret and of errno if it should have a value. */
-#define TST_IF_RETURN(_s_func_) \
- if (err_exp != 0) \
- { \
- if (errno_save == err_exp) \
- { \
- result (fp, C_SUCCESS, _s_func_, locale, rec+1, seq_num+1, 1, \
- MS_PASSED); \
- } \
- else \
- { \
- err_count++; \
- result (fp, C_FAILURE, _s_func_, locale, rec+1, seq_num+1, 1, \
- "the value of errno is different from an expected value"); \
- } \
- } \
- \
- if (ret_flg == 1) \
- { \
- if (ret == ret_exp) \
- { \
- result (fp, C_SUCCESS, _s_func_, locale, rec+1, seq_num+1, 2, \
- MS_PASSED); \
- } \
- else \
- { \
- err_count++; \
- result (fp, C_FAILURE, _s_func_, locale, rec+1, seq_num+1, 2, \
- "the return value is different from an expected value"); \
- } \
- } \
- else
-
-#define TEX_ERRET_REC(_type_) \
- struct { \
- TMD_ERRET (_type_); \
- }
-
-#define TEX_ERRET_REC_SEQ(_type_, _count_) \
- struct { \
- struct { \
- TMD_ERRET (_type_); \
- } seq[ _count_ ]; \
- }
-
-
-
-/* ------------------ FUNCTION: ISW*() ------------------- */
-
-#define TST_ISW_STRUCT(_FUNC_, _func_) \
- typedef \
- struct { \
- wint_t wc; \
- } TIN_ISW##_FUNC_##_REC; \
- typedef \
- TEX_ERRET_REC (int) TEX_ISW##_FUNC_##_REC; \
- TMD_RECHEAD (ISW##_FUNC_)
-
-#define TST_FUNC_ISW(_FUNC_, _func_) \
-int \
-tst_isw##_func_ (FILE *fp, int debug_flg) \
-{ \
- TST_DECL_VARS(int); \
- wint_t wc; \
- TST_DO_TEST (isw##_func_) \
- { \
- TST_HEAD_LOCALE (isw##_func_, S_ISW##_FUNC_); \
- TST_DO_REC(isw##_func_) \
- { \
- TST_GET_ERRET (isw##_func_); \
- wc = TST_INPUT (isw##_func_).wc; \
- ret = isw##_func_ (wc); \
- if (debug_flg) \
- { \
- fprintf (stdout, "isw*() [ %s : %d ] ret = %d\n", locale, \
- rec+1, ret); \
- } \
- \
- TST_IF_RETURN (S_ISW##_FUNC_) \
- { \
- if (ret != 0) \
- { \
- result (fp, C_SUCCESS, S_ISW##_FUNC_, locale, rec+1, \
- seq_num+1, 3, MS_PASSED); \
- } \
- else \
- { \
- err_count++; \
- result (fp, C_FAILURE, S_ISW##_FUNC_, locale, rec+1, \
- seq_num+1, 3, \
- "the function returned 0, but should be non-zero"); \
- } \
- } \
- } \
- } \
- \
- return err_count; \
-}
-
-
-
-/* ------------------ FUNCTION: TOW*() ------------------ */
-
-#define TST_TOW_STRUCT(_FUNC_, _func_) \
- typedef \
- struct { \
- wint_t wc; \
- } TIN_TOW##_FUNC_##_REC; \
- typedef \
- TEX_ERRET_REC (wint_t) TEX_TOW##_FUNC_##_REC; \
- TMD_RECHEAD (TOW##_FUNC_)
-
-#define TST_FUNC_TOW(_FUNC_, _func_) \
-int \
-tst_tow##_func_ (FILE *fp, int debug_flg) \
-{ \
- TST_DECL_VARS (wint_t); \
- wint_t wc; \
- TST_DO_TEST (tow##_func_) \
- { \
- TST_HEAD_LOCALE (tow##_func_, S_TOW##_FUNC_); \
- TST_DO_REC (tow##_func_) \
- { \
- TST_GET_ERRET (tow##_func_); \
- wc = TST_INPUT (tow##_func_).wc; \
- ret = tow##_func_ (wc); \
- if (debug_flg) \
- { \
- fprintf (stdout, "tow*() [ %s : %d ] ret = 0x%x\n", \
- locale, rec+1, ret); \
- } \
- \
- TST_IF_RETURN (S_TOW##_FUNC_) { }; \
- } \
- } \
- \
- return err_count; \
-}
-
-
-#endif /* TST_FUNCS_H */
diff --git a/test/locale-mbwc/tst_iswalnum.c b/test/locale-mbwc/tst_iswalnum.c
deleted file mode 100644
index 95ba863..0000000
--- a/test/locale-mbwc/tst_iswalnum.c
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- ISWALNUM: int iswalnum (wint_t wc)
-*/
-
-#define TST_FUNCTION iswalnum
-
-#include "tsp_common.c"
-#include "dat_iswalnum.c"
-
-TST_FUNC_ISW (ALNUM, alnum);
diff --git a/test/locale-mbwc/tst_iswalpha.c b/test/locale-mbwc/tst_iswalpha.c
deleted file mode 100644
index 8eff2cc..0000000
--- a/test/locale-mbwc/tst_iswalpha.c
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- ISWALPHA: int iswalpha (wint_t wc);
-*/
-
-#define TST_FUNCTION iswalpha
-
-#include "tsp_common.c"
-#include "dat_iswalpha.c"
-
-TST_FUNC_ISW (ALPHA, alpha);
diff --git a/test/locale-mbwc/tst_iswcntrl.c b/test/locale-mbwc/tst_iswcntrl.c
deleted file mode 100644
index 4e1baa8..0000000
--- a/test/locale-mbwc/tst_iswcntrl.c
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- ISWCNTRL: int iswcntrl (wint_t wc);
-*/
-
-#define TST_FUNCTION iswcntrl
-
-#include "tsp_common.c"
-#include "dat_iswcntrl.c"
-
-TST_FUNC_ISW (CNTRL, cntrl);
diff --git a/test/locale-mbwc/tst_iswctype.c b/test/locale-mbwc/tst_iswctype.c
deleted file mode 100644
index 3e79e09..0000000
--- a/test/locale-mbwc/tst_iswctype.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- ISWCTYPE: int iswctype (wint_t wc, wctype_t desc);
-*/
-
-#define TST_FUNCTION iswctype
-
-#include "tsp_common.c"
-#include "dat_iswctype.c"
-
-
-int
-tst_iswctype (FILE *fp, int debug_flg)
-{
- TST_DECL_VARS (int);
- wint_t wc;
- const char *ts;
-
- TST_DO_TEST (iswctype)
- {
- TST_HEAD_LOCALE (iswctype, S_ISWCTYPE);
- TST_DO_REC (iswctype)
- {
- TST_GET_ERRET (iswctype);
- wc = TST_INPUT (iswctype).wc;
- ts = TST_INPUT (iswctype).ts;
- ret = iswctype (wc, wctype (ts));
- TST_SAVE_ERRNO;
- if (debug_flg)
- {
- fprintf (stdout, "iswctype() [ %s : %d ] ret = %d\n",
- locale, rec+1, ret);
- }
-
- TST_IF_RETURN (S_ISWCTYPE)
- {
- if (ret != 0)
- {
- result (fp, C_SUCCESS, S_ISWCTYPE, locale, rec+1,
- seq_num+1, 3, MS_PASSED);
- }
- else
- {
- err_count++;
- result (fp, C_FAILURE, S_ISWCTYPE, locale, rec+1,
- seq_num+1, 3,
- "the function returned 0, but should be non-zero");
- }
- }
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_iswdigit.c b/test/locale-mbwc/tst_iswdigit.c
deleted file mode 100644
index 5429ed0..0000000
--- a/test/locale-mbwc/tst_iswdigit.c
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- ISWDIGIT: int iswdigit (wint_t wc);
-*/
-
-
-#define TST_FUNCTION iswdigit
-
-#include "tsp_common.c"
-#include "dat_iswdigit.c"
-
-TST_FUNC_ISW (DIGIT, digit);
diff --git a/test/locale-mbwc/tst_iswgraph.c b/test/locale-mbwc/tst_iswgraph.c
deleted file mode 100644
index 91a70e2..0000000
--- a/test/locale-mbwc/tst_iswgraph.c
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- ISWGRAPH: int iswgraph (wint_t wc);
-*/
-
-#define TST_FUNCTION iswgraph
-
-#include "tsp_common.c"
-#include "dat_iswgraph.c"
-
-TST_FUNC_ISW (GRAPH, graph);
diff --git a/test/locale-mbwc/tst_iswlower.c b/test/locale-mbwc/tst_iswlower.c
deleted file mode 100644
index e091100..0000000
--- a/test/locale-mbwc/tst_iswlower.c
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- ISWLOWER: int iswlower (wint_t wc);
-*/
-
-#define TST_FUNCTION iswlower
-
-#include "tsp_common.c"
-#include "dat_iswlower.c"
-
-TST_FUNC_ISW (LOWER, lower);
diff --git a/test/locale-mbwc/tst_iswprint.c b/test/locale-mbwc/tst_iswprint.c
deleted file mode 100644
index 8d5bde5..0000000
--- a/test/locale-mbwc/tst_iswprint.c
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- ISWPRINT: int iswprint (wint_t wc);
-*/
-
-#define TST_FUNCTION iswprint
-
-#include "tsp_common.c"
-#include "dat_iswprint.c"
-
-TST_FUNC_ISW (PRINT, print);
diff --git a/test/locale-mbwc/tst_iswpunct.c b/test/locale-mbwc/tst_iswpunct.c
deleted file mode 100644
index 4749d61..0000000
--- a/test/locale-mbwc/tst_iswpunct.c
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- ISWPUNCT: int iswpunct (wint_t wc);
-*/
-
-#define TST_FUNCTION iswpunct
-
-#include "tsp_common.c"
-#include "dat_iswpunct.c"
-
-TST_FUNC_ISW (PUNCT, punct);
diff --git a/test/locale-mbwc/tst_iswspace.c b/test/locale-mbwc/tst_iswspace.c
deleted file mode 100644
index 6c26d5f..0000000
--- a/test/locale-mbwc/tst_iswspace.c
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- ISWSPACE: int iswspace (wint_t wc);
-*/
-
-#define TST_FUNCTION iswspace
-
-#include "tsp_common.c"
-#include "dat_iswspace.c"
-
-TST_FUNC_ISW (SPACE, space);
diff --git a/test/locale-mbwc/tst_iswupper.c b/test/locale-mbwc/tst_iswupper.c
deleted file mode 100644
index dfe5a5b..0000000
--- a/test/locale-mbwc/tst_iswupper.c
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- ISWUPPER: int iswupper (wint_t wc);
-*/
-
-#define TST_FUNCTION iswupper
-
-#include "tsp_common.c"
-#include "dat_iswupper.c"
-
-TST_FUNC_ISW (UPPER, upper);
diff --git a/test/locale-mbwc/tst_iswxdigit.c b/test/locale-mbwc/tst_iswxdigit.c
deleted file mode 100644
index 5f9c0c5..0000000
--- a/test/locale-mbwc/tst_iswxdigit.c
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- ISWXDIGIT: int iswxdigit (wint_t wc);
-*/
-
-#define TST_FUNCTION iswxdigit
-
-#include "tsp_common.c"
-#include "dat_iswxdigit.c"
-
-TST_FUNC_ISW (XDIGIT, xdigit);
diff --git a/test/locale-mbwc/tst_mblen.c b/test/locale-mbwc/tst_mblen.c
deleted file mode 100644
index 35ccf6c..0000000
--- a/test/locale-mbwc/tst_mblen.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- MBLEN: int mblen (char *s, size_t n)
-*/
-
-#define TST_FUNCTION mblen
-
-#include "tsp_common.c"
-#include "dat_mblen.c"
-
-int
-tst_mblen (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (int);
- char s_flg;
- const char *s_in;
- size_t n;
-
- TST_DO_TEST (mblen)
- {
- TST_HEAD_LOCALE (mblen, S_MBLEN);
- TST_DO_REC (mblen)
- {
- TST_GET_ERRET (mblen);
- s_flg = TST_INPUT (mblen).s_flg;
- s_in = TST_INPUT (mblen).s;
- n = TST_INPUT (mblen).n;
-
- if (s_flg == 0)
- {
- s_in = NULL;
- }
-
- if (n == USE_MBCURMAX)
- {
- n = MB_CUR_MAX;
- }
-
- TST_CLEAR_ERRNO;
- ret = mblen (s_in, n);
- TST_SAVE_ERRNO;
-
- TST_IF_RETURN (S_MBLEN)
- {
- if (s_in == NULL)
- { /* state dependency */
- if (ret_exp == +1)
- { /* state-dependent */
- if (ret != 0)
- {
- /* non-zero: state-dependent encoding */
- Result (C_SUCCESS, S_MBLEN, CASE_3, MS_PASSED);
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_MBLEN, CASE_3,
- "should be state-dependent encoding, "
- "but the return value shows it is"
- " state-independent");
- }
- }
-
- if (ret_exp == 0)
- { /* state-independent */
- if (ret == 0)
- {
- /* non-zero: state-dependent encoding */
- Result (C_SUCCESS, S_MBLEN, CASE_3, MS_PASSED);
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_MBLEN, CASE_3,
- "should be state-independent encoding, "
- "but the return value shows it is"
- " state-dependent");
- }
- }
- }
- }
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_mbrlen.c b/test/locale-mbwc/tst_mbrlen.c
deleted file mode 100644
index b8681b7..0000000
--- a/test/locale-mbwc/tst_mbrlen.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- MBRLEN: size_t mbrlen (char *s, size_t n, mbstate_t *ps)
-*/
-
-#define TST_FUNCTION mbrlen
-
-#include "tsp_common.c"
-#include "dat_mbrlen.c"
-
-
-int
-tst_mbrlen (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (size_t);
- char s_flg;
- const char *s_in;
- size_t n;
- char t_flg;
- char t_ini;
- static mbstate_t s = { 0 };
- mbstate_t *ps;
-
- TST_DO_TEST (mbrlen)
- {
- TST_HEAD_LOCALE (mbrlen, S_MBRLEN);
- TST_DO_REC (mbrlen)
- {
- if (mbrlen (NULL, 0, &s) != 0)
- {
- err_count++;
- Result (C_FAILURE, S_MBRLEN, CASE_3,
- "Initialization (external mbstate object) failed "
- "- skipped this test case.");
- continue;
- }
-
- TST_DO_SEQ (MBRLEN_SEQNUM)
- {
- TST_GET_ERRET_SEQ (mbrlen);
- s_flg = TST_INPUT_SEQ (mbrlen).s_flg;
- s_in = TST_INPUT_SEQ (mbrlen).s;
- n = TST_INPUT_SEQ (mbrlen).n;
- t_flg = TST_INPUT_SEQ (mbrlen).t_flg;
- t_ini = TST_INPUT_SEQ (mbrlen).t_init;
- if (s_flg == 0)
- {
- s_in = NULL;
- }
-
- if (n == USE_MBCURMAX) /* rewrite tst_mblen() like this */
- {
- n = MB_CUR_MAX;
- }
-
- ps = (t_flg == 0) ? NULL : &s;
-
- if (t_ini != 0)
- {
- memset (&s, 0, sizeof (s));
- mbrlen (NULL, 0, NULL);
- }
-
- TST_CLEAR_ERRNO;
- ret = mbrlen (s_in, n, ps);
- TST_SAVE_ERRNO;
-
- if (debug_flg)
- {
- fprintf (stdout, "mbrlen() [ %s : %d : %d ] ret = %zd\n",
- locale, rec + 1, seq_num + 1, ret);
- fprintf (stdout, " errno = %d\n", errno_save);
- }
-
- TST_IF_RETURN (S_MBRLEN)
- {
- };
- }
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_mbrtowc.c b/test/locale-mbwc/tst_mbrtowc.c
deleted file mode 100644
index b6247ce..0000000
--- a/test/locale-mbwc/tst_mbrtowc.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- MBRTOWC: size_t mbrtowc (wchar_t *pwc, const char *s, size_t n,
- mbstate_t *ps)
-*/
-
-#define TST_FUNCTION mbrtowc
-
-#include "tsp_common.c"
-#include "dat_mbrtowc.c"
-
-
-int
-tst_mbrtowc (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (size_t);
- char w_flg, s_flg;
- char *s;
- size_t n;
- char t_flg;
- static mbstate_t t = { 0 };
- mbstate_t *pt;
- wchar_t wc, *pwc, wc_ex;
-
- TST_DO_TEST (mbrtowc)
- {
- TST_HEAD_LOCALE (mbrtowc, S_MBRTOWC);
- TST_DO_REC (mbrtowc)
- {
- if (mbrtowc (NULL, "", 0, &t) != 0)
- {
- err_count++;
- Result (C_FAILURE, S_MBRTOWC, CASE_3,
- "Initialization failed - skipping this test case.");
- continue;
- }
-
- TST_DO_SEQ (MBRTOWC_SEQNUM)
- {
- TST_GET_ERRET_SEQ (mbrtowc);
- w_flg = TST_INPUT_SEQ (mbrtowc).w_flg;
- s_flg = TST_INPUT_SEQ (mbrtowc).s_flg;
- s = TST_INPUT_SEQ (mbrtowc).s;
- n = TST_INPUT_SEQ (mbrtowc).n;
- t_flg = TST_INPUT_SEQ (mbrtowc).t_flg;
- pwc = (w_flg == 0) ? NULL : &wc;
-
- if (s_flg == 0)
- {
- s = NULL;
- }
-
- if (n == USE_MBCURMAX)
- {
- n = MB_CUR_MAX;
- }
-
- pt = (t_flg == 0) ? NULL : &t;
- TST_CLEAR_ERRNO;
- ret = mbrtowc (pwc, s, n, pt);
- TST_SAVE_ERRNO;
-
- if (debug_flg)
- {
- fprintf (stdout, "mbrtowc() [ %s : %d : %d ] ret = %zd\n",
- locale, rec + 1, seq_num + 1, ret);
- fprintf (stdout, " errno = %hd\n",
- errno_save);
- }
-
- TST_IF_RETURN (S_MBRTOWC)
- {
- };
-
- if (pwc == NULL || s == NULL || ret == (size_t) - 1
- || ret == (size_t) - 2)
- {
- continue;
- }
-
- wc_ex = TST_EXPECT_SEQ (mbrtowc).wc;
- if (wc_ex == wc)
- {
- Result (C_SUCCESS, S_MBRTOWC, CASE_4, MS_PASSED);
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_MBRTOWC, CASE_4,
- "converted wc is different from an expected wc");
- }
- }
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_mbsrtowcs.c b/test/locale-mbwc/tst_mbsrtowcs.c
deleted file mode 100644
index 3f3ea71..0000000
--- a/test/locale-mbwc/tst_mbsrtowcs.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- MBSRTOWCS: size_t mbsrtowcs (wchar_t *ws, const char **s, size_t n,
- mbstate_t *ps)
-*/
-
-#define TST_FUNCTION mbsrtowcs
-
-#include "tsp_common.c"
-#include "dat_mbsrtowcs.c"
-
-int
-tst_mbsrtowcs (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (size_t);
- char w_flg;
- const char *s, *p;
- size_t n;
- char t_flg, t_ini;
- static mbstate_t t = { 0 };
- mbstate_t *pt;
- wchar_t ws[WCSSIZE], *ws_ex, *wp;
- int err, i;
-
- TST_DO_TEST (mbsrtowcs)
- {
- TST_HEAD_LOCALE (mbsrtowcs, S_MBSRTOWCS);
- TST_DO_REC (mbsrtowcs)
- {
- s = "";
- if (mbsrtowcs (NULL, &s, 0, &t) != 0)
- {
- err_count++;
- Result (C_FAILURE, S_MBSRTOWCS, CASE_3,
- "Initialization failed - skipping this test case.");
- continue;
- }
-
- TST_DO_SEQ (MBSRTOWCS_SEQNUM)
- {
- TST_GET_ERRET_SEQ (mbsrtowcs);
- w_flg = TST_INPUT_SEQ (mbsrtowcs).w_flg;
- p = s = TST_INPUT_SEQ (mbsrtowcs).s;
- n = TST_INPUT_SEQ (mbsrtowcs).n;
- t_flg = TST_INPUT_SEQ (mbsrtowcs).t_flg;
- t_ini = TST_INPUT_SEQ (mbsrtowcs).t_init;
- wp = (w_flg == 0) ? NULL : ws;
-
- if (n == USE_MBCURMAX)
- {
- n = MB_CUR_MAX;
- }
-
- pt = (t_flg == 0) ? NULL : &t;
-
- if (t_ini != 0)
- {
- memset (&t, 0, sizeof (t));
- }
-
- TST_CLEAR_ERRNO;
- ret = mbsrtowcs (wp, &p, n, pt);
- TST_SAVE_ERRNO;
-
- if (debug_flg)
- {
- fprintf (stderr, "mbsrtowcs: [ %d ] : ret = %zd\n", rec + 1, ret);
- }
-
- TST_IF_RETURN (S_MBSRTOWCS)
- {
- };
-
- if (wp == NULL || ret == (size_t) - 1 || ret == (size_t) - 2)
- {
- continue;
- }
-
- ws_ex = TST_EXPECT_SEQ (mbsrtowcs).ws;
- for (err = 0, i = 0; i < ret; i++)
- {
- if (debug_flg)
- {
- fprintf (stderr,
- "mbsrtowcs: ws[%d] => 0x%lx : 0x%lx <= ws_ex[%d]\n",
- i, (unsigned long int) ws[i],
- (unsigned long int) ws_ex[i], i);
- }
-
- if (ws[i] != ws_ex[i])
- {
- err++;
- err_count++;
- Result (C_FAILURE, S_MBSRTOWCS, CASE_4,
- "the converted wc string has "
- "different value from an expected string");
- break;
- }
- }
-
- if (!err)
- {
- Result (C_SUCCESS, S_MBSRTOWCS, CASE_4, MS_PASSED);
- }
- }
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_mbstowcs.c b/test/locale-mbwc/tst_mbstowcs.c
deleted file mode 100644
index 878df6a..0000000
--- a/test/locale-mbwc/tst_mbstowcs.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- MBSTOWCS: size_t mbstowcs (wchar_t *ws, char *s, size_t n)
-*/
-
-#define TST_FUNCTION mbstowcs
-
-#include "tsp_common.c"
-#include "dat_mbstowcs.c"
-
-int
-tst_mbstowcs (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (size_t);
- char w_flg, s_flg;
- const char *s;
- size_t n;
- wchar_t ws[WCSSIZE], *ws_ex, *wp;
- int err, i;
-
- TST_DO_TEST (mbstowcs)
- {
- TST_HEAD_LOCALE (mbstowcs, S_MBSTOWCS);
- TST_DO_REC (mbstowcs)
- {
- if (mbstowcs (NULL, "", 0) != 0)
- {
- err_count++;
- Result (C_FAILURE, S_MBSTOWCS, CASE_3,
- "Initialization failed - skipping this test case.");
- continue;
- }
-
- TST_DO_SEQ (MBSTOWCS_SEQNUM)
- {
- TST_GET_ERRET_SEQ (mbstowcs);
- w_flg = TST_INPUT_SEQ (mbstowcs).w_flg;
- s_flg = TST_INPUT_SEQ (mbstowcs).s_flg;
- n = TST_INPUT_SEQ (mbstowcs).n;
-
- if (s_flg == 0)
- s = NULL;
- else
- s = TST_INPUT_SEQ (mbstowcs).s;
-
-
- wp = (wchar_t *) ((w_flg == 0) ? NULL : ws);
-
- TST_CLEAR_ERRNO;
- ret = mbstowcs (wp, s, n);
- TST_SAVE_ERRNO;
-
- if (debug_flg)
- {
- fprintf (stderr, "mbstowcs: ret = %zd\n", ret);
- }
-
- TST_IF_RETURN (S_MBSTOWCS)
- {
- };
-
- if (s == NULL || wp == NULL || ret == (size_t) - 1)
- {
- continue;
- }
-
- ws_ex = TST_EXPECT_SEQ (mbstowcs).ws;
-
- for (err = 0, i = 0; i < ret; i++)
- {
- if (debug_flg)
- {
- fprintf (stderr,
- "mbstowcs: ws[%d] => 0x%lx : 0x%lx <= ws_ex[%d]\n",
- i, (unsigned long int) ws[i],
- (unsigned long int) ws_ex[i], i);
- }
-
- if (ws[i] != ws_ex[i])
- {
- err++;
- err_count++;
- Result (C_FAILURE, S_MBSTOWCS, CASE_4,
- "the converted wc string has "
- "different value from an expected string");
- break;
- }
- }
-
- if (!err)
- {
- Result (C_SUCCESS, S_MBSTOWCS, CASE_4, MS_PASSED);
- }
- }
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_mbtowc.c b/test/locale-mbwc/tst_mbtowc.c
deleted file mode 100644
index 7c274f6..0000000
--- a/test/locale-mbwc/tst_mbtowc.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- MBTOWC: int mbtowc (wchar_t *wc, char *s, size_t n)
-*/
-
-#define TST_FUNCTION mbtowc
-
-#include "tsp_common.c"
-#include "dat_mbtowc.c"
-
-
-int
-tst_mbtowc (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (int);
- char w_flg, s_flg;
- const char *s_in;
- size_t n;
- wchar_t wc, wc_ex, *wp;
-
- TST_DO_TEST (mbtowc)
- {
- TST_HEAD_LOCALE (mbtowc, S_MBTOWC);
- TST_DO_REC (mbtowc)
- {
- if (mbstowcs (NULL, "", 0) != 0)
- {
- err_count++;
- Result (C_FAILURE, S_MBSTOWCS, CASE_3,
- "Initialization failed - skipping this test case.");
- continue;
- }
-
- TST_DO_SEQ (MBTOWC_SEQNUM)
- {
- TST_GET_ERRET_SEQ (mbtowc);
- w_flg = TST_INPUT_SEQ (mbtowc).w_flg;
- s_flg = TST_INPUT_SEQ (mbtowc).s_flg;
- n = TST_INPUT_SEQ (mbtowc).n;
-
- if (n == USE_MBCURMAX)
- {
- n = MB_CUR_MAX;
- }
-
- if (s_flg == 0)
- s_in = NULL;
- else
- s_in = TST_INPUT_SEQ (mbtowc).s;
-
- wp = (wchar_t *) ((w_flg == 0) ? NULL : &wc);
-
- /* XXX Clear the internal state. We should probably have
- a flag for this. */
- mbtowc (NULL, NULL, 0);
-
- TST_CLEAR_ERRNO;
- ret = mbtowc (wp, s_in, n);
- TST_SAVE_ERRNO;
-
- if (debug_flg)
- {
- fprintf (stdout, "mbtowc() [ %s : %d ] ret = %d\n", locale,
- rec + 1, ret);
- fprintf (stdout, " errno = %d\n",
- errno_save);
- }
-
- TST_IF_RETURN (S_MBTOWC)
- {
- if (s_in == NULL)
- { /* state dependency */
- if (ret_exp == +1)
- { /* state-dependent */
- if (ret != 0)
- {
- /* Non-zero: state-dependent encoding. */
- Result (C_SUCCESS, S_MBTOWC, CASE_3, MS_PASSED);
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_MBTOWC, CASE_3,
- "should be state-dependent encoding, "
- "but a return value shows it is "
- "state-independent");
- }
- }
-
- if (ret_exp == 0)
- { /* state-independent */
- if (ret == 0)
- {
- /* Non-zero: state-dependent encoding. */
- Result (C_SUCCESS, S_MBTOWC, CASE_3, MS_PASSED);
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_MBTOWC, CASE_3,
- "should be state-independent encoding, "
- "but a return value shows it is "
- "state-dependent");
- }
- }
- }
- }
-
- if ((wp == NULL || s_in == NULL || s_in[0] == 0) || ret <= 0)
- {
- continue;
- }
-
- wc_ex = TST_EXPECT_SEQ (mbtowc).wc;
-
- if (wc_ex == wc)
- {
- Result (C_SUCCESS, S_MBTOWC, CASE_4, MS_PASSED);
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_MBTOWC, CASE_4,
- "converted wc is different from an expected wc");
- }
- }
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_strcoll.c b/test/locale-mbwc/tst_strcoll.c
deleted file mode 100644
index 4c5a84f..0000000
--- a/test/locale-mbwc/tst_strcoll.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- STRCOLL: int strcoll (const char *s1, const char *s2)
-*/
-
-#define TST_FUNCTION strcoll
-
-#include "tsp_common.c"
-#include "dat_strcoll.c"
-
-int
-tst_strcoll (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (int);
- const char *s1, *s2;
-
- TST_DO_TEST (strcoll)
- {
- TST_HEAD_LOCALE (strcoll, S_STRCOLL);
- TST_DO_REC (strcoll)
- {
- TST_GET_ERRET (strcoll);
- s1 = TST_INPUT (strcoll).s1;
- s2 = TST_INPUT (strcoll).s2;
-
- TST_CLEAR_ERRNO;
- ret = strcoll (s1, s2);
- TST_SAVE_ERRNO;
-
- if (debug_flg)
- {
- fprintf (stdout, "strcoll() [ %s : %d ] ret = %d\n", locale,
- rec + 1, ret);
- fprintf (stdout, " errno = %d\n",
- errno_save);
- fprintf (stdout, " LC_COLLATE = %s\n",
- (setlocale (LC_COLLATE, NULL)) ? setlocale (LC_COLLATE,
- NULL) : "");
- }
-
- TST_IF_RETURN (S_STRCOLL)
- {
- if (ret_exp == +1)
- {
- if (ret > 0)
- {
- Result (C_SUCCESS, S_STRCOLL, CASE_3, MS_PASSED);
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_STRCOLL, CASE_3,
- "the return value should be greater than 0,"
- " but is not ...");
- }
- }
- else if (ret_exp == -1)
- {
- if (ret < 0)
- {
- Result (C_SUCCESS, S_STRCOLL, CASE_3, MS_PASSED);
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_STRCOLL, CASE_3,
- "the return value should less than 0, but not ...");
- }
- }
- else if (ret_exp != 0)
- {
- if (debug_flg)
- {
- fprintf (stderr, "*** Warning *** : tst_strcoll : "
- "(check the test data); should set ret_flg=1"
- " to check a return value");
- }
-
- warn_count++;
- Result (C_INVALID, S_WCSCHR, CASE_3, "(check the test data); "
- "should set ret_flg=1 to check a return value");
- }
- }
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_strfmon.c b/test/locale-mbwc/tst_strfmon.c
deleted file mode 100644
index 88e9316..0000000
--- a/test/locale-mbwc/tst_strfmon.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- STRFMON: size_t strfmon (char *buf, size_t nbyte, const char *fmt, ...)
-*/
-
-#define TST_FUNCTION strfmon
-
-#include "tsp_common.c"
-#include "dat_strfmon.c"
-#include <monetary.h>
-
-int
-tst_strfmon (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (size_t);
- char buf[MONSIZE], *mon;
- size_t nbt;
- char *fmt;
- double val;
-
- TST_DO_TEST (strfmon)
- {
- TST_HEAD_LOCALE (strfmon, S_STRFMON);
- TST_DO_REC (strfmon)
- {
- TST_GET_ERRET (strfmon);
- nbt = TST_INPUT (strfmon).nbytes;
- fmt = TST_INPUT (strfmon).fmt;
- val = TST_INPUT (strfmon).val;
- memset (buf, 0, MONSIZE);
- if (nbt > MONSIZE)
- {
- err_count++;
- Result (C_FAILURE, S_STRFMON, CASE_3, "buffer too small in test");
- continue;
- }
-
- TST_CLEAR_ERRNO;
- ret = strfmon (buf, nbt, fmt, val, val, val);
- TST_SAVE_ERRNO;
-
- if (debug_flg) /* seems fprintf doesn't update the errno */
- {
- fprintf (stdout, "strfmon() [ %s : %d ]\n", locale, rec + 1);
- fprintf (stdout, " : err = %d | %s\n", errno_save,
- strerror (errno));
- fprintf (stdout, " : ret = %zd; \t fmt = |%s|\n", ret, fmt);
- fprintf (stdout, " : buf = |%s|\n\n", buf);
- }
-
- TST_IF_RETURN (S_STRFMON)
- {
- };
- if (errno != 0 || ret == -1)
- {
- continue;
- }
-
- mon = TST_EXPECT (strfmon).mon;
-
- if (!strcmp (buf, mon))
- {
- Result (C_SUCCESS, S_STRFMON, CASE_3, MS_PASSED);
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_STRFMON, CASE_3, "the formatted string is "
- "different from an expected result");
- }
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_strxfrm.c b/test/locale-mbwc/tst_strxfrm.c
deleted file mode 100644
index fdfeffc..0000000
--- a/test/locale-mbwc/tst_strxfrm.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- STRXFRM: size_t strxfrm (char *s1, const char *s2, size_t n)
-*/
-
-#define TST_FUNCTION strxfrm
-
-#include "tsp_common.c"
-#include "dat_strxfrm.c"
-
-
-int
-tst_strxfrm (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (size_t);
- const char *org1, *org2;
- char frm1[MBSSIZE], frm2[MBSSIZE];
- size_t n1, n2;
- int ret_coll, ret_cmp;
-
- TST_DO_TEST (strxfrm)
- {
- TST_HEAD_LOCALE (strxfrm, S_STRXFRM);
- TST_DO_REC (strxfrm)
- {
- TST_GET_ERRET (strxfrm);
- org1 = TST_INPUT (strxfrm).org1;
- org2 = TST_INPUT (strxfrm).org2;
- n1 = TST_INPUT (strxfrm).n1;
- n2 = TST_INPUT (strxfrm).n2;
-
- if (n1 < 0 || sizeof (frm1) < n1 || sizeof (frm2) < n2)
- {
- warn_count++;
- Result (C_IGNORED, S_STRXFRM, CASE_9,
- "input data n1 or n2 is invalid");
- continue;
- }
-
- /* An errno and a return value are checked
- only for 2nd strxfrm() call.
- A result of 1st call is used for comparing
- those 2 values by using strcmp().
- */
-
- /*-- First call --*/
-
- TST_CLEAR_ERRNO;
- ret = strxfrm (frm1, org1, n1);
- TST_SAVE_ERRNO;
-
- if (debug_flg)
- {
- fprintf (stdout, "strxfrm() [ %s : %d ] ( 1st call )\n", locale,
- rec + 1);
- fprintf (stdout, " : err = %d | %s\n", errno_save,
- strerror (errno));
- fprintf (stdout, " : ret = %zu\n", ret);
- fprintf (stdout, " : org = %s\n", org1);
- }
-
- if (ret >= n1 || errno != 0)
- {
- warn_count++;
- Result (C_INVALID, S_STRXFRM, CASE_8,
- "got an error in fist strxfrm() call");
- continue;
- }
-
- /*-- Second call --*/
-
- TST_CLEAR_ERRNO;
- ret = strxfrm (((n2 == 0) ? NULL : frm2), org2, n2);
- TST_SAVE_ERRNO;
-
- if (debug_flg)
- {
- fprintf (stderr, " ..............( 2nd call )\n");
- fprintf (stdout, " : err = %d | %s\n", errno,
- strerror (errno));
- fprintf (stdout, " : ret = %zu\n", ret);
- fprintf (stdout, " : org = %s\n", org2);
- }
-
- TST_IF_RETURN (S_STRXFRM)
- {
- };
-
- if (n2 == 0 || ret >= n2 || errno != 0)
- {
-#if 0
- warn_count++;
- Result (C_IGNORED, S_STRXFRM, CASE_7, "did not get a result");
-#endif
- continue;
- }
-
- /*-- strcoll & strcmp --*/
-
- TST_CLEAR_ERRNO;
- /* Depends on strcoll() ... not good though ... */
- ret_coll = strcoll (org1, org2);
-
- if (errno != 0)
- {
- /* bug * bug may get correct results ... */
- warn_count++;
- Result (C_INVALID, S_STRXFRM, CASE_6,
- "got an error in strcoll() call");
- continue;
- }
-
- ret_cmp = strcmp (frm1, frm2);
-
- if ((ret_coll == 0 && ret_cmp == 0)
- || (ret_coll < 0 && ret_cmp < 0) || (ret_coll > 0 && ret_cmp
> 0))
- {
- Result (C_SUCCESS, S_STRXFRM, CASE_3,
- MS_PASSED "(depends on strcoll & strcmp)");
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_STRXFRM, CASE_3,
- "results from strcoll & strcmp() do not match");
- }
-
- if (debug_flg)
- {
- fprintf (stdout, ".......... strcoll = %d <-> %d = strcmp\n",
- ret_coll, ret_cmp);
- }
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_swscanf.c b/test/locale-mbwc/tst_swscanf.c
deleted file mode 100644
index 76445d7..0000000
--- a/test/locale-mbwc/tst_swscanf.c
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- SWSCANF: int swscanf (const wchar_t *ws, const wchar_t *fmt, ...);
-*/
-
-#define TST_FUNCTION swscanf
-
-#include "tsp_common.c"
-#include "dat_swscanf.c"
-
-int
-tst_swscanf (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (int);
- wchar_t *ws;
- wchar_t *fmt;
- int val_int1;
- unsigned val_int2;
- float val_flt;
- char val_c;
- char val_s[MBSSIZE * 3];
- wchar_t val_S[WCSSIZE * 3], *exp_S;
- int i;
-
- TST_DO_TEST (swscanf)
- {
- TST_HEAD_LOCALE (swscanf, S_SWSCANF);
- TST_DO_REC (swscanf)
- {
- TST_GET_ERRET (swscanf);
- ws = TST_INPUT (swscanf).ws;
- fmt = TST_INPUT (swscanf).fmt;
- val_int1 = val_int2 = val_flt = val_c = 0;
- memset (val_s, 0, sizeof (val_s));
- memset (val_S, 0, sizeof (val_S));
-
- TST_CLEAR_ERRNO;
-
- if (TST_INPUT (swscanf).wch)
- {
- ret = swscanf (ws, fmt, val_S);
- }
- else
- {
- ret =
- swscanf (ws, fmt, &val_int1, &val_int2, &val_flt, &val_c, val_s);
- }
-
- TST_SAVE_ERRNO;
-
- if (debug_flg)
- { /* seems fprintf doesn't update errno */
- fprintf (stdout, "swscanf() [ %s : %d ] ret = %d\n", locale,
- rec + 1, ret);
- fprintf (stdout, " errno = %d\n",
- errno_save);
- fprintf (stdout, " collate = %s\n",
- (setlocale (LC_COLLATE, NULL)) ? setlocale (LC_COLLATE,
- NULL) : "");
-
- if (TST_INPUT (swscanf).wch)
- {
- fprintf (stdout, " val_S[ 0 ] = 0x%lx\n",
- (unsigned long int) val_S[0]);
- }
- else
- {
- fprintf (stdout, " val_int1 = %d\n",
- val_int1);
- fprintf (stdout, " val_int2 = %d\n",
- val_int2);
- fprintf (stdout, " val_flt = %f\n",
- val_flt);
- fprintf (stdout, " val_c = %c\n",
- val_c);
- fprintf (stdout, " val_s = %s\n",
- val_s);
- }
- }
-
- TST_IF_RETURN (S_SWSCANF)
- {
- };
-
- if (errno == 0 && TST_INPUT (swscanf).wch)
- {
- for (exp_S = TST_EXPECT (swscanf).val_S, i = 0; i < WCSSIZE * 3;
- i++)
- {
- if (val_S[i] == L'\0' || exp_S[i] == L'\0')
- {
- if (val_S[i] != exp_S[i] && TST_INPUT (swscanf).wch == 'C')
- {
- err_count++;
- Result (C_FAILURE, S_SWSCANF, CASE_4,
- "the converted wide-char string is different"
- " from an expected value.");
- }
- break;
- }
-
- if (val_S[i] != exp_S[i])
- {
- err_count++;
- Result (C_FAILURE, S_SWSCANF, CASE_4,
- "the converted wide-char string is different from"
- " an expected value.");
- break;
- }
- else
- {
- Result (C_SUCCESS, S_SWSCANF, CASE_4, MS_PASSED);
- }
- }
- }
-
- if (errno == 0 && !TST_INPUT (swscanf).wch)
- {
- if (val_int1 != TST_EXPECT (swscanf).val_int ||
- val_int2 != TST_EXPECT (swscanf).val_uns ||
- val_flt != TST_EXPECT (swscanf).val_flt ||
- val_c != TST_EXPECT (swscanf).val_c ||
- strcmp (val_s, TST_EXPECT (swscanf).val_s))
- {
- err_count++;
- Result (C_FAILURE, S_SWSCANF, CASE_3,
- "the converted values are different from expected values.");
- }
- else
- {
- Result (C_SUCCESS, S_SWSCANF, CASE_3, MS_PASSED);
- }
- }
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_towctrans.c b/test/locale-mbwc/tst_towctrans.c
deleted file mode 100644
index 1d874dc..0000000
--- a/test/locale-mbwc/tst_towctrans.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- TOWCTRANS: wint_t towctrans (wint_t wc, wctrans_t desc);
-*/
-
-#define TST_FUNCTION towctrans
-
-#include "tsp_common.c"
-#include "dat_towctrans.c"
-
-
-int
-tst_towctrans (FILE *fp, int debug_flg)
-{
- TST_DECL_VARS (wint_t);
- wint_t wc;
- const char *ts;
-#if SHOJI_IS_RIGHT
- int dummy=0;
-#endif
- wctrans_t wto;
-
- TST_DO_TEST (towctrans)
- {
- TST_HEAD_LOCALE (towctrans, S_TOWCTRANS);
- TST_DO_REC (towctrans)
- {
- TST_GET_ERRET (towctrans);
- wc = TST_INPUT (towctrans).wc;
- ts = TST_INPUT (towctrans).ts;
-
-#if SHOJI_IS_RIGHT
- if ((wto = wctrans (ts)) == (wctrans_t) 0)
- {
-#if 0
- result (fp, C_IGNORED, S_TOWCTRANS, locale, rec+1, seq_num+1, 3,
- "Skip this data because the wctrans object is not invalid.");
- warn_count++;
- continue;
-#else
- wto = &dummy; /* not good ... */
-#endif
- if (debug_flg)
- {
- fprintf (stdout, "towctrans() ------ wctrans() returnd 0.\n");
- }
- }
-#else
- wto = wctrans (ts);
-#endif
-
- TST_CLEAR_ERRNO;
- ret = towctrans (wc, wto);
- TST_SAVE_ERRNO;
-
- if (debug_flg)
- {
- fprintf (stdout, "towctrans() [ %s : %d ] ret = 0x%x\n",
- locale, rec+1, ret);
- fprintf (stdout, " errno = %d\n",
- errno_save);
- }
-
- TST_IF_RETURN (S_TOWCTRANS)
- {
- if (ret != 0)
- {
- result (fp, C_SUCCESS, S_TOWCTRANS, locale, rec+1,
- seq_num+1, 3, MS_PASSED);
- }
- else
- {
- err_count++;
- result (fp, C_FAILURE, S_TOWCTRANS, locale, rec+1,
- seq_num+1, 3,
- "the function returned 0, but should be non-zero");
- }
- }
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_towlower.c b/test/locale-mbwc/tst_towlower.c
deleted file mode 100644
index 7719b0d..0000000
--- a/test/locale-mbwc/tst_towlower.c
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- TOWLOWER: int towlower (wint_t wc);
-*/
-
-#define TST_FUNCTION towlower
-
-#include "tsp_common.c"
-#include "dat_towlower.c"
-
-
-TST_FUNC_TOW (LOWER, lower);
diff --git a/test/locale-mbwc/tst_towupper.c b/test/locale-mbwc/tst_towupper.c
deleted file mode 100644
index a077d27..0000000
--- a/test/locale-mbwc/tst_towupper.c
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- TOWUPPER: int towupper (wint_t wc);
-*/
-
-#define TST_FUNCTION towupper
-
-#include "tsp_common.c"
-#include "dat_towupper.c"
-
-TST_FUNC_TOW (UPPER, upper);
diff --git a/test/locale-mbwc/tst_types.h b/test/locale-mbwc/tst_types.h
deleted file mode 100644
index 3d18279..0000000
--- a/test/locale-mbwc/tst_types.h
+++ /dev/null
@@ -1,729 +0,0 @@
-/*
- * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
- *
- * FILE: tst_types.h
- *
- * Definitions of data types for each test function
- */
-
-
-#ifndef TST_TYPES_H
-#define TST_TYPES_H
-
-#include <stdio.h>
-#include <wchar.h>
-#include <wctype.h>
-#include "tst_funcs.h"
-#include "tgn_funcdef.h"
-
-#define MBSSIZE 24
-#define WCSSIZE 12
-#define MONFMTSIZE 16
-#define MONSIZE 64
-#define USE_MBCURMAX 99 /* well, but ... */
-#define TST_DBL_EPS 2.22153e-16
-#define WCSTOK_SEQNUM 3
-#define MBLEN_SEQNUM 3
-#define MBTOWC_SEQNUM 3
-#define MBSTOWCS_SEQNUM 3
-#define WCTOMB_SEQNUM 3
-#define WCSTOMBS_SEQNUM 3
-#define MBRLEN_SEQNUM 3
-#define MBRTOWC_SEQNUM 3
-#define MBSRTOWCS_SEQNUM 3
-#define WCRTOMB_SEQNUM 3
-#define WCSRTOMBS_SEQNUM 3
-
-/* Maximum numbers of test in one of the _loc arrays. */
-#define MAX_LOC_TEST 300
-
-
-/*----------------------------------------------------------------------*/
-/* FUNCTION */
-/*----------------------------------------------------------------------*/
-
-typedef struct
-{
- char *func_str;
- int func_id;
-}
-TST_FID;
-
-typedef struct
-{
- int func_id;
- const char *locale;
-}
-TST_HEAD;
-
-typedef struct
-{
- TST_HEAD *head;
-}
-TST_FUNCS;
-
-
-/*----------------------------------------------------------------------*/
-/* ISW*: int isw* (wchar_t wc) */
-/*----------------------------------------------------------------------*/
-
-TST_ISW_STRUCT (ALNUM, alnum);
-TST_ISW_STRUCT (ALPHA, alpha);
-TST_ISW_STRUCT (CNTRL, cntrl);
-TST_ISW_STRUCT (DIGIT, digit);
-TST_ISW_STRUCT (GRAPH, graph);
-TST_ISW_STRUCT (LOWER, lower);
-TST_ISW_STRUCT (PRINT, print);
-TST_ISW_STRUCT (PUNCT, punct);
-TST_ISW_STRUCT (SPACE, space);
-TST_ISW_STRUCT (UPPER, upper);
-TST_ISW_STRUCT (XDIGIT, xdigit);
-
-typedef struct
-{
- wint_t wc;
- const char *ts;
-}
-TIN_ISWCTYPE_REC;
-
-typedef
-TEX_ERRET_REC (int)
- TEX_ISWCTYPE_REC;
-TMD_RECHEAD (ISWCTYPE);
-
-
-/*----------------------------------------------------------------------*/
-/* MBLEN: int mblen (const char *s, size_t n) */
-/*----------------------------------------------------------------------*/
-
-typedef struct
-{
- char s_flg;
- char s[MBSSIZE];
- size_t n;
-}
-TIN_MBLEN_REC;
-
-typedef TEX_ERRET_REC (int) TEX_MBLEN_REC;
-TMD_RECHEAD (MBLEN);
-
-
-/*----------------------------------------------------------------------*/
-/* MBRLEN: size_t mbrlen (const char *s, size_t n, mbstate_t *ps) */
-/*----------------------------------------------------------------------*/
-
-typedef struct
-{
- struct
- {
- int s_flg;
- char s[MBSSIZE];
- size_t n;
- int t_flg;
- int t_init;
- }
- seq[WCSTOK_SEQNUM];
-}
-TIN_MBRLEN_REC;
-
-typedef TEX_ERRET_REC_SEQ (size_t, MBRLEN_SEQNUM) TEX_MBRLEN_REC;
-TMD_RECHEAD (MBRLEN);
-
-
-/*----------------------------------------------------------------------*/
-/* MBRTOWC: size_t mbrtowc (wchar_t *pwc, const char *s, size_t n, */
-/* mbstate_t *ps) */
-/*----------------------------------------------------------------------*/
-
-typedef struct
-{
- struct
- {
- int w_flg;
- int s_flg;
- char s[MBSSIZE];
- size_t n;
- int t_flg;
- int t_init;
- }
- seq[MBRTOWC_SEQNUM];
-}
-TIN_MBRTOWC_REC;
-
-typedef struct
-{
- struct
- {
- TMD_ERRET (size_t);
- wchar_t wc;
- }
- seq[MBRTOWC_SEQNUM];
-}
-TEX_MBRTOWC_REC;
-
-TMD_RECHEAD (MBRTOWC);
-
-
-/*----------------------------------------------------------------------*/
-/* MBSRTOWCS: size_t mbsrtowcs (wchar_t *ws, const char **s, size_t n, */
-/* mbstate_t *ps ) */
-/*----------------------------------------------------------------------*/
-
-typedef struct
-{
- struct
- {
- int w_flg;
- char s[MBSSIZE];
- size_t n;
- int t_flg;
- int t_init;
- }
- seq[MBSRTOWCS_SEQNUM];
-}
-TIN_MBSRTOWCS_REC;
-
-typedef struct
-{
- struct
- {
- TMD_ERRET (size_t);
- wchar_t ws[WCSSIZE];
- }
- seq[MBSRTOWCS_SEQNUM];
-}
-TEX_MBSRTOWCS_REC;
-
-TMD_RECHEAD (MBSRTOWCS);
-
-
-/*----------------------------------------------------------------------*/
-/* MBSTOWCS: size_t mbstowcs (wchar_t *ws, const char *s, size_t n) */
-/*----------------------------------------------------------------------*/
-
-typedef struct
-{
- struct
- {
- int w_flg;
- int s_flg;
- const char *s;
- size_t n;
- }
- seq[MBSTOWCS_SEQNUM];
-}
-TIN_MBSTOWCS_REC;
-
-typedef TEX_MBSRTOWCS_REC TEX_MBSTOWCS_REC;
-/* MBSRTOWCS_SEQNUM == MBSTOWCS_SEQNUM */
-TMD_RECHEAD (MBSTOWCS);
-
-
-/*----------------------------------------------------------------------*/
-/* MBTOWC: int mbtowc (wchar_t *wc, const char *s, size_t n) */
-/*----------------------------------------------------------------------*/
-
-typedef TIN_MBSTOWCS_REC TIN_MBTOWC_REC;
-/* MBTOWC_SEQNUM == MBSTOWCS_SEQNUM */
-
-typedef struct
-{
- struct
- {
- TMD_ERRET (int);
- wchar_t wc;
- }
- seq[MBTOWC_SEQNUM];
-}
-TEX_MBTOWC_REC;
-
-TMD_RECHEAD (MBTOWC);
-
-
-/*----------------------------------------------------------------------*/
-/* STRCOLL: int strcoll (const char *s1, const char *s2) */
-/*----------------------------------------------------------------------*/
-
-typedef struct
-{
- char s1[MBSSIZE];
- char s2[MBSSIZE];
-}
-TIN_STRCOLL_REC;
-
-typedef TEX_ERRET_REC (int) TEX_STRCOLL_REC;
-TMD_RECHEAD (STRCOLL);
-
-
-/*----------------------------------------------------------------------*/
-/* STRFMON: size_t strfmon (char *buf, size_t nbytes, */
-/* const char *fmt, ... ) */
-/*----------------------------------------------------------------------*/
-
-typedef struct
-{
- int nbytes;
- char fmt[MONFMTSIZE];
- double val;
-}
-TIN_STRFMON_REC;
-
-typedef struct
-{
- TMD_ERRET (size_t);
- char mon[MONSIZE];
-}
-TEX_STRFMON_REC;
-
-TMD_RECHEAD (STRFMON);
-
-
-/*----------------------------------------------------------------------*/
-/* STRXFRM: size_t strxfrm (char *s1, const char *s2, size_t n) */
-/*----------------------------------------------------------------------*/
-
-typedef struct
-{
- char org1[MBSSIZE];
- char org2[MBSSIZE];
- size_t n1, n2;
-}
-TIN_STRXFRM_REC;
-
-typedef TEX_ERRET_REC (size_t) TEX_STRXFRM_REC; /* only for org2[] */
-TMD_RECHEAD (STRXFRM);
-
-
-/*----------------------------------------------------------------------*/
-/* SWSCANF: int swscanf (const wchar_t *ws, const wchar_t *fmt, ...) */
-/*----------------------------------------------------------------------*/
-
-typedef struct
-{
- wchar_t ws[WCSSIZE * 3];
- wchar_t fmt[WCSSIZE * 3];
- int wch;
-}
-TIN_SWSCANF_REC;
-
-typedef struct
-{
- TMD_ERRET (int);
- int val_int; /* %d */
- unsigned val_uns; /* %u */
- float val_flt; /* %f */
- int val_c; /* %c */
- char val_s[MBSSIZE * 2]; /* %s */
- wchar_t val_S[WCSSIZE * 2]; /* %lc, %ls, %C, %S */
-}
-TEX_SWSCANF_REC;
-
-TMD_RECHEAD (SWSCANF);
-
-
-/*----------------------------------------------------------------------*/
-/* TOWCTRANS: wint_t towctrans (wint_t wc, wctrans_t desc) */
-/*----------------------------------------------------------------------*/
-
-typedef TIN_ISWCTYPE_REC TIN_TOWCTRANS_REC;
-typedef TEX_ERRET_REC (wint_t) TEX_TOWCTRANS_REC;
-TMD_RECHEAD (TOWCTRANS);
-
-
-/*----------------------------------------------------------------------*/
-/* TOW*ER: wint_t tow*er (wint_t wc) */
-/*----------------------------------------------------------------------*/
-
-TST_TOW_STRUCT (LOWER, lower);
-TST_TOW_STRUCT (UPPER, upper);
-
-
-/*----------------------------------------------------------------------*/
-/* WCRTOMB: wchar_t wcrtomb (char *s, wchar_t wc, mbstate_t *ps) */
-/*----------------------------------------------------------------------*/
-
-typedef struct
-{
- int s_flg;
- wchar_t wc;
- int t_flg;
- int t_init;
-}
-TIN_WCRTOMB_REC;
-
-typedef struct
-{
- TMD_ERRET (wchar_t);
- char s[MBSSIZE];
-}
-TEX_WCRTOMB_REC;
-
-TMD_RECHEAD (WCRTOMB);
-
-
-/*----------------------------------------------------------------------*/
-/* WCSCAT: wchar_t *wcscat (wchar_t *ws1, wchar_t *ws2) */
-/*----------------------------------------------------------------------*/
-
-typedef struct
-{
- wchar_t ws1[WCSSIZE];
- wchar_t ws2[WCSSIZE];
-}
-TIN_WCSCAT_REC;
-
-typedef struct
-{
- TMD_ERRET (wchar_t *);
- wchar_t ws[WCSSIZE];
-}
-TEX_WCSCAT_REC;
-
-TMD_RECHEAD (WCSCAT);
-
-
-/*----------------------------------------------------------------------*/
-/* WCSCHR: wchar_t *wcschr (wchar_t *ws, wchar_t wc); */
-/*----------------------------------------------------------------------*/
-
-typedef struct
-{
- wchar_t ws[WCSSIZE];
- wchar_t wc;
-}
-TIN_WCSCHR_REC;
-
-typedef TEX_ERRET_REC (wchar_t *) TEX_WCSCHR_REC;
-TMD_RECHEAD (WCSCHR);
-
-
-/*----------------------------------------------------------------------*/
-/* WCSCMP: int wcscmp (const wchar_t *ws1, const wchar_t *ws2) */
-/*----------------------------------------------------------------------*/
-
-typedef TIN_WCSCAT_REC TIN_WCSCMP_REC;
-typedef TEX_ERRET_REC (int) TEX_WCSCMP_REC;
-TMD_RECHEAD (WCSCMP);
-
-
-/*----------------------------------------------------------------------*/
-/* WCSCOLL: int wcscoll (const wchar_t *ws1, const wchar_t *ws2) */
-/*----------------------------------------------------------------------*/
-
-typedef TIN_WCSCMP_REC TIN_WCSCOLL_REC;
-typedef struct
-{
- TMD_ERRET (int);
- int cmp_flg;
-}
-TEX_WCSCOLL_REC;
-TMD_RECHEAD (WCSCOLL);
-
-
-/*----------------------------------------------------------------------*/
-/* WCSCPY: wchar_t *wcscpy (wchar_t *ws1, const wchar_t *ws2) */
-/*----------------------------------------------------------------------*/
-
-typedef struct
-{
- wchar_t ws[WCSSIZE]; /* ws2: original string */
-}
-TIN_WCSCPY_REC;
-
-typedef TEX_WCSCAT_REC TEX_WCSCPY_REC;
-TMD_RECHEAD (WCSCPY);
-
-
-/*----------------------------------------------------------------------*/
-/* WCSCSPN: size_t wcscspn (const wchar_t *ws1, const wchar_t *ws2) */
-/*----------------------------------------------------------------------*/
-
-typedef TIN_WCSCAT_REC TIN_WCSCSPN_REC;
-typedef TEX_ERRET_REC (size_t) TEX_WCSCSPN_REC;
-TMD_RECHEAD (WCSCSPN);
-
-
-/*----------------------------------------------------------------------*/
-/* WCSLEN: size_t wcslen (const wchar_t *ws) */
-/*----------------------------------------------------------------------*/
-
-typedef TIN_WCSCPY_REC TIN_WCSLEN_REC;
-typedef TEX_ERRET_REC (size_t) TEX_WCSLEN_REC;
-TMD_RECHEAD (WCSLEN);
-
-
-/*----------------------------------------------------------------------*/
-/* WCSNCAT: wchar_t *wcsncat (wchar_t *ws1, const wchar_t *ws2, */
-/* size_t n) */
-/*----------------------------------------------------------------------*/
-
-typedef struct
-{
- wchar_t ws1[WCSSIZE];
- wchar_t ws2[WCSSIZE];
- size_t n;
-}
-TIN_WCSNCAT_REC;
-
-typedef TEX_WCSCAT_REC TEX_WCSNCAT_REC;
-TMD_RECHEAD (WCSNCAT);
-
-
-/*----------------------------------------------------------------------*/
-/* WCSNCMP: int *wcsncmp (const wchar_t *ws1, const wchar_t *ws2, */
-/* size_t n) */
-/*----------------------------------------------------------------------*/
-
-typedef TIN_WCSNCAT_REC TIN_WCSNCMP_REC;
-typedef TEX_ERRET_REC (int) TEX_WCSNCMP_REC;
-TMD_RECHEAD (WCSNCMP);
-
-
-/*----------------------------------------------------------------------*/
-/* WCSNCPY: wchar_t *wcsncpy (wchar_t *ws1, const wchar_t *ws2, */
-/* size_t n) */
-/*----------------------------------------------------------------------*/
-
-typedef struct
-{
- wchar_t ws[WCSSIZE]; /* ws2: original string */
- size_t n;
-}
-TIN_WCSNCPY_REC;
-
-typedef TEX_WCSCPY_REC TEX_WCSNCPY_REC;
-TMD_RECHEAD (WCSNCPY);
-
-
-/*----------------------------------------------------------------------*/
-/* WCSPBRK: wchar_t *wcspbrk (const wchar_t *ws1, const wchar_t *ws2) */
-/*----------------------------------------------------------------------*/
-
-typedef TIN_WCSCSPN_REC TIN_WCSPBRK_REC;
-
-typedef struct
-{
- TMD_ERRET (wchar_t *);
- wchar_t wc;
-}
-TEX_WCSPBRK_REC;
-
-TMD_RECHEAD (WCSPBRK);
-
-
-/*----------------------------------------------------------------------*/
-/* WCSRTOMBS: size_t wcsrtombs (char *s, const wchar_t **ws, size_t n, */
-/* mbstate_t *ps) */
-/*----------------------------------------------------------------------*/
-
-typedef struct
-{
- int s_flg;
- int w_flg; /* don't need this */
- wchar_t ws[WCSSIZE];
- size_t n;
- int t_flg;
- int t_init;
-}
-TIN_WCSRTOMBS_REC;
-
-typedef struct
-{
- TMD_ERRET (size_t);
- char s[MBSSIZE];
-}
-TEX_WCSRTOMBS_REC;
-
-TMD_RECHEAD (WCSRTOMBS);
-
-
-/*----------------------------------------------------------------------*/
-/* WCSSPN: size_t wcsspn (const wchar_t *ws1, const wchar_t *ws2) */
-/*----------------------------------------------------------------------*/
-
-typedef TIN_WCSCSPN_REC TIN_WCSSPN_REC;
-typedef TEX_WCSCSPN_REC TEX_WCSSPN_REC;
-TMD_RECHEAD (WCSSPN);
-
-
-/*----------------------------------------------------------------------*/
-/* WCSSTR: wchar_t *wcsstr (const wchar_t *ws1, const wchar_t *ws2) */
-/*----------------------------------------------------------------------*/
-
-typedef TIN_WCSCSPN_REC TIN_WCSSTR_REC;
-typedef TEX_ERRET_REC (wchar_t *) TEX_WCSSTR_REC;
-TMD_RECHEAD (WCSSTR);
-
-
-/*----------------------------------------------------------------------*/
-/* WCSTOD: double wcstod (const wchar_t *np, wchar_t **endp) */
-/*----------------------------------------------------------------------*/
-
-typedef struct
-{
- wchar_t np[WCSSIZE];
-}
-TIN_WCSTOD_REC;
-
-typedef struct
-{
- TMD_ERRET (double);
- double val;
- wchar_t fwc;
-}
-TEX_WCSTOD_REC;
-
-TMD_RECHEAD (WCSTOD);
-
-
-/*----------------------------------------------------------------------*/
-/* WCSTOK: wchar_t *wcstok (wchar_t *ws, const wchar_t *dlm, */
-/* wchar_t **pt) */
-/*----------------------------------------------------------------------*/
-
-typedef struct
-{
- struct
- {
- int w_flg;
- wchar_t ws[WCSSIZE];
- wchar_t dt[WCSSIZE]; /* delimiter */
- }
- seq[WCSTOK_SEQNUM];
-}
-TIN_WCSTOK_REC;
-
-typedef struct
-{
- struct
- {
- TMD_ERRET (wchar_t *);
- wchar_t ws[WCSSIZE];
- }
- seq[WCSTOK_SEQNUM];
-}
-TEX_WCSTOK_REC;
-
-TMD_RECHEAD (WCSTOK);
-
-
-/*----------------------------------------------------------------------*/
-/* WCSTOMBS: size_t wcstombs (char s, const wchar_t *ws, size_t n) */
-/*----------------------------------------------------------------------*/
-
-typedef struct
-{
- int s_flg;
- int w_flg; /* currently we don't need it. */
- wchar_t ws[WCSSIZE];
- size_t n;
-}
-TIN_WCSTOMBS_REC;
-
-typedef struct
-{
- TMD_ERRET (size_t);
- char s[MBSSIZE];
-}
-TEX_WCSTOMBS_REC;
-
-TMD_RECHEAD (WCSTOMBS);
-
-
-/*----------------------------------------------------------------------*/
-/* WCSWIDTH: int wcswidth (const wchar_t *ws, size_t n) */
-/*----------------------------------------------------------------------*/
-
-typedef TIN_WCSNCPY_REC TIN_WCSWIDTH_REC;
-typedef TEX_ERRET_REC (int) TEX_WCSWIDTH_REC;
-TMD_RECHEAD (WCSWIDTH);
-
-
-/*----------------------------------------------------------------------*/
-/* WCSXFRM: size_t wcsxfrm (wchar_t *ws1, const wchar_t *ws2, size_t n)*/
-/*----------------------------------------------------------------------*/
-
-typedef struct
-{
- wchar_t org1[WCSSIZE];
- wchar_t org2[WCSSIZE];
- int n1, n2;
-}
-TIN_WCSXFRM_REC;
-
-typedef TEX_ERRET_REC (size_t) TEX_WCSXFRM_REC; /* only for org2[] */
-TMD_RECHEAD (WCSXFRM);
-
-
-/*----------------------------------------------------------------------*/
-/* WCTOB: int wctob (wint_t wc) */
-/*----------------------------------------------------------------------*/
-
-typedef struct
-{
- wint_t wc;
-}
-TIN_WCTOB_REC;
-
-typedef TEX_ERRET_REC (int) TEX_WCTOB_REC;
-TMD_RECHEAD (WCTOB);
-
-
-/*----------------------------------------------------------------------*/
-/* WCTOMB: int wctomb (char *s, wchar_t wc) */
-/*----------------------------------------------------------------------*/
-
-typedef struct
-{
- int s_flg;
- wchar_t wc;
-}
-TIN_WCTOMB_REC;
-
-typedef struct
-{
- TMD_ERRET (int);
- char s[MBSSIZE];
-}
-TEX_WCTOMB_REC;
-
-TMD_RECHEAD (WCTOMB);
-
-
-/*----------------------------------------------------------------------*/
-/* WCTRANS: wctrans_t wctrans (const char *charclass) */
-/*----------------------------------------------------------------------*/
-
-typedef struct
-{
- char class[MBSSIZE];
-}
-TIN_WCTRANS_REC;
-
-typedef TEX_ERRET_REC (wctrans_t) TEX_WCTRANS_REC;
-TMD_RECHEAD (WCTRANS);
-
-
-/*----------------------------------------------------------------------*/
-/* WCTYPE: wctype_t wctype (const char *class) */
-/*----------------------------------------------------------------------*/
-
-typedef TIN_WCTRANS_REC TIN_WCTYPE_REC;
-typedef TEX_ERRET_REC (wctype_t) TEX_WCTYPE_REC;
-TMD_RECHEAD (WCTYPE);
-
-
-/*----------------------------------------------------------------------*/
-/* WCWIDTH: int wcwidth (wchar_t wc) */
-/*----------------------------------------------------------------------*/
-
-typedef struct
-{
- wchar_t wc;
-}
-TIN_WCWIDTH_REC;
-
-typedef TEX_ERRET_REC (int) TEX_WCWIDTH_REC;
-TMD_RECHEAD (WCWIDTH);
-
-#endif /* TST_TYPES_H */
diff --git a/test/locale-mbwc/tst_wcrtomb.c b/test/locale-mbwc/tst_wcrtomb.c
deleted file mode 100644
index 0029a49..0000000
--- a/test/locale-mbwc/tst_wcrtomb.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- WCRTOMB: wchar_t wcrtomb (char *s, wchar_t wc, mbstate_t *ps)
-*/
-
-#define TST_FUNCTION wcrtomb
-
-#include "tsp_common.c"
-#include "dat_wcrtomb.c"
-
-
-int
-tst_wcrtomb (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (wchar_t);
- wchar_t wc;
- char s[MBSSIZE], *s_in, *s_ex;
- char t_flg, t_ini;
- static mbstate_t t = { 0 };
- mbstate_t *pt;
- int err, i;
-
- TST_DO_TEST (wcrtomb)
- {
- TST_HEAD_LOCALE (wcrtomb, S_WCRTOMB);
- TST_DO_REC (wcrtomb)
- {
- TST_GET_ERRET (wcrtomb);
- s_in = ((TST_INPUT (wcrtomb).s_flg) == 0) ? (char *) NULL : s;
- wc = TST_INPUT (wcrtomb).wc;
- t_flg = TST_INPUT (wcrtomb).t_flg;
- t_ini = TST_INPUT (wcrtomb).t_init;
- pt = (t_flg == 0) ? NULL : &t;
-
- if (t_ini != 0)
- {
- memset (&t, 0, sizeof (t));
- }
-
- TST_CLEAR_ERRNO;
- ret = wcrtomb (s_in, wc, pt);
- TST_SAVE_ERRNO;
-
- if (debug_flg)
- {
- fprintf (stdout, "wcrtomb() [ %s : %d ] ret = %lu\n", locale,
- rec + 1, (unsigned long int) ret);
- fprintf (stdout, " errno = %d\n", errno_save);
- }
-
- TST_IF_RETURN (S_WCRTOMB)
- {
- };
-
- s_ex = TST_EXPECT (wcrtomb).s;
-
- if (s_in)
- {
- for (i = 0, err = 0; *(s_ex + i) != 0 && i < MBSSIZE; i++)
- {
- if (s_in[i] != s_ex[i])
- {
- err++;
- err_count++;
- Result (C_FAILURE, S_WCRTOMB, CASE_4,
- "copied string is different from an "
- "expected string");
- break;
- }
- }
- if (!err)
- {
- Result (C_SUCCESS, S_WCRTOMB, CASE_4, MS_PASSED);
- }
- }
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_wcscat.c b/test/locale-mbwc/tst_wcscat.c
deleted file mode 100644
index 3dc9809..0000000
--- a/test/locale-mbwc/tst_wcscat.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- WCSCAT: wchar_t *wcscat (wchar_t *ws1, const wchar_t *ws2);
-*/
-
-#define TST_FUNCTION wcscat
-
-#include "tsp_common.c"
-#include "dat_wcscat.c"
-
-int
-tst_wcscat (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (wchar_t *);
- wchar_t *ws1, *ws2, *ws_ex;
- int i, err;
-
- TST_DO_TEST (wcscat)
- {
- TST_HEAD_LOCALE (wcscat, S_WCSCAT);
- TST_DO_REC (wcscat)
- {
- TST_GET_ERRET (wcscat);
- ws1 = TST_INPUT (wcscat).ws1; /* external value: size WCSSIZE */
- ws2 = TST_INPUT (wcscat).ws2;
-
- TST_CLEAR_ERRNO;
- ret = wcscat (ws1, ws2);
- TST_SAVE_ERRNO;
-
- TST_IF_RETURN (S_WCSCAT)
- {
- if (ret == ws1)
- {
- Result (C_SUCCESS, S_WCSCAT, CASE_3, MS_PASSED);
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_WCSCAT, CASE_3,
- "the return address may not be correct");
- }
- }
-
- /* function specific test cases here */
-
- if (ret == ws1)
- {
- ws_ex = TST_EXPECT (wcscat).ws;
- for (err = 0, i = 0;
- (ws1[i] != 0L || ws_ex[i] != 0L) && i < WCSSIZE; i++)
- {
- if (debug_flg)
- {
- fprintf (stdout, "tst_wcscat() : ws1[%d] = 0x%lx\n", i,
- (unsigned long int) ws1[i]);
- }
-
- if (ws1[i] != ws_ex[i])
- {
- err++;
- err_count++;
- Result (C_FAILURE, S_WCSCAT, CASE_4,
- "concatinated string is different from an "
- "expected string");
- break;
- }
- }
-
- if (!err)
- {
- Result (C_SUCCESS, S_WCSCAT, CASE_4, MS_PASSED);
- }
- }
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_wcschr.c b/test/locale-mbwc/tst_wcschr.c
deleted file mode 100644
index b57a05a..0000000
--- a/test/locale-mbwc/tst_wcschr.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- WCSCHR: wchar_t *wcschr (wchar_t *ws, wchar_t wc);
-*/
-
-#define TST_FUNCTION wcschr
-
-#include "tsp_common.c"
-#include "dat_wcschr.c"
-
-int
-tst_wcschr (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (wchar_t *);
- wchar_t *ws, wc;
-
- TST_DO_TEST (wcschr)
- {
- TST_HEAD_LOCALE (wcschr, S_WCSCHR);
- TST_DO_REC (wcschr)
- {
- TST_GET_ERRET (wcschr);
- ws = TST_INPUT (wcschr).ws; /* external value: size WCSSIZE */
- wc = TST_INPUT (wcschr).wc;
- ret = wcschr (ws, wc);
-
- if (debug_flg)
- {
- if (ret)
- {
- fprintf (stderr, "wcschr: ret = 0x%lx\n",
- (unsigned long int) *ret);
- }
- else
- {
- fprintf (stderr, "wcschr: ret = NULL pointer\n");
- }
- }
-
- TST_IF_RETURN (S_WCSCHR)
- {
- if (ret == NULL)
- {
- if (debug_flg)
- {
- fprintf (stderr, "*** Warning *** tst_wcschr: "
- "set ret_flg=1 to check NULL return value\n");
- }
-
- warn_count++;
- Result (C_INVALID, S_WCSCHR, CASE_3, "(check the test data) "
- "set ret_flg=1 to check NULL return value");
- continue;
- }
-
- if (*ret == wc)
- {
- Result (C_SUCCESS, S_WCSCHR, CASE_3, MS_PASSED);
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_WCSCHR, CASE_3,
- "the returned address of the string seems to be wrong");
- }
- }
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_wcscmp.c b/test/locale-mbwc/tst_wcscmp.c
deleted file mode 100644
index 594682c..0000000
--- a/test/locale-mbwc/tst_wcscmp.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- WCSCMP: int wcscmp (const wchar_t *ws1, const wchar_t *ws2);
-*/
-
-#define TST_FUNCTION wcscmp
-
-#include "tsp_common.c"
-#include "dat_wcscmp.c"
-
-
-int
-tst_wcscmp (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (int);
- wchar_t *ws1, *ws2;
-
- TST_DO_TEST (wcscmp)
- {
- TST_HEAD_LOCALE (wcscmp, S_WCSCMP);
- TST_DO_REC (wcscmp)
- {
- TST_GET_ERRET (wcscmp);
- ws1 = TST_INPUT (wcscmp).ws1;
- ws2 = TST_INPUT (wcscmp).ws2;
- ret = wcscmp (ws1, ws2);
- ret = (ret > 0 ? 1 : ret < 0 ? -1 : 0);
-
- if (debug_flg)
- {
- fprintf (stderr, "tst_wcscmp: ret = %d\n", ret);
- }
-
- TST_IF_RETURN (S_WCSCMP)
- {
- };
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_wcscoll.c b/test/locale-mbwc/tst_wcscoll.c
deleted file mode 100644
index 929f80d..0000000
--- a/test/locale-mbwc/tst_wcscoll.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- WCSCOLL: int wcscoll (const wchar_t *ws1, const wchar_t *ws2);
-*/
-
-#define TST_FUNCTION wcscoll
-
-#include "tsp_common.c"
-#include "dat_wcscoll.c"
-
-int
-tst_wcscoll (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (int);
- wchar_t *ws1, *ws2;
- int cmp;
-
- TST_DO_TEST (wcscoll)
- {
- TST_HEAD_LOCALE (wcscoll, S_WCSCOLL);
- TST_DO_REC (wcscoll)
- {
- TST_GET_ERRET (wcscoll);
- ws1 = TST_INPUT (wcscoll).ws1; /* external value: size WCSSIZE */
- ws2 = TST_INPUT (wcscoll).ws2;
-
- TST_CLEAR_ERRNO;
- ret = wcscoll (ws1, ws2);
- TST_SAVE_ERRNO;
-
- if (debug_flg)
- {
- fprintf (stderr, "tst_wcscoll: ret = %d\n", ret);
- }
-
- cmp = TST_EXPECT (wcscoll).cmp_flg;
- TST_IF_RETURN (S_WCSCOLL)
- {
- if (cmp != 0)
- {
- if ((cmp == 1 && ret > 0) || (cmp == -1 && ret < 0))
- {
- Result (C_SUCCESS, S_WCSCOLL, CASE_3, MS_PASSED);
- }
- else
- {
- err_count++;
- if (cmp == 1)
- {
- if (ret == 0)
- Result (C_FAILURE, S_WCSCOLL, CASE_3,
- "the return value should be positive"
- " but it's zero.");
- else
- Result (C_FAILURE, S_WCSCOLL, CASE_3,
- "the return value should be positive"
- " but it's negative.");
- }
- else
- {
- if (ret == 0)
- Result (C_FAILURE, S_WCSCOLL, CASE_3,
- "the return value should be negative"
- " but it's zero.");
- else
- Result (C_FAILURE, S_WCSCOLL, CASE_3,
- "the return value should be negative"
- " but it's positive.");
- }
- }
- }
- }
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_wcscpy.c b/test/locale-mbwc/tst_wcscpy.c
deleted file mode 100644
index d5705a5..0000000
--- a/test/locale-mbwc/tst_wcscpy.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/*-------------------------------------------------------------------------------------*/
-/* WCSCPY: wchar_t *wcscpy( wchar_t *ws1, const wchar_t *ws2 ) */
-/*-------------------------------------------------------------------------------------*/
-#define TST_FUNCTION wcscpy
-
-#include "tsp_common.c"
-#include "dat_wcscpy.c"
-
-int
-tst_wcscpy (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (wchar_t *);
- wchar_t ws1[WCSSIZE], *ws2, *ws_ex;
- int err, i;
-
- TST_DO_TEST (wcscpy)
- {
- TST_HEAD_LOCALE (wcscpy, S_WCSCPY);
- TST_DO_REC (wcscpy)
- {
- TST_GET_ERRET (wcscpy);
- ws2 = TST_INPUT (wcscpy).ws; /* external value: size WCSSIZE */
- ret = wcscpy (ws1, ws2);
-
- TST_IF_RETURN (S_WCSCPY)
- {
- if (ret == ws1)
- {
- Result (C_SUCCESS, S_WCSCPY, CASE_3, MS_PASSED);
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_WCSCPY, CASE_3,
- "the return address may not be correct");
- }
- }
-
- if (ret == ws1)
- {
- ws_ex = TST_EXPECT (wcscpy).ws;
-
- for (err = 0, i = 0;
- (ws1[i] != 0L || ws_ex[i] != 0L) && i < WCSSIZE; i++)
- {
- if (debug_flg)
- {
- fprintf (stderr,
- "ws1[ %d ] = 0x%lx <-> wx_ex[ %d ] = 0x%lx\n", i,
- (unsigned long int) ws1[i], i,
- (unsigned long int) ws_ex[i]);
- }
-
- if (ws1[i] != ws_ex[i])
- {
- err++;
- err_count++;
- Result (C_FAILURE, S_WCSCPY, CASE_4,
- "copied string is different from an"
- " expected string");
- break;
- }
- }
-
- if (!err)
- {
- Result (C_SUCCESS, S_WCSCPY, CASE_4, MS_PASSED);
- }
-
- if (ws1[i] == 0L)
- {
- Result (C_SUCCESS, S_WCSCPY, CASE_5, MS_PASSED);
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_WCSCPY, CASE_5,
- "copied string is not null-terminated");
- }
- }
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_wcscspn.c b/test/locale-mbwc/tst_wcscspn.c
deleted file mode 100644
index e1c8892..0000000
--- a/test/locale-mbwc/tst_wcscspn.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- WCSCSPN: size_t wcscspn (const wchar_t *ws1, const wchar_t *ws2);
-*/
-
-#define TST_FUNCTION wcscspn
-
-#include "tsp_common.c"
-#include "dat_wcscspn.c"
-
-int
-tst_wcscspn (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (size_t);
- wchar_t *ws1, *ws2;
-
- TST_DO_TEST (wcscspn)
- {
- TST_HEAD_LOCALE (wcscspn, S_WCSCSPN);
- TST_DO_REC (wcscspn)
- {
- TST_GET_ERRET (wcscspn);
- ws1 = TST_INPUT (wcscspn).ws1;
- ws2 = TST_INPUT (wcscspn).ws2; /* external value: size WCSSIZE */
- ret = wcscspn (ws1, ws2);
-
- if (debug_flg)
- {
- fprintf (stderr, "wcscspn: ret = %zu\n", ret);
- }
-
- TST_IF_RETURN (S_WCSCSPN)
- {
- };
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_wcslen.c b/test/locale-mbwc/tst_wcslen.c
deleted file mode 100644
index d0ffa5a..0000000
--- a/test/locale-mbwc/tst_wcslen.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- WCSLEN: size_t wcslen (const wchar_t *ws);
-*/
-
-#define TST_FUNCTION wcslen
-
-#include "tsp_common.c"
-#include "dat_wcslen.c"
-
-int
-tst_wcslen (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (size_t);
- wchar_t *ws;
-
- TST_DO_TEST (wcslen)
- {
- TST_HEAD_LOCALE (wcslen, S_WCSLEN);
- TST_DO_REC (wcslen)
- {
- TST_GET_ERRET (wcslen);
- ws = TST_INPUT (wcslen).ws;
- ret = wcslen (ws);
- TST_IF_RETURN (S_WCSLEN)
- {
- };
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_wcsncat.c b/test/locale-mbwc/tst_wcsncat.c
deleted file mode 100644
index a2f6ba0..0000000
--- a/test/locale-mbwc/tst_wcsncat.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- WCSNCAT: wchar_t *wcsncat (wchar_t *ws1, const wchar_t *ws2, size_t n);
-*/
-
-#define TST_FUNCTION wcsncat
-
-#include "tsp_common.c"
-#include "dat_wcsncat.c"
-
-int
-tst_wcsncat (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (wchar_t *);
- wchar_t *ws1, *ws2, *ws_ex;
- int n, i, err;
-
- TST_DO_TEST (wcsncat)
- {
- TST_HEAD_LOCALE (wcsncat, S_WCSNCAT);
- TST_DO_REC (wcsncat)
- {
- TST_GET_ERRET (wcsncat);
- ws1 = TST_INPUT (wcsncat).ws1; /* external value: size WCSSIZE */
- ws2 = TST_INPUT (wcsncat).ws2;
- n = TST_INPUT (wcsncat).n;
- ret = wcsncat (ws1, ws2, n);
-
- TST_IF_RETURN (S_WCSNCAT)
- {
- if (ret == ws1)
- {
- Result (C_SUCCESS, S_WCSNCAT, CASE_3, MS_PASSED);
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_WCSNCAT, CASE_3,
- "the return address may not be correct");
- }
- }
-
- if (ret == ws1)
- {
- ws_ex = TST_EXPECT (wcsncat).ws;
-
- for (err = 0, i = 0;
- (ws1[i] != 0L || ws_ex[i] != 0L) && i < WCSSIZE; i++)
- {
- if (debug_flg)
- {
- fprintf (stderr, "ws1[%d] = 0x%lx\n", i,
- (unsigned long int) ws1[i]);
- }
-
- if (ws1[i] != ws_ex[i])
- {
- err++;
- err_count++;
- Result (C_FAILURE, S_WCSNCAT, CASE_4,
- "the concatinated string has "
- "different value from an expected string");
- break;
- }
- }
-
- if (!err)
- {
- Result (C_SUCCESS, S_WCSNCAT, CASE_4, MS_PASSED);
- }
- }
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_wcsncmp.c b/test/locale-mbwc/tst_wcsncmp.c
deleted file mode 100644
index d046ecd..0000000
--- a/test/locale-mbwc/tst_wcsncmp.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/*-------------------------------------------------------------------------------------*/
-/* WCSNCMP: int wcsncmp( const wchar_t *ws1, const wchar_t *ws2, size_t n ) */
-/*-------------------------------------------------------------------------------------*/
-
-#define TST_FUNCTION wcsncmp
-
-#include "tsp_common.c"
-#include "dat_wcsncmp.c"
-
-int
-tst_wcsncmp (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (int);
- wchar_t *ws1, *ws2;
- size_t n;
-
- TST_DO_TEST (wcsncmp)
- {
- TST_HEAD_LOCALE (wcsncmp, S_WCSNCMP);
- TST_DO_REC (wcsncmp)
- {
- TST_GET_ERRET (wcsncmp);
- ws1 = TST_INPUT (wcsncmp).ws1; /* external value: size WCSSIZE */
- ws2 = TST_INPUT (wcsncmp).ws2;
- n = TST_INPUT (wcsncmp).n;
- ret = wcsncmp (ws1, ws2, n);
-
- if (debug_flg)
- {
- fprintf (stderr, "tst_wcsncmp: ret = %d, 0x%x\n", ret, ret);
- }
-
- TST_IF_RETURN (S_WCSNCMP)
- {
- };
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_wcsncpy.c b/test/locale-mbwc/tst_wcsncpy.c
deleted file mode 100644
index 814bbc0..0000000
--- a/test/locale-mbwc/tst_wcsncpy.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- WCSNCPY: wchar_t *wcsncpy (wchar_t *ws1, const wchar_t *ws2, size_t n);
-*/
-
-#define TST_FUNCTION wcsncpy
-
-#include "tsp_common.c"
-#include "dat_wcsncpy.c"
-
-#define WCSNUM_NCPY 7
-
-int
-tst_wcsncpy (FILE *fp, int debug_flg)
-{
- TST_DECL_VARS (wchar_t *);
- wchar_t ws1[WCSSIZE] =
- { 0x9999, 0x9999, 0x9999, 0x9999, 0x9999, 0x9999, 0x0000 };
- wchar_t *ws2, *ws_ex;
- int err, i;
- size_t n;
-
- TST_DO_TEST (wcsncpy)
- {
- TST_HEAD_LOCALE (wcsncpy, S_WCSNCPY);
- TST_DO_REC (wcsncpy)
- {
- TST_GET_ERRET (wcsncpy);
-
- for (n = 0; n < WCSNUM_NCPY - 1; ++n)
- {
- ws1[n] = 0x9999;
- }
-
- ws1[n] = 0;
- ws2 = TST_INPUT (wcsncpy).ws; /* external value: size WCSSIZE */
- n = TST_INPUT (wcsncpy).n;
- ret = wcsncpy (ws1, ws2, n);
-
- TST_IF_RETURN (S_WCSNCPY)
- {
- if (ret == ws1)
- {
- Result (C_SUCCESS, S_WCSNCPY, CASE_3, MS_PASSED);
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_WCSNCPY, CASE_3,
- "the return address may not be correct");
- }
- }
-
- if (ret == ws1)
- {
- if (debug_flg)
- {
- fprintf (stderr, "\nwcsncpy: n = %zu\n\n", n);
- }
-
- ws_ex = TST_EXPECT (wcsncpy).ws;
-
- for (err = 0, i = 0; i < WCSNUM_NCPY && i < WCSSIZE; i++)
- {
- if (debug_flg)
- fprintf (stderr,
- "wcsncpy: ws1[ %d ] = 0x%lx <-> wx_ex[ %d ] = 0x%lx\n",
- i, (unsigned long int) ws1[i], i,
- (unsigned long int) ws_ex[i]);
-
- if (ws1[i] != ws_ex[i])
- {
- err++;
- err_count++;
- Result (C_FAILURE, S_WCSNCPY, CASE_4,
- "copied string is different from an "
- "expected string");
- break;
- }
- }
-
- if (!err)
- {
- Result (C_SUCCESS, S_WCSNCPY, CASE_4, MS_PASSED);
- }
-
- /* A null terminate character is not supposed to be copied
- unless (num chars of ws2)<n. */
- }
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_wcspbrk.c b/test/locale-mbwc/tst_wcspbrk.c
deleted file mode 100644
index 95c1c0f..0000000
--- a/test/locale-mbwc/tst_wcspbrk.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- WCSPBRK: wchar_t *wcspbrk (const wchar_t *ws1, const wchar_t *ws2);
-*/
-
-#define TST_FUNCTION wcspbrk
-
-#include "tsp_common.c"
-#include "dat_wcspbrk.c"
-
-int
-tst_wcspbrk (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (wchar_t *);
- wchar_t *ws1, *ws2;
- int err;
- wchar_t wc_ex;
-
- TST_DO_TEST (wcspbrk)
- {
- TST_HEAD_LOCALE (wcspbrk, S_WCSPBRK);
- TST_DO_REC (wcspbrk)
- {
- TST_GET_ERRET (wcspbrk);
- ws1 = TST_INPUT (wcspbrk).ws1;
- ws2 = TST_INPUT (wcspbrk).ws2;
-
- ret = wcspbrk (ws1, ws2);
-
- if (debug_flg)
- {
- fprintf (stdout, "wcspbrk() [ %s : %d ] ret = %s\n", locale,
- rec + 1, (ret == NULL) ? "null" : "not null");
- if (ret)
- fprintf (stderr,
- " ret[0] = 0x%lx : 0x%lx = ws2[0]\n",
- (unsigned long int) ret[0], (unsigned long int) ws2[0]);
- }
-
- TST_IF_RETURN (S_WCSPBRK)
- {
- if (ws2[0] == 0)
- {
- if (ret == ws1)
- {
- Result (C_SUCCESS, S_WCSPBRK, CASE_3, MS_PASSED);
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_WCSPBRK, CASE_3,
- "return address is not same address as ws1");
- }
-
- continue;
- }
-
- wc_ex = TST_EXPECT (wcspbrk).wc;
-
- if (debug_flg)
- fprintf (stdout,
- " *ret = 0x%lx <-> 0x%lx = wc_ex\n",
- (unsigned long int) *ret, (unsigned long int) wc_ex);
-
- if (*ret != wc_ex)
- {
- err++;
- err_count++;
- Result (C_FAILURE, S_WCSPBRK, CASE_4, "the pointed wc is "
- "different from an expected wc");
- }
- else
- {
- Result (C_SUCCESS, S_WCSPBRK, CASE_4, MS_PASSED);
- }
- }
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_wcsrtombs.c b/test/locale-mbwc/tst_wcsrtombs.c
deleted file mode 100644
index 3a8edcc..0000000
--- a/test/locale-mbwc/tst_wcsrtombs.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- WCSRTOMBS: size_t wcsrtombs (char *s, const wchar_t **ws, size_t n,
- mbstate_t *ps)
-*/
-
-#define TST_FUNCTION wcsrtombs
-
-#include "tsp_common.c"
-#include "dat_wcsrtombs.c"
-
-#define MARK_VAL 0x01
-
-int
-tst_wcsrtombs (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (size_t);
- char s_flg, n;
- const wchar_t *ws, *wp;
- char s[MBSSIZE], *s_in;
- char t_flg, t_ini;
- static mbstate_t t = { 0 };
- mbstate_t *pt;
- int err, i;
- char *s_ex;
-
- TST_DO_TEST (wcsrtombs)
- {
- TST_HEAD_LOCALE (wcsrtombs, S_WCSRTOMBS);
- TST_DO_REC (wcsrtombs)
- {
- TST_GET_ERRET (wcsrtombs);
- memset (s, MARK_VAL, MBSSIZE);
-
- s_flg = TST_INPUT (wcsrtombs).s_flg;
- s_in = (s_flg == 1) ? s : (char *) NULL;
- wp = ws = TST_INPUT (wcsrtombs).ws;
- n = TST_INPUT (wcsrtombs).n;
- t_flg = TST_INPUT (wcsrtombs).t_flg;
- t_ini = TST_INPUT (wcsrtombs).t_init;
- pt = (t_flg == 0) ? NULL : &t;
-
- if (t_ini != 0)
- {
- memset (&t, 0, sizeof (t));
- }
-
- TST_CLEAR_ERRNO;
- ret = wcsrtombs (s_in, &wp, n, pt);
- TST_SAVE_ERRNO;
-
- if (debug_flg)
- {
- fprintf (stderr, "wcsrtombs: ret = %zu\n", ret);
- }
-
- TST_IF_RETURN (S_WCSRTOMBS)
- {
- };
-
- if (s_in != NULL && ret != (size_t) - 1)
- {
- /* No definition for s, when error occurs. */
- s_ex = TST_EXPECT (wcsrtombs).s;
-
- for (err = 0, i = 0; i <= ret && i < MBSSIZE; i++)
- {
- if (debug_flg)
- {
- fprintf (stderr,
- " : s[%d] = 0x%hx <-> 0x%hx = s_ex[%d]\n", i,
- s[i], s_ex[i], i);
- }
-
- if (i == ret && ret == n) /* no null termination */
- {
- if (s[i] == MARK_VAL)
- {
- Result (C_SUCCESS, S_WCSRTOMBS, CASE_4, MS_PASSED);
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_WCSRTOMBS, CASE_4,
- "should not be null terminated "
- "(it may be a null char), but it is");
- }
-
- break;
- }
-
- if (i == ret && ret < n) /* null termination */
- {
- if (s[i] == 0)
- {
- Result (C_SUCCESS, S_WCSRTOMBS, CASE_5, MS_PASSED);
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_WCSRTOMBS, CASE_5,
- "should be null terminated, but it is not");
- }
-
- break;
- }
-
- if (s[i] != s_ex[i])
- {
- err++;
- err_count++;
- Result (C_FAILURE, S_WCSRTOMBS, CASE_6,
- "converted string is different from an"
- " expected string");
- break;
- }
- }
-
- if (!err)
- {
- Result (C_SUCCESS, S_WCSRTOMBS, CASE_6, MS_PASSED);
- }
- }
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_wcsspn.c b/test/locale-mbwc/tst_wcsspn.c
deleted file mode 100644
index 02157ee..0000000
--- a/test/locale-mbwc/tst_wcsspn.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- WCSSPN: size_t wcsspn (const wchar_t *ws1, const wchar_t *ws2);
-*/
-
-#define TST_FUNCTION wcsspn
-
-#include "tsp_common.c"
-#include "dat_wcsspn.c"
-
-int
-tst_wcsspn (FILE *fp, int debug_flg)
-{
- TST_DECL_VARS (size_t);
- wchar_t *ws1, *ws2;
-
- TST_DO_TEST (wcsspn)
- {
- TST_HEAD_LOCALE (wcsspn, S_WCSSPN);
- TST_DO_REC (wcsspn)
- {
- TST_GET_ERRET (wcsspn);
- ws1 = TST_INPUT (wcsspn).ws1;
- ws2 = TST_INPUT (wcsspn).ws2; /* external value: size WCSSIZE */
- ret = wcsspn (ws1, ws2);
-
- if (debug_flg)
- {
- fprintf (stderr, "wcsspn: ret = %zu\n", ret);
- }
-
- TST_IF_RETURN (S_WCSSPN)
- {
- };
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_wcsstr.c b/test/locale-mbwc/tst_wcsstr.c
deleted file mode 100644
index f8b00c4..0000000
--- a/test/locale-mbwc/tst_wcsstr.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- WCSSTR: wchar_t *wcsstr (const wchar_t *ws1, const wchar_t *ws2);
-*/
-
-#define TST_FUNCTION wcsstr
-
-#include "tsp_common.c"
-#include "dat_wcsstr.c"
-
-int
-tst_wcsstr (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (wchar_t *);
- wchar_t *ws1, *ws2;
- int err, i;
-
- TST_DO_TEST (wcsstr)
- {
- TST_HEAD_LOCALE (wcsstr, S_WCSSTR);
- TST_DO_REC (wcsstr)
- {
- TST_GET_ERRET (wcsstr);
- ws1 = TST_INPUT (wcsstr).ws1;
- ws2 = TST_INPUT (wcsstr).ws2; /* external value: size WCSSIZE */
- ret = wcsstr (ws1, ws2);
-
- if (debug_flg)
- {
- fprintf (stderr, "wcsstr: %d : ret = %s\n", rec + 1,
- (ret == NULL) ? "null" : "not null");
- if (ret)
- {
- fprintf (stderr,
- " ret[ 0 ] = 0x%lx <-> 0x%lx = ws2[ 0 ]\n",
- (unsigned long int) ret[0], (unsigned long int) ws2[0]);
- }
- }
-
- TST_IF_RETURN (S_WCSSTR)
- {
- if (ws2[0] == 0)
- {
- if (ret == ws1)
- {
- Result (C_SUCCESS, S_WCSSTR, CASE_3, MS_PASSED);
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_WCSSTR, CASE_3,
- "return address is not same address as ws1");
- }
-
- continue;
- }
-
- for (i = 0, err = 0; *(ws2 + i) != 0 && i < WCSSIZE; i++)
- {
- if (debug_flg)
- {
- fprintf (stderr,
- " : ret[ %d ] = 0x%lx <-> 0x%lx = ws2[ %d ]\n",
- i, (unsigned long int) ret[i],
- (unsigned long int) ws2[i], i);
- }
-
- if (ret[i] != ws2[i])
- {
- err++;
- err_count++;
- Result (C_FAILURE, S_WCSSTR, CASE_4, "pointed sub-string is "
- "different from an expected sub-string");
- break;
- }
- }
-
- if (!err)
- {
- Result (C_SUCCESS, S_WCSSTR, CASE_4, MS_PASSED);
- }
- }
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_wcstod.c b/test/locale-mbwc/tst_wcstod.c
deleted file mode 100644
index 1648d35..0000000
--- a/test/locale-mbwc/tst_wcstod.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- WCSTOD: double wcstod (wchar_t *np, const wchar_t **endp);
-*/
-
-#define TST_FUNCTION wcstod
-
-#include "tsp_common.c"
-#include "dat_wcstod.c"
-
-int
-tst_wcstod (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (double);
- wchar_t *np, *endp, fwc;
- double val;
-
- TST_DO_TEST (wcstod)
- {
- TST_HEAD_LOCALE (wcstod, S_WCSTOD);
- TST_DO_REC (wcstod)
- {
- TST_GET_ERRET (wcstod);
- np = TST_INPUT (wcstod).np;
-
- TST_CLEAR_ERRNO;
- ret = wcstod (np, &endp);
- TST_SAVE_ERRNO;
-
- if (debug_flg)
- {
- fprintf (stdout, "wcstod() [ %s : %d ] ret = %f\n", locale,
- rec + 1, ret);
- fprintf (stdout, " *endp = 0x%lx\n",
- (unsigned long int) *endp);
- }
-
- TST_IF_RETURN (S_WCSTOD)
- {
- if (ret != 0)
- {
- val = ret - TST_EXPECT (wcstod).val;
- if (TST_ABS (val) < TST_DBL_EPS)
- {
- Result (C_SUCCESS, S_WCSTOD, CASE_3, MS_PASSED);
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_WCSTOD, CASE_3, "return value is wrong");
- }
- }
- }
-
- fwc = TST_EXPECT (wcstod).fwc;
-
- if (fwc == *endp)
- {
- Result (C_SUCCESS, S_WCSTOD, CASE_4, MS_PASSED);
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_WCSTOD, CASE_4, "a final wc is wrong.");
- }
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_wcstok.c b/test/locale-mbwc/tst_wcstok.c
deleted file mode 100644
index 1222b97..0000000
--- a/test/locale-mbwc/tst_wcstok.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- WCSTOK: wchar_t *wcstok (wchar_t *ws, const wchar_t *dlm, wchar_t **pt);
-*/
-
-
-#define TST_FUNCTION wcstok
-
-#include "tsp_common.c"
-#include "dat_wcstok.c"
-
-int
-tst_wcstok (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (wchar_t *);
- char w_flg;
- wchar_t *ws;
- wchar_t *dt, *pt;
- wchar_t *ws_ex;
- int err, i;
-
- TST_DO_TEST (wcstok)
- {
- TST_HEAD_LOCALE (wcstok, S_WCSTOK);
- TST_DO_REC (wcstok)
- {
- TST_DO_SEQ (WCSTOK_SEQNUM)
- {
- TST_GET_ERRET_SEQ (wcstok);
- w_flg = TST_INPUT_SEQ (wcstok).w_flg;
- ws = (w_flg) ? TST_INPUT_SEQ (wcstok).ws : NULL;
- dt = TST_INPUT_SEQ (wcstok).dt;
-
- ret = wcstok (ws, dt, &pt);
-
- if (debug_flg)
- {
- fprintf (stdout, "wcstok() [ %s : %d : %d ] *ret = 0x%lx\n",
- locale, rec + 1, seq_num + 1, (unsigned long int) *ret);
- if (pt && *pt)
- {
- fprintf (stdout, " *pt = 0x%lx\n",
- (unsigned long int) *pt);
- }
- }
-
- TST_IF_RETURN (S_WCSTOK)
- {
- };
-
- if (ret != NULL)
- {
- ws_ex = TST_EXPECT_SEQ (wcstok).ws;
-
- /* XXX: REVISIT : insufficient conditions */
- for (err = 0, i = 0; i < WCSSIZE; i++)
- {
- if (ret[i] == L'\0' && ws_ex[i] == L'\0')
- {
- break;
- }
-
- if (debug_flg)
- {
- fprintf (stderr,
- " ret[%d] = 0x%lx <-> "
- "0x%lx = ws_ex[%d]\n",
- i, (unsigned long int) ret[i],
- (unsigned long int) ws_ex[i], i);
- }
-
- if (ret[i] != ws_ex[i])
- {
- err++;
- err_count++;
- Result (C_FAILURE, S_WCSTOK, CASE_3,
- "the token is different from an expected string");
- break;
- }
-
- if (ret[i] == L'\0' || ws_ex[i] == L'\0')
- {
- break;
- }
- }
-
- if (!err)
- {
- Result (C_SUCCESS, S_WCSTOK, CASE_3, MS_PASSED);
- }
- }
- }
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_wcstombs.c b/test/locale-mbwc/tst_wcstombs.c
deleted file mode 100644
index c0851a4..0000000
--- a/test/locale-mbwc/tst_wcstombs.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- WCSTOMBS: size_t wcstombs (char *s, const wchar_t *ws, size_t n)
-*/
-
-#define TST_FUNCTION wcstombs
-
-#include "tsp_common.c"
-#include "dat_wcstombs.c"
-
-#define MARK_VAL 0x01
-
-int
-tst_wcstombs (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (size_t);
- char s_flg, n;
- wchar_t *ws;
- char s[MBSSIZE], *s_in;
- int err, i;
- char *s_ex;
-
- TST_DO_TEST (wcstombs)
- {
- TST_HEAD_LOCALE (wcstombs, S_WCSTOMBS);
- TST_DO_REC (wcstombs)
- {
- TST_GET_ERRET (wcstombs);
- memset (s, MARK_VAL, MBSSIZE);
-
- s_flg = TST_INPUT (wcstombs).s_flg;
- s_in = (s_flg == 1) ? s : (char *) NULL;
- ws = TST_INPUT (wcstombs).ws;
- n = TST_INPUT (wcstombs).n;
-
- TST_CLEAR_ERRNO;
- ret = wcstombs (s_in, ws, n);
- TST_SAVE_ERRNO;
-
- if (debug_flg)
- {
- fprintf (stdout, "wcstombs: ret = %zu\n", ret);
- }
-
- TST_IF_RETURN (S_WCSTOMBS)
- {
- };
-
- if (s_in != NULL && ret != (size_t) - 1)
- {
- /* No definition for s, when error occurs. */
- s_ex = TST_EXPECT (wcstombs).s;
-
- for (err = 0, i = 0; i <= ret && i < MBSSIZE; i++)
- {
- if (debug_flg)
- {
- fprintf (stdout,
- " : s[%d] = 0x%hx <-> 0x%hx = s_ex[%d]\n", i,
- s[i], s_ex[i], i);
- }
-
- if (i == ret && ret == n) /* no null termination */
- {
- if (s[i] == MARK_VAL)
- {
- Result (C_SUCCESS, S_WCSTOMBS, CASE_4, MS_PASSED);
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_WCSTOMBS, CASE_4,
- "should not be null terminated "
- "(it may be a null char), but it is");
- }
-
- break;
- }
-
- if (i == ret && ret < n) /* null termination */
- {
- if (s[i] == 0)
- {
- Result (C_SUCCESS, S_WCSTOMBS, CASE_5, MS_PASSED);
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_WCSTOMBS, CASE_5,
- "should be null terminated, but it is not");
- }
-
- break;
- }
-
- if (s[i] != s_ex[i])
- {
- err++;
- err_count++;
- Result (C_FAILURE, S_WCSTOMBS, CASE_6,
- "converted string is different from an "
- "expected string");
- break;
- }
- }
-
- if (!err)
- {
- Result (C_SUCCESS, S_WCSTOMBS, CASE_6, MS_PASSED);
- }
- }
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_wcswidth.c b/test/locale-mbwc/tst_wcswidth.c
deleted file mode 100644
index c836975..0000000
--- a/test/locale-mbwc/tst_wcswidth.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- WCSWIDTH: int wcswidth (const wchar_t *ws, size_t n);
-*/
-
-#define TST_FUNCTION wcswidth
-
-#include "tsp_common.c"
-#include "dat_wcswidth.c"
-
-int
-tst_wcswidth (FILE *fp, int debug_flg)
-{
- TST_DECL_VARS (int);
- wchar_t *ws;
- int n;
-
- TST_DO_TEST (wcswidth)
- {
- TST_HEAD_LOCALE (wcswidth, S_WCSWIDTH);
- TST_DO_REC (wcswidth)
- {
- TST_GET_ERRET (wcswidth);
- ws = TST_INPUT (wcswidth).ws;
- n = TST_INPUT (wcswidth).n;
- ret = wcswidth (ws, n);
-
- if (debug_flg)
- {
- fprintf (stderr, "wcswidth: [ %d ] : ret = %d\n", rec + 1, ret);
- }
-
- TST_IF_RETURN (S_WCSWIDTH)
- {
- };
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_wcsxfrm.c b/test/locale-mbwc/tst_wcsxfrm.c
deleted file mode 100644
index 6fb8a1c..0000000
--- a/test/locale-mbwc/tst_wcsxfrm.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- WCSXFRM: size_t wcsxfrm (wchar_t *ws1, const wchar_t *ws2, size_t n);
-*/
-
-#define TST_FUNCTION wcsxfrm
-
-#include "tsp_common.c"
-#include "dat_wcsxfrm.c"
-
-int
-tst_wcsxfrm (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (size_t);
- wchar_t *org1, *org2;
- wchar_t frm1[MBSSIZE], frm2[MBSSIZE];
- size_t n1, n2;
- int ret_coll, ret_cmp;
-
- TST_DO_TEST (wcsxfrm)
- {
- TST_HEAD_LOCALE (wcsxfrm, S_WCSXFRM);
- TST_DO_REC (wcsxfrm)
- {
- TST_GET_ERRET (wcsxfrm);
- org1 = TST_INPUT (wcsxfrm).org1;
- org2 = TST_INPUT (wcsxfrm).org2;
- n1 = TST_INPUT (wcsxfrm).n1;
- n2 = TST_INPUT (wcsxfrm).n2;
- if (n1 < 0 || sizeof (frm1) < n1 || sizeof (frm2) < n2)
- {
- warn_count++;
- Result (C_IGNORED, S_WCSXFRM, CASE_9,
- "input data n1 or n2 is invalid");
- continue;
- }
-
- /* an errno and a return value are checked
- only for 2nd wcsxfrm() call.
- A result of 1st call is used to compare
- those 2 values by using wcscmp().
- */
-
- TST_CLEAR_ERRNO;
- ret = wcsxfrm (frm1, org1, n1); /* First call */
- TST_SAVE_ERRNO;
-
- if (debug_flg)
- {
- fprintf (stdout, "tst_wcsxfrm() : REC = %d\n", rec + 1);
- fprintf (stdout, "tst_wcsxfrm() : 1st ret = %zu\n", ret);
- }
-
- if (ret == -1 || ret >= n1 || errno_save != 0)
- {
- warn_count++;
- Result (C_INVALID, S_WCSXFRM, CASE_8,
- "got an error in fist wcsxfrm() call");
- continue;
- }
-
- TST_CLEAR_ERRNO;
- /* Second call */
- ret = wcsxfrm (((n2 == 0) ? NULL : frm2), org2, n2);
- TST_SAVE_ERRNO;
-
- TST_IF_RETURN (S_WCSXFRM)
- {
- };
-
- if (n2 == 0 || ret >= n2 || errno != 0)
- {
-#if 0
- warn_count++;
- Result (C_IGNORED, S_WCSXFRM, CASE_7, "did not get a result");
-#endif
- continue;
- }
-
- if (debug_flg)
- {
- fprintf (stdout, "tst_wcsxfrm() : 2nd ret = %zu\n", ret);
- }
-
- /* wcscoll() */
- TST_CLEAR_ERRNO;
- /* depends on wcscoll() ... not good though ... */
- ret_coll = wcscoll (org1, org2);
- TST_SAVE_ERRNO;
-
- if (errno != 0) /* bugs * bugs may got correct results ... */
- {
- warn_count++;
- Result (C_INVALID, S_WCSXFRM, CASE_6,
- "got an error in wcscoll() call");
- continue;
- }
- /* wcscmp() */
- ret_cmp = wcscmp (frm1, frm2);
-
- if ((ret_coll == ret_cmp) || (ret_coll > 0 && ret_cmp > 0)
- || (ret_coll < 0 && ret_cmp < 0))
- {
- Result (C_SUCCESS, S_WCSXFRM, CASE_3,
- MS_PASSED " (depends on wcscoll & wcscmp)");
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_WCSXFRM, CASE_3,
- "results from wcscoll & wcscmp() do not match");
- }
-
- if (debug_flg)
- {
- fprintf (stdout, "tst_wcsxfrm() : coll = %d <-> %d = cmp\n",
- ret_coll, ret_cmp);
- }
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_wctob.c b/test/locale-mbwc/tst_wctob.c
deleted file mode 100644
index 2377daf..0000000
--- a/test/locale-mbwc/tst_wctob.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/*-------------------------------------------------------------------------------------*/
-/* WCTOB: int wctob( wint_t wc ) */
-/*-------------------------------------------------------------------------------------*/
-
-#define TST_FUNCTION wctob
-
-#include "tsp_common.c"
-#include "dat_wctob.c"
-
-int
-tst_wctob (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (int);
- wchar_t wc;
-
- TST_DO_TEST (wctob)
- {
- TST_HEAD_LOCALE (wctob, S_WCTOB);
- TST_DO_REC (wctob)
- {
- TST_GET_ERRET (wctob);
- wc = TST_INPUT (wctob).wc;
- ret = wctob (wc);
-
- if (debug_flg)
- {
- fprintf (stderr, "tst_wctob : [ %d ] ret = %d\n", rec + 1, ret);
- }
-
- TST_IF_RETURN (S_WCTOB)
- {
- };
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_wctomb.c b/test/locale-mbwc/tst_wctomb.c
deleted file mode 100644
index aea89fe..0000000
--- a/test/locale-mbwc/tst_wctomb.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- WCTOMB: int wctomb (char *s, wchar_t wc)
-*/
-
-#define TST_FUNCTION wctomb
-
-#include "tsp_common.c"
-#include "dat_wctomb.c"
-
-int
-tst_wctomb (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (int);
- wchar_t wc;
- char s[MBSSIZE], *s_in, *s_ex;
- int err, i;
-
- TST_DO_TEST (wctomb)
- {
- TST_HEAD_LOCALE (wctomb, S_WCTOMB);
- TST_DO_REC (wctomb)
- {
- TST_GET_ERRET (wctomb);
- wc = TST_INPUT (wctomb).wc;
- s_in = ((TST_INPUT (wctomb).s_flg) == 0) ? (char *) NULL : s;
- ret = wctomb (s_in, wc);
-
- if (debug_flg)
- {
- fprintf (stdout, "wctomb() [ %s : %d ] ret = %d\n", locale,
- rec + 1, ret);
- }
-
- TST_IF_RETURN (S_WCTOMB)
- {
- if (s_in == NULL) /* state dependency */
- {
- if (ret_exp == +1) /* state-dependent */
- {
- if (ret != 0)
- {
- /* Non-zero means state-dependent encoding. */
- Result (C_SUCCESS, S_WCTOMB, CASE_3, MS_PASSED);
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_WCTOMB, CASE_3,
- "should be state-dependent encoding, "
- "but a return value shows it is "
- "state-independent");
- }
- }
-
- if (ret_exp == 0) /* state-independent */
- {
- if (ret == 0)
- {
- /* Non-zero means state-dependent encoding. */
- Result (C_SUCCESS, S_WCTOMB, CASE_3, MS_PASSED);
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_WCTOMB, CASE_3,
- "should be state-independent encoding, "
- "but a return value shows it is state-dependent");
- }
- }
- }
- }
-
- s_ex = TST_EXPECT (wctomb).s;
-
- if (s_in)
- {
- for (i = 0, err = 0; *(s_ex + i) != 0 && i < MBSSIZE; i++)
- {
- if (s_in[i] != s_ex[i])
- {
- err++;
- err_count++;
- Result (C_FAILURE, S_WCTOMB, CASE_4,
- "copied string is different from an"
- " expected string");
- break;
- }
- }
-
- if (!err)
- {
- Result (C_SUCCESS, S_WCTOMB, CASE_4, MS_PASSED);
- }
- }
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_wctrans.c b/test/locale-mbwc/tst_wctrans.c
deleted file mode 100644
index b422d6f..0000000
--- a/test/locale-mbwc/tst_wctrans.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- WCTRANS: wctrans_t wctrans (const char *charclass);
-*/
-
-#define TST_FUNCTION wctrans
-
-#include "tsp_common.c"
-#include "dat_wctrans.c"
-
-int
-tst_wctrans (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (wctrans_t);
- char *class;
-
- TST_DO_TEST (wctrans)
- {
- TST_HEAD_LOCALE (wctrans, S_WCTRANS);
- TST_DO_REC (wctrans)
- {
- TST_GET_ERRET (wctrans);
- class = TST_INPUT (wctrans).class;
-
- TST_CLEAR_ERRNO;
- ret = wctrans (class);
- TST_SAVE_ERRNO;
-
- if (debug_flg)
- {
- fprintf (stderr, "tst_wctrans : [ %d ] ret = %ld\n", rec + 1,
- (long int) ret);
- fprintf (stderr, " errno = %d\n", errno_save);
- }
-
- TST_IF_RETURN (S_WCTRANS)
- {
- if (ret != 0)
- {
- Result (C_SUCCESS, S_WCTYPE, CASE_3, MS_PASSED);
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_WCTYPE, CASE_3,
- "should return non-0, but returned 0");
- }
- }
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_wctype.c b/test/locale-mbwc/tst_wctype.c
deleted file mode 100644
index a203e49..0000000
--- a/test/locale-mbwc/tst_wctype.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- WCTYPE: wctype_t wctype (const char *class);
-*/
-
-
-#define TST_FUNCTION wctype
-
-#include "tsp_common.c"
-#include "dat_wctype.c"
-
-int
-tst_wctype (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (wctype_t);
- char *class;
-
- TST_DO_TEST (wctype)
- {
- TST_HEAD_LOCALE (wctype, S_WCTYPE);
- TST_DO_REC (wctype)
- {
- TST_GET_ERRET (wctype);
- class = TST_INPUT (wctype).class;
- ret = wctype (class);
-
- if (debug_flg)
- {
- fprintf (stderr, "tst_wctype : [ %d ] ret = %ld\n", rec + 1, ret);
- }
-
- TST_IF_RETURN (S_WCTYPE)
- {
- if (ret != 0)
- {
- Result (C_SUCCESS, S_WCTYPE, CASE_3, MS_PASSED);
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_WCTYPE, CASE_3,
- "should return non-0, but returned 0");
- }
- }
- }
- }
-
- return err_count;
-}
diff --git a/test/locale-mbwc/tst_wcwidth.c b/test/locale-mbwc/tst_wcwidth.c
deleted file mode 100644
index 6a5af6f..0000000
--- a/test/locale-mbwc/tst_wcwidth.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- WCWIDTH: int wcwidth (wchar_t wc);
-*/
-
-#define TST_FUNCTION wcwidth
-
-#include "tsp_common.c"
-#include "dat_wcwidth.c"
-
-int
-tst_wcwidth (FILE * fp, int debug_flg)
-{
- TST_DECL_VARS (int);
- wchar_t wc;
-
- TST_DO_TEST (wcwidth)
- {
- TST_HEAD_LOCALE (wcwidth, S_WCWIDTH);
- TST_DO_REC (wcwidth)
- {
- TST_GET_ERRET (wcwidth);
- wc = TST_INPUT (wcwidth).wc;
- ret = wcwidth (wc);
-
- if (debug_flg)
- {
- fprintf (stdout, "wcwidth() [ %s : %d ] ret = %d\n", locale,
- rec + 1, ret);
- }
-
- TST_IF_RETURN (S_WCWIDTH)
- {
- }
- }
- }
-
- return err_count;
-}
diff --git a/test/locale/Makefile b/test/locale/Makefile
deleted file mode 100644
index 263f325..0000000
--- a/test/locale/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc locale tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/locale/Makefile.in b/test/locale/Makefile.in
deleted file mode 100644
index 5a57ca5..0000000
--- a/test/locale/Makefile.in
+++ /dev/null
@@ -1,29 +0,0 @@
-# uClibc locale tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-# tst_mbtowc tst_strcoll tst_strfmon tst_strxfrm \
-
-TESTS := bug-iconv-trans bug-usesetlocale collate-test dump-ctype \
- gen-unicode-ctype show-ucs-data tst-ctype \
- tst-digits tst-fmon tst-langinfo tst-leaks tst-mbswcs1 \
- tst-mbswcs2 tst-mbswcs3 tst-mbswcs4 tst-mbswcs5 tst-mbswcs6 \
- tst_nl_langinfo tst-numeric tst-rpmatch tst-setlocale \
- tst-sscanf tst-strfmon1 tst-trans tst-wctype tst-xlocale1 \
- tst-xlocale2 xfrm-test
-
-
-# NOTE: For now disabled some tests that are known not build
-TESTS_DISABLED := tst-ctype tst-fmon tst-leaks tst-rpmatch tst-strfmon1
-
-ifneq ($(UCLIBC_HAS_XLOCALE),y)
-TESTS_DISABLED += bug-usesetlocale tst-xlocale1 tst-xlocale2 xfrm-test tst-C-locale
-endif
-
-DODIFF_rint := 1
-
-EXTRA_CFLAGS := -D__USE_GNU -fno-builtin
-
-OPTS_dump-ctype = C
-OPTS_tst-ctype = < tst-ctype-de_DE.ISO-8859-1.in
-OPTS_tst-langinfo = < tst-langinfo.input
-
-EXTRA_DIRS := C
diff --git a/test/locale/bug-iconv-trans.c b/test/locale/bug-iconv-trans.c
deleted file mode 100644
index 3886247..0000000
--- a/test/locale/bug-iconv-trans.c
+++ /dev/null
@@ -1,68 +0,0 @@
-#include <iconv.h>
-#include <locale.h>
-#include <stdio.h>
-#include <string.h>
-
-int
-main (void)
-{
- iconv_t cd;
- const char str[] = "�������";
- const char expected[] = "AEaeOEoeUEuess";
- char *inptr = (char *) str;
- size_t inlen = strlen (str) + 1;
- char outbuf[500];
- char *outptr = outbuf;
- size_t outlen = sizeof (outbuf);
- int result = 0;
- size_t n;
-
- if (setlocale (LC_ALL, "de_DE.UTF-8") == NULL)
- {
- puts ("setlocale failed");
- return 1;
- }
-
- cd = iconv_open ("ANSI_X3.4-1968//TRANSLIT", "ISO-8859-1");
- if (cd == (iconv_t) -1)
- {
- puts ("iconv_open failed");
- return 1;
- }
-
- n = iconv (cd, &inptr, &inlen, &outptr, &outlen);
- if (n != 7)
- {
- if (n == (size_t) -1)
- printf ("iconv() returned error: %m\n");
- else
- printf ("iconv() returned %Zd, expected 7\n", n);
- result = 1;
- }
- if (inlen != 0)
- {
- puts ("not all input consumed");
- result = 1;
- }
- else if (inptr - str != strlen (str) + 1)
- {
- printf ("inptr wrong, advanced by %td\n", inptr - str);
- result = 1;
- }
- if (memcmp (outbuf, expected, sizeof (expected)) != 0)
- {
- printf ("result wrong: \"%.*s\", expected:
\"%s\"\n",
- (int) (sizeof (outbuf) - outlen), outbuf, expected);
- result = 1;
- }
- else if (outlen != sizeof (outbuf) - sizeof (expected))
- {
- printf ("outlen wrong: %Zd, expected %Zd\n", outlen,
- sizeof (outbuf) - 15);
- result = 1;
- }
- else
- printf ("output is \"%s\" which is OK\n", outbuf);
-
- return result;
-}
diff --git a/test/locale/bug-usesetlocale.c b/test/locale/bug-usesetlocale.c
deleted file mode 100644
index 0637067..0000000
--- a/test/locale/bug-usesetlocale.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Test case for setlocale vs uselocale (LC_GLOBAL_LOCALE) bug. */
-
-#define _GNU_SOURCE 1
-#include <locale.h>
-#include <stdio.h>
-#include <ctype.h>
-
-static int
-do_test (void)
-{
- __locale_t loc_new, loc_old;
-
- int first = !!isalpha(0xE4);
-
- setlocale (LC_ALL, "de_DE");
-
- int global_de = !!isalpha(0xE4);
-
- loc_new = newlocale (1 << LC_ALL, "C", 0);
- loc_old = uselocale (loc_new);
-
- int used_c = !!isalpha(0xE4);
-
- uselocale (loc_old);
-
- int used_global = !!isalpha(0xE4);
-
- printf ("started %d, after setlocale %d\n", first, global_de);
- printf ("after uselocale %d, after LC_GLOBAL_LOCALE %d\n",
- used_c, used_global);
-
- freelocale (loc_new);
- return !(used_c == first && used_global == global_de);
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "test-skeleton.c"
diff --git a/test/locale/collate-test.c b/test/locale/collate-test.c
deleted file mode 100644
index a84974c..0000000
--- a/test/locale/collate-test.c
+++ /dev/null
@@ -1,132 +0,0 @@
-/* Test collation function using real data.
- Copyright (C) 1997, 1999, 2000, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)cygnus.com>om>, 1997.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <ctype.h>
-#include <error.h>
-#include <locale.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-struct lines
-{
- char *key;
- char *line;
-};
-
-static int xstrcoll (const void *, const void *);
-
-int
-main (int argc, char *argv[])
-{
- int result = 0;
- size_t nstrings, nstrings_max;
- struct lines *strings;
- char *line = NULL;
- size_t len = 0;
- size_t n;
-
- if (argc < 2)
- error (1, 0, "usage: %s <random seed>", argv[0]);
-
- setlocale (LC_ALL, "");
-
- nstrings_max = 100;
- nstrings = 0;
- strings = (struct lines *) malloc (nstrings_max * sizeof (struct lines));
- if (strings == NULL)
- {
- perror (argv[0]);
- exit (1);
- }
-
- while (1)
- {
- int l;
- if (getline (&line, &len, stdin) < 0)
- break;
-
- if (nstrings == nstrings_max)
- {
- strings = (struct lines *) realloc (strings,
- (nstrings_max *= 2)
- * sizeof (*strings));
- if (strings == NULL)
- {
- perror (argv[0]);
- exit (1);
- }
- }
- strings[nstrings].line = strdup (line);
- l = strcspn (line, ":(;");
- while (l > 0 && isspace (line[l - 1]))
- --l;
- strings[nstrings].key = strndup (line, l);
- ++nstrings;
- }
- free (line);
-
- /* First shuffle. */
- srandom (atoi (argv[1]));
- for (n = 0; n < 10 * nstrings; ++n)
- {
- int r1, r2, r;
- size_t idx1 = random () % nstrings;
- size_t idx2 = random () % nstrings;
- struct lines tmp = strings[idx1];
- strings[idx1] = strings[idx2];
- strings[idx2] = tmp;
-
- /* While we are at it a first little test. */
- r1 = strcoll (strings[idx1].key, strings[idx2].key);
- r2 = strcoll (strings[idx2].key, strings[idx1].key);
- r = r1 * r2;
-
- if (r > 0 || (r == 0 && r1 != 0) || (r == 0 && r2 != 0))
- printf ("`%s' and `%s' collate wrong: %d vs. %d\n",
- strings[idx1].key, strings[idx2].key, r1, r2);
- }
-
- /* Now sort. */
- qsort (strings, nstrings, sizeof (struct lines), xstrcoll);
-
- /* Print the result. */
- for (n = 0; n < nstrings; ++n)
- {
- fputs (strings[n].line, stdout);
- free (strings[n].line);
- free (strings[n].key);
- }
- free (strings);
-
- return result;
-}
-
-
-static int
-xstrcoll (ptr1, ptr2)
- const void *ptr1;
- const void *ptr2;
-{
- const struct lines *l1 = (const struct lines *) ptr1;
- const struct lines *l2 = (const struct lines *) ptr2;
-
- return strcoll (l1->key, l2->key);
-}
diff --git a/test/locale/dump-ctype.c b/test/locale/dump-ctype.c
deleted file mode 100644
index 6cf96d8..0000000
--- a/test/locale/dump-ctype.c
+++ /dev/null
@@ -1,163 +0,0 @@
-/* Dump the character classes and character maps of a locale to a bunch
- of individual files which can be processed with diff, sed etc.
- Copyright (C) 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Bruno Haible <haible(a)clisp.cons.org>rg>, 2000.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* Usage example:
- $ dump-ctype de_DE.UTF-8
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <wctype.h>
-#include <locale.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <errno.h>
-
-static const char *program_name = "dump-ctype";
-static const char *locale;
-
-static const char *class_names[] =
- {
- "alnum", "alpha", "blank", "cntrl",
"digit", "graph", "lower",
- "print", "punct", "space", "upper",
"xdigit"
- };
-
-static const char *map_names[] =
- {
- "tolower", "toupper", "totitle"
- };
-
-static void dump_class (const char *class_name)
-{
- wctype_t class;
- FILE *f;
- unsigned int ch;
-
- class = wctype (class_name);
- if (class == (wctype_t) 0)
- {
- fprintf (stderr, "%s %s: noexistent class %s\n", program_name,
- locale, class_name);
- return;
- }
-
- f = fopen (class_name, "w");
- if (f == NULL)
- {
- fprintf (stderr, "%s %s: cannot open file %s/%s\n", program_name,
- locale, locale, class_name);
- exit (1);
- }
-
- for (ch = 0; ch < 0x10000; ch++)
- if (iswctype (ch, class))
- fprintf (f, "0x%04X\n", ch);
-
- if (ferror (f) || fclose (f))
- {
- fprintf (stderr, "%s %s: I/O error on file %s/%s\n", program_name,
- locale, locale, class_name);
- exit (1);
- }
-}
-
-static void dump_map (const char *map_name)
-{
- wctrans_t map;
- FILE *f;
- unsigned int ch;
-
- map = wctrans (map_name);
- if (map == (wctrans_t) 0)
- {
- fprintf (stderr, "%s %s: noexistent map %s\n", program_name,
- locale, map_name);
- return;
- }
-
- f = fopen (map_name, "w");
- if (f == NULL)
- {
- fprintf (stderr, "%s %s: cannot open file %s/%s\n", program_name,
- locale, locale, map_name);
- exit (1);
- }
-
- for (ch = 0; ch < 0x10000; ch++)
- if (towctrans (ch, map) != ch)
- fprintf (f, "0x%04X\t0x%04X\n", ch, towctrans (ch, map));
-
- if (ferror (f) || fclose (f))
- {
- fprintf (stderr, "%s %s: I/O error on file %s/%s\n", program_name,
- locale, locale, map_name);
- exit (1);
- }
-}
-
-int
-main (int argc, char *argv[])
-{
- size_t i;
-
- if (argc != 2)
- {
- fprintf (stderr, "Usage: dump-ctype locale\n");
- exit (1);
- }
- locale = argv[1];
-
- if (setlocale (LC_ALL, locale) == NULL)
- {
- fprintf (stderr, "%s: setlocale cannot switch to locale %s\n",
- program_name, locale);
- exit (1);
- }
-
- if (mkdir (locale, 0777) < 0)
- {
- char buf[100];
- int save_errno = errno;
-
- sprintf (buf, "%s: cannot create directory %s", program_name, locale);
- errno = save_errno;
- perror (buf);
- exit (1);
- }
-
- if (chdir (locale) < 0)
- {
- char buf[100];
- int save_errno = errno;
-
- sprintf (buf, "%s: cannot chdir to %s", program_name, locale);
- errno = save_errno;
- perror (buf);
- exit (1);
- }
-
- for (i = 0; i < sizeof (class_names) / sizeof (class_names[0]); i++)
- dump_class (class_names[i]);
-
- for (i = 0; i < sizeof (map_names) / sizeof (map_names[0]); i++)
- dump_map (map_names[i]);
-
- return 0;
-}
diff --git a/test/locale/gen-unicode-ctype.c b/test/locale/gen-unicode-ctype.c
deleted file mode 100644
index 0c74e6a..0000000
--- a/test/locale/gen-unicode-ctype.c
+++ /dev/null
@@ -1,784 +0,0 @@
-/* Generate a Unicode conforming LC_CTYPE category from a UnicodeData file.
- Copyright (C) 2000-2001 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Bruno Haible <haible(a)clisp.cons.org>rg>, 2000.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* Usage example:
- $ gen-unicode /usr/local/share/Unidata/UnicodeData.txt 3.1
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdbool.h>
-#include <string.h>
-#include <time.h>
-
-/* This structure represents one line in the UnicodeData.txt file. */
-struct unicode_attribute
-{
- const char *name; /* Character name */
- const char *category; /* General category */
- const char *combining; /* Canonical combining classes */
- const char *bidi; /* Bidirectional category */
- const char *decomposition; /* Character decomposition mapping */
- const char *decdigit; /* Decimal digit value */
- const char *digit; /* Digit value */
- const char *numeric; /* Numeric value */
- int mirrored; /* mirrored */
- const char *oldname; /* Old Unicode 1.0 name */
- const char *comment; /* Comment */
- unsigned int upper; /* Uppercase mapping */
- unsigned int lower; /* Lowercase mapping */
- unsigned int title; /* Titlecase mapping */
-};
-
-/* Missing fields are represented with "" for strings, and NONE for
- characters. */
-#define NONE (~(unsigned int)0)
-
-/* The entire contents of the UnicodeData.txt file. */
-struct unicode_attribute unicode_attributes [0x110000];
-
-/* Stores in unicode_attributes[i] the values from the given fields. */
-static void
-fill_attribute (unsigned int i,
- const char *field1, const char *field2,
- const char *field3, const char *field4,
- const char *field5, const char *field6,
- const char *field7, const char *field8,
- const char *field9, const char *field10,
- const char *field11, const char *field12,
- const char *field13, const char *field14)
-{
- struct unicode_attribute * uni;
-
- if (i >= 0x110000)
- {
- fprintf (stderr, "index too large\n");
- exit (1);
- }
- if (strcmp (field2, "Cs") == 0)
- /* Surrogates are UTF-16 artefacts, not real characters. Ignore them. */
- return;
- uni = &unicode_attributes[i];
- /* Copy the strings. */
- uni->name = strdup (field1);
- uni->category = (field2[0] == '\0' ? "" : strdup (field2));
- uni->combining = (field3[0] == '\0' ? "" : strdup (field3));
- uni->bidi = (field4[0] == '\0' ? "" : strdup (field4));
- uni->decomposition = (field5[0] == '\0' ? "" : strdup (field5));
- uni->decdigit = (field6[0] == '\0' ? "" : strdup (field6));
- uni->digit = (field7[0] == '\0' ? "" : strdup (field7));
- uni->numeric = (field8[0] == '\0' ? "" : strdup (field8));
- uni->mirrored = (field9[0] == 'Y');
- uni->oldname = (field10[0] == '\0' ? "" : strdup
(field10));
- uni->comment = (field11[0] == '\0' ? "" : strdup
(field11));
- uni->upper = (field12[0] =='\0' ? NONE : strtoul (field12, NULL, 16));
- uni->lower = (field13[0] =='\0' ? NONE : strtoul (field13, NULL, 16));
- uni->title = (field14[0] =='\0' ? NONE : strtoul (field14, NULL, 16));
-}
-
-/* Maximum length of a field in the UnicodeData.txt file. */
-#define FIELDLEN 120
-
-/* Reads the next field from STREAM. The buffer BUFFER has size FIELDLEN.
- Reads up to (but excluding) DELIM.
- Returns 1 when a field was successfully read, otherwise 0. */
-static int
-getfield (FILE *stream, char *buffer, int delim)
-{
- int count = 0;
- int c;
-
- for (; (c = getc (stream)), (c != EOF && c != delim); )
- {
- /* The original
unicode.org UnicodeData.txt file happens to have
- CR/LF line terminators. Silently convert to LF. */
- if (c == '\r')
- continue;
-
- /* Put c into the buffer. */
- if (++count >= FIELDLEN - 1)
- {
- fprintf (stderr, "field too long\n");
- exit (1);
- }
- *buffer++ = c;
- }
-
- if (c == EOF)
- return 0;
-
- *buffer = '\0';
- return 1;
-}
-
-/* Stores in unicode_attributes[] the entire contents of the UnicodeData.txt
- file. */
-static void
-fill_attributes (const char *unicodedata_filename)
-{
- unsigned int i, j;
- FILE *stream;
- char field0[FIELDLEN];
- char field1[FIELDLEN];
- char field2[FIELDLEN];
- char field3[FIELDLEN];
- char field4[FIELDLEN];
- char field5[FIELDLEN];
- char field6[FIELDLEN];
- char field7[FIELDLEN];
- char field8[FIELDLEN];
- char field9[FIELDLEN];
- char field10[FIELDLEN];
- char field11[FIELDLEN];
- char field12[FIELDLEN];
- char field13[FIELDLEN];
- char field14[FIELDLEN];
- int lineno = 0;
-
- for (i = 0; i < 0x110000; i++)
- unicode_attributes[i].name = NULL;
-
- stream = fopen (unicodedata_filename, "r");
- if (stream == NULL)
- {
- fprintf (stderr, "error during fopen of '%s'\n",
unicodedata_filename);
- exit (1);
- }
-
- for (;;)
- {
- int n;
-
- lineno++;
- n = getfield (stream, field0, ';');
- n += getfield (stream, field1, ';');
- n += getfield (stream, field2, ';');
- n += getfield (stream, field3, ';');
- n += getfield (stream, field4, ';');
- n += getfield (stream, field5, ';');
- n += getfield (stream, field6, ';');
- n += getfield (stream, field7, ';');
- n += getfield (stream, field8, ';');
- n += getfield (stream, field9, ';');
- n += getfield (stream, field10, ';');
- n += getfield (stream, field11, ';');
- n += getfield (stream, field12, ';');
- n += getfield (stream, field13, ';');
- n += getfield (stream, field14, '\n');
- if (n == 0)
- break;
- if (n != 15)
- {
- fprintf (stderr, "short line in'%s':%d\n",
- unicodedata_filename, lineno);
- exit (1);
- }
- i = strtoul (field0, NULL, 16);
- if (field1[0] == '<'
- && strlen (field1) >= 9
- && !strcmp (field1 + strlen(field1) - 8, ", First>"))
- {
- /* Deal with a range. */
- lineno++;
- n = getfield (stream, field0, ';');
- n += getfield (stream, field1, ';');
- n += getfield (stream, field2, ';');
- n += getfield (stream, field3, ';');
- n += getfield (stream, field4, ';');
- n += getfield (stream, field5, ';');
- n += getfield (stream, field6, ';');
- n += getfield (stream, field7, ';');
- n += getfield (stream, field8, ';');
- n += getfield (stream, field9, ';');
- n += getfield (stream, field10, ';');
- n += getfield (stream, field11, ';');
- n += getfield (stream, field12, ';');
- n += getfield (stream, field13, ';');
- n += getfield (stream, field14, '\n');
- if (n != 15)
- {
- fprintf (stderr, "missing end range in '%s':%d\n",
- unicodedata_filename, lineno);
- exit (1);
- }
- if (!(field1[0] == '<'
- && strlen (field1) >= 8
- && !strcmp (field1 + strlen (field1) - 7, ", Last>")))
- {
- fprintf (stderr, "missing end range in '%s':%d\n",
- unicodedata_filename, lineno);
- exit (1);
- }
- field1[strlen (field1) - 7] = '\0';
- j = strtoul (field0, NULL, 16);
- for (; i <= j; i++)
- fill_attribute (i, field1+1, field2, field3, field4, field5,
- field6, field7, field8, field9, field10,
- field11, field12, field13, field14);
- }
- else
- {
- /* Single character line */
- fill_attribute (i, field1, field2, field3, field4, field5,
- field6, field7, field8, field9, field10,
- field11, field12, field13, field14);
- }
- }
- if (ferror (stream) || fclose (stream))
- {
- fprintf (stderr, "error reading from '%s'\n",
unicodedata_filename);
- exit (1);
- }
-}
-
-/* Character mappings. */
-
-static unsigned int
-to_upper (unsigned int ch)
-{
- if (unicode_attributes[ch].name != NULL
- && unicode_attributes[ch].upper != NONE)
- return unicode_attributes[ch].upper;
- else
- return ch;
-}
-
-static unsigned int
-to_lower (unsigned int ch)
-{
- if (unicode_attributes[ch].name != NULL
- && unicode_attributes[ch].lower != NONE)
- return unicode_attributes[ch].lower;
- else
- return ch;
-}
-
-static unsigned int
-to_title (unsigned int ch)
-{
- if (unicode_attributes[ch].name != NULL
- && unicode_attributes[ch].title != NONE)
- return unicode_attributes[ch].title;
- else
- return ch;
-}
-
-/* Character class properties. */
-
-static bool
-is_upper (unsigned int ch)
-{
- return (to_lower (ch) != ch);
-}
-
-static bool
-is_lower (unsigned int ch)
-{
- return (to_upper (ch) != ch)
- /* <U00DF> is lowercase, but without simple to_upper mapping. */
- || (ch == 0x00DF);
-}
-
-static bool
-is_alpha (unsigned int ch)
-{
- return (unicode_attributes[ch].name != NULL
- && ((unicode_attributes[ch].category[0] == 'L'
- /* Theppitak Karoonboonyanan <thep(a)links.nectec.or.th> says
- <U0E2F>, <U0E46> should belong to is_punct. */
- && (ch != 0x0E2F) && (ch != 0x0E46))
- /* Theppitak Karoonboonyanan <thep(a)links.nectec.or.th> says
- <U0E31>, <U0E34>..<U0E3A>, <U0E47>..<U0E4E> are
is_alpha. */
- || (ch == 0x0E31)
- || (ch >= 0x0E34 && ch <= 0x0E3A)
- || (ch >= 0x0E47 && ch <= 0x0E4E)
- /* Avoid warning for <U0345>. */
- || (ch == 0x0345)
- /* Avoid warnings for <U2160>..<U217F>. */
- || (unicode_attributes[ch].category[0] == 'N'
- && unicode_attributes[ch].category[1] == 'l')
- /* Avoid warnings for <U24B6>..<U24E9>. */
- || (unicode_attributes[ch].category[0] == 'S'
- && unicode_attributes[ch].category[1] == 'o'
- && strstr (unicode_attributes[ch].name, " LETTER ")
- != NULL)
- /* Consider all the non-ASCII digits as alphabetic.
- ISO C 99 forbids us to have them in category "digit",
- but we want iswalnum to return true on them. */
- || (unicode_attributes[ch].category[0] == 'N'
- && unicode_attributes[ch].category[1] == 'd'
- && !(ch >= 0x0030 && ch <= 0x0039))));
-}
-
-static bool
-is_digit (unsigned int ch)
-{
-#if 0
- return (unicode_attributes[ch].name != NULL
- && unicode_attributes[ch].category[0] == 'N'
- && unicode_attributes[ch].category[1] == 'd');
- /* Note: U+0BE7..U+0BEF and U+1369..U+1371 are digit systems without
- a zero. Must add <0> in front of them by hand. */
-#else
- /* SUSV2 gives us some freedom for the "digit" category, but ISO C 99
- takes it away:
- 7.25.2.1.5:
- The iswdigit function tests for any wide character that corresponds
- to a decimal-digit character (as defined in 5.2.1).
- 5.2.1:
- the 10 decimal digits 0 1 2 3 4 5 6 7 8 9
- */
- return (ch >= 0x0030 && ch <= 0x0039);
-#endif
-}
-
-static bool
-is_outdigit (unsigned int ch)
-{
- return (ch >= 0x0030 && ch <= 0x0039);
-}
-
-static bool
-is_blank (unsigned int ch)
-{
- return (ch == 0x0009 /* '\t' */
- /* Category Zs without mention of "<noBreak>" */
- || (unicode_attributes[ch].name != NULL
- && unicode_attributes[ch].category[0] == 'Z'
- && unicode_attributes[ch].category[1] == 's'
- && !strstr (unicode_attributes[ch].decomposition,
"<noBreak>")));
-}
-
-static bool
-is_space (unsigned int ch)
-{
- /* Don't make U+00A0 a space. Non-breaking space means that all programs
- should treat it like a punctuation character, not like a space. */
- return (ch == 0x0020 /* ' ' */
- || ch == 0x000C /* '\f' */
- || ch == 0x000A /* '\n' */
- || ch == 0x000D /* '\r' */
- || ch == 0x0009 /* '\t' */
- || ch == 0x000B /* '\v' */
- /* Categories Zl, Zp, and Zs without mention of "<noBreak>" */
- || (unicode_attributes[ch].name != NULL
- && unicode_attributes[ch].category[0] == 'Z'
- && (unicode_attributes[ch].category[1] == 'l'
- || unicode_attributes[ch].category[1] == 'p'
- || (unicode_attributes[ch].category[1] == 's'
- && !strstr (unicode_attributes[ch].decomposition,
- "<noBreak>")))));
-}
-
-static bool
-is_cntrl (unsigned int ch)
-{
- return (unicode_attributes[ch].name != NULL
- && (!strcmp (unicode_attributes[ch].name, "<control>")
- /* Categories Zl and Zp */
- || (unicode_attributes[ch].category[0] == 'Z'
- && (unicode_attributes[ch].category[1] == 'l'
- || unicode_attributes[ch].category[1] == 'p'))));
-}
-
-static bool
-is_xdigit (unsigned int ch)
-{
-#if 0
- return is_digit (ch)
- || (ch >= 0x0041 && ch <= 0x0046)
- || (ch >= 0x0061 && ch <= 0x0066);
-#else
- /* SUSV2 gives us some freedom for the "xdigit" category, but ISO C 99
- takes it away:
- 7.25.2.1.12:
- The iswxdigit function tests for any wide character that corresponds
- to a hexadecimal-digit character (as defined in 6.4.4.1).
- 6.4.4.1:
- hexadecimal-digit: one of 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F
- */
- return (ch >= 0x0030 && ch <= 0x0039)
- || (ch >= 0x0041 && ch <= 0x0046)
- || (ch >= 0x0061 && ch <= 0x0066);
-#endif
-}
-
-static bool
-is_graph (unsigned int ch)
-{
- return (unicode_attributes[ch].name != NULL
- && strcmp (unicode_attributes[ch].name, "<control>")
- && !is_space (ch));
-}
-
-static bool
-is_print (unsigned int ch)
-{
- return (unicode_attributes[ch].name != NULL
- && strcmp (unicode_attributes[ch].name, "<control>")
- /* Categories Zl and Zp */
- && !(unicode_attributes[ch].name != NULL
- && unicode_attributes[ch].category[0] == 'Z'
- && (unicode_attributes[ch].category[1] == 'l'
- || unicode_attributes[ch].category[1] == 'p')));
-}
-
-static bool
-is_punct (unsigned int ch)
-{
-#if 0
- return (unicode_attributes[ch].name != NULL
- && unicode_attributes[ch].category[0] == 'P');
-#else
- /* The traditional POSIX definition of punctuation is every graphic,
- non-alphanumeric character. */
- return (is_graph (ch) && !is_alpha (ch) && !is_digit (ch));
-#endif
-}
-
-static bool
-is_combining (unsigned int ch)
-{
- /* Up to Unicode 3.0.1 we took the Combining property from the PropList.txt
- file. In 3.0.1 it was identical to the union of the general categories
- "Mn", "Mc", "Me". In Unicode 3.1 this property has
been dropped from the
- PropList.txt file, so we take the latter definition. */
- return (unicode_attributes[ch].name != NULL
- && unicode_attributes[ch].category[0] == 'M'
- && (unicode_attributes[ch].category[1] == 'n'
- || unicode_attributes[ch].category[1] == 'c'
- || unicode_attributes[ch].category[1] == 'e'));
-}
-
-static bool
-is_combining_level3 (unsigned int ch)
-{
- return is_combining (ch)
- && !(unicode_attributes[ch].combining[0] != '\0'
- && unicode_attributes[ch].combining[0] != '0'
- && strtoul (unicode_attributes[ch].combining, NULL, 10) >= 200);
-}
-
-/* Return the UCS symbol string for a Unicode character. */
-static const char *
-ucs_symbol (unsigned int i)
-{
- static char buf[11+1];
-
- sprintf (buf, (i < 0x10000 ? "<U%04X>" : "<U%08X>"),
i);
- return buf;
-}
-
-/* Return the UCS symbol range string for a Unicode characters interval. */
-static const char *
-ucs_symbol_range (unsigned int low, unsigned int high)
-{
- static char buf[24+1];
-
- strcpy (buf, ucs_symbol (low));
- strcat (buf, "..");
- strcat (buf, ucs_symbol (high));
- return buf;
-}
-
-/* Output a character class (= property) table. */
-
-static void
-output_charclass (FILE *stream, const char *classname,
- bool (*func) (unsigned int))
-{
- char table[0x110000];
- unsigned int i;
- bool need_semicolon;
- const int max_column = 75;
- int column;
-
- for (i = 0; i < 0x110000; i++)
- table[i] = (int) func (i);
-
- fprintf (stream, "%s ", classname);
- need_semicolon = false;
- column = 1000;
- for (i = 0; i < 0x110000; )
- {
- if (!table[i])
- i++;
- else
- {
- unsigned int low, high;
- char buf[25];
-
- low = i;
- do
- i++;
- while (i < 0x110000 && table[i]);
- high = i - 1;
-
- if (low == high)
- strcpy (buf, ucs_symbol (low));
- else
- strcpy (buf, ucs_symbol_range (low, high));
-
- if (need_semicolon)
- {
- fprintf (stream, ";");
- column++;
- }
-
- if (column + strlen (buf) > max_column)
- {
- fprintf (stream, "/\n ");
- column = 3;
- }
-
- fprintf (stream, "%s", buf);
- column += strlen (buf);
- need_semicolon = true;
- }
- }
- fprintf (stream, "\n");
-}
-
-/* Output a character mapping table. */
-
-static void
-output_charmap (FILE *stream, const char *mapname,
- unsigned int (*func) (unsigned int))
-{
- char table[0x110000];
- unsigned int i;
- bool need_semicolon;
- const int max_column = 75;
- int column;
-
- for (i = 0; i < 0x110000; i++)
- table[i] = (func (i) != i);
-
- fprintf (stream, "%s ", mapname);
- need_semicolon = false;
- column = 1000;
- for (i = 0; i < 0x110000; i++)
- if (table[i])
- {
- char buf[25+1];
-
- strcpy (buf, "(");
- strcat (buf, ucs_symbol (i));
- strcat (buf, ",");
- strcat (buf, ucs_symbol (func (i)));
- strcat (buf, ")");
-
- if (need_semicolon)
- {
- fprintf (stream, ";");
- column++;
- }
-
- if (column + strlen (buf) > max_column)
- {
- fprintf (stream, "/\n ");
- column = 3;
- }
-
- fprintf (stream, "%s", buf);
- column += strlen (buf);
- need_semicolon = true;
- }
- fprintf (stream, "\n");
-}
-
-/* Output the width table. */
-
-static void
-output_widthmap (FILE *stream)
-{
-}
-
-/* Output the tables to the given file. */
-
-static void
-output_tables (const char *filename, const char *version)
-{
- FILE *stream;
- unsigned int ch;
-
- stream = fopen (filename, "w");
- if (stream == NULL)
- {
- fprintf (stderr, "cannot open '%s' for writing\n", filename);
- exit (1);
- }
-
- fprintf (stream, "escape_char /\n");
- fprintf (stream, "comment_char %%\n");
- fprintf (stream, "\n");
- fprintf (stream, "%% Generated automatically by gen-unicode-ctype for Unicode
%s.\n",
- version);
- fprintf (stream, "\n");
-
- fprintf (stream, "LC_IDENTIFICATION\n");
- fprintf (stream, "title \"Unicode %s FDCC-set\"\n", version);
- fprintf (stream, "source \"UnicodeData.txt, PropList.txt\"\n");
- fprintf (stream, "address \"\"\n");
- fprintf (stream, "contact \"\"\n");
- fprintf (stream, "email \"bug-glibc-locales(a)gnu.org\"\n")"\n");
- fprintf (stream, "tel \"\"\n");
- fprintf (stream, "fax \"\"\n");
- fprintf (stream, "language \"\"\n");
- fprintf (stream, "territory \"Earth\"\n");
- fprintf (stream, "revision \"%s\"\n", version);
- {
- time_t now;
- char date[11];
- now = time (NULL);
- strftime (date, sizeof (date), "%Y-%m-%d", gmtime (&now));
- fprintf (stream, "date \"%s\"\n", date);
- }
- fprintf (stream, "category \"unicode:2001\";LC_CTYPE\n");
- fprintf (stream, "END LC_IDENTIFICATION\n");
- fprintf (stream, "\n");
-
- /* Verifications. */
- for (ch = 0; ch < 0x110000; ch++)
- {
- /* toupper restriction: "Only characters specified for the keywords
- lower and upper shall be specified. */
- if (to_upper (ch) != ch && !(is_lower (ch) || is_upper (ch)))
- fprintf (stderr,
- "%s is not upper|lower but toupper(0x%04X) = 0x%04X\n",
- ucs_symbol (ch), ch, to_upper (ch));
-
- /* tolower restriction: "Only characters specified for the keywords
- lower and upper shall be specified. */
- if (to_lower (ch) != ch && !(is_lower (ch) || is_upper (ch)))
- fprintf (stderr,
- "%s is not upper|lower but tolower(0x%04X) = 0x%04X\n",
- ucs_symbol (ch), ch, to_lower (ch));
-
- /* alpha restriction: "Characters classified as either upper or lower
- shall automatically belong to this class. */
- if ((is_lower (ch) || is_upper (ch)) && !is_alpha (ch))
- fprintf (stderr, "%s is upper|lower but not alpha\n", ucs_symbol (ch));
-
- /* alpha restriction: "No character specified for the keywords cntrl,
- digit, punct or space shall be specified." */
- if (is_alpha (ch) && is_cntrl (ch))
- fprintf (stderr, "%s is alpha and cntrl\n", ucs_symbol (ch));
- if (is_alpha (ch) && is_digit (ch))
- fprintf (stderr, "%s is alpha and digit\n", ucs_symbol (ch));
- if (is_alpha (ch) && is_punct (ch))
- fprintf (stderr, "%s is alpha and punct\n", ucs_symbol (ch));
- if (is_alpha (ch) && is_space (ch))
- fprintf (stderr, "%s is alpha and space\n", ucs_symbol (ch));
-
- /* space restriction: "No character specified for the keywords upper,
- lower, alpha, digit, graph or xdigit shall be specified."
- upper, lower, alpha already checked above. */
- if (is_space (ch) && is_digit (ch))
- fprintf (stderr, "%s is space and digit\n", ucs_symbol (ch));
- if (is_space (ch) && is_graph (ch))
- fprintf (stderr, "%s is space and graph\n", ucs_symbol (ch));
- if (is_space (ch) && is_xdigit (ch))
- fprintf (stderr, "%s is space and xdigit\n", ucs_symbol (ch));
-
- /* cntrl restriction: "No character specified for the keywords upper,
- lower, alpha, digit, punct, graph, print or xdigit shall be
- specified." upper, lower, alpha already checked above. */
- if (is_cntrl (ch) && is_digit (ch))
- fprintf (stderr, "%s is cntrl and digit\n", ucs_symbol (ch));
- if (is_cntrl (ch) && is_punct (ch))
- fprintf (stderr, "%s is cntrl and punct\n", ucs_symbol (ch));
- if (is_cntrl (ch) && is_graph (ch))
- fprintf (stderr, "%s is cntrl and graph\n", ucs_symbol (ch));
- if (is_cntrl (ch) && is_print (ch))
- fprintf (stderr, "%s is cntrl and print\n", ucs_symbol (ch));
- if (is_cntrl (ch) && is_xdigit (ch))
- fprintf (stderr, "%s is cntrl and xdigit\n", ucs_symbol (ch));
-
- /* punct restriction: "No character specified for the keywords upper,
- lower, alpha, digit, cntrl, xdigit or as the <space> character shall
- be specified." upper, lower, alpha, cntrl already checked above. */
- if (is_punct (ch) && is_digit (ch))
- fprintf (stderr, "%s is punct and digit\n", ucs_symbol (ch));
- if (is_punct (ch) && is_xdigit (ch))
- fprintf (stderr, "%s is punct and xdigit\n", ucs_symbol (ch));
- if (is_punct (ch) && (ch == 0x0020))
- fprintf (stderr, "%s is punct\n", ucs_symbol (ch));
-
- /* graph restriction: "No character specified for the keyword cntrl
- shall be specified." Already checked above. */
-
- /* print restriction: "No character specified for the keyword cntrl
- shall be specified." Already checked above. */
-
- /* graph - print relation: differ only in the <space> character.
- How is this possible if there are more than one space character?!
- I think susv2/xbd/locale.html should speak of "space characters",
- not "space character". */
- if (is_print (ch) && !(is_graph (ch) || /* ch == 0x0020 */ is_space (ch)))
- fprintf (stderr,
- "%s is print but not graph|<space>\n", ucs_symbol (ch));
- if (!is_print (ch) && (is_graph (ch) || ch == 0x0020))
- fprintf (stderr,
- "%s is graph|<space> but not print\n", ucs_symbol (ch));
- }
-
- fprintf (stream, "LC_CTYPE\n");
- output_charclass (stream, "upper", is_upper);
- output_charclass (stream, "lower", is_lower);
- output_charclass (stream, "alpha", is_alpha);
- output_charclass (stream, "digit", is_digit);
- output_charclass (stream, "outdigit", is_outdigit);
- output_charclass (stream, "blank", is_blank);
- output_charclass (stream, "space", is_space);
- output_charclass (stream, "cntrl", is_cntrl);
- output_charclass (stream, "punct", is_punct);
- output_charclass (stream, "xdigit", is_xdigit);
- output_charclass (stream, "graph", is_graph);
- output_charclass (stream, "print", is_print);
- output_charclass (stream, "class \"combining\";", is_combining);
- output_charclass (stream, "class \"combining_level3\";",
is_combining_level3);
- output_charmap (stream, "toupper", to_upper);
- output_charmap (stream, "tolower", to_lower);
- output_charmap (stream, "map \"totitle\";", to_title);
- output_widthmap (stream);
- fprintf (stream, "END LC_CTYPE\n");
-
- if (ferror (stream) || fclose (stream))
- {
- fprintf (stderr, "error writing to '%s'\n", filename);
- exit (1);
- }
-}
-
-int
-main (int argc, char * argv[])
-{
- if (argc != 3)
- {
- fprintf (stderr, "Usage: %s UnicodeData.txt version\n", argv[0]);
- exit (1);
- }
-
- fill_attributes (argv[1]);
-
- output_tables ("unicode", argv[2]);
-
- return 0;
-}
diff --git a/test/locale/show-ucs-data.c b/test/locale/show-ucs-data.c
deleted file mode 100644
index 9992ece..0000000
--- a/test/locale/show-ucs-data.c
+++ /dev/null
@@ -1,62 +0,0 @@
-#include <ctype.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/types.h>
-
-int
-main (int argc, char *argv[])
-{
- int n;
- char *line = NULL;
- size_t len = 0;
-
- for (n = 1; n < argc; ++n)
- {
- FILE *fp = fopen (argv[n], "r");
- if (fp == NULL)
- continue;
-
- while (! feof (fp))
- {
- ssize_t cnt = getline (&line, &len, fp);
- char *runp;
- if (cnt <= 0)
- break;
-
- runp = line;
- do
- {
- if (runp[0] == '<' && runp[1] == 'U' &&
isxdigit (runp[2])
- && isxdigit (runp[3]) && isxdigit (runp[4])
- && isxdigit (runp[5]) && runp[6] == '>')
- {
- unsigned int val = strtoul (runp + 2, NULL, 16);
-
- //putchar ('<');
- if (val < 128)
- putchar (val);
- else if (val < 0x800)
- {
- putchar (0xc0 | (val >> 6));
- putchar (0x80 | (val & 0x3f));
- }
- else
- {
- putchar (0xe0 | (val >> 12));
- putchar (0x80 | ((val >> 6) & 0x3f));
- putchar (0x80 | (val & 0x3f));
- }
- //putchar ('>');
- runp += 7;
- }
- else
- putchar (*runp++);
- }
- while (runp < &line[cnt]);
- }
-
- fclose (fp);
- }
-
- return 0;
-}
diff --git a/test/locale/tst-C-locale.c b/test/locale/tst-C-locale.c
deleted file mode 100644
index 282d53a..0000000
--- a/test/locale/tst-C-locale.c
+++ /dev/null
@@ -1,497 +0,0 @@
-/* Tests of C and POSIX locale contents.
- Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2000.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <ctype.h>
-#include <langinfo.h>
-#include <limits.h>
-#include <locale.h>
-#include <stdio.h>
-#include <string.h>
-#include <wchar.h>
-#include <wctype.h>
-
-
-static int
-run_test (const char *locname)
-{
- struct lconv *lc;
- const char *str;
- const wchar_t *wstr;
- int result = 0;
- locale_t loc;
-
- /* ISO C stuff. */
- lc = localeconv ();
- if (lc == NULL)
- {
- printf ("localeconv failed for locale %s\n", locname);
- result = 1;
- }
- else
- {
-#define STRTEST(name, exp) \
- do \
- if (strcmp (lc->name, exp) != 0) \
- { \
- printf (#name " in locale %s wrong (is \"%s\", should be
\"%s\")\n",\
- locname, lc->name, exp); \
- result = 1; \
- } \
- while (0)
- STRTEST (decimal_point, ".");
- STRTEST (thousands_sep, "");
- STRTEST (grouping, "");
- STRTEST (mon_decimal_point, "");
- STRTEST (mon_thousands_sep, "");
- STRTEST (mon_grouping, "");
- STRTEST (positive_sign, "");
- STRTEST (negative_sign, "");
- STRTEST (currency_symbol, "");
- STRTEST (int_curr_symbol, "");
-
-#define CHARTEST(name, exp) \
- do \
- if (lc->name != exp) \
- { \
- printf (#name " in locale %s wrong (is %d, should be %d)\n", \
- locname, lc->name, CHAR_MAX); \
- result = 1; \
- } \
- while (0)
- CHARTEST (frac_digits, CHAR_MAX);
- CHARTEST (p_cs_precedes, CHAR_MAX);
- CHARTEST (n_cs_precedes, CHAR_MAX);
- CHARTEST (p_sep_by_space, CHAR_MAX);
- CHARTEST (n_sep_by_space, CHAR_MAX);
- CHARTEST (p_sign_posn, CHAR_MAX);
- CHARTEST (n_sign_posn, CHAR_MAX);
- CHARTEST (int_frac_digits, CHAR_MAX);
- CHARTEST (int_p_cs_precedes, CHAR_MAX);
- CHARTEST (int_n_cs_precedes, CHAR_MAX);
- CHARTEST (int_p_sep_by_space, CHAR_MAX);
- CHARTEST (int_n_sep_by_space, CHAR_MAX);
- CHARTEST (int_p_sign_posn, CHAR_MAX);
- CHARTEST (int_n_sign_posn, CHAR_MAX);
- }
-
-#undef STRTEST
-#define STRTEST(name, exp) \
- str = nl_langinfo (name); \
- if (strcmp (str, exp) != 0) \
- { \
- printf ("nl_langinfo(" #name ") in locale %s wrong " \
- "(is \"%s\", should be \"%s\")\n", locname, str,
exp); \
- result = 1; \
- }
-#define WSTRTEST(name, exp) \
- wstr = (wchar_t *) nl_langinfo (name); \
- if (wcscmp (wstr, exp) != 0) \
- { \
- printf ("nl_langinfo(" #name ") in locale %s wrong " \
- "(is \"%S\", should be \"%S\")\n", locname, wstr,
exp); \
- result = 1; \
- }
-
- /* Unix stuff. */
- STRTEST (ABDAY_1, "Sun");
- STRTEST (ABDAY_2, "Mon");
- STRTEST (ABDAY_3, "Tue");
- STRTEST (ABDAY_4, "Wed");
- STRTEST (ABDAY_5, "Thu");
- STRTEST (ABDAY_6, "Fri");
- STRTEST (ABDAY_7, "Sat");
- STRTEST (DAY_1, "Sunday");
- STRTEST (DAY_2, "Monday");
- STRTEST (DAY_3, "Tuesday");
- STRTEST (DAY_4, "Wednesday");
- STRTEST (DAY_5, "Thursday");
- STRTEST (DAY_6, "Friday");
- STRTEST (DAY_7, "Saturday");
- STRTEST (ABMON_1, "Jan");
- STRTEST (ABMON_2, "Feb");
- STRTEST (ABMON_3, "Mar");
- STRTEST (ABMON_4, "Apr");
- STRTEST (ABMON_5, "May");
- STRTEST (ABMON_6, "Jun");
- STRTEST (ABMON_7, "Jul");
- STRTEST (ABMON_8, "Aug");
- STRTEST (ABMON_9, "Sep");
- STRTEST (ABMON_10, "Oct");
- STRTEST (ABMON_11, "Nov");
- STRTEST (ABMON_12, "Dec");
- STRTEST (MON_1, "January");
- STRTEST (MON_2, "February");
- STRTEST (MON_3, "March");
- STRTEST (MON_4, "April");
- STRTEST (MON_5, "May");
- STRTEST (MON_6, "June");
- STRTEST (MON_7, "July");
- STRTEST (MON_8, "August");
- STRTEST (MON_9, "September");
- STRTEST (MON_10, "October");
- STRTEST (MON_11, "November");
- STRTEST (MON_12, "December");
- STRTEST (AM_STR, "AM");
- STRTEST (PM_STR, "PM");
- STRTEST (D_T_FMT, "%a %b %e %H:%M:%S %Y");
- STRTEST (D_FMT, "%m/%d/%y");
- STRTEST (T_FMT, "%H:%M:%S");
- STRTEST (T_FMT_AMPM, "%I:%M:%S %p");
- STRTEST (ERA, "");
- STRTEST (ERA_D_FMT, "");
- STRTEST (ERA_T_FMT, "");
- STRTEST (ERA_D_T_FMT, "");
- STRTEST (ALT_DIGITS, "");
-
- STRTEST (RADIXCHAR, ".");
- STRTEST (THOUSEP, "");
-
- STRTEST (YESEXPR, "^[yY]");
- STRTEST (NOEXPR, "^[nN]");
-
- /* Extensions. */
- WSTRTEST (_NL_WABDAY_1, L"Sun");
- WSTRTEST (_NL_WABDAY_2, L"Mon");
- WSTRTEST (_NL_WABDAY_3, L"Tue");
- WSTRTEST (_NL_WABDAY_4, L"Wed");
- WSTRTEST (_NL_WABDAY_5, L"Thu");
- WSTRTEST (_NL_WABDAY_6, L"Fri");
- WSTRTEST (_NL_WABDAY_7, L"Sat");
- WSTRTEST (_NL_WDAY_1, L"Sunday");
- WSTRTEST (_NL_WDAY_2, L"Monday");
- WSTRTEST (_NL_WDAY_3, L"Tuesday");
- WSTRTEST (_NL_WDAY_4, L"Wednesday");
- WSTRTEST (_NL_WDAY_5, L"Thursday");
- WSTRTEST (_NL_WDAY_6, L"Friday");
- WSTRTEST (_NL_WDAY_7, L"Saturday");
- WSTRTEST (_NL_WABMON_1, L"Jan");
- WSTRTEST (_NL_WABMON_2, L"Feb");
- WSTRTEST (_NL_WABMON_3, L"Mar");
- WSTRTEST (_NL_WABMON_4, L"Apr");
- WSTRTEST (_NL_WABMON_5, L"May");
- WSTRTEST (_NL_WABMON_6, L"Jun");
- WSTRTEST (_NL_WABMON_7, L"Jul");
- WSTRTEST (_NL_WABMON_8, L"Aug");
- WSTRTEST (_NL_WABMON_9, L"Sep");
- WSTRTEST (_NL_WABMON_10, L"Oct");
- WSTRTEST (_NL_WABMON_11, L"Nov");
- WSTRTEST (_NL_WABMON_12, L"Dec");
- WSTRTEST (_NL_WMON_1, L"January");
- WSTRTEST (_NL_WMON_2, L"February");
- WSTRTEST (_NL_WMON_3, L"March");
- WSTRTEST (_NL_WMON_4, L"April");
- WSTRTEST (_NL_WMON_5, L"May");
- WSTRTEST (_NL_WMON_6, L"June");
- WSTRTEST (_NL_WMON_7, L"July");
- WSTRTEST (_NL_WMON_8, L"August");
- WSTRTEST (_NL_WMON_9, L"September");
- WSTRTEST (_NL_WMON_10, L"October");
- WSTRTEST (_NL_WMON_11, L"November");
- WSTRTEST (_NL_WMON_12, L"December");
- WSTRTEST (_NL_WAM_STR, L"AM");
- WSTRTEST (_NL_WPM_STR, L"PM");
- WSTRTEST (_NL_WD_T_FMT, L"%a %b %e %H:%M:%S %Y");
- WSTRTEST (_NL_WD_FMT, L"%m/%d/%y");
- WSTRTEST (_NL_WT_FMT, L"%H:%M:%S");
- WSTRTEST (_NL_WT_FMT_AMPM, L"%I:%M:%S %p");
- WSTRTEST (_NL_WERA_D_FMT, L"");
- WSTRTEST (_NL_WERA_T_FMT, L"");
- WSTRTEST (_NL_WERA_D_T_FMT, L"");
- WSTRTEST (_NL_WALT_DIGITS, L"");
-
- STRTEST (_DATE_FMT, "%a %b %e %H:%M:%S %Z %Y");
- WSTRTEST (_NL_W_DATE_FMT, L"%a %b %e %H:%M:%S %Z %Y");
-
- STRTEST (INT_CURR_SYMBOL, "");
- STRTEST (CURRENCY_SYMBOL, "");
- STRTEST (MON_DECIMAL_POINT, "");
- STRTEST (MON_THOUSANDS_SEP, "");
- STRTEST (MON_GROUPING, "");
- STRTEST (POSITIVE_SIGN, "");
- STRTEST (NEGATIVE_SIGN, "");
- STRTEST (GROUPING, "");
-
- STRTEST (YESSTR, "");
- STRTEST (NOSTR, "");
-
- /* Test the new locale mechanisms. */
- loc = newlocale (LC_ALL_MASK, locname, NULL);
- if (loc == NULL)
- {
- printf ("cannot create locale object for locale %s\n", locname);
- result = 1;
- }
- else
- {
- int c;
-
-#undef STRTEST
-#define STRTEST(name, exp) \
- str = nl_langinfo_l (name, loc); \
- if (strcmp (str, exp) != 0) \
- { \
- printf ("nl_langinfo_l(" #name ") in locale %s wrong " \
- "(is \"%s\", should be \"%s\")\n", locname, str, exp);
\
- result = 1; \
- }
-#undef WSTRTEST
-#define WSTRTEST(name, exp) \
- wstr = (wchar_t *) nl_langinfo_l (name, loc); \
- if (wcscmp (wstr, exp) != 0) \
- { \
- printf ("nl_langinfo_l(" #name ") in locale %s wrong " \
- "(is \"%S\", should be \"%S\")\n", locname, wstr, exp);
\
- result = 1; \
- }
-
- /* Unix stuff. */
- STRTEST (ABDAY_1, "Sun");
- STRTEST (ABDAY_2, "Mon");
- STRTEST (ABDAY_3, "Tue");
- STRTEST (ABDAY_4, "Wed");
- STRTEST (ABDAY_5, "Thu");
- STRTEST (ABDAY_6, "Fri");
- STRTEST (ABDAY_7, "Sat");
- STRTEST (DAY_1, "Sunday");
- STRTEST (DAY_2, "Monday");
- STRTEST (DAY_3, "Tuesday");
- STRTEST (DAY_4, "Wednesday");
- STRTEST (DAY_5, "Thursday");
- STRTEST (DAY_6, "Friday");
- STRTEST (DAY_7, "Saturday");
- STRTEST (ABMON_1, "Jan");
- STRTEST (ABMON_2, "Feb");
- STRTEST (ABMON_3, "Mar");
- STRTEST (ABMON_4, "Apr");
- STRTEST (ABMON_5, "May");
- STRTEST (ABMON_6, "Jun");
- STRTEST (ABMON_7, "Jul");
- STRTEST (ABMON_8, "Aug");
- STRTEST (ABMON_9, "Sep");
- STRTEST (ABMON_10, "Oct");
- STRTEST (ABMON_11, "Nov");
- STRTEST (ABMON_12, "Dec");
- STRTEST (MON_1, "January");
- STRTEST (MON_2, "February");
- STRTEST (MON_3, "March");
- STRTEST (MON_4, "April");
- STRTEST (MON_5, "May");
- STRTEST (MON_6, "June");
- STRTEST (MON_7, "July");
- STRTEST (MON_8, "August");
- STRTEST (MON_9, "September");
- STRTEST (MON_10, "October");
- STRTEST (MON_11, "November");
- STRTEST (MON_12, "December");
- STRTEST (AM_STR, "AM");
- STRTEST (PM_STR, "PM");
- STRTEST (D_T_FMT, "%a %b %e %H:%M:%S %Y");
- STRTEST (D_FMT, "%m/%d/%y");
- STRTEST (T_FMT, "%H:%M:%S");
- STRTEST (T_FMT_AMPM, "%I:%M:%S %p");
- STRTEST (ERA, "");
- STRTEST (ERA_D_FMT, "");
- STRTEST (ERA_T_FMT, "");
- STRTEST (ERA_D_T_FMT, "");
- STRTEST (ALT_DIGITS, "");
-
- STRTEST (RADIXCHAR, ".");
- STRTEST (THOUSEP, "");
-
- STRTEST (YESEXPR, "^[yY]");
- STRTEST (NOEXPR, "^[nN]");
-
- /* Extensions. */
- WSTRTEST (_NL_WABDAY_1, L"Sun");
- WSTRTEST (_NL_WABDAY_2, L"Mon");
- WSTRTEST (_NL_WABDAY_3, L"Tue");
- WSTRTEST (_NL_WABDAY_4, L"Wed");
- WSTRTEST (_NL_WABDAY_5, L"Thu");
- WSTRTEST (_NL_WABDAY_6, L"Fri");
- WSTRTEST (_NL_WABDAY_7, L"Sat");
- WSTRTEST (_NL_WDAY_1, L"Sunday");
- WSTRTEST (_NL_WDAY_2, L"Monday");
- WSTRTEST (_NL_WDAY_3, L"Tuesday");
- WSTRTEST (_NL_WDAY_4, L"Wednesday");
- WSTRTEST (_NL_WDAY_5, L"Thursday");
- WSTRTEST (_NL_WDAY_6, L"Friday");
- WSTRTEST (_NL_WDAY_7, L"Saturday");
- WSTRTEST (_NL_WABMON_1, L"Jan");
- WSTRTEST (_NL_WABMON_2, L"Feb");
- WSTRTEST (_NL_WABMON_3, L"Mar");
- WSTRTEST (_NL_WABMON_4, L"Apr");
- WSTRTEST (_NL_WABMON_5, L"May");
- WSTRTEST (_NL_WABMON_6, L"Jun");
- WSTRTEST (_NL_WABMON_7, L"Jul");
- WSTRTEST (_NL_WABMON_8, L"Aug");
- WSTRTEST (_NL_WABMON_9, L"Sep");
- WSTRTEST (_NL_WABMON_10, L"Oct");
- WSTRTEST (_NL_WABMON_11, L"Nov");
- WSTRTEST (_NL_WABMON_12, L"Dec");
- WSTRTEST (_NL_WMON_1, L"January");
- WSTRTEST (_NL_WMON_2, L"February");
- WSTRTEST (_NL_WMON_3, L"March");
- WSTRTEST (_NL_WMON_4, L"April");
- WSTRTEST (_NL_WMON_5, L"May");
- WSTRTEST (_NL_WMON_6, L"June");
- WSTRTEST (_NL_WMON_7, L"July");
- WSTRTEST (_NL_WMON_8, L"August");
- WSTRTEST (_NL_WMON_9, L"September");
- WSTRTEST (_NL_WMON_10, L"October");
- WSTRTEST (_NL_WMON_11, L"November");
- WSTRTEST (_NL_WMON_12, L"December");
- WSTRTEST (_NL_WAM_STR, L"AM");
- WSTRTEST (_NL_WPM_STR, L"PM");
- WSTRTEST (_NL_WD_T_FMT, L"%a %b %e %H:%M:%S %Y");
- WSTRTEST (_NL_WD_FMT, L"%m/%d/%y");
- WSTRTEST (_NL_WT_FMT, L"%H:%M:%S");
- WSTRTEST (_NL_WT_FMT_AMPM, L"%I:%M:%S %p");
- WSTRTEST (_NL_WERA_D_FMT, L"");
- WSTRTEST (_NL_WERA_T_FMT, L"");
- WSTRTEST (_NL_WERA_D_T_FMT, L"");
- WSTRTEST (_NL_WALT_DIGITS, L"");
-
- STRTEST (_DATE_FMT, "%a %b %e %H:%M:%S %Z %Y");
- WSTRTEST (_NL_W_DATE_FMT, L"%a %b %e %H:%M:%S %Z %Y");
-
- STRTEST (INT_CURR_SYMBOL, "");
- STRTEST (CURRENCY_SYMBOL, "");
- STRTEST (MON_DECIMAL_POINT, "");
- STRTEST (MON_THOUSANDS_SEP, "");
- STRTEST (MON_GROUPING, "");
- STRTEST (POSITIVE_SIGN, "");
- STRTEST (NEGATIVE_SIGN, "");
- STRTEST (GROUPING, "");
-
- STRTEST (YESSTR, "");
- STRTEST (NOSTR, "");
-
- /* Character class tests. */
- for (c = 0; c < 128; ++c)
- {
-#define CLASSTEST(name) \
- if (is##name (c) != is##name##_l (c, loc)) \
- { \
- printf ("is%s('\\%o') != is%s_l('\\%o')\n", \
- #name, c, #name, c); \
- result = 1; \
- }
- CLASSTEST (alnum);
- CLASSTEST (alpha);
- CLASSTEST (blank);
- CLASSTEST (cntrl);
- CLASSTEST (digit);
- CLASSTEST (lower);
- CLASSTEST (graph);
- CLASSTEST (print);
- CLASSTEST (punct);
- CLASSTEST (space);
- CLASSTEST (upper);
- CLASSTEST (xdigit);
-
- /* Character mapping tests. */
-#define MAPTEST(name) \
- if (to##name (c) != to##name##_l (c, loc)) \
- { \
- printf ("to%s('\\%o') != to%s_l('\\%o'): '\\%o' vs
'\\%o'\n", \
- #name, c, #name, c, \
- to##name (c), to##name##_l (c, loc)); \
- result = 1; \
- }
- MAPTEST (lower);
- MAPTEST (upper);
- }
-
- /* Character class tests, this time for wide characters. Note that
- this only works because we know that the internal encoding is
- UCS4. */
- for (c = 0; c < 128; ++c)
- {
-#undef CLASSTEST
-#define CLASSTEST(name) \
- if (isw##name (c) != isw##name##_l (c, loc)) \
- { \
- printf ("isw%s('\\%o') != isw%s_l('\\%o')\n", \
- #name, c, #name, c); \
- result = 1; \
- }
- CLASSTEST (alnum);
- CLASSTEST (alpha);
- CLASSTEST (blank);
- CLASSTEST (cntrl);
- CLASSTEST (digit);
- CLASSTEST (lower);
- CLASSTEST (graph);
- CLASSTEST (print);
- CLASSTEST (punct);
- CLASSTEST (space);
- CLASSTEST (upper);
- CLASSTEST (xdigit);
-
- /* Character mapping tests. Note that
- this only works because we know that the internal encoding is
- UCS4. */
-#undef MAPTEST
-#define MAPTEST(name) \
- if (tow##name (c) != tow##name##_l (c, loc)) \
- { \
- printf ("tow%s('\\%o') != tow%s_l('\\%o'): '\\%o' vs
'\\%o'\n",\
- #name, c, #name, c, \
- tow##name (c), tow##name##_l (c, loc)); \
- result = 1; \
- }
- MAPTEST (lower);
- MAPTEST (upper);
- }
-
- freelocale (loc);
- }
-
- return result;
-}
-
-
-static int
-do_test (void)
-{
- int result;
-
- /* First use the name "C". */
- if (setlocale (LC_ALL, "C") == NULL)
- {
- puts ("cannot set C locale");
- result = 1;
- }
- else
- result = run_test ("C");
-
- /* Then the name "POSIX". */
- if (setlocale (LC_ALL, "POSIX") == NULL)
- {
- puts ("cannot set POSIX locale");
- result = 1;
- }
- else
- result |= run_test ("POSIX");
-
- return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/locale/tst-ctype-de_DE.ISO-8859-1.in
b/test/locale/tst-ctype-de_DE.ISO-8859-1.in
deleted file mode 100644
index f71d76c..0000000
--- a/test/locale/tst-ctype-de_DE.ISO-8859-1.in
+++ /dev/null
@@ -1,56 +0,0 @@
-lower ������������������������������������������������
- 000000000000000000000100000000000000000000000000
-lower ������������������������������������������������
- 000000000000000111111111111111111111111011111111
-upper ������������������������������������������������
- 000000000000000000000000000000001111111111111111
-upper ������������������������������������������������
- 111111101111111000000000000000000000000000000000
-alpha ������������������������������������������������
- 000000000010000000000100001000001111111111111111
-alpha ������������������������������������������������
- 111111101111111111111111111111111111111011111111
-digit ������������������������������������������������
- 000000000000000000000000000000000000000000000000
-digit ������������������������������������������������
- 000000000000000000000000000000000000000000000000
-xdigit ������������������������������������������������
- 000000000000000000000000000000000000000000000000
-xdigit ������������������������������������������������
- 000000000000000000000000000000000000000000000000
-space ������������������������������������������������
- 000000000000000000000000000000000000000000000000
-space ������������������������������������������������
- 000000000000000000000000000000000000000000000000
-print ������������������������������������������������
- 111111111111111111111111111111111111111111111111
-print ������������������������������������������������
- 111111111111111111111111111111111111111111111111
-graph ������������������������������������������������
- 111111111111111111111111111111111111111111111111
-graph ������������������������������������������������
- 111111111111111111111111111111111111111111111111
-blank ������������������������������������������������
- 000000000000000000000000000000000000000000000000
-blank ������������������������������������������������
- 000000000000000000000000000000000000000000000000
-cntrl ������������������������������������������������
- 000000000000000000000000000000000000000000000000
-cntrl ������������������������������������������������
- 000000000000000000000000000000000000000000000000
-punct ������������������������������������������������
- 111111111101111111111011110111110000000000000000
-punct ������������������������������������������������
- 000000010000000000000000000000000000000100000000
-alnum ������������������������������������������������
- 000000000010000000000100001000001111111111111111
-alnum ������������������������������������������������
- 111111101111111111111111111111111111111011111111
-tolower ������������������������������������������������
- ������������������������������������������������
-tolower ������������������������������������������������
- ������������������������������������������������
-toupper ������������������������������������������������
- ������������������������������������������������
-toupper ������������������������������������������������
- ������������������������������������������������
diff --git a/test/locale/tst-ctype.c b/test/locale/tst-ctype.c
deleted file mode 100644
index d617398..0000000
--- a/test/locale/tst-ctype.c
+++ /dev/null
@@ -1,446 +0,0 @@
-/* Copyright (C) 2000,02, 05 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)gnu.org>rg>, 2000.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <ctype.h>
-#include <locale.h>
-#include <langinfo.h>
-#include <stdio.h>
-#include <string.h>
-
-
-static const char lower[] = "abcdefghijklmnopqrstuvwxyz";
-static const char upper[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
-static const char digits[] = "0123456789";
-static const char cntrl[] = "\
-\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\
-\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f ";
-
-
-static struct classes
-{
- const char *name;
- int mask;
-} classes[] =
-{
-#define ENTRY(name) { #name, _IS##name }
- ENTRY (upper),
- ENTRY (lower),
- ENTRY (alpha),
- ENTRY (digit),
- ENTRY (xdigit),
- ENTRY (space),
- ENTRY (print),
- ENTRY (graph),
- ENTRY (blank),
- ENTRY (cntrl),
- ENTRY (punct),
- ENTRY (alnum)
-};
-#define nclasses (sizeof (classes) / sizeof (classes[0]))
-
-
-#define FAIL(str, args...) \
- { \
- printf (" " str "\n", ##args); \
- ++errors; \
- }
-
-
-int
-main (void)
-{
- const char *cp;
- const char *cp2;
- int errors = 0;
- char *inpline = NULL;
- size_t inplinelen = 0;
- char *resline = NULL;
- size_t reslinelen = 0;
- size_t n;
-
- setlocale (LC_ALL, "");
-
- printf ("Testing the ctype data of the `%s' locale\n",
- setlocale (LC_CTYPE, NULL));
-
-#if 0
- /* Just for debugging. */
-
- /* Contents of the class array. */
- printf ("\
-upper = %04x lower = %04x alpha = %04x digit = %04x xdigit = %04x\n\
-space = %04x print = %04x graph = %04x blank = %04x cntrl = %04x\n\
-punct = %04x alnum = %04x\n",
- _ISupper, _ISlower, _ISalpha, _ISdigit, _ISxdigit,
- _ISspace, _ISprint, _ISgraph, _ISblank, _IScntrl,
- _ISpunct, _ISalnum);
-
- while (n < 256)
- {
- if (n % 8 == 0)
- printf ("%02x: ", n);
- printf ("%04x%s", __ctype_b[n], (n + 1) % 8 == 0 ? "\n" :
" ");
- ++n;
- }
-#endif
-
- puts (" Test of ASCII character range\n special NUL byte handling");
- if (isupper ('\0'))
- FAIL ("isupper ('\\0') is true");
- if (islower ('\0'))
- FAIL ("islower ('\\0') is true");
- if (isalpha ('\0'))
- FAIL ("isalpha ('\\0') is true");
- if (isdigit ('\0'))
- FAIL ("isdigit ('\\0') is true");
- if (isxdigit ('\0'))
- FAIL ("isxdigit ('\\0') is true");
- if (isspace ('\0'))
- FAIL ("isspace ('\\0') is true");
- if (isprint ('\0'))
- FAIL ("isprint ('\\0') is true");
- if (isgraph ('\0'))
- FAIL ("isgraph ('\\0') is true");
- if (isblank ('\0'))
- FAIL ("isblank ('\\0') is true");
- if (! iscntrl ('\0'))
- FAIL ("iscntrl ('\\0') not true");
- if (ispunct ('\0'))
- FAIL ("ispunct ('\\0') is true");
- if (isalnum ('\0'))
- FAIL ("isalnum ('\\0') is true");
-
- puts (" islower()");
- for (cp = lower; *cp != '\0'; ++cp)
- if (! islower (*cp))
- FAIL ("islower ('%c') not true", *cp);
- for (cp = upper; *cp != '\0'; ++cp)
- if (islower (*cp))
- FAIL ("islower ('%c') is true", *cp);
- for (cp = digits; *cp != '\0'; ++cp)
- if (islower (*cp))
- FAIL ("islower ('%c') is true", *cp);
- for (cp = cntrl; *cp != '\0'; ++cp)
- if (islower (*cp))
- FAIL ("islower ('\\x%02x') is true", *cp);
-
- puts (" isupper()");
- for (cp = lower; *cp != '\0'; ++cp)
- if (isupper (*cp))
- FAIL ("isupper ('%c') is true", *cp);
- for (cp = upper; *cp != '\0'; ++cp)
- if (! isupper (*cp))
- FAIL ("isupper ('%c') not true", *cp);
- for (cp = digits; *cp != '\0'; ++cp)
- if (isupper (*cp))
- FAIL ("isupper ('%c') is true", *cp);
- for (cp = cntrl; *cp != '\0'; ++cp)
- if (isupper (*cp))
- FAIL ("isupper ('\\x%02x') is true", *cp);
-
- puts (" isalpha()");
- for (cp = lower; *cp != '\0'; ++cp)
- if (! isalpha (*cp))
- FAIL ("isalpha ('%c') not true", *cp);
- for (cp = upper; *cp != '\0'; ++cp)
- if (! isalpha (*cp))
- FAIL ("isalpha ('%c') not true", *cp);
- for (cp = digits; *cp != '\0'; ++cp)
- if (isalpha (*cp))
- FAIL ("isalpha ('%c') is true", *cp);
- for (cp = cntrl; *cp != '\0'; ++cp)
- if (isalpha (*cp))
- FAIL ("isalpha ('\\x%02x') is true", *cp);
-
- puts (" isdigit()");
- for (cp = lower; *cp != '\0'; ++cp)
- if (isdigit (*cp))
- FAIL ("isdigit ('%c') is true", *cp);
- for (cp = upper; *cp != '\0'; ++cp)
- if (isdigit (*cp))
- FAIL ("isdigit ('%c') is true", *cp);
- for (cp = digits; *cp != '\0'; ++cp)
- if (! isdigit (*cp))
- FAIL ("isdigit ('%c') not true", *cp);
- for (cp = cntrl; *cp != '\0'; ++cp)
- if (isdigit (*cp))
- FAIL ("isdigit ('\\x%02x') is true", *cp);
-
- puts (" isxdigit()");
- for (cp = lower; *cp != '\0'; ++cp)
- if ((! isxdigit (*cp) && cp - lower < 6)
- || (isxdigit (*cp) && cp - lower >= 6))
- FAIL ("isxdigit ('%c') %s true", *cp, cp - upper < 6 ?
"not" : "is");
- for (cp = upper; *cp != '\0'; ++cp)
- if ((! isxdigit (*cp) && cp - upper < 6)
- || (isxdigit (*cp) && cp - upper >= 6))
- FAIL ("isxdigit ('%c') %s true", *cp, cp - upper < 6 ?
"not" : "is");
- for (cp = digits; *cp != '\0'; ++cp)
- if (! isxdigit (*cp))
- FAIL ("isxdigit ('%c') not true", *cp);
- for (cp = cntrl; *cp != '\0'; ++cp)
- if (isxdigit (*cp))
- FAIL ("isxdigit ('\\x%02x') is true", *cp);
-
- puts (" isspace()");
- for (cp = lower; *cp != '\0'; ++cp)
- if (isspace (*cp))
- FAIL ("isspace ('%c') is true", *cp);
- for (cp = upper; *cp != '\0'; ++cp)
- if (isspace (*cp))
- FAIL ("isspace ('%c') is true", *cp);
- for (cp = digits; *cp != '\0'; ++cp)
- if (isspace (*cp))
- FAIL ("isspace ('%c') is true", *cp);
- for (cp = cntrl; *cp != '\0'; ++cp)
- if ((isspace (*cp) && ((*cp < '\x09' || *cp > '\x0d')
&& *cp != ' '))
- || (! isspace (*cp)
- && ((*cp >= '\x09' && *cp <= '\x0d') || *cp ==
' ')))
- FAIL ("isspace ('\\x%02x') %s true", *cp,
- (*cp < '\x09' || *cp > '\x0d') ? "is" :
"not");
-
- puts (" isprint()");
- for (cp = lower; *cp != '\0'; ++cp)
- if (! isprint (*cp))
- FAIL ("isprint ('%c') not true", *cp);
- for (cp = upper; *cp != '\0'; ++cp)
- if (! isprint (*cp))
- FAIL ("isprint ('%c') not true", *cp);
- for (cp = digits; *cp != '\0'; ++cp)
- if (! isprint (*cp))
- FAIL ("isprint ('%c') not true", *cp);
- for (cp = cntrl; *cp != '\0'; ++cp)
- if ((isprint (*cp) && *cp != ' ')
- || (! isprint (*cp) && *cp == ' '))
- FAIL ("isprint ('\\x%02x') is true", *cp);
-
- puts (" isgraph()");
- for (cp = lower; *cp != '\0'; ++cp)
- if (! isgraph (*cp))
- FAIL ("isgraph ('%c') not true", *cp);
- for (cp = upper; *cp != '\0'; ++cp)
- if (! isgraph (*cp))
- FAIL ("isgraph ('%c') not true", *cp);
- for (cp = digits; *cp != '\0'; ++cp)
- if (! isgraph (*cp))
- FAIL ("isgraph ('%c') not true", *cp);
- for (cp = cntrl; *cp != '\0'; ++cp)
- if (isgraph (*cp))
- FAIL ("isgraph ('\\x%02x') is true", *cp);
-
- puts (" isblank()");
- for (cp = lower; *cp != '\0'; ++cp)
- if (isblank (*cp))
- FAIL ("isblank ('%c') is true", *cp);
- for (cp = upper; *cp != '\0'; ++cp)
- if (isblank (*cp))
- FAIL ("isblank ('%c') is true", *cp);
- for (cp = digits; *cp != '\0'; ++cp)
- if (isblank (*cp))
- FAIL ("isblank ('%c') is true", *cp);
- for (cp = cntrl; *cp != '\0'; ++cp)
- if ((isblank (*cp) && *cp != '\x09' && *cp != ' ')
- || (! isblank (*cp) && (*cp == '\x09' || *cp == ' ')))
- FAIL ("isblank ('\\x%02x') %s true", *cp, *cp != '\x09' ?
"is" : "not");
-
- puts (" iscntrl()");
- for (cp = lower; *cp != '\0'; ++cp)
- if (iscntrl (*cp))
- FAIL ("iscntrl ('%c') is true", *cp);
- for (cp = upper; *cp != '\0'; ++cp)
- if (iscntrl (*cp))
- FAIL ("iscntrl ('%c') is true", *cp);
- for (cp = digits; *cp != '\0'; ++cp)
- if (iscntrl (*cp))
- FAIL ("iscntrl ('%c') is true", *cp);
- for (cp = cntrl; *cp != '\0'; ++cp)
- if ((iscntrl (*cp) && *cp == ' ')
- || (! iscntrl (*cp) && *cp != ' '))
- FAIL ("iscntrl ('\\x%02x') not true", *cp);
-
- puts (" ispunct()");
- for (cp = lower; *cp != '\0'; ++cp)
- if (ispunct (*cp))
- FAIL ("ispunct ('%c') is true", *cp);
- for (cp = upper; *cp != '\0'; ++cp)
- if (ispunct (*cp))
- FAIL ("ispunct ('%c') is true", *cp);
- for (cp = digits; *cp != '\0'; ++cp)
- if (ispunct (*cp))
- FAIL ("ispunct ('%c') is true", *cp);
- for (cp = cntrl; *cp != '\0'; ++cp)
- if (ispunct (*cp))
- FAIL ("ispunct ('\\x%02x') is true", *cp);
-
- puts (" isalnum()");
- for (cp = lower; *cp != '\0'; ++cp)
- if (! isalnum (*cp))
- FAIL ("isalnum ('%c') not true", *cp);
- for (cp = upper; *cp != '\0'; ++cp)
- if (! isalnum (*cp))
- FAIL ("isalnum ('%c') not true", *cp);
- for (cp = digits; *cp != '\0'; ++cp)
- if (! isalnum (*cp))
- FAIL ("isalnum ('%c') not true", *cp);
- for (cp = cntrl; *cp != '\0'; ++cp)
- if (isalnum (*cp))
- FAIL ("isalnum ('\\x%02x') is true", *cp);
-
-
- puts (" tolower()");
- for (cp = lower; *cp != '\0'; ++cp)
- if (tolower (*cp) != *cp)
- FAIL ("tolower ('%c') != '%c'", *cp, *cp);
- for (cp = upper, cp2 = lower; *cp != '\0'; ++cp, ++cp2)
- if (tolower (*cp) != *cp2)
- FAIL ("tolower ('%c') != '%c'", *cp, *cp2);
- for (cp = digits; *cp != '\0'; ++cp)
- if (tolower (*cp) != *cp)
- FAIL ("tolower ('%c') != '%c'", *cp, *cp);
- for (cp = cntrl; *cp != '\0'; ++cp)
- if (tolower (*cp) != *cp)
- FAIL ("tolower ('\\x%02x') != '\\x%02x'", *cp, *cp);
-
- puts (" toupper()");
- for (cp = lower, cp2 = upper; *cp != '\0'; ++cp, ++cp2)
- if (toupper (*cp) != *cp2)
- FAIL ("toupper ('%c') != '%c'", *cp, *cp2);
- for (cp = upper; *cp != '\0'; ++cp)
- if (toupper (*cp) != *cp)
- FAIL ("toupper ('%c') != '%c'", *cp, *cp);
- for (cp = digits; *cp != '\0'; ++cp)
- if (toupper (*cp) != *cp)
- FAIL ("toupper ('%c') != '%c'", *cp, *cp);
- for (cp = cntrl; *cp != '\0'; ++cp)
- if (toupper (*cp) != *cp)
- FAIL ("toupper ('\\x%02x') != '\\x%02x'", *cp, *cp);
-
-
- /* Now some locale specific tests. */
- while (! feof (stdin))
- {
- unsigned char *inp;
- unsigned char *resp;
-
- if (getline (&inpline, &inplinelen, stdin) <= 0
- || getline (&resline, &reslinelen, stdin) <= 0)
- break;
-
- inp = (unsigned char *) strchr (inpline, '\n');
- if (inp != NULL)
- *inp = '\0';
- resp = (unsigned char *) strchr (resline, '\n');
- if (resp != NULL)
- *resp = '\0';
-
- inp = (unsigned char *) inpline;
- while (*inp != ' ' && *inp != '\t' && *inp
&& *inp != '\n'
- && *inp != '\0')
- ++inp;
-
- if (*inp == '\0')
- {
- printf ("line \"%s\" is without content\n", inpline);
- continue;
- }
- *inp++ = '\0';
- while (*inp == ' ' || *inp == '\t')
- ++inp;
-
- /* Try all classes. */
- for (n = 0; n < nclasses; ++n)
- if (strcmp (inpline, classes[n].name) == 0)
- break;
-
- resp = (unsigned char *) resline;
- while (*resp == ' ' || *resp == '\t')
- ++resp;
-
- if (strlen ((char *) inp) != strlen ((char *) resp))
- {
- printf ("lines \"%.20s\"... and \"%.20s\" have not the same
length\n",
- inp, resp);
- continue;
- }
-
- if (n < nclasses)
- {
- if (strspn ((char *) resp, "01") != strlen ((char *) resp))
- {
- printf ("result string \"%s\" malformed\n", resp);
- continue;
- }
-
- printf (" Locale-specific tests for `%s'\n", inpline);
-
- while (*inp != '\0' && *inp != '\n')
- {
- if (((__ctype_b[(unsigned int) *inp] & classes[n].mask) != 0)
- != (*resp != '0'))
- {
- printf (" is%s('%c' = '\\x%02x') %s true\n", inpline,
- *inp, *inp, *resp == '1' ? "not" : "is");
- ++errors;
- }
- ++inp;
- ++resp;
- }
- }
- else if (strcmp (inpline, "tolower") == 0)
- {
- while (*inp != '\0')
- {
- if (tolower (*inp) != *resp)
- {
- printf (" tolower('%c' = '\\x%02x') != '%c'\n",
- *inp, *inp, *resp);
- ++errors;
- }
- ++inp;
- ++resp;
- }
- }
- else if (strcmp (inpline, "toupper") == 0)
- {
- while (*inp != '\0')
- {
- if (toupper (*inp) != *resp)
- {
- printf (" toupper('%c' = '\\x%02x') != '%c'\n",
- *inp, *inp, *resp);
- ++errors;
- }
- ++inp;
- ++resp;
- }
- }
- else
- printf ("\"%s\": unknown class or map\n", inpline);
- }
-
-
- if (errors != 0)
- {
- printf (" %d error%s for `%s' locale\n\n\n", errors,
- errors == 1 ? "" : "s", setlocale (LC_ALL, NULL));
- return 1;
- }
-
- printf (" No errors for `%s' locale\n\n\n", setlocale (LC_ALL, NULL));
- return 0;
-}
diff --git a/test/locale/tst-digits.c b/test/locale/tst-digits.c
deleted file mode 100644
index 16cf211..0000000
--- a/test/locale/tst-digits.c
+++ /dev/null
@@ -1,248 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)gnu.org>rg>, 2000.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <ctype.h>
-#include <langinfo.h>
-#include <locale.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <wchar.h>
-#include <wctype.h>
-#include <sys/types.h>
-
-
-#define ZERO "\xe2\x82\x80"
-#define ONE "\xe2\x82\x81"
-#define TWO "\xe2\x82\x82"
-#define THREE "\xe2\x82\x83"
-#define FOUR "\xe2\x82\x84"
-#define FIVE "\xe2\x82\x85"
-#define SIX "\xe2\x82\x86"
-#define SEVEN "\xe2\x82\x87"
-#define EIGHT "\xe2\x82\x88"
-#define NINE "\xe2\x82\x89"
-
-static struct printf_int_test
-{
- int n;
- const char *format;
- const char *expected;
-} printf_int_tests[] =
-{
- { 0, "%I'10d", " " ZERO },
- { 1, "%I'10d", " " ONE },
- { 2, "%I'10d", " " TWO },
- { 3, "%I'10d", " " THREE },
- { 4, "%I'10d", " " FOUR },
- { 5, "%I'10d", " " FIVE },
- { 6, "%I'10d", " " SIX },
- { 7, "%I'10d", " " SEVEN },
- { 8, "%I'10d", " " EIGHT },
- { 9, "%I'10d", " " NINE },
- { 11, "%I'10d", " " ONE ONE },
- { 12, "%I'10d", " " ONE TWO },
- { 123, "%I10d", " " ONE TWO THREE },
- { 123, "%I'10d", " " ONE TWO THREE },
- { 1234, "%I10d", ONE TWO THREE FOUR },
- { 1234, "%I'10d", ONE "," TWO THREE FOUR },
- { 12345, "%I'10d", ONE TWO "," THREE FOUR FIVE },
- { 123456, "%I'10d", ONE TWO THREE "," FOUR FIVE SIX },
- { 1234567, "%I'10d", ONE "," TWO THREE FOUR "," FIVE
SIX SEVEN }
-};
-#define nprintf_int_tests \
- (sizeof (printf_int_tests) / sizeof (printf_int_tests[0]))
-
-#define WZERO L"\x2080"
-#define WONE L"\x2081"
-#define WTWO L"\x2082"
-#define WTHREE L"\x2083"
-#define WFOUR L"\x2084"
-#define WFIVE L"\x2085"
-#define WSIX L"\x2086"
-#define WSEVEN L"\x2087"
-#define WEIGHT L"\x2088"
-#define WNINE L"\x2089"
-
-static struct wprintf_int_test
-{
- int n;
- const wchar_t *format;
- const wchar_t *expected;
-} wprintf_int_tests[] =
-{
- { 0, L"%I'10d", L" " WZERO },
- { 1, L"%I'10d", L" " WONE },
- { 2, L"%I'10d", L" " WTWO },
- { 3, L"%I'10d", L" " WTHREE },
- { 4, L"%I'10d", L" " WFOUR },
- { 5, L"%I'10d", L" " WFIVE },
- { 6, L"%I'10d", L" " WSIX },
- { 7, L"%I'10d", L" " WSEVEN },
- { 8, L"%I'10d", L" " WEIGHT },
- { 9, L"%I'10d", L" " WNINE },
- { 11, L"%I'10d", L" " WONE WONE },
- { 12, L"%I'10d", L" " WONE WTWO },
- { 123, L"%I10d", L" " WONE WTWO WTHREE },
- { 123, L"%I'10d", L" " WONE WTWO WTHREE },
- { 1234, L"%I10d", L" " WONE WTWO WTHREE WFOUR },
- { 1234, L"%I'10d", L" " WONE L"," WTWO WTHREE
WFOUR },
- { 12345, L"%I'10d", L" " WONE WTWO L"," WTHREE
WFOUR WFIVE },
- { 123456, L"%I'10d", L" " WONE WTWO WTHREE L","
WFOUR WFIVE WSIX },
- { 1234567, L"%I'10d", L" " WONE L"," WTWO WTHREE
WFOUR L"," WFIVE WSIX WSEVEN }
-};
-#define nwprintf_int_tests \
- (sizeof (wprintf_int_tests) / sizeof (wprintf_int_tests[0]))
-
-
-int
-main (void)
-{
- int cnt;
- int failures;
- int status;
-
- if (setlocale (LC_ALL, "test7") == NULL)
- {
- puts ("cannot set locale `test7'");
- exit (1);
- }
- printf ("CODESET = \"%s\"\n", nl_langinfo (CODESET));
-
- /* First: printf tests. */
- failures = 0;
- for (cnt = 0; cnt < (int) nprintf_int_tests; ++cnt)
- {
- char buf[100];
- ssize_t n;
-
- n = snprintf (buf, sizeof buf, printf_int_tests[cnt].format,
- printf_int_tests[cnt].n);
-
- printf ("%3d: got \"%s\", expected \"%s\"",
- cnt, buf, printf_int_tests[cnt].expected);
-
- if (n != (ssize_t) strlen (printf_int_tests[cnt].expected)
- || strcmp (buf, printf_int_tests[cnt].expected) != 0)
- {
- puts (" -> FAILED");
- ++failures;
- }
- else
- puts (" -> OK");
- }
-
- printf ("%d failures in printf tests\n", failures);
- status = failures != 0;
-
- /* wprintf tests. */
- failures = 0;
- for (cnt = 0; cnt < (int) nwprintf_int_tests; ++cnt)
- {
- wchar_t buf[100];
- ssize_t n;
-
- n = swprintf (buf, sizeof buf / sizeof (buf[0]),
- wprintf_int_tests[cnt].format,
- wprintf_int_tests[cnt].n);
-
- printf ("%3d: got \"%ls\", expected \"%ls\"",
- cnt, buf, wprintf_int_tests[cnt].expected);
-
- if (n != (ssize_t) wcslen (wprintf_int_tests[cnt].expected)
- || wcscmp (buf, wprintf_int_tests[cnt].expected) != 0)
- {
- puts (" -> FAILED");
- ++failures;
- }
- else
- puts (" -> OK");
- }
-
- printf ("%d failures in wprintf tests\n", failures);
- status = failures != 0;
-
- /* ctype tests. This makes sure that the multibyte chracter digit
- representations are not handle in this table. */
- failures = 0;
- for (cnt = 0; cnt < 256; ++cnt)
- if (cnt >= '0' && cnt <= '9')
- {
- if (! isdigit (cnt))
- {
- printf ("isdigit ('%c') == 0\n", cnt);
- ++failures;
- }
- }
- else
- {
- if (isdigit (cnt))
- {
- printf ("isdigit (%d) != 0\n", cnt);
- ++failures;
- }
- }
-
- printf ("%d failures in ctype tests\n", failures);
- status = failures != 0;
-
- /* wctype tests. This makes sure the second set of digits is also
- recorded. */
- failures = 0;
- for (cnt = 0; cnt < 256; ++cnt)
- if (cnt >= '0' && cnt <= '9')
- {
- if (! iswdigit (cnt))
- {
- printf ("iswdigit (L'%c') == 0\n", cnt);
- ++failures;
- }
- }
- else
- {
- if (iswdigit (cnt))
- {
- printf ("iswdigit (%d) != 0\n", cnt);
- ++failures;
- }
- }
-
- for (cnt = 0x2070; cnt < 0x2090; ++cnt)
- if (cnt >= 0x2080 && cnt <= 0x2089)
- {
- if (! iswdigit (cnt))
- {
- printf ("iswdigit (U%04X) == 0\n", cnt);
- ++failures;
- }
- }
- else
- {
- if (iswdigit (cnt))
- {
- printf ("iswdigit (U%04X) != 0\n", cnt);
- ++failures;
- }
- }
-
- printf ("%d failures in wctype tests\n", failures);
- status = failures != 0;
-
- return status;
-}
diff --git a/test/locale/tst-fmon.c b/test/locale/tst-fmon.c
deleted file mode 100644
index bcdd2d0..0000000
--- a/test/locale/tst-fmon.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Testing the implementation of strfmon(3).
- Copyright (C) 1996, 1997, 2000, 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jochen Hein <jochen.hein(a)delphi.central.de>de>, 1997.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stdio.h>
-#include <locale.h>
-#include <monetary.h>
-#include <string.h>
-#include <stdlib.h>
-
-/*
- test-strfmon gets called with three parameters:
- - the locale
- - the format-string to be used
- - the actual number to be formatted
- - the expected string
- If the test passes, test-strfmon terminates with returncode 0,
- otherwise with 1
-*/
-#define EXIT_SUCCESS 0
-#define EXIT_FAILURE 1
-#define EXIT_SETLOCALE 2
-#define EXIT_STRFMON 3
-
-int
-main (int argc, char *argv[])
-{
- char *s = malloc (201);
-
- if (setlocale (LC_MONETARY, argv[1]) == NULL)
- {
- fprintf (stderr, "setlocale(LC_MONETARY, \"%s\"): %m\n",
argv[1]);
- exit (EXIT_SETLOCALE);
- }
-
- if (strfmon (s, 200, argv[2], (double) atof (argv[3])) == -1)
- {
- perror ("strfmon");
- exit (EXIT_STRFMON);
- }
-
- if (strcmp (s, argv[4]) != 0)
- {
- printf ("\
-Locale: \"%s\" Format: \"%s\" Value: \"%s\" Received:
\"%s\" Expected: \"%s\" => %s\n",
- argv[1], argv[2], argv[3], s, argv[4],
- strcmp (s, argv[4]) != 0 ? "false" : "correct");
- exit (EXIT_FAILURE);
- }
-
- return EXIT_SUCCESS;
-}
diff --git a/test/locale/tst-langinfo.c b/test/locale/tst-langinfo.c
deleted file mode 100644
index aca8239..0000000
--- a/test/locale/tst-langinfo.c
+++ /dev/null
@@ -1,283 +0,0 @@
-/* Test program for nl_langinfo() function.
- Copyright (C) 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)cygnus.com>om>.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <langinfo.h>
-#include <locale.h>
-#include <stdio.h>
-#include <string.h>
-
-
-struct map
-{
- const char *str;
- int val;
-} map[] =
-{
-#define VAL(name) { #name, name }
- VAL (ABDAY_1),
- VAL (ABDAY_2),
- VAL (ABDAY_3),
- VAL (ABDAY_4),
- VAL (ABDAY_5),
- VAL (ABDAY_6),
- VAL (ABDAY_7),
- VAL (ABMON_1),
- VAL (ABMON_10),
- VAL (ABMON_11),
- VAL (ABMON_12),
- VAL (ABMON_2),
- VAL (ABMON_3),
- VAL (ABMON_4),
- VAL (ABMON_5),
- VAL (ABMON_6),
- VAL (ABMON_7),
- VAL (ABMON_8),
- VAL (ABMON_9),
- VAL (ALT_DIGITS),
- VAL (AM_STR),
- VAL (CRNCYSTR),
- VAL (CURRENCY_SYMBOL),
- VAL (DAY_1),
- VAL (DAY_2),
- VAL (DAY_3),
- VAL (DAY_4),
- VAL (DAY_5),
- VAL (DAY_6),
- VAL (DAY_7),
- VAL (DECIMAL_POINT),
- VAL (D_FMT),
- VAL (D_T_FMT),
- VAL (ERA),
- VAL (ERA_D_FMT),
- VAL (ERA_D_T_FMT),
- VAL (ERA_T_FMT),
- VAL (ERA_YEAR),
- VAL (FRAC_DIGITS),
- VAL (GROUPING),
- VAL (INT_CURR_SYMBOL),
- VAL (INT_FRAC_DIGITS),
- VAL (MON_1),
- VAL (MON_10),
- VAL (MON_11),
- VAL (MON_12),
- VAL (MON_2),
- VAL (MON_3),
- VAL (MON_4),
- VAL (MON_5),
- VAL (MON_6),
- VAL (MON_7),
- VAL (MON_8),
- VAL (MON_9),
- VAL (MON_DECIMAL_POINT),
- VAL (MON_GROUPING),
- VAL (MON_THOUSANDS_SEP),
- VAL (NEGATIVE_SIGN),
- VAL (NOEXPR),
- VAL (NOSTR),
- VAL (N_CS_PRECEDES),
- VAL (N_SEP_BY_SPACE),
- VAL (N_SIGN_POSN),
- VAL (PM_STR),
- VAL (POSITIVE_SIGN),
- VAL (P_CS_PRECEDES),
- VAL (P_SEP_BY_SPACE),
- VAL (P_SIGN_POSN),
- VAL (RADIXCHAR),
- VAL (THOUSANDS_SEP),
- VAL (THOUSEP),
- VAL (T_FMT),
- VAL (T_FMT_AMPM),
- VAL (YESEXPR),
- VAL (YESSTR)
-};
-
-
-static int
-map_paramstr (const char *str)
-{
- int low = 0;
- int high = sizeof (map) / sizeof (map[0]);
-
- while (low < high)
- {
- int med = (low + high) / 2;
- int cmpres;
-
- cmpres = strcmp (str, map[med].str);
- if (cmpres == 0)
- return map[med].val;
- else if (cmpres > 0)
- low = med + 1;
- else
- high = med;
- }
-
- return -1;
-}
-
-
-#ifdef DEBUG
-# define REASON(str) printf ("\"%s\" ignored: %s\n", buf, str)
-#else
-# define REASON(str)
-#endif
-
-int
-main (void)
-{
- int result = 0;
-
- while (! feof (stdin))
- {
- char buf[1000];
- char *rp;
- char *locale;
- char *paramstr;
- char *expected;
- char *actual;
- int param;
-
- if (fgets (buf, sizeof (buf), stdin) == NULL)
- break;
-
- /* Split the fields. There are three is them:
- 1. locale
- 2. langinfo() parameter
- 3. expected result; this can be a string with white space etc.
- */
- rp = buf;
- while (*rp == ' ' || *rp == '\t')
- ++rp;
-
- if (*rp == '#')
- {
- /* It's a comment line. Ignore it. */
- REASON ("comment");
- continue;
- }
- locale = rp;
-
- while (*rp != '\0' && *rp != ' ' && *rp !=
'\t' && *rp != '\n')
- ++rp;
- if (*rp == '\0' || *rp == '\n')
- {
- /* Incomplete line. */
- REASON ("incomplete line");
- continue;
- }
- *rp++ = '\0';
-
- while (*rp == ' ' || *rp == '\t')
- ++rp;
- paramstr = rp;
-
- while (*rp != '\0' && *rp != ' ' && *rp !=
'\t' && *rp != '\n')
- ++rp;
- if (*rp == '\0' || *rp == '\n')
- {
- /* Incomplete line. */
- REASON ("incomplete line");
- continue;
- }
- *rp++ = '\0';
-
- while (*rp == ' ' || *rp == '\t')
- ++rp;
-
- if (*rp == '"')
- {
- char *wp;
-
- expected = wp = ++rp;
- while (*rp != '"' && *rp != '\n' && *rp !=
'\0')
- {
- if (*rp == '\\')
- {
- ++rp;
- if (*rp == '\0')
- break;
- if (*rp >= '0' && *rp <= '9')
- {
- int val = *rp - '0';
- if (rp[1] >= '0' && rp[1] <= '9')
- {
- ++rp;
- val *= 10;
- val += *rp - '0';
- if (rp[1] >= '0' && rp[1] <= '9')
- {
- ++rp;
- val *= 10;
- val += *rp - '0';
- }
- }
- *rp = val;
- }
- }
- *wp++ = *rp++;
- }
-
- if (*rp != '"')
- {
- REASON ("missing '\"'");
- continue;
- }
-
- *wp = '\0';
- }
- else
- {
- expected = rp;
- while (*rp != '\0' && *rp != '\n')
- ++rp;
- *rp = '\0';
- }
-
- param = map_paramstr (paramstr);
- if (param == -1)
- {
- /* Invalid parameter. */
- REASON ("invalid parameter");
- continue;
- }
-
- /* Set the locale and check whether it worked. */
- printf ("LC_ALL=%s nl_langinfo(%s)", locale, paramstr);
- setlocale (LC_ALL, locale);
- if (strcmp (locale, setlocale (LC_ALL, NULL)) != 0)
- {
- puts (": failed to set locale");
- result = 1;
- continue;
- }
-
- actual = nl_langinfo (param);
- printf (" = \"%s\", ", actual);
-
- if (strcmp (actual, expected) == 0)
- puts ("OK");
- else
- {
- printf ("FAILED (expected: %s)\n", expected);
- result = 1;
- }
- }
-
- return result;
-}
diff --git a/test/locale/tst-langinfo.input b/test/locale/tst-langinfo.input
deleted file mode 100644
index 8f1861b..0000000
--- a/test/locale/tst-langinfo.input
+++ /dev/null
@@ -1,302 +0,0 @@
-#! /bin/sh
-# Input file for tst-langinfo.
-# Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-#
-
-# The GNU C Library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-
-# The GNU C Library 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
-# Lesser General Public License for more details.
-
-# You should have received a copy of the GNU Lesser General Public
-# License along with the GNU C Library; see the file COPYING.LIB. If
-# not, see <http://www.gnu.org/licenses/>.
-
-
-# Run the test program.
-# Only decimal numerical escape sequences allowed in strings.
-C ABDAY_1 Sun
-C ABDAY_2 Mon
-C ABDAY_3 Tue
-C ABDAY_4 Wed
-C ABDAY_5 Thu
-C ABDAY_6 Fri
-C ABDAY_7 Sat
-C DAY_1 Sunday
-C DAY_2 Monday
-C DAY_3 Tuesday
-C DAY_4 Wednesday
-C DAY_5 Thursday
-C DAY_6 Friday
-C DAY_7 Saturday
-C ABMON_1 Jan
-C ABMON_2 Feb
-C ABMON_3 Mar
-C ABMON_4 Apr
-C ABMON_5 May
-C ABMON_6 Jun
-C ABMON_7 Jul
-C ABMON_8 Aug
-C ABMON_9 Sep
-C ABMON_10 Oct
-C ABMON_11 Nov
-C ABMON_12 Dec
-C MON_1 January
-C MON_2 February
-C MON_3 March
-C MON_4 April
-C MON_5 May
-C MON_6 June
-C MON_7 July
-C MON_8 August
-C MON_9 September
-C MON_10 October
-C MON_11 November
-C MON_12 December
-C AM_STR AM
-C PM_STR PM
-C D_T_FMT "%a %b %e %H:%M:%S %Y"
-C D_FMT "%m/%d/%y"
-C T_FMT "%H:%M:%S"
-C T_FMT_AMPM "%I:%M:%S %p"
-C ABDAY_1 Sun
-C ABDAY_2 Mon
-C ABDAY_3 Tue
-C ABDAY_4 Wed
-C ABDAY_5 Thu
-C ABDAY_6 Fri
-C ABDAY_7 Sat
-C DAY_1 Sunday
-C DAY_2 Monday
-C DAY_3 Tuesday
-C DAY_4 Wednesday
-C DAY_5 Thursday
-C DAY_6 Friday
-C DAY_7 Saturday
-C RADIXCHAR .
-C THOUSEP ""
-C YESEXPR ^[yY]
-C NOEXPR ^[nN]
-en_US.ISO-8859-1 ABMON_1 Jan
-en_US.ISO-8859-1 ABMON_2 Feb
-en_US.ISO-8859-1 ABMON_3 Mar
-en_US.ISO-8859-1 ABMON_4 Apr
-en_US.ISO-8859-1 ABMON_5 May
-en_US.ISO-8859-1 ABMON_6 Jun
-en_US.ISO-8859-1 ABMON_7 Jul
-en_US.ISO-8859-1 ABMON_8 Aug
-en_US.ISO-8859-1 ABMON_9 Sep
-en_US.ISO-8859-1 ABMON_10 Oct
-en_US.ISO-8859-1 ABMON_11 Nov
-en_US.ISO-8859-1 ABMON_12 Dec
-en_US.ISO-8859-1 MON_1 January
-en_US.ISO-8859-1 MON_2 February
-en_US.ISO-8859-1 MON_3 March
-en_US.ISO-8859-1 MON_4 April
-en_US.ISO-8859-1 MON_5 May
-en_US.ISO-8859-1 MON_6 June
-en_US.ISO-8859-1 MON_7 July
-en_US.ISO-8859-1 MON_8 August
-en_US.ISO-8859-1 MON_9 September
-en_US.ISO-8859-1 MON_10 October
-en_US.ISO-8859-1 MON_11 November
-en_US.ISO-8859-1 MON_12 December
-en_US.ISO-8859-1 AM_STR AM
-en_US.ISO-8859-1 PM_STR PM
-en_US.ISO-8859-1 D_T_FMT "%a %d %b %Y %r %Z"
-en_US.ISO-8859-1 D_FMT "%m/%d/%Y"
-en_US.ISO-8859-1 T_FMT "%r"
-en_US.ISO-8859-1 T_FMT_AMPM "%I:%M:%S %p"
-en_US.ISO-8859-1 RADIXCHAR .
-en_US.ISO-8859-1 THOUSEP ,
-en_US.ISO-8859-1 YESEXPR ^[yY].*
-en_US.ISO-8859-1 NOEXPR ^[nN].*
-de_DE.ISO-8859-1 ABDAY_1 So
-de_DE.ISO-8859-1 ABDAY_2 Mo
-de_DE.ISO-8859-1 ABDAY_3 Di
-de_DE.ISO-8859-1 ABDAY_4 Mi
-de_DE.ISO-8859-1 ABDAY_5 Do
-de_DE.ISO-8859-1 ABDAY_6 Fr
-de_DE.ISO-8859-1 ABDAY_7 Sa
-de_DE.ISO-8859-1 DAY_1 Sonntag
-de_DE.ISO-8859-1 DAY_2 Montag
-de_DE.ISO-8859-1 DAY_3 Dienstag
-de_DE.ISO-8859-1 DAY_4 Mittwoch
-de_DE.ISO-8859-1 DAY_5 Donnerstag
-de_DE.ISO-8859-1 DAY_6 Freitag
-de_DE.ISO-8859-1 DAY_7 Samstag
-de_DE.ISO-8859-1 ABMON_1 Jan
-de_DE.ISO-8859-1 ABMON_2 Feb
-de_DE.ISO-8859-1 ABMON_3 M�r
-de_DE.ISO-8859-1 ABMON_4 Apr
-de_DE.ISO-8859-1 ABMON_5 Mai
-de_DE.ISO-8859-1 ABMON_6 Jun
-de_DE.ISO-8859-1 ABMON_7 Jul
-de_DE.ISO-8859-1 ABMON_8 Aug
-de_DE.ISO-8859-1 ABMON_9 Sep
-de_DE.ISO-8859-1 ABMON_10 Okt
-de_DE.ISO-8859-1 ABMON_11 Nov
-de_DE.ISO-8859-1 ABMON_12 Dez
-de_DE.ISO-8859-1 MON_1 Januar
-de_DE.ISO-8859-1 MON_2 Februar
-de_DE.ISO-8859-1 MON_3 M�rz
-de_DE.ISO-8859-1 MON_4 April
-de_DE.ISO-8859-1 MON_5 Mai
-de_DE.ISO-8859-1 MON_6 Juni
-de_DE.ISO-8859-1 MON_7 Juli
-de_DE.ISO-8859-1 MON_8 August
-de_DE.ISO-8859-1 MON_9 September
-de_DE.ISO-8859-1 MON_10 Oktober
-de_DE.ISO-8859-1 MON_11 November
-de_DE.ISO-8859-1 MON_12 Dezember
-de_DE.ISO-8859-1 D_T_FMT "%a %d %b %Y %T %Z"
-de_DE.ISO-8859-1 D_FMT "%d.%m.%Y"
-de_DE.ISO-8859-1 T_FMT "%T"
-de_DE.ISO-8859-1 RADIXCHAR ,
-de_DE.ISO-8859-1 THOUSEP .
-de_DE.ISO-8859-1 YESEXPR ^[jJyY].*
-de_DE.ISO-8859-1 NOEXPR ^[nN].*
-de_DE.UTF-8 ABDAY_1 So
-de_DE.UTF-8 ABDAY_2 Mo
-de_DE.UTF-8 ABDAY_3 Di
-de_DE.UTF-8 ABDAY_4 Mi
-de_DE.UTF-8 ABDAY_5 Do
-de_DE.UTF-8 ABDAY_6 Fr
-de_DE.UTF-8 ABDAY_7 Sa
-de_DE.UTF-8 DAY_1 Sonntag
-de_DE.UTF-8 DAY_2 Montag
-de_DE.UTF-8 DAY_3 Dienstag
-de_DE.UTF-8 DAY_4 Mittwoch
-de_DE.UTF-8 DAY_5 Donnerstag
-de_DE.UTF-8 DAY_6 Freitag
-de_DE.UTF-8 DAY_7 Samstag
-de_DE.UTF-8 ABMON_1 Jan
-de_DE.UTF-8 ABMON_2 Feb
-de_DE.UTF-8 ABMON_3 Mär
-de_DE.UTF-8 ABMON_4 Apr
-de_DE.UTF-8 ABMON_5 Mai
-de_DE.UTF-8 ABMON_6 Jun
-de_DE.UTF-8 ABMON_7 Jul
-de_DE.UTF-8 ABMON_8 Aug
-de_DE.UTF-8 ABMON_9 Sep
-de_DE.UTF-8 ABMON_10 Okt
-de_DE.UTF-8 ABMON_11 Nov
-de_DE.UTF-8 ABMON_12 Dez
-de_DE.UTF-8 MON_1 Januar
-de_DE.UTF-8 MON_2 Februar
-de_DE.UTF-8 MON_3 März
-de_DE.UTF-8 MON_4 April
-de_DE.UTF-8 MON_5 Mai
-de_DE.UTF-8 MON_6 Juni
-de_DE.UTF-8 MON_7 Juli
-de_DE.UTF-8 MON_8 August
-de_DE.UTF-8 MON_9 September
-de_DE.UTF-8 MON_10 Oktober
-de_DE.UTF-8 MON_11 November
-de_DE.UTF-8 MON_12 Dezember
-de_DE.UTF-8 D_T_FMT "%a %d %b %Y %T %Z"
-de_DE.UTF-8 D_FMT "%d.%m.%Y"
-de_DE.UTF-8 T_FMT "%T"
-de_DE.UTF-8 RADIXCHAR ,
-de_DE.UTF-8 THOUSEP .
-de_DE.UTF-8 YESEXPR ^[jJyY].*
-de_DE.UTF-8 NOEXPR ^[nN].*
-fr_FR.ISO-8859-1 ABDAY_1 dim
-fr_FR.ISO-8859-1 ABDAY_2 lun
-fr_FR.ISO-8859-1 ABDAY_3 mar
-fr_FR.ISO-8859-1 ABDAY_4 mer
-fr_FR.ISO-8859-1 ABDAY_5 jeu
-fr_FR.ISO-8859-1 ABDAY_6 ven
-fr_FR.ISO-8859-1 ABDAY_7 sam
-fr_FR.ISO-8859-1 DAY_1 dimanche
-fr_FR.ISO-8859-1 DAY_2 lundi
-fr_FR.ISO-8859-1 DAY_3 mardi
-fr_FR.ISO-8859-1 DAY_4 mercredi
-fr_FR.ISO-8859-1 DAY_5 jeudi
-fr_FR.ISO-8859-1 DAY_6 vendredi
-fr_FR.ISO-8859-1 DAY_7 samedi
-fr_FR.ISO-8859-1 ABMON_1 jan
-fr_FR.ISO-8859-1 ABMON_2 f�v
-fr_FR.ISO-8859-1 ABMON_3 mar
-fr_FR.ISO-8859-1 ABMON_4 avr
-fr_FR.ISO-8859-1 ABMON_5 mai
-fr_FR.ISO-8859-1 ABMON_6 jun
-fr_FR.ISO-8859-1 ABMON_7 jui
-fr_FR.ISO-8859-1 ABMON_8 ao�
-fr_FR.ISO-8859-1 ABMON_9 sep
-fr_FR.ISO-8859-1 ABMON_10 oct
-fr_FR.ISO-8859-1 ABMON_11 nov
-fr_FR.ISO-8859-1 ABMON_12 d�c
-fr_FR.ISO-8859-1 MON_1 janvier
-fr_FR.ISO-8859-1 MON_2 f�vrier
-fr_FR.ISO-8859-1 MON_3 mars
-fr_FR.ISO-8859-1 MON_4 avril
-fr_FR.ISO-8859-1 MON_5 mai
-fr_FR.ISO-8859-1 MON_6 juin
-fr_FR.ISO-8859-1 MON_7 juillet
-fr_FR.ISO-8859-1 MON_8 ao�t
-fr_FR.ISO-8859-1 MON_9 septembre
-fr_FR.ISO-8859-1 MON_10 octobre
-fr_FR.ISO-8859-1 MON_11 novembre
-fr_FR.ISO-8859-1 MON_12 d�cembre
-fr_FR.ISO-8859-1 D_T_FMT "%a %d %b %Y %T %Z"
-fr_FR.ISO-8859-1 D_FMT "%d.%m.%Y"
-fr_FR.ISO-8859-1 T_FMT "%T"
-fr_FR.ISO-8859-1 RADIXCHAR ,
-fr_FR.ISO-8859-1 THOUSEP ""
-fr_FR.ISO-8859-1 YESEXPR ^[oOyY].*
-fr_FR.ISO-8859-1 NOEXPR ^[nN].*
-ja_JP.EUC-JP ABDAY_1 ��
-ja_JP.EUC-JP ABDAY_2 ��
-ja_JP.EUC-JP ABDAY_3 ��
-ja_JP.EUC-JP ABDAY_4 ��
-ja_JP.EUC-JP ABDAY_5 ��
-ja_JP.EUC-JP ABDAY_6 ��
-ja_JP.EUC-JP ABDAY_7 ��
-ja_JP.EUC-JP DAY_1 ������
-ja_JP.EUC-JP DAY_2 ������
-ja_JP.EUC-JP DAY_3 ������
-ja_JP.EUC-JP DAY_4 ������
-ja_JP.EUC-JP DAY_5 ������
-ja_JP.EUC-JP DAY_6 ������
-ja_JP.EUC-JP DAY_7 ������
-ja_JP.EUC-JP ABMON_1 " 1��"
-ja_JP.EUC-JP ABMON_2 " 2��"
-ja_JP.EUC-JP ABMON_3 " 3��"
-ja_JP.EUC-JP ABMON_4 " 4��"
-ja_JP.EUC-JP ABMON_5 " 5��"
-ja_JP.EUC-JP ABMON_6 " 6��"
-ja_JP.EUC-JP ABMON_7 " 7��"
-ja_JP.EUC-JP ABMON_8 " 8��"
-ja_JP.EUC-JP ABMON_9 " 9��"
-ja_JP.EUC-JP ABMON_10 "10��"
-ja_JP.EUC-JP ABMON_11 "11��"
-ja_JP.EUC-JP ABMON_12 "12��"
-ja_JP.EUC-JP MON_1 "1��"
-ja_JP.EUC-JP MON_2 "2��"
-ja_JP.EUC-JP MON_3 "3��"
-ja_JP.EUC-JP MON_4 "4��"
-ja_JP.EUC-JP MON_5 "5��"
-ja_JP.EUC-JP MON_6 "6��"
-ja_JP.EUC-JP MON_7 "7��"
-ja_JP.EUC-JP MON_8 "8��"
-ja_JP.EUC-JP MON_9 "9��"
-ja_JP.EUC-JP MON_10 "10��"
-ja_JP.EUC-JP MON_11 "11��"
-ja_JP.EUC-JP MON_12 "12��"
-ja_JP.EUC-JP T_FMT_AMPM "%p%I��%Mʬ%S��"
-ja_JP.EUC-JP ERA_D_FMT "%EY%m��%d��"
-ja_JP.EUC-JP ERA_D_T_FMT "%EY%m��%d�� %H��%Mʬ%S��"
-ja_JP.EUC-JP RADIXCHAR .
-ja_JP.EUC-JP THOUSEP ,
-ja_JP.EUC-JP YESEXPR ^([yY����]|�Ϥ�|�ϥ�)
-ja_JP.EUC-JP NOEXPR ^([nN���]|������|������)
-# Is CRNCYSTR supposed to be the national or international sign?
-# ja_JP.EUC-JP CRNCYSTR JPY
-ja_JP.EUC-JP CODESET EUC-JP
diff --git a/test/locale/tst-leaks.c b/test/locale/tst-leaks.c
deleted file mode 100644
index 7a4b557..0000000
--- a/test/locale/tst-leaks.c
+++ /dev/null
@@ -1,18 +0,0 @@
-#include <locale.h>
-#include <mcheck.h>
-
-int
-main (void)
-{
- int cnt;
-
- mtrace ();
-
- for (cnt = 0; cnt < 100; ++cnt)
- {
- setlocale (LC_ALL, "de_DE.ISO-8859-1");
- setlocale (LC_ALL, "de_DE.UTF-8");
- }
-
- return 0;
-}
diff --git a/test/locale/tst-mbswcs1.c b/test/locale/tst-mbswcs1.c
deleted file mode 100644
index 6681ccc..0000000
--- a/test/locale/tst-mbswcs1.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Test restarting behaviour of mbrtowc.
- Copyright (C) 2000, 2005 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Bruno Haible <haible(a)ilog.fr>fr>.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stdio.h>
-#include <string.h>
-#include <wchar.h>
-#include <locale.h>
-
-#define show(expr, nexp, wcexp) \
- n = expr; \
- printf (#expr " -> %Zd", n); \
- printf (", wc = %lu", (unsigned long int) wc); \
- if (n != (size_t) nexp || wc != wcexp) \
- { \
- printf (", expected %Zd and %lu", nexp, (unsigned long int) wcexp); \
- result = 1; \
- } \
- putc ('\n', stdout)
-
-int
-main (void)
-{
- const unsigned char buf[6] = { 0x25, 0xe2, 0x82, 0xac, 0xce, 0xbb };
- mbstate_t state;
- wchar_t wc = 42;
- size_t n;
- int result = 0;
- const char *used_locale;
-
- setlocale (LC_CTYPE, "de_DE.UTF-8");
- /* Double check. */
- used_locale = setlocale (LC_CTYPE, NULL);
- printf ("used locale: \"%s\"\n", used_locale);
- result = strcmp (used_locale, "de_DE.UTF-8");
-
- memset (&state, '\0', sizeof (state));
-
- show (mbrtowc (&wc, (const char *) buf + 0, 1, &state), 1, 37);
- show (mbrtowc (&wc, (const char *) buf + 1, 1, &state), -2, 37);
- show (mbrtowc (&wc, (const char *) buf + 2, 3, &state), 2, 8364);
- show (mbrtowc (&wc, (const char *) buf + 4, 1, &state), -2, 8364);
- show (mbrtowc (&wc, (const char *) buf + 5, 1, &state), 1, 955);
- show (mbrtowc (&wc, (const char *) buf + 5, 1, &state), -1, 955);
-
- return result;
-}
diff --git a/test/locale/tst-mbswcs2.c b/test/locale/tst-mbswcs2.c
deleted file mode 100644
index 042069f..0000000
--- a/test/locale/tst-mbswcs2.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Test restarting behaviour of mbsnrtowcs.
- Copyright (C) 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Bruno Haible <haible(a)ilog.fr>fr>.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stdio.h>
-#include <string.h>
-#include <wchar.h>
-#include <locale.h>
-
-#define show(expr, nexp, wcexp, end) \
- n = expr; \
- printf (#expr " -> %Zd", n); \
- printf (", wc = %lu, src = buf+%d", (unsigned long int) wc, \
- src - (const char *) buf); \
- if (n != (size_t) nexp || wc != wcexp || src != (const char *) (end)) \
- { \
- printf (", expected %Zd and %lu and buf+%d", nexp, \
- (unsigned long int) wcexp, (end) - buf); \
- result = 1; \
- } \
- putc ('\n', stdout)
-
-int
-main (void)
-{
- unsigned char buf[6] = { 0x25, 0xe2, 0x82, 0xac, 0xce, 0xbb };
- mbstate_t state;
- const char *src;
- wchar_t wc = 42;
- size_t n;
- int result = 0;
- const char *used_locale;
-
- setlocale (LC_CTYPE,"de_DE.UTF-8");
- /* Double check. */
- used_locale = setlocale (LC_CTYPE, NULL);
- printf ("used locale: \"%s\"\n", used_locale);
- result = strcmp (used_locale, "de_DE.UTF-8");
-
- memset (&state, '\0', sizeof (state));
-
- src = (const char *) buf;
- show (mbsnrtowcs (&wc, &src, 1, 1, &state), 1, 37, buf + 1);
- show (mbsnrtowcs (&wc, &src, 3, 1, &state), 1, 8364, buf + 4);
- show (mbsnrtowcs (&wc, &src, 1, 1, &state), 0, 8364, buf + 5);
- show (mbsnrtowcs (&wc, &src, 1, 1, &state), 1, 955, buf + 6);
-
- return result;
-}
diff --git a/test/locale/tst-mbswcs3.c b/test/locale/tst-mbswcs3.c
deleted file mode 100644
index 73bb59a..0000000
--- a/test/locale/tst-mbswcs3.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Test restarting behaviour of wcsrtombs.
- Copyright (C) 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Bruno Haible <haible(a)ilog.fr>fr>.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stdio.h>
-#include <string.h>
-#include <wchar.h>
-#include <locale.h>
-
-#define show(expr, nexp, srcexp, bufexp) \
- { \
- size_t res = expr; \
- printf (#expr " -> %Zd", res); \
- dst += res; \
- printf (", src = srcbuf+%td, dst = buf+%td", \
- src - srcbuf, dst - (char *) buf); \
- if (res != nexp || src != (srcexp) || dst != (char *) (bufexp)) \
- { \
- printf (", expected %Zd and srcbuf+%td and buf+%td", nexp, \
- (srcexp) - srcbuf, (bufexp) - (unsigned char *) buf); \
- result = 1; \
- } \
- putc ('\n', stdout); \
- }
-
-int
-main (void)
-{
- unsigned char buf[6] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
- const unsigned char bufcheck[6] = { 0x25, 0xe2, 0x82, 0xac, 0xce, 0xbb };
- const wchar_t srcbuf[4] = { 0x25, 0x20ac, 0x03bb, 0 };
- mbstate_t state;
- const wchar_t *src;
- char *dst;
- int result = 0;
- const char *used_locale;
-
- setlocale (LC_CTYPE, "de_DE.UTF-8");
- /* Double check. */
- used_locale = setlocale (LC_CTYPE, NULL);
- printf ("used locale: \"%s\"\n", used_locale);
- result = strcmp (used_locale, "de_DE.UTF-8");
-
- memset (&state, '\0', sizeof (state));
-
- src = srcbuf;
- dst = (char *) buf;
- show (wcsrtombs (dst, &src, 1, &state), 1, srcbuf + 1, buf + 1);
- show (wcsrtombs (dst, &src, 1, &state), 0, srcbuf + 1, buf + 1);
- show (wcsrtombs (dst, &src, 4, &state), 3, srcbuf + 2, buf + 4);
- show (wcsrtombs (dst, &src, 2, &state), 2, srcbuf + 3, buf + 6);
-
- if (memcmp (buf, bufcheck, 6))
- {
- puts ("wrong results");
- result = 1;
- }
-
- return result;
-}
diff --git a/test/locale/tst-mbswcs4.c b/test/locale/tst-mbswcs4.c
deleted file mode 100644
index 8720401..0000000
--- a/test/locale/tst-mbswcs4.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Test restarting behaviour of mbsrtowcs.
- Copyright (C) 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stdio.h>
-#include <string.h>
-#include <wchar.h>
-#include <locale.h>
-
-#define show(expr, nexp, wcexp, end) \
- n = expr; \
- printf (#expr " -> %Zd", n); \
- printf (", wc = %lu, src = buf+%d", (unsigned long int) wc, \
- src - (const char *) buf); \
- if (n != (size_t) nexp || wc != wcexp || src != (const char *) (end)) \
- { \
- printf (", expected %Zd and %lu and buf+%d", nexp, \
- (unsigned long int) wcexp, (end) - buf); \
- result = 1; \
- } \
- putc ('\n', stdout)
-
-int
-main (void)
-{
- unsigned char buf[6] = { 0x25, 0xe2, 0x82, 0xac, 0xce, 0xbb };
- mbstate_t state;
- const char *src;
- wchar_t wc = 42;
- size_t n;
- int result = 0;
- const char *used_locale;
-
- setlocale (LC_CTYPE,"de_DE.UTF-8");
- /* Double check. */
- used_locale = setlocale (LC_CTYPE, NULL);
- printf ("used locale: \"%s\"\n", used_locale);
- result = strcmp (used_locale, "de_DE.UTF-8");
-
- memset (&state, '\0', sizeof (state));
-
- src = (const char *) buf;
- show (mbsrtowcs (&wc, &src, 1, &state), 1, 37, buf + 1);
- show (mbsrtowcs (&wc, &src, 1, &state), 1, 8364, buf + 4);
- show (mbsrtowcs (&wc, &src, 1, &state), 1, 955, buf + 6);
-
- return result;
-}
diff --git a/test/locale/tst-mbswcs5.c b/test/locale/tst-mbswcs5.c
deleted file mode 100644
index efb6dda..0000000
--- a/test/locale/tst-mbswcs5.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/* Test restarting behaviour of wcrtomb.
- Copyright (C) 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Bruno Haible <haible(a)ilog.fr>fr>.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stdio.h>
-#include <string.h>
-#include <wchar.h>
-#include <locale.h>
-
-#define show(expr, nexp, bufexp) \
- { \
- size_t res = expr; \
- printf (#expr " -> %Zd", res); \
- dst += res; \
- printf (", dst = buf+%td", dst - (char *) buf); \
- if (res != nexp || dst != (char *) (bufexp)) \
- { \
- printf (", expected %Zd and buf+%td", nexp, \
- (bufexp) - (unsigned char *) buf); \
- result = 1; \
- } \
- putc ('\n', stdout); \
- }
-
-int
-main (void)
-{
- unsigned char buf[7] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
- const unsigned char bufcheck[7] = { 0x25, 0xe2, 0x82, 0xac, 0xce, 0xbb, 0 };
- const wchar_t srcbuf[4] = { 0x25, 0x20ac, 0x03bb, 0 };
- mbstate_t state;
- const wchar_t *src;
- char *dst;
- int result = 0;
- const char *used_locale;
-
- setlocale (LC_CTYPE, "de_DE.UTF-8");
- /* Double check. */
- used_locale = setlocale (LC_CTYPE, NULL);
- printf ("used locale: \"%s\"\n", used_locale);
- result = strcmp (used_locale, "de_DE.UTF-8");
-
- memset (&state, '\0', sizeof (state));
-
- src = srcbuf;
- dst = (char *) buf;
- show (wcrtomb (dst, *src++, &state), 1, buf + 1);
- show (wcrtomb (dst, *src++, &state), 3, buf + 4);
- show (wcrtomb (dst, *src++, &state), 2, buf + 6);
- show (wcrtomb (dst, *src, &state), 1, buf + 7);
-
- if (memcmp (buf, bufcheck, 7))
- {
- puts ("wrong results");
- result = 1;
- }
-
- return result;
-}
diff --git a/test/locale/tst-mbswcs6.c b/test/locale/tst-mbswcs6.c
deleted file mode 100644
index 4bbb961..0000000
--- a/test/locale/tst-mbswcs6.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Test for invalid input to wcrtomb.
- Copyright (C) 2001 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2001.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <locale.h>
-#include <stdio.h>
-#include <string.h>
-#include <wchar.h>
-
-
-static int
-do_test (const char *loc)
-{
- char buf[100];
- size_t n;
- mbstate_t state;
- const char *nloc;
- int res;
-
- nloc = setlocale (LC_ALL, loc);
- if (nloc == NULL)
- {
- printf ("could not set locale \"%s\"\n", loc);
- return 1;
- }
- printf ("new locale: %s\n", nloc);
-
- memset (&state, '\0', sizeof (state));
- errno = 0;
- n = wcrtomb (buf, (wchar_t) -15l, &state);
-
- printf ("n = %zd, errno = %d (%s)\n", n, errno, strerror (errno));
-
- res = n != (size_t) -1 || errno != EILSEQ;
- if (res)
- puts ("*** FAIL");
- putchar ('\n');
-
- return res;
-}
-
-
-int
-main (void)
-{
- int res;
-
- res = do_test ("C");
- res |= do_test ("de_DE.ISO-8859-1");
- res |= do_test ("de_DE.UTF-8");
- res |= do_test ("en_US.ISO-8859-1");
- res |= do_test ("ja_JP.UTF-8");
- res |= do_test ("hr_HR.ISO-8859-2");
- //res |= do_test ("ru_RU.KOI8-R");
-
- return res;
-}
diff --git a/test/locale/tst-numeric.c b/test/locale/tst-numeric.c
deleted file mode 100644
index a7911f1..0000000
--- a/test/locale/tst-numeric.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Testing the implementation of LC_NUMERIC and snprintf().
- Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Petter Reinholdtsen <pere(a)hungry.com>om>, 2003
-
- Based on tst-fmon.c by Jochen Hein <jochen.hein(a)delphi.central.de>de>, 1997.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stdio.h>
-#include <locale.h>
-#include <string.h>
-#include <stdlib.h>
-
-/*
- test-numeric gets called with three parameters:
- - the locale
- - the format-string to be used
- - the actual number to be formatted
- - the expected string
- If the test passes, test-numeric terminates with returncode 0,
- otherwise with 1
-*/
-#define EXIT_SUCCESS 0
-#define EXIT_FAILURE 1
-#define EXIT_SETLOCALE 2
-#define EXIT_SNPRINTF 3
-
-int
-main (int argc, char *argv[])
-{
- char *s = malloc (201);
- double val;
-
- /* Make sure to read the value before setting of the locale, as
- strtod() is locale-dependent. */
- val = strtod (argv[3], NULL);
-
- if (setlocale (LC_ALL, argv[1]) == NULL)
- {
- fprintf (stderr, "setlocale(LC_ALL, \"%s\"): %m\n", argv[1]);
- exit (EXIT_SETLOCALE);
- }
-
- if (snprintf (s, 200, argv[2], val) == -1)
- {
- perror ("snprintf");
- exit (EXIT_SNPRINTF);
- }
-
- if (strcmp (s, argv[4]) != 0)
- {
- printf ("\
-locale: \"%s\", format: \"%s\", expected: \"%s\", got:
\"%s\" => %s\n",
- argv[1], argv[2], argv[4], s,
- strcmp (s, argv[4]) != 0 ? "false" : "correct");
- exit (EXIT_FAILURE);
- }
-
- return EXIT_SUCCESS;
-}
diff --git a/test/locale/tst-rpmatch.c b/test/locale/tst-rpmatch.c
deleted file mode 100644
index 91e2365..0000000
--- a/test/locale/tst-rpmatch.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Test program for rpmatch function.
- Copyright (C) 1998, 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jochen Hein <jochen.hein(a)delphi.central.de>de>.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <locale.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-int
-main (int argc, char* argv[])
-{
- setlocale (LC_ALL, argv[1]);
-
- if (rpmatch (argv[2]) != atol (argv[3]))
- {
- fprintf (stderr,"Failed: Locale %s, String %s, Exp: %s, got %d\n",
- argv[1], argv[2], argv[3], rpmatch (argv[2]));
- exit (EXIT_FAILURE);
- }
- return EXIT_SUCCESS;
-}
diff --git a/test/locale/tst-setlocale.c b/test/locale/tst-setlocale.c
deleted file mode 100644
index 1f8e68d..0000000
--- a/test/locale/tst-setlocale.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Test case by Jakub Jelinek <jakub(a)redhat.com>om>. */
-#include <locale.h>
-#include <stdio.h>
-#include <string.h>
-
-int
-main (void)
-{
- char q[30];
- char *s;
-
- setlocale (LC_ALL, "");
- printf ("after setlocale (LC_ALL, \"\"): %s\n",
setlocale(LC_NUMERIC, NULL));
-
- strcpy (q, "de_DE.UTF-8");
- setlocale (LC_NUMERIC, q);
- printf ("after setlocale (LC_NUMERIC, \"%s\"): %s\n",
- q, setlocale(LC_NUMERIC, NULL));
-
- strcpy (q, "de_DE.ISO-8859-1");
- s = setlocale (LC_NUMERIC, NULL);
- printf ("after overwriting string: %s\n", s);
-
- return strcmp (s, "de_DE.UTF-8") != 0;
-}
diff --git a/test/locale/tst-sscanf.c b/test/locale/tst-sscanf.c
deleted file mode 100644
index 32c1328..0000000
--- a/test/locale/tst-sscanf.c
+++ /dev/null
@@ -1,56 +0,0 @@
-#include <stdio.h>
-#include <locale.h>
-#include <assert.h>
-
-#define P0 "\xDB\xB0"
-#define P1 "\xDB\xB1"
-#define P2 "\xDB\xB2"
-#define P3 "\xDB\xB3"
-#define P4 "\xDB\xB4"
-#define P5 "\xDB\xB5"
-#define P6 "\xDB\xB6"
-#define P7 "\xDB\xB7"
-#define P8 "\xDB\xB8"
-#define P9 "\xDB\xB9"
-#define PD "\xd9\xab"
-#define PT "\xd9\xac"
-
-static int
-check_sscanf (const char *s, const char *format, const float n)
-{
- float f;
-
- if (sscanf (s, format, &f) != 1)
- {
- printf ("nothing found for \"%s\"\n", s);
- return 1;
- }
- if (f != n)
- {
- printf ("got %f expected %f from \"%s\"\n", f, n, s);
- return 1;
- }
- return 0;
-}
-
-static int
-do_test (void)
-{
- if (setlocale (LC_ALL, "fa_IR.UTF-8") == NULL)
- {
- puts ("cannot set fa_IR locale");
- return 1;
- }
-
- int r = check_sscanf (P3 PD P1 P4, "%I8f", 3.14);
- r |= check_sscanf (P3 PT P1 P4 P5, "%I'f", 3145);
- r |= check_sscanf (P3 PD P1 P4 P1 P5 P9, "%If", 3.14159);
- r |= check_sscanf ("-" P3 PD P1 P4 P1 P5, "%If", -3.1415);
- r |= check_sscanf ("+" PD P1 P4 P1 P5, "%If", +.1415);
- r |= check_sscanf (P3 PD P1 P4 P1 P5 "e+" P2, "%Ie", 3.1415e+2);
-
- return r;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/locale/tst-strfmon1.c b/test/locale/tst-strfmon1.c
deleted file mode 100644
index e30aa1b..0000000
--- a/test/locale/tst-strfmon1.c
+++ /dev/null
@@ -1,42 +0,0 @@
-#include <monetary.h>
-#include <locale.h>
-#include <stdio.h>
-#include <string.h>
-
-static const struct
-{
- const char *locale;
- const char *expected;
-} tests[] =
- {
- { "de_DE.ISO-8859-1", "|-12,34 EUR|-12,34|" },
- { "da_DK.ISO-8859-1", "|kr -12,34|-12,34|" },
- { "zh_TW.EUC-TW", "|-NT$12.34|-12.34|" },
- { "sv_SE.ISO-8859-1", "|-12,34 kr|-12,34|" }
- };
-#define ntests (sizeof (tests) / sizeof (tests[0]))
-
-
-static int
-do_test (void)
-{
- int res = 0;
- for (int i = 0; i < ntests; ++i)
- {
- char buf[500];
- if (setlocale (LC_ALL, tests[i].locale) == NULL)
- {
- printf ("failed to set locale %s\n", tests[i].locale);
- res = 1;
- continue;
- }
- strfmon (buf, sizeof (buf), "|%n|%!n|", -12.34, -12.34);
- int fail = strcmp (buf, tests[i].expected) != 0;
- printf ("%s%s\n", buf, fail ? " *** FAIL ***" : "");
- res |= fail;
- }
- return res;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/locale/tst-trans.c b/test/locale/tst-trans.c
deleted file mode 100644
index 081a9aa..0000000
--- a/test/locale/tst-trans.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Test program for user-defined character maps.
- Copyright (C) 1999, 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)cygnus.com>om>.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <locale.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <wchar.h>
-#include <wctype.h>
-
-int
-main (void)
-{
- char buf[30];
- wchar_t wbuf[30];
- wctrans_t t;
- wint_t wch;
- int errors = 0;
- int len;
-
- setlocale (LC_ALL, "");
-
- t = wctrans ("test");
- if (t == (wctrans_t) 0)
- {
- puts ("locale data files probably not loaded");
- exit (1);
- }
-
- wch = towctrans (L'A', t);
- printf ("towctrans (L'A', t) = %c\n", wch);
- if (wch != L'B')
- errors = 1;
-
- wch = towctrans (L'B', t);
- printf ("towctrans (L'B', t) = %c\n", wch);
- if (wch != L'C')
- errors = 1;
-
- /* Test the output digit handling. */
- swprintf (wbuf, sizeof (wbuf) / sizeof (wbuf[0]), L"%Id", 0x499602D2);
- errors |= wcscmp (wbuf, L"bcdefghija") != 0;
- len = wcslen (wbuf);
- errors |= len != 10;
- printf ("len = %d, wbuf = L\"%ls\"\n", len, wbuf);
-
- snprintf (buf, sizeof buf, "%Id", 0x499602D2);
- errors |= strcmp (buf, "bcdefghija") != 0;
- len = strlen (buf);
- errors |= len != 10;
- printf ("len = %d, buf = \"%s\"\n", len, buf);
-
- return errors;
-}
diff --git a/test/locale/tst-wctype.c b/test/locale/tst-wctype.c
deleted file mode 100644
index 21ebd92..0000000
--- a/test/locale/tst-wctype.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/* Test program for iswctype() function in ja_JP locale.
- Copyright (C) 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)cygnus.com>om>.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <error.h>
-#include <locale.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <wchar.h>
-#include <wctype.h>
-
-int
-main (void)
-{
- wctype_t wct;
- wchar_t buf[1000];
- int result = 1;
-
- setlocale (LC_ALL, "");
- wprintf (L"locale = %s\n", setlocale (LC_CTYPE, NULL));
-
- wct = wctype ("jhira");
- if (wct == 0)
- error (EXIT_FAILURE, 0, "jhira: no such character class");
-
- if (fgetws (buf, sizeof (buf) / sizeof (buf[0]), stdin) != NULL)
- {
- int n;
-
- wprintf (L"buf[] = \"%ls\"\n", buf);
-
- result = 0;
-
- for (n = 0; buf[n] != L'\0'; ++n)
- {
- wprintf (L"jhira(U%04lx = %lc) = %d\n", (long) buf[n], buf[n],
- iswctype (buf[n], wct));
- result |= ((buf[n] < 0xff && iswctype (buf[n], wct))
- || (buf[n] > 0xff && !iswctype (buf[n], wct)));
- }
- }
-
- wct = wctype ("jkata");
- if (wct == 0)
- error (EXIT_FAILURE, 0, "jkata: no such character class");
-
- if (fgetws (buf, sizeof (buf) / sizeof (buf[0]), stdin) != NULL)
- {
- int n;
-
- wprintf (L"buf[] = \"%ls\"\n", buf);
-
- result = 0;
-
- for (n = 0; buf[n] != L'\0'; ++n)
- {
- wprintf (L"jkata(U%04lx = %lc) = %d\n", (long) buf[n], buf[n],
- iswctype (buf[n], wct));
- result |= ((buf[n] < 0xff && iswctype (buf[n], wct))
- || (buf[n] > 0xff && !iswctype (buf[n], wct)));
- }
- }
-
- wct = wctype ("jdigit");
- if (wct == 0)
- error (EXIT_FAILURE, 0, "jdigit: no such character class");
-
- if (fgetws (buf, sizeof (buf) / sizeof (buf[0]), stdin) != NULL)
- {
- int n;
-
- wprintf (L"buf[] = \"%ls\"\n", buf);
-
- result = 0;
-
- for (n = 0; buf[n] != L'\0'; ++n)
- {
- wprintf (L"jdigit(U%04lx = %lc) = %d\n", (long) buf[n], buf[n],
- iswctype (buf[n], wct));
- result |= ((buf[n] < 0xff && iswctype (buf[n], wct))
- || (buf[n] > 0xff && !iswctype (buf[n], wct)));
- }
- }
-
- wct = wctype ("jspace");
- if (wct == 0)
- error (EXIT_FAILURE, 0, "jspace: no such character class");
-
- if (fgetws (buf, sizeof (buf) / sizeof (buf[0]), stdin) != NULL)
- {
- int n;
-
- wprintf (L"buf[] = \"%ls\"\n", buf);
-
- result = 0;
-
- for (n = 0; buf[n] != L'\0'; ++n)
- {
- wprintf (L"jspace(U%04lx = %lc) = %d\n", (long) buf[n], buf[n],
- iswctype (buf[n], wct));
- result |= ((buf[n] < 0xff && iswctype (buf[n], wct))
- || (buf[n] > 0xff && !iswctype (buf[n], wct)));
- }
- }
-
- wct = wctype ("jkanji");
- if (wct == 0)
- error (EXIT_FAILURE, 0, "jkanji: no such character class");
-
- if (fgetws (buf, sizeof (buf) / sizeof (buf[0]), stdin) != NULL)
- {
- int n;
-
- wprintf (L"buf[] = \"%ls\"\n", buf);
-
- result = 0;
-
- for (n = 0; buf[n] != L'\0'; ++n)
- {
- wprintf (L"jkanji(U%04lx = %lc) = %d\n", (long) buf[n], buf[n],
- iswctype (buf[n], wct));
- result |= ((buf[n] < 0xff && iswctype (buf[n], wct))
- || (buf[n] > 0xff && !iswctype (buf[n], wct)));
- }
- }
-
- return result;
-}
diff --git a/test/locale/tst-xlocale1.c b/test/locale/tst-xlocale1.c
deleted file mode 100644
index 297c9ad..0000000
--- a/test/locale/tst-xlocale1.c
+++ /dev/null
@@ -1,75 +0,0 @@
-#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)
-{
- size_t 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 ("\nstrcasecmp_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;
-}
diff --git a/test/locale/tst-xlocale2.c b/test/locale/tst-xlocale2.c
deleted file mode 100644
index 30d87de..0000000
--- a/test/locale/tst-xlocale2.c
+++ /dev/null
@@ -1,64 +0,0 @@
-#include <ctype.h>
-#include <locale.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static int do_test (__locale_t l);
-
-int
-main (void)
-{
- locale_t l;
- locale_t l2;
- int result;
-
- l = newlocale (1 << LC_ALL, "de_DE.ISO-8859-1", NULL);
- if (l == NULL)
- {
- printf ("newlocale failed: %m\n");
- exit (EXIT_FAILURE);
- }
- puts ("Running tests of created locale");
- result = do_test (l);
-
- l2 = duplocale (l);
- if (l2 == NULL)
- {
- printf ("duplocale failed: %m\n");
- exit (EXIT_FAILURE);
- }
- freelocale (l);
- puts ("Running tests of duplicated locale");
- result |= do_test (l2);
-
- return result;
-}
-
-
-static const char str[] = "0123456789abcdef ABCDEF
ghijklmnopqrstuvwxyz������";
-static const char exd[] =
"11111111110000000000000000000000000000000000000000";
-static const char exa[] =
"00000000001111110111111011111111111111111111111111";
-static const char exx[] =
"11111111111111110111111000000000000000000000000000";
-
-
-static int
-do_test (locale_t l)
-{
- int result = 0;
-size_t n;
-
-#define DO_TEST(TEST, RES) \
- for (n = 0; n < sizeof (str) - 1; ++n) \
- if ('0' + (TEST (str[n], l) != 0) != RES[n]) \
- { \
- printf ("%s(%c) failed\n", #TEST, str[n]); \
- result = 1; \
- }
-
- DO_TEST (isdigit_l, exd);
- DO_TEST (isalpha_l, exa);
- DO_TEST (isxdigit_l, exx);
-
- return result;
-}
diff --git a/test/locale/tst_nl_langinfo.c b/test/locale/tst_nl_langinfo.c
deleted file mode 100644
index fcf2fe2..0000000
--- a/test/locale/tst_nl_langinfo.c
+++ /dev/null
@@ -1,296 +0,0 @@
-#include <locale.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <langinfo.h>
-#include <nl_types.h>
-
-#if !defined(__UCLIBC__) && 0
-#define DO_EXTRA
-#endif
-
-int main(int argc, char **argv)
-{
- char *l;
- const unsigned char *x;
-/* const unsigned char *y; */
- const unsigned char *p;
-
- if (argc > 2) {
- printf("invalid args\n");
- return EXIT_FAILURE;
- }
- if (argc == 1) {
- l = "";
- } else {
- l = *++argv;
- }
-
- if (!(x = setlocale(LC_ALL,l))) {
- printf("couldn't set locale %s\n", l);
- return EXIT_FAILURE;
- }
-
-/* printf("\nsetlocale returned:\n "); */
-/* do { */
-/* printf("\\x%02x", *x); */
-/* } while (*x++); */
-/* printf("\n"); */
-
-#ifndef __BCC__
-#define STR(X) #X
-#else
-#define STR(X) __STR(X)
-#endif
-#define __PASTE2(A,B) A.B
-
-#define DO_NL_I(X) \
- printf( STR(X) " = %d\n", (int) nl_langinfo(X) );
-#define DO_NL_S(X) \
- printf( STR(X) " = \"%s\"\n", nl_langinfo(X) );
-#define DO_NL_C(X) \
- printf( STR(X) " = \"\\x%02x\"\n", *((unsigned char *)
nl_langinfo(X)) );
-
- printf("ctype\n");
-
- DO_NL_S(CODESET);
-#ifdef DO_EXTRA
- DO_NL_I(_NL_CTYPE_INDIGITS_MB_LEN);
- DO_NL_S(_NL_CTYPE_INDIGITS0_MB);
- DO_NL_S(_NL_CTYPE_INDIGITS1_MB);
- DO_NL_S(_NL_CTYPE_INDIGITS2_MB);
- DO_NL_S(_NL_CTYPE_INDIGITS3_MB);
- DO_NL_S(_NL_CTYPE_INDIGITS4_MB);
- DO_NL_S(_NL_CTYPE_INDIGITS5_MB);
- DO_NL_S(_NL_CTYPE_INDIGITS6_MB);
- DO_NL_S(_NL_CTYPE_INDIGITS7_MB);
- DO_NL_S(_NL_CTYPE_INDIGITS8_MB);
- DO_NL_S(_NL_CTYPE_INDIGITS9_MB);
-#endif
- DO_NL_S(_NL_CTYPE_OUTDIGIT0_MB);
- DO_NL_S(_NL_CTYPE_OUTDIGIT1_MB);
- DO_NL_S(_NL_CTYPE_OUTDIGIT2_MB);
- DO_NL_S(_NL_CTYPE_OUTDIGIT3_MB);
- DO_NL_S(_NL_CTYPE_OUTDIGIT4_MB);
- DO_NL_S(_NL_CTYPE_OUTDIGIT5_MB);
- DO_NL_S(_NL_CTYPE_OUTDIGIT6_MB);
- DO_NL_S(_NL_CTYPE_OUTDIGIT7_MB);
- DO_NL_S(_NL_CTYPE_OUTDIGIT8_MB);
- DO_NL_S(_NL_CTYPE_OUTDIGIT9_MB);
-
-
- printf("numeric\n");
-
- DO_NL_S(RADIXCHAR); /* DECIMAL_POINT */
- DO_NL_S(THOUSEP); /* THOUSANDS_SEP */
-/* DO_NL_S(GROUPING); */
-
- printf("GROUPING = \"");
- for (p = (unsigned char *) nl_langinfo(GROUPING) ; *p ; p++) {
- printf("\\x%02x", *p);
- }
- printf("\"\n\n");
-
- printf("monetary\n");
-
- DO_NL_S(INT_CURR_SYMBOL);
- DO_NL_S(CURRENCY_SYMBOL);
- DO_NL_S(MON_DECIMAL_POINT);
- DO_NL_S(MON_THOUSANDS_SEP);
-/* DO_NL_S(MON_GROUPING); */
-
- printf("MON_GROUPING = \"");
- for (p = (unsigned char *) nl_langinfo(MON_GROUPING) ; *p ; p++) {
- printf("\\x%02x", *p);
- }
- printf("\"\n\n");
-
- DO_NL_S(POSITIVE_SIGN);
- DO_NL_S(NEGATIVE_SIGN);
- DO_NL_C(INT_FRAC_DIGITS);
- DO_NL_C(FRAC_DIGITS);
- DO_NL_C(P_CS_PRECEDES);
- DO_NL_C(P_SEP_BY_SPACE);
- DO_NL_C(N_CS_PRECEDES);
- DO_NL_C(N_SEP_BY_SPACE);
- DO_NL_C(P_SIGN_POSN);
- DO_NL_C(N_SIGN_POSN);
- DO_NL_C(INT_P_CS_PRECEDES);
- DO_NL_C(INT_P_SEP_BY_SPACE);
- DO_NL_C(INT_N_CS_PRECEDES);
- DO_NL_C(INT_N_SEP_BY_SPACE);
- DO_NL_C(INT_P_SIGN_POSN);
- DO_NL_C(INT_N_SIGN_POSN);
-
- DO_NL_S(CRNCYSTR); /* CURRENCY_SYMBOL */
-
-
- printf("time\n");
-
- DO_NL_S(ABDAY_1);
- DO_NL_S(ABDAY_2);
- DO_NL_S(ABDAY_3);
- DO_NL_S(ABDAY_4);
- DO_NL_S(ABDAY_5);
- DO_NL_S(ABDAY_6);
- DO_NL_S(ABDAY_7);
-
- DO_NL_S(DAY_1);
- DO_NL_S(DAY_2);
- DO_NL_S(DAY_3);
- DO_NL_S(DAY_4);
- DO_NL_S(DAY_5);
- DO_NL_S(DAY_6);
- DO_NL_S(DAY_7);
-
- DO_NL_S(ABMON_1);
- DO_NL_S(ABMON_2);
- DO_NL_S(ABMON_3);
- DO_NL_S(ABMON_4);
- DO_NL_S(ABMON_5);
- DO_NL_S(ABMON_6);
- DO_NL_S(ABMON_7);
- DO_NL_S(ABMON_8);
- DO_NL_S(ABMON_9);
- DO_NL_S(ABMON_10);
- DO_NL_S(ABMON_11);
- DO_NL_S(ABMON_12);
-
- DO_NL_S(MON_1);
- DO_NL_S(MON_2);
- DO_NL_S(MON_3);
- DO_NL_S(MON_4);
- DO_NL_S(MON_5);
- DO_NL_S(MON_6);
- DO_NL_S(MON_7);
- DO_NL_S(MON_8);
- DO_NL_S(MON_9);
- DO_NL_S(MON_10);
- DO_NL_S(MON_11);
- DO_NL_S(MON_12);
-
- DO_NL_S(AM_STR);
- DO_NL_S(PM_STR);
-
- DO_NL_S(D_T_FMT);
- DO_NL_S(D_FMT);
- DO_NL_S(T_FMT);
- DO_NL_S(T_FMT_AMPM);
-/* DO_NL_S(ERA); */
- {
- const char *p = nl_langinfo(ERA);
- if (!p || !*p) {
- printf("ERA = (none)\n");
- } else {
- int i;
- printf("ERA:\n");
- for (i=0 ; i < 100 ; i++) {
- printf(" %3d: \"%s\"\n", i, p);
- while (*p) ++p;
- ++p;
- if (!*p) break;
- }
- }
- }
-
- DO_NL_S(ERA_YEAR); /* non SuSv3 */
- DO_NL_S(ERA_D_FMT);
-/* DO_NL_S(ALT_DIGITS); */
- {
- const char *p = nl_langinfo(ALT_DIGITS);
- if (!p || !*p) {
- printf("ALT_DIGITS = (none)\n");
- } else {
- int i;
- printf("ALT_DIGITS:\n");
- for (i=0 ; i < 100 ; i++) {
- printf(" %3d: \"%s\"\n", i, p);
- while (*p) ++p;
- ++p;
- }
- }
- }
- DO_NL_S(ERA_D_T_FMT);
- DO_NL_S(ERA_T_FMT);
-
-#ifdef DO_EXTRA
- DO_NL_C(_NL_TIME_WEEK_NDAYS);
- DO_NL_I(_NL_TIME_WEEK_1STDAY); /* grr... this won't work with 16bit ptrs */
- DO_NL_C(_NL_TIME_WEEK_1STWEEK);
- DO_NL_C(_NL_TIME_FIRST_WEEKDAY);
- DO_NL_C(_NL_TIME_FIRST_WORKDAY);
- DO_NL_C(_NL_TIME_CAL_DIRECTION);
- DO_NL_S(_NL_TIME_TIMEZONE);
- DO_NL_S(_DATE_FMT);
-#endif
-
- printf("messages\n");
-
- DO_NL_S(YESEXPR);
- DO_NL_S(NOEXPR);
- DO_NL_S(YESSTR);
- DO_NL_S(NOSTR);
-
-#ifdef DO_EXTRA
-
- printf("paper\n");
-
- DO_NL_I(_NL_PAPER_HEIGHT);
- DO_NL_I(_NL_PAPER_WIDTH);
-
- printf("name\n");
-
- DO_NL_S(_NL_NAME_NAME_FMT);
- DO_NL_S(_NL_NAME_NAME_GEN);
- DO_NL_S(_NL_NAME_NAME_MR);
- DO_NL_S(_NL_NAME_NAME_MRS);
- DO_NL_S(_NL_NAME_NAME_MISS);
- DO_NL_S(_NL_NAME_NAME_MS);
-
- printf("address\n");
-
- DO_NL_S(_NL_ADDRESS_POSTAL_FMT);
- DO_NL_S(_NL_ADDRESS_COUNTRY_NAME);
- DO_NL_S(_NL_ADDRESS_COUNTRY_POST);
- DO_NL_S(_NL_ADDRESS_COUNTRY_AB2);
- DO_NL_S(_NL_ADDRESS_COUNTRY_AB3);
- DO_NL_S(_NL_ADDRESS_COUNTRY_CAR);
- DO_NL_I(_NL_ADDRESS_COUNTRY_NUM);
- DO_NL_S(_NL_ADDRESS_COUNTRY_ISBN);
- DO_NL_S(_NL_ADDRESS_LANG_NAME);
- DO_NL_S(_NL_ADDRESS_LANG_AB);
- DO_NL_S(_NL_ADDRESS_LANG_TERM);
- DO_NL_S(_NL_ADDRESS_LANG_LIB);
-
- printf("telephone\n");
-
- DO_NL_S(_NL_TELEPHONE_TEL_INT_FMT);
- DO_NL_S(_NL_TELEPHONE_TEL_DOM_FMT);
- DO_NL_S(_NL_TELEPHONE_INT_SELECT);
- DO_NL_S(_NL_TELEPHONE_INT_PREFIX);
-
- printf("measurement\n");
-
- DO_NL_C(_NL_MEASUREMENT_MEASUREMENT); /* 1 is metric, 2 is US */
-
- printf("identification\n");
-
- DO_NL_S(_NL_IDENTIFICATION_TITLE);
- DO_NL_S(_NL_IDENTIFICATION_SOURCE);
- DO_NL_S(_NL_IDENTIFICATION_ADDRESS);
- DO_NL_S(_NL_IDENTIFICATION_CONTACT);
- DO_NL_S(_NL_IDENTIFICATION_EMAIL);
- DO_NL_S(_NL_IDENTIFICATION_TEL);
- DO_NL_S(_NL_IDENTIFICATION_FAX);
- DO_NL_S(_NL_IDENTIFICATION_LANGUAGE);
- DO_NL_S(_NL_IDENTIFICATION_TERRITORY);
- DO_NL_S(_NL_IDENTIFICATION_AUDIENCE);
- DO_NL_S(_NL_IDENTIFICATION_APPLICATION);
- DO_NL_S(_NL_IDENTIFICATION_ABBREVIATION);
- DO_NL_S(_NL_IDENTIFICATION_REVISION);
- DO_NL_S(_NL_IDENTIFICATION_DATE);
- DO_NL_S(_NL_IDENTIFICATION_CATEGORY);
-
-#endif
-
- return EXIT_SUCCESS;
-}
diff --git a/test/locale/xfrm-test.c b/test/locale/xfrm-test.c
deleted file mode 100644
index 1ab0874..0000000
--- a/test/locale/xfrm-test.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/* Test collation function via transformation using real data.
- Copyright (C) 1997, 1998, 2000, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)cygnus.com>om>, 1997.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <ctype.h>
-#include <error.h>
-#include <locale.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-struct lines
-{
- char *xfrm;
- char *line;
-};
-
-static int xstrcmp (const void *, const void *);
-
-int
-main (int argc, char *argv[])
-{
- int result = 0;
- size_t nstrings, nstrings_max;
- struct lines *strings;
- char *line = NULL;
- size_t len = 0;
- size_t n;
-
- if (argc < 2)
- error (1, 0, "usage: %s <random seed>", argv[0]);
-
- setlocale (LC_ALL, "");
-
- nstrings_max = 100;
- nstrings = 0;
- strings = (struct lines *) malloc (nstrings_max * sizeof (struct lines));
- if (strings == NULL)
- {
- perror (argv[0]);
- exit (1);
- }
-
- while (1)
- {
- char saved, *newp;
- int needed;
- int l;
- if (getline (&line, &len, stdin) < 0)
- break;
-
- if (nstrings == nstrings_max)
- {
- strings = (struct lines *) realloc (strings,
- (nstrings_max *= 2)
- * sizeof (*strings));
- if (strings == NULL)
- {
- perror (argv[0]);
- exit (1);
- }
- }
- strings[nstrings].line = strdup (line);
- l = strcspn (line, ":(;");
- while (l > 0 && isspace (line[l - 1]))
- --l;
-
- saved = line[l];
- line[l] = '\0';
- needed = strxfrm (NULL, line, 0);
- newp = malloc (needed + 1);
- strxfrm (newp, line, needed + 1);
- strings[nstrings].xfrm = newp;
- line[l] = saved;
- ++nstrings;
- }
- free (line);
-
- /* First shuffle. */
- srandom (atoi (argv[1]));
- for (n = 0; n < 10 * nstrings; ++n)
- {
- int r1, r2, r;
- size_t idx1 = random () % nstrings;
- size_t idx2 = random () % nstrings;
- struct lines tmp = strings[idx1];
- strings[idx1] = strings[idx2];
- strings[idx2] = tmp;
-
- /* While we are at it a first little test. */
- r1 = strcmp (strings[idx1].xfrm, strings[idx2].xfrm);
- r2 = strcmp (strings[idx2].xfrm, strings[idx1].xfrm);
- r = -(r1 ^ r2);
- if (r)
- r /= abs (r1 ^ r2);
-
- if (r < 0 || (r == 0 && (r1 != 0 || r2 != 0))
- || (r > 0 && (r1 ^ r2) >= 0))
- printf ("collate wrong: %d vs. %d\n", r1, r2);
- }
-
- /* Now sort. */
- qsort (strings, nstrings, sizeof (struct lines), xstrcmp);
-
- /* Print the result. */
- for (n = 0; n < nstrings; ++n)
- {
- fputs (strings[n].line, stdout);
- free (strings[n].line);
- free (strings[n].xfrm);
- }
- free (strings);
-
- return result;
-}
-
-
-static int
-xstrcmp (ptr1, ptr2)
- const void *ptr1;
- const void *ptr2;
-{
- const struct lines *l1 = (const struct lines *) ptr1;
- const struct lines *l2 = (const struct lines *) ptr2;
-
- return strcmp (l1->xfrm, l2->xfrm);
-}
diff --git a/test/malloc/Makefile b/test/malloc/Makefile
deleted file mode 100644
index 97c424b..0000000
--- a/test/malloc/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc malloc tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/malloc/Makefile.in b/test/malloc/Makefile.in
deleted file mode 100644
index 875a849..0000000
--- a/test/malloc/Makefile.in
+++ /dev/null
@@ -1,16 +0,0 @@
-# uClibc malloc tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-TESTS_DISABLED := time_malloc
-
-ifneq ($(UCLIBC_SUSV2_LEGACY),y)
-TESTS_DISABLED += tst-valloc
-endif
-
-ifneq ($(UCLIBC_HAS_OBSTACK),y)
-TESTS_DISABLED += tst-obstack
-endif
-
-ifneq ($(MALLOC_STANDARD),y)
-TESTS_DISABLED += tst-asprintf
-endif
diff --git a/test/malloc/malloc-standard-alignment.c
b/test/malloc/malloc-standard-alignment.c
deleted file mode 100644
index 71e5023..0000000
--- a/test/malloc/malloc-standard-alignment.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* exercise a bug found in malloc-standard when alignment
- * values are out of whack and cause a small overflow into
- * actual user data.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/types.h>
-
-#define ok(p) ((void*)p > (void*)0x1000)
-#define x \
- do { \
- printf("%i: phead = %p, phead->link @ %p = %p %s\n", \
- __LINE__, phead, \
- ok(phead) ? &phead->link : 0, \
- ok(phead) ? phead->link : 0, \
- ok(phead) ? phead->link == 0 ? "" : "!!!!!!!!!!!" :
""); \
- if (phead->link != NULL) exit(1); \
- } while (0);
-
-struct llist_s {
- void *data;
- struct llist_s *link;
-} *phead;
-
-int main(int argc, char *argv[])
-{
- char *line, *reg;
-
- setbuf(stdout, NULL);
- setbuf(stderr, NULL);
-
- phead = malloc(sizeof(*phead));
- phead->link = NULL;
-
-x line = malloc(80);
-x line = realloc(line, 2);
-x reg = malloc(32);
-x free(line);
-
-x return 0;
-}
diff --git a/test/malloc/malloc.c b/test/malloc/malloc.c
deleted file mode 100644
index ca7c5f9..0000000
--- a/test/malloc/malloc.c
+++ /dev/null
@@ -1,81 +0,0 @@
-
-#include <unistd.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-#define N_PTRS 1000
-#define N_ALLOCS 10000
-#define MAX_SIZE 0x10000
-
-#define random_size() (random()%MAX_SIZE)
-#define random_ptr() (random()%N_PTRS)
-
-int test1(void);
-int test2(void);
-
-int main(int argc, char *argv[])
-{
- return test1() + test2();
-}
-
-int test1(void)
-{
- void **ptrs;
- int i,j;
- int size;
- int ret = 0;
-
- srandom(0x19730929);
-
- ptrs = malloc(N_PTRS*sizeof(void *));
-
- for(i=0; i<N_PTRS; i++){
- if ((ptrs[i] = malloc(random_size())) == NULL) {
- printf("malloc random failed! %i\n", i);
- ++ret;
- }
- }
- for(i=0; i<N_ALLOCS; i++){
- j = random_ptr();
- free(ptrs[j]);
-
- size = random_size();
- ptrs[j] = malloc(size);
- if (!ptrs[j]) {
- printf("malloc failed! %d\n", i);
- ++ret;
- }
- memset(ptrs[j],0,size);
- }
- for(i=0; i<N_PTRS; i++){
- free(ptrs[i]);
- }
-
- return ret;
-}
-
-int test2(void)
-{
- void *ptr = NULL;
- int ret = 0;
-
- ptr = realloc(ptr,100);
- if (!ptr) {
- printf("couldn't realloc() a NULL pointer\n");
- ++ret;
- } else {
- free(ptr);
- }
-
- ptr = malloc(100);
- ptr = realloc(ptr, 0);
- if (ptr) {
- printf("realloc(,0) failed\n");
- ++ret;
- free(ptr);
- }
-
- return ret;
-}
-
diff --git a/test/malloc/mallocbug.c b/test/malloc/mallocbug.c
deleted file mode 100644
index 84a6387..0000000
--- a/test/malloc/mallocbug.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Reproduce a GNU malloc bug. */
-#include <malloc.h>
-#include <stdio.h>
-#include <string.h>
-
-#define size_t unsigned int
-
-int
-main (int argc, char *argv[])
-{
- char *dummy0;
- char *dummy1;
- char *fill_info_table1;
- char *over_top;
- size_t over_top_size = 0x3000;
- char *over_top_dup;
- size_t over_top_dup_size = 0x7000;
- char *x;
- size_t i;
-
- /* Here's what memory is supposed to look like (hex):
- size contents
- 3000 original_info_table, later fill_info_table1
- 3fa000 dummy0
- 3fa000 dummy1
- 6000 info_table_2
- 3000 over_top
-
- */
- /* mem: original_info_table */
- dummy0 = malloc (0x3fa000);
- /* mem: original_info_table, dummy0 */
- dummy1 = malloc (0x3fa000);
- /* mem: free, dummy0, dummy1, info_table_2 */
- fill_info_table1 = malloc (0x3000);
- /* mem: fill_info_table1, dummy0, dummy1, info_table_2 */
-
- x = malloc (0x1000);
- free (x);
- /* mem: fill_info_table1, dummy0, dummy1, info_table_2, freexx */
-
- /* This is what loses; info_table_2 and freexx get combined unbeknownst
- to mmalloc, and mmalloc puts over_top in a section of memory which
- is on the free list as part of another block (where info_table_2 had
- been). */
- over_top = malloc (over_top_size);
- over_top_dup = malloc (over_top_dup_size);
- memset (over_top, 0, over_top_size);
- memset (over_top_dup, 1, over_top_dup_size);
-
- for (i = 0; i < over_top_size; ++i)
- if (over_top[i] != 0)
- {
- printf ("FAIL: malloc expands info table\n");
- return 0;
- }
-
- for (i = 0; i < over_top_dup_size; ++i)
- if (over_top_dup[i] != 1)
- {
- printf ("FAIL: malloc expands info table\n");
- return 0;
- }
-
- printf ("PASS: malloc expands info table\n");
- return 0;
-}
diff --git a/test/malloc/realloc-can-shrink.c b/test/malloc/realloc-can-shrink.c
deleted file mode 100644
index 33249db..0000000
--- a/test/malloc/realloc-can-shrink.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* make sure that realloc() can properly shrink buffers */
-
-#include <stdlib.h>
-
-#define LARGE_BUFFER (1 << 20) /* idea is to span a lot of pages */
-
-int main(int argc, char *argv[])
-{
- int count = 20;
- char *ptr = NULL;
- while (count--) {
- ptr = realloc(ptr, LARGE_BUFFER);
- ptr = realloc(ptr, 1);
- }
- free(ptr);
- return 0;
-}
diff --git a/test/malloc/realloc0.c b/test/malloc/realloc0.c
deleted file mode 100644
index 62ae39d..0000000
--- a/test/malloc/realloc0.c
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <stdlib.h>
-#include <stdio.h>
-
-int main(int argc, char **argv)
-{
- void *ptr = NULL;
- ptr = realloc(ptr, 0);
- printf("realloc(NULL, 0) -- pointer = %p\n", ptr);
-
- ptr = malloc(0);
- printf("malloc(0) -- pointer = %p\n", ptr);
- return 0;
-}
diff --git a/test/malloc/testmalloc.c b/test/malloc/testmalloc.c
deleted file mode 100644
index 42707d2..0000000
--- a/test/malloc/testmalloc.c
+++ /dev/null
@@ -1,101 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-struct list {
- struct list *next;
-};
-
-int main(void)
-{
- int z=999;
- int *y=&z;
- int *x=NULL;
- struct list *save;
- struct list *lp;
- int i;
-
-
- printf("pointer to x is %p\n", x);
- printf("pointer to y is %p\n", y);
- x=malloc(sizeof(int)*2000);
- printf("pointer to x is %p\n", x);
- y=malloc(sizeof(int)*100);
- printf("pointer to y is %p\n", y);
- free(x);
- free(y);
- printf("about to free(0)\n");
- free(0);
-
- x=malloc(13);
- printf("x = %p\n", x);
- memcpy(x, "Small string", 13);
- printf("0x%p test string1: %s\n", x, (char *)x);
- y = realloc(x, 36);
- printf("0x%p test string1: %s\n", y, (char *)y);
- memcpy(y, "********** Larger string **********", 36);
- printf("0x%p test string2: %s\n", y, (char *)y);
- free(y);
-
-
- printf("Allocate 100 nodes 500 bytes each\n");
- save = 0;
- for (i=0; i<100; i++) {
- lp = malloc(500);
- if (lp == 0) {
- printf("loop 1: malloc returned 0\n");
- goto Failed;
- }
- lp->next = save;
- save = lp;
- }
-
- printf("freeing 100 nodes\n");
- while (save) {
- lp = save;
- save = save->next;
- free(lp);
- }
-
- printf("try realloc 100 times \n");
- lp = 0;
- for (i=1; i<=100; i++) {
- lp = realloc(lp, i*200);
- if (lp == 0) {
- printf("loop 3: realloc returned 0\n");
- goto Failed;
- }
- }
- {
- void *unused_ret = realloc(lp, 0);
- (void) unused_ret;
- }
-
- printf("Allocate another 100 nodes 600 bytes each\n");
- save = 0;
- for (i=0; i<100; i++) {
- lp = malloc(600);
- if (lp == 0) {
- printf("loop 2: malloc returned 0\n");
- goto Failed;
- }
- lp->next = save;
- save = lp;
- }
-
- printf("freeing 100 nodes\n");
- while (save) {
- lp = save;
- save = save->next;
- free(lp);
- }
-
-
- printf("alloc test PASSED\n");
- exit(0);
-
-Failed:
- printf("!!!!!!!!!!!! alloc test FAILED. !!!!!!!!!!!!!!!\n");
- exit(1);
-}
diff --git a/test/malloc/time_malloc.c b/test/malloc/time_malloc.c
deleted file mode 100644
index 0b62665..0000000
--- a/test/malloc/time_malloc.c
+++ /dev/null
@@ -1,62 +0,0 @@
-#include <stdlib.h>
-#define REPS (100000)
-int sizes[] = {
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50
-};
-#define NUM (sizeof sizes / sizeof sizes[0])
-int main ()
-{
- int i, j;
- void *allocs[NUM];
- for (i = 0; i < REPS; i++) {
- for (j = 0; j < NUM; j++) {
- allocs[j] = malloc(sizes[j]);
- }
- for (j = 0; j < NUM; j++) {
- free(allocs[j]);
- }
- }
- return 0;
-}
-
diff --git a/test/malloc/tst-asprintf.c b/test/malloc/tst-asprintf.c
deleted file mode 100644
index d4c3f76..0000000
--- a/test/malloc/tst-asprintf.c
+++ /dev/null
@@ -1,27 +0,0 @@
-#include <unistd.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <malloc.h>
-
-static void my_stats(void)
-{
- malloc_stats();
- fprintf(stderr, "\n");
-}
-
-int main(int argc, char *argv[])
-{
- char *a, *b;
-
- my_stats();
- asprintf(&b, "asdsadasd %ssdf\n", "AAAA");
- my_stats();
- asprintf(&a, "asdsadasd %ssdf\n", "AAAA");
- my_stats();
- free(a);
- free(b);
- my_stats();
-
- return 0;
-}
diff --git a/test/malloc/tst-calloc.c b/test/malloc/tst-calloc.c
deleted file mode 100644
index b7b6d2b..0000000
--- a/test/malloc/tst-calloc.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/* Copyright (C) 2000, 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <limits.h>
-#include <malloc.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-static int errors = 0;
-
-/* Number of samples per size. */
-#define N 50000
-
-
-static void
-fixed_test (int size)
-{
- char *ptrs[N];
- int i;
-
- for (i = 0; i < N; ++i)
- {
- int j;
-
- ptrs[i] = (char *) calloc (1, size);
-
- if (ptrs[i] == NULL)
- break;
-
- for (j = 0; j < size; ++j)
- {
- if (ptrs[i][j] != '\0') {
- ++errors;
- printf("byte not cleared (size %d, element %d, byte %d)",
- size, i, j);
- }
- ptrs[i][j] = '\xff';
- }
- }
-
- while (i-- > 0)
- free (ptrs[i]);
-}
-
-
-static void
-random_test (void)
-{
- char *ptrs[N];
- int i;
-
- for (i = 0; i < N; ++i)
- {
- int j;
- int n = 1 + random () % 10;
- int elem = 1 + random () % 100;
- int size = n * elem;
-
- ptrs[i] = (char *) calloc (n, elem);
-
- if (ptrs[i] == NULL)
- break;
-
- for (j = 0; j < size; ++j)
- {
- if (ptrs[i][j] != '\0') {
- ++errors;
- printf("byte not cleared (size %d, element %d, byte %d)",
- size, i, j);
- }
- ptrs[i][j] = '\xff';
- }
- }
-
- while (i-- > 0)
- free (ptrs[i]);
-}
-
-
-static void
-null_test (void)
-{
- /* If the size is 0 the result is implementation defined. Just make
- sure the program doesn't crash. */
- calloc (0, 0);
- calloc (0, UINT_MAX);
- calloc (UINT_MAX, 0);
- calloc (0, ~((size_t) 0));
- calloc (~((size_t) 0), 0);
-}
-
-
-int
-main (void)
-{
- /* We are allocating blocks with `calloc' and check whether every
- block is completely cleared. We first try this for some fixed
- times and then with random size. */
- fixed_test (15);
- fixed_test (5);
- fixed_test (17);
- fixed_test (6);
- fixed_test (31);
- fixed_test (96);
-
- random_test ();
-
- null_test ();
-
- return errors != 0;
-}
diff --git a/test/malloc/tst-malloc.c b/test/malloc/tst-malloc.c
deleted file mode 100644
index 2d3bcce..0000000
--- a/test/malloc/tst-malloc.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Andreas Jaeger <aj(a)arthur.rhein-neckar.de>de>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <malloc.h>
-#include <stdio.h>
-#include <features.h>
-
-static int errors = 0;
-
-static void
-merror (const char *msg)
-{
- ++errors;
- printf ("Error: %s\n", msg);
-}
-
-int
-main (void)
-{
- void *p;
- int save;
-
- errno = 0;
-
- p = malloc (-1);
- save = errno;
-
- if (p != NULL)
- merror ("malloc (-1) succeeded.");
-
- if (p == NULL && save != ENOMEM)
- merror ("errno is not set correctly");
-
- p = malloc (10);
- if (p == NULL)
- merror ("malloc (10) failed.");
-
- /* realloc (p, 0) == free (p). */
- p = realloc (p, 0);
- if (p != NULL)
- merror ("realloc (p, 0) failed.");
-
- p = malloc (0);
-#if !defined(__UCLIBC__) || defined(__MALLOC_GLIBC_COMPAT__)
- if (p == NULL)
-#else
- if (p != NULL)
-#endif
- merror ("malloc (0) failed.");
-
- p = realloc (p, 0);
- if (p != NULL)
- merror ("realloc (p, 0) failed.");
-
- return errors != 0;
-}
diff --git a/test/malloc/tst-mallocfork.c b/test/malloc/tst-mallocfork.c
deleted file mode 100644
index 5bb1d76..0000000
--- a/test/malloc/tst-mallocfork.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Derived from the test case in
-
http://sourceware.org/bugzilla/show_bug.cgi?id=838. */
-#include <assert.h>
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-
-static void
-sig_handler (int signum)
-{
- pid_t child = vfork ();
- if (child == 0)
- exit (0);
- TEMP_FAILURE_RETRY (waitpid (child, NULL, 0));
-}
-
-static int
-do_test (void)
-{
- pid_t parent = getpid ();
-
- struct sigaction action = { .sa_handler = sig_handler };
- sigemptyset (&action.sa_mask);
-
- malloc (sizeof (int));
-
- if (sigaction (SIGALRM, &action, NULL) != 0)
- {
- puts ("sigaction failed");
- return 1;
- }
-
- /* Create a child that sends the signal to be caught. */
- pid_t child = vfork ();
- if (child == 0)
- {
- if (kill (parent, SIGALRM) == -1)
- perror ("kill");
- exit (0);
- }
-
- TEMP_FAILURE_RETRY (waitpid (child, NULL, 0));
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/malloc/tst-mcheck.c b/test/malloc/tst-mcheck.c
deleted file mode 100644
index 9297d79..0000000
--- a/test/malloc/tst-mcheck.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/* Copyright (C) 2005 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2005.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <features.h>
-
-static int errors = 0;
-
-static void
-merror (const char *msg)
-{
- ++errors;
- printf ("Error: %s\n", msg);
-}
-
-int
-main (void)
-{
- void *p, *q;
-
- errno = 0;
-
- p = malloc (-1);
-
- if (p != NULL)
- merror ("malloc (-1) succeeded.");
- else if (errno != ENOMEM)
- merror ("errno is not set correctly.");
-
- p = malloc (10);
- if (p == NULL)
- merror ("malloc (10) failed.");
-
- p = realloc (p, 0);
- if (p != NULL)
- merror ("realloc (p, 0) failed.");
-
- p = malloc (0);
-#if !defined(__UCLIBC__) || defined(__MALLOC_GLIBC_COMPAT__)
- if (p == NULL)
-#else
- if (p != NULL)
-#endif
- merror ("malloc (0) failed.");
-
- p = realloc (p, 0);
- if (p != NULL)
- merror ("realloc (p, 0) failed.");
-
- q = malloc (256);
- if (q == NULL)
- merror ("malloc (256) failed.");
-
- p = malloc (512);
- if (p == NULL)
- merror ("malloc (512) failed.");
-
- if (realloc (p, -256) != NULL)
- merror ("realloc (p, -256) succeeded.");
- else if (errno != ENOMEM)
- merror ("errno is not set correctly.");
-
- free (p);
-
- p = malloc (512);
- if (p == NULL)
- merror ("malloc (512) failed.");
-
- if (realloc (p, -1) != NULL)
- merror ("realloc (p, -1) succeeded.");
- else if (errno != ENOMEM)
- merror ("errno is not set correctly.");
-
- free (p);
- free (q);
-
- return errors != 0;
-}
diff --git a/test/malloc/tst-obstack.c b/test/malloc/tst-obstack.c
deleted file mode 100644
index 1841946..0000000
--- a/test/malloc/tst-obstack.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/* Test case by Alexandre Duret-Lutz <duret_g(a)epita.fr>fr>.
- * test_obstack_printf() added by Anthony G. Basile <blueness.gentoo.org>.
- */
-
-#include <features.h>
-#include <obstack.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#define obstack_chunk_alloc verbose_malloc
-#define obstack_chunk_free verbose_free
-#define ALIGN_BOUNDARY 64
-#define ALIGN_MASK (ALIGN_BOUNDARY - 1)
-#define OBJECT_SIZE 1000
-
-static void *
-verbose_malloc (size_t size)
-{
- void *buf = malloc (size);
- printf ("malloc (%zu) => %p\n", size, buf);
- return buf;
-}
-
-static void
-verbose_free (void *buf)
-{
- free (buf);
- printf ("free (%p)\n", buf);
-}
-
-int
-test_obstack_alloc (void)
-{
- int result = 0;
- int align = 2;
-
- while (align <= 64)
- {
- struct obstack obs;
- int i;
- int align_mask = align - 1;
-
- printf ("\n Alignment mask: %d\n", align_mask);
-
- obstack_init (&obs);
- obstack_alignment_mask (&obs) = align_mask;
- /* finish an empty object to take alignment into account */
- obstack_finish (&obs);
-
- /* let's allocate some objects and print their addresses */
- for (i = 15; i > 0; --i)
- {
- void *obj = obstack_alloc (&obs, OBJECT_SIZE);
-
- printf ("obstack_alloc (%u) => %p \t%s\n", OBJECT_SIZE, obj,
- ((uintptr_t) obj & align_mask) ? "(not aligned)" : "");
- result |= ((uintptr_t) obj & align_mask) != 0;
- }
-
- /* clean up */
- obstack_free (&obs, 0);
-
- align <<= 1;
- }
-
- return result;
-}
-
-int
-test_obstack_printf (void)
-{
- int result = 0;
- int n;
- char *s;
- struct obstack ob;
-
- obstack_init (&ob);
-
- n = obstack_printf (&ob, "%s%d%c", "testing 1 ... 2 ... ", 3,
'\n');
- result |= (n != 22);
- printf("obstack_printf => %d\n", n);
-
- n = obstack_printf (&ob, "%s%d%c", "testing 3 ... 2 ... ", 1,
'\0');
- result |= (n != 22);
- printf("obstack_printf => %d\n", n);
-
- s = obstack_finish (&ob);
- printf("obstack_printf => %s\n", s);
- obstack_free (&ob, NULL);
-
- return result;
-}
-
-int
-main (void)
-{
- int result = 0;
-
- result |= test_obstack_alloc();
- result |= test_obstack_printf();
-
- return result;
-}
diff --git a/test/malloc/tst-valloc.c b/test/malloc/tst-valloc.c
deleted file mode 100644
index 643a0dd..0000000
--- a/test/malloc/tst-valloc.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Test case by Stephen Tweedie <sct(a)redhat.com>om>. */
-#include <unistd.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-int
-main (void)
-{
- char *p;
- int pagesize = getpagesize ();
- int i;
-
- p = valloc (pagesize);
- i = (long int) p;
-
- if ((i & (pagesize-1)) != 0)
- {
- fprintf (stderr, "Alignment problem: valloc returns %p\n", p);
- exit (1);
- }
-
- return 0;
-}
diff --git a/test/math/Makefile b/test/math/Makefile
deleted file mode 100644
index 6194efa..0000000
--- a/test/math/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc math tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/math/Makefile.in b/test/math/Makefile.in
deleted file mode 100644
index 3874001..0000000
--- a/test/math/Makefile.in
+++ /dev/null
@@ -1,46 +0,0 @@
-# uClibc math tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-# libm-test.c is a generated file used by the tests internally so skip it
-TESTS_DISABLED := libm-test
-
-# gamma (removed from TESTS, need to add "small errors are ok" machinery
there)
-TESTS_DISABLED += gamma
-ifeq ($(UCLIBC_HAS_LONG_DOUBLE_MATH),)
-TESTS_DISABLED += test-ldouble test-ildoubl compile_test c99_test
-CFLAGS_basic-test := -DNO_LONG_DOUBLE
-endif
-ifeq ($(DO_C99_MATH),)
-TESTS_DISABLED += test-float test-ifloat test-double test-idouble rint signgam ilogb
-endif
-ifeq ($(UCLIBC_HAS_FPU),)
-TESTS_DISABLED += test-fpucw
-endif
-
-DODIFF_rint := 1
-DODIFF_signgam := 1
-
-# NOTE: For basic-test we must disable the floating point optimization.
-# Only for sh architecture because in the other architecture are disabled.
-ifeq ($(TARGET_ARCH),sh)
-CFLAGS_basic-test += -mieee
-endif
-EXTRA_CFLAGS := -fno-builtin
-EXTRA_LDFLAGS := -lm
-
-PERL := perl
-
-MDEPS := $(wildcard test-*.c)
-$(MDEPS): libm-test.c
-
-ULP_SUFFIX :=
-ifeq ($(TARGET_ARCH),mips)
-ULP_SUFFIX:=$(if $(CONFIG_MIPS_N64_ABI),64,32)
-endif
-
-TARGET_ULP := $(if $(wildcard
libm-test-ulps-$(TARGET_ARCH)$(ULP_SUFFIX)),$(TARGET_ARCH)$(ULP_SUFFIX),generic)
-
-libm-test.c: libm-test-ulps-$(TARGET_ULP) libm-test.inc gen-libm-test.pl
- $(Q)$(PERL) ./gen-libm-test.pl -u libm-test-ulps-$(TARGET_ULP) ./libm-test.inc -o
"." 2>&1 > /dev/null
-
-EXTRA_CLEAN := libm-test.c libm-test-ulps.h
diff --git a/test/math/basic-test.c b/test/math/basic-test.c
deleted file mode 100644
index d073abb..0000000
--- a/test/math/basic-test.c
+++ /dev/null
@@ -1,161 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Andreas Jaeger <aj(a)suse.de>de>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#define _ISOC99_SOURCE
-
-#include <math.h>
-#include <float.h>
-#include <stdio.h>
-
-static int errors = 0;
-
-
-static void
-check (const char *testname, int result)
-{
- if (!result) {
- printf ("Failure: %s\n", testname);
- errors++;
- }
-}
-
-#define TEST_FUNC(NAME, FLOAT, NANFUNC, EPSILON, HUGEVAL) \
-static void \
-NAME (void) \
-{ \
- /* Variables are declared volatile to forbid some compiler \
- optimizations. */ \
- volatile FLOAT Inf_var, NaN_var, zero_var, one_var; \
- FLOAT x1, x2; \
- \
- zero_var = 0.0; \
- one_var = 1.0; \
- NaN_var = zero_var/zero_var; \
- Inf_var = one_var / zero_var; \
- \
- (void) &zero_var; \
- (void) &one_var; \
- (void) &NaN_var; \
- (void) &Inf_var; \
- \
- \
- check (#FLOAT " isinf (inf) == 1", isinf (Inf_var) == 1); \
- check (#FLOAT " isinf (-inf) == -1", isinf (-Inf_var) == -1); \
- check (#FLOAT " !isinf (1)", !(isinf (one_var))); \
- check (#FLOAT " !isinf (NaN)", !(isinf (NaN_var))); \
- \
- check (#FLOAT " isnan (NaN)", isnan (NaN_var)); \
- check (#FLOAT " isnan (-NaN)", isnan (-NaN_var)); \
- check (#FLOAT " !isnan (1)", !(isnan (one_var))); \
- check (#FLOAT " !isnan (inf)", !(isnan (Inf_var))); \
- \
- /* \
- the same tests but this time with NAN from <bits/nan.h> \
- NAN is a double const \
- */ \
- check (#FLOAT " isnan (NAN)", isnan (NAN)); \
- check (#FLOAT " isnan (-NAN)", isnan (-NAN)); \
- check (#FLOAT " !isinf (NAN)", !(isinf (NAN))); \
- check (#FLOAT " !isinf (-NAN)", !(isinf (-NAN))); \
- \
- /* \
- And again with the value returned by the `nan' function. \
- */ \
- check (#FLOAT " isnan (NAN)", isnan (NANFUNC (""))); \
- check (#FLOAT " isnan (-NAN)", isnan (-NANFUNC (""))); \
- check (#FLOAT " !isinf (NAN)", !(isinf (NANFUNC ("")))); \
- check (#FLOAT " !isinf (-NAN)", !(isinf (-NANFUNC (""))));
\
- check (#FLOAT " NAN != NAN", NANFUNC ("") != NANFUNC
("")); \
- \
- /* test if HUGE_VALx is ok */ \
- x1 = HUGEVAL; \
- check (#FLOAT " isinf (HUGE_VALx) == +1", isinf (x1) == +1); \
- x1 = - HUGEVAL; \
- check (#FLOAT " isinf (-HUGE_VALx) == -1", isinf (x1) == -1); \
-}
-#ifndef DO_C99_MATH
-# undef TEST_FUNC
-# define TEST_FUNC(NAME, FLOAT, NANFUNC, EPSILON, HUGEVAL) \
-static void \
-NAME(void) \
-{ /* nothing */ }
-#endif
-
-#define TEST_VAL(NAME, FLOAT, NANFUNC, EPSILON, HUGEVAL) \
-static void \
-NAME (void) \
-{ \
- /* Variables are declared volatile to forbid some compiler \
- optimizations. */ \
- volatile FLOAT Inf_var, NaN_var, zero_var, one_var; \
- FLOAT x1, x2; \
- \
- zero_var = 0.0; \
- one_var = 1.0; \
- NaN_var = zero_var/zero_var; \
- Inf_var = one_var / zero_var; \
- \
- (void) &zero_var; \
- (void) &one_var; \
- (void) &NaN_var; \
- (void) &Inf_var; \
- \
- \
- check (#FLOAT " inf == inf", Inf_var == Inf_var); \
- check (#FLOAT " -inf == -inf", -Inf_var == -Inf_var); \
- check (#FLOAT " inf != -inf", Inf_var != -Inf_var); \
- check (#FLOAT " NaN != NaN", NaN_var != NaN_var); \
- \
- check (#FLOAT " NAN != NAN", NAN != NAN); \
- \
- \
- /* test if EPSILON is ok */ \
- x1 = 1.0; \
- x2 = x1 + EPSILON; \
- check (#FLOAT " 1 != 1+EPSILON", x1 != x2); \
- \
- x1 = 1.0; \
- x2 = x1 - EPSILON; \
- check (#FLOAT " 1 != 1-EPSILON", x1 != x2); \
- \
-}
-
-TEST_VAL (float_test_value, float, nanf, FLT_EPSILON, HUGE_VALF)
-TEST_FUNC (float_test_call, float, nanf, FLT_EPSILON, HUGE_VALF)
-TEST_VAL (double_test_value, double, nan, DBL_EPSILON, HUGE_VAL)
-TEST_FUNC (double_test_call, double, nan, DBL_EPSILON, HUGE_VAL)
-#ifndef NO_LONG_DOUBLE
-TEST_VAL (ldouble_test_value, long double, nanl, LDBL_EPSILON, HUGE_VALL)
-TEST_FUNC (ldouble_test_call, long double, nanl, LDBL_EPSILON, HUGE_VALL)
-#endif
-
-int
-main (void)
-{
- float_test_value ();
- float_test_call ();
- double_test_value ();
- double_test_call ();
-
-#ifndef NO_LONG_DOUBLE
- ldouble_test_value ();
- ldouble_test_call ();
-#endif
-
- return errors != 0;
-}
diff --git a/test/math/c99_test.c b/test/math/c99_test.c
deleted file mode 100644
index 73382e4..0000000
--- a/test/math/c99_test.c
+++ /dev/null
@@ -1,116 +0,0 @@
-#include <math.h>
-#include <float.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <limits.h>
-#include <stdio.h>
-
-#define check_d1(func, param, expected) \
-do { \
- int err; hex_union ur; hex_union up; \
- double result = func(param); up.f = param; ur.f = result; \
- errors += (err = (result != (expected))); \
- err \
- ? printf("FAIL: %s(%g/"HEXFMT")=%g/"HEXFMT" (expected
%g)\n", \
- #func, (double)(param), (long long)up.hex, result, (long long)ur.hex,
(double)(expected)) \
- : printf("PASS: %s(%g)=%g\n", #func, (double)(param), result); \
-} while (0)
-
-#define check_i1(func, param, expected) \
-do { \
- int err; hex_union up; \
- long long result = func(param); up.f = param; \
- errors += (err = (result != (expected))); \
- err \
- ? printf("FAIL: %s(%g/"HEXFMT")=%lld/%llu (expected %llu)\n", \
- #func, (double)(param), (long long)up.hex, result, result, (long long)(expected)) \
- : printf("PASS: %s(%g)=%lld/%llu\n", #func, (double)(param), result, result);
\
-} while (0)
-
-#define HEXFMT "%08llx"
-typedef union {
- double f;
- uint64_t hex;
-} hex_union;
-
-double zero = 0.0;
-double minus_zero = 0.0;
-double nan_value = 0.0;
-int errors = 0;
-
-int main(void)
-{
- nan_value /= nan_value;
- minus_zero = copysign(zero, -1.0);
-
- check_i1(isfinite, 1.0, 1);
- check_i1(isfinite, 2.0, 1);
- check_i1(isfinite, 3.0, 1);
- check_i1(isfinite, DBL_MAX, 1);
- check_i1(isfinite, FLT_MAX, 1);
- check_i1(isfinite, HUGE_VAL, 0);
- check_i1(isfinite, HUGE_VALF, 0);
- check_i1(isfinite, HUGE_VALL, 0);
- check_i1(isfinite, nan_value, 0);
- check_i1(isfinite, nan_value, 0);
- check_i1(isfinite, nan_value, 0);
-
- check_i1(isnan, 1.0, 0);
- check_i1(isnan, 2.0, 0);
- check_i1(isnan, 3.0, 0);
- check_i1(isnan, DBL_MAX, 0);
- check_i1(isnan, FLT_MAX, 0);
- check_i1(isnan, HUGE_VAL, 0);
- check_i1(isnan, HUGE_VALF, 0);
- check_i1(isnan, HUGE_VALL, 0);
- check_i1(isnan, (float)HUGE_VALL, 0);
- check_i1(isnan, nan_value, 1);
- check_i1(isnan, nan_value, 1);
- check_i1(isnan, nan_value, 1);
-
- check_i1(isinf, 1.0, 0);
- check_i1(isinf, 2.0, 0);
- check_i1(isinf, 3.0, 0);
- check_i1(isinf, DBL_MAX, 0);
- check_i1(isinf, FLT_MAX, 0);
- check_i1(isinf, (float)DBL_MAX, 1);
- check_i1(isinf, HUGE_VAL, 1);
- check_i1(isinf, HUGE_VALF, 1);
- check_i1(isinf, HUGE_VALL, 1);
- check_i1(isinf, (float)HUGE_VALL, 1);
- check_i1(isinf, nan_value, 0);
- check_i1(isinf, nan_value, 0);
- check_i1(isinf, nan_value, 0);
-
- check_i1(fpclassify, minus_zero, FP_ZERO);
- check_i1(fpclassify, 0.0, FP_ZERO);
- check_i1(fpclassify, 1.0, FP_NORMAL);
- check_i1(fpclassify, 2.0, FP_NORMAL);
- check_i1(fpclassify, 3.0, FP_NORMAL);
- check_i1(fpclassify, DBL_MIN/1.01, FP_SUBNORMAL);
- check_i1(fpclassify, DBL_MIN, FP_NORMAL);
- check_i1(fpclassify, DBL_MAX, FP_NORMAL);
- check_i1(fpclassify, FLT_MAX, FP_NORMAL);
- check_i1(fpclassify, DBL_MAX, FP_NORMAL);
- check_i1(fpclassify, DBL_MAX*1.01, FP_INFINITE);
- check_i1(fpclassify, HUGE_VAL, FP_INFINITE);
- check_i1(fpclassify, HUGE_VALF, FP_INFINITE);
- check_i1(fpclassify, HUGE_VALL, FP_INFINITE);
- check_i1(fpclassify, (float)HUGE_VALL, FP_INFINITE);
- check_i1(fpclassify, nan_value, FP_NAN);
- check_i1(fpclassify, nan_value, FP_NAN);
- check_i1(fpclassify, nan_value, FP_NAN);
-
- check_i1(!!signbit, -1.0, 1);
- check_i1(!!signbit, minus_zero, 1);
- check_i1(!!signbit, 0.0, 0);
- check_i1(!!signbit, HUGE_VAL, 0);
- check_i1(!!signbit, HUGE_VALF, 0);
- check_i1(!!signbit, HUGE_VALL, 0);
- check_i1(!!signbit, -HUGE_VAL, 1);
- check_i1(!!signbit, -HUGE_VALF, 1);
- check_i1(!!signbit, -HUGE_VALL, 1);
-
- printf("Errors: %d\n", errors);
- return errors;
-}
diff --git a/test/math/compile_test.c b/test/math/compile_test.c
deleted file mode 100644
index aedfde6..0000000
--- a/test/math/compile_test.c
+++ /dev/null
@@ -1,141 +0,0 @@
-#include <math.h>
-
-static int testf(float float_x, long double long_double_x, /*float complex
float_complex_x,*/ int int_x, long long_x)
-{
-int r = 0;
-r += acosf(float_x);
-r += acoshf(float_x);
-r += asinf(float_x);
-r += asinhf(float_x);
-r += atan2f(float_x, float_x);
-r += atanf(float_x);
-r += atanhf(float_x);
-/*r += cargf(float_complex_x); - will fight with complex numbers later */
-r += cbrtf(float_x);
-r += ceilf(float_x);
-r += copysignf(float_x, float_x);
-r += cosf(float_x);
-r += coshf(float_x);
-r += erfcf(float_x);
-r += erff(float_x);
-r += exp2f(float_x);
-r += expf(float_x);
-r += expm1f(float_x);
-r += fabsf(float_x);
-r += fdimf(float_x, float_x);
-r += floorf(float_x);
-r += fmaf(float_x, float_x, float_x);
-r += fmaxf(float_x, float_x);
-r += fminf(float_x, float_x);
-r += fmodf(float_x, float_x);
-r += frexpf(float_x, &int_x);
-r += gammaf(float_x);
-r += hypotf(float_x, float_x);
-r += ilogbf(float_x);
-r += ldexpf(float_x, int_x);
-r += lgammaf(float_x);
-r += llrintf(float_x);
-r += llroundf(float_x);
-r += log10f(float_x);
-r += log1pf(float_x);
-r += log2f(float_x);
-r += logbf(float_x);
-r += logf(float_x);
-r += lrintf(float_x);
-r += lroundf(float_x);
-r += modff(float_x, &float_x);
-r += nearbyintf(float_x);
-r += nexttowardf(float_x, long_double_x);
-r += powf(float_x, float_x);
-r += remainderf(float_x, float_x);
-r += remquof(float_x, float_x, &int_x);
-r += rintf(float_x);
-r += roundf(float_x);
-#ifdef __UCLIBC_SUSV3_LEGACY__
-r += scalbf(float_x, float_x);
-#endif
-r += scalblnf(float_x, long_x);
-r += scalbnf(float_x, int_x);
-r += significandf(float_x);
-r += sinf(float_x);
-r += sinhf(float_x);
-r += sqrtf(float_x);
-r += tanf(float_x);
-r += tanhf(float_x);
-r += tgammaf(float_x);
-r += truncf(float_x);
-return r;
-}
-
-static int testl(long double long_double_x, int int_x, long long_x)
-{
-int r = 0;
-r += __finitel(long_double_x);
-r += __fpclassifyl(long_double_x);
-r += __isinfl(long_double_x);
-r += __isnanl(long_double_x);
-r += __signbitl(long_double_x);
-r += acoshl(long_double_x);
-r += acosl(long_double_x);
-r += asinhl(long_double_x);
-r += asinl(long_double_x);
-r += atan2l(long_double_x, long_double_x);
-r += atanhl(long_double_x);
-r += atanl(long_double_x);
-r += cbrtl(long_double_x);
-r += ceill(long_double_x);
-r += copysignl(long_double_x, long_double_x);
-r += coshl(long_double_x);
-r += cosl(long_double_x);
-r += erfcl(long_double_x);
-r += erfl(long_double_x);
-r += exp2l(long_double_x);
-r += expl(long_double_x);
-r += expm1l(long_double_x);
-r += fabsl(long_double_x);
-r += fdiml(long_double_x, long_double_x);
-r += floorl(long_double_x);
-r += fmal(long_double_x, long_double_x, long_double_x);
-r += fmaxl(long_double_x, long_double_x);
-r += fminl(long_double_x, long_double_x);
-r += fmodl(long_double_x, long_double_x);
-r += frexpl(long_double_x, &int_x);
-r += hypotl(long_double_x, long_double_x);
-r += ilogbl(long_double_x);
-r += ldexpl(long_double_x, int_x);
-r += lgammal(long_double_x);
-r += llrintl(long_double_x);
-r += llroundl(long_double_x);
-r += log10l(long_double_x);
-r += log1pl(long_double_x);
-r += log2l(long_double_x);
-r += logbl(long_double_x);
-r += logl(long_double_x);
-r += lrintl(long_double_x);
-r += lroundl(long_double_x);
-r += modfl(long_double_x, &long_double_x);
-r += nearbyintl(long_double_x);
-r += nextafterl(long_double_x, long_double_x);
-r += nexttowardl(long_double_x, long_double_x);
-r += powl(long_double_x, long_double_x);
-r += remainderl(long_double_x, long_double_x);
-r += remquol(long_double_x, long_double_x, &int_x);
-r += rintl(long_double_x);
-r += roundl(long_double_x);
-r += scalblnl(long_double_x, long_x);
-r += scalbnl(long_double_x, int_x);
-r += sinhl(long_double_x);
-r += sinl(long_double_x);
-r += sqrtl(long_double_x);
-r += tanhl(long_double_x);
-r += tanl(long_double_x);
-r += tgammal(long_double_x);
-r += truncl(long_double_x);
-return r;
-}
-
-int main(int argc, char **argv)
-{
- /* Always 0 but gcc hopefully won't be able to notice */
- return 5 & ((long)&testf) & ((long)&testl) & 2;
-}
diff --git a/test/math/fenv.h b/test/math/fenv.h
deleted file mode 100644
index 0025a62..0000000
--- a/test/math/fenv.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* until we support fenv ... */
-#define feclearexcept(X)
-#define fetestexcept(X) (0)
diff --git a/test/math/gamma.c b/test/math/gamma.c
deleted file mode 100644
index 69c10af..0000000
--- a/test/math/gamma.c
+++ /dev/null
@@ -1,73 +0,0 @@
-#include <math.h>
-#include <float.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <stdio.h>
-
-#define check_d1(func, param, expected) \
-do { \
- int err; hex_union ur; hex_union up; \
- double result = func(param); up.f = param; ur.f = result; \
- errors += (err = (result != (expected))); \
- err \
- ? printf("FAIL: %s(%g/"HEXFMT")=%g/"HEXFMT" (expected
%g)\n", \
- #func, (double)(param), (long long)up.hex, result, (long long)ur.hex,
(double)(expected)) \
- : printf("PASS: %s(%g)=%g\n", #func, (double)(param), result); \
-} while (0)
-
-#define HEXFMT "%08llx"
-typedef union {
- double f;
- uint64_t hex;
-} hex_union;
-double result;
-
-#define M_2_SQRT_PIl 3.5449077018110320545963349666822903L /* 2 sqrt (M_PIl) */
-#define M_SQRT_PIl 1.7724538509055160272981674833411451L /* sqrt (M_PIl) */
-
-double zero = 0.0;
-double minus_zero = 0.0;
-double nan_value = 0.0;
-int errors = 0;
-
-int main(void)
-{
- nan_value /= nan_value;
- minus_zero = copysign(zero, -1.0);
-
- //check_d1(tgamma, HUGE_VAL, NAN);
- //check_d1(tgamma, negative_integer, NAN);
- check_d1(tgamma, 0.0, HUGE_VAL); /* pole */
- check_d1(tgamma, minus_zero, -HUGE_VAL); /* pole */
- check_d1(tgamma, DBL_MAX/2, HUGE_VAL); /* overflow to inf */
- check_d1(tgamma, DBL_MAX, HUGE_VAL); /* overflow to inf */
- check_d1(tgamma, HUGE_VAL, HUGE_VAL); /* overflow to inf */
- check_d1(tgamma, 7, 2*3*4*5*6); /* normal value */
- check_d1(tgamma, -0.5, -M_2_SQRT_PIl); /* normal value (testing negative points) */
-
- check_d1(lgamma, -HUGE_VAL, HUGE_VAL);
- //check_d1(lgamma, HUGE_VAL, NAN);
- check_d1(lgamma, 0.0, HUGE_VAL); /* pole */
- check_d1(lgamma, minus_zero, HUGE_VAL); /* pole */
- check_d1(lgamma, 1.0, 0.0);
- check_d1(lgamma, 2.0, 0.0);
- check_d1(lgamma, DBL_MAX/2, HUGE_VAL); /* overflow to inf */
- check_d1(lgamma, DBL_MAX, HUGE_VAL); /* overflow to inf */
- check_d1(lgamma, HUGE_VAL, HUGE_VAL); /* overflow to inf */
- check_d1(lgamma, 7, log(2*3*4*5*6)); /* normal value */
-
- /* In glibc, gamma == lgamma. (In BSD, it's == tgamma */
- check_d1(gamma, -HUGE_VAL, HUGE_VAL);
- //check_d1(gamma, HUGE_VAL, NAN);
- check_d1(gamma, 0.0, HUGE_VAL); /* pole */
- check_d1(gamma, minus_zero, HUGE_VAL); /* pole */
- check_d1(gamma, 1.0, 0.0);
- check_d1(gamma, 2.0, 0.0);
- check_d1(gamma, DBL_MAX/2, HUGE_VAL); /* overflow to inf */
- check_d1(gamma, DBL_MAX, HUGE_VAL); /* overflow to inf */
- check_d1(gamma, HUGE_VAL, HUGE_VAL); /* overflow to inf */
- check_d1(gamma, 7, log(2*3*4*5*6)); /* normal value */
-
- printf("Errors: %d\n", errors);
- return errors;
-}
diff --git a/test/math/gen-libm-test.pl b/test/math/gen-libm-test.pl
deleted file mode 100755
index 118f352..0000000
--- a/test/math/gen-libm-test.pl
+++ /dev/null
@@ -1,737 +0,0 @@
-#!/usr/bin/env perl
-# Copyright (C) 1999 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-# Contributed by Andreas Jaeger <aj(a)suse.de>de>, 1999.
-
-# The GNU C Library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-
-# The GNU C Library 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
-# Lesser General Public License for more details.
-
-# You should have received a copy of the GNU Lesser General Public
-# License along with the GNU C Library; see the file COPYING.LIB. If
-# not, see <http://www.gnu.org/licenses/>.
-
-# This file needs to be tidied up
-# Note that functions and tests share the same namespace.
-
-# Information about tests are stored in: %results
-# $results{$test}{"kind"} is either "fct" or "test" and
flags whether this
-# is a maximal error of a function or a single test.
-# $results{$test}{"type"} is the result type, e.g. normal or complex.
-# $results{$test}{"has_ulps"} is set if deltas exist.
-# $results{$test}{"has_fails"} is set if exptected failures exist.
-# In the following description $type and $float are:
-# - $type is either "normal", "real" (for the real part of a complex
number)
-# or "imag" (for the imaginary part # of a complex number).
-# - $float is either of float, ifloat, double, idouble, ldouble, ildouble;
-# It represents the underlying floating point type (float, double or long
-# double) and if inline functions (the leading i stands for inline)
-# are used.
-# $results{$test}{$type}{"fail"}{$float} is defined and has a 1 if
-# the test is expected to fail
-# $results{$test}{$type}{"ulp"}{$float} is defined and has a delta as value
-
-
-use Getopt::Std;
-
-use strict;
-
-use vars qw ($input $output);
-use vars qw (%results);
-use vars qw (@tests @functions);
-use vars qw ($count);
-use vars qw (%beautify @all_floats);
-use vars qw ($output_dir $ulps_file);
-
-# all_floats is sorted and contains all recognised float types
-@all_floats = ('double', 'float', 'idouble',
- 'ifloat', 'ildouble', 'ldouble');
-
-%beautify =
- ( "minus_zero" => "-0",
- "plus_zero" => "+0",
- "minus_infty" => "-inf",
- "plus_infty" => "inf",
- "nan_value" => "NaN",
- "M_El" => "e",
- "M_E2l" => "e^2",
- "M_E3l" => "e^3",
- "M_LOG10El", "log10(e)",
- "M_PIl" => "pi",
- "M_PI_34l" => "3/4 pi",
- "M_PI_2l" => "pi/2",
- "M_PI_4l" => "pi/4",
- "M_PI_6l" => "pi/6",
- "M_PI_34_LOG10El" => "3/4 pi*log10(e)",
- "M_PI_LOG10El" => "pi*log10(e)",
- "M_PI2_LOG10El" => "pi/2*log10(e)",
- "M_PI4_LOG10El" => "pi/4*log10(e)",
- "M_LOG_SQRT_PIl" => "log(sqrt(pi))",
- "M_LOG_2_SQRT_PIl" => "log(2*sqrt(pi))",
- "M_2_SQRT_PIl" => "2 sqrt (pi)",
- "M_SQRT_PIl" => "sqrt (pi)",
- "INVALID_EXCEPTION" => "invalid exception",
- "DIVIDE_BY_ZERO_EXCEPTION" => "division by zero exception",
- "INVALID_EXCEPTION_OK" => "invalid exception allowed",
- "DIVIDE_BY_ZERO_EXCEPTION_OK" => "division by zero exception
allowed",
- "EXCEPTIONS_OK" => "exceptions allowed",
- "IGNORE_ZERO_INF_SIGN" => "sign of zero/inf not specified",
-"INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN" => "invalid exception and sign
of zero/inf not specified"
- );
-
-
-# get Options
-# Options:
-# u: ulps-file
-# h: help
-# o: output-directory
-# n: generate new ulps file
-use vars qw($opt_u $opt_h $opt_o $opt_n);
-getopts('u:o:nh');
-
-$ulps_file = 'libm-test-ulps';
-$output_dir = '';
-
-if ($opt_h) {
- print "Usage: gen-libm-test.pl [OPTIONS]\n";
- print " -h print this help, then exit\n";
- print " -o DIR directory where generated files will be placed\n";
- print " -n only generate sorted file NewUlps from libm-test-ulps\n";
- print " -u FILE input file with ulps\n";
- exit 0;
-}
-
-$ulps_file = $opt_u if ($opt_u);
-$output_dir = $opt_o if ($opt_o);
-
-$input = "libm-test.inc";
-$output = "${output_dir}libm-test.c";
-
-$count = 0;
-
-&parse_ulps ($ulps_file);
-&generate_testfile ($input, $output) unless ($opt_n);
-&output_ulps ("${output_dir}libm-test-ulps.h", $ulps_file) unless
($opt_n);
-&print_ulps_file ("${output_dir}NewUlps") if ($opt_n);
-
-# Return a nicer representation
-sub beautify {
- my ($arg) = @_;
- my ($tmp);
-
- if (exists $beautify{$arg}) {
- return $beautify{$arg};
- }
- if ($arg =~ /^-/) {
- $tmp = $arg;
- $tmp =~ s/^-//;
- if (exists $beautify{$tmp}) {
- return '-' . $beautify{$tmp};
- }
- }
- if ($arg =~ /[0-9]L$/) {
- $arg =~ s/L$//;
- }
- return $arg;
-}
-
-# Return a nicer representation of a complex number
-sub build_complex_beautify {
- my ($r, $i) = @_;
- my ($str1, $str2);
-
- $str1 = &beautify ($r);
- $str2 = &beautify ($i);
- if ($str2 =~ /^-/) {
- $str2 =~ s/^-//;
- $str1 .= ' - ' . $str2;
- } else {
- $str1 .= ' + ' . $str2;
- }
- $str1 .= ' i';
- return $str1;
-}
-
-# Return name of a variable
-sub get_variable {
- my ($number) = @_;
-
- return "x" if ($number == 1);
- return "y" if ($number == 2);
- return "z" if ($number == 3);
- # return x1,x2,...
- $number =-3;
- return "x$number";
-}
-
-# Add a new test to internal data structures and fill in the
-# ulps, failures and exception information for the C line.
-sub new_test {
- my ($test, $exception) = @_;
- my $rest;
-
- # Add ulp, xfail
- if (exists $results{$test}{'has_ulps'}) {
- $rest = ", DELTA$count";
- } else {
- $rest = ', 0';
- }
- if (exists $results{$test}{'has_fails'}) {
- $rest .= ", FAIL$count";
- } else {
- $rest .= ', 0';
- }
- if (defined $exception) {
- $rest .= ", $exception";
- } else {
- $rest .= ', 0';
- }
- $rest .= ");\n";
- # We must increment here to keep @tests and count in sync
- push @tests, $test;
- ++$count;
- return $rest;
-}
-
-# Treat some functions especially.
-# Currently only sincos needs extra treatment.
-sub special_functions {
- my ($file, $args) = @_;
- my (@args, $str, $test, $cline);
-
- @args = split /,\s*/, $args;
-
- unless ($args[0] =~ /sincos/) {
- die ("Don't know how to handle $args[0] extra.");
- }
- print $file " FUNC (sincos) ($args[1], &sin_res, &cos_res);\n";
-
- $str = 'sincos (' . &beautify ($args[1]) . ', &sin_res,
&cos_res)';
- # handle sin
- $test = $str . ' puts ' . &beautify ($args[2]) . ' in sin_res';
- if ($#args == 4) {
- $test .= " plus " . &beautify ($args[4]);
- }
-
- $cline = " check_float (\"$test\", sin_res, $args[2]";
- $cline .= &new_test ($test, $args[4]);
- print $file $cline;
-
- # handle cos
- $test = $str . ' puts ' . &beautify ($args[3]) . ' in cos_res';
- $cline = " check_float (\"$test\", cos_res, $args[3]";
- # only tests once for exception
- $cline .= &new_test ($test, undef);
- print $file $cline;
-}
-
-# Parse the arguments to TEST_x_y
-sub parse_args {
- my ($file, $descr, $args) = @_;
- my (@args, $str, $descr_args, $descr_res, @descr);
- my ($current_arg, $cline, $i);
- my ($pre, $post, @special);
- my ($extra_var, $call, $c_call);
-
- if ($descr eq 'extra') {
- &special_functions ($file, $args);
- return;
- }
- ($descr_args, $descr_res) = split /_/,$descr, 2;
-
- @args = split /,\s*/, $args;
-
- $call = "$args[0] (";
-
- # Generate first the string that's shown to the user
- $current_arg = 1;
- $extra_var = 0;
- @descr = split //,$descr_args;
- for ($i = 0; $i <= $#descr; $i++) {
- if ($i >= 1) {
- $call .= ', ';
- }
- # FLOAT, int, long int, long long int
- if ($descr[$i] =~ /f|i|l|L/) {
- $call .= &beautify ($args[$current_arg]);
- ++$current_arg;
- next;
- }
- # &FLOAT, &int - argument is added here
- if ($descr[$i] =~ /F|I/) {
- ++$extra_var;
- $call .= '&' . &get_variable ($extra_var);
- next;
- }
- # complex
- if ($descr[$i] eq 'c') {
- $call .= &build_complex_beautify ($args[$current_arg], $args[$current_arg+1]);
- $current_arg += 2;
- next;
- }
-
- die ("$descr[$i] is unknown");
- }
- $call .= ')';
- $str = "$call == ";
-
- # Result
- @descr = split //,$descr_res;
- foreach (@descr) {
- if ($_ =~ /f|i|l|L/) {
- $str .= &beautify ($args[$current_arg]);
- ++$current_arg;
- } elsif ($_ eq 'c') {
- $str .= &build_complex_beautify ($args[$current_arg], $args[$current_arg+1]);
- $current_arg += 2;
- } elsif ($_ eq 'b') {
- # boolean
- $str .= ($args[$current_arg] == 0) ? "false" : "true";
- ++$current_arg;
- } elsif ($_ eq '1') {
- ++$current_arg;
- } else {
- die ("$_ is unknown");
- }
- }
- # consistency check
- if ($current_arg == $#args) {
- die ("wrong number of arguments")
- unless ($args[$current_arg] =~ /EXCEPTION|IGNORE_ZERO_INF_SIGN/);
- } elsif ($current_arg < $#args) {
- die ("wrong number of arguments");
- } elsif ($current_arg > ($#args+1)) {
- die ("wrong number of arguments");
- }
-
-
- # check for exceptions
- if ($current_arg <= $#args) {
- $str .= " plus " . &beautify ($args[$current_arg]);
- }
-
- # Put the C program line together
- # Reset some variables to start again
- $current_arg = 1;
- $extra_var = 0;
- if (substr($descr_res,0,1) eq 'f') {
- $cline = 'check_float'
- } elsif (substr($descr_res,0,1) eq 'b') {
- $cline = 'check_bool';
- } elsif (substr($descr_res,0,1) eq 'c') {
- $cline = 'check_complex';
- } elsif (substr($descr_res,0,1) eq 'i') {
- $cline = 'check_int';
- } elsif (substr($descr_res,0,1) eq 'l') {
- $cline = 'check_long';
- } elsif (substr($descr_res,0,1) eq 'L') {
- $cline = 'check_longlong';
- }
- # Special handling for some macros:
- $cline .= " (\"$str\", ";
- if ($args[0] =~ /fpclassify|isnormal|isfinite|signbit/) {
- $c_call = "$args[0] (";
- } else {
- $c_call = " FUNC($args[0]) (";
- }
- @descr = split //,$descr_args;
- for ($i=0; $i <= $#descr; $i++) {
- if ($i >= 1) {
- $c_call .= ', ';
- }
- # FLOAT, int, long int, long long int
- if ($descr[$i] =~ /f|i|l|L/) {
- $c_call .= $args[$current_arg];
- $current_arg++;
- next;
- }
- # &FLOAT, &int
- if ($descr[$i] =~ /F|I/) {
- ++$extra_var;
- $c_call .= '&' . &get_variable ($extra_var);
- next;
- }
- # complex
- if ($descr[$i] eq 'c') {
- $c_call .= "BUILD_COMPLEX ($args[$current_arg], $args[$current_arg+1])";
- $current_arg += 2;
- next;
- }
- }
- $c_call .= ')';
- $cline .= "$c_call, ";
-
- @descr = split //,$descr_res;
- foreach (@descr) {
- if ($_ =~ /b|f|i|l|L/ ) {
- $cline .= $args[$current_arg];
- $current_arg++;
- } elsif ($_ eq 'c') {
- $cline .= "BUILD_COMPLEX ($args[$current_arg], $args[$current_arg+1])";
- $current_arg += 2;
- } elsif ($_ eq '1') {
- push @special, $args[$current_arg];
- ++$current_arg;
- }
- }
- # Add ulp, xfail
- $cline .= &new_test ($str, ($current_arg <= $#args) ? $args[$current_arg] :
undef);
-
- # special treatment for some functions
- if ($args[0] eq 'frexp') {
- if (defined $special[0] && $special[0] ne "IGNORE") {
- my ($str) = "$call sets x to $special[0]";
- $post = " check_int (\"$str\", x, $special[0]";
- $post .= &new_test ($str, undef);
- }
- } elsif ($args[0] eq 'gamma' || $args[0] eq 'lgamma') {
- $pre = " signgam = 0;\n";
- if (defined $special[0] && $special[0] ne "IGNORE") {
- my ($str) = "$call sets signgam to $special[0]";
- $post = " check_int (\"$str\", signgam, $special[0]";
- $post .= &new_test ($str, undef);
- }
- } elsif ($args[0] eq 'modf') {
- if (defined $special[0] && $special[0] ne "IGNORE") {
- my ($str) = "$call sets x to $special[0]";
- $post = " check_float (\"$str\", x, $special[0]";
- $post .= &new_test ($str, undef);
- }
- } elsif ($args[0] eq 'remquo') {
- if (defined $special[0] && $special[0] ne "IGNORE") {
- my ($str) = "$call sets x to $special[0]";
- $post = " check_int (\"$str\", x, $special[0]";
- $post .= &new_test ($str, undef);
- }
- }
-
- print $file $pre if (defined $pre);
-
- print $file " $cline";
-
- print $file $post if (defined $post);
-}
-
-# Generate libm-test.c
-sub generate_testfile {
- my ($input, $output) = @_;
- my ($lasttext);
- my (@args, $i, $str);
-
- open INPUT, $input or die ("Can't open $input: $!");
- open OUTPUT, ">$output" or die ("Can't open $output: $!");
-
- # Replace the special macros
- while (<INPUT>) {
-
- # TEST_...
- if (/^\s*TEST_/) {
- my ($descr, $args);
- chop;
- ($descr, $args) = ($_ =~ /TEST_(\w+)\s*\((.*)\)/);
- &parse_args (\*OUTPUT, $descr, $args);
- next;
- }
- # START (function)
- if (/START/) {
- print OUTPUT " init_max_error ();\n";
- next;
- }
- # END (function)
- if (/END/) {
- my ($fct, $line, $type);
- if (/complex/) {
- s/,\s*complex\s*//;
- $type = 'complex';
- } else {
- $type = 'normal';
- }
- ($fct) = ($_ =~ /END\s*\((.*)\)/);
- if ($type eq 'complex') {
- $line = " print_complex_max_error (\"$fct\", ";
- } else {
- $line = " print_max_error (\"$fct\", ";
- }
- if (exists $results{$fct}{'has_ulps'}) {
- $line .= "DELTA$fct";
- } else {
- $line .= '0';
- }
- if (exists $results{$fct}{'has_fails'}) {
- $line .= ", FAIL$fct";
- } else {
- $line .= ', 0';
- }
- $line .= ");\n";
- print OUTPUT $line;
- push @functions, $fct;
- next;
- }
- print OUTPUT;
- }
- close INPUT;
- close OUTPUT;
-}
-
-
-
-# Parse ulps file
-sub parse_ulps {
- my ($file) = @_;
- my ($test, $type, $float, $eps, $kind);
-
- # $type has the following values:
- # "normal": No complex variable
- # "real": Real part of complex result
- # "imag": Imaginary part of complex result
- open ULP, $file or die ("Can't open $file: $!");
- while (<ULP>) {
- chop;
- # ignore comments and empty lines
- next if /^#/;
- next if /^\s*$/;
- if (/^Test/) {
- if (/Real part of:/) {
- s/Real part of: //;
- $type = 'real';
- } elsif (/Imaginary part of:/) {
- s/Imaginary part of: //;
- $type = 'imag';
- } else {
- $type = 'normal';
- }
- s/^.+\"(.*)\".*$/$1/;
- $test = $_;
- $kind = 'test';
- next;
- }
- if (/^Function: /) {
- if (/Real part of/) {
- s/Real part of //;
- $type = 'real';
- } elsif (/Imaginary part of/) {
- s/Imaginary part of //;
- $type = 'imag';
- } else {
- $type = 'normal';
- }
- ($test) = ($_ =~ /^Function:\s*\"([a-zA-Z0-9_]+)\"/);
- $kind = 'fct';
- next;
- }
- if (/^i?(float|double|ldouble):/) {
- ($float, $eps) = split /\s*:\s*/,$_,2;
-
- if ($eps eq 'fail') {
- $results{$test}{$type}{'fail'}{$float} = 1;
- $results{$test}{'has_fails'} = 1;
- } elsif ($eps eq "0") {
- # ignore
- next;
- } else {
- $results{$test}{$type}{'ulp'}{$float} = $eps;
- $results{$test}{'has_ulps'} = 1;
- }
- if ($type =~ /^real|imag$/) {
- $results{$test}{'type'} = 'complex';
- } elsif ($type eq 'normal') {
- $results{$test}{'type'} = 'normal';
- }
- $results{$test}{'kind'} = $kind;
- next;
- }
- print "Skipping unknown entry: `$_'\n";
- }
- close ULP;
-}
-
-
-# Clean up a floating point number
-sub clean_up_number {
- my ($number) = @_;
-
- # Remove trailing zeros
- $number =~ s/0+$//;
- $number =~ s/\.$//;
- return $number;
-}
-
-# Output a file which can be read in as ulps file.
-sub print_ulps_file {
- my ($file) = @_;
- my ($test, $type, $float, $eps, $fct, $last_fct);
-
- $last_fct = '';
- open NEWULP, ">$file" or die ("Can't open $file: $!");
- print NEWULP "# Begin of automatic generation\n";
- # first the function calls
- foreach $test (sort keys %results) {
- next if ($results{$test}{'kind'} ne 'test');
- foreach $type ('real', 'imag', 'normal') {
- if (exists $results{$test}{$type}) {
- if (defined $results{$test}) {
- ($fct) = ($test =~ /^(\w+)\s/);
- if ($fct ne $last_fct) {
- $last_fct = $fct;
- print NEWULP "\n# $fct\n";
- }
- }
- if ($type eq 'normal') {
- print NEWULP "Test \"$test\":\n";
- } elsif ($type eq 'real') {
- print NEWULP "Test \"Real part of: $test\":\n";
- } elsif ($type eq 'imag') {
- print NEWULP "Test \"Imaginary part of: $test\":\n";
- }
- foreach $float (@all_floats) {
- if (exists $results{$test}{$type}{'ulp'}{$float}) {
- print NEWULP "$float: ",
- &clean_up_number ($results{$test}{$type}{'ulp'}{$float}),
- "\n";
- }
- if (exists $results{$test}{$type}{'fail'}{$float}) {
- print NEWULP "$float: fail\n";
- }
- }
- }
- }
- }
- print NEWULP "\n# Maximal error of functions:\n";
-
- foreach $fct (sort keys %results) {
- next if ($results{$fct}{'kind'} ne 'fct');
- foreach $type ('real', 'imag', 'normal') {
- if (exists $results{$fct}{$type}) {
- if ($type eq 'normal') {
- print NEWULP "Function: \"$fct\":\n";
- } elsif ($type eq 'real') {
- print NEWULP "Function: Real part of \"$fct\":\n";
- } elsif ($type eq 'imag') {
- print NEWULP "Function: Imaginary part of \"$fct\":\n";
- }
- foreach $float (@all_floats) {
- if (exists $results{$fct}{$type}{'ulp'}{$float}) {
- print NEWULP "$float: ",
- &clean_up_number ($results{$fct}{$type}{'ulp'}{$float}),
- "\n";
- }
- if (exists $results{$fct}{$type}{'fail'}{$float}) {
- print NEWULP "$float: fail\n";
- }
- }
- print NEWULP "\n";
- }
- }
- }
- print NEWULP "# end of automatic generation\n";
- close NEWULP;
-}
-
-sub get_ulps {
- my ($test, $type, $float) = @_;
-
- if ($type eq 'complex') {
- my ($res);
- # Return 0 instead of BUILD_COMPLEX (0,0)
- if (!exists $results{$test}{'real'}{'ulp'}{$float} &&
- !exists $results{$test}{'imag'}{'ulp'}{$float}) {
- return "0";
- }
- $res = 'BUILD_COMPLEX (';
- $res .= (exists $results{$test}{'real'}{'ulp'}{$float}
- ? $results{$test}{'real'}{'ulp'}{$float} : "0");
- $res .= ', ';
- $res .= (exists $results{$test}{'imag'}{'ulp'}{$float}
- ? $results{$test}{'imag'}{'ulp'}{$float} : "0");
- $res .= ')';
- return $res;
- }
- return (exists $results{$test}{'normal'}{'ulp'}{$float}
- ? $results{$test}{'normal'}{'ulp'}{$float} : "0");
-}
-
-sub get_failure {
- my ($test, $type, $float) = @_;
- if ($type eq 'complex') {
- # return x,y
- my ($res);
- # Return 0 instead of BUILD_COMPLEX_INT (0,0)
- if (!exists $results{$test}{'real'}{'ulp'}{$float} &&
- !exists $results{$test}{'imag'}{'ulp'}{$float}) {
- return "0";
- }
- $res = 'BUILD_COMPLEX_INT (';
- $res .= (exists $results{$test}{'real'}{'fail'}{$float}
- ? $results{$test}{'real'}{'fail'}{$float} : "0");
- $res .= ', ';
- $res .= (exists $results{$test}{'imag'}{'fail'}{$float}
- ? $results{$test}{'imag'}{'fail'}{$float} : "0");
- $res .= ')';
- return $res;
- }
- return (exists $results{$test}{'normal'}{'fail'}{$float}
- ? $results{$test}{'normal'}{'fail'}{$float} : "0");
-
-}
-
-# Output the defines for a single test
-sub output_test {
- my ($file, $test, $name) = @_;
- my ($ldouble, $double, $float, $ildouble, $idouble, $ifloat);
- my ($type);
-
- # Do we have ulps/failures?
- if (!exists $results{$test}{'type'}) {
- return;
- }
- $type = $results{$test}{'type'};
- if (exists $results{$test}{'has_ulps'}) {
- # XXX use all_floats (change order!)
- $ldouble = &get_ulps ($test, $type, "ldouble");
- $double = &get_ulps ($test, $type, "double");
- $float = &get_ulps ($test, $type, "float");
- $ildouble = &get_ulps ($test, $type, "ildouble");
- $idouble = &get_ulps ($test, $type, "idouble");
- $ifloat = &get_ulps ($test, $type, "ifloat");
- print $file "#define DELTA$name CHOOSE($ldouble, $double, $float, $ildouble,
$idouble, $ifloat)\t/* $test */\n";
- }
-
- if (exists $results{$test}{'has_fails'}) {
- $ldouble = &get_failure ($test, "ldouble");
- $double = &get_failure ($test, "double");
- $float = &get_failure ($test, "float");
- $ildouble = &get_failure ($test, "ildouble");
- $idouble = &get_failure ($test, "idouble");
- $ifloat = &get_failure ($test, "ifloat");
- print $file "#define FAIL$name CHOOSE($ldouble, $double, $float $ildouble,
$idouble, $ifloat)\t/* $test */\n";
- }
-}
-
-# Print include file
-sub output_ulps {
- my ($file, $ulps_filename) = @_;
- my ($i, $fct);
-
- open ULP, ">$file" or die ("Can't open $file: $!");
-
- print ULP "/* This file is automatically generated\n";
- print ULP " from $ulps_filename with gen-libm-test.pl.\n";
- print ULP " Don't change it - change instead the master files.
*/\n\n";
-
- print ULP "\n/* Maximal error of functions. */\n";
- foreach $fct (@functions) {
- output_test (\*ULP, $fct, $fct);
- }
-
- print ULP "\n/* Error of single function calls. */\n";
- for ($i = 0; $i < $count; $i++) {
- output_test (\*ULP, $tests[$i], $i);
- }
- close ULP;
-}
diff --git a/test/math/ilogb.c b/test/math/ilogb.c
deleted file mode 100644
index 041e66b..0000000
--- a/test/math/ilogb.c
+++ /dev/null
@@ -1,52 +0,0 @@
-#include <math.h>
-#include <float.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <limits.h>
-#include <stdio.h>
-
-#define check_d1(func, param, expected) \
-do { \
- int err; hex_union ur; hex_union up; \
- double result = func(param); up.f = param; ur.f = result; \
- errors += (err = (result != (expected))); \
- err \
- ? printf("FAIL: %s(%g/"HEXFMT")=%g/"HEXFMT" (expected
%g)\n", \
- #func, (double)(param), (long long)up.hex, result, (long long)ur.hex,
(double)(expected)) \
- : printf("PASS: %s(%g)=%g\n", #func, (double)(param), result); \
-} while (0)
-
-#define check_i1(func, param, expected) \
-do { \
- int err; hex_union up; \
- long long result = func(param); up.f = param; \
- errors += (err = (result != (expected))); \
- err \
- ? printf("FAIL: %s(%g/"HEXFMT")=%lld/%llu (expected %llu)\n", \
- #func, (double)(param), (long long)up.hex, result, result, (long long)(expected)) \
- : printf("PASS: %s(%g)=%lld/%llu\n", #func, (double)(param), result, result);
\
-} while (0)
-
-#define HEXFMT "%08llx"
-typedef union {
- double f;
- uint64_t hex;
-} hex_union;
-
-double nan_value = 0.0;
-int errors = 0;
-
-int main(void)
-{
- nan_value /= nan_value;
-
- check_i1(ilogb, 0.0, FP_ILOGB0);
- check_i1(ilogb, HUGE_VAL, INT_MAX);
- check_i1(ilogb, nan_value, FP_ILOGBNAN);
- check_i1(ilogbf, 0.0, FP_ILOGB0);
- check_i1(ilogbf, HUGE_VALF, INT_MAX);
- check_i1(ilogbf, nan_value, FP_ILOGBNAN);
-
- printf("Errors: %d\n", errors);
- return errors;
-}
diff --git a/test/math/libm-test-ulps-arc b/test/math/libm-test-ulps-arc
deleted file mode 100644
index 46b2ac5..0000000
--- a/test/math/libm-test-ulps-arc
+++ /dev/null
@@ -1,145 +0,0 @@
-# Begin of automatic generation
-
-# cos
-Test "cos (M_PI_6l * 2.0) == 0.5":
-double: 1
-idouble: 1
-Test "cos (M_PI_6l * 4.0) == -0.5":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-# erf
-Test "erf (0.75) == 0.711155633653515131598937834591410777":
-double: 1
-idouble: 1
-Test "erf (1.25) == 0.922900128256458230136523481197281140":
-double: 1
-idouble: 1
-
-# erfc
-Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
-double: 1
-idouble: 1
-
-# exp
-Test "exp (1) == e":
-double: 1
-idouble: 1
-
-# expm1
-Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
-double: 1
-idouble: 1
-
-# hypot
-Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-
-# lgamma
-Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-# log10
-Test "log10 (0.75) == -0.124938736608299953132449886193870744":
-double: 1
-idouble: 1
-Test "log10 (e) == log10(e)":
-float: 1
-ifloat: 1
-
-# tgamma
-Test "tgamma (-0.5) == -2 sqrt (pi)":
-double: 1
-idouble: 1
-Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# Maximal error of functions:
-Function: "cos":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-Function: "erf":
-double: 1
-idouble: 1
-
-Function: "erfc":
-double: 1
-idouble: 1
-
-Function: "exp":
-double: 1
-idouble: 1
-
-Function: "expm1":
-double: 1
-idouble: 1
-
-Function: "hypot":
-float: 1
-ifloat: 1
-
-Function: "lgamma":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: "log":
-float: 1
-ifloat: 1
-
-Function: "log10":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "tan":
-double: 1
-idouble: 1
-
-Function: "tgamma":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# end of automatic generation
diff --git a/test/math/libm-test-ulps-arm b/test/math/libm-test-ulps-arm
deleted file mode 100644
index 8528e81..0000000
--- a/test/math/libm-test-ulps-arm
+++ /dev/null
@@ -1,4989 +0,0 @@
-# Begin of automatic generation
-
-# acos_downward
-Test "acos_downward (-0)":
-float: 1
-ifloat: 1
-Test "acos_downward (-0.5)":
-double: 1
-idouble: 1
-Test "acos_downward (-1)":
-float: 1
-ifloat: 1
-Test "acos_downward (0)":
-float: 1
-ifloat: 1
-Test "acos_downward (0.5)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# acos_towardzero
-Test "acos_towardzero (-0)":
-float: 1
-ifloat: 1
-Test "acos_towardzero (-0.5)":
-double: 1
-idouble: 1
-Test "acos_towardzero (-1)":
-float: 1
-ifloat: 1
-Test "acos_towardzero (0)":
-float: 1
-ifloat: 1
-Test "acos_towardzero (0.5)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# asin_downward
-Test "asin_downward (-0.5)":
-double: 1
-idouble: 1
-Test "asin_downward (0.5)":
-double: 1
-idouble: 1
-Test "asin_downward (1.0)":
-float: 1
-ifloat: 1
-
-# asin_towardzero
-Test "asin_towardzero (-0.5)":
-double: 1
-idouble: 1
-Test "asin_towardzero (-1.0)":
-float: 1
-ifloat: 1
-Test "asin_towardzero (0.5)":
-double: 1
-idouble: 1
-Test "asin_towardzero (1.0)":
-float: 1
-ifloat: 1
-
-# asin_upward
-Test "asin_upward (-1.0)":
-float: 1
-ifloat: 1
-
-# atan2
-Test "atan2 (-0.75, -1.0)":
-float: 1
-ifloat: 1
-Test "atan2 (-max_value, -min_value)":
-float: 1
-ifloat: 1
-Test "atan2 (0.75, -1.0)":
-float: 1
-ifloat: 1
-Test "atan2 (1.390625, 0.9296875)":
-float: 1
-ifloat: 1
-
-# atanh
-Test "atanh (0.75)":
-float: 1
-ifloat: 1
-
-# cacos
-Test "Imaginary part of: cacos (+0 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (+0 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: cacos (+0 + 1.5 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (+0 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (+0 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: cacos (+0 - 1.5 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (-0 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0 + 1.5 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (-0 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0 - 1.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (-0.25 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0.25 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0.25 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0.25 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0.5 + 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (-0.5 + 0x1p-105 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (-0.5 + 0x1p-112 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (-0.5 + 0x1p-23 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (-0.5 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0.5 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (-0.5 - 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (-0.5 - 0x1p-105 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (-0.5 - 0x1p-112 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (-0.5 - 0x1p-23 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (-0.5 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0.5 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (-0x0.ffffffp0 + 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: cacos (-0x0.ffffffp0 - 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: cacos (-0x1.000002p0 + 0x1p-23 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1.000002p0 - 0x1p-23 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1.fp-10 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-10 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (-0x1.fp-100 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1.fp-100 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1.fp-100 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1.fp-100 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1.fp-1000 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-1000 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.5 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (-0x1.fp-129 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1.fp-129 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1.fp-129 + 0x0.ffffffp0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1.fp-129 + 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1.fp-129 + 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1.fp-129 + 0x1p-23 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1.fp-129 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1.fp-129 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1.fp-129 + 1.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1.fp-129 + 1.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (-0x1.fp-129 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1.fp-129 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1.fp-129 - 0x0.ffffffp0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1.fp-129 - 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1.fp-129 - 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1.fp-129 - 0x1p-23 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1.fp-129 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1.fp-129 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1.fp-129 - 1.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1.fp-129 - 1.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (-0x1.fp-30 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1.fp-30 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1.fp-30 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1.fp-30 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-105 + 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-105 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1p-105 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-105 + 0x1p-105 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-105 - 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-105 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1p-105 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-105 - 0x1p-105 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-112 + 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-112 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1p-112 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-112 + 0x1p-112 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-112 - 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-112 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1p-112 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-112 - 0x1p-112 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-23 + 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-23 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1p-23 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1p-23 + 0x0.ffffffp0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (-0x1p-23 + 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-23 + 0x1p-23 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-23 - 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-23 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1p-23 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1p-23 - 0x0.ffffffp0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (-0x1p-23 - 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-23 - 0x1p-23 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-52 + 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-52 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1p-52 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-52 + 0x1p-52 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-52 - 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-52 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1p-52 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-52 - 0x1p-52 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-63 + 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-63 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1p-63 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-63 + 0x1p-63 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-63 - 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-63 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1p-63 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-63 - 0x1p-63 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-1.0 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-1.0 + 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-1.0 + 0x1p50 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-1.0 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-1.0 - 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-1.0 - 0x1p50 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-2 - 3 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (0.25 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (0.25 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (0.5 + +0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (0.5 + 0x1.fp-1025 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (0.5 + 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0.5 + 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (0.5 + 0x1p-105 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0.5 + 0x1p-105 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (0.5 + 0x1p-112 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0.5 + 0x1p-112 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0.5 + 0x1p-23 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (0.5 + 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (0.5 + 0x1p-63 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (0.5 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (0.5 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (0.5 - 0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (0.5 - 0x1.fp-1025 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (0.5 - 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0.5 - 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (0.5 - 0x1p-105 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0.5 - 0x1p-105 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (0.5 - 0x1p-112 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0.5 - 0x1p-112 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0.5 - 0x1p-23 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (0.5 - 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (0.5 - 0x1p-63 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (0.5 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (0.5 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 + 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 - 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (0x0.ffffffp0 + 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (0x0.ffffffp0 + 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (0x0.ffffffp0 + 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: cacos (0x0.ffffffp0 + 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Real part of: cacos (0x0.ffffffp0 - 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (0x0.ffffffp0 - 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (0x0.ffffffp0 - 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: cacos (0x0.ffffffp0 - 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Real part of: cacos (0x1.0000000000001p0 + 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (0x1.0000000000001p0 - 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (0x1.000002p0 + 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: cacos (0x1.000002p0 + 0x1p-23 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (0x1.000002p0 - 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: cacos (0x1.000002p0 - 0x1p-23 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (0x1.fp-10 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0x1.fp-10 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0x1.fp-100 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: cacos (0x1.fp-100 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: cacos (0x1.fp-1000 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0x1.fp-1000 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0x1.fp-1025 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0x1.fp-1025 + 1.5 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0x1.fp-1025 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0x1.fp-1025 - 1.5 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0x1.fp-129 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (0x1.fp-129 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: cacos (0x1.fp-129 + 1.5 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0x1.fp-129 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (0x1.fp-129 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: cacos (0x1.fp-129 - 1.5 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0x1.fp-30 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: cacos (0x1.fp-30 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: cacos (0x1.fp1023 + 0x1.fp1023 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0x1.fp127 + 0x1.fp127 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0x1p-105 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (0x1p-105 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (0x1p-112 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (0x1p-112 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (0x1p-23 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (0x1p-23 + 0x0.ffffffp0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0x1p-23 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (0x1p-23 - 0x0.ffffffp0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0x1p-52 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (0x1p-52 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (0x1p-63 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (0x1p-63 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (1.0 + 0.25 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (1.0 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (1.0 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (1.0 + 0x1.fp-10 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: cacos (1.0 + 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (1.0 - 0.25 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (1.0 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (1.0 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (1.0 - 0x1.fp-10 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: cacos (1.0 - 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-
-# cacosh
-Test "Real part of: cacosh (+0 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (+0 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: cacosh (+0 + 1.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (+0 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (+0 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: cacosh (+0 - 1.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (-0 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: cacosh (-0 + 1.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (-0 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: cacosh (-0 - 1.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (-0.25 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0.25 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: cacosh (-0.25 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0.25 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: cacosh (-0.5 + 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (-0.5 + 0x1p-105 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (-0.5 + 0x1p-112 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (-0.5 + 0x1p-23 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (-0.5 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (-0.5 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0.5 - 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (-0.5 - 0x1p-105 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (-0.5 - 0x1p-112 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (-0.5 - 0x1p-23 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (-0.5 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (-0.5 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (-0x0.ffffffp0 + 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Real part of: cacosh (-0x0.ffffffp0 - 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Real part of: cacosh (-0x1.000002p0 + 0x1p-23 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1.000002p0 - 0x1p-23 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1.fp-10 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (-0x1.fp-10 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (-0x1.fp-100 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1.fp-100 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1.fp-100 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1.fp-100 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1.fp-1000 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (-0x1.fp-1000 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (-0x1.fp-1025 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (-0x1.fp-1025 + 1.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (-0x1.fp-1025 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (-0x1.fp-1025 - 1.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (-0x1.fp-129 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1.fp-129 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x0.ffffffp0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1p-23 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1.fp-129 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1.fp-129 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1.fp-129 + 1.5 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (-0x1.fp-129 + 1.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1.fp-129 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1.fp-129 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x0.ffffffp0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1p-23 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1.fp-129 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1.fp-129 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1.fp-129 - 1.5 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (-0x1.fp-129 - 1.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1.fp-30 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1.fp-30 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1.fp-30 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1.fp-30 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-105 + 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1p-105 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-105 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-105 + 0x1p-105 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-105 - 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1p-105 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-105 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-105 - 0x1p-105 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-112 + 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1p-112 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-112 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-112 + 0x1p-112 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-112 - 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1p-112 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-112 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-112 - 0x1p-112 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-23 + 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1p-23 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-23 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1p-23 + 0x0.ffffffp0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (-0x1p-23 + 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-23 + 0x1p-23 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-23 - 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1p-23 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-23 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1p-23 - 0x0.ffffffp0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (-0x1p-23 - 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-23 - 0x1p-23 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-52 + 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1p-52 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-52 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-52 + 0x1p-52 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-52 - 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1p-52 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-52 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-52 - 0x1p-52 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-63 + 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1p-63 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-63 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-63 + 0x1p-63 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-63 - 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1p-63 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-63 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-63 - 0x1p-63 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-1.0 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-1.0 + 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-1.0 + 0x1p50 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-1.0 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-1.0 - 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-1.0 - 0x1p50 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-2 - 3 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (0.25 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (0.25 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (0.5 + +0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (0.5 + 0x1.fp-1025 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0.5 + 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (0.5 + 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0.5 + 0x1p-105 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (0.5 + 0x1p-105 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0.5 + 0x1p-112 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (0.5 + 0x1p-112 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0.5 + 0x1p-23 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (0.5 + 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (0.5 + 0x1p-63 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0.5 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (0.5 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (0.5 - 0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (0.5 - 0x1.fp-1025 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0.5 - 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (0.5 - 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0.5 - 0x1p-105 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (0.5 - 0x1p-105 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0.5 - 0x1p-112 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (0.5 - 0x1p-112 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0.5 - 0x1p-23 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (0.5 - 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (0.5 - 0x1p-63 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0.5 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (0.5 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (0x0.fffffffffffff8p0 + 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0x0.fffffffffffff8p0 - 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (0x0.ffffffp0 + 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (0x0.ffffffp0 - 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: cacosh (0x1.0000000000001p0 + 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (0x1.0000000000001p0 - 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0x1.000002p0 + 0x1p-23 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (0x1.000002p0 + 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Real part of: cacosh (0x1.000002p0 - 0x1p-23 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (0x1.000002p0 - 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Real part of: cacosh (0x1.fp-10 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0x1.fp-10 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0x1.fp-100 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: cacosh (0x1.fp-100 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: cacosh (0x1.fp-1000 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0x1.fp-1000 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0x1.fp-1025 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0x1.fp-1025 + 1.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0x1.fp-1025 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0x1.fp-1025 - 1.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0x1.fp-129 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (0x1.fp-129 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: cacosh (0x1.fp-129 + 1.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0x1.fp-129 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (0x1.fp-129 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: cacosh (0x1.fp-129 - 1.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0x1.fp-30 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: cacosh (0x1.fp-30 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: cacosh (0x1.fp1023 + 0x1.fp1023 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0x1.fp127 + 0x1.fp127 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0x1p-105 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (0x1p-105 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (0x1p-112 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (0x1p-112 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (0x1p-23 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (0x1p-23 + 0x0.ffffffp0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0x1p-23 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (0x1p-23 - 0x0.ffffffp0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0x1p-52 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (0x1p-52 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (0x1p-63 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (0x1p-63 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (1.0 + 0.25 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (1.0 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (1.0 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (1.0 + 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (1.0 + 0x1.fp-10 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: cacosh (1.0 - 0.25 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (1.0 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (1.0 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (1.0 - 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (1.0 - 0x1.fp-10 i)":
-float: 2
-ifloat: 2
-
-# casin
-Test "Imaginary part of: casin (+0 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (+0 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: casin (+0 + 1.5 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (+0 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (+0 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: casin (+0 - 1.5 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (-0 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0 + 1.5 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (-0 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0 - 1.5 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (-0.25 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0.25 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0.5 + 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (-0.5 + 0x1p-105 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (-0.5 + 0x1p-112 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (-0.5 + 0x1p-23 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (-0.5 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (-0.5 - 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (-0.5 - 0x1p-105 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (-0.5 - 0x1p-112 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (-0.5 - 0x1p-23 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (-0.5 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (-0x0.ffffffp0 + 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: casin (-0x0.ffffffp0 - 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: casin (-0x1.000002p0 + 0x1p-23 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0x1.000002p0 - 0x1p-23 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casin (-0x1.fp-10 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0x1.fp-10 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Real part of: casin (-0x1.fp-10 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0x1.fp-10 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (-0x1.fp-100 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0x1.fp-100 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0x1.fp-1000 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (-0x1.fp-1000 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (-0x1.fp-1025 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (-0x1.fp-1025 + 1.5 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (-0x1.fp-1025 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (-0x1.fp-1025 - 1.5 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (-0x1.fp-129 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0x1.fp-129 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0x1.fp-129 + 1.5 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (-0x1.fp-129 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0x1.fp-129 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0x1.fp-129 - 1.5 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (-0x1.fp-30 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0x1.fp-30 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0x1p-105 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0x1p-105 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0x1p-112 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0x1p-112 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casin (-0x1p-23 + 0.5 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0x1p-23 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0x1p-23 + 0x0.ffffffp0 i)":
-double: 1
-idouble: 1
-Test "Real part of: casin (-0x1p-23 + 0x1.000002p0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: casin (-0x1p-23 - 0.5 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0x1p-23 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0x1p-23 - 0x0.ffffffp0 i)":
-double: 1
-idouble: 1
-Test "Real part of: casin (-0x1p-23 - 0x1.000002p0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0x1p-52 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0x1p-52 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0x1p-63 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0x1p-63 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casin (-1.0 + 0.25 i)":
-double: 1
-idouble: 1
-Test "Real part of: casin (-1.0 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (-1.0 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (-1.0 + 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casin (-1.0 - 0.25 i)":
-double: 1
-idouble: 1
-Test "Real part of: casin (-1.0 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (-1.0 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (-1.0 - 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (0.25 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (0.25 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (0.5 + 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (0.5 + 0x1p-105 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (0.5 + 0x1p-112 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (0.5 + 0x1p-23 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (0.5 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (0.5 - 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (0.5 - 0x1p-105 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (0.5 - 0x1p-112 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (0.5 - 0x1p-23 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (0.5 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Real part of: casin (0.75 + 1.25 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: casin (0x0.fffffffffffff8p0 + 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (0x0.fffffffffffff8p0 - 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (0x0.ffffffp0 + 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: casin (0x0.ffffffp0 - 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: casin (0x1.000002p0 + 0x1p-23 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (0x1.000002p0 - 0x1p-23 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casin (0x1.fp-10 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (0x1.fp-10 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Real part of: casin (0x1.fp-10 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (0x1.fp-10 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (0x1.fp-100 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: casin (0x1.fp-100 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: casin (0x1.fp-1000 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (0x1.fp-1000 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (0x1.fp-1025 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (0x1.fp-1025 + 1.5 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (0x1.fp-1025 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (0x1.fp-1025 - 1.5 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (0x1.fp-129 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (0x1.fp-129 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: casin (0x1.fp-129 + 1.5 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (0x1.fp-129 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (0x1.fp-129 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: casin (0x1.fp-129 - 1.5 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (0x1.fp-30 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: casin (0x1.fp-30 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: casin (0x1.fp1023 + 0x1.fp1023 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (0x1.fp127 + 0x1.fp127 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (0x1p-105 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (0x1p-105 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (0x1p-112 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (0x1p-112 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casin (0x1p-23 + 0.5 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: casin (0x1p-23 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (0x1p-23 + 0x0.ffffffp0 i)":
-double: 1
-idouble: 1
-Test "Real part of: casin (0x1p-23 + 0x1.000002p0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: casin (0x1p-23 - 0.5 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: casin (0x1p-23 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (0x1p-23 - 0x0.ffffffp0 i)":
-double: 1
-idouble: 1
-Test "Real part of: casin (0x1p-23 - 0x1.000002p0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: casin (0x1p-52 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (0x1p-52 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (0x1p-63 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (0x1p-63 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casin (1.0 + 0.25 i)":
-double: 1
-idouble: 1
-Test "Real part of: casin (1.0 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (1.0 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (1.0 + 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casin (1.0 - 0.25 i)":
-double: 1
-idouble: 1
-Test "Real part of: casin (1.0 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (1.0 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (1.0 - 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-
-# casinh
-Test "Imaginary part of: casinh (-0.25 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casinh (-0.25 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (-0.5 + +0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (-0.5 + 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (-0.5 + 0x1p-105 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (-0.5 + 0x1p-112 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (-0.5 + 0x1p-23 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casinh (-0.5 + 0x1p-23 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: casinh (-0.5 + 0x1p-52 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (-0.5 + 0x1p-63 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (-0.5 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casinh (-0.5 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (-0.5 - 0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (-0.5 - 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (-0.5 - 0x1p-105 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (-0.5 - 0x1p-112 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (-0.5 - 0x1p-23 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casinh (-0.5 - 0x1p-23 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: casinh (-0.5 - 0x1p-52 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (-0.5 - 0x1p-63 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (-0.5 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casinh (-0.5 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (-0x0.ffffffp0 + 0x1p-23 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (-0x0.ffffffp0 - 0x1p-23 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casinh (-0x1.000002p0 + 0x1p-23 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: casinh (-0x1.000002p0 - 0x1p-23 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: casinh (-0x1.fp-10 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (-0x1.fp-10 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (-0x1.fp-129 + 0.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (-0x1.fp-129 - 0.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (-0x1p-105 + 0.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (-0x1p-105 - 0.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (-0x1p-112 + 0.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (-0x1p-112 - 0.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (-0x1p-23 + 0.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (-0x1p-23 + 0x0.ffffffp0 i)":
-float: 2
-ifloat: 2
-Test "Real part of: casinh (-0x1p-23 + 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (-0x1p-23 - 0.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (-0x1p-23 - 0x0.ffffffp0 i)":
-float: 2
-ifloat: 2
-Test "Real part of: casinh (-0x1p-23 - 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (-0x1p-52 + 0x0.fffffffffffff8p0 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (-0x1p-52 - 0x0.fffffffffffff8p0 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (-1.0 + +0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: casinh (-1.0 + 0.25 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (-1.0 + 0.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (-1.0 + 0x1.fp-10 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casinh (-1.0 + 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (-1.0 + 0x1.fp-100 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: casinh (-1.0 + 0x1.fp-1000 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (-1.0 + 0x1.fp-1025 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (-1.0 + 0x1.fp-129 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: casinh (-1.0 + 0x1.fp-30 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: casinh (-1.0 - 0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: casinh (-1.0 - 0.25 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (-1.0 - 0.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (-1.0 - 0x1.fp-10 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casinh (-1.0 - 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (-1.0 - 0x1.fp-100 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: casinh (-1.0 - 0x1.fp-1000 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (-1.0 - 0x1.fp-1025 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (-1.0 - 0x1.fp-129 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: casinh (-1.0 - 0x1.fp-30 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: casinh (-1.5 + +0 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (-1.5 + 0x1.fp-1025 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (-1.5 + 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (-1.5 - 0 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (-1.5 - 0x1.fp-1025 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (-1.5 - 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casinh (0.25 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casinh (0.25 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (0.5 + +0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (0.5 + 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (0.5 + 0x1p-105 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (0.5 + 0x1p-112 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (0.5 + 0x1p-23 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casinh (0.5 + 0x1p-23 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: casinh (0.5 + 0x1p-52 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (0.5 + 0x1p-63 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (0.5 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casinh (0.5 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (0.5 - 0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (0.5 - 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (0.5 - 0x1p-105 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (0.5 - 0x1p-112 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (0.5 - 0x1p-23 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casinh (0.5 - 0x1p-23 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: casinh (0.5 - 0x1p-52 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (0.5 - 0x1p-63 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (0.5 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casinh (0.5 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (0.75 + 1.25 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casinh (0.75 + 1.25 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: casinh (0x0.ffffffp0 + 0x1p-23 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (0x0.ffffffp0 - 0x1p-23 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casinh (0x1.000002p0 + 0x1p-23 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: casinh (0x1.000002p0 - 0x1p-23 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: casinh (0x1.fp-10 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (0x1.fp-10 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (0x1.fp-129 + 0.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (0x1.fp-129 - 0.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (0x1.fp1023 + 0x1.fp1023 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (0x1.fp127 + 0x1.fp127 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (0x1p-105 + 0.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (0x1p-105 - 0.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (0x1p-112 + 0.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (0x1p-112 - 0.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (0x1p-23 + 0.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (0x1p-23 + 0x0.ffffffp0 i)":
-float: 2
-ifloat: 2
-Test "Real part of: casinh (0x1p-23 + 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (0x1p-23 - 0.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (0x1p-23 - 0x0.ffffffp0 i)":
-float: 2
-ifloat: 2
-Test "Real part of: casinh (0x1p-23 - 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (0x1p-52 + 0x0.fffffffffffff8p0 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (0x1p-52 - 0x0.fffffffffffff8p0 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (1.0 + +0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: casinh (1.0 + 0.25 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (1.0 + 0.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (1.0 + 0x1.fp-10 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casinh (1.0 + 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (1.0 + 0x1.fp-100 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: casinh (1.0 + 0x1.fp-1000 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (1.0 + 0x1.fp-1025 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (1.0 + 0x1.fp-129 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: casinh (1.0 + 0x1.fp-30 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: casinh (1.0 - 0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: casinh (1.0 - 0.25 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (1.0 - 0.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (1.0 - 0x1.fp-10 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casinh (1.0 - 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (1.0 - 0x1.fp-100 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: casinh (1.0 - 0x1.fp-1000 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (1.0 - 0x1.fp-1025 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (1.0 - 0x1.fp-129 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: casinh (1.0 - 0x1.fp-30 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: casinh (1.5 + +0 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (1.5 + 0x1.fp-1025 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (1.5 + 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (1.5 - 0 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (1.5 - 0x1.fp-1025 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (1.5 - 0x1.fp-129 i)":
-double: 1
-idouble: 1
-
-# catan
-Test "Imaginary part of: catan (-0x0.fffffffffffff8p0 + 0x1p-27 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catan (-0x0.ffffffp0 + 0x1p-13 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: catan (-0x1.0000000000001p0 - 0x1p-27 i)":
-double: 1
-idouble: 1
-Test "Real part of: catan (-0x1.000002p0 + 0x1p-126 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catan (-0x1.000002p0 + 0x1p-13 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catan (-0x1.000002p0 - 0x1p-126 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catan (-0x1.000002p0 - 0x1p-13 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catan (-0x1.000002p0 - 0x1p-13 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catan (-0x1.fp1023 + 0x1.fp1023 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catan (-0x1.fp1023 - 0x1.fp1023 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catan (-0x1.fp127 + 0x1.fp127 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catan (-0x1.fp127 - 0x1.fp127 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catan (-0x1p-1020 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catan (-0x1p-1020 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Real part of: catan (-0x1p-13 + 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catan (-0x1p-13 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catan (-0x1p-13 - 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catan (-0x1p-13 - 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catan (-0x1p-13 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catan (-0x1p-54 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catan (-0x1p-54 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catan (-0x1p-57 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catan (-0x1p-57 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catan (-1.0 + 0x1p-13 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catan (-1.0 - 0x1p-13 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catan (-2 - 3 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: catan (0x0.fffffffffffff8p0 + 0x1p-27 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catan (0x0.ffffffp0 + 0x1p-13 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: catan (0x1.0000000000001p0 - 0x1p-27 i)":
-double: 1
-idouble: 1
-Test "Real part of: catan (0x1.000002p0 + 0x1p-126 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catan (0x1.000002p0 + 0x1p-13 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catan (0x1.000002p0 - 0x1p-126 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catan (0x1.000002p0 - 0x1p-13 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catan (0x1.000002p0 - 0x1p-13 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catan (0x1.fp1023 + 0x1.fp1023 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catan (0x1.fp1023 - 0x1.fp1023 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catan (0x1.fp127 + 0x1.fp127 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catan (0x1.fp127 - 0x1.fp127 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catan (0x1p-1020 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catan (0x1p-1020 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Real part of: catan (0x1p-13 + 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catan (0x1p-13 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catan (0x1p-13 - 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catan (0x1p-13 - 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catan (0x1p-13 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catan (0x1p-54 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catan (0x1p-54 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catan (0x1p-57 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catan (0x1p-57 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catan (1.0 + 0x1p-13 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catan (1.0 - 0x1p-13 i)":
-float: 1
-ifloat: 1
-
-# catanh
-Test "Real part of: catanh (-0x1.000002p0 + 0x1p-13 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catanh (-0x1.000002p0 + 0x1p-13 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (-0x1.000002p0 - 0x1p-13 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catanh (-0x1.000002p0 - 0x1p-13 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (-0x1.fp1023 + 0x1.fp1023 i)":
-double: 1
-idouble: 1
-Test "Real part of: catanh (-0x1.fp1023 - 0x1.fp1023 i)":
-double: 1
-idouble: 1
-Test "Real part of: catanh (-0x1.fp127 + 0x1.fp127 i)":
-double: 1
-idouble: 1
-Test "Real part of: catanh (-0x1.fp127 - 0x1.fp127 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catanh (-0x1p-126 + 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catanh (-0x1p-126 - 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (-0x1p-13 + 0x1.000002p0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catanh (-0x1p-13 + 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catanh (-0x1p-13 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (-0x1p-13 - 0x1.000002p0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catanh (-0x1p-13 - 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catanh (-0x1p-13 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (-0x1p-27 + 0x1.0000000000001p0 i)":
-double: 1
-idouble: 1
-Test "Real part of: catanh (-0x1p-27 - 0x1.0000000000001p0 i)":
-double: 1
-idouble: 1
-Test "Real part of: catanh (-1.0 + 0x1p-1020 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catanh (-1.0 + 0x1p-13 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (-1.0 + 0x1p-54 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (-1.0 + 0x1p-57 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (-1.0 - 0x1p-1020 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catanh (-1.0 - 0x1p-13 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (-1.0 - 0x1p-54 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (-1.0 - 0x1p-57 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (-2 - 3 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catanh (0x1.000002p0 + 0x1p-13 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catanh (0x1.000002p0 - 0x1p-13 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (0x1.fp1023 + 0x1.fp1023 i)":
-double: 1
-idouble: 1
-Test "Real part of: catanh (0x1.fp1023 - 0x1.fp1023 i)":
-double: 1
-idouble: 1
-Test "Real part of: catanh (0x1.fp127 + 0x1.fp127 i)":
-double: 1
-idouble: 1
-Test "Real part of: catanh (0x1.fp127 - 0x1.fp127 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catanh (0x1p-126 + 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catanh (0x1p-126 - 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (0x1p-13 + 0x0.ffffffp0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: catanh (0x1p-13 + 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catanh (0x1p-13 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (0x1p-13 - 0x0.ffffffp0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: catanh (0x1p-13 - 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catanh (0x1p-13 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (0x1p-27 + 0x0.fffffffffffff8p0 i)":
-double: 1
-idouble: 1
-Test "Real part of: catanh (0x1p-27 - 0x0.fffffffffffff8p0 i)":
-double: 1
-idouble: 1
-Test "Real part of: catanh (1.0 + 0x1p-1020 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catanh (1.0 + 0x1p-13 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (1.0 + 0x1p-54 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (1.0 + 0x1p-57 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (1.0 - 0x1p-1020 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catanh (1.0 - 0x1p-13 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (1.0 - 0x1p-54 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (1.0 - 0x1p-57 i)":
-float: 1
-ifloat: 1
-
-# cbrt
-Test "cbrt (-27.0)":
-double: 1
-idouble: 1
-Test "cbrt (0.75)":
-double: 1
-idouble: 1
-Test "cbrt (0.9921875)":
-double: 1
-idouble: 1
-
-# ccos
-Test "Imaginary part of: ccos (-0.75 + 710.5 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: ccos (-0.75 + 89.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: ccos (-0.75 - 710.5 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: ccos (-0.75 - 89.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: ccos (-2 - 3 i)":
-float: 1
-ifloat: 1
-Test "Real part of: ccos (0.75 + 1.25 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: ccos (0.75 + 1.25 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: ccos (0.75 + 710.5 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: ccos (0.75 + 89.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: ccos (0.75 - 710.5 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: ccos (0.75 - 89.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: ccos (0x1p-1074 + 1440 i)":
-double: 1
-idouble: 1
-
-# ccosh
-Test "Real part of: ccosh (-2 - 3 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: ccosh (-2 - 3 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: ccosh (-710.5 + 0.75 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: ccosh (-710.5 - 0.75 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: ccosh (-89.5 + 0.75 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: ccosh (-89.5 - 0.75 i)":
-float: 1
-ifloat: 1
-Test "Real part of: ccosh (0.75 + 1.25 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: ccosh (0.75 + 1.25 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: ccosh (710.5 + 0.75 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: ccosh (710.5 - 0.75 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: ccosh (89.5 + 0.75 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: ccosh (89.5 - 0.75 i)":
-float: 1
-ifloat: 1
-
-# cexp
-Test "Imaginary part of: cexp (-2.0 - 3.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cexp (-95 + 0.75 i)":
-double: 1
-idouble: 1
-Test "Real part of: cexp (0.75 + 1.25 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cexp (1440 + 0x1p-1074 i)":
-double: 1
-idouble: 1
-Test "Real part of: cexp (50 + 0x1p127 i)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "Imaginary part of: cexp (50 + 0x1p127 i)":
-double: 1
-idouble: 1
-Test "Real part of: cexp (500 + 0x1p1023 i)":
-double: 1
-idouble: 1
-Test "Real part of: cexp (709.8125 + 0.75 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cexp (709.8125 + 0.75 i)":
-double: 1
-idouble: 1
-Test "Real part of: cexp (88.75 + 0.75 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cexp (88.75 + 0.75 i)":
-float: 2
-ifloat: 2
-
-# clog
-Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
-double: 1
-idouble: 1
-Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i)":
-float: 1
-ifloat: 1
-Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i)":
-float: 1
-ifloat: 1
-Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i)":
-float: 1
-ifloat: 1
-Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i)":
-float: 1
-ifloat: 1
-Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
-float: 1
-ifloat: 1
-Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
-float: 1
-ifloat: 1
-Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i)":
-float: 1
-ifloat: 1
-Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i)":
-float: 1
-ifloat: 1
-Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i)":
-double: 1
-idouble: 1
-Test "Real part of: clog (0x1p-147 + 0x1p-147 i)":
-float: 1
-ifloat: 1
-Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i)":
-float: 1
-ifloat: 1
-Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i)":
-float: 1
-ifloat: 1
-Test "Real part of: clog (1.0 + 0x1.234566p-10 i)":
-float: 1
-ifloat: 1
-
-# clog10
-Test "Imaginary part of: clog10 (-0 + inf i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-0 - inf i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
-double: 2
-idouble: 2
-Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
-double: 1
-idouble: 1
-Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
-double: 2
-idouble: 2
-Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (-2 - 3 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (-3 + inf i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-3 - inf i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 1 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf + inf i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (-inf - 0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf - 1 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0 + inf i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0 - inf i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000
i)":
-double: 1
-idouble: 1
-Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
-double: 1
-idouble: 1
-Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: clog10 (0x1.fffffep+127 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023
i)":
-double: 1
-idouble: 1
-Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
-double: 1
-idouble: 1
-Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54
i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (0x1p-1073 + 0x1p-1073 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (0x1p-1074 + 0x1.fp+1023 i)":
-double: 1
-idouble: 1
-Test "Real part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (0x1p-1074 - 0x1.fp+1023 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (0x1p-147 + 0x1p-147 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
-float: 1
-ifloat: 1
-Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i)":
-double: 1
-idouble: 1
-Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
-double: 1
-idouble: 1
-Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52
i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i)":
-double: 1
-idouble: 1
-Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (3 + inf i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (3 - inf i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (inf + inf i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (inf - inf i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# cos
-Test "cos (0x1p+120)":
-float: 1
-ifloat: 1
-Test "cos (0x1p+127)":
-float: 1
-ifloat: 1
-Test "cos (M_PI_6l * 2.0) == 0.5":
-double: 1
-idouble: 1
-ifloat: 1
-Test "cos (M_PI_6l * 4.0) == -0.5":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-# cos_downward
-Test "cos_downward (1)":
-float: 1
-ifloat: 1
-Test "cos_downward (2)":
-float: 1
-ifloat: 1
-Test "cos_downward (3)":
-float: 1
-ifloat: 1
-Test "cos_downward (4)":
-float: 1
-ifloat: 1
-Test "cos_downward (5)":
-float: 1
-ifloat: 1
-Test "cos_downward (7)":
-float: 1
-ifloat: 1
-Test "cos_downward (8)":
-float: 1
-ifloat: 1
-
-# cos_tonearest
-Test "cos_tonearest (7)":
-float: 1
-ifloat: 1
-
-# cos_towardzero
-Test "cos_towardzero (2)":
-float: 1
-ifloat: 1
-Test "cos_towardzero (3)":
-float: 1
-ifloat: 1
-Test "cos_towardzero (5)":
-float: 1
-ifloat: 1
-Test "cos_towardzero (7)":
-float: 1
-ifloat: 1
-Test "cos_towardzero (8)":
-float: 1
-ifloat: 1
-
-# cos_upward
-Test "cos_upward (10)":
-float: 1
-ifloat: 1
-Test "cos_upward (6)":
-float: 1
-ifloat: 1
-Test "cos_upward (7)":
-float: 1
-ifloat: 1
-Test "cos_upward (9)":
-float: 2
-ifloat: 2
-
-# cosh_downward
-Test "cosh_downward (22)":
-float: 1
-ifloat: 1
-Test "cosh_downward (23)":
-float: 1
-ifloat: 1
-Test "cosh_downward (24)":
-float: 1
-ifloat: 1
-
-# cosh_towardzero
-Test "cosh_towardzero (22)":
-float: 1
-ifloat: 1
-Test "cosh_towardzero (23)":
-float: 1
-ifloat: 1
-Test "cosh_towardzero (24)":
-float: 1
-ifloat: 1
-
-# cpow
-Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
-double: 1
-float: 4
-idouble: 1
-ifloat: 4
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i)":
-double: 2
-float: 3
-idouble: 2
-ifloat: 3
-Test "Real part of: cpow (2 + 3 i, 4 + 0 i)":
-double: 1
-float: 4
-idouble: 1
-ifloat: 4
-Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i)":
-float: 2
-ifloat: 2
-
-# csin
-Test "Real part of: csin (-0.75 + 710.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: csin (-0.75 + 89.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: csin (-0.75 - 710.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: csin (-0.75 - 89.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: csin (0.75 + 710.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: csin (0.75 + 89.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: csin (0.75 - 710.5 i)":
-double: 1
-idouble: 1
-Test "Real part of: csin (0.75 - 89.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: csin (0x1p-1074 + 1440 i)":
-double: 1
-idouble: 1
-
-# csinh
-Test "Imaginary part of: csinh (-2 - 3 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: csinh (-710.5 + 0.75 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: csinh (-710.5 - 0.75 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: csinh (-89.5 + 0.75 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: csinh (-89.5 - 0.75 i)":
-float: 1
-ifloat: 1
-Test "Real part of: csinh (0.75 + 1.25 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: csinh (0.75 + 1.25 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: csinh (1440 + 0x1p-1074 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: csinh (710.5 + 0.75 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: csinh (710.5 - 0.75 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: csinh (89.5 + 0.75 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: csinh (89.5 - 0.75 i)":
-float: 1
-ifloat: 1
-
-# csqrt
-Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i)":
-double: 1
-idouble: 1
-Test "Real part of: csqrt (-2 + 3 i)":
-float: 1
-ifloat: 1
-Test "Real part of: csqrt (-2 - 3 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023
i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023
i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
-double: 1
-idouble: 1
-
-# ctan
-Test "Real part of: ctan (-2 - 3 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: ctan (-2 - 3 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: ctan (0.75 + 1.25 i)":
-double: 1
-idouble: 1
-Test "Real part of: ctan (0x1p1023 + 1 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: ctan (0x1p127 + 1 i)":
-double: 1
-idouble: 1
-Test "Real part of: ctan (0x3.243f6cp-1 + 0 i)":
-float: 1
-ifloat: 1
-
-# ctan_downward
-Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
-float: 1
-ifloat: 1
-
-# ctan_tonearest
-Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
-float: 1
-ifloat: 1
-
-# ctan_towardzero
-Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
-float: 1
-ifloat: 1
-
-# ctan_upward
-Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
-double: 1
-idouble: 1
-Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-# ctanh
-Test "Real part of: ctanh (-2 - 3 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: ctanh (-2 - 3 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: ctanh (0 + pi/4 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: ctanh (0.75 + 1.25 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: ctanh (0.75 + 1.25 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: ctanh (1 + 0x1p1023 i)":
-double: 1
-idouble: 1
-Test "Real part of: ctanh (1 + 0x1p127 i)":
-double: 1
-idouble: 1
-
-# ctanh_downward
-Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-# ctanh_tonearest
-Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
-float: 1
-ifloat: 1
-
-# ctanh_towardzero
-Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
-float: 1
-ifloat: 1
-
-# ctanh_upward
-Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
-double: 1
-idouble: 1
-Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-# erf
-Test "erf (0.75) == 0.711155633653515131598937834591410777":
-double: 1
-idouble: 1
-Test "erf (1.25) == 0.922900128256458230136523481197281140":
-double: 1
-idouble: 1
-
-# erfc
-Test "erfc (0x1.f7303cp+1)":
-double: 1
-idouble: 1
-Test "erfc (0x1.ffa002p+2)":
-float: 1
-ifloat: 1
-Test "erfc (2.0)":
-double: 1
-idouble: 1
-Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
-double: 1
-idouble: 1
-
-# exp
-Test "exp (1) == e":
-double: 1
-idouble: 1
-
-# exp10
-Test "exp10 (-1)":
-double: 1
-idouble: 1
-Test "exp10 (-305)":
-double: 1
-idouble: 1
-Test "exp10 (-36)":
-double: 1
-idouble: 1
-Test "exp10 (3)":
-double: 1
-idouble: 1
-Test "exp10 (36)":
-double: 1
-idouble: 1
-
-# exp_downward
-Test "exp_downward (2)":
-float: 1
-ifloat: 1
-Test "exp_downward (3)":
-float: 1
-ifloat: 1
-
-# exp_towardzero
-Test "exp_towardzero (2)":
-float: 1
-ifloat: 1
-Test "exp_towardzero (3)":
-float: 1
-ifloat: 1
-
-# exp_upward
-Test "exp_upward (1)":
-float: 1
-ifloat: 1
-
-# expm1
-Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
-double: 1
-idouble: 1
-Test "expm1 (1)":
-float: 1
-ifloat: 1
-Test "expm1 (500.0)":
-double: 1
-idouble: 1
-
-# gamma
-Test "gamma (0.7)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "gamma (1.2)":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-# hypot
-Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-
-# j0
-Test "j0 (-4.0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "j0 (0.75)":
-float: 1
-ifloat: 1
-Test "j0 (0x1.d7ce3ap+107)":
-float: 2
-ifloat: 2
-Test "j0 (10.0)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "j0 (2.0)":
-float: 2
-ifloat: 2
-Test "j0 (4.0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "j0 (8.0)":
-float: 1
-ifloat: 1
-
-# j1
-Test "j1 (0x1.3ffp+74)":
-double: 1
-idouble: 1
-Test "j1 (0x1.ff00000000002p+840)":
-double: 1
-idouble: 1
-Test "j1 (10.0)":
-float: 2
-ifloat: 2
-Test "j1 (2.0)":
-double: 1
-idouble: 1
-Test "j1 (8.0)":
-double: 1
-idouble: 1
-
-# jn
-Test "jn (0, -4.0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "jn (0, 0.75)":
-float: 1
-ifloat: 1
-Test "jn (0, 10.0)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "jn (0, 2.0)":
-float: 2
-ifloat: 2
-Test "jn (0, 4.0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "jn (0, 8.0)":
-float: 1
-ifloat: 1
-Test "jn (1, 10.0)":
-float: 2
-ifloat: 2
-Test "jn (1, 2.0)":
-double: 1
-idouble: 1
-Test "jn (1, 8.0)":
-double: 1
-idouble: 1
-Test "jn (10, 0.125)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "jn (10, 0.75)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "jn (10, 10.0)":
-double: 4
-float: 3
-idouble: 4
-ifloat: 3
-Test "jn (10, 2.0)":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-Test "jn (2, 0x1.ffff62p+99)":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-Test "jn (2, 2.4048255576957729)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "jn (3, 0.125)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "jn (3, 0.75)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "jn (3, 10.0)":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-Test "jn (3, 2.0)":
-float: 1
-ifloat: 1
-Test "jn (3, 2.4048255576957729)":
-double: 3
-idouble: 3
-Test "jn (4, 2.4048255576957729)":
-double: 1
-idouble: 1
-Test "jn (5, 2.4048255576957729)":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-Test "jn (6, 2.4048255576957729)":
-double: 4
-float: 3
-idouble: 4
-ifloat: 3
-Test "jn (7, 2.4048255576957729)":
-double: 3
-float: 5
-idouble: 3
-ifloat: 5
-Test "jn (8, 2.4048255576957729)":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-Test "jn (9, 2.4048255576957729)":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-# lgamma
-Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-# log10
-Test "log10 (0.75) == -0.124938736608299953132449886193870744":
-double: 1
-idouble: 1
-Test "log10 (e) == log10(e)":
-float: 1
-ifloat: 1
-
-# log1p
-Test "log1p (-0.25)":
-float: 1
-ifloat: 1
-
-# pow
-Test "pow (0x0.ffffffp0, -0x1p24)":
-float: 1
-ifloat: 1
-Test "pow (0x0.ffffffp0, 0x1p24)":
-float: 1
-ifloat: 1
-Test "pow (0x1.000002p0, 0x1p24)":
-float: 1
-ifloat: 1
-
-# pow10
-Test "pow10 (-1)":
-double: 1
-idouble: 1
-Test "pow10 (-305)":
-double: 1
-idouble: 1
-Test "pow10 (-36)":
-double: 1
-idouble: 1
-Test "pow10 (3)":
-double: 1
-idouble: 1
-Test "pow10 (36)":
-double: 1
-idouble: 1
-
-# pow_downward
-Test "pow_downward (1.5, 1.03125)":
-float: 1
-ifloat: 1
-
-# pow_towardzero
-Test "pow_towardzero (1.5, 1.03125)":
-float: 1
-ifloat: 1
-
-# pow_upward
-Test "pow_upward (1.0625, 1.125)":
-float: 1
-ifloat: 1
-
-# sin_downward
-Test "sin_downward (10)":
-float: 1
-ifloat: 1
-Test "sin_downward (3)":
-float: 1
-ifloat: 1
-Test "sin_downward (5)":
-float: 1
-ifloat: 1
-Test "sin_downward (6)":
-float: 1
-ifloat: 1
-
-# sin_tonearest
-Test "sin_tonearest (1)":
-float: 1
-ifloat: 1
-
-# sin_towardzero
-Test "sin_towardzero (1)":
-float: 1
-ifloat: 1
-Test "sin_towardzero (10)":
-float: 1
-ifloat: 1
-Test "sin_towardzero (4)":
-float: 1
-ifloat: 1
-Test "sin_towardzero (5)":
-float: 1
-ifloat: 1
-Test "sin_towardzero (9)":
-float: 1
-ifloat: 1
-
-# sin_upward
-Test "sin_upward (1)":
-float: 1
-ifloat: 1
-Test "sin_upward (2)":
-float: 2
-ifloat: 2
-Test "sin_upward (4)":
-float: 1
-ifloat: 1
-Test "sin_upward (9)":
-float: 1
-ifloat: 1
-
-# sincos
-Test "sincos (0x1p+120) extra output 2":
-float: 1
-ifloat: 1
-Test "sincos (0x1p+127) extra output 2":
-float: 1
-ifloat: 1
-Test "sincos (M_PI_6l*2.0) extra output 1":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "sincos (M_PI_6l*2.0) extra output 2":
-double: 1
-idouble: 1
-Test "sincos (pi/6) extra output 2":
-float: 1
-ifloat: 1
-
-# sinh_downward
-Test "sinh_downward (22)":
-float: 1
-ifloat: 1
-Test "sinh_downward (23)":
-float: 1
-ifloat: 1
-Test "sinh_downward (24)":
-float: 1
-ifloat: 1
-
-# sinh_towardzero
-Test "sinh_towardzero (22)":
-float: 1
-ifloat: 1
-Test "sinh_towardzero (23)":
-float: 1
-ifloat: 1
-Test "sinh_towardzero (24)":
-float: 1
-ifloat: 1
-
-# tan_downward
-Test "tan_downward (1)":
-float: 1
-ifloat: 1
-Test "tan_downward (10)":
-float: 1
-ifloat: 1
-Test "tan_downward (2)":
-float: 1
-ifloat: 1
-Test "tan_downward (6)":
-float: 1
-ifloat: 1
-Test "tan_downward (8)":
-float: 1
-ifloat: 1
-Test "tan_downward (9)":
-float: 1
-ifloat: 1
-
-# tan_towardzero
-Test "tan_towardzero (10)":
-float: 1
-ifloat: 1
-Test "tan_towardzero (3)":
-float: 1
-ifloat: 1
-Test "tan_towardzero (4)":
-float: 1
-ifloat: 1
-Test "tan_towardzero (5)":
-float: 1
-ifloat: 1
-Test "tan_towardzero (9)":
-float: 1
-ifloat: 1
-
-# tan_upward
-Test "tan_upward (1)":
-float: 1
-ifloat: 1
-Test "tan_upward (10)":
-float: 1
-ifloat: 1
-Test "tan_upward (3)":
-float: 1
-ifloat: 1
-Test "tan_upward (5)":
-float: 1
-ifloat: 1
-
-# tgamma
-Test "tgamma (-0.5)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (-0.5) == -2 sqrt (pi)":
-double: 1
-idouble: 1
-Test "tgamma (-0x0.fffffffffffff8p0)":
-double: 1
-idouble: 1
-Test "tgamma (-0x0.ffffffp0)":
-float: 1
-ifloat: 1
-Test "tgamma (-0x1.000002p0)":
-double: 2
-idouble: 2
-Test "tgamma (-0x1.0a32a2p+5)":
-float: 2
-ifloat: 2
-Test "tgamma (-0x13.ffffep0)":
-float: 2
-ifloat: 2
-Test "tgamma (-0x14.000000000001p0)":
-double: 1
-idouble: 1
-Test "tgamma (-0x14.00002p0)":
-float: 1
-ifloat: 1
-Test "tgamma (-0x1d.ffffep0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (-0x1e.000000000001p0)":
-double: 3
-idouble: 3
-Test "tgamma (-0x1e.00002p0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (-0x2.0000000000002p0)":
-double: 1
-idouble: 1
-Test "tgamma (-0x2.000004p0)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "tgamma (-0x2.fffffcp0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (-0x27.fffffffffffep0)":
-double: 1
-idouble: 1
-Test "tgamma (-0x28.000000000002p0)":
-double: 1
-idouble: 1
-Test "tgamma (-0x28.00004p0)":
-double: 2
-idouble: 2
-Test "tgamma (-0x29.00004p0)":
-double: 1
-idouble: 1
-Test "tgamma (-0x29.ffffcp0)":
-double: 1
-idouble: 1
-Test "tgamma (-0x3.000004p0)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "tgamma (-0x3.fffffcp0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (-0x3.ffffffffffffep0)":
-double: 2
-idouble: 2
-Test "tgamma (-0x31.fffffffffffep0)":
-double: 3
-idouble: 3
-Test "tgamma (-0x4.000008p0)":
-float: 1
-ifloat: 1
-Test "tgamma (-0x4.fffff8p0)":
-double: 1
-idouble: 1
-Test "tgamma (-0x4.ffffffffffffcp0)":
-double: 1
-idouble: 1
-Test "tgamma (-0x5.000008p0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (-0x5.ffffffffffffcp0)":
-double: 1
-idouble: 1
-Test "tgamma (-0x6.000008p0)":
-float: 2
-ifloat: 2
-Test "tgamma (-0x6.fffff8p0)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "tgamma (-0x6.ffffffffffffcp0)":
-double: 4
-idouble: 4
-Test "tgamma (-0x63.fffffffffffcp0)":
-double: 2
-idouble: 2
-Test "tgamma (-0x64.000000000004p0)":
-double: 1
-idouble: 1
-Test "tgamma (-0x7.0000000000004p0)":
-double: 3
-idouble: 3
-Test "tgamma (-0x7.000008p0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (-0x7.fffff8p0)":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-Test "tgamma (-0x7.ffffffffffffcp0)":
-double: 3
-idouble: 3
-Test "tgamma (-0x8.00001p0)":
-double: 2
-idouble: 2
-Test "tgamma (-0x9.ffffffffffff8p0)":
-double: 1
-idouble: 1
-Test "tgamma (-0x9.fffffp0)":
-float: 1
-ifloat: 1
-Test "tgamma (-0x96.000000000008p0)":
-double: 1
-idouble: 1
-Test "tgamma (-0xa.00001p0)":
-double: 1
-idouble: 1
-Test "tgamma (-2.5)":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-Test "tgamma (-3.5)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (-4.5)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (-5.5)":
-double: 1
-idouble: 1
-Test "tgamma (-6.5)":
-float: 1
-ifloat: 1
-Test "tgamma (-7.5)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "tgamma (-8.5)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (-9.5)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (0.5)":
-float: 1
-ifloat: 1
-Test "tgamma (0.7)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (0x1.fffffep0)":
-float: 1
-ifloat: 1
-Test "tgamma (0x1.fffffffffffffp0)":
-double: 1
-idouble: 1
-Test "tgamma (0x1p-24)":
-float: 1
-ifloat: 1
-Test "tgamma (0x1p-53)":
-double: 1
-idouble: 1
-Test "tgamma (0x2.30a43cp+4)":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-Test "tgamma (0x2.fffffcp0)":
-float: 3
-ifloat: 3
-Test "tgamma (0x3.fffffcp0)":
-float: 1
-ifloat: 1
-Test "tgamma (0x3.ffffffffffffep0)":
-double: 1
-idouble: 1
-Test "tgamma (0x4.0000000000004p0)":
-double: 1
-idouble: 1
-Test "tgamma (0x4.ffffffffffffcp0)":
-double: 1
-idouble: 1
-Test "tgamma (0x5.0000000000004p0)":
-double: 1
-idouble: 1
-Test "tgamma (0x5.000008p0)":
-float: 2
-ifloat: 2
-Test "tgamma (0x5.fffff8p0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (0x6.0000000000004p0)":
-double: 1
-idouble: 1
-Test "tgamma (0x6.000008p0)":
-float: 2
-ifloat: 2
-Test "tgamma (0x6.fffff8p0)":
-double: 1
-idouble: 1
-Test "tgamma (0x6.ffffffffffffcp0)":
-double: 4
-idouble: 4
-Test "tgamma (0x7.0000000000004p0)":
-double: 4
-idouble: 4
-Test "tgamma (0x7.000008p0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (0x7.fffff8p0)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "tgamma (0x7.ffffffffffffcp0)":
-double: 2
-idouble: 2
-Test "tgamma (0x8.00001p0)":
-double: 2
-idouble: 2
-Test "tgamma (0xa.b9fd72b0fb238p+4)":
-double: 1
-idouble: 1
-Test "tgamma (10)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (18.5)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (19.5)":
-double: 2
-idouble: 2
-Test "tgamma (2.5)":
-float: 2
-ifloat: 2
-Test "tgamma (23.5)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (29.5)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (3)":
-float: 1
-ifloat: 1
-Test "tgamma (3.5)":
-float: 2
-ifloat: 2
-Test "tgamma (30.5)":
-float: 1
-ifloat: 1
-Test "tgamma (33.5)":
-float: 1
-ifloat: 1
-Test "tgamma (34.5)":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-Test "tgamma (4)":
-float: 1
-ifloat: 1
-Test "tgamma (4.5)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (6)":
-float: 1
-ifloat: 1
-Test "tgamma (6.5)":
-float: 1
-ifloat: 1
-Test "tgamma (7)":
-double: 1
-idouble: 1
-Test "tgamma (7.5)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "tgamma (8)":
-double: 1
-idouble: 1
-Test "tgamma (8.5)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (9)":
-double: 1
-idouble: 1
-Test "tgamma (9.5)":
-double: 1
-idouble: 1
-
-# y0
-Test "y0 (0x1.3ffp+74)":
-double: 1
-idouble: 1
-Test "y0 (0x1.ff00000000002p+840)":
-double: 1
-idouble: 1
-Test "y0 (0x1p-10)":
-double: 1
-idouble: 1
-Test "y0 (0x1p-110)":
-double: 1
-idouble: 1
-Test "y0 (0x1p-20)":
-float: 1
-ifloat: 1
-Test "y0 (0x1p-30)":
-float: 1
-ifloat: 1
-Test "y0 (0x1p-40)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "y0 (0x1p-50)":
-float: 1
-ifloat: 1
-Test "y0 (0x1p-70)":
-double: 1
-idouble: 1
-Test "y0 (0x1p-80)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "y0 (1.0)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "y0 (1.5)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "y0 (10.0)":
-float: 1
-ifloat: 1
-Test "y0 (8.0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# y1
-Test "y1 (0.125)":
-double: 1
-idouble: 1
-Test "y1 (0x1.27e204p+99)":
-double: 1
-idouble: 1
-Test "y1 (0x1p-10)":
-double: 1
-idouble: 1
-Test "y1 (1.5)":
-float: 1
-ifloat: 1
-Test "y1 (10.0)":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-Test "y1 (2.0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "y1 (8.0)":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-# yn
-Test "yn (0, 1.0)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "yn (0, 1.5)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "yn (0, 10.0)":
-float: 1
-ifloat: 1
-Test "yn (0, 8.0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "yn (1, 0.125)":
-double: 1
-idouble: 1
-Test "yn (1, 1.5)":
-float: 1
-ifloat: 1
-Test "yn (1, 10.0)":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-Test "yn (1, 2.0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "yn (1, 8.0)":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-Test "yn (10, 0.125)":
-double: 1
-idouble: 1
-Test "yn (10, 0.75)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "yn (10, 1.0)":
-double: 1
-idouble: 1
-Test "yn (10, 10.0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "yn (10, 2.0)":
-double: 2
-idouble: 2
-Test "yn (3, 0.125)":
-double: 1
-idouble: 1
-Test "yn (3, 0.75)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "yn (3, 10.0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "yn (3, 2.0)":
-double: 1
-idouble: 1
-
-# Maximal error of functions:
-Function: "acos_downward":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "acos_towardzero":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "asin_downward":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "asin_towardzero":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "asin_upward":
-float: 1
-ifloat: 1
-
-Function: "atan2":
-float: 1
-ifloat: 1
-
-Function: "atanh":
-float: 1
-ifloat: 1
-
-Function: Real part of "cacos":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: Imaginary part of "cacos":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: Real part of "cacosh":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: Real part of "casin":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "casin":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: Real part of "casinh":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: Imaginary part of "casinh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "catan":
-float: 1
-ifloat: 1
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "catanh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "catanh":
-float: 1
-ifloat: 1
-
-Function: "cbrt":
-double: 1
-idouble: 1
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "ccos":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "cexp":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-Function: Imaginary part of "cexp":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: Real part of "clog":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "clog":
-float: 1
-ifloat: 1
-
-Function: Real part of "clog10":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-
-Function: Imaginary part of "clog10":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "cos":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-Function: "cos_downward":
-float: 1
-ifloat: 1
-
-Function: "cos_tonearest":
-float: 1
-ifloat: 1
-
-Function: "cos_towardzero":
-float: 1
-ifloat: 1
-
-Function: "cos_upward":
-float: 2
-ifloat: 2
-
-Function: "cosh_downward":
-float: 1
-ifloat: 1
-
-Function: "cosh_towardzero":
-float: 1
-ifloat: 1
-
-Function: Real part of "cpow":
-double: 2
-float: 4
-idouble: 2
-ifloat: 4
-
-Function: Imaginary part of "cpow":
-float: 2
-ifloat: 2
-
-Function: Real part of "csin":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "csinh":
-float: 1
-ifloat: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "csqrt":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "csqrt":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "ctan":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "ctan":
-double: 1
-idouble: 1
-
-Function: Real part of "ctan_downward":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-Function: Imaginary part of "ctan_downward":
-float: 1
-ifloat: 1
-
-Function: Real part of "ctan_tonearest":
-float: 1
-ifloat: 1
-
-Function: Imaginary part of "ctan_tonearest":
-float: 1
-ifloat: 1
-
-Function: Real part of "ctan_towardzero":
-float: 1
-ifloat: 1
-
-Function: Imaginary part of "ctan_towardzero":
-float: 1
-ifloat: 1
-
-Function: Real part of "ctan_upward":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-Function: Imaginary part of "ctan_upward":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: Real part of "ctanh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "ctanh":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: Real part of "ctanh_downward":
-float: 1
-ifloat: 1
-
-Function: Imaginary part of "ctanh_downward":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-Function: Real part of "ctanh_tonearest":
-float: 1
-ifloat: 1
-
-Function: Imaginary part of "ctanh_tonearest":
-float: 1
-ifloat: 1
-
-Function: Real part of "ctanh_towardzero":
-float: 1
-ifloat: 1
-
-Function: Imaginary part of "ctanh_towardzero":
-float: 1
-ifloat: 1
-
-Function: Real part of "ctanh_upward":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: Imaginary part of "ctanh_upward":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-Function: "erf":
-double: 1
-idouble: 1
-
-Function: "erfc":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "exp":
-double: 1
-idouble: 1
-
-Function: "exp10":
-double: 1
-idouble: 1
-
-Function: "exp_downward":
-float: 1
-ifloat: 1
-
-Function: "exp_towardzero":
-float: 1
-ifloat: 1
-
-Function: "exp_upward":
-float: 1
-ifloat: 1
-
-Function: "expm1":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "gamma":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: "hypot":
-float: 1
-ifloat: 1
-
-Function: "j0":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-
-Function: "j1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: "jn":
-double: 4
-float: 5
-idouble: 4
-ifloat: 5
-
-Function: "lgamma":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: "log":
-float: 1
-ifloat: 1
-
-Function: "log10":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: "log1p":
-float: 1
-ifloat: 1
-
-Function: "pow":
-float: 1
-ifloat: 1
-
-Function: "pow10":
-double: 1
-idouble: 1
-
-Function: "pow_downward":
-float: 1
-ifloat: 1
-
-Function: "pow_towardzero":
-float: 1
-ifloat: 1
-
-Function: "pow_upward":
-float: 1
-ifloat: 1
-
-Function: "sin_downward":
-float: 1
-ifloat: 1
-
-Function: "sin_tonearest":
-float: 1
-ifloat: 1
-
-Function: "sin_towardzero":
-float: 1
-ifloat: 1
-
-Function: "sin_upward":
-float: 2
-ifloat: 2
-
-Function: "sincos":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "sinh_downward":
-float: 1
-ifloat: 1
-
-Function: "sinh_towardzero":
-float: 1
-ifloat: 1
-
-Function: "tan":
-double: 1
-idouble: 1
-
-Function: "tan_downward":
-float: 1
-ifloat: 1
-
-Function: "tan_towardzero":
-float: 1
-ifloat: 1
-
-Function: "tan_upward":
-float: 1
-ifloat: 1
-
-Function: "tgamma":
-double: 4
-float: 3
-idouble: 4
-ifloat: 3
-
-Function: "y0":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-Function: "y1":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-
-Function: "yn":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-
-# end of automatic generation
diff --git a/test/math/libm-test-ulps-cris b/test/math/libm-test-ulps-cris
deleted file mode 100644
index 46b2ac5..0000000
--- a/test/math/libm-test-ulps-cris
+++ /dev/null
@@ -1,145 +0,0 @@
-# Begin of automatic generation
-
-# cos
-Test "cos (M_PI_6l * 2.0) == 0.5":
-double: 1
-idouble: 1
-Test "cos (M_PI_6l * 4.0) == -0.5":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-# erf
-Test "erf (0.75) == 0.711155633653515131598937834591410777":
-double: 1
-idouble: 1
-Test "erf (1.25) == 0.922900128256458230136523481197281140":
-double: 1
-idouble: 1
-
-# erfc
-Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
-double: 1
-idouble: 1
-
-# exp
-Test "exp (1) == e":
-double: 1
-idouble: 1
-
-# expm1
-Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
-double: 1
-idouble: 1
-
-# hypot
-Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-
-# lgamma
-Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-# log10
-Test "log10 (0.75) == -0.124938736608299953132449886193870744":
-double: 1
-idouble: 1
-Test "log10 (e) == log10(e)":
-float: 1
-ifloat: 1
-
-# tgamma
-Test "tgamma (-0.5) == -2 sqrt (pi)":
-double: 1
-idouble: 1
-Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# Maximal error of functions:
-Function: "cos":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-Function: "erf":
-double: 1
-idouble: 1
-
-Function: "erfc":
-double: 1
-idouble: 1
-
-Function: "exp":
-double: 1
-idouble: 1
-
-Function: "expm1":
-double: 1
-idouble: 1
-
-Function: "hypot":
-float: 1
-ifloat: 1
-
-Function: "lgamma":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: "log":
-float: 1
-ifloat: 1
-
-Function: "log10":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "tan":
-double: 1
-idouble: 1
-
-Function: "tgamma":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# end of automatic generation
diff --git a/test/math/libm-test-ulps-generic b/test/math/libm-test-ulps-generic
deleted file mode 100644
index 7cfa1f8..0000000
--- a/test/math/libm-test-ulps-generic
+++ /dev/null
@@ -1,5 +0,0 @@
-# File with deltas for math/libm-test
-# This file is the fallback and contains
-# no data
-# You can create a new file with e.g. `test-double -u'
-# followed by `gen-libm-test.pl -u ULPs -n'.
diff --git a/test/math/libm-test-ulps-i386 b/test/math/libm-test-ulps-i386
deleted file mode 100644
index a6fd6ac..0000000
--- a/test/math/libm-test-ulps-i386
+++ /dev/null
@@ -1,1261 +0,0 @@
-# Begin of automatic generation
-
-# acos
-Test "acos (0.75) == 0.722734247813415611178377352641333362":
-ildouble: 1
-ldouble: 1
-
-# asin
-Test "asin (-0.5) == -pi/6":
-ildouble: 1
-ldouble: 1
-Test "asin (-1.0) == -pi/2":
-ildouble: 1
-ldouble: 1
-Test "asin (0.5) == pi/6":
-ildouble: 1
-ldouble: 1
-Test "asin (0.75) == 0.848062078981481008052944338998418080":
-ildouble: 1
-ldouble: 1
-Test "asin (1.0) == pi/2":
-ildouble: 1
-ldouble: 1
-
-# atanh
-Test "atanh (0.75) == 0.972955074527656652552676371721589865":
-ildouble: 2
-ldouble: 1
-
-# cacos
-Test "Imaginary part of: cacos (0.75 + 1.25 i) ==
1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-
-# cacosh
-Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 -
2.1414491111159960199416055713254211 i":
-double: 1
-float: 9
-idouble: 1
-ifloat: 9
-ildouble: 6
-ldouble: 6
-Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 -
2.1414491111159960199416055713254211 i":
-double: 1
-float: 4
-idouble: 1
-ifloat: 4
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0.75 + 1.25 i) == 1.13239363160530819522266333696834467
+ 1.11752014915610270578240049553777969 i":
-ildouble: 1
-ldouble: 1
-
-# casin
-Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749
+ 1.13239363160530819522266333696834467 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: casin (0.75 + 1.25 i) ==
0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-
-# casinh
-Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 -
0.96465850440760279204541105949953237 i":
-double: 5
-float: 1
-idouble: 5
-ifloat: 1
-ildouble: 5
-ldouble: 5
-Test "Imaginary part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982
- 0.96465850440760279204541105949953237 i":
-double: 3
-float: 6
-idouble: 3
-ifloat: 6
-ildouble: 5
-ldouble: 5
-Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594
+ 0.911738290968487636358489564316731207 i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casinh (0.75 + 1.25 i) ==
1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# catan
-Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 -
0.22907268296853876629588180294200276 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# catanh
-Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 -
1.3389725222944935611241935759091443 i":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140
+ 0.996825126463918666098902241310446708 i":
-double: 1
-idouble: 1
-
-# cbrt
-Test "cbrt (-27.0) == -3.0":
-ildouble: 1
-ldouble: 1
-Test "cbrt (0.75) == 0.908560296416069829445605878163630251":
-ildouble: 1
-ldouble: 1
-
-# ccos
-Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 -
9.10922789375533659797919726277886212 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 -
1.09193013555397466170919531722024128 i":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccos (0.75 + 1.25 i) ==
1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
-ildouble: 1
-ldouble: 1
-
-# ccosh
-Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253
+ 0.511822569987384608834463849801875634 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084
+ 0.780365930845853240391326216300863152 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: ccosh (0.75 + 1.25 i) ==
0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# cexp
-Test "Real part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 -
0.019098516261135196432576240858800925 i":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) ==
-0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 +
2.00900045494094876258347228145863909 i":
-ildouble: 1
-ldouble: 1
-
-# clog
-Test "Real part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 +
1.03037682652431246378774332703115153 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# clog10
-Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214
- 0.937554462986374708541507952140189646 i":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf + inf i) == inf + 3/4 pi*log10(e) i":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: clog10 (0.75 + 1.25 i) == 0.163679467193165171449476605077428975
+ 0.447486970040493067069984724340855636 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# cos
-Test "cos (M_PI_6l * 2.0) == 0.5":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "cos (M_PI_6l * 4.0) == -0.5":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "cos (pi/2) == 0":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# cosh
-Test "cosh (0.75) == 1.29468328467684468784170818539018176":
-ildouble: 1
-
-# cpow
-Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) ==
0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) ==
0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i) ==
0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
-float: 3
-ifloat: 3
-ildouble: 6
-ldouble: 6
-Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i) ==
0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i) == 0.75 + 1.25 i":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i) == 0.75 + 1.25 i":
-float: 1
-ifloat: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i) ==
0.0846958290317209430433805274189191353 + 0.513285749182902449043287190519090481 i":
-double: 1
-float: 3
-idouble: 1
-ifloat: 3
-ildouble: 3
-ldouble: 3
-Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
-double: 1
-float: 4
-idouble: 1
-ifloat: 4
-Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i) == 1.0 + 0.0 i":
-double: 2
-float: 3
-idouble: 2
-ifloat: 3
-ildouble: 1
-ldouble: 1
-
-# csin
-Test "Real part of: csin (0.75 + 1.25 i) == 1.28722291002649188575873510790565441 +
1.17210635989270256101081285116138863 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csin (0.75 + 1.25 i) ==
1.28722291002649188575873510790565441 + 1.17210635989270256101081285116138863 i":
-float: 1
-ifloat: 1
-
-# csinh
-Test "Real part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 -
0.530921086248519805267040090660676560 i":
-double: 1
-idouble: 1
-Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 -
0.530921086248519805267040090660676560 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028
+ 1.22863452409509552219214606515777594 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csinh (0.75 + 1.25 i) ==
0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
-float: 1
-ifloat: 1
-
-# ctan
-Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 -
1.00323862735360980144635859782192726 i":
-double: 1
-idouble: 1
-ildouble: 439
-ldouble: 439
-Test "Imaginary part of: ctan (-2 - 3 i) ==
0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726
i":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Real part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 +
0.975363285031235646193581759755216379 i":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ctan (0.75 + 1.25 i) ==
0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 3
-ldouble: 3
-
-# ctanh
-Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 +
0.988437503832249372031403430350121098e-2 i":
-ildouble: 5
-ldouble: 5
-Test "Imaginary part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686
+ 0.988437503832249372031403430350121098e-2 i":
-float: 1
-ifloat: 1
-ildouble: 25
-ldouble: 25
-Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
-float: 1
-ifloat: 1
-Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 +
0.385795952609750664177596760720790220 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: ctanh (0.75 + 1.25 i) ==
1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# erf
-Test "erf (1.25) == 0.922900128256458230136523481197281140":
-double: 1
-idouble: 1
-
-# erfc
-Test "erfc (0.75) == 0.288844366346484868401062165408589223":
-float: 1
-ifloat: 1
-Test "erfc (1.25) == 0.0770998717435417698634765188027188596":
-ildouble: 1
-ldouble: 1
-Test "erfc (2.0) == 0.00467773498104726583793074363274707139":
-double: 1
-idouble: 1
-Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-# exp
-Test "exp (0.75) == 2.11700001661267466854536981983709561":
-ildouble: 1
-Test "exp (1000.0) == 0.197007111401704699388887935224332313e435":
-ildouble: 754
-Test "exp (50.0) == 5184705528587072464087.45332293348538":
-ildouble: 16
-
-# exp10
-Test "exp10 (-1) == 0.1":
-ildouble: 1
-ldouble: 1
-Test "exp10 (0.75) == 5.62341325190349080394951039776481231":
-ildouble: 2
-ldouble: 2
-Test "exp10 (3) == 1000":
-ildouble: 8
-ldouble: 8
-
-# expm1
-Test "expm1 (1) == M_El - 1.0":
-ildouble: 1
-
-# gamma
-Test "gamma (-0.5) == log(2*sqrt(pi))":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-# hypot
-Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-
-# j0
-Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "j0 (10.0) == -0.245935764451348335197760862485328754":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-Test "j0 (2.0) == 0.223890779141235668051827454649948626":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "j0 (8.0) == 0.171650807137553906090869407851972001":
-float: 1
-ifloat: 1
-
-# j1
-Test "j1 (0.75) == 0.349243602174862192523281016426251335":
-double: 1
-idouble: 1
-Test "j1 (10.0) == 0.0434727461688614366697487680258592883":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "j1 (2.0) == 0.576724807756873387202448242269137087":
-double: 1
-idouble: 1
-Test "j1 (8.0) == 0.234636346853914624381276651590454612":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# jn
-Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "jn (0, 10.0) == -0.245935764451348335197760862485328754":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-Test "jn (0, 2.0) == 0.223890779141235668051827454649948626":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "jn (0, 8.0) == 0.171650807137553906090869407851972001":
-float: 1
-ifloat: 1
-Test "jn (1, 0.75) == 0.349243602174862192523281016426251335":
-double: 1
-idouble: 1
-Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "jn (1, 2.0) == 0.576724807756873387202448242269137087":
-double: 1
-idouble: 1
-Test "jn (1, 8.0) == 0.234636346853914624381276651590454612":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "jn (10, -1.0) == 0.263061512368745320699785368779050294e-9":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "jn (10, 1.0) == 0.263061512368745320699785368779050294e-9":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "jn (10, 10.0) == 0.207486106633358857697278723518753428":
-double: 5
-float: 2
-idouble: 5
-ifloat: 2
-ildouble: 2
-ldouble: 2
-Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6":
-double: 2
-idouble: 2
-ildouble: 1
-ldouble: 1
-Test "jn (3, -1.0) == -0.0195633539826684059189053216217515083":
-ildouble: 1
-ldouble: 1
-Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "jn (3, 1.0) == 0.0195633539826684059189053216217515083":
-ildouble: 1
-ldouble: 1
-Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563":
-double: 5
-float: 2
-idouble: 5
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "jn (3, 2.0) == 0.128943249474402051098793332969239835":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-# lgamma
-Test "lgamma (-0.5) == log(2*sqrt(pi))":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-# log
-Test "log (e) == 1":
-float: 1
-ifloat: 1
-
-# log10
-Test "log10 (0.75) == -0.124938736608299953132449886193870744":
-ildouble: 1
-ldouble: 1
-Test "log10 (e) == log10(e)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# sincos
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts
0.86602540378443864676372317075293616 in sin_res":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# sin
-Test "sin (0.80190127184058835) == 0.71867942238767868":
-double: 1
-idouble: 1
-
-# sinh
-Test "sinh (0.75) == 0.822316731935829980703661634446913849":
-double: 1
-ildouble: 1
-
-# tan
-Test "tan (pi/4) == 1":
-double: 1
-idouble: 1
-
-# tgamma
-Test "tgamma (-0.5) == -2 sqrt (pi)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "tgamma (0.5) == sqrt (pi)":
-float: 1
-ifloat: 1
-Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (4) == 6":
-ildouble: 1
-ldouble: 1
-
-# y0
-Test "y0 (0.125) == -1.38968062514384052915582277745018693":
-ildouble: 1
-ldouble: 1
-Test "y0 (0.75) == -0.137172769385772397522814379396581855":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "y0 (1.5) == 0.382448923797758843955068554978089862":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "y0 (8.0) == 0.223521489387566220527323400498620359":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# y1
-Test "y1 (0.125) == -5.19993611253477499595928744876579921":
-ildouble: 1
-ldouble: 1
-Test "y1 (1.0) == -0.781212821300288716547150000047964821":
-double: 1
-idouble: 1
-Test "y1 (10.0) == 0.249015424206953883923283474663222803":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-Test "y1 (2.0) == -0.107032431540937546888370772277476637":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "y1 (8.0) == -0.158060461731247494255555266187483550":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-# yn
-Test "yn (0, 0.125) == -1.38968062514384052915582277745018693":
-ildouble: 1
-ldouble: 1
-Test "yn (0, 0.75) == -0.137172769385772397522814379396581855":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "yn (0, 1.5) == 0.382448923797758843955068554978089862":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "yn (0, 8.0) == 0.223521489387566220527323400498620359":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "yn (1, 0.125) == -5.19993611253477499595928744876579921":
-ildouble: 1
-ldouble: 1
-Test "yn (1, 1.0) == -0.781212821300288716547150000047964821":
-double: 1
-idouble: 1
-Test "yn (1, 10.0) == 0.249015424206953883923283474663222803":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-Test "yn (1, 2.0) == -0.107032431540937546888370772277476637":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "yn (1, 8.0) == -0.158060461731247494255555266187483550":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "yn (10, 0.125) == -127057845771019398.252538486899753195":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "yn (10, 0.75) == -2133501638.90573424452445412893839236":
-float: 1
-ifloat: 1
-ildouble: 4
-ldouble: 4
-Test "yn (10, 1.0) == -121618014.278689189288130426667971145":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-Test "yn (10, 10.0) == -0.359814152183402722051986577343560609":
-double: 1
-float: 3
-idouble: 1
-ifloat: 3
-Test "yn (10, 2.0) == -129184.542208039282635913145923304214":
-double: 2
-float: 3
-idouble: 2
-ifloat: 3
-Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
-ildouble: 1
-ldouble: 1
-Test "yn (3, 0.75) == -12.9877176234475433186319774484809207":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "yn (3, 10.0) == -0.251362657183837329779204747654240998":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "yn (3, 2.0) == -1.12778377684042778608158395773179238":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# Maximal error of functions:
-Function: "acos":
-ildouble: 622
-ldouble: 622
-
-Function: "asin":
-ildouble: 1
-ldouble: 1
-
-Function: "atanh":
-ildouble: 2
-ldouble: 1
-
-Function: Imaginary part of "cacos":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-
-Function: Real part of "cacosh":
-double: 1
-float: 9
-idouble: 1
-ifloat: 9
-ildouble: 6
-ldouble: 6
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 4
-idouble: 1
-ifloat: 4
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "casin":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-
-Function: Imaginary part of "casin":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-
-Function: Real part of "casinh":
-double: 5
-float: 1
-idouble: 5
-ifloat: 1
-ildouble: 5
-ldouble: 5
-
-Function: Imaginary part of "casinh":
-double: 3
-float: 6
-idouble: 3
-ifloat: 6
-ildouble: 5
-ldouble: 5
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "catanh":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "cbrt":
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "ccos":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "ccos":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "cexp":
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "cexp":
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "clog":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "clog10":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "clog10":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "cos":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "cosh":
-ildouble: 1
-
-Function: Real part of "cpow":
-double: 1
-float: 4
-idouble: 1
-ifloat: 4
-ildouble: 763
-ldouble: 763
-
-Function: Imaginary part of "cpow":
-double: 2
-float: 3
-idouble: 2
-ifloat: 3
-ildouble: 2
-ldouble: 2
-
-Function: Real part of "csin":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "csin":
-float: 1
-ifloat: 1
-
-Function: Real part of "csinh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-
-Function: Real part of "ctan":
-double: 1
-idouble: 1
-ildouble: 439
-ldouble: 439
-
-Function: Imaginary part of "ctan":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 3
-ldouble: 3
-
-Function: Real part of "ctanh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 5
-ldouble: 5
-
-Function: Imaginary part of "ctanh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 25
-ldouble: 25
-
-Function: "erf":
-double: 1
-idouble: 1
-
-Function: "erfc":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "exp":
-ildouble: 754
-
-Function: "exp10":
-ildouble: 8
-ldouble: 8
-
-Function: "expm1":
-ildouble: 1
-
-Function: "gamma":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-Function: "hypot":
-float: 1
-ifloat: 1
-
-Function: "j0":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: "j1":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "jn":
-double: 5
-float: 2
-idouble: 5
-ifloat: 2
-ildouble: 2
-ldouble: 2
-
-Function: "lgamma":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: "log":
-float: 1
-ifloat: 1
-
-Function: "log10":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "sincos":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "sin":
-double: 1
-idouble: 1
-
-Function: "sinh":
-double: 1
-ildouble: 1
-
-Function: "tan":
-double: 1
-idouble: 1
-
-Function: "tgamma":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "y0":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "y1":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: "yn":
-double: 2
-float: 3
-idouble: 2
-ifloat: 3
-ildouble: 4
-ldouble: 4
-
-# end of automatic generation
diff --git a/test/math/libm-test-ulps-ia64 b/test/math/libm-test-ulps-ia64
deleted file mode 100644
index c5a2a08..0000000
--- a/test/math/libm-test-ulps-ia64
+++ /dev/null
@@ -1,1146 +0,0 @@
-# Begin of automatic generation
-
-# cacos
-Test "Imaginary part of: cacos (0.75 + 1.25 i) ==
1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-
-# cacosh
-Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 -
2.1414491111159960199416055713254211 i":
-double: 1
-float: 7
-idouble: 1
-ifloat: 7
-ildouble: 7
-ldouble: 7
-Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 -
2.1414491111159960199416055713254211 i":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-# casin
-Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749
+ 1.13239363160530819522266333696834467 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: casin (0.75 + 1.25 i) ==
0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-
-# casinh
-Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 -
0.96465850440760279204541105949953237 i":
-double: 5
-float: 1
-idouble: 5
-ifloat: 1
-ildouble: 5
-ldouble: 5
-Test "Imaginary part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982
- 0.96465850440760279204541105949953237 i":
-double: 3
-float: 6
-idouble: 3
-ifloat: 6
-ildouble: 5
-ldouble: 5
-Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594
+ 0.911738290968487636358489564316731207 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0.75 + 1.25 i) ==
1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# catan
-Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 -
0.22907268296853876629588180294200276 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# catanh
-Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 -
1.3389725222944935611241935759091443 i":
-double: 4
-idouble: 4
-ildouble: 1
-ldouble: 1
-Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140
+ 0.996825126463918666098902241310446708 i":
-double: 1
-idouble: 1
-
-# ccos
-Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 -
9.10922789375533659797919726277886212 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 -
1.09193013555397466170919531722024128 i":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccos (0.75 + 1.25 i) ==
1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
-ildouble: 1
-ldouble: 1
-
-# ccosh
-Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253
+ 0.511822569987384608834463849801875634 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084
+ 0.780365930845853240391326216300863152 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: ccosh (0.75 + 1.25 i) ==
0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
-float: 1
-ifloat: 1
-
-# cexp
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) ==
-0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
-float: 1
-ifloat: 1
-Test "Real part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 +
2.00900045494094876258347228145863909 i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cexp (0.75 + 1.25 i) ==
0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
-ildouble: 1
-ldouble: 1
-
-# clog
-Test "Real part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 +
1.03037682652431246378774332703115153 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# clog10
-Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214
- 0.937554462986374708541507952140189646 i":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf + inf i) == inf + 3/4 pi*log10(e) i":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: clog10 (0.75 + 1.25 i) == 0.163679467193165171449476605077428975
+ 0.447486970040493067069984724340855636 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# cos
-Test "cos (0.80190127184058835) == 0.69534156199418473":
-double: 1
-idouble: 1
-Test "cos (M_PI_6l * 2.0) == 0.5":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "cos (M_PI_6l * 4.0) == -0.5":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "cos (pi/2) == 0":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# cpow
-Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) ==
0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) ==
0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i) ==
0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
-double: 1
-float: 4
-idouble: 1
-ifloat: 4
-ildouble: 6
-ldouble: 6
-Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i) ==
0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i) == 0.75 + 1.25 i":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i) ==
0.0846958290317209430433805274189191353 + 0.513285749182902449043287190519090481 i":
-double: 2
-float: 3
-idouble: 2
-ifloat: 3
-ildouble: 3
-ldouble: 3
-Test "Real part of: cpow (2 + 0 i, 10 + 0 i) == 1024.0 + 0.0 i":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
-double: 1
-float: 5
-idouble: 1
-ifloat: 5
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
-float: 2
-ifloat: 2
-ildouble: 4
-ldouble: 4
-Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i) == 1.0 + 0.0 i":
-double: 2
-float: 3
-idouble: 2
-ifloat: 3
-ildouble: 1
-ldouble: 1
-
-# csin
-Test "Real part of: csin (0.75 + 1.25 i) == 1.28722291002649188575873510790565441 +
1.17210635989270256101081285116138863 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csin (0.75 + 1.25 i) ==
1.28722291002649188575873510790565441 + 1.17210635989270256101081285116138863 i":
-float: 1
-ifloat: 1
-
-# csinh
-Test "Real part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 -
0.530921086248519805267040090660676560 i":
-double: 1
-idouble: 1
-Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 -
0.530921086248519805267040090660676560 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028
+ 1.22863452409509552219214606515777594 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csinh (0.75 + 1.25 i) ==
0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
-float: 1
-ifloat: 1
-
-# csqrt
-Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 +
1.6741492280355400404480393008490519 i":
-float: 1
-ifloat: 1
-Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 -
1.6741492280355400404480393008490519 i":
-float: 1
-ifloat: 1
-
-# ctan
-Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 -
1.00323862735360980144635859782192726 i":
-double: 1
-idouble: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: ctan (-2 - 3 i) ==
0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726
i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 +
0.975363285031235646193581759755216379 i":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ctan (0.75 + 1.25 i) ==
0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# ctanh
-Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 +
0.988437503832249372031403430350121098e-2 i":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686
+ 0.988437503832249372031403430350121098e-2 i":
-float: 1
-ifloat: 1
-ildouble: 24
-ldouble: 24
-Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
-float: 1
-ifloat: 1
-Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 +
0.385795952609750664177596760720790220 i":
-double: 1
-idouble: 1
-Test "Imaginary part of: ctanh (0.75 + 1.25 i) ==
1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-# erf
-Test "erf (1.25) == 0.922900128256458230136523481197281140":
-double: 1
-idouble: 1
-
-# erfc
-Test "erfc (0.75) == 0.288844366346484868401062165408589223":
-float: 1
-ifloat: 1
-Test "erfc (1.25) == 0.0770998717435417698634765188027188596":
-ildouble: 1
-ldouble: 1
-Test "erfc (2.0) == 0.00467773498104726583793074363274707139":
-double: 1
-idouble: 1
-Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-# exp10
-Test "exp10 (-1) == 0.1":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "exp10 (0.75) == 5.62341325190349080394951039776481231":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "exp10 (3) == 1000":
-double: 6
-float: 2
-idouble: 6
-ifloat: 2
-ildouble: 3
-ldouble: 3
-
-# expm1
-Test "expm1 (1) == M_El - 1.0":
-ildouble: 1
-ldouble: 1
-
-# gamma
-Test "gamma (-0.5) == log(2*sqrt(pi))":
-ildouble: 1
-ldouble: 1
-
-# hypot
-Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-
-# j0
-Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 2
-ldouble: 2
-Test "j0 (10.0) == -0.245935764451348335197760862485328754":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "j0 (2.0) == 0.223890779141235668051827454649948626":
-float: 2
-ifloat: 2
-Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 2
-ldouble: 2
-Test "j0 (8.0) == 0.171650807137553906090869407851972001":
-float: 1
-ifloat: 1
-
-# j1
-Test "j1 (10.0) == 0.0434727461688614366697487680258592883":
-float: 2
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "j1 (2.0) == 0.576724807756873387202448242269137087":
-double: 1
-idouble: 1
-Test "j1 (8.0) == 0.234636346853914624381276651590454612":
-double: 1
-idouble: 1
-
-# jn
-Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 2
-ldouble: 2
-Test "jn (0, 10.0) == -0.245935764451348335197760862485328754":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "jn (0, 2.0) == 0.223890779141235668051827454649948626":
-float: 2
-ifloat: 2
-Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 2
-ldouble: 2
-Test "jn (0, 8.0) == 0.171650807137553906090869407851972001":
-float: 1
-ifloat: 1
-Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883":
-float: 2
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "jn (1, 2.0) == 0.576724807756873387202448242269137087":
-double: 1
-idouble: 1
-Test "jn (1, 8.0) == 0.234636346853914624381276651590454612":
-double: 1
-idouble: 1
-Test "jn (10, -1.0) == 0.263061512368745320699785368779050294e-9":
-ildouble: 1
-ldouble: 1
-Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "jn (10, 1.0) == 0.263061512368745320699785368779050294e-9":
-ildouble: 1
-ldouble: 1
-Test "jn (10, 10.0) == 0.207486106633358857697278723518753428":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6":
-float: 4
-ifloat: 4
-ildouble: 1
-ldouble: 1
-Test "jn (3, -1.0) == -0.0195633539826684059189053216217515083":
-ildouble: 1
-ldouble: 1
-Test "jn (3, 0.125) == 0.406503832554912875023029337653442868e-4":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2":
-double: 1
-idouble: 1
-Test "jn (3, 1.0) == 0.0195633539826684059189053216217515083":
-ildouble: 1
-ldouble: 1
-Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "jn (3, 2.0) == 0.128943249474402051098793332969239835":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-# lgamma
-Test "lgamma (-0.5) == log(2*sqrt(pi))":
-ildouble: 1
-ldouble: 1
-Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-# log
-Test "log (e) == 1":
-float: 1
-ifloat: 1
-
-# log10
-Test "log10 (e) == log10(e)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# sincos
-Test "sincos (0.80190127184058835, &sin_res, &cos_res) puts
0.69534156199418473 in cos_res":
-double: 1
-idouble: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts
0.86602540378443864676372317075293616 in sin_res":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# tan
-Test "tan (pi/4) == 1":
-double: 1
-idouble: 1
-
-# tgamma
-Test "tgamma (-0.5) == -2 sqrt (pi)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "tgamma (0.5) == sqrt (pi)":
-float: 1
-ifloat: 1
-Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# y0
-Test "y0 (0.125) == -1.38968062514384052915582277745018693":
-ildouble: 1
-ldouble: 1
-Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "y0 (1.5) == 0.382448923797758843955068554978089862":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "y0 (2.0) == 0.510375672649745119596606592727157873":
-double: 1
-idouble: 1
-Test "y0 (8.0) == 0.223521489387566220527323400498620359":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# y1
-Test "y1 (0.125) == -5.19993611253477499595928744876579921":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "y1 (10.0) == 0.249015424206953883923283474663222803":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-Test "y1 (1.5) == -0.412308626973911295952829820633445323";
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "y1 (2.0) == -0.107032431540937546888370772277476637":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "y1 (8.0) == -0.158060461731247494255555266187483550":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-# yn
-Test "yn (0, 0.125) == -1.38968062514384052915582277745018693":
-ildouble: 1
-ldouble: 1
-Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "yn (0, 1.5) == 0.382448923797758843955068554978089862":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "yn (0, 2.0) == 0.510375672649745119596606592727157873":
-double: 1
-idouble: 1
-Test "yn (0, 8.0) == 0.223521489387566220527323400498620359":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "yn (1, 0.125) == -5.19993611253477499595928744876579921":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "yn (1, 10.0) == 0.249015424206953883923283474663222803":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-Test "yn (1, 1.5) == -0.412308626973911295952829820633445323";
-float: 1
-ifloat: 1
-ldouble: 1
-ildouble: 1
-Test "yn (1, 2.0) == -0.107032431540937546888370772277476637":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "yn (1, 8.0) == -0.158060461731247494255555266187483550":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-Test "yn (10, 0.125) == -127057845771019398.252538486899753195":
-double: 1
-idouble: 1
-ildouble: 2
-ldouble: 2
-Test "yn (10, 0.75) == -2133501638.90573424452445412893839236":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-Test "yn (10, 1.0) == -121618014.278689189288130426667971145":
-float: 2
-ifloat: 2
-Test "yn (10, 10.0) == -0.359814152183402722051986577343560609":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-Test "yn (10, 2.0) == -129184.542208039282635913145923304214":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "yn (3, 0.75) == -12.9877176234475433186319774484809207":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "yn (3, 10.0) == -0.251362657183837329779204747654240998":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "yn (3, 2.0) == -1.12778377684042778608158395773179238":
-double: 1
-idouble: 1
-
-# Maximal error of functions:
-Function: Imaginary part of "cacos":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-
-Function: Real part of "cacosh":
-double: 1
-float: 7
-idouble: 1
-ifloat: 7
-ildouble: 7
-ldouble: 7
-
-Function: Imaginary part of "cacosh":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "casin":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-
-Function: Imaginary part of "casin":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-
-Function: Real part of "casinh":
-double: 5
-float: 1
-idouble: 5
-ifloat: 1
-ildouble: 5
-ldouble: 5
-
-Function: Imaginary part of "casinh":
-double: 3
-float: 6
-idouble: 3
-ifloat: 6
-ildouble: 5
-ldouble: 5
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "catanh":
-double: 4
-idouble: 4
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "ccos":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "ccos":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "cexp":
-float: 1
-ifloat: 1
-
-Function: Imaginary part of "cexp":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "clog":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "clog10":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "clog10":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "cos":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "cpow":
-double: 2
-float: 5
-idouble: 2
-ifloat: 5
-ildouble: 6
-ldouble: 6
-
-Function: Imaginary part of "cpow":
-double: 2
-float: 3
-idouble: 2
-ifloat: 3
-ildouble: 4
-ldouble: 4
-
-Function: Real part of "csin":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "csin":
-float: 1
-ifloat: 1
-
-Function: Real part of "csinh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-
-Function: Real part of "csqrt":
-float: 1
-ifloat: 1
-
-Function: Real part of "ctan":
-double: 1
-idouble: 1
-ildouble: 2
-ldouble: 2
-
-Function: Imaginary part of "ctan":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "ctanh":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "ctanh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 24
-ldouble: 24
-
-Function: "erf":
-double: 1
-idouble: 1
-
-Function: "erfc":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "exp10":
-double: 6
-float: 2
-idouble: 6
-ifloat: 2
-ildouble: 3
-ldouble: 3
-
-Function: "expm1":
-ildouble: 1
-ldouble: 1
-
-Function: "gamma":
-ildouble: 1
-ldouble: 1
-
-Function: "hypot":
-float: 1
-ifloat: 1
-
-Function: "j0":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-ildouble: 2
-ldouble: 2
-
-Function: "j1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: "jn":
-double: 3
-float: 4
-idouble: 3
-ifloat: 4
-ildouble: 2
-ldouble: 2
-
-Function: "lgamma":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: "log":
-float: 1
-ifloat: 1
-
-Function: "log10":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "sincos":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "tan":
-double: 1
-idouble: 1
-
-Function: "tgamma":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "y0":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "y1":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: "yn":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-ildouble: 2
-ldouble: 2
-
-# end of automatic generation
diff --git a/test/math/libm-test-ulps-microblaze b/test/math/libm-test-ulps-microblaze
deleted file mode 100644
index 46b2ac5..0000000
--- a/test/math/libm-test-ulps-microblaze
+++ /dev/null
@@ -1,145 +0,0 @@
-# Begin of automatic generation
-
-# cos
-Test "cos (M_PI_6l * 2.0) == 0.5":
-double: 1
-idouble: 1
-Test "cos (M_PI_6l * 4.0) == -0.5":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-# erf
-Test "erf (0.75) == 0.711155633653515131598937834591410777":
-double: 1
-idouble: 1
-Test "erf (1.25) == 0.922900128256458230136523481197281140":
-double: 1
-idouble: 1
-
-# erfc
-Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
-double: 1
-idouble: 1
-
-# exp
-Test "exp (1) == e":
-double: 1
-idouble: 1
-
-# expm1
-Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
-double: 1
-idouble: 1
-
-# hypot
-Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-
-# lgamma
-Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-# log10
-Test "log10 (0.75) == -0.124938736608299953132449886193870744":
-double: 1
-idouble: 1
-Test "log10 (e) == log10(e)":
-float: 1
-ifloat: 1
-
-# tgamma
-Test "tgamma (-0.5) == -2 sqrt (pi)":
-double: 1
-idouble: 1
-Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# Maximal error of functions:
-Function: "cos":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-Function: "erf":
-double: 1
-idouble: 1
-
-Function: "erfc":
-double: 1
-idouble: 1
-
-Function: "exp":
-double: 1
-idouble: 1
-
-Function: "expm1":
-double: 1
-idouble: 1
-
-Function: "hypot":
-float: 1
-ifloat: 1
-
-Function: "lgamma":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: "log":
-float: 1
-ifloat: 1
-
-Function: "log10":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "tan":
-double: 1
-idouble: 1
-
-Function: "tgamma":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# end of automatic generation
diff --git a/test/math/libm-test-ulps-mips32 b/test/math/libm-test-ulps-mips32
deleted file mode 100644
index 46b2ac5..0000000
--- a/test/math/libm-test-ulps-mips32
+++ /dev/null
@@ -1,145 +0,0 @@
-# Begin of automatic generation
-
-# cos
-Test "cos (M_PI_6l * 2.0) == 0.5":
-double: 1
-idouble: 1
-Test "cos (M_PI_6l * 4.0) == -0.5":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-# erf
-Test "erf (0.75) == 0.711155633653515131598937834591410777":
-double: 1
-idouble: 1
-Test "erf (1.25) == 0.922900128256458230136523481197281140":
-double: 1
-idouble: 1
-
-# erfc
-Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
-double: 1
-idouble: 1
-
-# exp
-Test "exp (1) == e":
-double: 1
-idouble: 1
-
-# expm1
-Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
-double: 1
-idouble: 1
-
-# hypot
-Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-
-# lgamma
-Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-# log10
-Test "log10 (0.75) == -0.124938736608299953132449886193870744":
-double: 1
-idouble: 1
-Test "log10 (e) == log10(e)":
-float: 1
-ifloat: 1
-
-# tgamma
-Test "tgamma (-0.5) == -2 sqrt (pi)":
-double: 1
-idouble: 1
-Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# Maximal error of functions:
-Function: "cos":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-Function: "erf":
-double: 1
-idouble: 1
-
-Function: "erfc":
-double: 1
-idouble: 1
-
-Function: "exp":
-double: 1
-idouble: 1
-
-Function: "expm1":
-double: 1
-idouble: 1
-
-Function: "hypot":
-float: 1
-ifloat: 1
-
-Function: "lgamma":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: "log":
-float: 1
-ifloat: 1
-
-Function: "log10":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "tan":
-double: 1
-idouble: 1
-
-Function: "tgamma":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# end of automatic generation
diff --git a/test/math/libm-test-ulps-mips64 b/test/math/libm-test-ulps-mips64
deleted file mode 100644
index dc065e5..0000000
--- a/test/math/libm-test-ulps-mips64
+++ /dev/null
@@ -1,9633 +0,0 @@
-# Begin of automatic generation
-
-# acos_downward
-Test "acos_downward (-0)":
-float: 1
-ifloat: 1
-Test "acos_downward (-0.5)":
-double: 1
-idouble: 1
-Test "acos_downward (-1)":
-float: 1
-ifloat: 1
-Test "acos_downward (0)":
-float: 1
-ifloat: 1
-Test "acos_downward (0.5)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# acos_towardzero
-Test "acos_towardzero (-0)":
-float: 1
-ifloat: 1
-Test "acos_towardzero (-0.5)":
-double: 1
-idouble: 1
-Test "acos_towardzero (-1)":
-float: 1
-ifloat: 1
-Test "acos_towardzero (0)":
-float: 1
-ifloat: 1
-Test "acos_towardzero (0.5)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# asin_downward
-Test "asin_downward (-0.5)":
-double: 1
-idouble: 1
-Test "asin_downward (0.5)":
-double: 1
-idouble: 1
-Test "asin_downward (1.0)":
-float: 1
-ifloat: 1
-
-# asin_towardzero
-Test "asin_towardzero (-0.5)":
-double: 1
-idouble: 1
-Test "asin_towardzero (-1.0)":
-float: 1
-ifloat: 1
-Test "asin_towardzero (0.5)":
-double: 1
-idouble: 1
-Test "asin_towardzero (1.0)":
-float: 1
-ifloat: 1
-
-# asin_upward
-Test "asin_upward (-1.0)":
-float: 1
-ifloat: 1
-
-# atan2
-Test "atan2 (-0.00756827042671106339, -.001792735857538728036)":
-ildouble: 1
-ldouble: 1
-Test "atan2 (-0.75, -1.0)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "atan2 (-max_value, -min_value)":
-float: 1
-ifloat: 1
-Test "atan2 (0.75, -1.0)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "atan2 (1.390625, 0.9296875)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# atanh
-Test "atanh (0.75)":
-float: 1
-ifloat: 1
-
-# cacos
-Test "Imaginary part of: cacos (+0 + 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (+0 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (+0 + 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (+0 - 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (+0 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (+0 - 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0 + 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0 + 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0 - 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0 - 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0.0 + 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0.0 + 0x1.0000000000000000000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0.0 + 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0.0 + 0x1.0000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0.0 - 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0.0 - 0x1.0000000000000000000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0.0 - 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0.0 - 0x1.0000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0.25 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0.25 + 1.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0.25 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0.25 - 1.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0.5 + +0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0.5 + 0x1.fp-1025 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0.5 + 0x1.fp-129 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0.5 + 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (-0.5 + 0x1.fp-16385 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0.5 + 0x1p-105 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0.5 + 0x1p-105 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0.5 + 0x1p-112 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0.5 + 0x1p-112 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0.5 + 0x1p-23 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0.5 + 0x1p-52 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0.5 + 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0.5 + 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0.5 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0.5 + 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0.5 - 0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0.5 - 0x1.fp-1025 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0.5 - 0x1.fp-129 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0.5 - 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (-0.5 - 0x1.fp-16385 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0.5 - 0x1p-105 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0.5 - 0x1p-105 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0.5 - 0x1p-112 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0.5 - 0x1p-112 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0.5 - 0x1p-23 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0.5 - 0x1p-52 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0.5 - 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0.5 - 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0.5 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0.5 - 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (-0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x0.ffffffp0 + 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: cacos (-0x0.ffffffp0 - 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 + 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 + 0x1.fp-16385
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 + 0x1p-113
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 - 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 - 0x1.fp-16385
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 - 0x1p-113
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.000002p0 + 0x1p-23 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.000002p0 - 0x1p-23 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-10 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-10 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (-0x1.fp-100 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1.fp-100 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0x1.fp-100 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1.fp-100 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-1000 + 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-1000 - 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-10000 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-10000 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-1025 + 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-1025 + 0x1.0000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-1025 - 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-1025 - 0x1.0000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0x1.fp-129 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1.fp-129 + 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0x1.fp-129 + 0x0.ffffffp0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1.fp-129 + 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1.fp-129 + 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1.fp-129 + 0x1p-23 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1.fp-129 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1.fp-129 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0x1.fp-129 + 1.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1.fp-129 + 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0x1.fp-129 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1.fp-129 - 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0x1.fp-129 - 0x0.ffffffp0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1.fp-129 - 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1.fp-129 - 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1.fp-129 - 0x1p-23 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1.fp-129 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1.fp-129 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0x1.fp-129 - 1.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1.fp-129 - 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-16385 + 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-16385 + 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-16385 + 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-16385 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-16385 + 1.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-16385 - 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-16385 - 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-16385 - 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-16385 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-16385 - 1.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0x1.fp-30 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1.fp-30 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0x1.fp-30 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1.fp-30 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0x1p-105 + 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-105 + 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1p-105 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0x1p-105 + 0x1p-105 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-105 - 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-105 - 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1p-105 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0x1p-105 - 0x1p-105 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-112 + 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-112 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1p-112 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-112 + 0x1p-112 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-112 - 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-112 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1p-112 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-112 - 0x1p-112 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1p-113 + 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1p-113 - 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0x1p-23 + 0.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0x1p-23 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1p-23 + 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: cacos (-0x1p-23 + 0x0.ffffffp0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (-0x1p-23 + 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0x1p-23 + 0x1p-23 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0x1p-23 - 0.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0x1p-23 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1p-23 - 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: cacos (-0x1p-23 - 0x0.ffffffp0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (-0x1p-23 - 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0x1p-23 - 0x1p-23 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0x1p-52 + 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-52 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1p-52 + 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0x1p-52 + 0x1p-52 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-52 - 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-52 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1p-52 - 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0x1p-52 - 0x1p-52 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-63 + 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-63 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1p-63 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1p-63 + 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0x1p-63 + 0x1p-63 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-63 - 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (-0x1p-63 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1p-63 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1p-63 - 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-0x1p-63 - 0x1p-63 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-0x1p500 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1p500 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1p5000 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0x1p5000 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-1.0 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-1.0 + 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-1.0 + 0x1.fp-30 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-1.0 + 0x1p50 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-1.0 + 0x1p500 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-1.0 + 0x1p5000 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-1.0 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-1.0 - 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-1.0 - 0x1.fp-30 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-1.0 - 0x1p50 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (-1.0 - 0x1p500 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-1.0 - 0x1p5000 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (-2 - 3 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0.0 + 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0.0 + 0x1.0000000000000000000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0.0 + 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0.0 + 0x1.0000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0.0 - 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0.0 - 0x1.0000000000000000000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0.0 - 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0.0 - 0x1.0000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0.25 + 1.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0.25 - 1.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0.5 + +0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (0.5 + 0x1.fp-1025 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (0.5 + 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0.5 + 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (0.5 + 0x1p-105 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0.5 + 0x1p-105 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0.5 + 0x1p-112 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0.5 + 0x1p-112 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0.5 + 0x1p-23 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0.5 + 0x1p-52 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0.5 + 0x1p-63 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0.5 + 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0.5 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (0.5 + 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0.5 - 0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (0.5 - 0x1.fp-1025 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (0.5 - 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0.5 - 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (0.5 - 0x1p-105 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0.5 - 0x1p-105 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0.5 - 0x1p-112 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0.5 - 0x1p-112 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0.5 - 0x1p-23 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0.5 - 0x1p-52 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0.5 - 0x1p-63 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0.5 - 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0.5 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (0.5 - 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 + 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 - 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffcp0 + 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffcp0 + 0x1.fp-1025
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffcp0 - 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffcp0 - 0x1.fp-1025
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffff8p0 + 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffff8p0 + 0x1.fp-16385
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffff8p0 - 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffff8p0 - 0x1.fp-16385
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0x0.ffffffp0 + 0.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0x0.ffffffp0 + 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0x0.ffffffp0 + 0x1p-23 i)":
-float: 2
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x0.ffffffp0 + 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Real part of: cacos (0x0.ffffffp0 - 0.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0x0.ffffffp0 - 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0x0.ffffffp0 - 0x1p-23 i)":
-float: 2
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x0.ffffffp0 - 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 + 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0x1.0000000000000000000000000001p0 + 0x1.fp-16385
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 + 0x1.fp-16385
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 + 0x1p-113
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 - 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0x1.0000000000000000000000000001p0 - 0x1.fp-16385
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 - 0x1.fp-16385
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 - 0x1p-113
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0x1.0000000000000002p0 + 0x1p-63 i)":
-ildouble: 2
-ldouble: 2
-Test "Real part of: cacos (0x1.0000000000000002p0 - 0x1p-63 i)":
-ildouble: 2
-ldouble: 2
-Test "Real part of: cacos (0x1.0000000000001p0 + 0x1p-52 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0x1.0000000000001p0 - 0x1p-52 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0x1.000002p0 + 0x1p-23 i)":
-float: 2
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.000002p0 + 0x1p-23 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0x1.000002p0 - 0x1p-23 i)":
-float: 2
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.000002p0 - 0x1p-23 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-10 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0x1.fp-10 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (0x1.fp-100 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-100 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0x1.fp-100 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-100 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-1000 + 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-1000 - 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-10000 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-10000 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-1025 + 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-1025 + 0x1.0000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-1025 + 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-1025 + 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-1025 - 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-1025 - 0x1.0000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-1025 - 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-1025 - 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-129 + 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-129 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-129 + 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-129 - 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-129 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-129 - 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-16385 + 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-16385 + 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-16385 + 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-16385 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-16385 + 1.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-16385 - 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-16385 - 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-16385 - 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-16385 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-16385 - 1.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-30 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-30 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp1023 + 0x1.fp1023 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0x1.fp127 + 0x1.fp127 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacos (0x1.fp16383 + 0x1.fp16383 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1p-105 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1p-105 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1p-112 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (0x1p-112 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1p-112 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (0x1p-112 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1p-113 + 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1p-113 - 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1p-23 + 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: cacos (0x1p-23 + 0x0.ffffffp0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (0x1p-23 + 0x1.000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1p-23 - 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: cacos (0x1p-23 - 0x0.ffffffp0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (0x1p-23 - 0x1.000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0x1p-52 + 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1p-52 + 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0x1p-52 + 0x0.fffffffffffff8p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0x1p-52 - 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1p-52 - 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0x1p-52 - 0x0.fffffffffffff8p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0x1p-63 + 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1p-63 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1p-63 + 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (0x1p-63 - 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1p-63 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1p-63 - 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1p500 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1p500 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1p5000 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (0x1p5000 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (1.0 + 0.25 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (1.0 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (1.0 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (1.0 + 0x1.fp-10 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: cacos (1.0 + 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (1.0 + 0x1.fp-100 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (1.0 + 0x1.fp-30 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (1.0 + 0x1p500 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (1.0 + 0x1p5000 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (1.0 - 0.25 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacos (1.0 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (1.0 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacos (1.0 - 0x1.fp-10 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: cacos (1.0 - 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacos (1.0 - 0x1.fp-100 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (1.0 - 0x1.fp-30 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (1.0 - 0x1p500 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (1.0 - 0x1p5000 i)":
-ildouble: 1
-ldouble: 1
-
-# cacosh
-Test "Real part of: cacosh (+0 + 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (+0 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (+0 + 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (+0 - 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (+0 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (+0 - 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0 + 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0 + 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0 - 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0 - 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0.0 + 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0.0 + 0x1.0000000000000000000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0.0 + 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0.0 + 0x1.0000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0.0 - 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0.0 - 0x1.0000000000000000000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0.0 - 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0.0 - 0x1.0000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0.25 + 1.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0.25 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: cacosh (-0.25 - 1.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0.25 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0.5 + +0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0.5 + 0x1.fp-1025 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0.5 + 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (-0.5 + 0x1.fp-129 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0.5 + 0x1.fp-16385 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0.5 + 0x1p-105 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0.5 + 0x1p-105 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0.5 + 0x1p-112 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0.5 + 0x1p-112 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0.5 + 0x1p-23 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0.5 + 0x1p-52 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0.5 + 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0.5 + 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0.5 + 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0.5 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0.5 - 0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0.5 - 0x1.fp-1025 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0.5 - 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (-0.5 - 0x1.fp-129 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0.5 - 0x1.fp-16385 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0.5 - 0x1p-105 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0.5 - 0x1p-105 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0.5 - 0x1p-112 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0.5 - 0x1p-112 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0.5 - 0x1p-23 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0.5 - 0x1p-52 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0.5 - 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0.5 - 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0.5 - 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0.5 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (-0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x0.ffffffp0 + 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Real part of: cacosh (-0x0.ffffffp0 - 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 + 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 + 0x1.fp-16385
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 + 0x1p-113
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 - 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 - 0x1.fp-16385
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 - 0x1p-113
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.000002p0 + 0x1p-23 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.000002p0 - 0x1p-23 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.fp-10 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (-0x1.fp-10 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (-0x1.fp-100 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0x1.fp-100 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1.fp-100 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0x1.fp-100 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1.fp-1000 + 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.fp-1000 - 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.fp-10000 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.fp-10000 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.fp-1025 + 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.fp-1025 + 0x1.0000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.fp-1025 + 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.fp-1025 + 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.fp-1025 - 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.fp-1025 - 0x1.0000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.fp-1025 - 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.fp-1025 - 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.fp-129 + 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0x1.fp-129 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x0.ffffffp0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1p-23 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1.fp-129 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0x1.fp-129 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1.fp-129 + 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0x1.fp-129 + 1.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1.fp-129 - 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0x1.fp-129 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x0.ffffffp0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1p-23 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1.fp-129 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0x1.fp-129 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1.fp-129 - 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0x1.fp-129 - 1.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1.fp-16385 + 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.fp-16385 + 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.fp-16385 + 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.fp-16385 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.fp-16385 + 1.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.fp-16385 - 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.fp-16385 - 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.fp-16385 - 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.fp-16385 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.fp-16385 - 1.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1.fp-30 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0x1.fp-30 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1.fp-30 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0x1.fp-30 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-105 + 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1p-105 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-105 + 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0x1p-105 + 0x1p-105 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-105 - 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1p-105 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-105 - 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0x1p-105 - 0x1p-105 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-112 + 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1p-112 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-112 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-112 + 0x1p-112 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-112 - 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1p-112 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-112 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-112 - 0x1p-112 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1p-113 + 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0x1p-113 + 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1p-113 - 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0x1p-113 - 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0x1p-23 + 0.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1p-23 + 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: cacosh (-0x1p-23 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1p-23 + 0x0.ffffffp0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (-0x1p-23 + 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0x1p-23 + 0x1p-23 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0x1p-23 - 0.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1p-23 - 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: cacosh (-0x1p-23 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1p-23 - 0x0.ffffffp0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (-0x1p-23 - 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0x1p-23 - 0x1p-23 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0x1p-52 + 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1p-52 + 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0x1p-52 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-52 + 0x1p-52 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-52 - 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1p-52 - 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0x1p-52 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-52 - 0x1p-52 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-63 + 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1p-63 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-63 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1p-63 + 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0x1p-63 + 0x1p-63 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-63 - 0.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1p-63 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (-0x1p-63 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1p-63 - 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-0x1p-63 - 0x1p-63 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-0x1p500 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1p500 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1p5000 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-0x1p5000 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-1.0 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-1.0 + 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-1.0 + 0x1.fp-30 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-1.0 + 0x1p50 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-1.0 + 0x1p500 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-1.0 + 0x1p5000 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-1.0 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-1.0 - 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-1.0 - 0x1.fp-30 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-1.0 - 0x1p50 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (-1.0 - 0x1p500 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-1.0 - 0x1p5000 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (-2 - 3 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0.0 + 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0.0 + 0x1.0000000000000000000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0.0 + 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0.0 + 0x1.0000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0.0 - 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0.0 - 0x1.0000000000000000000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0.0 - 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0.0 - 0x1.0000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0.25 + 1.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0.25 - 1.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0.5 + +0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (0.5 + 0x1.fp-1025 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0.5 + 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (0.5 + 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0.5 + 0x1p-105 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0.5 + 0x1p-105 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0.5 + 0x1p-112 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0.5 + 0x1p-112 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0.5 + 0x1p-23 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0.5 + 0x1p-52 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0.5 + 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0.5 + 0x1p-63 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0.5 + 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0.5 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (0.5 - 0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (0.5 - 0x1.fp-1025 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0.5 - 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (0.5 - 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0.5 - 0x1p-105 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0.5 - 0x1p-105 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0.5 - 0x1p-112 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0.5 - 0x1p-112 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0.5 - 0x1p-23 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0.5 - 0x1p-52 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0.5 - 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0.5 - 0x1p-63 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0.5 - 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0.5 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (0x0.fffffffffffff8p0 + 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0x0.fffffffffffff8p0 - 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 + 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 + 0x1.fp-1025
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 - 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 - 0x1.fp-1025
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffff8p0 + 0.0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffff8p0 + 0x1.fp-16385
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffff8p0 - 0.0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffff8p0 - 0x1.fp-16385
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x0.ffffffp0 + 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0x1p-23 i)":
-float: 2
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x0.ffffffp0 - 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0x1p-23 i)":
-float: 2
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 + 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 + 0x1.fp-16385
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0x1.0000000000000000000000000001p0 + 0x1.fp-16385
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 - 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 - 0x1.fp-16385
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0x1.0000000000000000000000000001p0 - 0x1.fp-16385
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0x1.0000000000000002p0 + 0x1p-63 i)":
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: cacosh (0x1.0000000000000002p0 - 0x1p-63 i)":
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: cacosh (0x1.0000000000001p0 + 0x1p-52 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0x1.0000000000001p0 - 0x1p-52 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.000002p0 + 0x1p-23 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0x1.000002p0 + 0x1p-23 i)":
-float: 2
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.000002p0 - 0x1p-23 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0x1.000002p0 - 0x1p-23 i)":
-float: 2
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-10 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0x1.fp-10 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0x1.fp-100 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0x1.fp-100 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-100 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0x1.fp-100 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-1000 + 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-1000 - 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-10000 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-10000 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-1025 + 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-1025 + 0x1.0000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-1025 + 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-1025 + 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-1025 - 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-1025 - 0x1.0000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-1025 - 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-1025 - 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-129 + 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-129 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-129 + 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-129 - 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-129 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-129 - 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-16385 + 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-16385 + 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-16385 + 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-16385 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-16385 + 1.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-16385 - 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-16385 - 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-16385 - 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-16385 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-16385 - 1.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-30 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp-30 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1.fp1023 + 0x1.fp1023 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0x1.fp127 + 0x1.fp127 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (0x1.fp16383 + 0x1.fp16383 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1p-105 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1p-105 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1p-112 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (0x1p-112 + 0x0.ffffffffffffffffffffffffffff8p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1p-112 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (0x1p-112 - 0x0.ffffffffffffffffffffffffffff8p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1p-23 + 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Real part of: cacosh (0x1p-23 + 0x0.ffffffp0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (0x1p-23 + 0x1.000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1p-23 - 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Real part of: cacosh (0x1p-23 - 0x0.ffffffp0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cacosh (0x1p-23 - 0x1.000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1p-52 + 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0x1p-52 + 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0x1p-52 + 0x0.fffffffffffff8p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1p-52 - 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0x1p-52 - 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (0x1p-52 - 0x0.fffffffffffff8p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1p-63 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (0x1p-63 + 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1p-63 + 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1p-63 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (0x1p-63 - 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1p-63 - 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1p500 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1p500 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1p5000 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0x1p5000 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (1.0 + 0.25 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (1.0 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (1.0 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (1.0 + 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (1.0 + 0x1.fp-10 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: cacosh (1.0 + 0x1.fp-100 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (1.0 + 0x1.fp-30 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (1.0 + 0x1p500 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (1.0 + 0x1p5000 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (1.0 - 0.25 i)":
-double: 1
-idouble: 1
-Test "Real part of: cacosh (1.0 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacosh (1.0 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: cacosh (1.0 - 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacosh (1.0 - 0x1.fp-10 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: cacosh (1.0 - 0x1.fp-100 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (1.0 - 0x1.fp-30 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (1.0 - 0x1p500 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (1.0 - 0x1p5000 i)":
-ildouble: 1
-ldouble: 1
-
-# casin
-Test "Imaginary part of: casin (+0 + 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (+0 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (+0 + 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (+0 - 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (+0 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (+0 - 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0 + 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0 + 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0 - 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0 - 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0.0 + 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0.0 + 0x1.0000000000000000000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0.0 + 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0.0 + 0x1.0000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0.0 - 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0.0 - 0x1.0000000000000000000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0.0 - 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0.0 - 0x1.0000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0.25 + 1.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0.25 - 1.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0.5 + 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (-0.5 + 0x1p-105 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-0.5 + 0x1p-112 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0.5 + 0x1p-112 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-0.5 + 0x1p-23 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0.5 + 0x1p-23 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0.5 + 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-0.5 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0.5 + 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0.5 - 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (-0.5 - 0x1p-105 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-0.5 - 0x1p-112 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0.5 - 0x1p-112 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-0.5 - 0x1p-23 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0.5 - 0x1p-23 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0.5 - 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-0.5 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0.5 - 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-0x0.fffffffffffff8p0 + 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-0x0.fffffffffffff8p0 + 0x1.fp-1025 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Real part of: casin (-0x0.fffffffffffff8p0 - 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-0x0.fffffffffffff8p0 - 0x1.fp-1025 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Real part of: casin (-0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-112
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-0x0.ffffffffffffffffffffffffffff8p0 - 0x1p-112
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-0x0.ffffffffffffffffp0 + 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-0x0.ffffffffffffffffp0 - 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-0x0.ffffffp0 + 0x1p-23 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x0.ffffffp0 + 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Real part of: casin (-0x0.ffffffp0 - 0x1p-23 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x0.ffffffp0 - 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 + 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 + 0x1.fp-16385
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 + 0x1p-113
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 - 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 - 0x1.fp-16385
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 - 0x1p-113
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.000002p0 + 0x1p-23 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.000002p0 - 0x1p-23 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-0x1.fp-10 + 1.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-10 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Real part of: casin (-0x1.fp-10 - 1.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-10 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (-0x1.fp-100 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-100 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-1000 + 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-1000 - 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-10000 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-10000 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-1025 + 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-0x1.fp-1025 + 0x0.fffffffffffff8p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-1025 + 0x1.0000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-1025 + 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-1025 + 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-1025 - 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-0x1.fp-1025 - 0x0.fffffffffffff8p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-1025 - 0x1.0000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-1025 - 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-1025 - 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-129 + 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-129 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-129 + 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-129 - 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-129 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-129 - 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-16385 + 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-16385 + 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-16385 + 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-16385 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-16385 + 1.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-16385 - 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-16385 - 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-16385 - 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-16385 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-16385 - 1.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-0x1.fp-30 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-30 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-0x1.fp-30 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-30 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1p-105 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1p-105 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1p-112 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0x1p-112 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casin (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1p-113 + 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1p-113 - 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-0x1p-23 + 0.5 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: casin (-0x1p-23 + 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: casin (-0x1p-23 + 0x0.ffffffp0 i)":
-double: 1
-idouble: 1
-Test "Real part of: casin (-0x1p-23 + 0x1.000002p0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-0x1p-23 - 0.5 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: casin (-0x1p-23 - 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: casin (-0x1p-23 - 0x0.ffffffp0 i)":
-double: 1
-idouble: 1
-Test "Real part of: casin (-0x1p-23 - 0x1.000002p0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-0x1p-52 + 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1p-52 + 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-0x1p-52 + 0x1.0000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-0x1p-52 - 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1p-52 - 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-0x1p-52 - 0x1.0000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1p-63 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-0x1p-63 + 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1p-63 + 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1p-63 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-0x1p-63 - 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1p-63 - 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1p500 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1p500 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1p5000 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-0x1p5000 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-1.0 + 0.25 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-1.0 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (-1.0 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (-1.0 + 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-1.0 + 0x1.fp-129 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-1.0 + 0x1.fp-30 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-1.0 + 0x1p500 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-1.0 + 0x1p5000 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-1.0 - 0.25 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-1.0 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (-1.0 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (-1.0 - 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (-1.0 - 0x1.fp-129 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-1.0 - 0x1.fp-30 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-1.0 - 0x1p500 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (-1.0 - 0x1p5000 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0.0 + 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0.0 + 0x1.0000000000000000000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0.0 + 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0.0 + 0x1.0000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0.0 - 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0.0 - 0x1.0000000000000000000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0.0 - 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0.0 - 0x1.0000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0.25 + 1.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0.25 - 1.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0.5 + 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (0.5 + 0x1p-105 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0.5 + 0x1p-112 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0.5 + 0x1p-112 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0.5 + 0x1p-23 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0.5 + 0x1p-23 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0.5 + 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0.5 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0.5 + 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0.5 - 0x1.fp-129 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (0.5 - 0x1p-105 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0.5 - 0x1p-112 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0.5 - 0x1p-112 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0.5 - 0x1p-23 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0.5 - 0x1p-23 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0.5 - 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0.5 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0.5 - 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0.75 + 1.25 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: casin (0x0.fffffffffffff8p0 + 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0x0.fffffffffffff8p0 + 0x1.fp-1025 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x0.fffffffffffff8p0 + 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Real part of: casin (0x0.fffffffffffff8p0 - 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0x0.fffffffffffff8p0 - 0x1.fp-1025 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x0.fffffffffffff8p0 - 0x1p-52 i)":
-double: 1
-idouble: 1
-Test "Real part of: casin (0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-112 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0x0.ffffffffffffffffffffffffffff8p0 - 0x1p-112 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0x0.ffffffffffffffffp0 + 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0x0.ffffffffffffffffp0 - 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0x0.ffffffp0 + 0x1p-23 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x0.ffffffp0 + 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Real part of: casin (0x0.ffffffp0 - 0x1p-23 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x0.ffffffp0 - 0x1p-23 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 + 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 + 0x1.fp-16385
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 + 0x1p-113
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 - 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 - 0x1.fp-16385
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 - 0x1p-113
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.000002p0 + 0x1p-23 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.000002p0 - 0x1p-23 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0x1.fp-10 + 1.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-10 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Real part of: casin (0x1.fp-10 - 1.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-10 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (0x1.fp-100 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-100 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-1000 + 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-1000 - 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-10000 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-10000 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-1025 + 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0x1.fp-1025 + 0x0.fffffffffffff8p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-1025 + 0x1.0000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-1025 + 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-1025 + 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-1025 - 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0x1.fp-1025 - 0x0.fffffffffffff8p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-1025 - 0x1.0000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-1025 - 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-1025 - 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-129 + 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-129 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-129 + 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-129 - 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-129 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-129 - 1.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-16385 + 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-16385 + 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-16385 + 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-16385 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-16385 + 1.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-16385 - 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-16385 - 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-16385 - 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-16385 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-16385 - 1.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0x1.fp-30 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-30 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0x1.fp-30 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-30 - 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1.fp1023 + 0x1.fp1023 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (0x1.fp127 + 0x1.fp127 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casin (0x1.fp16383 + 0x1.fp16383 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1p-105 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1p-105 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1p-112 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (0x1p-112 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casin (0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1p-113 + 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1p-113 - 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0x1p-23 + 0.5 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: casin (0x1p-23 + 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: casin (0x1p-23 + 0x0.ffffffp0 i)":
-double: 1
-idouble: 1
-Test "Real part of: casin (0x1p-23 + 0x1.000002p0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0x1p-23 - 0.5 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: casin (0x1p-23 - 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: casin (0x1p-23 - 0x0.ffffffp0 i)":
-double: 1
-idouble: 1
-Test "Real part of: casin (0x1p-23 - 0x1.000002p0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0x1p-52 + 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1p-52 + 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0x1p-52 + 0x1.0000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0x1p-52 - 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1p-52 - 0.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0x1p-52 - 0x1.0000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1p-63 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0x1p-63 + 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1p-63 + 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1p-63 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0x1p-63 - 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1p-63 - 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1p500 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1p500 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1p5000 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (0x1p5000 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (1.0 + 0.25 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (1.0 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (1.0 + 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (1.0 + 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (1.0 + 0x1.fp-129 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (1.0 + 0x1.fp-30 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (1.0 + 0x1p500 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (1.0 + 0x1p5000 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (1.0 - 0.25 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (1.0 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (1.0 - 0.5 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casin (1.0 - 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (1.0 - 0x1.fp-129 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (1.0 - 0x1.fp-30 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (1.0 - 0x1p500 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casin (1.0 - 0x1p5000 i)":
-ildouble: 1
-ldouble: 1
-
-# casinh
-Test "Imaginary part of: casinh (-0.0 + 0x0.fffffffffffff8p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-0.0 + 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0.0 + 0x1.0000000000000000000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-0.0 - 0x0.fffffffffffff8p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-0.0 - 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0.0 - 0x1.0000000000000000000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-0.25 + 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-0.25 - 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0.5 + +0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0.5 + 0x1.fp-1025 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0.5 + 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0.5 + 0x1.fp-16385 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0.5 + 0x1p-105 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (-0.5 + 0x1p-112 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (-0.5 + 0x1p-23 i)":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: casinh (-0.5 + 0x1p-23 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Real part of: casinh (-0.5 + 0x1p-52 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-0.5 + 0x1p-52 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0.5 + 0x1p-63 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (-0.5 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casinh (-0.5 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (-0.5 - 0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0.5 - 0x1.fp-1025 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0.5 - 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0.5 - 0x1.fp-16385 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0.5 - 0x1p-105 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (-0.5 - 0x1p-112 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (-0.5 - 0x1p-23 i)":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: casinh (-0.5 - 0x1p-23 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Real part of: casinh (-0.5 - 0x1p-52 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-0.5 - 0x1p-52 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0.5 - 0x1p-63 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (-0.5 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casinh (-0.5 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casinh (-0x0.fffffffffffff8p0 + 0x1.fp-1025 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-0x0.fffffffffffff8p0 - 0x1.fp-1025 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 + 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 + 0x1.fp-1025
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 - 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 - 0x1.fp-1025
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x0.ffffffffffffffffp0 + 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x0.ffffffffffffffffp0 - 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x0.ffffffp0 + 0x1p-23 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (-0x0.ffffffp0 - 0x1p-23 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 + 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 + 0x1.fp-16385
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 + 0x1p-113
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-0x1.0000000000000000000000000001p0 + 0x1p-113
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 - 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 - 0x1.fp-16385
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 - 0x1p-113
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-0x1.0000000000000000000000000001p0 - 0x1p-113
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1.0000000000000002p0 + 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1.0000000000000002p0 + 0x1.fp-16385 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1.0000000000000002p0 + 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-0x1.0000000000000002p0 + 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1.0000000000000002p0 - 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1.0000000000000002p0 - 0x1.fp-16385 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1.0000000000000002p0 - 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-0x1.0000000000000002p0 - 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1.0000000000001p0 + 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1.0000000000001p0 + 0x1.fp-1025 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-0x1.0000000000001p0 + 0x1p-52 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1.0000000000001p0 - 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1.0000000000001p0 - 0x1.fp-1025 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-0x1.0000000000001p0 - 0x1p-52 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-0x1.000002p0 + 0x1p-23 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-0x1.000002p0 - 0x1p-23 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1.fp-10 + 1.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1.fp-10 - 1.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-0x1.fp-1025 + 0x0.fffffffffffff8p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-0x1.fp-1025 - 0x0.fffffffffffff8p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1.fp-129 + 0.5 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casinh (-0x1.fp-129 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1.fp-129 - 0.5 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casinh (-0x1.fp-129 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1.fp-16385 + 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1.fp-16385 - 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1.fp-30 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1.fp-30 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1p-105 + 0.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1p-105 - 0.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1p-112 + 0.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-0x1p-112 + 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-0x1p-112 + 0x0.ffffffffffffffffffffffffffff8p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1p-112 - 0.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-0x1p-112 - 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-0x1p-112 - 0x0.ffffffffffffffffffffffffffff8p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1p-113 + 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1p-113 - 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1p-23 + 0.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-0x1p-23 + 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1p-23 + 0x0.ffffffp0 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: casinh (-0x1p-23 + 0x0.ffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1p-23 + 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1p-23 - 0.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-0x1p-23 - 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1p-23 - 0x0.ffffffp0 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: casinh (-0x1p-23 - 0x0.ffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1p-23 - 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1p-52 + 0x0.fffffffffffff8p0 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (-0x1p-52 - 0x0.fffffffffffff8p0 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (-0x1p-63 + 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1p-63 - 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1p500 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1p500 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1p5000 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0x1p5000 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.0 + +0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.0 + 0.25 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.0 + 0.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-1.0 + 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.0 + 0x1.fp-10 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casinh (-1.0 + 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.0 + 0x1.fp-100 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.0 + 0x1.fp-1000 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.0 + 0x1.fp-10000 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.0 + 0x1.fp-1025 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.0 + 0x1.fp-129 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.0 + 0x1.fp-16385 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.0 + 0x1.fp-30 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-1.0 + 0x1.fp-30 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.0 + 0x1p500 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.0 + 0x1p5000 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.0 - 0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.0 - 0.25 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.0 - 0.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-1.0 - 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.0 - 0x1.fp-10 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casinh (-1.0 - 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.0 - 0x1.fp-100 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.0 - 0x1.fp-1000 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.0 - 0x1.fp-10000 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.0 - 0x1.fp-1025 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.0 - 0x1.fp-129 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.0 - 0x1.fp-16385 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.0 - 0x1.fp-30 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (-1.0 - 0x1.fp-30 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.0 - 0x1p500 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.0 - 0x1p5000 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.5 + +0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.5 + 0x1.fp-1025 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.5 + 0x1.fp-129 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.5 + 0x1.fp-16385 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.5 - 0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.5 - 0x1.fp-1025 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.5 - 0x1.fp-129 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-1.5 - 0x1.fp-16385 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0.0 + 0x0.fffffffffffff8p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0.0 + 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0.0 + 0x1.0000000000000000000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0.0 - 0x0.fffffffffffff8p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0.0 - 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0.0 - 0x1.0000000000000000000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0.25 + 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0.25 - 1.0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0.5 + +0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0.5 + 0x1.fp-1025 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0.5 + 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0.5 + 0x1.fp-16385 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0.5 + 0x1p-105 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (0.5 + 0x1p-112 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (0.5 + 0x1p-23 i)":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: casinh (0.5 + 0x1p-23 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Real part of: casinh (0.5 + 0x1p-52 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0.5 + 0x1p-52 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0.5 + 0x1p-63 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (0.5 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casinh (0.5 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (0.5 - 0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0.5 - 0x1.fp-1025 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0.5 - 0x1.fp-129 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0.5 - 0x1.fp-16385 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0.5 - 0x1p-105 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (0.5 - 0x1p-112 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (0.5 - 0x1p-23 i)":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: casinh (0.5 - 0x1p-23 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Real part of: casinh (0.5 - 0x1p-52 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0.5 - 0x1p-52 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0.5 - 0x1p-63 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (0.5 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casinh (0.5 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: casinh (0.75 + 1.25 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0.75 + 1.25 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0x0.fffffffffffff8p0 + 0x1.fp-1025 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0x0.fffffffffffff8p0 - 0x1.fp-1025 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 + 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 + 0x1.fp-1025
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 - 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 - 0x1.fp-1025
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x0.ffffffffffffffffp0 + 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x0.ffffffffffffffffp0 - 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x0.ffffffp0 + 0x1p-23 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (0x0.ffffffp0 - 0x1p-23 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (0x1.0000000000000000000000000001p0 + 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1.0000000000000000000000000001p0 + 0x1.fp-16385
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0x1.0000000000000000000000000001p0 + 0x1p-113
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1.0000000000000000000000000001p0 - 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1.0000000000000000000000000001p0 - 0x1.fp-16385
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0x1.0000000000000000000000000001p0 - 0x1p-113
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1.0000000000000002p0 + 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1.0000000000000002p0 + 0x1.fp-16385 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1.0000000000000002p0 + 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0x1.0000000000000002p0 + 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1.0000000000000002p0 - 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1.0000000000000002p0 - 0x1.fp-16385 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1.0000000000000002p0 - 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0x1.0000000000000002p0 - 0x1p-63 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1.0000000000001p0 + 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1.0000000000001p0 + 0x1.fp-1025 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0x1.0000000000001p0 + 0x1p-52 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1.0000000000001p0 - 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1.0000000000001p0 - 0x1.fp-1025 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0x1.0000000000001p0 - 0x1p-52 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0x1.000002p0 + 0x1p-23 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0x1.000002p0 - 0x1p-23 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1.fp-10 + 1.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1.fp-10 - 1.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0x1.fp-1025 + 0x0.fffffffffffff8p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0x1.fp-1025 - 0x0.fffffffffffff8p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1.fp-129 + 0.5 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casinh (0x1.fp-129 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1.fp-129 - 0.5 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casinh (0x1.fp-129 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1.fp-16385 + 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1.fp-16385 - 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1.fp-30 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1.fp-30 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1.fp1023 + 0x1.fp1023 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (0x1.fp127 + 0x1.fp127 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (0x1.fp16383 + 0x1.fp16383 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1p-105 + 0.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1p-105 - 0.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1p-112 + 0.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0x1p-112 + 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0x1p-112 + 0x0.ffffffffffffffffffffffffffff8p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1p-112 - 0.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0x1p-112 - 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0x1p-112 - 0x0.ffffffffffffffffffffffffffff8p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1p-23 + 0.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0x1p-23 + 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1p-23 + 0x0.ffffffp0 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: casinh (0x1p-23 + 0x0.ffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1p-23 + 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1p-23 - 0.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0x1p-23 - 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1p-23 - 0x0.ffffffp0 i)":
-float: 2
-ifloat: 2
-Test "Imaginary part of: casinh (0x1p-23 - 0x0.ffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1p-23 - 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1p-52 + 0x0.fffffffffffff8p0 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (0x1p-52 - 0x0.fffffffffffff8p0 i)":
-double: 1
-idouble: 1
-Test "Real part of: casinh (0x1p-63 + 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1p-63 - 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1p500 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1p500 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1p5000 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0x1p5000 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.0 + +0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.0 + 0.25 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.0 + 0.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (1.0 + 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.0 + 0x1.fp-10 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casinh (1.0 + 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.0 + 0x1.fp-100 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.0 + 0x1.fp-1000 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.0 + 0x1.fp-10000 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.0 + 0x1.fp-1025 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.0 + 0x1.fp-129 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.0 + 0x1.fp-16385 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.0 + 0x1.fp-30 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (1.0 + 0x1.fp-30 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.0 + 0x1p500 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.0 + 0x1p5000 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.0 - 0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.0 - 0.25 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.0 - 0.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (1.0 - 0.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.0 - 0x1.fp-10 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: casinh (1.0 - 0x1.fp-10 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.0 - 0x1.fp-100 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.0 - 0x1.fp-1000 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.0 - 0x1.fp-10000 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.0 - 0x1.fp-1025 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.0 - 0x1.fp-129 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.0 - 0x1.fp-16385 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.0 - 0x1.fp-30 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (1.0 - 0x1.fp-30 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.0 - 0x1p500 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.0 - 0x1p5000 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.5 + +0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.5 + 0x1.fp-1025 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.5 + 0x1.fp-129 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.5 + 0x1.fp-16385 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.5 - 0 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.5 - 0x1.fp-1025 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.5 - 0x1.fp-129 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (1.5 - 0x1.fp-16385 i)":
-ildouble: 1
-ldouble: 1
-
-# catan
-Test "Imaginary part of: catan (-0x0.fffffffffffff8p0 + 0x1p-27 i)":
-double: 1
-idouble: 1
-Test "Real part of: catan (-0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-16382
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catan (-0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-57
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: catan (-0x0.ffffffffffffffffffffffffffff8p0 - 0x1p-16382
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: catan (-0x0.ffffffp0 + 0x1p-126 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catan (-0x0.ffffffp0 + 0x1p-13 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: catan (-0x0.ffffffp0 - 0x1p-126 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catan (-0x1.0000000000000000000000000001p0 + 0x1p-16382
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catan (-0x1.0000000000000000000000000001p0 - 0x1p-16382
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catan (-0x1.0000000000000000000000000001p0 - 0x1p-57
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catan (-0x1.0000000000001p0 - 0x1p-27 i)":
-double: 1
-idouble: 1
-Test "Real part of: catan (-0x1.000002p0 + 0x1p-126 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: catan (-0x1.000002p0 + 0x1p-13 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catan (-0x1.000002p0 - 0x1p-126 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: catan (-0x1.000002p0 - 0x1p-13 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catan (-0x1.000002p0 - 0x1p-13 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catan (-0x1.fp1023 + 0x1.fp1023 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catan (-0x1.fp1023 - 0x1.fp1023 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catan (-0x1.fp127 + 0x1.fp127 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catan (-0x1.fp127 - 0x1.fp127 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catan (-0x1.fp16383 + 0x1.fp16383 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catan (-0x1.fp16383 - 0x1.fp16383 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catan (-0x1p-1020 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catan (-0x1p-1020 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Real part of: catan (-0x1p-13 + 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catan (-0x1p-13 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catan (-0x1p-13 - 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catan (-0x1p-13 - 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catan (-0x1p-13 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catan (-0x1p-16380 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catan (-0x1p-16380 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: catan (-0x1p-33 + 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: catan (-0x1p-33 + 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: catan (-0x1p-33 - 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: catan (-0x1p-33 - 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catan (-0x1p-54 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catan (-0x1p-54 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catan (-0x1p-57 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catan (-0x1p-57 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catan (-1.0 + 0x1p-13 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: catan (-1.0 - 0x1p-13 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catan (-2 - 3 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: catan (0.75 + 1.25 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catan (0x0.fffffffffffff8p0 + 0x1p-27 i)":
-double: 1
-idouble: 1
-Test "Real part of: catan (0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-16382
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catan (0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-57
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: catan (0x0.ffffffffffffffffffffffffffff8p0 - 0x1p-16382
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: catan (0x0.ffffffp0 + 0x1p-126 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catan (0x0.ffffffp0 + 0x1p-13 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: catan (0x0.ffffffp0 - 0x1p-126 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catan (0x1.0000000000000000000000000001p0 + 0x1p-16382
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catan (0x1.0000000000000000000000000001p0 - 0x1p-16382
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catan (0x1.0000000000000000000000000001p0 - 0x1p-57
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catan (0x1.0000000000001p0 - 0x1p-27 i)":
-double: 1
-idouble: 1
-Test "Real part of: catan (0x1.000002p0 + 0x1p-126 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: catan (0x1.000002p0 + 0x1p-13 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catan (0x1.000002p0 - 0x1p-126 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: catan (0x1.000002p0 - 0x1p-13 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catan (0x1.000002p0 - 0x1p-13 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catan (0x1.fp1023 + 0x1.fp1023 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catan (0x1.fp1023 - 0x1.fp1023 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catan (0x1.fp127 + 0x1.fp127 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catan (0x1.fp127 - 0x1.fp127 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catan (0x1.fp16383 + 0x1.fp16383 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catan (0x1.fp16383 - 0x1.fp16383 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catan (0x1p-1020 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catan (0x1p-1020 - 1.0 i)":
-double: 1
-idouble: 1
-Test "Real part of: catan (0x1p-13 + 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catan (0x1p-13 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catan (0x1p-13 - 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catan (0x1p-13 - 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catan (0x1p-13 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catan (0x1p-16380 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catan (0x1p-16380 - 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: catan (0x1p-33 + 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: catan (0x1p-33 + 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: catan (0x1p-33 - 0x0.ffffffffffffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: catan (0x1p-33 - 0x1.0000000000000002p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catan (0x1p-54 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catan (0x1p-54 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catan (0x1p-57 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catan (0x1p-57 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catan (1.0 + 0x1p-13 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: catan (1.0 - 0x1p-13 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# catanh
-Test "Imaginary part of: catanh (-0x0.ffffffffffffffffp0 + 0x1p-33 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catanh (-0x0.ffffffffffffffffp0 - 0x1p-33 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catanh (-0x1.0000000000000002p0 + 0x1p-33 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catanh (-0x1.0000000000000002p0 - 0x1p-33 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: catanh (-0x1.000002p0 + 0x1p-13 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catanh (-0x1.000002p0 + 0x1p-13 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (-0x1.000002p0 - 0x1p-13 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catanh (-0x1.000002p0 - 0x1p-13 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (-0x1.fp1023 + 0x1.fp1023 i)":
-double: 1
-idouble: 1
-Test "Real part of: catanh (-0x1.fp1023 - 0x1.fp1023 i)":
-double: 1
-idouble: 1
-Test "Real part of: catanh (-0x1.fp127 + 0x1.fp127 i)":
-double: 1
-idouble: 1
-Test "Real part of: catanh (-0x1.fp127 - 0x1.fp127 i)":
-double: 1
-idouble: 1
-Test "Real part of: catanh (-0x1.fp16383 + 0x1.fp16383 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: catanh (-0x1.fp16383 - 0x1.fp16383 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catanh (-0x1p-126 + 0x0.ffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catanh (-0x1p-126 + 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catanh (-0x1p-126 - 0x0.ffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catanh (-0x1p-126 - 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: catanh (-0x1p-13 + 0x1.000002p0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catanh (-0x1p-13 + 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catanh (-0x1p-13 + 1.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: catanh (-0x1p-13 - 0x1.000002p0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catanh (-0x1p-13 - 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catanh (-0x1p-13 - 1.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catanh (-0x1p-16382 + 0x0.ffffffffffffffffffffffffffff8p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: catanh (-0x1p-16382 + 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catanh (-0x1p-16382 - 0x0.ffffffffffffffffffffffffffff8p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: catanh (-0x1p-16382 - 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: catanh (-0x1p-27 + 0x1.0000000000001p0 i)":
-double: 1
-idouble: 1
-Test "Real part of: catanh (-0x1p-27 - 0x1.0000000000001p0 i)":
-double: 1
-idouble: 1
-Test "Real part of: catanh (-0x1p-57 + 0x1.0000000000000000000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: catanh (-0x1p-57 - 0x1.0000000000000000000000000001p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: catanh (-1.0 + 0x1p-1020 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catanh (-1.0 + 0x1p-13 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (-1.0 + 0x1p-16380 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: catanh (-1.0 + 0x1p-54 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (-1.0 + 0x1p-57 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (-1.0 - 0x1p-1020 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catanh (-1.0 - 0x1p-13 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (-1.0 - 0x1p-16380 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: catanh (-1.0 - 0x1p-54 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (-1.0 - 0x1p-57 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (-2 - 3 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: catanh (0.75 + 1.25 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catanh (0.75 + 1.25 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catanh (0x0.ffffffffffffffffp0 + 0x1p-33 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catanh (0x0.ffffffffffffffffp0 - 0x1p-33 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catanh (0x1.0000000000000002p0 + 0x1p-33 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catanh (0x1.0000000000000002p0 - 0x1p-33 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catanh (0x1.000002p0 + 0x1p-13 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catanh (0x1.000002p0 - 0x1p-13 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (0x1.fp1023 + 0x1.fp1023 i)":
-double: 1
-idouble: 1
-Test "Real part of: catanh (0x1.fp1023 - 0x1.fp1023 i)":
-double: 1
-idouble: 1
-Test "Real part of: catanh (0x1.fp127 + 0x1.fp127 i)":
-double: 1
-idouble: 1
-Test "Real part of: catanh (0x1.fp127 - 0x1.fp127 i)":
-double: 1
-idouble: 1
-Test "Real part of: catanh (0x1.fp16383 + 0x1.fp16383 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: catanh (0x1.fp16383 - 0x1.fp16383 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catanh (0x1p-126 + 0x0.ffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catanh (0x1p-126 + 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catanh (0x1p-126 - 0x0.ffffffp0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catanh (0x1p-126 - 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: catanh (0x1p-13 + 0x0.ffffffp0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catanh (0x1p-13 + 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catanh (0x1p-13 + 1.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: catanh (0x1p-13 - 0x0.ffffffp0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catanh (0x1p-13 - 0x1.000002p0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catanh (0x1p-13 - 1.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catanh (0x1p-16382 + 0x0.ffffffffffffffffffffffffffff8p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: catanh (0x1p-16382 + 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catanh (0x1p-16382 - 0x0.ffffffffffffffffffffffffffff8p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: catanh (0x1p-16382 - 0x1.0000000000000000000000000001p0
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: catanh (0x1p-27 + 0x0.fffffffffffff8p0 i)":
-double: 1
-idouble: 1
-Test "Real part of: catanh (0x1p-27 - 0x0.fffffffffffff8p0 i)":
-double: 1
-idouble: 1
-Test "Real part of: catanh (0x1p-57 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: catanh (0x1p-57 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: catanh (1.0 + 0x1p-1020 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catanh (1.0 + 0x1p-13 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (1.0 + 0x1p-16380 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: catanh (1.0 + 0x1p-54 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (1.0 + 0x1p-57 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (1.0 - 0x1p-1020 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: catanh (1.0 - 0x1p-13 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (1.0 - 0x1p-16380 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: catanh (1.0 - 0x1p-54 i)":
-float: 1
-ifloat: 1
-Test "Real part of: catanh (1.0 - 0x1p-57 i)":
-float: 1
-ifloat: 1
-
-# cbrt
-Test "cbrt (-0.001)":
-ildouble: 1
-ldouble: 1
-Test "cbrt (-27.0)":
-double: 1
-idouble: 1
-Test "cbrt (0.75)":
-double: 1
-idouble: 1
-Test "cbrt (0.9921875)":
-double: 1
-idouble: 1
-
-# ccos
-Test "Imaginary part of: ccos (-0.75 + 11357.25 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccos (-0.75 + 710.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: ccos (-0.75 + 89.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccos (-0.75 + 89.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccos (-0.75 - 11357.25 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccos (-0.75 - 710.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: ccos (-0.75 - 89.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccos (-0.75 - 89.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: ccos (-2 - 3 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccos (-2 - 3 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: ccos (0.75 + 1.25 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: ccos (0.75 + 1.25 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: ccos (0.75 + 11357.25 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccos (0.75 + 710.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: ccos (0.75 + 89.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccos (0.75 + 89.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccos (0.75 - 11357.25 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccos (0.75 - 710.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: ccos (0.75 - 89.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccos (0.75 - 89.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccos (0x1p-1074 + 1440 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: ccos (0x1p-16434 + 22730 i)":
-ildouble: 1
-ldouble: 1
-
-# ccosh
-Test "Imaginary part of: ccosh (-11357.25 + 0.75 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccosh (-11357.25 - 0.75 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: ccosh (-2 - 3 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccosh (-2 - 3 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccosh (-710.5 + 0.75 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccosh (-710.5 - 0.75 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: ccosh (-89.5 + 0.75 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccosh (-89.5 + 0.75 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: ccosh (-89.5 - 0.75 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccosh (-89.5 - 0.75 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: ccosh (0.75 + 1.25 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: ccosh (0.75 + 1.25 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: ccosh (11357.25 + 0.75 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccosh (11357.25 - 0.75 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: ccosh (22730 + 0x1p-16434 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccosh (710.5 + 0.75 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccosh (710.5 - 0.75 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: ccosh (89.5 + 0.75 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccosh (89.5 + 0.75 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: ccosh (89.5 - 0.75 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccosh (89.5 - 0.75 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# cexp
-Test "Imaginary part of: cexp (-10000 + 0x1p16383 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cexp (-2.0 - 3.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cexp (-2.0 - 3.0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cexp (-720 + 0.75 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cexp (-95 + 0.75 i)":
-double: 1
-idouble: 1
-Test "Real part of: cexp (0.75 + 1.25 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cexp (0.75 + 1.25 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cexp (1440 + 0x1p-1074 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cexp (22730 + 0x1p-16434 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cexp (50 + 0x1p127 i)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cexp (50 + 0x1p127 i)":
-double: 1
-idouble: 1
-Test "Real part of: cexp (500 + 0x1p1023 i)":
-double: 1
-idouble: 1
-Test "Real part of: cexp (709.8125 + 0.75 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: cexp (709.8125 + 0.75 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cexp (88.75 + 0.75 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cexp (88.75 + 0.75 i)":
-float: 2
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-# clog
-Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
-double: 1
-idouble: 1
-Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i)":
-float: 1
-ifloat: 1
-Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i)":
-float: 1
-ifloat: 1
-Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16445 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16494 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16445 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16494 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i)":
-float: 1
-ifloat: 1
-Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i)":
-float: 1
-ifloat: 1
-Test "Real part of: clog (-0x1p-16445 + 0x1.fp+16383 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog (-0x1p-16445 - 0x1.fp+16383 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog (-0x1p-16494 + 0x1.fp+16383 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog (-0x1p-16494 - 0x1.fp+16383 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
-float: 1
-ifloat: 1
-Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i)":
-float: 1
-ifloat: 1
-Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i)":
-float: 1
-ifloat: 1
-Test "Real part of: clog (0x1.fp+16383 + 0x1.fp+16383 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog (0x1.fp+16383 + 0x1p-16445 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog (0x1.fp+16383 + 0x1p-16494 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog (0x1.fp+16383 - 0x1p-16445 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog (0x1.fp+16383 - 0x1p-16494 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i)":
-double: 1
-idouble: 1
-Test "Real part of: clog (0x1p-147 + 0x1p-147 i)":
-float: 1
-ifloat: 1
-Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i)":
-float: 1
-ifloat: 1
-Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i)":
-float: 1
-ifloat: 1
-Test "Real part of: clog (0x1p-16445 + 0x1.fp+16383 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog (0x1p-16445 - 0x1.fp+16383 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog (0x1p-16494 + 0x1.fp+16383 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog (0x1p-16494 - 0x1.fp+16383 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog (0x298c62cb546588a7p-63 + 0x7911b1dfcc4ecdaep-63
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog (0x2ede88p-23 + 0x771c3fp-23 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog (0x3f96469050f650869c2p-75 + 0x6f16b2c9c8b05988335p-75
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog (0x55cb6d0c83af5p-55 + 0x7fe33c0c7c4e90p-55 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog (0x659feap-24 + 0xeaf6f9p-24 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog (0x6771f22c64ed551b857c128b4cp-105 +
0x1f570e7a13cc3cf2f44fd793ea1p-105 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog (0x8ecbf810c4ae6p-52 + 0xd479468b09a37p-52 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog (0x9b57bp-20 + 0xcb7b4p-20 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog (0xdb85c467ee2aadd5f425fe0f4b8dp-114 +
0x3e83162a0f95f1dcbf97dddf410eap-114 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog (0xfd95243681c055c2632286921092p-113 +
0x1bccabcd29ca2152860ec29e34ef7p-113 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog (1.0 + 0x1.234566p-10 i)":
-float: 1
-ifloat: 1
-
-# clog10
-Test "Imaginary part of: clog10 (-0 + inf i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-0 - inf i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
-double: 2
-idouble: 2
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
-double: 1
-idouble: 1
-Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
-double: 2
-idouble: 2
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i)":
-double: 1
-idouble: 1
-Test "Real part of: clog10 (-2 - 3 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (-2 - 3 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (-3 + inf i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-3 - inf i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 1 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf + inf i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (-inf - 0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf - 1 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0 + inf i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0 - inf i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0.75 + 1.25 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000
i)":
-double: 1
-idouble: 1
-Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-1000
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (0x1.00000000000000123456789abcp0 +
0x1.23456789p-1000 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-60
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
-double: 1
-idouble: 1
-ildouble: 2
-ldouble: 2
-Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: clog10 (0x1.234566p-50 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: clog10 (0x1.234566p-60 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: clog10 (0x1.fffffep+127 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023
i)":
-double: 1
-idouble: 1
-Test "Real part of: clog10 (0x1.fp+16383 + 0x1.fp+16383 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog10 (0x1.fp+16383 + 0x1p+16383 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54
i)":
-double: 1
-idouble: 1
-Test "Real part of: clog10 (0x1415bcaf2105940d49a636e98ae59p-115 +
0x7e6a150adfcd1b0921d44b31f40f4p-115 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (0x15cfbd1990d1ffp-53 + 0x176a3973e09a9ap-53
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i)":
-double: 1
-idouble: 1
-Test "Real part of: clog10 (0x1df515eb171a808b9e400266p-95 +
0x7c71eb0cd4688dfe98581c77p-95 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (0x1df515eb171a808b9e400266p-95 +
0x7c71eb0cd4688dfe98581c77p-95 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (0x1p-1073 + 0x1p-1073 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (0x1p-1074 + 0x1.fp+1023 i)":
-double: 1
-idouble: 1
-Test "Real part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (0x1p-1074 - 0x1.fp+1023 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (0x1p-147 + 0x1p-147 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (0x3f96469050f650869c2p-75 +
0x6f16b2c9c8b05988335p-75 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i)":
-double: 1
-idouble: 1
-Test "Real part of: clog10 (0x4d4ep-15 + 0x6605p-15 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog10 (0x4d9c37e2b5cb4533p-63 + 0x65c98be2385a042ep-63
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog10 (0x55cb6d0c83af5p-55 + 0x7fe33c0c7c4e90p-55 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52
i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog10 (0x602fd5037c4792efp-64 + 0xed3e2086dcca80b8p-64
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog10 (0x6241ef0da53f539f02fad67dabp-106 +
0x3fb46641182f7efd9caa769dac0p-106 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog10 (0xdb85c467ee2aadd5f425fe0f4b8dp-114 +
0x3e83162a0f95f1dcbf97dddf410eap-114 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (0xfd95243681c055c2632286921092p-113 +
0x1bccabcd29ca2152860ec29e34ef7p-113 i)":
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (3 + inf i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (3 - inf i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (inf + inf i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (inf - inf i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# cos
-Test "cos (0x1p+120)":
-float: 1
-ifloat: 1
-Test "cos (0x1p+127)":
-float: 1
-ifloat: 1
-Test "cos (M_PI_6l * 2.0)":
-double: 1
-idouble: 1
-Test "cos (M_PI_6l * 4.0)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# cos_downward
-Test "cos_downward (1)":
-float: 1
-ifloat: 1
-Test "cos_downward (2)":
-float: 1
-ifloat: 1
-Test "cos_downward (3)":
-float: 1
-ifloat: 1
-Test "cos_downward (4)":
-float: 1
-ifloat: 1
-Test "cos_downward (5)":
-float: 1
-ifloat: 1
-Test "cos_downward (7)":
-float: 1
-ifloat: 1
-Test "cos_downward (8)":
-float: 1
-ifloat: 1
-
-# cos_tonearest
-Test "cos_tonearest (7)":
-float: 1
-ifloat: 1
-
-# cos_towardzero
-Test "cos_towardzero (2)":
-float: 1
-ifloat: 1
-Test "cos_towardzero (3)":
-float: 1
-ifloat: 1
-Test "cos_towardzero (5)":
-float: 1
-ifloat: 1
-Test "cos_towardzero (7)":
-float: 1
-ifloat: 1
-Test "cos_towardzero (8)":
-float: 1
-ifloat: 1
-
-# cos_upward
-Test "cos_upward (10)":
-float: 1
-ifloat: 1
-Test "cos_upward (6)":
-float: 1
-ifloat: 1
-Test "cos_upward (7)":
-float: 1
-ifloat: 1
-Test "cos_upward (9)":
-float: 2
-ifloat: 2
-
-# cosh_downward
-Test "cosh_downward (22)":
-float: 1
-ifloat: 1
-Test "cosh_downward (23)":
-float: 1
-ifloat: 1
-Test "cosh_downward (24)":
-float: 1
-ifloat: 1
-
-# cosh_tonearest
-Test "cosh_tonearest (22)":
-ildouble: 1
-ldouble: 1
-
-# cosh_towardzero
-Test "cosh_towardzero (22)":
-float: 1
-ifloat: 1
-Test "cosh_towardzero (23)":
-float: 1
-ifloat: 1
-Test "cosh_towardzero (24)":
-float: 1
-ifloat: 1
-
-# cpow
-Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
-double: 1
-float: 4
-idouble: 1
-ifloat: 4
-ildouble: 4
-ldouble: 4
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i)":
-double: 2
-float: 3
-idouble: 2
-ifloat: 3
-ildouble: 2
-ldouble: 2
-Test "Real part of: cpow (2 + 0 i, 10 + 0 i)":
-ildouble: 2
-ldouble: 2
-Test "Real part of: cpow (2 + 3 i, 4 + 0 i)":
-double: 1
-float: 4
-idouble: 1
-ifloat: 4
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i)":
-float: 2
-ifloat: 2
-
-# csin
-Test "Real part of: csin (-0.75 + 11357.25 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: csin (-0.75 + 710.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: csin (-0.75 + 89.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csin (-0.75 + 89.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: csin (-0.75 - 11357.25 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: csin (-0.75 - 710.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: csin (-0.75 - 89.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csin (-0.75 - 89.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csin (-2 - 3 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: csin (0.75 + 1.25 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: csin (0.75 + 11357.25 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: csin (0.75 + 710.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: csin (0.75 + 89.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csin (0.75 + 89.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: csin (0.75 - 11357.25 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: csin (0.75 - 710.5 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: csin (0.75 - 89.5 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csin (0.75 - 89.5 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: csin (0x1p-1074 + 1440 i)":
-double: 1
-idouble: 1
-Test "Real part of: csin (0x1p-16434 + 22730 i)":
-ildouble: 1
-ldouble: 1
-
-# csinh
-Test "Imaginary part of: csinh (-11357.25 + 0.75 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csinh (-11357.25 - 0.75 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: csinh (-2 - 3 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csinh (-2 - 3 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: csinh (-710.5 + 0.75 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csinh (-710.5 - 0.75 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: csinh (-89.5 + 0.75 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csinh (-89.5 + 0.75 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: csinh (-89.5 - 0.75 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csinh (-89.5 - 0.75 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: csinh (0.75 + 1.25 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: csinh (0.75 + 1.25 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: csinh (11357.25 + 0.75 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csinh (11357.25 - 0.75 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csinh (1440 + 0x1p-1074 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: csinh (22730 + 0x1p-16434 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csinh (710.5 + 0.75 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csinh (710.5 - 0.75 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: csinh (89.5 + 0.75 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csinh (89.5 + 0.75 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: csinh (89.5 - 0.75 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csinh (89.5 - 0.75 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# csqrt
-Test "Real part of: csqrt (-0x1.0000000000000000000000000001p-16382 -
0x1.0000000000000000000000000001p-16382 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: csqrt (-0x1.0000000000000002p-16382 -
0x1.0000000000000002p-16382 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csqrt (-0x1.0000000000000002p-16382 -
0x1.0000000000000002p-16382 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: csqrt (-0x1.0000000000001p-1022 - 0x1.0000000000001p-1022
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i)":
-double: 1
-idouble: 1
-Test "Real part of: csqrt (-2 + 3 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: csqrt (-2 - 3 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csqrt (0.75 + 1.25 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csqrt (0x1.0000000000000000000000000001p-16382 +
0x1.0000000000000000000000000001p-16382 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csqrt (0x1.0000000000000002p-16382 +
0x1.0000000000000002p-16382 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csqrt (0x1.0000000000001p-1022 + 0x1.0000000000001p-1022
i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i)":
-float: 1
-ifloat: 1
-Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023
i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023
i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1p+16383 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csqrt (0x1p-16440 + 0x1p-16441 i)":
-ildouble: 1
-ldouble: 1
-
-# ctan
-Test "Real part of: ctan (-2 - 3 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: ctan (-2 - 3 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: ctan (0.75 + 1.25 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ctan (0.75 + 1.25 i)":
-double: 1
-idouble: 1
-ildouble: 2
-ldouble: 2
-Test "Real part of: ctan (0x1p1023 + 1 i)":
-double: 1
-idouble: 1
-Test "Imaginary part of: ctan (0x1p1023 + 1 i)":
-ildouble: 2
-ldouble: 2
-Test "Real part of: ctan (0x1p127 + 1 i)":
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: ctan (0x1p127 + 1 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: ctan (0x1p16383 + 1 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ctan (0x1p16383 + 1 i)":
-ildouble: 2
-ldouble: 2
-Test "Real part of: ctan (0x3.243f6cp-1 + 0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: ctan (1 + 355 i)":
-ildouble: 2
-ldouble: 2
-Test "Real part of: ctan (1 + 365 i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: ctan (1 + 45 i)":
-ildouble: 2
-ldouble: 2
-Test "Real part of: ctan (1 + 47 i)":
-ildouble: 1
-ldouble: 1
-
-# ctan_downward
-Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
-float: 1
-ifloat: 1
-
-# ctan_tonearest
-Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d1846ap+0 + 0x1p-16445
i)":
-ildouble: 1
-ldouble: 1
-Test "Real part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
-ildouble: 3
-ldouble: 3
-Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
-ildouble: 3
-ldouble: 3
-Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-
-# ctan_towardzero
-Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
-float: 1
-ifloat: 1
-
-# ctan_upward
-Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
-double: 1
-idouble: 1
-Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-# ctanh
-Test "Real part of: ctanh (-2 - 3 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: ctanh (-2 - 3 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ctanh (0 + pi/4 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: ctanh (0.75 + 1.25 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: ctanh (0.75 + 1.25 i)":
-float: 2
-ifloat: 2
-Test "Real part of: ctanh (1 + 0x1p1023 i)":
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: ctanh (1 + 0x1p1023 i)":
-double: 1
-idouble: 1
-Test "Real part of: ctanh (1 + 0x1p127 i)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ctanh (1 + 0x1p127 i)":
-ildouble: 2
-ldouble: 2
-Test "Real part of: ctanh (1 + 0x1p16383 i)":
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: ctanh (1 + 0x1p16383 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ctanh (355 + 1 i)":
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: ctanh (365 + 1 i)":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ctanh (45 + 1 i)":
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: ctanh (47 + 1 i)":
-ildouble: 1
-ldouble: 1
-
-# ctanh_downward
-Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-# ctanh_tonearest
-Test "Real part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
-ildouble: 3
-ldouble: 3
-Test "Imaginary part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0
i)":
-ildouble: 3
-ldouble: 3
-Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: ctanh_tonearest (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
-ildouble: 1
-ldouble: 1
-
-# ctanh_towardzero
-Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
-float: 1
-ifloat: 1
-
-# ctanh_upward
-Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
-double: 1
-idouble: 1
-Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-# erf
-Test "erf (1.25)":
-double: 1
-idouble: 1
-
-# erfc
-Test "erfc (0x1.f7303cp+1)":
-double: 1
-idouble: 1
-Test "erfc (0x1.ffa002p+2)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "erfc (0x1.ffffc8p+2)":
-ildouble: 1
-ldouble: 1
-Test "erfc (2.0)":
-double: 1
-idouble: 1
-Test "erfc (27.0)":
-ildouble: 1
-ldouble: 1
-Test "erfc (4.125)":
-double: 1
-idouble: 1
-
-# exp10
-Test "exp10 (-1)":
-double: 1
-idouble: 1
-Test "exp10 (-305)":
-double: 1
-idouble: 1
-Test "exp10 (-36)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "exp10 (3)":
-double: 1
-idouble: 1
-Test "exp10 (36)":
-double: 1
-idouble: 1
-Test "exp10 (4932)":
-ildouble: 1
-ldouble: 1
-
-# exp2
-Test "exp2 (100.5)":
-ildouble: 1
-ldouble: 1
-
-# exp_downward
-Test "exp_downward (2)":
-float: 1
-ifloat: 1
-Test "exp_downward (3)":
-float: 1
-ifloat: 1
-
-# exp_towardzero
-Test "exp_towardzero (2)":
-float: 1
-ifloat: 1
-Test "exp_towardzero (3)":
-float: 1
-ifloat: 1
-
-# exp_upward
-Test "exp_upward (1)":
-float: 1
-ifloat: 1
-
-# expm1
-Test "expm1 (-79.0)":
-ildouble: 1
-ldouble: 1
-Test "expm1 (0.75)":
-double: 1
-idouble: 1
-Test "expm1 (1)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "expm1 (500.0)":
-double: 1
-idouble: 1
-
-# gamma
-Test "gamma (-0.5)":
-ildouble: 1
-ldouble: 1
-Test "gamma (0.7)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "gamma (1.2)":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-# hypot
-Test "hypot (-0.7, -12.4)":
-float: 1
-ifloat: 1
-Test "hypot (-0.7, 12.4)":
-float: 1
-ifloat: 1
-Test "hypot (-12.4, -0.7)":
-float: 1
-ifloat: 1
-Test "hypot (-12.4, 0.7)":
-float: 1
-ifloat: 1
-Test "hypot (0.7, -12.4)":
-float: 1
-ifloat: 1
-Test "hypot (0.7, 12.4)":
-float: 1
-ifloat: 1
-Test "hypot (12.4, -0.7)":
-float: 1
-ifloat: 1
-Test "hypot (12.4, 0.7)":
-float: 1
-ifloat: 1
-
-# j0
-Test "j0 (-0x1.001000001p+593)":
-ildouble: 1
-ldouble: 1
-Test "j0 (-4.0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "j0 (0.75)":
-float: 1
-ifloat: 1
-Test "j0 (0x1.d7ce3ap+107)":
-float: 2
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "j0 (0x1p1023)":
-ildouble: 1
-ldouble: 1
-Test "j0 (0x1p16383)":
-ildouble: 2
-ldouble: 2
-Test "j0 (10.0)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "j0 (2.0)":
-float: 2
-ifloat: 2
-ildouble: 2
-ldouble: 2
-Test "j0 (4.0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "j0 (8.0)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# j1
-Test "j1 (-1.0)":
-ildouble: 1
-ldouble: 1
-Test "j1 (0.75)":
-ildouble: 1
-ldouble: 1
-Test "j1 (0x1.3ffp+74)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "j1 (0x1.ff00000000002p+840)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "j1 (0x1p1023)":
-ildouble: 1
-ldouble: 1
-Test "j1 (0x1p16382)":
-ildouble: 1
-ldouble: 1
-Test "j1 (0x1p16383)":
-ildouble: 2
-ldouble: 2
-Test "j1 (1.0)":
-ildouble: 1
-ldouble: 1
-Test "j1 (10.0)":
-float: 2
-ifloat: 2
-ildouble: 2
-ldouble: 2
-Test "j1 (2.0)":
-double: 1
-idouble: 1
-Test "j1 (8.0)":
-double: 1
-idouble: 1
-ildouble: 4
-ldouble: 4
-
-# jn
-Test "jn (0, -4.0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "jn (0, 0.75)":
-float: 1
-ifloat: 1
-Test "jn (0, 10.0)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "jn (0, 2.0)":
-float: 2
-ifloat: 2
-ildouble: 2
-ldouble: 2
-Test "jn (0, 4.0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "jn (0, 8.0)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "jn (1, -1.0)":
-ildouble: 1
-ldouble: 1
-Test "jn (1, 0.75)":
-ildouble: 1
-ldouble: 1
-Test "jn (1, 1.0)":
-ildouble: 1
-ldouble: 1
-Test "jn (1, 10.0)":
-float: 2
-ifloat: 2
-ildouble: 2
-ldouble: 2
-Test "jn (1, 2.0)":
-double: 1
-idouble: 1
-Test "jn (1, 8.0)":
-double: 1
-idouble: 1
-ildouble: 4
-ldouble: 4
-Test "jn (10, -1.0)":
-ildouble: 1
-ldouble: 1
-Test "jn (10, 0.125)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "jn (10, 0.75)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "jn (10, 1.0)":
-ildouble: 1
-ldouble: 1
-Test "jn (10, 10.0)":
-double: 4
-float: 3
-idouble: 4
-ifloat: 3
-ildouble: 2
-ldouble: 2
-Test "jn (10, 2.0)":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-Test "jn (2, 0x1.ffff62p+99)":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-Test "jn (2, 2.4048255576957729)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "jn (3, 0.125)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "jn (3, 0.75)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "jn (3, 10.0)":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "jn (3, 2.0)":
-float: 1
-ifloat: 1
-Test "jn (3, 2.4048255576957729)":
-double: 3
-idouble: 3
-ildouble: 1
-ldouble: 1
-Test "jn (4, 2.4048255576957729)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "jn (5, 2.4048255576957729)":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "jn (6, 2.4048255576957729)":
-double: 4
-float: 3
-idouble: 4
-ifloat: 3
-ildouble: 5
-ldouble: 5
-Test "jn (7, 2.4048255576957729)":
-double: 3
-float: 5
-idouble: 3
-ifloat: 5
-ildouble: 3
-ldouble: 3
-Test "jn (8, 2.4048255576957729)":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-ildouble: 8
-ldouble: 8
-Test "jn (9, 2.4048255576957729)":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 3
-ldouble: 3
-
-# lgamma
-Test "lgamma (-0.5)":
-ildouble: 1
-ldouble: 1
-Test "lgamma (0.7)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "lgamma (1.2)":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-# log10
-Test "log10 (0.75)":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-Test "log10 (e)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# log1p
-Test "log1p (-0.25)":
-float: 1
-ifloat: 1
-
-# log2
-Test "log2 (0.75)":
-ildouble: 1
-ldouble: 1
-
-# pow
-Test "pow (0x0.fffffffffffff8p0, -0x1.23456789abcdfp62)":
-ildouble: 1
-ldouble: 1
-Test "pow (0x0.ffffffp0, -0x1p24)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "pow (0x0.ffffffp0, 0x1p24)":
-float: 1
-ifloat: 1
-Test "pow (0x1.000002p0, 0x1p24)":
-float: 1
-ifloat: 1
-Test "pow (10.0, -4930.0)":
-ildouble: 1
-ldouble: 1
-Test "pow (10.0, 4929.0)":
-ildouble: 1
-ldouble: 1
-Test "pow (10.0, 4930.0)":
-ildouble: 1
-ldouble: 1
-Test "pow (10.0, 4931.0)":
-ildouble: 1
-ldouble: 1
-Test "pow (10.0, 4932.0)":
-ildouble: 1
-ldouble: 1
-Test "pow (1e4932, 0.75)":
-ildouble: 1
-ldouble: 1
-
-# pow10
-Test "pow10 (-1)":
-double: 1
-idouble: 1
-Test "pow10 (-305)":
-double: 1
-idouble: 1
-Test "pow10 (-36)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "pow10 (3)":
-double: 1
-idouble: 1
-Test "pow10 (36)":
-double: 1
-idouble: 1
-Test "pow10 (4932)":
-ildouble: 1
-ldouble: 1
-
-# pow_downward
-Test "pow_downward (1.5, 1.03125)":
-float: 1
-ifloat: 1
-
-# pow_towardzero
-Test "pow_towardzero (1.5, 1.03125)":
-float: 1
-ifloat: 1
-
-# pow_upward
-Test "pow_upward (1.0625, 1.125)":
-float: 1
-ifloat: 1
-
-# sin_downward
-Test "sin_downward (10)":
-float: 1
-ifloat: 1
-Test "sin_downward (3)":
-float: 1
-ifloat: 1
-Test "sin_downward (5)":
-float: 1
-ifloat: 1
-Test "sin_downward (6)":
-float: 1
-ifloat: 1
-
-# sin_tonearest
-Test "sin_tonearest (1)":
-float: 1
-ifloat: 1
-Test "sin_tonearest (3)":
-ildouble: 1
-ldouble: 1
-
-# sin_towardzero
-Test "sin_towardzero (1)":
-float: 1
-ifloat: 1
-Test "sin_towardzero (10)":
-float: 1
-ifloat: 1
-Test "sin_towardzero (4)":
-float: 1
-ifloat: 1
-Test "sin_towardzero (5)":
-float: 1
-ifloat: 1
-Test "sin_towardzero (9)":
-float: 1
-ifloat: 1
-
-# sin_upward
-Test "sin_upward (1)":
-float: 1
-ifloat: 1
-Test "sin_upward (2)":
-float: 2
-ifloat: 2
-Test "sin_upward (4)":
-float: 1
-ifloat: 1
-Test "sin_upward (9)":
-float: 1
-ifloat: 1
-
-# sincos
-Test "sincos (0x1p+120) extra output 2":
-float: 1
-ifloat: 1
-Test "sincos (0x1p+127) extra output 2":
-float: 1
-ifloat: 1
-Test "sincos (M_PI_6l*2.0) extra output 1":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "sincos (M_PI_6l*2.0) extra output 2":
-double: 1
-idouble: 1
-Test "sincos (pi/6) extra output 2":
-float: 1
-ifloat: 1
-
-# sinh_downward
-Test "sinh_downward (22)":
-float: 1
-ifloat: 1
-Test "sinh_downward (23)":
-float: 1
-ifloat: 1
-Test "sinh_downward (24)":
-float: 1
-ifloat: 1
-
-# sinh_towardzero
-Test "sinh_towardzero (22)":
-float: 1
-ifloat: 1
-Test "sinh_towardzero (23)":
-float: 1
-ifloat: 1
-Test "sinh_towardzero (24)":
-float: 1
-ifloat: 1
-
-# tan_downward
-Test "tan_downward (1)":
-float: 1
-ifloat: 1
-Test "tan_downward (10)":
-float: 1
-ifloat: 1
-Test "tan_downward (2)":
-float: 1
-ifloat: 1
-Test "tan_downward (6)":
-float: 1
-ifloat: 1
-Test "tan_downward (8)":
-float: 1
-ifloat: 1
-Test "tan_downward (9)":
-float: 1
-ifloat: 1
-
-# tan_towardzero
-Test "tan_towardzero (10)":
-float: 1
-ifloat: 1
-Test "tan_towardzero (3)":
-float: 1
-ifloat: 1
-Test "tan_towardzero (4)":
-float: 1
-ifloat: 1
-Test "tan_towardzero (5)":
-float: 1
-ifloat: 1
-Test "tan_towardzero (9)":
-float: 1
-ifloat: 1
-
-# tan_upward
-Test "tan_upward (1)":
-float: 1
-ifloat: 1
-Test "tan_upward (10)":
-float: 1
-ifloat: 1
-Test "tan_upward (3)":
-float: 1
-ifloat: 1
-Test "tan_upward (5)":
-float: 1
-ifloat: 1
-
-# tanh
-Test "tanh (-0.75)":
-ildouble: 1
-ldouble: 1
-Test "tanh (-1.0)":
-ildouble: 1
-ldouble: 1
-Test "tanh (0.75)":
-ildouble: 1
-ldouble: 1
-Test "tanh (1.0)":
-ildouble: 1
-ldouble: 1
-
-# tgamma
-Test "tgamma (-0.5)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (-0x0.fffffffffffff8p0)":
-double: 1
-idouble: 1
-Test "tgamma (-0x0.ffffffffffffffffffffffffffff8p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x0.ffffffp0)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x1.0000000000000002p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x1.0000000000001p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x1.000002p0)":
-double: 2
-idouble: 2
-Test "tgamma (-0x1.0a32a2p+5)":
-float: 2
-ifloat: 2
-ildouble: 2
-ldouble: 2
-Test "tgamma (-0x1.5800000080001p+7)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x1.fffffffffffffffep0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x1.fffffffffffffp0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x13.ffffep0)":
-float: 2
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x13.ffffffffffffffep0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x13.fffffffffffffffffffffffff8p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x13.ffffffffffffp0)":
-ildouble: 2
-ldouble: 2
-Test "tgamma (-0x14.000000000000000000000000001p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x14.000000000001p0)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x14.00002p0)":
-float: 1
-ifloat: 1
-ildouble: 4
-ldouble: 4
-Test "tgamma (-0x1d.ffffep0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x1d.fffffffffffffffffffffffff8p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x1d.ffffffffffffp0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x1e.000000000000000000000000001p0)":
-ildouble: 2
-ldouble: 2
-Test "tgamma (-0x1e.00000000000000000000000008p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x1e.000000000000002p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x1e.000000000001p0)":
-double: 3
-idouble: 3
-Test "tgamma (-0x1e.00002p0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x1f3.ffffffffffffffffffffffffffp0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x1p-24)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x2.0000000000000000000000000002p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x2.0000000000002p0)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x2.000004p0)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x2.fffffcp0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (-0x2.ffffffffffffep0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x27.fffffffffffep0)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x27.ffffffffffffffcp0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x27.ffffffffffffffffffffffffffep0)":
-ildouble: 2
-ldouble: 2
-Test "tgamma (-0x27.fffffffffffffffffffffffffp0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x28.0000000000000000000000001p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x28.000000000002p0)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x28.00004p0)":
-double: 2
-idouble: 2
-ildouble: 2
-ldouble: 2
-Test "tgamma (-0x28.ffffffffffffffcp0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x28.ffffffffffffffffffffffffffep0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x28.fffffffffffffffffffffffffp0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x29.000000000000000000000000002p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x29.0000000000000000000000001p0)":
-ildouble: 2
-ldouble: 2
-Test "tgamma (-0x29.00004p0)":
-double: 1
-idouble: 1
-Test "tgamma (-0x29.ffffcp0)":
-double: 1
-idouble: 1
-Test "tgamma (-0x29.fffffffffffep0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x29.ffffffffffffffcp0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x29.ffffffffffffffffffffffffffep0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x29.fffffffffffffffffffffffffp0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x2a.000000000000000000000000002p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x2a.0000000000000000000000001p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x2a.000000000000004p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x2a.000000000002p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x2ed.fffffffffffffffffffffffffep0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x2ee.00000000000004p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x3.00000000000000000000000001p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x3.000004p0)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "tgamma (-0x3.fffffcp0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (-0x3.ffffffffffffep0)":
-double: 2
-idouble: 2
-Test "tgamma (-0x3.fffffffffffffffcp0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x3.fffffffffffffffffffffffffffep0)":
-ildouble: 2
-ldouble: 2
-Test "tgamma (-0x31.fffffffffffep0)":
-double: 3
-idouble: 3
-ildouble: 2
-ldouble: 2
-Test "tgamma (-0x31.ffffffffffffffcp0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x31.ffffffffffffffffffffffffffep0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x31.fffffffffffffffffffffffffp0)":
-ildouble: 2
-ldouble: 2
-Test "tgamma (-0x32.000000000000000000000000002p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x32.0000000000000000000000001p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x32.000000000000004p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x3e7.fffffffffffffcp0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x3e7.fffffffffffffffffffffffffep0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x3e8.00000000000000000000000002p0)":
-ildouble: 2
-ldouble: 2
-Test "tgamma (-0x3e8.00000000000004p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x4.0000000000004p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x4.000008p0)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x4.fffff8p0)":
-double: 1
-idouble: 1
-Test "tgamma (-0x4.ffffffffffffcp0)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x4.fffffffffffffffffffffffffep0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x4.fffffffffffffffffffffffffffcp0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x5.0000000000000008p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x5.0000000000004p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x5.000008p0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (-0x5.fffff8p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x5.ffffffffffffcp0)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x5.fffffffffffffff8p0)":
-ildouble: 2
-ldouble: 2
-Test "tgamma (-0x5.fffffffffffffffffffffffffep0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x5.fffffffffffffffffffffffffffcp0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x5db.fffffffffffff8p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x5db.fffffffffffffffffffffffffcp0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x5dc.00000000000000000000000004p0)":
-ildouble: 2
-ldouble: 2
-Test "tgamma (-0x6.0000000000000000000000000004p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x6.00000000000000000000000002p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x6.0000000000004p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x6.000008p0)":
-float: 2
-ifloat: 2
-ildouble: 2
-ldouble: 2
-Test "tgamma (-0x6.fffff8p0)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x6.ffffffffffffcp0)":
-double: 4
-idouble: 4
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x6.fffffffffffffff8p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x6.fffffffffffffffffffffffffffcp0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x63.fffffffffffcp0)":
-double: 2
-idouble: 2
-Test "tgamma (-0x63.ffffffffffffff8p0)":
-ildouble: 2
-ldouble: 2
-Test "tgamma (-0x63.ffffffffffffffffffffffffep0)":
-ildouble: 2
-ldouble: 2
-Test "tgamma (-0x64.000000000000000000000000004p0)":
-ildouble: 2
-ldouble: 2
-Test "tgamma (-0x64.0000000000000000000000002p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x64.000000000004p0)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x6d5.fffffffffffff8p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x6d6.00000000000000000000000004p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x6e3.00000000000000000000000004p0)":
-ildouble: 2
-ldouble: 2
-Test "tgamma (-0x7.0000000000000008p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x7.0000000000004p0)":
-double: 3
-idouble: 3
-Test "tgamma (-0x7.000008p0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (-0x7.fffff8p0)":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-Test "tgamma (-0x7.ffffffffffffcp0)":
-double: 3
-idouble: 3
-Test "tgamma (-0x7.fffffffffffffff8p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x7.fffffffffffffffffffffffffep0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x7.fffffffffffffffffffffffffffcp0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x8.0000000000000000000000000008p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x8.00000000000000000000000004p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x8.0000000000008p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x8.00001p0)":
-double: 2
-idouble: 2
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x9.ffffffffffff8p0)":
-double: 1
-idouble: 1
-Test "tgamma (-0x9.fffffffffffffffffffffffffff8p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x9.fffffp0)":
-float: 1
-ifloat: 1
-Test "tgamma (-0x95.ffffffffffffffp0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x96.000000000000000000000000008p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x96.0000000000000000000000004p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0x96.00000000000001p0)":
-ildouble: 2
-ldouble: 2
-Test "tgamma (-0x96.000000000008p0)":
-double: 1
-idouble: 1
-Test "tgamma (-0xa.0000000000008p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0xa.00001p0)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0xb4.ffffffffffffffffffffffffcp0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0xb4.ffffffffffffffp0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0xb5.0000000000000000000000004p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0xb5.00000000000001p0)":
-ildouble: 2
-ldouble: 2
-Test "tgamma (-0xb5.000000000008p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0xb5.ffffffffffffffffffffffffff8p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0xb6.00000000000001p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0xb6.000000000008p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0xb6.fffffffffff8p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0xb6.ffffffffffffffffffffffffff8p0)":
-ildouble: 3
-ldouble: 3
-Test "tgamma (-0xb7.000000000000000000000000008p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0xb7.00000000000001p0)":
-ildouble: 2
-ldouble: 2
-Test "tgamma (-0xb7.000000000008p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0xb7.ffffffffffffffffffffffffcp0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0xb7.ffffffffffffffffffffffffff8p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0xb8.00000000000001p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0xbb.ffffffffffffffffffffffffcp0)":
-ildouble: 3
-ldouble: 3
-Test "tgamma (-0xbb.ffffffffffffffffffffffffff8p0)":
-ildouble: 4
-ldouble: 4
-Test "tgamma (-0xbc.000000000000000000000000008p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0xbc.0000000000000000000000004p0)":
-ildouble: 2
-ldouble: 2
-Test "tgamma (-0xbc.00000000000001p0)":
-ildouble: 2
-ldouble: 2
-Test "tgamma (-0xbc.ffffffffffffffp0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0xbd.000000000000000000000000008p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0xbd.00000000000001p0)":
-ildouble: 2
-ldouble: 2
-Test "tgamma (-0xbd.ffffffffffffffp0)":
-ildouble: 2
-ldouble: 2
-Test "tgamma (-0xbe.000000000000000000000000008p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0xbe.0000000000000000000000004p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0xbe.ffffffffffffffffffffffffcp0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0xbe.ffffffffffffffp0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0xbf.000000000000000000000000008p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0xbf.0000000000000000000000004p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0xbf.00000000000001p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0xf9.ffffffffffffffp0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-0xfa.000000000000000000000000008p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (-2.5)":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "tgamma (-3.5)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "tgamma (-4.5)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (-5.5)":
-double: 1
-idouble: 1
-Test "tgamma (-6.5)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "tgamma (-7.5)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "tgamma (-8.5)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (-9.5)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (0.5)":
-float: 1
-ifloat: 1
-Test "tgamma (0.7)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (0x1.fffffep0)":
-float: 1
-ifloat: 1
-Test "tgamma (0x1.fffffffffffffffep0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (0x1.ffffffffffffffffffffffffffffp0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (0x1.fffffffffffffp0)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "tgamma (0x1p-113)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (0x1p-24)":
-float: 1
-ifloat: 1
-Test "tgamma (0x1p-53)":
-double: 1
-idouble: 1
-Test "tgamma (0x2.30a43cp+4)":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 2
-ldouble: 2
-Test "tgamma (0x2.fffffcp0)":
-float: 3
-ifloat: 3
-Test "tgamma (0x2.ffffffffffffep0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (0x3.0000000000002p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (0x3.fffffcp0)":
-float: 1
-ifloat: 1
-Test "tgamma (0x3.ffffffffffffep0)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "tgamma (0x3.fffffffffffffffcp0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (0x3.fffffffffffffffffffffffffffep0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (0x4.0000000000000000000000000004p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (0x4.0000000000004p0)":
-double: 1
-idouble: 1
-Test "tgamma (0x4.000008p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (0x4.ffffffffffffcp0)":
-double: 1
-idouble: 1
-Test "tgamma (0x4.fffffffffffffffffffffffffep0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (0x4.fffffffffffffffffffffffffffcp0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (0x5.0000000000000000000000000004p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (0x5.0000000000004p0)":
-double: 1
-idouble: 1
-Test "tgamma (0x5.000008p0)":
-float: 2
-ifloat: 2
-Test "tgamma (0x5.fffff8p0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (0x5.ffffffffffffcp0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (0x5.fffffffffffffff8p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (0x5.fffffffffffffffffffffffffep0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (0x6.0000000000000000000000000004p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (0x6.0000000000000008p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (0x6.0000000000004p0)":
-double: 1
-idouble: 1
-Test "tgamma (0x6.000008p0)":
-float: 2
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "tgamma (0x6.fffff8p0)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "tgamma (0x6.ffffffffffffcp0)":
-double: 4
-idouble: 4
-Test "tgamma (0x6.fffffffffffffff8p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (0x7.0000000000000000000000000004p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (0x7.0000000000000008p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (0x7.0000000000004p0)":
-double: 4
-idouble: 4
-Test "tgamma (0x7.000008p0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (0x7.fffff8p0)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "tgamma (0x7.ffffffffffffcp0)":
-double: 2
-idouble: 2
-ildouble: 1
-ldouble: 1
-Test "tgamma (0x7.fffffffffffffffffffffffffffcp0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (0x8.0000000000000000000000000008p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (0x8.0000000000008p0)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (0x8.00001p0)":
-double: 2
-idouble: 2
-Test "tgamma (0xa.b9fd72b0fb238p+4)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "tgamma (0xa.b9fd72b0fb23a9ddbf0d3804f8p+4)":
-ildouble: 2
-ldouble: 2
-Test "tgamma (10)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (18.5)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (19.5)":
-double: 2
-idouble: 2
-ildouble: 1
-ldouble: 1
-Test "tgamma (2.5)":
-float: 2
-ifloat: 2
-Test "tgamma (23.5)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (29.5)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (3)":
-float: 1
-ifloat: 1
-Test "tgamma (3.5)":
-float: 2
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "tgamma (30.5)":
-float: 1
-ifloat: 1
-Test "tgamma (32.5)":
-ildouble: 1
-ldouble: 1
-Test "tgamma (33.5)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "tgamma (34.5)":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-Test "tgamma (4)":
-float: 1
-ifloat: 1
-Test "tgamma (4.5)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (6)":
-float: 1
-ifloat: 1
-Test "tgamma (6.5)":
-float: 1
-ifloat: 1
-Test "tgamma (7)":
-double: 1
-idouble: 1
-Test "tgamma (7.5)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "tgamma (8)":
-double: 1
-idouble: 1
-Test "tgamma (8.5)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (9)":
-double: 1
-idouble: 1
-Test "tgamma (9.5)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-# y0
-Test "y0 (0x1.3ffp+74)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "y0 (0x1.ff00000000002p+840)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "y0 (0x1p-10)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "y0 (0x1p-110)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "y0 (0x1p-20)":
-float: 1
-ifloat: 1
-Test "y0 (0x1p-30)":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "y0 (0x1p-40)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "y0 (0x1p-50)":
-float: 1
-ifloat: 1
-Test "y0 (0x1p-60)":
-ildouble: 1
-ldouble: 1
-Test "y0 (0x1p-70)":
-double: 1
-idouble: 1
-Test "y0 (0x1p-80)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "y0 (0x1p1023)":
-ildouble: 1
-ldouble: 1
-Test "y0 (0x1p16382)":
-ildouble: 1
-ldouble: 1
-Test "y0 (0x1p16383)":
-ildouble: 2
-ldouble: 2
-Test "y0 (1.0)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "y0 (1.5)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "y0 (10.0)":
-float: 1
-ifloat: 1
-ildouble: 3
-ldouble: 3
-Test "y0 (8.0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 3
-ldouble: 3
-
-# y1
-Test "y1 (0.125)":
-double: 1
-idouble: 1
-Test "y1 (0.75)":
-ildouble: 1
-ldouble: 1
-Test "y1 (0x1.001000001p+593)":
-ildouble: 1
-ldouble: 1
-Test "y1 (0x1.27e204p+99)":
-double: 1
-idouble: 1
-Test "y1 (0x1p-10)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "y1 (0x1p-30)":
-ildouble: 1
-ldouble: 1
-Test "y1 (0x1p1023)":
-ildouble: 1
-ldouble: 1
-Test "y1 (0x1p16383)":
-ildouble: 2
-ldouble: 2
-Test "y1 (1.5)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "y1 (10.0)":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-Test "y1 (2.0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "y1 (8.0)":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-# yn
-Test "yn (0, 1.0)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "yn (0, 1.5)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "yn (0, 10.0)":
-float: 1
-ifloat: 1
-ildouble: 3
-ldouble: 3
-Test "yn (0, 8.0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 3
-ldouble: 3
-Test "yn (1, 0.125)":
-double: 1
-idouble: 1
-Test "yn (1, 0.75)":
-ildouble: 1
-ldouble: 1
-Test "yn (1, 1.5)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "yn (1, 10.0)":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-Test "yn (1, 2.0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "yn (1, 8.0)":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "yn (10, 0.125)":
-double: 1
-idouble: 1
-ildouble: 2
-ldouble: 2
-Test "yn (10, 0.75)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 5
-ldouble: 5
-Test "yn (10, 1.0)":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "yn (10, 10.0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "yn (10, 2.0)":
-double: 2
-idouble: 2
-ildouble: 2
-ldouble: 2
-Test "yn (3, 0.125)":
-double: 1
-idouble: 1
-Test "yn (3, 0.75)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "yn (3, 10.0)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "yn (3, 2.0)":
-double: 1
-idouble: 1
-
-# Maximal error of functions:
-Function: "acos_downward":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "acos_towardzero":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "asin_downward":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "asin_towardzero":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "asin_upward":
-float: 1
-ifloat: 1
-
-Function: "atan2":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "atanh":
-float: 1
-ifloat: 1
-
-Function: Real part of "cacos":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 2
-ldouble: 2
-
-Function: Imaginary part of "cacos":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 2
-ldouble: 2
-
-Function: Real part of "cacosh":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 2
-ldouble: 2
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 2
-ldouble: 2
-
-Function: Real part of "casin":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-
-Function: Imaginary part of "casin":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 2
-ldouble: 2
-
-Function: Real part of "casinh":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 2
-ldouble: 2
-
-Function: Imaginary part of "casinh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-
-Function: Real part of "catan":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "catanh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "catanh":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "cbrt":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "ccos":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "cexp":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "cexp":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "clog":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "clog":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "clog10":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "clog10":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-
-Function: "cos":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "cos_downward":
-float: 1
-ifloat: 1
-
-Function: "cos_tonearest":
-float: 1
-ifloat: 1
-
-Function: "cos_towardzero":
-float: 1
-ifloat: 1
-
-Function: "cos_upward":
-float: 2
-ifloat: 2
-
-Function: "cosh_downward":
-float: 1
-ifloat: 1
-
-Function: "cosh_tonearest":
-ildouble: 1
-ldouble: 1
-
-Function: "cosh_towardzero":
-float: 1
-ifloat: 1
-
-Function: Real part of "cpow":
-double: 2
-float: 4
-idouble: 2
-ifloat: 4
-ildouble: 4
-ldouble: 4
-
-Function: Imaginary part of "cpow":
-float: 2
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "csin":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "csin":
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "csinh":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "csqrt":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "csqrt":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "ctan":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-
-Function: Imaginary part of "ctan":
-double: 1
-idouble: 1
-ildouble: 2
-ldouble: 2
-
-Function: Real part of "ctan_downward":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-Function: Imaginary part of "ctan_downward":
-float: 1
-ifloat: 1
-
-Function: Real part of "ctan_tonearest":
-float: 1
-ifloat: 1
-ildouble: 3
-ldouble: 3
-
-Function: Imaginary part of "ctan_tonearest":
-float: 1
-ifloat: 1
-ildouble: 3
-ldouble: 3
-
-Function: Real part of "ctan_towardzero":
-float: 1
-ifloat: 1
-
-Function: Imaginary part of "ctan_towardzero":
-float: 1
-ifloat: 1
-
-Function: Real part of "ctan_upward":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-Function: Imaginary part of "ctan_upward":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: Real part of "ctanh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-
-Function: Imaginary part of "ctanh":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 2
-ldouble: 2
-
-Function: Real part of "ctanh_downward":
-float: 1
-ifloat: 1
-
-Function: Imaginary part of "ctanh_downward":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-Function: Real part of "ctanh_tonearest":
-float: 1
-ifloat: 1
-ildouble: 3
-ldouble: 3
-
-Function: Imaginary part of "ctanh_tonearest":
-float: 1
-ifloat: 1
-ildouble: 3
-ldouble: 3
-
-Function: Real part of "ctanh_towardzero":
-float: 1
-ifloat: 1
-
-Function: Imaginary part of "ctanh_towardzero":
-float: 1
-ifloat: 1
-
-Function: Real part of "ctanh_upward":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: Imaginary part of "ctanh_upward":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-Function: "erf":
-double: 1
-idouble: 1
-
-Function: "erfc":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "exp10":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-Function: "exp2":
-ildouble: 1
-ldouble: 1
-
-Function: "exp_downward":
-float: 1
-ifloat: 1
-
-Function: "exp_towardzero":
-float: 1
-ifloat: 1
-
-Function: "exp_upward":
-float: 1
-ifloat: 1
-
-Function: "expm1":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "gamma":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: "hypot":
-float: 1
-ifloat: 1
-
-Function: "j0":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-ildouble: 2
-ldouble: 2
-
-Function: "j1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 4
-ldouble: 4
-
-Function: "jn":
-double: 4
-float: 5
-idouble: 4
-ifloat: 5
-ildouble: 8
-ldouble: 8
-
-Function: "lgamma":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: "log10":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: "log1p":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "log2":
-ildouble: 1
-ldouble: 1
-
-Function: "pow":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "pow10":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-Function: "pow_downward":
-float: 1
-ifloat: 1
-
-Function: "pow_towardzero":
-float: 1
-ifloat: 1
-
-Function: "pow_upward":
-float: 1
-ifloat: 1
-
-Function: "sin_downward":
-float: 1
-ifloat: 1
-
-Function: "sin_tonearest":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "sin_towardzero":
-float: 1
-ifloat: 1
-
-Function: "sin_upward":
-float: 2
-ifloat: 2
-
-Function: "sincos":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "sinh_downward":
-float: 1
-ifloat: 1
-
-Function: "sinh_towardzero":
-float: 1
-ifloat: 1
-
-Function: "tan":
-double: 1
-idouble: 1
-
-Function: "tan_downward":
-float: 1
-ifloat: 1
-
-Function: "tan_towardzero":
-float: 1
-ifloat: 1
-
-Function: "tan_upward":
-float: 1
-ifloat: 1
-
-Function: "tanh":
-ildouble: 1
-ldouble: 1
-
-Function: "tgamma":
-double: 4
-float: 3
-idouble: 4
-ifloat: 3
-ildouble: 4
-ldouble: 4
-
-Function: "y0":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 3
-ldouble: 3
-
-Function: "y1":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-ildouble: 2
-ldouble: 2
-
-Function: "yn":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-ildouble: 5
-ldouble: 5
-
-# end of automatic generation
diff --git a/test/math/libm-test-ulps-nds32 b/test/math/libm-test-ulps-nds32
deleted file mode 100644
index 46b2ac5..0000000
--- a/test/math/libm-test-ulps-nds32
+++ /dev/null
@@ -1,145 +0,0 @@
-# Begin of automatic generation
-
-# cos
-Test "cos (M_PI_6l * 2.0) == 0.5":
-double: 1
-idouble: 1
-Test "cos (M_PI_6l * 4.0) == -0.5":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-# erf
-Test "erf (0.75) == 0.711155633653515131598937834591410777":
-double: 1
-idouble: 1
-Test "erf (1.25) == 0.922900128256458230136523481197281140":
-double: 1
-idouble: 1
-
-# erfc
-Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
-double: 1
-idouble: 1
-
-# exp
-Test "exp (1) == e":
-double: 1
-idouble: 1
-
-# expm1
-Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
-double: 1
-idouble: 1
-
-# hypot
-Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-
-# lgamma
-Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-# log10
-Test "log10 (0.75) == -0.124938736608299953132449886193870744":
-double: 1
-idouble: 1
-Test "log10 (e) == log10(e)":
-float: 1
-ifloat: 1
-
-# tgamma
-Test "tgamma (-0.5) == -2 sqrt (pi)":
-double: 1
-idouble: 1
-Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# Maximal error of functions:
-Function: "cos":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-Function: "erf":
-double: 1
-idouble: 1
-
-Function: "erfc":
-double: 1
-idouble: 1
-
-Function: "exp":
-double: 1
-idouble: 1
-
-Function: "expm1":
-double: 1
-idouble: 1
-
-Function: "hypot":
-float: 1
-ifloat: 1
-
-Function: "lgamma":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: "log":
-float: 1
-ifloat: 1
-
-Function: "log10":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "tan":
-double: 1
-idouble: 1
-
-Function: "tgamma":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# end of automatic generation
diff --git a/test/math/libm-test-ulps-powerpc b/test/math/libm-test-ulps-powerpc
deleted file mode 100644
index 8516e91..0000000
--- a/test/math/libm-test-ulps-powerpc
+++ /dev/null
@@ -1,1336 +0,0 @@
-# Begin of automatic generation
-
-# acos
-Test "acos (2e-17) == 1.57079632679489659923132169163975144":
-ildouble: 1
-ldouble: 1
-
-# asin
-Test "asin (0.75) == 0.848062078981481008052944338998418080":
-ildouble: 2
-ldouble: 2
-
-# atan2
-Test "atan2 (-0.00756827042671106339, -.001792735857538728036) ==
-1.80338464113663849327153994379639112":
-ildouble: 1
-ldouble: 1
-Test "atan2 (-0.75, -1.0) == -2.49809154479650885165983415456218025":
-float: 1
-ifloat: 1
-Test "atan2 (0.75, -1.0) == 2.49809154479650885165983415456218025":
-float: 1
-ifloat: 1
-Test "atan2 (1.390625, 0.9296875) == 0.981498387184244311516296577615519772":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# atanh
-Test "atanh (0.75) == 0.972955074527656652552676371721589865":
-float: 1
-ifloat: 1
-
-# cabs
-Test "cabs (0.75 + 1.25 i) == 1.45773797371132511771853821938639577":
-ildouble: 1
-ldouble: 1
-
-# cacosh
-Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 -
2.1414491111159960199416055713254211 i":
-double: 1
-float: 7
-idouble: 1
-ifloat: 7
-Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 -
2.1414491111159960199416055713254211 i":
-double: 1
-float: 3
-idouble: 1
-ifloat: 3
-
-# casin
-Test "Real part of: casin (-2 - 3 i) == -0.57065278432109940071028387968566963 -
1.9833870299165354323470769028940395 i":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749
+ 1.13239363160530819522266333696834467 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# casinh
-Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 -
0.96465850440760279204541105949953237 i":
-double: 5
-float: 1
-idouble: 5
-ifloat: 1
-ildouble: 4
-ldouble: 4
-Test "Imaginary part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982
- 0.96465850440760279204541105949953237 i":
-double: 3
-float: 6
-idouble: 3
-ifloat: 6
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594
+ 0.911738290968487636358489564316731207 i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casinh (0.75 + 1.25 i) ==
1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# catan
-Test "Real part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 -
0.22907268296853876629588180294200276 i":
-float: 3
-ifloat: 3
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 -
0.22907268296853876629588180294200276 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: catan (0.75 + 1.25 i) == 1.10714871779409050301706546017853704 +
0.549306144334054845697622618461262852 i":
-float: 4
-ifloat: 4
-
-# catanh
-Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 -
1.3389725222944935611241935759091443 i":
-double: 4
-idouble: 4
-Test "Imaginary part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595
- 1.3389725222944935611241935759091443 i":
-float: 4
-ifloat: 4
-Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140
+ 0.996825126463918666098902241310446708 i":
-double: 1
-idouble: 1
-Test "Imaginary part of: catanh (0.75 + 1.25 i) ==
0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
-float: 6
-ifloat: 6
-
-# cbrt
-Test "cbrt (-27.0) == -3.0":
-double: 1
-idouble: 1
-Test "cbrt (0.9921875) == 0.997389022060725270579075195353955217":
-double: 1
-idouble: 1
-
-# ccos
-Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 -
9.10922789375533659797919726277886212 i":
-float: 1
-ifloat: 1
-Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 -
1.09193013555397466170919531722024128 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: ccos (0.75 + 1.25 i) ==
1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
-float: 1
-ifloat: 1
-
-# ccosh
-Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 +
0.511822569987384608834463849801875634 i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253
+ 0.511822569987384608834463849801875634 i":
-float: 1
-ifloat: 1
-Test "Real part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084
+ 0.780365930845853240391326216300863152 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccosh (0.75 + 1.25 i) ==
0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-
-# cexp
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) ==
-0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
-float: 1
-ifloat: 1
-Test "Real part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 +
2.00900045494094876258347228145863909 i":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: cexp (0.75 + 1.25 i) ==
0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
-ildouble: 1
-ldouble: 1
-
-# clog
-Test "Imaginary part of: clog (-2 - 3 i) == 1.2824746787307683680267437207826593 -
2.1587989303424641704769327722648368 i":
-float: 3
-ifloat: 3
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 +
1.03037682652431246378774332703115153 i":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: clog (0.75 + 1.25 i) ==
0.376885901188190075998919126749298416 + 1.03037682652431246378774332703115153 i":
-ildouble: 1
-ldouble: 1
-
-# clog10
-Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214
- 0.937554462986374708541507952140189646 i":
-double: 1
-float: 5
-idouble: 1
-ifloat: 5
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (-inf + inf i) == inf + 3/4 pi*log10(e) i":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: clog10 (0.75 + 1.25 i) == 0.163679467193165171449476605077428975
+ 0.447486970040493067069984724340855636 i":
-float: 1
-ifloat: 1
-ildouble: 3
-ldouble: 3
-Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# cos
-Test "cos (M_PI_6l * 2.0) == 0.5":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "cos (M_PI_6l * 4.0) == -0.5":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "cos (pi/2) == 0":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "cos (16.0) == -0.9576594803233846418996372326511034717803"
-ildouble: 2
-ldouble: 2
-
-# cpow
-Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) ==
0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) ==
0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i) ==
0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
-double: 1
-float: 4
-idouble: 1
-ifloat: 4
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i) == 0.75 + 1.25 i":
-ildouble: 2
-ldouble: 2
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i) ==
0.0846958290317209430433805274189191353 + 0.513285749182902449043287190519090481 i":
-double: 2
-float: 3
-idouble: 2
-ifloat: 3
-Test "Real part of: cpow (2 + 0 i, 10 + 0 i) == 1024.0 + 0.0 i":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
-double: 1
-float: 5
-idouble: 1
-ifloat: 5
-Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
-float: 2
-ifloat: 2
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i) == 1.0 + 0.0 i":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-ildouble: 2
-ldouble: 2
-
-# csinh
-Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 -
0.530921086248519805267040090660676560 i":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028
+ 1.22863452409509552219214606515777594 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csinh (0.75 + 1.25 i) ==
0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# csqrt
-Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 +
1.6741492280355400404480393008490519 i":
-float: 1
-ifloat: 1
-Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 -
1.6741492280355400404480393008490519 i":
-float: 1
-ifloat: 1
-
-# ctan
-Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 -
1.00323862735360980144635859782192726 i":
-double: 1
-idouble: 1
-Test "Imaginary part of: ctan (-2 - 3 i) ==
0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726
i":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ctan (0.75 + 1.25 i) ==
0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
-double: 1
-idouble: 1
-
-# ctanh
-Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 +
0.988437503832249372031403430350121098e-2 i":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
-float: 1
-ifloat: 1
-Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 +
0.385795952609750664177596760720790220 i":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-# erf
-Test "erf (1.25) == 0.922900128256458230136523481197281140":
-double: 1
-idouble: 1
-
-# erfc
-Test "erfc (0.75) == 0.288844366346484868401062165408589223":
-float: 1
-ifloat: 1
-Test "erfc (2.0) == 0.00467773498104726583793074363274707139":
-double: 1
-idouble: 1
-Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
-double: 1
-idouble: 1
-
-# exp
-Test "exp (0.75) == 2.11700001661267466854536981983709561":
-ildouble: 1
-ldouble: 1
-Test "exp (50.0) == 5184705528587072464087.45332293348538":
-ildouble: 1
-ldouble: 1
-
-# exp10
-Test "exp10 (-1) == 0.1":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "exp10 (0.75) == 5.62341325190349080394951039776481231":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "exp10 (3) == 1000":
-double: 6
-float: 2
-idouble: 6
-ifloat: 2
-ildouble: 8
-ldouble: 8
-
-# exp2
-Test "exp2 (10) == 1024":
-ildouble: 2
-ldouble: 2
-
-# expm1
-Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
-double: 1
-idouble: 1
-Test "expm1 (1) == M_El - 1.0":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# hypot
-Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (0.75, 1.25) == 1.45773797371132511771853821938639577":
-ildouble: 1
-ldouble: 1
-Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-
-# j0
-Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "j0 (10.0) == -0.245935764451348335197760862485328754":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "j0 (2.0) == 0.223890779141235668051827454649948626":
-float: 2
-ifloat: 2
-Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "j0 (8.0) == 0.171650807137553906090869407851972001":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# j1
-Test "j1 (10.0) == 0.0434727461688614366697487680258592883":
-float: 2
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "j1 (2.0) == 0.576724807756873387202448242269137087":
-double: 1
-idouble: 1
-Test "j1 (8.0) == 0.234636346853914624381276651590454612":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-# jn
-Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "jn (0, 10.0) == -0.245935764451348335197760862485328754":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "jn (0, 2.0) == 0.223890779141235668051827454649948626":
-float: 2
-ifloat: 2
-Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "jn (0, 8.0) == 0.171650807137553906090869407851972001":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883":
-float: 2
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "jn (1, 2.0) == 0.576724807756873387202448242269137087":
-double: 1
-idouble: 1
-Test "jn (1, 8.0) == 0.234636346853914624381276651590454612":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "jn (10, -1.0) == 0.263061512368745320699785368779050294e-9":
-ildouble: 1
-ldouble: 1
-Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "jn (10, 1.0) == 0.263061512368745320699785368779050294e-9":
-ildouble: 1
-ldouble: 1
-Test "jn (10, 10.0) == 0.207486106633358857697278723518753428":
-float: 1
-ifloat: 1
-ildouble: 4
-ldouble: 4
-Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6":
-float: 4
-ifloat: 4
-Test "jn (3, -1.0) == -0.0195633539826684059189053216217515083":
-ildouble: 1
-ldouble: 1
-Test "jn (3, 0.125) == 0.406503832554912875023029337653442868e-4":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2":
-double: 1
-idouble: 1
-Test "jn (3, 1.0) == 0.0195633539826684059189053216217515083":
-ildouble: 1
-ldouble: 1
-Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-ildouble: 2
-ldouble: 2
-Test "jn (3, 2.0) == 0.128943249474402051098793332969239835":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 2
-ldouble: 2
-
-# lgamma
-Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 3
-ldouble: 3
-
-# log10
-Test "log10 (0.75) == -0.124938736608299953132449886193870744":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-Test "log10 (e) == log10(e)":
-float: 1
-ifloat: 1
-
-# log1p
-Test "log1p (-0.25) == -0.287682072451780927439219005993827432":
-float: 1
-ifloat: 1
-
-# log2
-Test "log2 (e) == M_LOG2El":
-ildouble: 1
-ldouble: 1
-
-# sin
-Test "sin (16.0) == -0.2879033166650652947844562482186175296207"
-ildouble: 2
-ldouble: 2
-
-# sincos
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts
0.86602540378443864676372317075293616 in sin_res":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "sincos (pi/6, &sin_res, &cos_res) puts
0.86602540378443864676372317075293616 in cos_res":
-float: 1
-ifloat: 1
-
-# sinh
-Test "sinh (0.75) == 0.822316731935829980703661634446913849":
-ildouble: 1
-ldouble: 1
-
-# tan
-Test "tan (pi/4) == 1":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-# tanh
-Test "tanh (-0.75) == -0.635148952387287319214434357312496495":
-ildouble: 1
-ldouble: 1
-Test "tanh (0.75) == 0.635148952387287319214434357312496495":
-ildouble: 1
-ldouble: 1
-
-# tgamma
-Test "tgamma (-0.5) == -2 sqrt (pi)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (0.5) == sqrt (pi)":
-float: 1
-ifloat: 1
-Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# y0
-Test "y0 (0.125) == -1.38968062514384052915582277745018693":
-ildouble: 1
-ldouble: 1
-Test "y0 (0.75) == -0.137172769385772397522814379396581855":
-ildouble: 1
-ldouble: 1
-Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "y0 (1.5) == 0.382448923797758843955068554978089862":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "y0 (2.0) == 0.510375672649745119596606592727157873":
-double: 1
-idouble: 1
-Test "y0 (8.0) == 0.223521489387566220527323400498620359":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# y1
-Test "y1 (0.125) == -5.19993611253477499595928744876579921":
-double: 1
-idouble: 1
-Test "y1 (1.5) == -0.412308626973911295952829820633445323":
-float: 1
-ifloat: 1
-Test "y1 (10.0) == 0.249015424206953883923283474663222803":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "y1 (2.0) == -0.107032431540937546888370772277476637":
-double: 1
-float: 1
-idouble: 2
-ifloat: 2
-Test "y1 (8.0) == -0.158060461731247494255555266187483550":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 2
-ldouble: 2
-
-# yn
-Test "yn (0, 0.125) == -1.38968062514384052915582277745018693":
-ildouble: 1
-ldouble: 1
-Test "yn (0, 0.75) == -0.137172769385772397522814379396581855":
-ildouble: 1
-ldouble: 1
-Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "yn (0, 1.5) == 0.382448923797758843955068554978089862":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "yn (0, 2.0) == 0.510375672649745119596606592727157873":
-double: 1
-idouble: 1
-Test "yn (0, 8.0) == 0.223521489387566220527323400498620359":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "yn (1, 0.125) == -5.19993611253477499595928744876579921":
-double: 1
-idouble: 1
-Test "yn (1, 1.5) == -0.412308626973911295952829820633445323":
-float: 2
-ifloat: 2
-Test "yn (1, 10.0) == 0.249015424206953883923283474663222803":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "yn (1, 2.0) == -0.107032431540937546888370772277476637":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "yn (1, 8.0) == -0.158060461731247494255555266187483550":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 2
-ldouble: 2
-Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
-double: 1
-idouble: 1
-Test "yn (10, 0.125) == -127057845771019398.252538486899753195":
-double: 1
-idouble: 1
-Test "yn (10, 0.75) == -2133501638.90573424452445412893839236":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-Test "yn (10, 1.0) == -121618014.278689189288130426667971145":
-float: 2
-ifloat: 2
-Test "yn (10, 10.0) == -0.359814152183402722051986577343560609":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-ildouble: 2
-ldouble: 2
-Test "yn (10, 2.0) == -129184.542208039282635913145923304214":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
-double: 1
-idouble: 1
-Test "yn (3, 0.75) == -12.9877176234475433186319774484809207":
-float: 1
-ifloat: 1
-Test "yn (3, 10.0) == -0.251362657183837329779204747654240998":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "yn (3, 2.0) == -1.12778377684042778608158395773179238":
-double: 1
-idouble: 1
-
-# Maximal error of functions:
-Function: "acos":
-ildouble: 1
-ldouble: 1
-
-Function: "acosh":
-ildouble: 1
-ldouble: 1
-
-Function: "asin":
-ildouble: 2
-ldouble: 2
-
-Function: "asinh":
-ildouble: 1
-ldouble: 1
-
-Function: "atan2":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "atanh":
-float: 1
-ifloat: 1
-
-Function: "cabs":
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "cacos":
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "cacos":
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "cacosh":
-double: 1
-float: 7
-idouble: 1
-ifloat: 7
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 3
-idouble: 1
-ifloat: 3
-
-Function: Real part of "casin":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "casin":
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "casinh":
-double: 5
-float: 1
-idouble: 5
-ifloat: 1
-ildouble: 4
-ldouble: 4
-
-Function: Imaginary part of "casinh":
-double: 3
-float: 6
-idouble: 3
-ifloat: 6
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "catan":
-float: 4
-ifloat: 4
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "catanh":
-double: 4
-idouble: 4
-
-Function: Imaginary part of "catanh":
-float: 6
-ifloat: 6
-
-Function: "cbrt":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "ccos":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "ccosh":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-
-Function: Real part of "cexp":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-
-Function: Imaginary part of "cexp":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "clog":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-
-Function: Imaginary part of "clog":
-float: 3
-ifloat: 3
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "clog10":
-float: 1
-ifloat: 1
-ildouble: 3
-ldouble: 3
-
-Function: Imaginary part of "clog10":
-double: 1
-float: 5
-idouble: 1
-ifloat: 5
-ildouble: 1
-ldouble: 1
-
-Function: "cos":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "cosh":
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "cpow":
-double: 2
-float: 5
-idouble: 2
-ifloat: 5
-ildouble: 2
-ldouble: 2
-
-Function: Imaginary part of "cpow":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-ildouble: 2
-ldouble: 2
-
-Function: Imaginary part of "cproj":
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "csin":
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "csinh":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "csqrt":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "csqrt":
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "ctan":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "ctan":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "ctanh":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "ctanh":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "erf":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-Function: "erfc":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "exp":
-ildouble: 1
-ldouble: 1
-
-Function: "exp10":
-double: 6
-float: 2
-idouble: 6
-ifloat: 2
-ildouble: 8
-ldouble: 8
-
-Function: "exp2":
-ildouble: 2
-ldouble: 2
-
-Function: "expm1":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "gamma":
-ildouble: 1
-ldouble: 1
-
-Function: "hypot":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "j0":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: "j1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: "jn":
-double: 3
-float: 4
-idouble: 3
-ifloat: 4
-ildouble: 4
-ldouble: 4
-
-Function: "lgamma":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 3
-ldouble: 3
-
-Function: "log":
-ildouble: 1
-ldouble: 1
-
-Function: "log10":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: "log1p":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "log2":
-ildouble: 1
-ldouble: 1
-
-Function: "pow":
-ildouble: 1
-ldouble: 1
-
-Function: "sin":
-ildouble: 1
-ldouble: 1
-
-Function: "sincos":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "sinh":
-ildouble: 1
-ldouble: 1
-
-Function: "tan":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-Function: "tanh":
-ildouble: 1
-ldouble: 1
-
-Function: "tgamma":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "y0":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "y1":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-ildouble: 2
-ldouble: 2
-
-Function: "yn":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-ildouble: 2
-ldouble: 2
-
-# end of automatic generation
diff --git a/test/math/libm-test-ulps-sh b/test/math/libm-test-ulps-sh
deleted file mode 100644
index 4831f48..0000000
--- a/test/math/libm-test-ulps-sh
+++ /dev/null
@@ -1,1094 +0,0 @@
-# Begin of automatic generation
-
-# asin
-Test "asin (-0.5) == -pi/6":
-float: 2
-ifloat: 2
-Test "asin (0.5) == pi/6":
-float: 2
-ifloat: 2
-Test "asin (0.7) == 0.7753974966107530637":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-# atan2
-Test "atan2 (0.7, -1.0) == 2.530866689200584621918884506789267":
-float: 3
-ifloat: 3
-Test "atan2 (-0.7, -1.0) == -2.530866689200584621918884506789267":
-float: 3
-ifloat: 3
-Test "atan2 (1.4, -0.93) == 2.1571487668237843754887415992772736":
-float: 4
-ifloat: 4
-
-# atanh
-Test "atanh (0.7) == 0.8673005276940531944":
-double: 1
-idouble: 1
-
-# cabs
-Test "cabs (-0.7 + 12.4 i) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "cabs (-0.7 - 12.4 i) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "cabs (-12.4 + 0.7 i) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "cabs (-12.4 - 0.7 i) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508432547041028554":
-double: 1
-idouble: 1
-Test "cabs (0.7 + 12.4 i) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-
-# cacos
-Test "Real part of: cacos (0.7 + 1.2 i) == 1.1351827477151551088992008271819053 -
1.0927647857577371459105272080819308 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: cacos (0.7 + 1.2 i) == 1.1351827477151551088992008271819053
- 1.0927647857577371459105272080819308 i":
-float: 1
-ifloat: 1
-
-# cacosh
-Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 -
2.1414491111159960199416055713254211 i":
-double: 1
-float: 7
-idouble: 1
-ifloat: 7
-Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 -
2.1414491111159960199416055713254211 i":
-double: 1
-float: 3
-idouble: 1
-ifloat: 3
-Test "Real part of: cacosh (0.7 + 1.2 i) == 1.0927647857577371459105272080819308 +
1.1351827477151551088992008271819053 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# casin
-Test "Real part of: casin (0.7 + 1.2 i) == 0.4356135790797415103321208644578462 +
1.0927647857577371459105272080819308 i":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-Test "Imaginary part of: casin (0.7 + 1.2 i) == 0.4356135790797415103321208644578462
+ 1.0927647857577371459105272080819308 i":
-float: 1
-ifloat: 1
-
-# casinh
-Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 -
0.96465850440760279204541105949953237 i":
-double: 5
-float: 1
-idouble: 5
-ifloat: 1
-Test "Imaginary part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982
- 0.96465850440760279204541105949953237 i":
-double: 3
-float: 6
-idouble: 3
-ifloat: 6
-Test "Real part of: casinh (0.7 + 1.2 i) == 0.97865459559367387689317593222160964 +
0.91135418953156011567903546856170941 i":
-double: 1
-idouble: 1
-Test "Imaginary part of: casinh (0.7 + 1.2 i) ==
0.97865459559367387689317593222160964 + 0.91135418953156011567903546856170941 i":
-float: 1
-ifloat: 1
-
-# catan
-Test "Real part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 -
0.22907268296853876629588180294200276 i":
-float: 3
-ifloat: 3
-Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 -
0.22907268296853876629588180294200276 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: catan (0.7 + 1.2 i) == 1.0785743834118921877443707996386368 +
0.57705737765343067644394541889341712 i":
-float: 4
-ifloat: 4
-Test "Imaginary part of: catan (0.7 + 1.2 i) == 1.0785743834118921877443707996386368
+ 0.57705737765343067644394541889341712 i":
-double: 1
-idouble: 1
-
-# catanh
-Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 -
1.3389725222944935611241935759091443 i":
-double: 4
-idouble: 4
-Test "Imaginary part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595
- 1.3389725222944935611241935759091443 i":
-float: 4
-ifloat: 4
-Test "Real part of: catanh (0.7 + 1.2 i) == 0.2600749516525135959200648705635915 +
0.97024030779509898497385130162655963 i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catanh (0.7 + 1.2 i) ==
0.2600749516525135959200648705635915 + 0.97024030779509898497385130162655963 i":
-double: 1
-float: 6
-idouble: 1
-ifloat: 6
-
-# cbrt
-Test "cbrt (-27.0) == -3.0":
-double: 1
-idouble: 1
-Test "cbrt (0.970299) == 0.99":
-double: 1
-idouble: 1
-
-# ccos
-Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 -
9.10922789375533659797919726277886212 i":
-float: 1
-ifloat: 1
-Test "Real part of: ccos (0.7 + 1.2 i) == 1.3848657645312111080 -
0.97242170335830028619 i":
-double: 1
-idouble: 1
-Test "Imaginary part of: ccos (0.7 + 1.2 i) == 1.3848657645312111080 -
0.97242170335830028619 i":
-double: 1
-idouble: 1
-
-# ccosh
-Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 +
0.511822569987384608834463849801875634 i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253
+ 0.511822569987384608834463849801875634 i":
-float: 1
-ifloat: 1
-Test "Real part of: ccosh (0.7 + 1.2 i) == 0.4548202223691477654 +
0.7070296600921537682 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: ccosh (0.7 + 1.2 i) == 0.4548202223691477654 +
0.7070296600921537682 i":
-double: 1
-idouble: 1
-
-# cexp
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) ==
-0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
-float: 1
-ifloat: 1
-Test "Real part of: cexp (0.7 + 1.2 i) == 0.7296989091503236012 +
1.8768962328348102821 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: cexp (0.7 + 1.2 i) == 0.7296989091503236012 +
1.8768962328348102821 i":
-float: 1
-ifloat: 1
-
-# clog
-Test "Imaginary part of: clog (-2 - 3 i) == 1.2824746787307683680267437207826593 -
2.1587989303424641704769327722648368 i":
-double: 1
-float: 3
-idouble: 1
-ifloat: 3
-
-# clog10
-Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214
- 0.937554462986374708541507952140189646 i":
-double: 1
-float: 5
-idouble: 1
-ifloat: 5
-Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
-float: 1
-ifloat: 1
-Test "Real part of: clog10 (0.7 + 1.2 i) == 0.1427786545038868803 +
0.4528483579352493248 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0.7 + 1.2 i) == 0.1427786545038868803 +
0.4528483579352493248 i":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
-float: 1
-ifloat: 1
-
-# cos
-Test "cos (0.7) == 0.7648421872844884262":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "cos (M_PI_6l * 2.0) == 0.5":
-double: 1
-float: 0.5
-idouble: 1
-ifloat: 0.5
-Test "cos (M_PI_6l * 4.0) == -0.5":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "cos (pi/2) == 0":
-double: 0.2758
-float: 0.3667
-idouble: 0.2758
-ifloat: 0.3667
-
-# cpow
-Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
-double: 1
-float: 4
-idouble: 1
-ifloat: 4
-Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
-float: 2
-ifloat: 2
-Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i) == 1.0 + 0.0 i":
-double: 1.1031
-float: 1.5
-idouble: 1.1031
-ifloat: 1.5
-
-# csin
-Test "Imaginary part of: csin (0.7 + 1.2 i) == 1.1664563419657581376 +
1.1544997246948547371 i":
-float: 1
-ifloat: 1
-
-# csinh
-Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 -
0.530921086248519805267040090660676560 i":
-double: 1
-idouble: 1
-Test "Real part of: csinh (0.7 + 1.2 i) == 0.27487868678117583582 +
1.1698665727426565139 i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: csinh (0.7 + 1.2 i) == 0.27487868678117583582 +
1.1698665727426565139 i":
-float: 1
-ifloat: 1
-
-# csqrt
-Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 +
1.6741492280355400404480393008490519 i":
-float: 1
-ifloat: 1
-Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 -
1.6741492280355400404480393008490519 i":
-float: 1
-ifloat: 1
-Test "Real part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 +
0.58704531296356521154977678719838035 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139
+ 0.58704531296356521154977678719838035 i":
-float: 1
-ifloat: 1
-
-# ctan
-Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 -
1.00323862735360980144635859782192726 i":
-double: 1
-idouble: 1
-Test "Real part of: ctan (0.7 + 1.2 i) == 0.1720734197630349001 +
0.9544807059989405538 i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: ctan (0.7 + 1.2 i) == 0.1720734197630349001 +
0.9544807059989405538 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# ctanh
-Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 +
0.988437503832249372031403430350121098e-2 i":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
-float: 1
-ifloat: 1
-Test "Real part of: ctanh (0.7 + 1.2 i) == 1.3472197399061191630 +
0.4778641038326365540 i":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "Imaginary part of: ctanh (0.7 + 1.2 i) == 1.3472197399061191630 +
0.4778641038326365540 i":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-# erfc
-Test "erfc (0.7) == 0.32219880616258152702":
-double: 1
-idouble: 1
-Test "erfc (1.2) == 0.089686021770364619762":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-Test "erfc (2.0) == 0.0046777349810472658379":
-double: 1
-idouble: 1
-Test "erfc (4.1) == 0.67000276540848983727e-8":
-double: 24
-float: 12
-idouble: 24
-ifloat: 12
-
-# exp10
-Test "exp10 (-1) == 0.1":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "exp10 (0.7) == 5.0118723362727228500":
-float: 1
-ifloat: 1
-Test "exp10 (3) == 1000":
-double: 6
-float: 2
-idouble: 6
-ifloat: 2
-
-# expm1
-Test "expm1 (1) == M_El - 1.0":
-float: 1
-ifloat: 1
-
-# fmod
-Test "fmod (-6.5, -2.3) == -1.9":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "fmod (-6.5, 2.3) == -1.9":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "fmod (6.5, -2.3) == 1.9":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "fmod (6.5, 2.3) == 1.9":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-# hypot
-Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (0.7, 1.2) == 1.3892443989449804508432547041028554":
-double: 1
-idouble: 1
-Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-
-# j0
-Test "j0 (10.0) == -0.24593576445134833520":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "j0 (2.0) == 0.22389077914123566805":
-float: 2
-ifloat: 2
-Test "j0 (8.0) == 0.17165080713755390609":
-float: 1
-ifloat: 1
-
-# j1
-Test "j1 (10.0) == 0.043472746168861436670":
-float: 2
-ifloat: 2
-Test "j1 (2.0) == 0.57672480775687338720":
-double: 1
-idouble: 1
-Test "j1 (8.0) == 0.23463634685391462438":
-double: 1
-idouble: 1
-
-# jn
-Test "jn (0, 10.0) == -0.24593576445134833520":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "jn (0, 2.0) == 0.22389077914123566805":
-float: 2
-ifloat: 2
-Test "jn (0, 8.0) == 0.17165080713755390609":
-float: 1
-ifloat: 1
-Test "jn (1, 10.0) == 0.043472746168861436670":
-float: 2
-ifloat: 2
-Test "jn (1, 2.0) == 0.57672480775687338720":
-double: 1
-idouble: 1
-Test "jn (1, 8.0) == 0.23463634685391462438":
-double: 1
-idouble: 1
-Test "jn (10, 0.1) == 0.26905328954342155795e-19":
-double: 6
-float: 4
-idouble: 6
-ifloat: 4
-Test "jn (10, 0.7) == 0.75175911502153953928e-11":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-Test "jn (10, 10.0) == 0.20748610663335885770":
-double: 4
-float: 3
-idouble: 4
-ifloat: 3
-Test "jn (10, 2.0) == 0.25153862827167367096e-6":
-float: 4
-ifloat: 4
-Test "jn (3, 0.1) == 0.000020820315754756261429":
-double: 1
-idouble: 1
-Test "jn (3, 0.7) == 0.0069296548267508408077":
-float: 1
-ifloat: 1
-Test "jn (3, 10.0) == 0.058379379305186812343":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-Test "jn (3, 2.0) == 0.12894324947440205110":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-# lgamma
-Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-# log
-Test "log (0.7) == -0.35667494393873237891263871124118447":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# log10
-Test "log10 (0.7) == -0.15490195998574316929":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "log10 (e) == log10(e)":
-float: 1
-ifloat: 1
-
-# log1p
-Test "log1p (-0.3) == -0.35667494393873237891263871124118447":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# log2
-Test "log2 (0.7) == -0.51457317282975824043":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# sincos
-Test "sincos (0.7, &sin_res, &cos_res) puts 0.76484218728448842626 in
cos_res":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
-double: 1
-float: 0.5
-idouble: 1
-ifloat: 0.5
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.866025403784438646764
in sin_res":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res":
-double: 0.2758
-float: 0.3667
-idouble: 0.2758
-ifloat: 0.3667
-Test "sincos (pi/6, &sin_res, &cos_res) puts 0.866025403784438646764 in
cos_res":
-float: 1
-ifloat: 1
-
-# sinh
-Test "sinh (0.7) == 0.75858370183953350346":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# tan
-Test "tan (pi/4) == 1":
-double: 0.5
-idouble: 0.5
-
-# tanh
-Test "tanh (0.7) == 0.60436777711716349631":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# tgamma
-Test "tgamma (-0.5) == -2 sqrt (pi)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (0.5) == sqrt (pi)":
-float: 1
-ifloat: 1
-Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# y0
-Test "y0 (0.7) == -0.19066492933739506743":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "y0 (1.0) == 0.088256964215676957983":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "y0 (1.5) == 0.38244892379775884396":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "y0 (10.0) == 0.055671167283599391424":
-float: 1
-ifloat: 1
-Test "y0 (8.0) == 0.22352148938756622053":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# y1
-Test "y1 (0.1) == -6.4589510947020269877":
-double: 1
-idouble: 1
-Test "y1 (0.7) == -1.1032498719076333697":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "y1 (1.5) == -0.41230862697391129595":
-float: 1
-ifloat: 1
-Test "y1 (10.0) == 0.24901542420695388392":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-Test "y1 (2.0) == -0.10703243154093754689":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "y1 (8.0) == -0.15806046173124749426":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-# yn
-Test "yn (0, 0.7) == -0.19066492933739506743":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "yn (0, 1.0) == 0.088256964215676957983":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "yn (0, 1.5) == 0.38244892379775884396":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "yn (0, 10.0) == 0.055671167283599391424":
-float: 1
-ifloat: 1
-Test "yn (0, 8.0) == 0.22352148938756622053":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "yn (1, 0.1) == -6.4589510947020269877":
-double: 1
-idouble: 1
-Test "yn (1, 0.7) == -1.1032498719076333697":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "yn (1, 1.5) == -0.41230862697391129595":
-float: 1
-ifloat: 1
-Test "yn (1, 10.0) == 0.24901542420695388392":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-Test "yn (1, 2.0) == -0.10703243154093754689":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "yn (1, 8.0) == -0.15806046173124749426":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-Test "yn (10, 0.1) == -0.11831335132045197885e19":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-Test "yn (10, 0.7) == -0.42447194260703866924e10":
-double: 3
-idouble: 3
-Test "yn (10, 1.0) == -0.12161801427868918929e9":
-double: 1
-idouble: 1
-Test "yn (10, 10.0) == -0.35981415218340272205":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "yn (10, 2.0) == -129184.54220803928264":
-double: 2
-idouble: 2
-Test "yn (3, 0.1) == -5099.3323786129048894":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "yn (3, 0.7) == -15.819479052819633505":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-Test "yn (3, 10.0) == -0.25136265718383732978":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "yn (3, 2.0) == -1.1277837768404277861":
-double: 1
-idouble: 1
-
-# Maximal error of functions:
-Function: "asin":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: "atan2":
-float: 4
-ifloat: 4
-
-Function: "atanh":
-double: 1
-idouble: 1
-
-Function: "cabs":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "cacos":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "cacos":
-float: 1
-ifloat: 1
-
-Function: Real part of "cacosh":
-double: 1
-float: 7
-idouble: 1
-ifloat: 7
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 3
-idouble: 1
-ifloat: 3
-
-Function: Real part of "casin":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-
-Function: Imaginary part of "casin":
-float: 1
-ifloat: 1
-
-Function: Real part of "casinh":
-double: 5
-float: 1
-idouble: 5
-ifloat: 1
-
-Function: Imaginary part of "casinh":
-double: 3
-float: 6
-idouble: 3
-ifloat: 6
-
-Function: Real part of "catan":
-float: 4
-ifloat: 4
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "catanh":
-double: 4
-float: 1
-idouble: 4
-ifloat: 1
-
-Function: Imaginary part of "catanh":
-double: 1
-float: 6
-idouble: 1
-ifloat: 6
-
-Function: "cbrt":
-double: 1
-idouble: 1
-
-Function: Real part of "ccos":
-double: 1
-idouble: 1
-
-Function: Imaginary part of "ccos":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "cexp":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "cexp":
-float: 1
-ifloat: 1
-
-Function: Imaginary part of "clog":
-double: 1
-float: 3
-idouble: 1
-ifloat: 3
-
-Function: Real part of "clog10":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "clog10":
-double: 1
-float: 5
-idouble: 1
-ifloat: 5
-
-Function: "cos":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-Function: Real part of "cpow":
-double: 1
-float: 4
-idouble: 1
-ifloat: 4
-
-Function: Imaginary part of "cpow":
-double: 1.1031
-float: 2
-idouble: 1.1031
-ifloat: 2
-
-Function: Imaginary part of "csin":
-float: 1
-ifloat: 1
-
-Function: Real part of "csinh":
-float: 1
-ifloat: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "csqrt":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "csqrt":
-float: 1
-ifloat: 1
-
-Function: Real part of "ctan":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "ctan":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "ctanh":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-
-Function: Imaginary part of "ctanh":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-Function: "erfc":
-double: 24
-float: 12
-idouble: 24
-ifloat: 12
-
-Function: "exp10":
-double: 6
-float: 2
-idouble: 6
-ifloat: 2
-
-Function: "expm1":
-float: 1
-ifloat: 1
-
-Function: "fmod":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-Function: "hypot":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "j0":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-
-Function: "j1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: "jn":
-double: 6
-float: 4
-idouble: 6
-ifloat: 4
-
-Function: "lgamma":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: "log":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "log10":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "log1p":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "log2":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "sincos":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "sinh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "tan":
-double: 0.5
-idouble: 0.5
-
-Function: "tanh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "tgamma":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "y0":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-Function: "y1":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-
-Function: "yn":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-
-# end of automatic generation
diff --git a/test/math/libm-test-ulps-sparc b/test/math/libm-test-ulps-sparc
deleted file mode 100644
index 6a447a1..0000000
--- a/test/math/libm-test-ulps-sparc
+++ /dev/null
@@ -1,1338 +0,0 @@
-# Begin of automatic generation
-
-# atan2
-Test "atan2 (-0.00756827042671106339, -.001792735857538728036) ==
-1.80338464113663849327153994379639112":
-float: 6
-ifloat: 6
-ildouble: 1
-ldouble: 1
-Test "atan2 (-0.75, -1.0) == -2.49809154479650885165983415456218025":
-float: 3
-ifloat: 3
-ildouble: 1
-ldouble: 1
-Test "atan2 (0.75, -1.0) == 2.49809154479650885165983415456218025":
-float: 3
-ifloat: 3
-ildouble: 1
-ldouble: 1
-Test "atan2 (1.390625, 0.9296875) == 0.981498387184244311516296577615519772":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# atanh
-Test "atanh (0.75) == 0.972955074527656652552676371721589865":
-float: 1
-ifloat: 1
-
-# cacos
-Test "Imaginary part of: cacos (0.75 + 1.25 i) ==
1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
-ildouble: 1
-ldouble: 1
-
-# cacosh
-Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 -
2.1414491111159960199416055713254211 i":
-double: 1
-float: 7
-idouble: 1
-ifloat: 7
-ildouble: 5
-ldouble: 5
-Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 -
2.1414491111159960199416055713254211 i":
-double: 1
-float: 3
-idouble: 1
-ifloat: 3
-ildouble: 1
-ldouble: 1
-
-# casin
-Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749
+ 1.13239363160530819522266333696834467 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: casin (0.75 + 1.25 i) ==
0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
-ildouble: 1
-ldouble: 1
-
-# casinh
-Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 -
0.96465850440760279204541105949953237 i":
-double: 5
-float: 1
-idouble: 5
-ifloat: 1
-ildouble: 4
-ldouble: 4
-Test "Imaginary part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982
- 0.96465850440760279204541105949953237 i":
-double: 3
-float: 6
-idouble: 3
-ifloat: 6
-ildouble: 2
-ldouble: 2
-Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594
+ 0.911738290968487636358489564316731207 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0.75 + 1.25 i) ==
1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# catan
-Test "Real part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 -
0.22907268296853876629588180294200276 i":
-float: 3
-ifloat: 3
-Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 -
0.22907268296853876629588180294200276 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: catan (0.75 + 1.25 i) == 1.10714871779409050301706546017853704 +
0.549306144334054845697622618461262852 i":
-float: 4
-ifloat: 4
-Test "Imaginary part of: catan (0.75 + 1.25 i) ==
1.10714871779409050301706546017853704 + 0.549306144334054845697622618461262852 i":
-ildouble: 1
-ldouble: 1
-
-# catanh
-Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 -
1.3389725222944935611241935759091443 i":
-double: 4
-idouble: 4
-Test "Imaginary part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595
- 1.3389725222944935611241935759091443 i":
-float: 4
-ifloat: 4
-Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140
+ 0.996825126463918666098902241310446708 i":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catanh (0.75 + 1.25 i) ==
0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
-float: 6
-ifloat: 6
-ildouble: 1
-ldouble: 1
-
-# cbrt
-Test "cbrt (-0.001) == -0.1":
-ildouble: 1
-ldouble: 1
-Test "cbrt (-27.0) == -3.0":
-double: 1
-idouble: 1
-Test "cbrt (0.75) == 0.908560296416069829445605878163630251":
-double: 1
-idouble: 1
-Test "cbrt (0.9921875) == 0.997389022060725270579075195353955217":
-double: 1
-idouble: 1
-
-# ccos
-Test "Real part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 -
9.10922789375533659797919726277886212 i":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 -
9.10922789375533659797919726277886212 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 -
1.09193013555397466170919531722024128 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: ccos (0.75 + 1.25 i) ==
1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
-float: 1
-ifloat: 1
-
-# ccosh
-Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 +
0.511822569987384608834463849801875634 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253
+ 0.511822569987384608834463849801875634 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084
+ 0.780365930845853240391326216300863152 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: ccosh (0.75 + 1.25 i) ==
0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
-float: 1
-ifloat: 1
-
-# cexp
-Test "Real part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 -
0.019098516261135196432576240858800925 i":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) ==
-0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 +
2.00900045494094876258347228145863909 i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cexp (0.75 + 1.25 i) ==
0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
-ildouble: 1
-ldouble: 1
-
-# clog
-Test "Imaginary part of: clog (-2 - 3 i) == 1.2824746787307683680267437207826593 -
2.1587989303424641704769327722648368 i":
-float: 3
-ifloat: 3
-Test "Real part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 +
1.03037682652431246378774332703115153 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# clog10
-Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 -
0.937554462986374708541507952140189646 i":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214
- 0.937554462986374708541507952140189646 i":
-double: 1
-float: 5
-idouble: 1
-ifloat: 5
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf + inf i) == inf + 3/4 pi*log10(e) i":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: clog10 (0.75 + 1.25 i) == 0.163679467193165171449476605077428975
+ 0.447486970040493067069984724340855636 i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0.75 + 1.25 i) ==
0.163679467193165171449476605077428975 + 0.447486970040493067069984724340855636 i":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# cos
-Test "cos (M_PI_6l * 2.0) == 0.5":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "cos (M_PI_6l * 4.0) == -0.5":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "cos (pi/2) == 0":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# cpow
-Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) ==
0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) ==
0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
-float: 1
-ifloat: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i) ==
0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
-double: 1
-float: 4
-idouble: 1
-ifloat: 4
-ildouble: 4
-ldouble: 4
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i) == 0.75 + 1.25 i":
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i) == 0.75 + 1.25 i":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i) ==
0.0846958290317209430433805274189191353 + 0.513285749182902449043287190519090481 i":
-double: 2
-float: 3
-idouble: 2
-ifloat: 3
-ildouble: 1
-ldouble: 1
-Test "Real part of: cpow (2 + 0 i, 10 + 0 i) == 1024.0 + 0.0 i":
-ildouble: 2
-ldouble: 2
-Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
-double: 1
-float: 4
-idouble: 1
-ifloat: 4
-ildouble: 3
-ldouble: 3
-Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
-float: 2
-ifloat: 2
-Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i) == 1.0 + 0.0 i":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-# csin
-Test "Imaginary part of: csin (-2 - 3 i) == -9.15449914691142957346729954460983256 +
4.16890695996656435075481305885375484 i":
-ildouble: 1
-ldouble: 1
-Test "Real part of: csin (0.75 + 1.25 i) == 1.28722291002649188575873510790565441 +
1.17210635989270256101081285116138863 i":
-ildouble: 1
-ldouble: 1
-
-# csinh
-Test "Real part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 -
0.530921086248519805267040090660676560 i":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 -
0.530921086248519805267040090660676560 i":
-double: 1
-idouble: 1
-Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028
+ 1.22863452409509552219214606515777594 i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: csinh (0.75 + 1.25 i) ==
0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
-float: 1
-ifloat: 1
-
-# csqrt
-Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 +
1.6741492280355400404480393008490519 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 -
1.6741492280355400404480393008490519 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csqrt (0.75 + 1.25 i) ==
1.05065169626078392338656675760808326 + 0.594868882070379067881984030639932657 i":
-ildouble: 1
-ldouble: 1
-
-# ctan
-Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 -
1.00323862735360980144635859782192726 i":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ctan (-2 - 3 i) ==
0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726
i":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ctan (0.75 + 1.25 i) ==
0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
-double: 1
-idouble: 1
-ildouble: 2
-ldouble: 2
-
-# ctanh
-Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 +
0.988437503832249372031403430350121098e-2 i":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686
+ 0.988437503832249372031403430350121098e-2 i":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
-float: 1
-ifloat: 1
-Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 +
0.385795952609750664177596760720790220 i":
-double: 1
-idouble: 1
-
-# erf
-Test "erf (0.75) == 0.711155633653515131598937834591410777":
-double: 1
-idouble: 1
-Test "erf (1.25) == 0.922900128256458230136523481197281140":
-double: 1
-idouble: 1
-
-# erfc
-Test "erfc (2.0) == 0.00467773498104726583793074363274707139":
-double: 1
-idouble: 1
-Test "erfc (27.0) == 0.523704892378925568501606768284954709e-318":
-ildouble: 1
-ldouble: 1
-Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
-double: 1
-idouble: 1
-
-# exp
-Test "exp (1) == e":
-double: 1
-idouble: 1
-
-# exp10
-Test "exp10 (-1) == 0.1":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "exp10 (0.75) == 5.62341325190349080394951039776481231":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "exp10 (3) == 1000":
-double: 6
-float: 2
-idouble: 6
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-# exp2
-Test "exp2 (10) == 1024":
-ildouble: 2
-ldouble: 2
-
-# expm1
-Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
-double: 1
-idouble: 1
-Test "expm1 (1) == M_El - 1.0":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# gamma
-Test "gamma (-0.5) == log(2*sqrt(pi))":
-ildouble: 1
-ldouble: 1
-
-# hypot
-Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-
-# j0
-Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "j0 (0.75) == 0.864242275166648623555731103820923211":
-float: 1
-ifloat: 1
-Test "j0 (10.0) == -0.245935764451348335197760862485328754":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "j0 (2.0) == 0.223890779141235668051827454649948626":
-float: 2
-ifloat: 2
-ildouble: 2
-ldouble: 2
-Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "j0 (8.0) == 0.171650807137553906090869407851972001":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# j1
-Test "j1 (-1.0) == -0.440050585744933515959682203718914913":
-ildouble: 1
-ldouble: 1
-Test "j1 (0.75) == 0.349243602174862192523281016426251335":
-ildouble: 1
-ldouble: 1
-Test "j1 (1.0) == 0.440050585744933515959682203718914913":
-ildouble: 1
-ldouble: 1
-Test "j1 (10.0) == 0.0434727461688614366697487680258592883":
-float: 2
-ifloat: 2
-ildouble: 2
-ldouble: 2
-Test "j1 (2.0) == 0.576724807756873387202448242269137087":
-double: 1
-idouble: 1
-Test "j1 (8.0) == 0.234636346853914624381276651590454612":
-double: 1
-idouble: 1
-ildouble: 4
-ldouble: 4
-
-# jn
-Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "jn (0, 0.75) == 0.864242275166648623555731103820923211":
-float: 1
-ifloat: 1
-Test "jn (0, 10.0) == -0.245935764451348335197760862485328754":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "jn (0, 2.0) == 0.223890779141235668051827454649948626":
-float: 2
-ifloat: 2
-ildouble: 2
-ldouble: 2
-Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "jn (0, 8.0) == 0.171650807137553906090869407851972001":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "jn (1, -1.0) == -0.440050585744933515959682203718914913":
-ildouble: 1
-ldouble: 1
-Test "jn (1, 0.75) == 0.349243602174862192523281016426251335":
-ildouble: 1
-ldouble: 1
-Test "jn (1, 1.0) == 0.440050585744933515959682203718914913":
-ildouble: 1
-ldouble: 1
-Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883":
-float: 2
-ifloat: 2
-ildouble: 2
-ldouble: 2
-Test "jn (1, 2.0) == 0.576724807756873387202448242269137087":
-double: 1
-idouble: 1
-Test "jn (1, 8.0) == 0.234636346853914624381276651590454612":
-double: 1
-idouble: 1
-ildouble: 4
-ldouble: 4
-Test "jn (10, -1.0) == 0.263061512368745320699785368779050294e-9":
-ildouble: 1
-ldouble: 1
-Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "jn (10, 1.0) == 0.263061512368745320699785368779050294e-9":
-ildouble: 1
-ldouble: 1
-Test "jn (10, 10.0) == 0.207486106633358857697278723518753428":
-double: 4
-float: 3
-idouble: 4
-ifloat: 3
-ildouble: 2
-ldouble: 2
-Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6":
-float: 4
-ifloat: 4
-Test "jn (3, 0.125) == 0.406503832554912875023029337653442868e-4":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "jn (3, 2.0) == 0.128943249474402051098793332969239835":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-# lgamma
-Test "lgamma (-0.5) == log(2*sqrt(pi))":
-ildouble: 1
-ldouble: 1
-Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-# log10
-Test "log10 (0.75) == -0.124938736608299953132449886193870744":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-Test "log10 (e) == log10(e)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# log1p
-Test "log1p (-0.25) == -0.287682072451780927439219005993827432":
-float: 1
-ifloat: 1
-Test "log1p (M_El - 1.0) == 1":
-ildouble: 1
-ldouble: 1
-
-# log2
-Test "log2 (0.75) == -.415037499278843818546261056052183492":
-ildouble: 1
-ldouble: 1
-
-# sincos
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts
0.86602540378443864676372317075293616 in sin_res":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "sincos (pi/6, &sin_res, &cos_res) puts
0.86602540378443864676372317075293616 in cos_res":
-float: 1
-ifloat: 1
-
-# sqrt
-Test "sqrt (2) == M_SQRT2l":
-ildouble: 1
-ldouble: 1
-
-# tan
-Test "tan (pi/4) == 1":
-double: 1
-idouble: 1
-
-# tanh
-Test "tanh (-0.75) == -0.635148952387287319214434357312496495":
-ildouble: 1
-ldouble: 1
-Test "tanh (-1.0) == -0.7615941559557648881194582826047935904":
-ildouble: 1
-ldouble: 1
-Test "tanh (0.75) == 0.635148952387287319214434357312496495":
-ildouble: 1
-ldouble: 1
-Test "tanh (1.0) == 0.7615941559557648881194582826047935904":
-ildouble: 1
-ldouble: 1
-
-# tgamma
-Test "tgamma (-0.5) == -2 sqrt (pi)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "tgamma (0.5) == sqrt (pi)":
-float: 1
-ifloat: 1
-Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (4) == 6":
-ildouble: 1
-ldouble: 1
-
-# y0
-Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "y0 (1.5) == 0.382448923797758843955068554978089862":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
-float: 1
-ifloat: 1
-ildouble: 3
-ldouble: 3
-Test "y0 (8.0) == 0.223521489387566220527323400498620359":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 3
-ldouble: 3
-
-# y1
-Test "y1 (0.125) == -5.19993611253477499595928744876579921":
-double: 1
-idouble: 1
-Test "y1 (0.75) == -1.03759455076928541973767132140642198":
-ildouble: 1
-ldouble: 1
-Test "y1 (1.5) == -0.412308626973911295952829820633445323":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "y1 (10.0) == 0.249015424206953883923283474663222803":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-Test "y1 (2.0) == -0.107032431540937546888370772277476637":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "y1 (8.0) == -0.158060461731247494255555266187483550":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-# yn
-Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "yn (0, 1.5) == 0.382448923797758843955068554978089862":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481":
-float: 1
-ifloat: 1
-ildouble: 3
-ldouble: 3
-Test "yn (0, 8.0) == 0.223521489387566220527323400498620359":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 3
-ldouble: 3
-Test "yn (1, 0.125) == -5.19993611253477499595928744876579921":
-double: 1
-idouble: 1
-Test "yn (1, 0.75) == -1.03759455076928541973767132140642198":
-ildouble: 1
-ldouble: 1
-Test "yn (1, 1.5) == -0.412308626973911295952829820633445323":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "yn (1, 10.0) == 0.249015424206953883923283474663222803":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-Test "yn (1, 2.0) == -0.107032431540937546888370772277476637":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "yn (1, 8.0) == -0.158060461731247494255555266187483550":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "yn (10, 0.125) == -127057845771019398.252538486899753195":
-double: 1
-idouble: 1
-ildouble: 2
-ldouble: 2
-Test "yn (10, 0.75) == -2133501638.90573424452445412893839236":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 5
-ldouble: 5
-Test "yn (10, 1.0) == -121618014.278689189288130426667971145":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "yn (10, 10.0) == -0.359814152183402722051986577343560609":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "yn (10, 2.0) == -129184.542208039282635913145923304214":
-double: 2
-idouble: 2
-ildouble: 2
-ldouble: 2
-Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
-double: 1
-idouble: 1
-Test "yn (3, 0.75) == -12.9877176234475433186319774484809207":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "yn (3, 10.0) == -0.251362657183837329779204747654240998":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "yn (3, 2.0) == -1.12778377684042778608158395773179238":
-double: 1
-idouble: 1
-
-# Maximal error of functions:
-Function: "atan2":
-float: 6
-ifloat: 6
-ildouble: 1
-ldouble: 1
-
-Function: "atanh":
-float: 1
-ifloat: 1
-
-Function: Imaginary part of "cacos":
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "cacosh":
-double: 1
-float: 7
-idouble: 1
-ifloat: 7
-ildouble: 5
-ldouble: 5
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 3
-idouble: 1
-ifloat: 3
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "casin":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "casin":
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "casinh":
-double: 5
-float: 1
-idouble: 5
-ifloat: 1
-ildouble: 4
-ldouble: 4
-
-Function: Imaginary part of "casinh":
-double: 3
-float: 6
-idouble: 3
-ifloat: 6
-ildouble: 2
-ldouble: 2
-
-Function: Real part of "catan":
-float: 4
-ifloat: 4
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "catanh":
-double: 4
-idouble: 4
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "catanh":
-float: 6
-ifloat: 6
-ildouble: 1
-ldouble: 1
-
-Function: "cbrt":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "ccos":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "ccosh":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "cexp":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "cexp":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "clog":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "clog":
-float: 3
-ifloat: 3
-
-Function: Real part of "clog10":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "clog10":
-double: 1
-float: 5
-idouble: 1
-ifloat: 5
-ildouble: 1
-ldouble: 1
-
-Function: "cos":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "cpow":
-double: 2
-float: 4
-idouble: 2
-ifloat: 4
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "cpow":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "csin":
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "csin":
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "csinh":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "csqrt":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "csqrt":
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "ctan":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "ctan":
-double: 1
-idouble: 1
-ildouble: 2
-ldouble: 2
-
-Function: Real part of "ctanh":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "ctanh":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "erf":
-double: 1
-idouble: 1
-
-Function: "erfc":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-Function: "exp":
-double: 1
-idouble: 1
-
-Function: "exp10":
-double: 6
-float: 2
-idouble: 6
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: "exp2":
-ildouble: 2
-ldouble: 2
-
-Function: "expm1":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "gamma":
-ildouble: 1
-ldouble: 1
-
-Function: "hypot":
-float: 1
-ifloat: 1
-
-Function: "j0":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-ildouble: 2
-ldouble: 2
-
-Function: "j1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 4
-ldouble: 4
-
-Function: "jn":
-double: 4
-float: 4
-idouble: 4
-ifloat: 4
-ildouble: 4
-ldouble: 4
-
-Function: "lgamma":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: "log":
-float: 1
-ifloat: 1
-
-Function: "log10":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "log1p":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "log2":
-ildouble: 1
-ldouble: 1
-
-Function: "sincos":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "sqrt":
-ildouble: 1
-ldouble: 1
-
-Function: "tan":
-double: 1
-idouble: 1
-
-Function: "tanh":
-ildouble: 1
-ldouble: 1
-
-Function: "tgamma":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "y0":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 3
-ldouble: 3
-
-Function: "y1":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: "yn":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-ildouble: 5
-ldouble: 5
-
-# end of automatic generation
diff --git a/test/math/libm-test-ulps-x86_64 b/test/math/libm-test-ulps-x86_64
deleted file mode 100644
index 5e8cf2e..0000000
--- a/test/math/libm-test-ulps-x86_64
+++ /dev/null
@@ -1,1328 +0,0 @@
-# Begin of automatic generation
-
-# acos
-Test "acos (0.75) == 0.722734247813415611178377352641333362":
-ildouble: 1
-ldouble: 1
-
-# asin
-Test "asin (-0.5) == -pi/6":
-ildouble: 1
-ldouble: 1
-Test "asin (-1.0) == -pi/2":
-ildouble: 1
-ldouble: 1
-Test "asin (0.5) == pi/6":
-ildouble: 1
-ldouble: 1
-Test "asin (0.75) == 0.848062078981481008052944338998418080":
-ildouble: 1
-ldouble: 1
-Test "asin (1.0) == pi/2":
-ildouble: 1
-ldouble: 1
-
-# atan2
-Test "atan2 (-0.75, -1.0) == -2.49809154479650885165983415456218025":
-float: 1
-ifloat: 1
-Test "atan2 (0.75, -1.0) == 2.49809154479650885165983415456218025":
-float: 1
-ifloat: 1
-Test "atan2 (1.390625, 0.9296875) == 0.981498387184244311516296577615519772":
-float: 1
-ifloat: 1
-
-# atanh
-Test "atanh (0.75) == 0.972955074527656652552676371721589865":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# cacos
-Test "Imaginary part of: cacos (0.75 + 1.25 i) ==
1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-
-# cacosh
-Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 -
2.1414491111159960199416055713254211 i":
-double: 1
-float: 7
-idouble: 1
-ifloat: 7
-ildouble: 6
-ldouble: 6
-Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 -
2.1414491111159960199416055713254211 i":
-double: 1
-float: 3
-idouble: 1
-ifloat: 3
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (0.75 + 1.25 i) == 1.13239363160530819522266333696834467
+ 1.11752014915610270578240049553777969 i":
-ildouble: 1
-ldouble: 1
-
-# casin
-Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749
+ 1.13239363160530819522266333696834467 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: casin (0.75 + 1.25 i) ==
0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-
-# casinh
-Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 -
0.96465850440760279204541105949953237 i":
-double: 5
-float: 1
-idouble: 5
-ifloat: 1
-ildouble: 5
-ldouble: 5
-Test "Imaginary part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982
- 0.96465850440760279204541105949953237 i":
-double: 3
-float: 6
-idouble: 3
-ifloat: 6
-ildouble: 5
-ldouble: 5
-Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594
+ 0.911738290968487636358489564316731207 i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: casinh (0.75 + 1.25 i) ==
1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# catan
-Test "Real part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 -
0.22907268296853876629588180294200276 i":
-float: 3
-ifloat: 3
-Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 -
0.22907268296853876629588180294200276 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: catan (0.75 + 1.25 i) == 1.10714871779409050301706546017853704 +
0.549306144334054845697622618461262852 i":
-float: 4
-ifloat: 4
-
-# catanh
-Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 -
1.3389725222944935611241935759091443 i":
-double: 4
-idouble: 4
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595
- 1.3389725222944935611241935759091443 i":
-float: 4
-ifloat: 4
-Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140
+ 0.996825126463918666098902241310446708 i":
-double: 1
-idouble: 1
-Test "Imaginary part of: catanh (0.75 + 1.25 i) ==
0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
-float: 6
-ifloat: 6
-
-# cbrt
-Test "cbrt (-0.001) == -0.1":
-ildouble: 1
-ldouble: 1
-Test "cbrt (-27.0) == -3.0":
-double: 1
-idouble: 1
-Test "cbrt (0.75) == 0.908560296416069829445605878163630251":
-double: 1
-idouble: 1
-Test "cbrt (0.9921875) == 0.997389022060725270579075195353955217":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-# ccos
-Test "Real part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 -
9.10922789375533659797919726277886212 i":
-double: 1
-idouble: 1
-Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 -
9.10922789375533659797919726277886212 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 -
1.09193013555397466170919531722024128 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccos (0.75 + 1.25 i) ==
1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# ccosh
-Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 +
0.511822569987384608834463849801875634 i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253
+ 0.511822569987384608834463849801875634 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084
+ 0.780365930845853240391326216300863152 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: ccosh (0.75 + 1.25 i) ==
0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
-float: 1
-ifloat: 1
-
-# cexp
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) ==
-0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
-float: 1
-ifloat: 1
-Test "Real part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 +
2.00900045494094876258347228145863909 i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cexp (0.75 + 1.25 i) ==
0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
-ildouble: 1
-ldouble: 1
-
-# clog
-Test "Imaginary part of: clog (-2 - 3 i) == 1.2824746787307683680267437207826593 -
2.1587989303424641704769327722648368 i":
-float: 3
-ifloat: 3
-Test "Real part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 +
1.03037682652431246378774332703115153 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# clog10
-Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214
- 0.937554462986374708541507952140189646 i":
-double: 1
-float: 5
-idouble: 1
-ifloat: 5
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf + inf i) == inf + 3/4 pi*log10(e) i":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: clog10 (0.75 + 1.25 i) == 0.163679467193165171449476605077428975
+ 0.447486970040493067069984724340855636 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# cos
-Test "cos (0.80190127184058835) == 0.69534156199418473":
-double: 1
-idouble: 1
-Test "cos (M_PI_6l * 2.0) == 0.5":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "cos (M_PI_6l * 4.0) == -0.5":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "cos (pi/2) == 0":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# cpow
-Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) ==
0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) ==
0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i) ==
0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
-double: 1
-float: 4
-idouble: 1
-ifloat: 4
-ildouble: 5
-ldouble: 5
-Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i) ==
0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
-ildouble: 2
-ldouble: 2
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i) == 0.75 + 1.25 i":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i) ==
0.0846958290317209430433805274189191353 + 0.513285749182902449043287190519090481 i":
-double: 2
-float: 3
-idouble: 2
-ifloat: 3
-ildouble: 3
-ldouble: 3
-Test "Real part of: cpow (2 + 0 i, 10 + 0 i) == 1024.0 + 0.0 i":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
-double: 1
-float: 5
-idouble: 1
-ifloat: 5
-Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
-float: 2
-ifloat: 2
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i) == 1.0 + 0.0 i":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-# csin
-Test "Imaginary part of: csin (-2 - 3 i) == -9.15449914691142957346729954460983256 +
4.16890695996656435075481305885375484 i":
-double: 1
-idouble: 1
-Test "Real part of: csin (0.75 + 1.25 i) == 1.28722291002649188575873510790565441 +
1.17210635989270256101081285116138863 i":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csin (0.75 + 1.25 i) ==
1.28722291002649188575873510790565441 + 1.17210635989270256101081285116138863 i":
-float: 1
-ifloat: 1
-
-# csinh
-Test "Real part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 -
0.530921086248519805267040090660676560 i":
-double: 1
-idouble: 1
-Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 -
0.530921086248519805267040090660676560 i":
-double: 1
-idouble: 1
-ildouble: 2
-ldouble: 2
-Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028
+ 1.22863452409509552219214606515777594 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csinh (0.75 + 1.25 i) ==
0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
-float: 1
-ifloat: 1
-
-# csqrt
-Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 +
1.6741492280355400404480393008490519 i":
-float: 1
-ifloat: 1
-Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 -
1.6741492280355400404480393008490519 i":
-float: 1
-ifloat: 1
-
-# ctan
-Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 -
1.00323862735360980144635859782192726 i":
-double: 1
-idouble: 1
-ildouble: 439
-ldouble: 439
-Test "Imaginary part of: ctan (-2 - 3 i) ==
0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726
i":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Real part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 +
0.975363285031235646193581759755216379 i":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ctan (0.75 + 1.25 i) ==
0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 3
-ldouble: 3
-
-# ctanh
-Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 +
0.988437503832249372031403430350121098e-2 i":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 5
-ldouble: 5
-Test "Imaginary part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686
+ 0.988437503832249372031403430350121098e-2 i":
-ildouble: 25
-ldouble: 25
-Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
-float: 1
-ifloat: 1
-Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 +
0.385795952609750664177596760720790220 i":
-double: 1
-idouble: 1
-Test "Imaginary part of: ctanh (0.75 + 1.25 i) ==
1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-# erf
-Test "erf (0.75) == 0.711155633653515131598937834591410777":
-double: 1
-idouble: 1
-Test "erf (1.25) == 0.922900128256458230136523481197281140":
-double: 1
-idouble: 1
-
-# erfc
-Test "erfc (1.25) == 0.0770998717435417698634765188027188596":
-ildouble: 1
-ldouble: 1
-Test "erfc (2.0) == 0.00467773498104726583793074363274707139":
-double: 1
-idouble: 1
-Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-# exp
-Test "exp (1) == e":
-double: 1
-idouble: 1
-
-# exp10
-Test "exp10 (-1) == 0.1":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "exp10 (0.75) == 5.62341325190349080394951039776481231":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "exp10 (3) == 1000":
-double: 6
-float: 2
-idouble: 6
-ifloat: 2
-ildouble: 8
-ldouble: 8
-
-# expm1
-Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
-double: 1
-idouble: 1
-Test "expm1 (1) == M_El - 1.0":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# gamma
-Test "gamma (-0.5) == log(2*sqrt(pi))":
-ildouble: 1
-ldouble: 1
-
-# hypot
-Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-
-# j0
-Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "j0 (0.75) == 0.864242275166648623555731103820923211":
-float: 1
-ifloat: 1
-Test "j0 (10.0) == -0.245935764451348335197760862485328754":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "j0 (2.0) == 0.223890779141235668051827454649948626":
-float: 2
-ifloat: 2
-Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "j0 (8.0) == 0.171650807137553906090869407851972001":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-# j1
-Test "j1 (10.0) == 0.0434727461688614366697487680258592883":
-float: 2
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "j1 (2.0) == 0.576724807756873387202448242269137087":
-double: 1
-idouble: 1
-Test "j1 (8.0) == 0.234636346853914624381276651590454612":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-# jn
-Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "jn (0, 0.75) == 0.864242275166648623555731103820923211":
-float: 1
-ifloat: 1
-Test "jn (0, 10.0) == -0.245935764451348335197760862485328754":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "jn (0, 2.0) == 0.223890779141235668051827454649948626":
-float: 2
-ifloat: 2
-Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "jn (0, 8.0) == 0.171650807137553906090869407851972001":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883":
-float: 2
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "jn (1, 2.0) == 0.576724807756873387202448242269137087":
-double: 1
-idouble: 1
-Test "jn (1, 8.0) == 0.234636346853914624381276651590454612":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "jn (10, -1.0) == 0.263061512368745320699785368779050294e-9":
-ildouble: 1
-ldouble: 1
-Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "jn (10, 1.0) == 0.263061512368745320699785368779050294e-9":
-ildouble: 1
-ldouble: 1
-Test "jn (10, 10.0) == 0.207486106633358857697278723518753428":
-double: 4
-float: 3
-idouble: 4
-ifloat: 3
-ildouble: 2
-ldouble: 2
-Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6":
-float: 4
-ifloat: 4
-ildouble: 1
-ldouble: 1
-Test "jn (3, -1.0) == -0.0195633539826684059189053216217515083":
-ildouble: 1
-ldouble: 1
-Test "jn (3, 0.125) == 0.406503832554912875023029337653442868e-4":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "jn (3, 1.0) == 0.0195633539826684059189053216217515083":
-ildouble: 1
-ldouble: 1
-Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "jn (3, 2.0) == 0.128943249474402051098793332969239835":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-# lgamma
-Test "lgamma (-0.5) == log(2*sqrt(pi))":
-ildouble: 1
-ldouble: 1
-Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-# log10
-Test "log10 (0.75) == -0.124938736608299953132449886193870744":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "log10 (e) == log10(e)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# log1p
-Test "log1p (-0.25) == -0.287682072451780927439219005993827432":
-float: 1
-ifloat: 1
-
-# sincos
-Test "sincos (0.80190127184058835, &sin_res, &cos_res) puts
0.69534156199418473 in cos_res":
-double: 1
-idouble: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts
0.86602540378443864676372317075293616 in sin_res":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "sincos (pi/6, &sin_res, &cos_res) puts
0.86602540378443864676372317075293616 in cos_res":
-float: 1
-ifloat: 1
-
-# tan
-Test "tan (pi/4) == 1":
-double: 1
-idouble: 1
-
-# tgamma
-Test "tgamma (-0.5) == -2 sqrt (pi)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "tgamma (0.5) == sqrt (pi)":
-float: 1
-ifloat: 1
-Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (4) == 6":
-ildouble: 1
-ldouble: 1
-
-# y0
-Test "y0 (0.125) == -1.38968062514384052915582277745018693":
-ildouble: 1
-ldouble: 1
-Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "y0 (1.5) == 0.382448923797758843955068554978089862":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "y0 (8.0) == 0.223521489387566220527323400498620359":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# y1
-Test "y1 (0.125) == -5.19993611253477499595928744876579921":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "y1 (1.5) == -0.412308626973911295952829820633445323":
-float: 1
-ifloat: 1
-Test "y1 (10.0) == 0.249015424206953883923283474663222803":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-Test "y1 (2.0) == -0.107032431540937546888370772277476637":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "y1 (8.0) == -0.158060461731247494255555266187483550":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-# yn
-Test "yn (0, 0.125) == -1.38968062514384052915582277745018693":
-ildouble: 1
-ldouble: 1
-Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "yn (0, 1.5) == 0.382448923797758843955068554978089862":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "yn (0, 8.0) == 0.223521489387566220527323400498620359":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "yn (1, 0.125) == -5.19993611253477499595928744876579921":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "yn (1, 1.5) == -0.412308626973911295952829820633445323":
-float: 1
-ifloat: 1
-Test "yn (1, 10.0) == 0.249015424206953883923283474663222803":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-Test "yn (1, 2.0) == -0.107032431540937546888370772277476637":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "yn (1, 8.0) == -0.158060461731247494255555266187483550":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "yn (10, 0.125) == -127057845771019398.252538486899753195":
-double: 1
-idouble: 1
-ildouble: 2
-ldouble: 2
-Test "yn (10, 0.75) == -2133501638.90573424452445412893839236":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 4
-ldouble: 4
-Test "yn (10, 1.0) == -121618014.278689189288130426667971145":
-double: 1
-idouble: 1
-Test "yn (10, 10.0) == -0.359814152183402722051986577343560609":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "yn (10, 2.0) == -129184.542208039282635913145923304214":
-double: 2
-idouble: 2
-Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "yn (3, 0.75) == -12.9877176234475433186319774484809207":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "yn (3, 10.0) == -0.251362657183837329779204747654240998":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "yn (3, 2.0) == -1.12778377684042778608158395773179238":
-double: 1
-idouble: 1
-
-# Maximal error of functions:
-Function: "acos":
-ildouble: 1
-ldouble: 1
-
-Function: "asin":
-ildouble: 1
-ldouble: 1
-
-Function: "atan2":
-float: 1
-ifloat: 1
-
-Function: "atanh":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "cacos":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-
-Function: Real part of "cacosh":
-double: 1
-float: 7
-idouble: 1
-ifloat: 7
-ildouble: 6
-ldouble: 6
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 3
-idouble: 1
-ifloat: 3
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "casin":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-
-Function: Imaginary part of "casin":
-float: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-
-Function: Real part of "casinh":
-double: 5
-float: 1
-idouble: 5
-ifloat: 1
-ildouble: 5
-ldouble: 5
-
-Function: Imaginary part of "casinh":
-double: 3
-float: 6
-idouble: 3
-ifloat: 6
-ildouble: 5
-ldouble: 5
-
-Function: Real part of "catan":
-float: 4
-ifloat: 4
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "catanh":
-double: 4
-idouble: 4
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "catanh":
-float: 6
-ifloat: 6
-
-Function: "cbrt":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "ccos":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "cexp":
-float: 1
-ifloat: 1
-
-Function: Imaginary part of "cexp":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "clog":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "clog":
-float: 3
-ifloat: 3
-
-Function: Real part of "clog10":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "clog10":
-double: 1
-float: 5
-idouble: 1
-ifloat: 5
-ildouble: 1
-ldouble: 1
-
-Function: "cos":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "cpow":
-double: 2
-float: 5
-idouble: 2
-ifloat: 5
-ildouble: 5
-ldouble: 5
-
-Function: Imaginary part of "cpow":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-ildouble: 2
-ldouble: 2
-
-Function: Real part of "csin":
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "csin":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "csinh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-
-Function: Real part of "csqrt":
-float: 1
-ifloat: 1
-
-Function: Real part of "ctan":
-double: 1
-idouble: 1
-ildouble: 439
-ldouble: 439
-
-Function: Imaginary part of "ctan":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 3
-ldouble: 3
-
-Function: Real part of "ctanh":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 5
-ldouble: 5
-
-Function: Imaginary part of "ctanh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 25
-ldouble: 25
-
-Function: "erf":
-double: 1
-idouble: 1
-
-Function: "erfc":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-Function: "exp":
-double: 1
-idouble: 1
-
-Function: "exp10":
-double: 6
-float: 2
-idouble: 6
-ifloat: 2
-ildouble: 8
-ldouble: 8
-
-Function: "expm1":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "gamma":
-ildouble: 1
-ldouble: 1
-
-Function: "hypot":
-float: 1
-ifloat: 1
-
-Function: "j0":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: "j1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: "jn":
-double: 4
-float: 4
-idouble: 4
-ifloat: 4
-ildouble: 2
-ldouble: 2
-
-Function: "lgamma":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: "log":
-float: 1
-ifloat: 1
-
-Function: "log10":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: "log1p":
-float: 1
-ifloat: 1
-
-Function: "nexttoward":
-double: 1
-idouble: 1
-
-Function: "sincos":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "tan":
-double: 1
-idouble: 1
-
-Function: "tgamma":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "y0":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "y1":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: "yn":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-ildouble: 4
-ldouble: 4
-
-# end of automatic generation
diff --git a/test/math/libm-test-ulps-xtensa b/test/math/libm-test-ulps-xtensa
deleted file mode 100644
index 46b2ac5..0000000
--- a/test/math/libm-test-ulps-xtensa
+++ /dev/null
@@ -1,145 +0,0 @@
-# Begin of automatic generation
-
-# cos
-Test "cos (M_PI_6l * 2.0) == 0.5":
-double: 1
-idouble: 1
-Test "cos (M_PI_6l * 4.0) == -0.5":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-# erf
-Test "erf (0.75) == 0.711155633653515131598937834591410777":
-double: 1
-idouble: 1
-Test "erf (1.25) == 0.922900128256458230136523481197281140":
-double: 1
-idouble: 1
-
-# erfc
-Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
-double: 1
-idouble: 1
-
-# exp
-Test "exp (1) == e":
-double: 1
-idouble: 1
-
-# expm1
-Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
-double: 1
-idouble: 1
-
-# hypot
-Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-
-# lgamma
-Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-# log10
-Test "log10 (0.75) == -0.124938736608299953132449886193870744":
-double: 1
-idouble: 1
-Test "log10 (e) == log10(e)":
-float: 1
-ifloat: 1
-
-# tgamma
-Test "tgamma (-0.5) == -2 sqrt (pi)":
-double: 1
-idouble: 1
-Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# Maximal error of functions:
-Function: "cos":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-Function: "erf":
-double: 1
-idouble: 1
-
-Function: "erfc":
-double: 1
-idouble: 1
-
-Function: "exp":
-double: 1
-idouble: 1
-
-Function: "expm1":
-double: 1
-idouble: 1
-
-Function: "hypot":
-float: 1
-ifloat: 1
-
-Function: "lgamma":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: "log":
-float: 1
-ifloat: 1
-
-Function: "log10":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "tan":
-double: 1
-idouble: 1
-
-Function: "tgamma":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# end of automatic generation
diff --git a/test/math/libm-test.inc b/test/math/libm-test.inc
deleted file mode 100644
index f50b48b..0000000
--- a/test/math/libm-test.inc
+++ /dev/null
@@ -1,5096 +0,0 @@
-/* Copyright (C) 1997-2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Andreas Jaeger <aj(a)suse.de>de>, 1997.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* Part of testsuite for libm.
-
- This file is processed by a perl script. The resulting file has to
- be included by a master file that defines:
-
- Macros:
- FUNC(function): converts general function name (like cos) to
- name with correct suffix (e.g. cosl or cosf)
- MATHCONST(x): like FUNC but for constants (e.g convert 0.0 to 0.0L)
- FLOAT: floating point type to test
- - TEST_MSG: informal message to be displayed
- CHOOSE(Clongdouble,Cdouble,Cfloat,Cinlinelongdouble,Cinlinedouble,Cinlinefloat):
- chooses one of the parameters as delta for testing
- equality
- PRINTF_EXPR Floating point conversion specification to print a variable
- of type FLOAT with printf. PRINTF_EXPR just contains
- the specifier, not the percent and width arguments,
- e.g. "f".
- PRINTF_XEXPR Like PRINTF_EXPR, but print in hexadecimal format.
- PRINTF_NEXPR Like PRINTF_EXPR, but print nice. */
-
-/* This testsuite has currently tests for:
- acos, acosh, asin, asinh, atan, atan2, atanh,
- cbrt, ceil, copysign, cos, cosh, erf, erfc, exp, exp10, exp2, expm1,
- fabs, fdim, floor, fma, fmax, fmin, fmod, fpclassify,
- frexp, gamma, hypot,
- ilogb, isfinite, isinf, isnan, isnormal,
- isless, islessequal, isgreater, isgreaterequal, islessgreater, isunordered,
- j0, j1, jn,
- ldexp, lgamma, log, log10, log1p, log2, logb,
- modf, nearbyint, nextafter,
- pow, remainder, remquo, rint, lrint, llrint,
- round, lround, llround,
- scalb, scalbn, scalbln, signbit, sin, sincos, sinh, sqrt, tan, tanh, tgamma, trunc,
- y0, y1, yn, significand
-
- and for the following complex math functions:
- cabs, cacos, cacosh, carg, casin, casinh, catan, catanh,
- ccos, ccosh, cexp, clog, cpow, cproj, csin, csinh, csqrt, ctan, ctanh.
-
- At the moment the following functions aren't tested:
- drem, nan
-
- Parameter handling is primitive in the moment:
- --verbose=[0..3] for different levels of output:
- 0: only error count
- 1: basic report on failed tests (default)
- 2: full report on all tests
- -v for full output (equals --verbose=3)
- -u for generation of an ULPs file
- */
-
-/* "Philosophy":
-
- This suite tests some aspects of the correct implementation of
- mathematical functions in libm. Some simple, specific parameters
- are tested for correctness but there's no exhaustive
- testing. Handling of specific inputs (e.g. infinity, not-a-number)
- is also tested. Correct handling of exceptions is checked
- against. These implemented tests should check all cases that are
- specified in ISO C99.
-
- Exception testing: At the moment only divide-by-zero and invalid
- exceptions are tested. Overflow/underflow and inexact exceptions
- aren't checked at the moment.
-
- NaN values: There exist signalling and quiet NaNs. This implementation
- only uses quiet NaN as parameter but does not differenciate
- between the two kinds of NaNs as result.
-
- Inline functions: Inlining functions should give an improvement in
- speed - but not in precission. The inlined functions return
- reasonable values for a reasonable range of input values. The
- result is not necessarily correct for all values and exceptions are
- not correctly raised in all cases. Problematic input and return
- values are infinity, not-a-number and minus zero. This suite
- therefore does not check these specific inputs and the exception
- handling for inlined mathematical functions - just the "reasonable"
- values are checked.
-
- Beware: The tests might fail for any of the following reasons:
- - Tests are wrong
- - Functions are wrong
- - Floating Point Unit not working properly
- - Compiler has errors
-
- With e.g. gcc 2.7.2.2 the test for cexp fails because of a compiler error.
-
-
- To Do: All parameter should be numbers that can be represented as
- exact floating point values. Currently some values cannot be
- represented exactly and therefore the result is not the expected
- result. For this we will use 36 digits so that numbers can be
- represented exactly. */
-
-#ifndef _GNU_SOURCE
-# define _GNU_SOURCE
-#endif
-
-#undef __CHK_COMPLEX_STUFF
-#define __CHK_COMPLEX_STUFF 0
-
-#include "libm-test-ulps.h"
-#include <complex.h>
-#include <math.h>
-#include <float.h>
-#include "fenv.h"
-#include <limits.h>
-
-#include <errno.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <getopt.h>
-
-/* Possible exceptions */
-#define NO_EXCEPTION 0x0
-#define INVALID_EXCEPTION 0x1
-#define DIVIDE_BY_ZERO_EXCEPTION 0x2
-/* The next flags signals that those exceptions are allowed but not required. */
-#define INVALID_EXCEPTION_OK 0x4
-#define DIVIDE_BY_ZERO_EXCEPTION_OK 0x8
-#define EXCEPTIONS_OK INVALID_EXCEPTION_OK+DIVIDE_BY_ZERO_EXCEPTION_OK
-/* Some special test flags, passed togther with exceptions. */
-#define IGNORE_ZERO_INF_SIGN 0x10
-
-/* Various constants (we must supply them precalculated for accuracy). */
-#define M_PI_6l .52359877559829887307710723054658383L
-#define M_E2l 7.389056098930650227230427460575008L
-#define M_E3l 20.085536923187667740928529654581719L
-#define M_2_SQRT_PIl 3.5449077018110320545963349666822903L /* 2 sqrt (M_PIl) */
-#define M_SQRT_PIl 1.7724538509055160272981674833411451L /* sqrt (M_PIl) */
-#define M_LOG_SQRT_PIl 0.57236494292470008707171367567652933L /* log(sqrt(M_PIl)) */
-#define M_LOG_2_SQRT_PIl 1.265512123484645396488945797134706L /* log(2*sqrt(M_PIl)) */
-#define M_PI_34l (M_PIl - M_PI_4l) /* 3*pi/4 */
-#define M_PI_34_LOG10El (M_PIl - M_PI_4l) * M_LOG10El
-#define M_PI2_LOG10El M_PI_2l * M_LOG10El
-#define M_PI4_LOG10El M_PI_4l * M_LOG10El
-#define M_PI_LOG10El M_PIl * M_LOG10El
-#define M_SQRT_2_2 0.70710678118654752440084436210484903L /* sqrt (2) / 2 */
-
-static FILE *ulps_file; /* File to document difference. */
-static int output_ulps; /* Should ulps printed? */
-
-static int noErrors; /* number of errors */
-static int noTests; /* number of tests (without testing exceptions) */
-static int noExcTests; /* number of tests for exception flags */
-static int noXFails; /* number of expected failures. */
-static int noXPasses; /* number of unexpected passes. */
-
-static int verbose;
-static int output_max_error; /* Should the maximal errors printed? */
-static int output_points; /* Should the single function results printed? */
-static int ignore_max_ulp; /* Should we ignore max_ulp? */
-
-static FLOAT minus_zero, plus_zero;
-static FLOAT plus_infty, minus_infty, nan_value, max_value, min_value;
-
-static FLOAT max_error, real_max_error, imag_max_error;
-
-
-#define BUILD_COMPLEX(real, imag) \
- ({ __complex__ FLOAT __retval; \
- __real__ __retval = (real); \
- __imag__ __retval = (imag); \
- __retval; })
-
-#define BUILD_COMPLEX_INT(real, imag) \
- ({ __complex__ int __retval; \
- __real__ __retval = (real); \
- __imag__ __retval = (imag); \
- __retval; })
-
-
-#define MANT_DIG CHOOSE ((LDBL_MANT_DIG-1), (DBL_MANT_DIG-1), (FLT_MANT_DIG-1), \
- (LDBL_MANT_DIG-1), (DBL_MANT_DIG-1), (FLT_MANT_DIG-1))
-
-static void
-init_max_error (void)
-{
- max_error = 0;
- real_max_error = 0;
- imag_max_error = 0;
- feclearexcept (FE_ALL_EXCEPT);
-}
-
-static void
-set_max_error (FLOAT current, FLOAT *curr_max_error)
-{
- if (current > *curr_max_error)
- *curr_max_error = current;
-}
-
-
-/* Should the message print to screen? This depends on the verbose flag,
- and the test status. */
-static int
-print_screen (int ok, int xfail)
-{
- if (output_points
- && (verbose > 1
- || (verbose == 1 && ok == xfail)))
- return 1;
- return 0;
-}
-
-
-/* Should the message print to screen? This depends on the verbose flag,
- and the test status. */
-static int
-print_screen_max_error (int ok, int xfail)
-{
- if (output_max_error
- && (verbose > 1
- || ((verbose == 1) && (ok == xfail))))
- return 1;
- return 0;
-}
-
-/* Update statistic counters. */
-static void
-update_stats (int ok, int xfail)
-{
- ++noTests;
- if (ok && xfail)
- ++noXPasses;
- else if (!ok && xfail)
- ++noXFails;
- else if (!ok && !xfail)
- ++noErrors;
-}
-
-static void
-print_ulps (const char *test_name, FLOAT ulp)
-{
- if (output_ulps)
- {
- fprintf (ulps_file, "Test \"%s\":\n", test_name);
- fprintf (ulps_file, "%s: %.0" PRINTF_NEXPR "\n",
- CHOOSE("ldouble", "double", "float",
- "ildouble", "idouble", "ifloat"),
- FUNC(ceil) (ulp));
- }
-}
-
-static void
-print_function_ulps (const char *function_name, FLOAT ulp)
-{
- if (output_ulps)
- {
- fprintf (ulps_file, "Function: \"%s\":\n", function_name);
- fprintf (ulps_file, "%s: %.0" PRINTF_NEXPR "\n",
- CHOOSE("ldouble", "double", "float",
- "ildouble", "idouble", "ifloat"),
- FUNC(ceil) (ulp));
- }
-}
-
-
-static void
-print_complex_function_ulps (const char *function_name, FLOAT real_ulp,
- FLOAT imag_ulp)
-{
- if (output_ulps)
- {
- if (real_ulp != 0.0)
- {
- fprintf (ulps_file, "Function: Real part of \"%s\":\n",
function_name);
- fprintf (ulps_file, "%s: %.0" PRINTF_NEXPR "\n",
- CHOOSE("ldouble", "double", "float",
- "ildouble", "idouble", "ifloat"),
- FUNC(ceil) (real_ulp));
- }
- if (imag_ulp != 0.0)
- {
- fprintf (ulps_file, "Function: Imaginary part of \"%s\":\n",
function_name);
- fprintf (ulps_file, "%s: %.0" PRINTF_NEXPR "\n",
- CHOOSE("ldouble", "double", "float",
- "ildouble", "idouble", "ifloat"),
- FUNC(ceil) (imag_ulp));
- }
-
-
- }
-}
-
-
-
-/* Test if Floating-Point stack hasn't changed */
-static void
-fpstack_test (const char *test_name)
-{
-#ifdef i386
- static int old_stack;
- int sw;
-
- __asm__ ("fnstsw" : "=a" (sw));
- sw >>= 11;
- sw &= 7;
-
- if (sw != old_stack)
- {
- printf ("FP-Stack wrong after test %s (%d, should be %d)\n",
- test_name, sw, old_stack);
- ++noErrors;
- old_stack = sw;
- }
-#endif
-}
-
-
-static void
-print_max_error (const char *func_name, FLOAT allowed, int xfail)
-{
- int ok = 0;
-
- if (max_error == 0.0 || (max_error <= allowed && !ignore_max_ulp))
- {
- ok = 1;
- }
-
- if (!ok)
- print_function_ulps (func_name, max_error);
-
-
- if (print_screen_max_error (ok, xfail))
- {
- printf ("Maximal error of `%s'\n", func_name);
- printf (" is : %.0" PRINTF_NEXPR " ulp\n", FUNC(ceil)
(max_error));
- printf (" accepted: %.0" PRINTF_NEXPR " ulp\n", FUNC(ceil)
(allowed));
- }
-
- update_stats (ok, xfail);
-}
-
-
-static void
-print_complex_max_error (const char *func_name, __complex__ FLOAT allowed,
- __complex__ int xfail)
-{
- int ok = 0;
-
- if ((real_max_error == 0 && imag_max_error == 0)
- || (real_max_error <= __real__ allowed
- && imag_max_error <= __imag__ allowed
- && !ignore_max_ulp))
- {
- ok = 1;
- }
-
- if (!ok)
- print_complex_function_ulps (func_name, real_max_error, imag_max_error);
-
-
- if (print_screen_max_error (ok, xfail))
- {
- printf ("Maximal error of real part of: %s\n", func_name);
- printf (" is : %.0" PRINTF_NEXPR " ulp\n",
- FUNC(ceil) (real_max_error));
- printf (" accepted: %.0" PRINTF_NEXPR " ulp\n",
- FUNC(ceil) (__real__ allowed));
- printf ("Maximal error of imaginary part of: %s\n", func_name);
- printf (" is : %.0" PRINTF_NEXPR " ulp\n",
- FUNC(ceil) (imag_max_error));
- printf (" accepted: %.0" PRINTF_NEXPR " ulp\n",
- FUNC(ceil) (__imag__ allowed));
- }
-
- update_stats (ok, xfail);
-}
-
-
-/* Test whether a given exception was raised. */
-static void
-test_single_exception (const char *test_name,
- int exception,
- int exc_flag,
- int fe_flag,
- const char *flag_name)
-{
-#ifndef TEST_INLINE
- int ok = 1;
- if (exception & exc_flag)
- {
- if (fetestexcept (fe_flag))
- {
- if (print_screen (1, 0))
- printf ("Pass: %s: Exception \"%s\" set\n", test_name,
flag_name);
- }
- else
- {
- ok = 0;
- if (print_screen (0, 0))
- printf ("Failure: %s: Exception \"%s\" not set\n",
- test_name, flag_name);
- }
- }
- else
- {
- if (fetestexcept (fe_flag))
- {
- ok = 0;
- if (print_screen (0, 0))
- printf ("Failure: %s: Exception \"%s\" set\n",
- test_name, flag_name);
- }
- else
- {
- if (print_screen (1, 0))
- printf ("%s: Exception \"%s\" not set\n", test_name,
- flag_name);
- }
- }
- if (!ok)
- ++noErrors;
-
-#endif
-}
-
-
-/* Test whether exceptions given by EXCEPTION are raised. Ignore thereby
- allowed but not required exceptions.
-*/
-static void
-test_exceptions (const char *test_name, int exception)
-{
- ++noExcTests;
-#ifdef FE_DIVBYZERO
- if ((exception & DIVIDE_BY_ZERO_EXCEPTION_OK) == 0)
- test_single_exception (test_name, exception,
- DIVIDE_BY_ZERO_EXCEPTION, FE_DIVBYZERO,
- "Divide by zero");
-#endif
-#ifdef FE_INVALID
- if ((exception & INVALID_EXCEPTION_OK) == 0)
- test_single_exception (test_name, exception, INVALID_EXCEPTION, FE_INVALID,
- "Invalid operation");
-#endif
- feclearexcept (FE_ALL_EXCEPT);
-}
-
-
-static void
-check_float_internal (const char *test_name, FLOAT computed, FLOAT expected,
- FLOAT max_ulp, int xfail, int exceptions,
- FLOAT *curr_max_error)
-{
- int ok = 0;
- int print_diff = 0;
- FLOAT diff = 0;
- FLOAT ulp = 0;
-
- test_exceptions (test_name, exceptions);
- if (isnan (computed) && isnan (expected))
- ok = 1;
- else if (isinf (computed) && isinf (expected))
- {
- /* Test for sign of infinities. */
- if ((exceptions & IGNORE_ZERO_INF_SIGN) == 0
- && signbit (computed) != signbit (expected))
- {
- ok = 0;
- printf ("infinity has wrong sign.\n");
- }
- else
- ok = 1;
- }
- /* Don't calc ulp for NaNs or infinities. */
- else if (isinf (computed) || isnan (computed) || isinf (expected) || isnan (expected))
- ok = 0;
- else
- {
- diff = FUNC(fabs) (computed - expected);
- /* ilogb (0) isn't allowed. */
- if (expected == 0.0)
- ulp = diff / FUNC(ldexp) (1.0, - MANT_DIG);
- else
- ulp = diff / FUNC(ldexp) (1.0, FUNC(ilogb) (expected) - MANT_DIG);
- set_max_error (ulp, curr_max_error);
- print_diff = 1;
- if ((exceptions & IGNORE_ZERO_INF_SIGN) == 0
- && computed == 0.0 && expected == 0.0
- && signbit(computed) != signbit (expected))
- ok = 0;
- else if (ulp <= 0.5 || (ulp <= max_ulp && !ignore_max_ulp))
- ok = 1;
- else
- {
- ok = 0;
- print_ulps (test_name, ulp);
- }
-
- }
- if (print_screen (ok, xfail))
- {
- if (!ok)
- printf ("Failure: ");
- printf ("Test: %s\n", test_name);
- printf ("Result:\n");
- printf (" is: % .20" PRINTF_EXPR " % .20" PRINTF_XEXPR
"\n",
- computed, computed);
- printf (" should be: % .20" PRINTF_EXPR " % .20" PRINTF_XEXPR
"\n",
- expected, expected);
- if (print_diff)
- {
- printf (" difference: % .20" PRINTF_EXPR " % .20" PRINTF_XEXPR
- "\n", diff, diff);
- printf (" ulp : % .4" PRINTF_NEXPR "\n", ulp);
- printf (" max.ulp : % .4" PRINTF_NEXPR "\n", max_ulp);
- }
- }
- update_stats (ok, xfail);
-
- fpstack_test (test_name);
-}
-
-
-static void
-check_float (const char *test_name, FLOAT computed, FLOAT expected,
- FLOAT max_ulp, int xfail, int exceptions)
-{
- check_float_internal (test_name, computed, expected, max_ulp, xfail,
- exceptions, &max_error);
-}
-
-
-static void
-check_complex (const char *test_name, __complex__ FLOAT computed,
- __complex__ FLOAT expected,
- __complex__ FLOAT max_ulp, __complex__ int xfail,
- int exception)
-{
- FLOAT part_comp, part_exp, part_max_ulp;
- int part_xfail;
- char str[200];
-
- sprintf (str, "Real part of: %s", test_name);
- part_comp = __real__ computed;
- part_exp = __real__ expected;
- part_max_ulp = __real__ max_ulp;
- part_xfail = __real__ xfail;
-
- check_float_internal (str, part_comp, part_exp, part_max_ulp, part_xfail,
- exception, &real_max_error);
-
- sprintf (str, "Imaginary part of: %s", test_name);
- part_comp = __imag__ computed;
- part_exp = __imag__ expected;
- part_max_ulp = __imag__ max_ulp;
- part_xfail = __imag__ xfail;
-
- /* Don't check again for exceptions, just pass through the
- zero/inf sign test. */
- check_float_internal (str, part_comp, part_exp, part_max_ulp, part_xfail,
- exception & IGNORE_ZERO_INF_SIGN,
- &imag_max_error);
-}
-
-
-/* Check that computed and expected values are equal (int values). */
-static void
-check_int (const char *test_name, int computed, int expected, int max_ulp,
- int xfail, int exceptions)
-{
- int diff = computed - expected;
- int ok = 0;
-
- test_exceptions (test_name, exceptions);
- noTests++;
- if (abs (diff) <= max_ulp)
- ok = 1;
-
- if (!ok)
- print_ulps (test_name, diff);
-
- if (print_screen (ok, xfail))
- {
- if (!ok)
- printf ("Failure: ");
- printf ("Test: %s\n", test_name);
- printf ("Result:\n");
- printf (" is: %d\n", computed);
- printf (" should be: %d\n", expected);
- }
-
- update_stats (ok, xfail);
- fpstack_test (test_name);
-}
-
-
-/* Check that computed and expected values are equal (long int values). */
-static void
-check_long (const char *test_name, long int computed, long int expected,
- long int max_ulp, int xfail, int exceptions)
-{
- long int diff = computed - expected;
- int ok = 0;
-
- test_exceptions (test_name, exceptions);
- noTests++;
- if (labs (diff) <= max_ulp)
- ok = 1;
-
- if (!ok)
- print_ulps (test_name, diff);
-
- if (print_screen (ok, xfail))
- {
- if (!ok)
- printf ("Failure: ");
- printf ("Test: %s\n", test_name);
- printf ("Result:\n");
- printf (" is: %ld\n", computed);
- printf (" should be: %ld\n", expected);
- }
-
- update_stats (ok, xfail);
- fpstack_test (test_name);
-}
-
-
-/* Check that computed value is true/false. */
-static void
-check_bool (const char *test_name, int computed, int expected,
- long int max_ulp, int xfail, int exceptions)
-{
- int ok = 0;
-
- test_exceptions (test_name, exceptions);
- noTests++;
- if ((computed == 0) == (expected == 0))
- ok = 1;
-
- if (print_screen (ok, xfail))
- {
- if (!ok)
- printf ("Failure: ");
- printf ("Test: %s\n", test_name);
- printf ("Result:\n");
- printf (" is: %d\n", computed);
- printf (" should be: %d\n", expected);
- }
-
- update_stats (ok, xfail);
- fpstack_test (test_name);
-}
-
-
-/* check that computed and expected values are equal (long int values) */
-static void
-check_longlong (const char *test_name, long long int computed,
- long long int expected,
- long long int max_ulp, int xfail,
- int exceptions)
-{
- long long int diff = computed - expected;
- int ok = 0;
-
- test_exceptions (test_name, exceptions);
- noTests++;
- if (llabs (diff) <= max_ulp)
- ok = 1;
-
- if (!ok)
- print_ulps (test_name, diff);
-
- if (print_screen (ok, xfail))
- {
- if (!ok)
- printf ("Failure:");
- printf ("Test: %s\n", test_name);
- printf ("Result:\n");
- printf (" is: %lld\n", computed);
- printf (" should be: %lld\n", expected);
- }
-
- update_stats (ok, xfail);
- fpstack_test (test_name);
-}
-
-
-
-/* This is to prevent messages from the SVID libm emulation. */
-int
-matherr (struct exception *x __attribute__ ((unused)))
-{
- return 1;
-}
-
-
-/****************************************************************************
- Tests for single functions of libm.
- Please keep them alphabetically sorted!
-****************************************************************************/
-
-static void
-acos_test (void)
-{
- errno = 0;
- FUNC(acos) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (acos);
-
- TEST_f_f (acos, plus_infty, nan_value, INVALID_EXCEPTION);
- TEST_f_f (acos, minus_infty, nan_value, INVALID_EXCEPTION);
- TEST_f_f (acos, nan_value, nan_value);
-
- /* |x| > 1: */
- TEST_f_f (acos, 1.125L, nan_value, INVALID_EXCEPTION);
- TEST_f_f (acos, -1.125L, nan_value, INVALID_EXCEPTION);
-
- TEST_f_f (acos, 0, M_PI_2l);
- TEST_f_f (acos, minus_zero, M_PI_2l);
- TEST_f_f (acos, 1, 0);
- TEST_f_f (acos, -1, M_PIl);
- TEST_f_f (acos, 0.5, M_PI_6l*2.0);
- TEST_f_f (acos, -0.5, M_PI_6l*4.0);
- TEST_f_f (acos, 0.75L, 0.722734247813415611178377352641333362L);
- TEST_f_f (acos, 2e-17L, 1.57079632679489659923132169163975144L);
- TEST_f_f (acos, 0.0625L, 1.50825556499840522843072005474337068L);
- END (acos);
-}
-
-static void
-acosh_test (void)
-{
- errno = 0;
- FUNC(acosh) (7);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (acosh);
-
- TEST_f_f (acosh, plus_infty, plus_infty);
- TEST_f_f (acosh, minus_infty, nan_value, INVALID_EXCEPTION);
-
- /* x < 1: */
- TEST_f_f (acosh, -1.125L, nan_value, INVALID_EXCEPTION);
-
- TEST_f_f (acosh, 1, 0);
- TEST_f_f (acosh, 7, 2.63391579384963341725009269461593689L);
-
- END (acosh);
-}
-
-static void
-asin_test (void)
-{
- errno = 0;
- FUNC(asin) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (asin);
-
- TEST_f_f (asin, plus_infty, nan_value, INVALID_EXCEPTION);
- TEST_f_f (asin, minus_infty, nan_value, INVALID_EXCEPTION);
- TEST_f_f (asin, nan_value, nan_value);
-
- /* asin x == NaN plus invalid exception for |x| > 1. */
- TEST_f_f (asin, 1.125L, nan_value, INVALID_EXCEPTION);
- TEST_f_f (asin, -1.125L, nan_value, INVALID_EXCEPTION);
-
- TEST_f_f (asin, 0, 0);
- TEST_f_f (asin, minus_zero, minus_zero);
- TEST_f_f (asin, 0.5, M_PI_6l);
- TEST_f_f (asin, -0.5, -M_PI_6l);
- TEST_f_f (asin, 1.0, M_PI_2l);
- TEST_f_f (asin, -1.0, -M_PI_2l);
- TEST_f_f (asin, 0.75L, 0.848062078981481008052944338998418080L);
-
- END (asin);
-}
-
-static void
-asinh_test (void)
-{
- errno = 0;
- FUNC(asinh) (0.7L);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (asinh);
-
- TEST_f_f (asinh, 0, 0);
- TEST_f_f (asinh, minus_zero, minus_zero);
-#ifndef TEST_INLINE
- TEST_f_f (asinh, plus_infty, plus_infty);
- TEST_f_f (asinh, minus_infty, minus_infty);
-#endif
- TEST_f_f (asinh, nan_value, nan_value);
- TEST_f_f (asinh, 0.75L, 0.693147180559945309417232121458176568L);
-
- END (asinh);
-}
-
-static void
-atan_test (void)
-{
- errno = 0;
- FUNC(atan) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (atan);
-
- TEST_f_f (atan, 0, 0);
- TEST_f_f (atan, minus_zero, minus_zero);
-
- TEST_f_f (atan, plus_infty, M_PI_2l);
- TEST_f_f (atan, minus_infty, -M_PI_2l);
- TEST_f_f (atan, nan_value, nan_value);
-
- TEST_f_f (atan, 1, M_PI_4l);
- TEST_f_f (atan, -1, -M_PI_4l);
-
- TEST_f_f (atan, 0.75L, 0.643501108793284386802809228717322638L);
-
- END (atan);
-}
-
-
-
-static void
-atanh_test (void)
-{
- errno = 0;
- FUNC(atanh) (0.7L);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (atanh);
-
-
- TEST_f_f (atanh, 0, 0);
- TEST_f_f (atanh, minus_zero, minus_zero);
-
- TEST_f_f (atanh, 1, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_f_f (atanh, -1, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_f_f (atanh, nan_value, nan_value);
-
- /* atanh (x) == NaN plus invalid exception if |x| > 1. */
- TEST_f_f (atanh, 1.125L, nan_value, INVALID_EXCEPTION);
- TEST_f_f (atanh, -1.125L, nan_value, INVALID_EXCEPTION);
-
- TEST_f_f (atanh, 0.75L, 0.972955074527656652552676371721589865L);
-
- END (atanh);
-}
-
-static void
-atan2_test (void)
-{
- errno = 0;
- FUNC(atan2) (-0, 1);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (atan2);
-
- /* atan2 (0,x) == 0 for x > 0. */
- TEST_ff_f (atan2, 0, 1, 0);
-
- /* atan2 (-0,x) == -0 for x > 0. */
- TEST_ff_f (atan2, minus_zero, 1, minus_zero);
-
- TEST_ff_f (atan2, 0, 0, 0);
- TEST_ff_f (atan2, minus_zero, 0, minus_zero);
-
- /* atan2 (+0,x) == +pi for x < 0. */
- TEST_ff_f (atan2, 0, -1, M_PIl);
-
- /* atan2 (-0,x) == -pi for x < 0. */
- TEST_ff_f (atan2, minus_zero, -1, -M_PIl);
-
- TEST_ff_f (atan2, 0, minus_zero, M_PIl);
- TEST_ff_f (atan2, minus_zero, minus_zero, -M_PIl);
-
- /* atan2 (y,+0) == pi/2 for y > 0. */
- TEST_ff_f (atan2, 1, 0, M_PI_2l);
-
- /* atan2 (y,-0) == pi/2 for y > 0. */
- TEST_ff_f (atan2, 1, minus_zero, M_PI_2l);
-
- /* atan2 (y,+0) == -pi/2 for y < 0. */
- TEST_ff_f (atan2, -1, 0, -M_PI_2l);
-
- /* atan2 (y,-0) == -pi/2 for y < 0. */
- TEST_ff_f (atan2, -1, minus_zero, -M_PI_2l);
-
- /* atan2 (y,inf) == +0 for finite y > 0. */
- TEST_ff_f (atan2, 1, plus_infty, 0);
-
- /* atan2 (y,inf) == -0 for finite y < 0. */
- TEST_ff_f (atan2, -1, plus_infty, minus_zero);
-
- /* atan2(+inf, x) == pi/2 for finite x. */
- TEST_ff_f (atan2, plus_infty, -1, M_PI_2l);
-
- /* atan2(-inf, x) == -pi/2 for finite x. */
- TEST_ff_f (atan2, minus_infty, 1, -M_PI_2l);
-
- /* atan2 (y,-inf) == +pi for finite y > 0. */
- TEST_ff_f (atan2, 1, minus_infty, M_PIl);
-
- /* atan2 (y,-inf) == -pi for finite y < 0. */
- TEST_ff_f (atan2, -1, minus_infty, -M_PIl);
-
- TEST_ff_f (atan2, plus_infty, plus_infty, M_PI_4l);
- TEST_ff_f (atan2, minus_infty, plus_infty, -M_PI_4l);
- TEST_ff_f (atan2, plus_infty, minus_infty, M_PI_34l);
- TEST_ff_f (atan2, minus_infty, minus_infty, -M_PI_34l);
- TEST_ff_f (atan2, nan_value, nan_value, nan_value);
-
- TEST_ff_f (atan2, 0.75L, 1, 0.643501108793284386802809228717322638L);
- TEST_ff_f (atan2, -0.75L, 1.0L, -0.643501108793284386802809228717322638L);
- TEST_ff_f (atan2, 0.75L, -1.0L, 2.49809154479650885165983415456218025L);
- TEST_ff_f (atan2, -0.75L, -1.0L, -2.49809154479650885165983415456218025L);
- TEST_ff_f (atan2, 0.390625L, .00029L, 1.57005392693128974780151246612928941L);
- TEST_ff_f (atan2, 1.390625L, 0.9296875L, 0.981498387184244311516296577615519772L);
-
- TEST_ff_f (atan2, -0.00756827042671106339L, -.001792735857538728036L,
-1.80338464113663849327153994379639112L);
-
- END (atan2);
-}
-
-static void
-cabs_test (void)
-{
- errno = 0;
- FUNC(cabs) (BUILD_COMPLEX (0.7L, 12.4L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (cabs);
-
- /* cabs (x + iy) is specified as hypot (x,y) */
-
- /* cabs (+inf + i x) == +inf. */
- TEST_c_f (cabs, plus_infty, 1.0, plus_infty);
- /* cabs (-inf + i x) == +inf. */
- TEST_c_f (cabs, minus_infty, 1.0, plus_infty);
-
- TEST_c_f (cabs, minus_infty, nan_value, plus_infty);
- TEST_c_f (cabs, minus_infty, nan_value, plus_infty);
-
- TEST_c_f (cabs, nan_value, nan_value, nan_value);
-
- /* cabs (x,y) == cabs (y,x). */
- TEST_c_f (cabs, 0.75L, 12.390625L, 12.4133028598606664302388810868156657L);
- /* cabs (x,y) == cabs (-x,y). */
- TEST_c_f (cabs, -12.390625L, 0.75L, 12.4133028598606664302388810868156657L);
- /* cabs (x,y) == cabs (-y,x). */
- TEST_c_f (cabs, -0.75L, 12.390625L, 12.4133028598606664302388810868156657L);
- /* cabs (x,y) == cabs (-x,-y). */
- TEST_c_f (cabs, -12.390625L, -0.75L, 12.4133028598606664302388810868156657L);
- /* cabs (x,y) == cabs (-y,-x). */
- TEST_c_f (cabs, -0.75L, -12.390625L, 12.4133028598606664302388810868156657L);
- /* cabs (x,0) == fabs (x). */
- TEST_c_f (cabs, -0.75L, 0, 0.75L);
- TEST_c_f (cabs, 0.75L, 0, 0.75L);
- TEST_c_f (cabs, -1.0L, 0, 1.0L);
- TEST_c_f (cabs, 1.0L, 0, 1.0L);
- TEST_c_f (cabs, -5.7e7L, 0, 5.7e7L);
- TEST_c_f (cabs, 5.7e7L, 0, 5.7e7L);
-
- TEST_c_f (cabs, 0.75L, 1.25L, 1.45773797371132511771853821938639577L);
-
- END (cabs);
-}
-
-
-#if 0
-static void
-cacos_test (void)
-{
- errno = 0;
- FUNC(cacos) (BUILD_COMPLEX (0.7L, 1.2L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (cacos);
-
-
- TEST_c_c (cacos, 0, 0, M_PI_2l, minus_zero);
- TEST_c_c (cacos, minus_zero, 0, M_PI_2l, minus_zero);
- TEST_c_c (cacos, minus_zero, minus_zero, M_PI_2l, 0.0);
- TEST_c_c (cacos, 0, minus_zero, M_PI_2l, 0.0);
-
- TEST_c_c (cacos, minus_infty, plus_infty, M_PI_34l, minus_infty);
- TEST_c_c (cacos, minus_infty, minus_infty, M_PI_34l, plus_infty);
-
- TEST_c_c (cacos, plus_infty, plus_infty, M_PI_4l, minus_infty);
- TEST_c_c (cacos, plus_infty, minus_infty, M_PI_4l, plus_infty);
-
- TEST_c_c (cacos, -10.0, plus_infty, M_PI_2l, minus_infty);
- TEST_c_c (cacos, -10.0, minus_infty, M_PI_2l, plus_infty);
- TEST_c_c (cacos, 0, plus_infty, M_PI_2l, minus_infty);
- TEST_c_c (cacos, 0, minus_infty, M_PI_2l, plus_infty);
- TEST_c_c (cacos, 0.1L, plus_infty, M_PI_2l, minus_infty);
- TEST_c_c (cacos, 0.1L, minus_infty, M_PI_2l, plus_infty);
-
- TEST_c_c (cacos, minus_infty, 0, M_PIl, minus_infty);
- TEST_c_c (cacos, minus_infty, minus_zero, M_PIl, plus_infty);
- TEST_c_c (cacos, minus_infty, 100, M_PIl, minus_infty);
- TEST_c_c (cacos, minus_infty, -100, M_PIl, plus_infty);
-
- TEST_c_c (cacos, plus_infty, 0, 0.0, minus_infty);
- TEST_c_c (cacos, plus_infty, minus_zero, 0.0, plus_infty);
- TEST_c_c (cacos, plus_infty, 0.5, 0.0, minus_infty);
- TEST_c_c (cacos, plus_infty, -0.5, 0.0, plus_infty);
-
- TEST_c_c (cacos, plus_infty, nan_value, nan_value, plus_infty, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (cacos, minus_infty, nan_value, nan_value, plus_infty, IGNORE_ZERO_INF_SIGN);
-
- TEST_c_c (cacos, 0, nan_value, M_PI_2l, nan_value);
- TEST_c_c (cacos, minus_zero, nan_value, M_PI_2l, nan_value);
-
- TEST_c_c (cacos, nan_value, plus_infty, nan_value, minus_infty);
- TEST_c_c (cacos, nan_value, minus_infty, nan_value, plus_infty);
-
- TEST_c_c (cacos, 10.5, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (cacos, -10.5, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (cacos, nan_value, 0.75, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (cacos, nan_value, -0.75, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (cacos, nan_value, nan_value, nan_value, nan_value);
-
- TEST_c_c (cacos, 0.75L, 1.25L, 1.11752014915610270578240049553777969L,
-1.13239363160530819522266333696834467L);
- TEST_c_c (cacos, -2, -3, 2.1414491111159960199416055713254211L,
1.9833870299165354323470769028940395L);
-
- END (cacos, complex);
-}
-
-static void
-cacosh_test (void)
-{
- errno = 0;
- FUNC(cacosh) (BUILD_COMPLEX (0.7L, 1.2L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (cacosh);
-
-
- TEST_c_c (cacosh, 0, 0, 0.0, M_PI_2l);
- TEST_c_c (cacosh, minus_zero, 0, 0.0, M_PI_2l);
- TEST_c_c (cacosh, 0, minus_zero, 0.0, -M_PI_2l);
- TEST_c_c (cacosh, minus_zero, minus_zero, 0.0, -M_PI_2l);
- TEST_c_c (cacosh, minus_infty, plus_infty, plus_infty, M_PI_34l);
- TEST_c_c (cacosh, minus_infty, minus_infty, plus_infty, -M_PI_34l);
-
- TEST_c_c (cacosh, plus_infty, plus_infty, plus_infty, M_PI_4l);
- TEST_c_c (cacosh, plus_infty, minus_infty, plus_infty, -M_PI_4l);
-
- TEST_c_c (cacosh, -10.0, plus_infty, plus_infty, M_PI_2l);
- TEST_c_c (cacosh, -10.0, minus_infty, plus_infty, -M_PI_2l);
- TEST_c_c (cacosh, 0, plus_infty, plus_infty, M_PI_2l);
- TEST_c_c (cacosh, 0, minus_infty, plus_infty, -M_PI_2l);
- TEST_c_c (cacosh, 0.1L, plus_infty, plus_infty, M_PI_2l);
- TEST_c_c (cacosh, 0.1L, minus_infty, plus_infty, -M_PI_2l);
-
- TEST_c_c (cacosh, minus_infty, 0, plus_infty, M_PIl);
- TEST_c_c (cacosh, minus_infty, minus_zero, plus_infty, -M_PIl);
- TEST_c_c (cacosh, minus_infty, 100, plus_infty, M_PIl);
- TEST_c_c (cacosh, minus_infty, -100, plus_infty, -M_PIl);
-
- TEST_c_c (cacosh, plus_infty, 0, plus_infty, 0.0);
- TEST_c_c (cacosh, plus_infty, minus_zero, plus_infty, minus_zero);
- TEST_c_c (cacosh, plus_infty, 0.5, plus_infty, 0.0);
- TEST_c_c (cacosh, plus_infty, -0.5, plus_infty, minus_zero);
-
- TEST_c_c (cacosh, plus_infty, nan_value, plus_infty, nan_value);
- TEST_c_c (cacosh, minus_infty, nan_value, plus_infty, nan_value);
-
- TEST_c_c (cacosh, 0, nan_value, nan_value, nan_value);
- TEST_c_c (cacosh, minus_zero, nan_value, nan_value, nan_value);
-
- TEST_c_c (cacosh, nan_value, plus_infty, plus_infty, nan_value);
- TEST_c_c (cacosh, nan_value, minus_infty, plus_infty, nan_value);
-
- TEST_c_c (cacosh, 10.5, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (cacosh, -10.5, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (cacosh, nan_value, 0.75, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (cacosh, nan_value, -0.75, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (cacosh, nan_value, nan_value, nan_value, nan_value);
-
- TEST_c_c (cacosh, 0.75L, 1.25L, 1.13239363160530819522266333696834467L,
1.11752014915610270578240049553777969L);
- TEST_c_c (cacosh, -2, -3, 1.9833870299165354323470769028940395L,
-2.1414491111159960199416055713254211L);
-
- END (cacosh, complex);
-}
-#endif
-
-
-#if __CHK_COMPLEX_STUFF
-static void
-carg_test (void)
-{
- START (carg);
-
- /* carg (x + iy) is specified as atan2 (y, x) */
-
- /* carg (x + i 0) == 0 for x > 0. */
- TEST_c_f (carg, 2.0, 0, 0);
- /* carg (x - i 0) == -0 for x > 0. */
- TEST_c_f (carg, 2.0, minus_zero, minus_zero);
-
- TEST_c_f (carg, 0, 0, 0);
- TEST_c_f (carg, 0, minus_zero, minus_zero);
-
- /* carg (x + i 0) == +pi for x < 0. */
- TEST_c_f (carg, -2.0, 0, M_PIl);
-
- /* carg (x - i 0) == -pi for x < 0. */
- TEST_c_f (carg, -2.0, minus_zero, -M_PIl);
-
- TEST_c_f (carg, minus_zero, 0, M_PIl);
- TEST_c_f (carg, minus_zero, minus_zero, -M_PIl);
-
- /* carg (+0 + i y) == pi/2 for y > 0. */
- TEST_c_f (carg, 0, 2.0, M_PI_2l);
-
- /* carg (-0 + i y) == pi/2 for y > 0. */
- TEST_c_f (carg, minus_zero, 2.0, M_PI_2l);
-
- /* carg (+0 + i y) == -pi/2 for y < 0. */
- TEST_c_f (carg, 0, -2.0, -M_PI_2l);
-
- /* carg (-0 + i y) == -pi/2 for y < 0. */
- TEST_c_f (carg, minus_zero, -2.0, -M_PI_2l);
-
- /* carg (inf + i y) == +0 for finite y > 0. */
- TEST_c_f (carg, plus_infty, 2.0, 0);
-
- /* carg (inf + i y) == -0 for finite y < 0. */
- TEST_c_f (carg, plus_infty, -2.0, minus_zero);
-
- /* carg(x + i inf) == pi/2 for finite x. */
- TEST_c_f (carg, 10.0, plus_infty, M_PI_2l);
-
- /* carg(x - i inf) == -pi/2 for finite x. */
- TEST_c_f (carg, 10.0, minus_infty, -M_PI_2l);
-
- /* carg (-inf + i y) == +pi for finite y > 0. */
- TEST_c_f (carg, minus_infty, 10.0, M_PIl);
-
- /* carg (-inf + i y) == -pi for finite y < 0. */
- TEST_c_f (carg, minus_infty, -10.0, -M_PIl);
-
- TEST_c_f (carg, plus_infty, plus_infty, M_PI_4l);
-
- TEST_c_f (carg, plus_infty, minus_infty, -M_PI_4l);
-
- TEST_c_f (carg, minus_infty, plus_infty, 3 * M_PI_4l);
-
- TEST_c_f (carg, minus_infty, minus_infty, -3 * M_PI_4l);
-
- TEST_c_f (carg, nan_value, nan_value, nan_value);
-
- END (carg);
-}
-#endif /* __CHK_COMPLEX_STUFF */
-
-#if 0
-static void
-casin_test (void)
-{
- errno = 0;
- FUNC(casin) (BUILD_COMPLEX (0.7L, 1.2L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (casin);
-
- TEST_c_c (casin, 0, 0, 0.0, 0.0);
- TEST_c_c (casin, minus_zero, 0, minus_zero, 0.0);
- TEST_c_c (casin, 0, minus_zero, 0.0, minus_zero);
- TEST_c_c (casin, minus_zero, minus_zero, minus_zero, minus_zero);
-
- TEST_c_c (casin, plus_infty, plus_infty, M_PI_4l, plus_infty);
- TEST_c_c (casin, plus_infty, minus_infty, M_PI_4l, minus_infty);
- TEST_c_c (casin, minus_infty, plus_infty, -M_PI_4l, plus_infty);
- TEST_c_c (casin, minus_infty, minus_infty, -M_PI_4l, minus_infty);
-
- TEST_c_c (casin, -10.0, plus_infty, minus_zero, plus_infty);
- TEST_c_c (casin, -10.0, minus_infty, minus_zero, minus_infty);
- TEST_c_c (casin, 0, plus_infty, 0.0, plus_infty);
- TEST_c_c (casin, 0, minus_infty, 0.0, minus_infty);
- TEST_c_c (casin, minus_zero, plus_infty, minus_zero, plus_infty);
- TEST_c_c (casin, minus_zero, minus_infty, minus_zero, minus_infty);
- TEST_c_c (casin, 0.1L, plus_infty, 0.0, plus_infty);
- TEST_c_c (casin, 0.1L, minus_infty, 0.0, minus_infty);
-
- TEST_c_c (casin, minus_infty, 0, -M_PI_2l, plus_infty);
- TEST_c_c (casin, minus_infty, minus_zero, -M_PI_2l, minus_infty);
- TEST_c_c (casin, minus_infty, 100, -M_PI_2l, plus_infty);
- TEST_c_c (casin, minus_infty, -100, -M_PI_2l, minus_infty);
-
- TEST_c_c (casin, plus_infty, 0, M_PI_2l, plus_infty);
- TEST_c_c (casin, plus_infty, minus_zero, M_PI_2l, minus_infty);
- TEST_c_c (casin, plus_infty, 0.5, M_PI_2l, plus_infty);
- TEST_c_c (casin, plus_infty, -0.5, M_PI_2l, minus_infty);
-
- TEST_c_c (casin, nan_value, plus_infty, nan_value, plus_infty);
- TEST_c_c (casin, nan_value, minus_infty, nan_value, minus_infty);
-
- TEST_c_c (casin, 0.0, nan_value, 0.0, nan_value);
- TEST_c_c (casin, minus_zero, nan_value, minus_zero, nan_value);
-
- TEST_c_c (casin, plus_infty, nan_value, nan_value, plus_infty, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (casin, minus_infty, nan_value, nan_value, plus_infty, IGNORE_ZERO_INF_SIGN);
-
- TEST_c_c (casin, nan_value, 10.5, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (casin, nan_value, -10.5, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (casin, 0.75, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (casin, -0.75, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (casin, nan_value, nan_value, nan_value, nan_value);
-
- TEST_c_c (casin, 0.75L, 1.25L, 0.453276177638793913448921196101971749L,
1.13239363160530819522266333696834467L);
- TEST_c_c (casin, -2, -3, -0.57065278432109940071028387968566963L,
-1.9833870299165354323470769028940395L);
-
- END (casin, complex);
-}
-
-
-static void
-casinh_test (void)
-{
- errno = 0;
- FUNC(casinh) (BUILD_COMPLEX (0.7L, 1.2L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (casinh);
-
- TEST_c_c (casinh, 0, 0, 0.0, 0.0);
- TEST_c_c (casinh, minus_zero, 0, minus_zero, 0);
- TEST_c_c (casinh, 0, minus_zero, 0.0, minus_zero);
- TEST_c_c (casinh, minus_zero, minus_zero, minus_zero, minus_zero);
-
- TEST_c_c (casinh, plus_infty, plus_infty, plus_infty, M_PI_4l);
- TEST_c_c (casinh, plus_infty, minus_infty, plus_infty, -M_PI_4l);
- TEST_c_c (casinh, minus_infty, plus_infty, minus_infty, M_PI_4l);
- TEST_c_c (casinh, minus_infty, minus_infty, minus_infty, -M_PI_4l);
-
- TEST_c_c (casinh, -10.0, plus_infty, minus_infty, M_PI_2l);
- TEST_c_c (casinh, -10.0, minus_infty, minus_infty, -M_PI_2l);
- TEST_c_c (casinh, 0, plus_infty, plus_infty, M_PI_2l);
- TEST_c_c (casinh, 0, minus_infty, plus_infty, -M_PI_2l);
- TEST_c_c (casinh, minus_zero, plus_infty, minus_infty, M_PI_2l);
- TEST_c_c (casinh, minus_zero, minus_infty, minus_infty, -M_PI_2l);
- TEST_c_c (casinh, 0.1L, plus_infty, plus_infty, M_PI_2l);
- TEST_c_c (casinh, 0.1L, minus_infty, plus_infty, -M_PI_2l);
-
- TEST_c_c (casinh, minus_infty, 0, minus_infty, 0.0);
- TEST_c_c (casinh, minus_infty, minus_zero, minus_infty, minus_zero);
- TEST_c_c (casinh, minus_infty, 100, minus_infty, 0.0);
- TEST_c_c (casinh, minus_infty, -100, minus_infty, minus_zero);
-
- TEST_c_c (casinh, plus_infty, 0, plus_infty, 0.0);
- TEST_c_c (casinh, plus_infty, minus_zero, plus_infty, minus_zero);
- TEST_c_c (casinh, plus_infty, 0.5, plus_infty, 0.0);
- TEST_c_c (casinh, plus_infty, -0.5, plus_infty, minus_zero);
-
- TEST_c_c (casinh, plus_infty, nan_value, plus_infty, nan_value);
- TEST_c_c (casinh, minus_infty, nan_value, minus_infty, nan_value);
-
- TEST_c_c (casinh, nan_value, 0, nan_value, 0.0);
- TEST_c_c (casinh, nan_value, minus_zero, nan_value, minus_zero);
-
- TEST_c_c (casinh, nan_value, plus_infty, plus_infty, nan_value, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (casinh, nan_value, minus_infty, plus_infty, nan_value,
IGNORE_ZERO_INF_SIGN);
-
- TEST_c_c (casinh, 10.5, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (casinh, -10.5, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (casinh, nan_value, 0.75, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (casinh, -0.75, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (casinh, nan_value, nan_value, nan_value, nan_value);
-
- TEST_c_c (casinh, 0.75L, 1.25L, 1.03171853444778027336364058631006594L,
0.911738290968487636358489564316731207L);
- TEST_c_c (casinh, -2, -3, -1.9686379257930962917886650952454982L,
-0.96465850440760279204541105949953237L);
-
- END (casinh, complex);
-}
-
-
-static void
-catan_test (void)
-{
- errno = 0;
- FUNC(catan) (BUILD_COMPLEX (0.7L, 1.2L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (catan);
-
- TEST_c_c (catan, 0, 0, 0, 0);
- TEST_c_c (catan, minus_zero, 0, minus_zero, 0);
- TEST_c_c (catan, 0, minus_zero, 0, minus_zero);
- TEST_c_c (catan, minus_zero, minus_zero, minus_zero, minus_zero);
-
- TEST_c_c (catan, plus_infty, plus_infty, M_PI_2l, 0);
- TEST_c_c (catan, plus_infty, minus_infty, M_PI_2l, minus_zero);
- TEST_c_c (catan, minus_infty, plus_infty, -M_PI_2l, 0);
- TEST_c_c (catan, minus_infty, minus_infty, -M_PI_2l, minus_zero);
-
-
- TEST_c_c (catan, plus_infty, -10.0, M_PI_2l, minus_zero);
- TEST_c_c (catan, minus_infty, -10.0, -M_PI_2l, minus_zero);
- TEST_c_c (catan, plus_infty, minus_zero, M_PI_2l, minus_zero);
- TEST_c_c (catan, minus_infty, minus_zero, -M_PI_2l, minus_zero);
- TEST_c_c (catan, plus_infty, 0.0, M_PI_2l, 0);
- TEST_c_c (catan, minus_infty, 0.0, -M_PI_2l, 0);
- TEST_c_c (catan, plus_infty, 0.1L, M_PI_2l, 0);
- TEST_c_c (catan, minus_infty, 0.1L, -M_PI_2l, 0);
-
- TEST_c_c (catan, 0.0, minus_infty, M_PI_2l, minus_zero);
- TEST_c_c (catan, minus_zero, minus_infty, -M_PI_2l, minus_zero);
- TEST_c_c (catan, 100.0, minus_infty, M_PI_2l, minus_zero);
- TEST_c_c (catan, -100.0, minus_infty, -M_PI_2l, minus_zero);
-
- TEST_c_c (catan, 0.0, plus_infty, M_PI_2l, 0);
- TEST_c_c (catan, minus_zero, plus_infty, -M_PI_2l, 0);
- TEST_c_c (catan, 0.5, plus_infty, M_PI_2l, 0);
- TEST_c_c (catan, -0.5, plus_infty, -M_PI_2l, 0);
-
- TEST_c_c (catan, nan_value, 0.0, nan_value, 0);
- TEST_c_c (catan, nan_value, minus_zero, nan_value, minus_zero);
-
- TEST_c_c (catan, nan_value, plus_infty, nan_value, 0);
- TEST_c_c (catan, nan_value, minus_infty, nan_value, minus_zero);
-
- TEST_c_c (catan, 0.0, nan_value, nan_value, nan_value);
- TEST_c_c (catan, minus_zero, nan_value, nan_value, nan_value);
-
- TEST_c_c (catan, plus_infty, nan_value, M_PI_2l, 0, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (catan, minus_infty, nan_value, -M_PI_2l, 0, IGNORE_ZERO_INF_SIGN);
-
- TEST_c_c (catan, nan_value, 10.5, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (catan, nan_value, -10.5, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (catan, 0.75, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (catan, -0.75, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (catan, nan_value, nan_value, nan_value, nan_value);
-
- TEST_c_c (catan, 0.75L, 1.25L, 1.10714871779409050301706546017853704L,
0.549306144334054845697622618461262852L);
- TEST_c_c (catan, -2, -3, -1.4099210495965755225306193844604208L,
-0.22907268296853876629588180294200276L);
-
- END (catan, complex);
-}
-
-static void
-catanh_test (void)
-{
- errno = 0;
- FUNC(catanh) (BUILD_COMPLEX (0.7L, 1.2L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (catanh);
-
- TEST_c_c (catanh, 0, 0, 0.0, 0.0);
- TEST_c_c (catanh, minus_zero, 0, minus_zero, 0.0);
- TEST_c_c (catanh, 0, minus_zero, 0.0, minus_zero);
- TEST_c_c (catanh, minus_zero, minus_zero, minus_zero, minus_zero);
-
- TEST_c_c (catanh, plus_infty, plus_infty, 0.0, M_PI_2l);
- TEST_c_c (catanh, plus_infty, minus_infty, 0.0, -M_PI_2l);
- TEST_c_c (catanh, minus_infty, plus_infty, minus_zero, M_PI_2l);
- TEST_c_c (catanh, minus_infty, minus_infty, minus_zero, -M_PI_2l);
-
- TEST_c_c (catanh, -10.0, plus_infty, minus_zero, M_PI_2l);
- TEST_c_c (catanh, -10.0, minus_infty, minus_zero, -M_PI_2l);
- TEST_c_c (catanh, minus_zero, plus_infty, minus_zero, M_PI_2l);
- TEST_c_c (catanh, minus_zero, minus_infty, minus_zero, -M_PI_2l);
- TEST_c_c (catanh, 0, plus_infty, 0.0, M_PI_2l);
- TEST_c_c (catanh, 0, minus_infty, 0.0, -M_PI_2l);
- TEST_c_c (catanh, 0.1L, plus_infty, 0.0, M_PI_2l);
- TEST_c_c (catanh, 0.1L, minus_infty, 0.0, -M_PI_2l);
-
- TEST_c_c (catanh, minus_infty, 0, minus_zero, M_PI_2l);
- TEST_c_c (catanh, minus_infty, minus_zero, minus_zero, -M_PI_2l);
- TEST_c_c (catanh, minus_infty, 100, minus_zero, M_PI_2l);
- TEST_c_c (catanh, minus_infty, -100, minus_zero, -M_PI_2l);
-
- TEST_c_c (catanh, plus_infty, 0, 0.0, M_PI_2l);
- TEST_c_c (catanh, plus_infty, minus_zero, 0.0, -M_PI_2l);
- TEST_c_c (catanh, plus_infty, 0.5, 0.0, M_PI_2l);
- TEST_c_c (catanh, plus_infty, -0.5, 0.0, -M_PI_2l);
-
- TEST_c_c (catanh, 0, nan_value, 0.0, nan_value);
- TEST_c_c (catanh, minus_zero, nan_value, minus_zero, nan_value);
-
- TEST_c_c (catanh, plus_infty, nan_value, 0.0, nan_value);
- TEST_c_c (catanh, minus_infty, nan_value, minus_zero, nan_value);
-
- TEST_c_c (catanh, nan_value, 0, nan_value, nan_value);
- TEST_c_c (catanh, nan_value, minus_zero, nan_value, nan_value);
-
- TEST_c_c (catanh, nan_value, plus_infty, 0.0, M_PI_2l, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (catanh, nan_value, minus_infty, 0.0, -M_PI_2l, IGNORE_ZERO_INF_SIGN);
-
- TEST_c_c (catanh, 10.5, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (catanh, -10.5, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (catanh, nan_value, 0.75, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (catanh, nan_value, -0.75, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (catanh, nan_value, nan_value, nan_value, nan_value);
-
- TEST_c_c (catanh, 0.75L, 1.25L, 0.261492138795671927078652057366532140L,
0.996825126463918666098902241310446708L);
- TEST_c_c (catanh, -2, -3, -0.14694666622552975204743278515471595L,
-1.3389725222944935611241935759091443L);
-
- END (catanh, complex);
-}
-#endif
-
-static void
-cbrt_test (void)
-{
- errno = 0;
- FUNC(cbrt) (8);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (cbrt);
-
- TEST_f_f (cbrt, 0.0, 0.0);
- TEST_f_f (cbrt, minus_zero, minus_zero);
-
- TEST_f_f (cbrt, plus_infty, plus_infty);
- TEST_f_f (cbrt, minus_infty, minus_infty);
- TEST_f_f (cbrt, nan_value, nan_value);
-
- TEST_f_f (cbrt, -0.001L, -0.1L);
- TEST_f_f (cbrt, 8, 2);
- TEST_f_f (cbrt, -27.0, -3.0);
- TEST_f_f (cbrt, 0.9921875L, 0.997389022060725270579075195353955217L);
- TEST_f_f (cbrt, 0.75L, 0.908560296416069829445605878163630251L);
-
- END (cbrt);
-}
-
-
-#if 0
-static void
-ccos_test (void)
-{
- errno = 0;
- FUNC(ccos) (BUILD_COMPLEX (0, 0));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (ccos);
-
- TEST_c_c (ccos, 0.0, 0.0, 1.0, minus_zero);
- TEST_c_c (ccos, minus_zero, 0.0, 1.0, 0.0);
- TEST_c_c (ccos, 0.0, minus_zero, 1.0, 0.0);
- TEST_c_c (ccos, minus_zero, minus_zero, 1.0, minus_zero);
-
- TEST_c_c (ccos, plus_infty, 0.0, nan_value, 0.0,
INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (ccos, plus_infty, minus_zero, nan_value, 0.0,
INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (ccos, minus_infty, 0.0, nan_value, 0.0,
INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (ccos, minus_infty, minus_zero, nan_value, 0.0,
INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
-
- TEST_c_c (ccos, 0.0, plus_infty, plus_infty, minus_zero);
- TEST_c_c (ccos, 0.0, minus_infty, plus_infty, 0.0);
- TEST_c_c (ccos, minus_zero, plus_infty, plus_infty, 0.0);
- TEST_c_c (ccos, minus_zero, minus_infty, plus_infty, minus_zero);
-
- TEST_c_c (ccos, plus_infty, plus_infty, plus_infty, nan_value, INVALID_EXCEPTION);
- TEST_c_c (ccos, minus_infty, plus_infty, plus_infty, nan_value, INVALID_EXCEPTION);
- TEST_c_c (ccos, plus_infty, minus_infty, plus_infty, nan_value, INVALID_EXCEPTION);
- TEST_c_c (ccos, minus_infty, minus_infty, plus_infty, nan_value, INVALID_EXCEPTION);
-
- TEST_c_c (ccos, 4.625, plus_infty, minus_infty, plus_infty);
- TEST_c_c (ccos, 4.625, minus_infty, minus_infty, minus_infty);
- TEST_c_c (ccos, -4.625, plus_infty, minus_infty, minus_infty);
- TEST_c_c (ccos, -4.625, minus_infty, minus_infty, plus_infty);
-
- TEST_c_c (ccos, plus_infty, 6.75, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_c_c (ccos, plus_infty, -6.75, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_c_c (ccos, minus_infty, 6.75, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_c_c (ccos, minus_infty, -6.75, nan_value, nan_value, INVALID_EXCEPTION);
-
- TEST_c_c (ccos, nan_value, 0.0, nan_value, 0.0, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (ccos, nan_value, minus_zero, nan_value, 0.0, IGNORE_ZERO_INF_SIGN);
-
- TEST_c_c (ccos, nan_value, plus_infty, plus_infty, nan_value);
- TEST_c_c (ccos, nan_value, minus_infty, plus_infty, nan_value);
-
- TEST_c_c (ccos, nan_value, 9.0, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (ccos, nan_value, -9.0, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (ccos, 0.0, nan_value, nan_value, 0.0, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (ccos, minus_zero, nan_value, nan_value, 0.0, IGNORE_ZERO_INF_SIGN);
-
- TEST_c_c (ccos, 10.0, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (ccos, -10.0, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (ccos, plus_infty, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (ccos, minus_infty, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (ccos, nan_value, nan_value, nan_value, nan_value);
-
- TEST_c_c (ccos, 0.75L, 1.25L, 1.38173873063425888530729933139078645L,
-1.09193013555397466170919531722024128L);
- TEST_c_c (ccos, -2, -3, -4.18962569096880723013255501961597373L,
-9.10922789375533659797919726277886212L);
-
- END (ccos, complex);
-}
-
-
-static void
-ccosh_test (void)
-{
- errno = 0;
- FUNC(ccosh) (BUILD_COMPLEX (0.7L, 1.2L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (ccosh);
-
- TEST_c_c (ccosh, 0.0, 0.0, 1.0, 0.0);
- TEST_c_c (ccosh, minus_zero, 0.0, 1.0, minus_zero);
- TEST_c_c (ccosh, 0.0, minus_zero, 1.0, minus_zero);
- TEST_c_c (ccosh, minus_zero, minus_zero, 1.0, 0.0);
-
- TEST_c_c (ccosh, 0.0, plus_infty, nan_value, 0.0,
INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (ccosh, minus_zero, plus_infty, nan_value, 0.0,
INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (ccosh, 0.0, minus_infty, nan_value, 0.0,
INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (ccosh, minus_zero, minus_infty, nan_value, 0.0,
INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
-
- TEST_c_c (ccosh, plus_infty, 0.0, plus_infty, 0.0);
- TEST_c_c (ccosh, minus_infty, 0.0, plus_infty, minus_zero);
- TEST_c_c (ccosh, plus_infty, minus_zero, plus_infty, minus_zero);
- TEST_c_c (ccosh, minus_infty, minus_zero, plus_infty, 0.0);
-
- TEST_c_c (ccosh, plus_infty, plus_infty, plus_infty, nan_value, INVALID_EXCEPTION);
- TEST_c_c (ccosh, minus_infty, plus_infty, plus_infty, nan_value, INVALID_EXCEPTION);
- TEST_c_c (ccosh, plus_infty, minus_infty, plus_infty, nan_value, INVALID_EXCEPTION);
- TEST_c_c (ccosh, minus_infty, minus_infty, plus_infty, nan_value, INVALID_EXCEPTION);
-
- TEST_c_c (ccosh, plus_infty, 4.625, minus_infty, minus_infty);
- TEST_c_c (ccosh, minus_infty, 4.625, minus_infty, plus_infty);
- TEST_c_c (ccosh, plus_infty, -4.625, minus_infty, plus_infty);
- TEST_c_c (ccosh, minus_infty, -4.625, minus_infty, minus_infty);
-
- TEST_c_c (ccosh, 6.75, plus_infty, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_c_c (ccosh, -6.75, plus_infty, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_c_c (ccosh, 6.75, minus_infty, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_c_c (ccosh, -6.75, minus_infty, nan_value, nan_value, INVALID_EXCEPTION);
-
- TEST_c_c (ccosh, 0.0, nan_value, nan_value, 0.0, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (ccosh, minus_zero, nan_value, nan_value, 0.0, IGNORE_ZERO_INF_SIGN);
-
- TEST_c_c (ccosh, plus_infty, nan_value, plus_infty, nan_value);
- TEST_c_c (ccosh, minus_infty, nan_value, plus_infty, nan_value);
-
- TEST_c_c (ccosh, 9.0, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (ccosh, -9.0, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (ccosh, nan_value, 0.0, nan_value, 0.0, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (ccosh, nan_value, minus_zero, nan_value, 0.0, IGNORE_ZERO_INF_SIGN);
-
- TEST_c_c (ccosh, nan_value, 10.0, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (ccosh, nan_value, -10.0, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (ccosh, nan_value, plus_infty, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (ccosh, nan_value, minus_infty, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (ccosh, nan_value, nan_value, nan_value, nan_value);
-
- TEST_c_c (ccosh, 0.75L, 1.25L, 0.408242591877968807788852146397499084L,
0.780365930845853240391326216300863152L);
-
- TEST_c_c (ccosh, -2, -3, -3.72454550491532256547397070325597253L,
0.511822569987384608834463849801875634L);
-
- END (ccosh, complex);
-}
-#endif
-
-
-static void
-ceil_test (void)
-{
- START (ceil);
-
- TEST_f_f (ceil, 0.0, 0.0);
- TEST_f_f (ceil, minus_zero, minus_zero);
- TEST_f_f (ceil, plus_infty, plus_infty);
- TEST_f_f (ceil, minus_infty, minus_infty);
- TEST_f_f (ceil, nan_value, nan_value);
-
- TEST_f_f (ceil, M_PIl, 4.0);
- TEST_f_f (ceil, -M_PIl, -3.0);
- TEST_f_f (ceil, 0.25, 1.0);
- TEST_f_f (ceil, -0.25, minus_zero);
-
-#ifdef TEST_LDOUBLE
- /* The result can only be represented in long double. */
- TEST_f_f (ceil, 4503599627370495.5L, 4503599627370496.0L);
- TEST_f_f (ceil, 4503599627370496.25L, 4503599627370497.0L);
- TEST_f_f (ceil, 4503599627370496.5L, 4503599627370497.0L);
- TEST_f_f (ceil, 4503599627370496.75L, 4503599627370497.0L);
- TEST_f_f (ceil, 4503599627370497.5L, 4503599627370498.0L);
-
- TEST_f_f (ceil, -4503599627370495.5L, -4503599627370495.0L);
- TEST_f_f (ceil, -4503599627370496.25L, -4503599627370496.0L);
- TEST_f_f (ceil, -4503599627370496.5L, -4503599627370496.0L);
- TEST_f_f (ceil, -4503599627370496.75L, -4503599627370496.0L);
- TEST_f_f (ceil, -4503599627370497.5L, -4503599627370497.0L);
-
- TEST_f_f (ceil, 9007199254740991.5L, 9007199254740992.0L);
- TEST_f_f (ceil, 9007199254740992.25L, 9007199254740993.0L);
- TEST_f_f (ceil, 9007199254740992.5L, 9007199254740993.0L);
- TEST_f_f (ceil, 9007199254740992.75L, 9007199254740993.0L);
- TEST_f_f (ceil, 9007199254740993.5L, 9007199254740994.0L);
-
- TEST_f_f (ceil, -9007199254740991.5L, -9007199254740991.0L);
- TEST_f_f (ceil, -9007199254740992.25L, -9007199254740992.0L);
- TEST_f_f (ceil, -9007199254740992.5L, -9007199254740992.0L);
- TEST_f_f (ceil, -9007199254740992.75L, -9007199254740992.0L);
- TEST_f_f (ceil, -9007199254740993.5L, -9007199254740993.0L);
-
- TEST_f_f (ceil, 72057594037927935.5L, 72057594037927936.0L);
- TEST_f_f (ceil, 72057594037927936.25L, 72057594037927937.0L);
- TEST_f_f (ceil, 72057594037927936.5L, 72057594037927937.0L);
- TEST_f_f (ceil, 72057594037927936.75L, 72057594037927937.0L);
- TEST_f_f (ceil, 72057594037927937.5L, 72057594037927938.0L);
-
- TEST_f_f (ceil, -72057594037927935.5L, -72057594037927935.0L);
- TEST_f_f (ceil, -72057594037927936.25L, -72057594037927936.0L);
- TEST_f_f (ceil, -72057594037927936.5L, -72057594037927936.0L);
- TEST_f_f (ceil, -72057594037927936.75L, -72057594037927936.0L);
- TEST_f_f (ceil, -72057594037927937.5L, -72057594037927937.0L);
-
- TEST_f_f (ceil, 10141204801825835211973625643007.5L,
10141204801825835211973625643008.0L);
- TEST_f_f (ceil, 10141204801825835211973625643008.25L,
10141204801825835211973625643009.0L);
- TEST_f_f (ceil, 10141204801825835211973625643008.5L,
10141204801825835211973625643009.0L);
- TEST_f_f (ceil, 10141204801825835211973625643008.75L,
10141204801825835211973625643009.0L);
- TEST_f_f (ceil, 10141204801825835211973625643009.5L,
10141204801825835211973625643010.0L);
-#endif
-
- END (ceil);
-}
-
-
-#if __CHK_COMPLEX_STUFF
-static void
-cexp_test (void)
-{
- errno = 0;
- FUNC(cexp) (BUILD_COMPLEX (0, 0));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (cexp);
-
- TEST_c_c (cexp, plus_zero, plus_zero, 1, 0.0);
- TEST_c_c (cexp, minus_zero, plus_zero, 1, 0.0);
- TEST_c_c (cexp, plus_zero, minus_zero, 1, minus_zero);
- TEST_c_c (cexp, minus_zero, minus_zero, 1, minus_zero);
-
- TEST_c_c (cexp, plus_infty, plus_zero, plus_infty, 0.0);
- TEST_c_c (cexp, plus_infty, minus_zero, plus_infty, minus_zero);
-
- TEST_c_c (cexp, minus_infty, plus_zero, 0.0, 0.0);
- TEST_c_c (cexp, minus_infty, minus_zero, 0.0, minus_zero);
-
- TEST_c_c (cexp, 0.0, plus_infty, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_c_c (cexp, minus_zero, plus_infty, nan_value, nan_value, INVALID_EXCEPTION);
-
- TEST_c_c (cexp, 0.0, minus_infty, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_c_c (cexp, minus_zero, minus_infty, nan_value, nan_value, INVALID_EXCEPTION);
-
- TEST_c_c (cexp, 100.0, plus_infty, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_c_c (cexp, -100.0, plus_infty, nan_value, nan_value, INVALID_EXCEPTION);
-
- TEST_c_c (cexp, 100.0, minus_infty, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_c_c (cexp, -100.0, minus_infty, nan_value, nan_value, INVALID_EXCEPTION);
-
- TEST_c_c (cexp, minus_infty, 2.0, minus_zero, 0.0);
- TEST_c_c (cexp, minus_infty, 4.0, minus_zero, minus_zero);
- TEST_c_c (cexp, plus_infty, 2.0, minus_infty, plus_infty);
- TEST_c_c (cexp, plus_infty, 4.0, minus_infty, minus_infty);
-
- TEST_c_c (cexp, plus_infty, plus_infty, plus_infty, nan_value,
INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (cexp, plus_infty, minus_infty, plus_infty, nan_value,
INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
-
- TEST_c_c (cexp, minus_infty, plus_infty, 0.0, 0.0, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (cexp, minus_infty, minus_infty, 0.0, minus_zero, IGNORE_ZERO_INF_SIGN);
-
- TEST_c_c (cexp, minus_infty, nan_value, 0, 0, IGNORE_ZERO_INF_SIGN);
-
- TEST_c_c (cexp, plus_infty, nan_value, plus_infty, nan_value);
-
- TEST_c_c (cexp, nan_value, 0.0, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (cexp, nan_value, 1.0, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (cexp, nan_value, plus_infty, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (cexp, 0, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (cexp, 1, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (cexp, nan_value, nan_value, nan_value, nan_value);
-
- TEST_c_c (cexp, 0.75L, 1.25L, 0.667537446429131586942201977015932112L,
2.00900045494094876258347228145863909L);
- TEST_c_c (cexp, -2.0, -3.0, -0.13398091492954261346140525546115575L,
-0.019098516261135196432576240858800925L);
-
- END (cexp, complex);
-}
-#endif /* __CHK_COMPLEX_STUFF */
-
-#if 0
-static void
-cimag_test (void)
-{
- START (cimag);
- TEST_c_f (cimag, 1.0, 0.0, 0.0);
- TEST_c_f (cimag, 1.0, minus_zero, minus_zero);
- TEST_c_f (cimag, 1.0, nan_value, nan_value);
- TEST_c_f (cimag, nan_value, nan_value, nan_value);
- TEST_c_f (cimag, 1.0, plus_infty, plus_infty);
- TEST_c_f (cimag, 1.0, minus_infty, minus_infty);
- TEST_c_f (cimag, 2.0, 3.0, 3.0);
-
- END (cimag);
-}
-
-static void
-clog_test (void)
-{
- errno = 0;
- FUNC(clog) (BUILD_COMPLEX (-2, -3));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (clog);
-
- TEST_c_c (clog, minus_zero, 0, minus_infty, M_PIl, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_c_c (clog, minus_zero, minus_zero, minus_infty, -M_PIl,
DIVIDE_BY_ZERO_EXCEPTION);
-
- TEST_c_c (clog, 0, 0, minus_infty, 0.0, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_c_c (clog, 0, minus_zero, minus_infty, minus_zero, DIVIDE_BY_ZERO_EXCEPTION);
-
- TEST_c_c (clog, minus_infty, plus_infty, plus_infty, M_PI_34l);
- TEST_c_c (clog, minus_infty, minus_infty, plus_infty, -M_PI_34l);
-
- TEST_c_c (clog, plus_infty, plus_infty, plus_infty, M_PI_4l);
- TEST_c_c (clog, plus_infty, minus_infty, plus_infty, -M_PI_4l);
-
- TEST_c_c (clog, 0, plus_infty, plus_infty, M_PI_2l);
- TEST_c_c (clog, 3, plus_infty, plus_infty, M_PI_2l);
- TEST_c_c (clog, minus_zero, plus_infty, plus_infty, M_PI_2l);
- TEST_c_c (clog, -3, plus_infty, plus_infty, M_PI_2l);
- TEST_c_c (clog, 0, minus_infty, plus_infty, -M_PI_2l);
- TEST_c_c (clog, 3, minus_infty, plus_infty, -M_PI_2l);
- TEST_c_c (clog, minus_zero, minus_infty, plus_infty, -M_PI_2l);
- TEST_c_c (clog, -3, minus_infty, plus_infty, -M_PI_2l);
-
- TEST_c_c (clog, minus_infty, 0, plus_infty, M_PIl);
- TEST_c_c (clog, minus_infty, 1, plus_infty, M_PIl);
- TEST_c_c (clog, minus_infty, minus_zero, plus_infty, -M_PIl);
- TEST_c_c (clog, minus_infty, -1, plus_infty, -M_PIl);
-
- TEST_c_c (clog, plus_infty, 0, plus_infty, 0.0);
- TEST_c_c (clog, plus_infty, 1, plus_infty, 0.0);
- TEST_c_c (clog, plus_infty, minus_zero, plus_infty, minus_zero);
- TEST_c_c (clog, plus_infty, -1, plus_infty, minus_zero);
-
- TEST_c_c (clog, plus_infty, nan_value, plus_infty, nan_value);
- TEST_c_c (clog, minus_infty, nan_value, plus_infty, nan_value);
-
- TEST_c_c (clog, nan_value, plus_infty, plus_infty, nan_value);
- TEST_c_c (clog, nan_value, minus_infty, plus_infty, nan_value);
-
- TEST_c_c (clog, 0, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (clog, 3, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (clog, minus_zero, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (clog, -3, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (clog, nan_value, 0, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (clog, nan_value, 5, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (clog, nan_value, minus_zero, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (clog, nan_value, -5, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (clog, nan_value, nan_value, nan_value, nan_value);
-
- TEST_c_c (clog, 0.75L, 1.25L, 0.376885901188190075998919126749298416L,
1.03037682652431246378774332703115153L);
- TEST_c_c (clog, -2, -3, 1.2824746787307683680267437207826593L,
-2.1587989303424641704769327722648368L);
-
- END (clog, complex);
-}
-
-
-static void
-clog10_test (void)
-{
- errno = 0;
- FUNC(clog10) (BUILD_COMPLEX (0.7L, 1.2L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (clog10);
-
- TEST_c_c (clog10, minus_zero, 0, minus_infty, M_PIl, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_c_c (clog10, minus_zero, minus_zero, minus_infty, -M_PIl,
DIVIDE_BY_ZERO_EXCEPTION);
-
- TEST_c_c (clog10, 0, 0, minus_infty, 0.0, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_c_c (clog10, 0, minus_zero, minus_infty, minus_zero, DIVIDE_BY_ZERO_EXCEPTION);
-
- TEST_c_c (clog10, minus_infty, plus_infty, plus_infty, M_PI_34_LOG10El);
-
- TEST_c_c (clog10, plus_infty, plus_infty, plus_infty, M_PI4_LOG10El);
- TEST_c_c (clog10, plus_infty, minus_infty, plus_infty, -M_PI4_LOG10El);
-
- TEST_c_c (clog10, 0, plus_infty, plus_infty, M_PI2_LOG10El);
- TEST_c_c (clog10, 3, plus_infty, plus_infty, M_PI2_LOG10El);
- TEST_c_c (clog10, minus_zero, plus_infty, plus_infty, M_PI2_LOG10El);
- TEST_c_c (clog10, -3, plus_infty, plus_infty, M_PI2_LOG10El);
- TEST_c_c (clog10, 0, minus_infty, plus_infty, -M_PI2_LOG10El);
- TEST_c_c (clog10, 3, minus_infty, plus_infty, -M_PI2_LOG10El);
- TEST_c_c (clog10, minus_zero, minus_infty, plus_infty, -M_PI2_LOG10El);
- TEST_c_c (clog10, -3, minus_infty, plus_infty, -M_PI2_LOG10El);
-
- TEST_c_c (clog10, minus_infty, 0, plus_infty, M_PI_LOG10El);
- TEST_c_c (clog10, minus_infty, 1, plus_infty, M_PI_LOG10El);
- TEST_c_c (clog10, minus_infty, minus_zero, plus_infty, -M_PI_LOG10El);
- TEST_c_c (clog10, minus_infty, -1, plus_infty, -M_PI_LOG10El);
-
- TEST_c_c (clog10, plus_infty, 0, plus_infty, 0.0);
- TEST_c_c (clog10, plus_infty, 1, plus_infty, 0.0);
- TEST_c_c (clog10, plus_infty, minus_zero, plus_infty, minus_zero);
- TEST_c_c (clog10, plus_infty, -1, plus_infty, minus_zero);
-
- TEST_c_c (clog10, plus_infty, nan_value, plus_infty, nan_value);
- TEST_c_c (clog10, minus_infty, nan_value, plus_infty, nan_value);
-
- TEST_c_c (clog10, nan_value, plus_infty, plus_infty, nan_value);
- TEST_c_c (clog10, nan_value, minus_infty, plus_infty, nan_value);
-
- TEST_c_c (clog10, 0, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (clog10, 3, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (clog10, minus_zero, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (clog10, -3, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (clog10, nan_value, 0, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (clog10, nan_value, 5, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (clog10, nan_value, minus_zero, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (clog10, nan_value, -5, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (clog10, nan_value, nan_value, nan_value, nan_value);
-
- TEST_c_c (clog10, 0.75L, 1.25L, 0.163679467193165171449476605077428975L,
0.447486970040493067069984724340855636L);
- TEST_c_c (clog10, -2, -3, 0.556971676153418384603252578971164214L,
-0.937554462986374708541507952140189646L);
-
- END (clog10, complex);
-}
-#endif
-
-
-#if 0
-static void
-conj_test (void)
-{
- START (conj);
- TEST_c_c (conj, 0.0, 0.0, 0.0, minus_zero);
- TEST_c_c (conj, 0.0, minus_zero, 0.0, 0.0);
- TEST_c_c (conj, nan_value, nan_value, nan_value, nan_value);
- TEST_c_c (conj, plus_infty, minus_infty, plus_infty, plus_infty);
- TEST_c_c (conj, plus_infty, plus_infty, plus_infty, minus_infty);
- TEST_c_c (conj, 1.0, 2.0, 1.0, -2.0);
- TEST_c_c (conj, 3.0, -4.0, 3.0, 4.0);
-
- END (conj, complex);
-}
-#endif
-
-
-static void
-copysign_test (void)
-{
- START (copysign);
-
- TEST_ff_f (copysign, 0, 4, 0);
- TEST_ff_f (copysign, 0, -4, minus_zero);
- TEST_ff_f (copysign, minus_zero, 4, 0);
- TEST_ff_f (copysign, minus_zero, -4, minus_zero);
-
- TEST_ff_f (copysign, plus_infty, 0, plus_infty);
- TEST_ff_f (copysign, plus_infty, minus_zero, minus_infty);
- TEST_ff_f (copysign, minus_infty, 0, plus_infty);
- TEST_ff_f (copysign, minus_infty, minus_zero, minus_infty);
-
- TEST_ff_f (copysign, 0, plus_infty, 0);
- TEST_ff_f (copysign, 0, minus_zero, minus_zero);
- TEST_ff_f (copysign, minus_zero, plus_infty, 0);
- TEST_ff_f (copysign, minus_zero, minus_zero, minus_zero);
-
- /* XXX More correctly we would have to check the sign of the NaN. */
- TEST_ff_f (copysign, nan_value, 0, nan_value);
- TEST_ff_f (copysign, nan_value, minus_zero, nan_value);
- TEST_ff_f (copysign, -nan_value, 0, nan_value);
- TEST_ff_f (copysign, -nan_value, minus_zero, nan_value);
-
- END (copysign);
-}
-
-
-static void
-cos_test (void)
-{
- errno = 0;
- FUNC(cos) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (cos);
-
- TEST_f_f (cos, 0, 1);
- TEST_f_f (cos, minus_zero, 1);
- TEST_f_f (cos, plus_infty, nan_value, INVALID_EXCEPTION);
- TEST_f_f (cos, minus_infty, nan_value, INVALID_EXCEPTION);
- TEST_f_f (cos, nan_value, nan_value);
-
- TEST_f_f (cos, M_PI_6l * 2.0, 0.5);
- TEST_f_f (cos, M_PI_6l * 4.0, -0.5);
- TEST_f_f (cos, M_PI_2l, 0);
-
- TEST_f_f (cos, 0.75L, 0.731688868873820886311838753000084544L);
-
-#ifdef TEST_DOUBLE
- TEST_f_f (cos, 0.80190127184058835, 0.69534156199418473);
-#endif
-
- END (cos);
-}
-
-
-static void
-cosh_test (void)
-{
- errno = 0;
- FUNC(cosh) (0.7L);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (cosh);
- TEST_f_f (cosh, 0, 1);
- TEST_f_f (cosh, minus_zero, 1);
-
-#ifndef TEST_INLINE
- TEST_f_f (cosh, plus_infty, plus_infty);
- TEST_f_f (cosh, minus_infty, plus_infty);
-#endif
- TEST_f_f (cosh, nan_value, nan_value);
-
- TEST_f_f (cosh, 0.75L, 1.29468328467684468784170818539018176L);
-
- END (cosh);
-}
-
-
-#if 0
-static void
-cpow_test (void)
-{
- errno = 0;
- FUNC(cpow) (BUILD_COMPLEX (1, 0), BUILD_COMPLEX (0, 0));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (cpow);
-
- TEST_cc_c (cpow, 1, 0, 0, 0, 1.0, 0.0);
- TEST_cc_c (cpow, 2, 0, 10, 0, 1024.0, 0.0);
-
- TEST_cc_c (cpow, M_El, 0, 0, 2 * M_PIl, 1.0, 0.0);
- TEST_cc_c (cpow, 2, 3, 4, 0, -119.0, -120.0);
-
- TEST_cc_c (cpow, nan_value, nan_value, nan_value, nan_value, nan_value, nan_value);
-
- TEST_cc_c (cpow, 0.75L, 1.25L, 0.75L, 1.25L, 0.117506293914473555420279832210420483L,
0.346552747708338676483025352060418001L);
- TEST_cc_c (cpow, 0.75L, 1.25L, 1.0L, 1.0L, 0.0846958290317209430433805274189191353L,
0.513285749182902449043287190519090481L);
- TEST_cc_c (cpow, 0.75L, 1.25L, 1.0L, 0.0L, 0.75L, 1.25L);
- TEST_cc_c (cpow, 0.75L, 1.25L, 0.0L, 1.0L, 0.331825439177608832276067945276730566L,
0.131338600281188544930936345230903032L);
-
- END (cpow, complex);
-}
-
-
-static void
-cproj_test (void)
-{
- START (cproj);
- TEST_c_c (cproj, 0.0, 0.0, 0.0, 0.0);
- TEST_c_c (cproj, minus_zero, minus_zero, minus_zero, minus_zero);
- TEST_c_c (cproj, 0.0, minus_zero, 0.0, minus_zero);
- TEST_c_c (cproj, minus_zero, 0.0, minus_zero, 0.0);
-
- TEST_c_c (cproj, nan_value, nan_value, nan_value, nan_value);
-
- TEST_c_c (cproj, plus_infty, plus_infty, plus_infty, 0.0);
- TEST_c_c (cproj, plus_infty, minus_infty, plus_infty, minus_zero);
- TEST_c_c (cproj, minus_infty, plus_infty, plus_infty, 0.0);
- TEST_c_c (cproj, minus_infty, minus_infty, plus_infty, minus_zero);
-
- TEST_c_c (cproj, 1.0, 0.0, 1.0, 0.0);
- TEST_c_c (cproj, 2.0, 3.0, 0.2857142857142857142857142857142857L,
0.42857142857142857142857142857142855L);
-
- END (cproj, complex);
-}
-
-
-static void
-creal_test (void)
-{
- START (creal);
- TEST_c_f (creal, 0.0, 1.0, 0.0);
- TEST_c_f (creal, minus_zero, 1.0, minus_zero);
- TEST_c_f (creal, nan_value, 1.0, nan_value);
- TEST_c_f (creal, nan_value, nan_value, nan_value);
- TEST_c_f (creal, plus_infty, 1.0, plus_infty);
- TEST_c_f (creal, minus_infty, 1.0, minus_infty);
- TEST_c_f (creal, 2.0, 3.0, 2.0);
-
- END (creal);
-}
-
-static void
-csin_test (void)
-{
- errno = 0;
- FUNC(csin) (BUILD_COMPLEX (0.7L, 1.2L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (csin);
-
- TEST_c_c (csin, 0.0, 0.0, 0.0, 0.0);
- TEST_c_c (csin, minus_zero, 0.0, minus_zero, 0.0);
- TEST_c_c (csin, 0.0, minus_zero, 0, minus_zero);
- TEST_c_c (csin, minus_zero, minus_zero, minus_zero, minus_zero);
-
- TEST_c_c (csin, 0.0, plus_infty, 0.0, plus_infty);
- TEST_c_c (csin, minus_zero, plus_infty, minus_zero, plus_infty);
- TEST_c_c (csin, 0.0, minus_infty, 0.0, minus_infty);
- TEST_c_c (csin, minus_zero, minus_infty, minus_zero, minus_infty);
-
- TEST_c_c (csin, plus_infty, 0.0, nan_value, 0.0,
INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csin, minus_infty, 0.0, nan_value, 0.0,
INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csin, plus_infty, minus_zero, nan_value, 0.0,
INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csin, minus_infty, minus_zero, nan_value, 0.0,
INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
-
- TEST_c_c (csin, plus_infty, plus_infty, nan_value, plus_infty,
INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csin, minus_infty, plus_infty, nan_value, plus_infty,
INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csin, plus_infty, minus_infty, nan_value, plus_infty,
INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csin, minus_infty, minus_infty, nan_value, plus_infty,
INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
-
- TEST_c_c (csin, plus_infty, 6.75, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_c_c (csin, plus_infty, -6.75, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_c_c (csin, minus_infty, 6.75, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_c_c (csin, minus_infty, -6.75, nan_value, nan_value, INVALID_EXCEPTION);
-
- TEST_c_c (csin, 4.625, plus_infty, minus_infty, minus_infty);
- TEST_c_c (csin, 4.625, minus_infty, minus_infty, plus_infty);
- TEST_c_c (csin, -4.625, plus_infty, plus_infty, minus_infty);
- TEST_c_c (csin, -4.625, minus_infty, plus_infty, plus_infty);
-
- TEST_c_c (csin, nan_value, 0.0, nan_value, 0.0, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csin, nan_value, minus_zero, nan_value, 0.0, IGNORE_ZERO_INF_SIGN);
-
- TEST_c_c (csin, nan_value, plus_infty, nan_value, plus_infty, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csin, nan_value, minus_infty, nan_value, plus_infty, IGNORE_ZERO_INF_SIGN);
-
- TEST_c_c (csin, nan_value, 9.0, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (csin, nan_value, -9.0, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (csin, 0.0, nan_value, 0.0, nan_value);
- TEST_c_c (csin, minus_zero, nan_value, minus_zero, nan_value);
-
- TEST_c_c (csin, 10.0, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (csin, nan_value, -10.0, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (csin, plus_infty, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (csin, minus_infty, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (csin, nan_value, nan_value, nan_value, nan_value);
-
- TEST_c_c (csin, 0.75L, 1.25L, 1.28722291002649188575873510790565441L,
1.17210635989270256101081285116138863L);
- TEST_c_c (csin, -2, -3, -9.15449914691142957346729954460983256L,
4.16890695996656435075481305885375484L);
-
- END (csin, complex);
-}
-
-
-static void
-csinh_test (void)
-{
- errno = 0;
- FUNC(csinh) (BUILD_COMPLEX (0.7L, 1.2L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (csinh);
-
- TEST_c_c (csinh, 0.0, 0.0, 0.0, 0.0);
- TEST_c_c (csinh, minus_zero, 0.0, minus_zero, 0.0);
- TEST_c_c (csinh, 0.0, minus_zero, 0.0, minus_zero);
- TEST_c_c (csinh, minus_zero, minus_zero, minus_zero, minus_zero);
-
- TEST_c_c (csinh, 0.0, plus_infty, 0.0, nan_value,
INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csinh, minus_zero, plus_infty, 0.0, nan_value,
INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csinh, 0.0, minus_infty, 0.0, nan_value,
INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csinh, minus_zero, minus_infty, 0.0, nan_value,
INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
-
- TEST_c_c (csinh, plus_infty, 0.0, plus_infty, 0.0);
- TEST_c_c (csinh, minus_infty, 0.0, minus_infty, 0.0);
- TEST_c_c (csinh, plus_infty, minus_zero, plus_infty, minus_zero);
- TEST_c_c (csinh, minus_infty, minus_zero, minus_infty, minus_zero);
-
- TEST_c_c (csinh, plus_infty, plus_infty, plus_infty, nan_value,
INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csinh, minus_infty, plus_infty, plus_infty, nan_value,
INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csinh, plus_infty, minus_infty, plus_infty, nan_value,
INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csinh, minus_infty, minus_infty, plus_infty, nan_value,
INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
-
- TEST_c_c (csinh, plus_infty, 4.625, minus_infty, minus_infty);
- TEST_c_c (csinh, minus_infty, 4.625, plus_infty, minus_infty);
- TEST_c_c (csinh, plus_infty, -4.625, minus_infty, plus_infty);
- TEST_c_c (csinh, minus_infty, -4.625, plus_infty, plus_infty);
-
- TEST_c_c (csinh, 6.75, plus_infty, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_c_c (csinh, -6.75, plus_infty, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_c_c (csinh, 6.75, minus_infty, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_c_c (csinh, -6.75, minus_infty, nan_value, nan_value, INVALID_EXCEPTION);
-
- TEST_c_c (csinh, 0.0, nan_value, 0.0, nan_value, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csinh, minus_zero, nan_value, 0.0, nan_value, IGNORE_ZERO_INF_SIGN);
-
- TEST_c_c (csinh, plus_infty, nan_value, plus_infty, nan_value, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csinh, minus_infty, nan_value, plus_infty, nan_value, IGNORE_ZERO_INF_SIGN);
-
- TEST_c_c (csinh, 9.0, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (csinh, -9.0, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (csinh, nan_value, 0.0, nan_value, 0.0);
- TEST_c_c (csinh, nan_value, minus_zero, nan_value, minus_zero);
-
- TEST_c_c (csinh, nan_value, 10.0, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (csinh, nan_value, -10.0, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (csinh, nan_value, plus_infty, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (csinh, nan_value, minus_infty, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (csinh, nan_value, nan_value, nan_value, nan_value);
-
- TEST_c_c (csinh, 0.75L, 1.25L, 0.259294854551162779153349830618433028L,
1.22863452409509552219214606515777594L);
- TEST_c_c (csinh, -2, -3, 3.59056458998577995201256544779481679L,
-0.530921086248519805267040090660676560L);
-
- END (csinh, complex);
-}
-
-
-static void
-csqrt_test (void)
-{
- errno = 0;
- FUNC(csqrt) (BUILD_COMPLEX (-1, 0));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (csqrt);
-
- TEST_c_c (csqrt, 0, 0, 0.0, 0.0);
- TEST_c_c (csqrt, 0, minus_zero, 0, minus_zero);
- TEST_c_c (csqrt, minus_zero, 0, 0.0, 0.0);
- TEST_c_c (csqrt, minus_zero, minus_zero, 0.0, minus_zero);
-
- TEST_c_c (csqrt, minus_infty, 0, 0.0, plus_infty);
- TEST_c_c (csqrt, minus_infty, 6, 0.0, plus_infty);
- TEST_c_c (csqrt, minus_infty, minus_zero, 0.0, minus_infty);
- TEST_c_c (csqrt, minus_infty, -6, 0.0, minus_infty);
-
- TEST_c_c (csqrt, plus_infty, 0, plus_infty, 0.0);
- TEST_c_c (csqrt, plus_infty, 6, plus_infty, 0.0);
- TEST_c_c (csqrt, plus_infty, minus_zero, plus_infty, minus_zero);
- TEST_c_c (csqrt, plus_infty, -6, plus_infty, minus_zero);
-
- TEST_c_c (csqrt, 0, plus_infty, plus_infty, plus_infty);
- TEST_c_c (csqrt, 4, plus_infty, plus_infty, plus_infty);
- TEST_c_c (csqrt, plus_infty, plus_infty, plus_infty, plus_infty);
- TEST_c_c (csqrt, minus_zero, plus_infty, plus_infty, plus_infty);
- TEST_c_c (csqrt, -4, plus_infty, plus_infty, plus_infty);
- TEST_c_c (csqrt, minus_infty, plus_infty, plus_infty, plus_infty);
- TEST_c_c (csqrt, 0, minus_infty, plus_infty, minus_infty);
- TEST_c_c (csqrt, 4, minus_infty, plus_infty, minus_infty);
- TEST_c_c (csqrt, plus_infty, minus_infty, plus_infty, minus_infty);
- TEST_c_c (csqrt, minus_zero, minus_infty, plus_infty, minus_infty);
- TEST_c_c (csqrt, -4, minus_infty, plus_infty, minus_infty);
- TEST_c_c (csqrt, minus_infty, minus_infty, plus_infty, minus_infty);
-
- TEST_c_c (csqrt, minus_infty, nan_value, nan_value, plus_infty, IGNORE_ZERO_INF_SIGN);
-
- TEST_c_c (csqrt, plus_infty, nan_value, plus_infty, nan_value);
-
- TEST_c_c (csqrt, 0, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (csqrt, 1, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (csqrt, minus_zero, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (csqrt, -1, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (csqrt, nan_value, 0, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (csqrt, nan_value, 8, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (csqrt, nan_value, minus_zero, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (csqrt, nan_value, -8, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (csqrt, nan_value, nan_value, nan_value, nan_value);
-
- TEST_c_c (csqrt, 16.0, -30.0, 5.0, -3.0);
- TEST_c_c (csqrt, -1, 0, 0.0, 1.0);
- TEST_c_c (csqrt, 0, 2, 1.0, 1.0);
- TEST_c_c (csqrt, 119, 120, 12.0, 5.0);
- TEST_c_c (csqrt, 0.75L, 1.25L, 1.05065169626078392338656675760808326L,
0.594868882070379067881984030639932657L);
- TEST_c_c (csqrt, -2, -3, 0.89597747612983812471573375529004348L,
-1.6741492280355400404480393008490519L);
- TEST_c_c (csqrt, -2, 3, 0.89597747612983812471573375529004348L,
1.6741492280355400404480393008490519L);
- /* Principal square root should be returned (i.e., non-negative real
- part). */
- TEST_c_c (csqrt, 0, -1, M_SQRT_2_2, -M_SQRT_2_2);
-
- END (csqrt, complex);
-}
-
-static void
-ctan_test (void)
-{
- errno = 0;
- FUNC(ctan) (BUILD_COMPLEX (0.7L, 1.2L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (ctan);
-
- TEST_c_c (ctan, 0, 0, 0.0, 0.0);
- TEST_c_c (ctan, 0, minus_zero, 0.0, minus_zero);
- TEST_c_c (ctan, minus_zero, 0, minus_zero, 0.0);
- TEST_c_c (ctan, minus_zero, minus_zero, minus_zero, minus_zero);
-
- TEST_c_c (ctan, 0, plus_infty, 0.0, 1.0);
- TEST_c_c (ctan, 1, plus_infty, 0.0, 1.0);
- TEST_c_c (ctan, minus_zero, plus_infty, minus_zero, 1.0);
- TEST_c_c (ctan, -1, plus_infty, minus_zero, 1.0);
-
- TEST_c_c (ctan, 0, minus_infty, 0.0, -1.0);
- TEST_c_c (ctan, 1, minus_infty, 0.0, -1.0);
- TEST_c_c (ctan, minus_zero, minus_infty, minus_zero, -1.0);
- TEST_c_c (ctan, -1, minus_infty, minus_zero, -1.0);
-
- TEST_c_c (ctan, plus_infty, 0, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_c_c (ctan, plus_infty, 2, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_c_c (ctan, minus_infty, 0, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_c_c (ctan, minus_infty, 2, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_c_c (ctan, plus_infty, minus_zero, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_c_c (ctan, plus_infty, -2, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_c_c (ctan, minus_infty, minus_zero, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_c_c (ctan, minus_infty, -2, nan_value, nan_value, INVALID_EXCEPTION);
-
- TEST_c_c (ctan, nan_value, plus_infty, 0.0, 1.0, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (ctan, nan_value, minus_infty, 0.0, -1.0, IGNORE_ZERO_INF_SIGN);
-
- TEST_c_c (ctan, 0, nan_value, 0.0, nan_value);
- TEST_c_c (ctan, minus_zero, nan_value, minus_zero, nan_value);
-
- TEST_c_c (ctan, 0.5, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (ctan, -4.5, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (ctan, nan_value, 0, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (ctan, nan_value, 5, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (ctan, nan_value, minus_zero, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (ctan, nan_value, -0.25, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (ctan, nan_value, nan_value, nan_value, nan_value);
-
- TEST_c_c (ctan, 0.75L, 1.25L, 0.160807785916206426725166058173438663L,
0.975363285031235646193581759755216379L);
- TEST_c_c (ctan, -2, -3, 0.376402564150424829275122113032269084e-2L,
-1.00323862735360980144635859782192726L);
-
- END (ctan, complex);
-}
-
-
-static void
-ctanh_test (void)
-{
- errno = 0;
- FUNC(ctanh) (BUILD_COMPLEX (0, 0));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (ctanh);
-
- TEST_c_c (ctanh, 0, 0, 0.0, 0.0);
- TEST_c_c (ctanh, 0, minus_zero, 0.0, minus_zero);
- TEST_c_c (ctanh, minus_zero, 0, minus_zero, 0.0);
- TEST_c_c (ctanh, minus_zero, minus_zero, minus_zero, minus_zero);
-
- TEST_c_c (ctanh, plus_infty, 0, 1.0, 0.0);
- TEST_c_c (ctanh, plus_infty, 1, 1.0, 0.0);
- TEST_c_c (ctanh, plus_infty, minus_zero, 1.0, minus_zero);
- TEST_c_c (ctanh, plus_infty, -1, 1.0, minus_zero);
- TEST_c_c (ctanh, minus_infty, 0, -1.0, 0.0);
- TEST_c_c (ctanh, minus_infty, 1, -1.0, 0.0);
- TEST_c_c (ctanh, minus_infty, minus_zero, -1.0, minus_zero);
- TEST_c_c (ctanh, minus_infty, -1, -1.0, minus_zero);
-
- TEST_c_c (ctanh, 0, plus_infty, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_c_c (ctanh, 2, plus_infty, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_c_c (ctanh, 0, minus_infty, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_c_c (ctanh, 2, minus_infty, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_c_c (ctanh, minus_zero, plus_infty, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_c_c (ctanh, -2, plus_infty, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_c_c (ctanh, minus_zero, minus_infty, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_c_c (ctanh, -2, minus_infty, nan_value, nan_value, INVALID_EXCEPTION);
-
- TEST_c_c (ctanh, plus_infty, nan_value, 1.0, 0.0, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (ctanh, minus_infty, nan_value, -1.0, 0.0, IGNORE_ZERO_INF_SIGN);
-
- TEST_c_c (ctanh, nan_value, 0, nan_value, 0.0);
- TEST_c_c (ctanh, nan_value, minus_zero, nan_value, minus_zero);
-
- TEST_c_c (ctanh, nan_value, 0.5, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (ctanh, nan_value, -4.5, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (ctanh, 0, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (ctanh, 5, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (ctanh, minus_zero, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (ctanh, -0.25, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (ctanh, nan_value, nan_value, nan_value, nan_value);
-
- TEST_c_c (ctanh, 0, M_PI_4l, 0.0, 1.0);
-
- TEST_c_c (ctanh, 0.75L, 1.25L, 1.37260757053378320258048606571226857L,
0.385795952609750664177596760720790220L);
- TEST_c_c (ctanh, -2, -3, -0.965385879022133124278480269394560686L,
0.988437503832249372031403430350121098e-2L);
-
- END (ctanh, complex);
-}
-#endif
-
-
-static void
-erf_test (void)
-{
- errno = 0;
- FUNC(erf) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (erf);
-
- TEST_f_f (erf, 0, 0);
- TEST_f_f (erf, minus_zero, minus_zero);
- TEST_f_f (erf, plus_infty, 1);
- TEST_f_f (erf, minus_infty, -1);
- TEST_f_f (erf, nan_value, nan_value);
-
- TEST_f_f (erf, 0.125L, 0.140316204801333817393029446521623398L);
- TEST_f_f (erf, 0.75L, 0.711155633653515131598937834591410777L);
- TEST_f_f (erf, 1.25L, 0.922900128256458230136523481197281140L);
- TEST_f_f (erf, 2.0L, 0.995322265018952734162069256367252929L);
- TEST_f_f (erf, 4.125L, 0.999999994576599200434933994687765914L);
- TEST_f_f (erf, 27.0L, 1.0L);
-
- END (erf);
-}
-
-
-static void
-erfc_test (void)
-{
- errno = 0;
- FUNC(erfc) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (erfc);
-
- TEST_f_f (erfc, plus_infty, 0.0);
- TEST_f_f (erfc, minus_infty, 2.0);
- TEST_f_f (erfc, 0.0, 1.0);
- TEST_f_f (erfc, minus_zero, 1.0);
- TEST_f_f (erfc, nan_value, nan_value);
-
- TEST_f_f (erfc, 0.125L, 0.859683795198666182606970553478376602L);
- TEST_f_f (erfc, 0.75L, 0.288844366346484868401062165408589223L);
- TEST_f_f (erfc, 1.25L, 0.0770998717435417698634765188027188596L);
- TEST_f_f (erfc, 2.0L, 0.00467773498104726583793074363274707139L);
- TEST_f_f (erfc, 4.125L, 0.542340079956506600531223408575531062e-8L);
-#ifdef TEST_LDOUBLE
- /* The result can only be represented in long double. */
-# if LDBL_MIN_10_EXP < -319
- TEST_f_f (erfc, 27.0L, 0.523704892378925568501606768284954709e-318L);
-# endif
-#endif
-
- END (erfc);
-}
-
-
-static void
-exp_test (void)
-{
- errno = 0;
- FUNC(exp) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (exp);
-
- TEST_f_f (exp, 0, 1);
- TEST_f_f (exp, minus_zero, 1);
-
-#ifndef TEST_INLINE
- TEST_f_f (exp, plus_infty, plus_infty);
- TEST_f_f (exp, minus_infty, 0);
-#endif
- TEST_f_f (exp, nan_value, nan_value);
- TEST_f_f (exp, 1, M_El);
-
- TEST_f_f (exp, 2, M_E2l);
- TEST_f_f (exp, 3, M_E3l);
- TEST_f_f (exp, 0.75L, 2.11700001661267466854536981983709561L);
- TEST_f_f (exp, 50.0L, 5184705528587072464087.45332293348538L);
-#ifdef TEST_LDOUBLE
- /* The result can only be represented in long double. */
- TEST_f_f (exp, 1000.0L, 0.197007111401704699388887935224332313e435L);
-#endif
-
- END (exp);
-}
-
-
-#if 0
-static void
-exp10_test (void)
-{
- errno = 0;
- FUNC(exp10) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (exp10);
-
- TEST_f_f (exp10, 0, 1);
- TEST_f_f (exp10, minus_zero, 1);
-
- TEST_f_f (exp10, plus_infty, plus_infty);
- TEST_f_f (exp10, minus_infty, 0);
- TEST_f_f (exp10, nan_value, nan_value);
- TEST_f_f (exp10, 3, 1000);
- TEST_f_f (exp10, -1, 0.1L);
- TEST_f_f (exp10, 1e6, plus_infty);
- TEST_f_f (exp10, -1e6, 0);
- TEST_f_f (exp10, 0.75L, 5.62341325190349080394951039776481231L);
-
- END (exp10);
-}
-
-
-static void
-exp2_test (void)
-{
- errno = 0;
- FUNC(exp2) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (exp2);
-
- TEST_f_f (exp2, 0, 1);
- TEST_f_f (exp2, minus_zero, 1);
- TEST_f_f (exp2, plus_infty, plus_infty);
- TEST_f_f (exp2, minus_infty, 0);
- TEST_f_f (exp2, nan_value, nan_value);
-
- TEST_f_f (exp2, 10, 1024);
- TEST_f_f (exp2, -1, 0.5);
- TEST_f_f (exp2, 1e6, plus_infty);
- TEST_f_f (exp2, -1e6, 0);
- TEST_f_f (exp2, 0.75L, 1.68179283050742908606225095246642979L);
-
- END (exp2);
-}
-#endif
-
-
-static void
-expm1_test (void)
-{
- errno = 0;
- FUNC(expm1) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (expm1);
-
- TEST_f_f (expm1, 0, 0);
- TEST_f_f (expm1, minus_zero, minus_zero);
-
-#ifndef TEST_INLINE
- TEST_f_f (expm1, plus_infty, plus_infty);
- TEST_f_f (expm1, minus_infty, -1);
-#endif
- TEST_f_f (expm1, nan_value, nan_value);
-
- TEST_f_f (expm1, 1, M_El - 1.0);
- TEST_f_f (expm1, 0.75L, 1.11700001661267466854536981983709561L);
-
- END (expm1);
-}
-
-
-static void
-fabs_test (void)
-{
- START (fabs);
-
- TEST_f_f (fabs, 0, 0);
- TEST_f_f (fabs, minus_zero, 0);
-
- TEST_f_f (fabs, plus_infty, plus_infty);
- TEST_f_f (fabs, minus_infty, plus_infty);
- TEST_f_f (fabs, nan_value, nan_value);
-
- TEST_f_f (fabs, 38.0, 38.0);
- TEST_f_f (fabs, -M_El, M_El);
-
- END (fabs);
-}
-
-
-static void
-fdim_test (void)
-{
- START (fdim);
-
- TEST_ff_f (fdim, 0, 0, 0);
- TEST_ff_f (fdim, 9, 0, 9);
- TEST_ff_f (fdim, 0, 9, 0);
- TEST_ff_f (fdim, -9, 0, 0);
- TEST_ff_f (fdim, 0, -9, 9);
-
- TEST_ff_f (fdim, plus_infty, 9, plus_infty);
- TEST_ff_f (fdim, plus_infty, -9, plus_infty);
- TEST_ff_f (fdim, minus_infty, 9, 0);
- TEST_ff_f (fdim, minus_infty, -9, 0);
- TEST_ff_f (fdim, 9, minus_infty, plus_infty);
- TEST_ff_f (fdim, -9, minus_infty, plus_infty);
- TEST_ff_f (fdim, 9, plus_infty, 0);
- TEST_ff_f (fdim, -9, plus_infty, 0);
-
- TEST_ff_f (fdim, 0, nan_value, nan_value);
- TEST_ff_f (fdim, 9, nan_value, nan_value);
- TEST_ff_f (fdim, -9, nan_value, nan_value);
- TEST_ff_f (fdim, nan_value, 9, nan_value);
- TEST_ff_f (fdim, nan_value, -9, nan_value);
- TEST_ff_f (fdim, plus_infty, nan_value, nan_value);
- TEST_ff_f (fdim, minus_infty, nan_value, nan_value);
- TEST_ff_f (fdim, nan_value, plus_infty, nan_value);
- TEST_ff_f (fdim, nan_value, minus_infty, nan_value);
- TEST_ff_f (fdim, nan_value, nan_value, nan_value);
-
- TEST_ff_f (fdim, plus_infty, plus_infty, 0);
-
- END (fdim);
-}
-
-
-static void
-floor_test (void)
-{
- START (floor);
-
- TEST_f_f (floor, 0.0, 0.0);
- TEST_f_f (floor, minus_zero, minus_zero);
- TEST_f_f (floor, plus_infty, plus_infty);
- TEST_f_f (floor, minus_infty, minus_infty);
- TEST_f_f (floor, nan_value, nan_value);
-
- TEST_f_f (floor, M_PIl, 3.0);
- TEST_f_f (floor, -M_PIl, -4.0);
-
- TEST_f_f (floor, 0.25, 0.0);
- TEST_f_f (floor, -0.25, -1.0);
-
-
-#ifdef TEST_LDOUBLE
- /* The result can only be represented in long double. */
- TEST_f_f (floor, 4503599627370495.5L, 4503599627370495.0L);
- TEST_f_f (floor, 4503599627370496.25L, 4503599627370496.0L);
- TEST_f_f (floor, 4503599627370496.5L, 4503599627370496.0L);
- TEST_f_f (floor, 4503599627370496.75L, 4503599627370496.0L);
- TEST_f_f (floor, 4503599627370497.5L, 4503599627370497.0L);
-
- TEST_f_f (floor, -4503599627370495.5L, -4503599627370496.0L);
- TEST_f_f (floor, -4503599627370496.25L, -4503599627370497.0L);
- TEST_f_f (floor, -4503599627370496.5L, -4503599627370497.0L);
- TEST_f_f (floor, -4503599627370496.75L, -4503599627370497.0L);
- TEST_f_f (floor, -4503599627370497.5L, -4503599627370498.0L);
-
- TEST_f_f (floor, 9007199254740991.5L, 9007199254740991.0L);
- TEST_f_f (floor, 9007199254740992.25L, 9007199254740992.0L);
- TEST_f_f (floor, 9007199254740992.5L, 9007199254740992.0L);
- TEST_f_f (floor, 9007199254740992.75L, 9007199254740992.0L);
- TEST_f_f (floor, 9007199254740993.5L, 9007199254740993.0L);
-
- TEST_f_f (floor, -9007199254740991.5L, -9007199254740992.0L);
- TEST_f_f (floor, -9007199254740992.25L, -9007199254740993.0L);
- TEST_f_f (floor, -9007199254740992.5L, -9007199254740993.0L);
- TEST_f_f (floor, -9007199254740992.75L, -9007199254740993.0L);
- TEST_f_f (floor, -9007199254740993.5L, -9007199254740994.0L);
-
- TEST_f_f (floor, 72057594037927935.5L, 72057594037927935.0L);
- TEST_f_f (floor, 72057594037927936.25L, 72057594037927936.0L);
- TEST_f_f (floor, 72057594037927936.5L, 72057594037927936.0L);
- TEST_f_f (floor, 72057594037927936.75L, 72057594037927936.0L);
- TEST_f_f (floor, 72057594037927937.5L, 72057594037927937.0L);
-
- TEST_f_f (floor, -72057594037927935.5L, -72057594037927936.0L);
- TEST_f_f (floor, -72057594037927936.25L, -72057594037927937.0L);
- TEST_f_f (floor, -72057594037927936.5L, -72057594037927937.0L);
- TEST_f_f (floor, -72057594037927936.75L, -72057594037927937.0L);
- TEST_f_f (floor, -72057594037927937.5L, -72057594037927938.0L);
-
- TEST_f_f (floor, 10141204801825835211973625643007.5L,
10141204801825835211973625643007.0L);
- TEST_f_f (floor, 10141204801825835211973625643008.25L,
10141204801825835211973625643008.0L);
- TEST_f_f (floor, 10141204801825835211973625643008.5L,
10141204801825835211973625643008.0L);
- TEST_f_f (floor, 10141204801825835211973625643008.75L,
10141204801825835211973625643008.0L);
- TEST_f_f (floor, 10141204801825835211973625643009.5L,
10141204801825835211973625643009.0L);
-#endif
-
- END (floor);
-}
-
-
-static void
-fma_test (void)
-{
- START (fma);
-
- TEST_fff_f (fma, 1.0, 2.0, 3.0, 5.0);
- TEST_fff_f (fma, nan_value, 2.0, 3.0, nan_value);
- TEST_fff_f (fma, 1.0, nan_value, 3.0, nan_value);
- TEST_fff_f (fma, 1.0, 2.0, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_fff_f (fma, plus_infty, 0.0, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_fff_f (fma, minus_infty, 0.0, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_fff_f (fma, 0.0, plus_infty, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_fff_f (fma, 0.0, minus_infty, nan_value, nan_value, INVALID_EXCEPTION_OK);
- TEST_fff_f (fma, plus_infty, 0.0, 1.0, nan_value, INVALID_EXCEPTION);
- TEST_fff_f (fma, minus_infty, 0.0, 1.0, nan_value, INVALID_EXCEPTION);
- TEST_fff_f (fma, 0.0, plus_infty, 1.0, nan_value, INVALID_EXCEPTION);
- TEST_fff_f (fma, 0.0, minus_infty, 1.0, nan_value, INVALID_EXCEPTION);
-
- TEST_fff_f (fma, plus_infty, plus_infty, minus_infty, nan_value, INVALID_EXCEPTION);
- TEST_fff_f (fma, minus_infty, plus_infty, plus_infty, nan_value, INVALID_EXCEPTION);
- TEST_fff_f (fma, plus_infty, minus_infty, plus_infty, nan_value, INVALID_EXCEPTION);
- TEST_fff_f (fma, minus_infty, minus_infty, minus_infty, nan_value, INVALID_EXCEPTION);
-
- TEST_fff_f (fma, 1.25L, 0.75L, 0.0625L, 1.0L);
-
- END (fma);
-}
-
-
-static void
-fmax_test (void)
-{
- START (fmax);
-
- TEST_ff_f (fmax, 0, 0, 0);
- TEST_ff_f (fmax, minus_zero, minus_zero, minus_zero);
- TEST_ff_f (fmax, 9, 0, 9);
- TEST_ff_f (fmax, 0, 9, 9);
- TEST_ff_f (fmax, -9, 0, 0);
- TEST_ff_f (fmax, 0, -9, 0);
-
- TEST_ff_f (fmax, plus_infty, 9, plus_infty);
- TEST_ff_f (fmax, 0, plus_infty, plus_infty);
- TEST_ff_f (fmax, -9, plus_infty, plus_infty);
- TEST_ff_f (fmax, plus_infty, -9, plus_infty);
-
- TEST_ff_f (fmax, minus_infty, 9, 9);
- TEST_ff_f (fmax, minus_infty, -9, -9);
- TEST_ff_f (fmax, 9, minus_infty, 9);
- TEST_ff_f (fmax, -9, minus_infty, -9);
-
- TEST_ff_f (fmax, 0, nan_value, 0);
- TEST_ff_f (fmax, 9, nan_value, 9);
- TEST_ff_f (fmax, -9, nan_value, -9);
- TEST_ff_f (fmax, nan_value, 0, 0);
- TEST_ff_f (fmax, nan_value, 9, 9);
- TEST_ff_f (fmax, nan_value, -9, -9);
- TEST_ff_f (fmax, plus_infty, nan_value, plus_infty);
- TEST_ff_f (fmax, minus_infty, nan_value, minus_infty);
- TEST_ff_f (fmax, nan_value, plus_infty, plus_infty);
- TEST_ff_f (fmax, nan_value, minus_infty, minus_infty);
- TEST_ff_f (fmax, nan_value, nan_value, nan_value);
-
- END (fmax);
-}
-
-
-static void
-fmin_test (void)
-{
- START (fmin);
-
- TEST_ff_f (fmin, 0, 0, 0);
- TEST_ff_f (fmin, minus_zero, minus_zero, minus_zero);
- TEST_ff_f (fmin, 9, 0, 0);
- TEST_ff_f (fmin, 0, 9, 0);
- TEST_ff_f (fmin, -9, 0, -9);
- TEST_ff_f (fmin, 0, -9, -9);
-
- TEST_ff_f (fmin, plus_infty, 9, 9);
- TEST_ff_f (fmin, 9, plus_infty, 9);
- TEST_ff_f (fmin, plus_infty, -9, -9);
- TEST_ff_f (fmin, -9, plus_infty, -9);
- TEST_ff_f (fmin, minus_infty, 9, minus_infty);
- TEST_ff_f (fmin, minus_infty, -9, minus_infty);
- TEST_ff_f (fmin, 9, minus_infty, minus_infty);
- TEST_ff_f (fmin, -9, minus_infty, minus_infty);
-
- TEST_ff_f (fmin, 0, nan_value, 0);
- TEST_ff_f (fmin, 9, nan_value, 9);
- TEST_ff_f (fmin, -9, nan_value, -9);
- TEST_ff_f (fmin, nan_value, 0, 0);
- TEST_ff_f (fmin, nan_value, 9, 9);
- TEST_ff_f (fmin, nan_value, -9, -9);
- TEST_ff_f (fmin, plus_infty, nan_value, plus_infty);
- TEST_ff_f (fmin, minus_infty, nan_value, minus_infty);
- TEST_ff_f (fmin, nan_value, plus_infty, plus_infty);
- TEST_ff_f (fmin, nan_value, minus_infty, minus_infty);
- TEST_ff_f (fmin, nan_value, nan_value, nan_value);
-
- END (fmin);
-}
-
-
-static void
-fmod_test (void)
-{
- errno = 0;
- FUNC(fmod) (6.5, 2.3L);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (fmod);
-
- /* fmod (+0, y) == +0 for y != 0. */
- TEST_ff_f (fmod, 0, 3, 0);
-
- /* fmod (-0, y) == -0 for y != 0. */
- TEST_ff_f (fmod, minus_zero, 3, minus_zero);
-
- /* fmod (+inf, y) == NaN plus invalid exception. */
- TEST_ff_f (fmod, plus_infty, 3, nan_value, INVALID_EXCEPTION);
- /* fmod (-inf, y) == NaN plus invalid exception. */
- TEST_ff_f (fmod, minus_infty, 3, nan_value, INVALID_EXCEPTION);
- /* fmod (x, +0) == NaN plus invalid exception. */
- TEST_ff_f (fmod, 3, 0, nan_value, INVALID_EXCEPTION);
- /* fmod (x, -0) == NaN plus invalid exception. */
- TEST_ff_f (fmod, 3, minus_zero, nan_value, INVALID_EXCEPTION);
-
- /* fmod (x, +inf) == x for x not infinite. */
- TEST_ff_f (fmod, 3.0, plus_infty, 3.0);
- /* fmod (x, -inf) == x for x not infinite. */
- TEST_ff_f (fmod, 3.0, minus_infty, 3.0);
-
- TEST_ff_f (fmod, nan_value, nan_value, nan_value);
-
- TEST_ff_f (fmod, 6.5, 2.25L, 2.0L);
- TEST_ff_f (fmod, -6.5, 2.25L, -2.0L);
- TEST_ff_f (fmod, 6.5, -2.25L, 2.0L);
- TEST_ff_f (fmod, -6.5, -2.25L, -2.0L);
-
- END (fmod);
-}
-
-
-static void
-fpclassify_test (void)
-{
- START (fpclassify);
-
- TEST_f_i (fpclassify, nan_value, FP_NAN);
- TEST_f_i (fpclassify, plus_infty, FP_INFINITE);
- TEST_f_i (fpclassify, minus_infty, FP_INFINITE);
- TEST_f_i (fpclassify, plus_zero, FP_ZERO);
- TEST_f_i (fpclassify, minus_zero, FP_ZERO);
- TEST_f_i (fpclassify, 1000, FP_NORMAL);
-
- END (fpclassify);
-}
-
-
-static void
-frexp_test (void)
-{
- int x;
-
- START (frexp);
-
- TEST_fI_f1 (frexp, plus_infty, plus_infty, IGNORE);
- TEST_fI_f1 (frexp, minus_infty, minus_infty, IGNORE);
- TEST_fI_f1 (frexp, nan_value, nan_value, IGNORE);
-
- TEST_fI_f1 (frexp, 0.0, 0.0, 0.0);
- TEST_fI_f1 (frexp, minus_zero, minus_zero, 0.0);
-
- TEST_fI_f1 (frexp, 12.8L, 0.8L, 4);
- TEST_fI_f1 (frexp, -27.34L, -0.854375L, 5);
-
- END (frexp);
-}
-
-
-static void
-gamma_test (void)
-{
- errno = 0;
- FUNC(gamma) (1);
-
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
- feclearexcept (FE_ALL_EXCEPT);
-
- START (gamma);
-
- TEST_f_f (gamma, plus_infty, plus_infty);
- TEST_f_f (gamma, 0, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_f_f (gamma, -3, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_f_f (gamma, minus_infty, plus_infty);
- TEST_f_f (gamma, nan_value, nan_value);
-
- TEST_f_f1 (gamma, 1, 0, 1);
- TEST_f_f1 (gamma, 3, M_LN2l, 1);
-
- TEST_f_f1 (gamma, 0.5, M_LOG_SQRT_PIl, 1);
- TEST_f_f1 (gamma, -0.5, M_LOG_2_SQRT_PIl, -1);
-
- END (gamma);
-}
-
-static void
-hypot_test (void)
-{
- errno = 0;
- FUNC(hypot) (0.7L, 12.4L);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (hypot);
-
- TEST_ff_f (hypot, plus_infty, 1, plus_infty, IGNORE_ZERO_INF_SIGN);
- TEST_ff_f (hypot, minus_infty, 1, plus_infty, IGNORE_ZERO_INF_SIGN);
-
-#ifndef TEST_INLINE
- TEST_ff_f (hypot, plus_infty, nan_value, plus_infty);
- TEST_ff_f (hypot, minus_infty, nan_value, plus_infty);
- TEST_ff_f (hypot, nan_value, plus_infty, plus_infty);
- TEST_ff_f (hypot, nan_value, minus_infty, plus_infty);
-#endif
-
- TEST_ff_f (hypot, nan_value, nan_value, nan_value);
-
- /* hypot (x,y) == hypot (+-x, +-y) */
- TEST_ff_f (hypot, 0.7L, 12.4L, 12.419742348374220601176836866763271L);
- TEST_ff_f (hypot, -0.7L, 12.4L, 12.419742348374220601176836866763271L);
- TEST_ff_f (hypot, 0.7L, -12.4L, 12.419742348374220601176836866763271L);
- TEST_ff_f (hypot, -0.7L, -12.4L, 12.419742348374220601176836866763271L);
- TEST_ff_f (hypot, 12.4L, 0.7L, 12.419742348374220601176836866763271L);
- TEST_ff_f (hypot, -12.4L, 0.7L, 12.419742348374220601176836866763271L);
- TEST_ff_f (hypot, 12.4L, -0.7L, 12.419742348374220601176836866763271L);
- TEST_ff_f (hypot, -12.4L, -0.7L, 12.419742348374220601176836866763271L);
-
- /* hypot (x,0) == fabs (x) */
- TEST_ff_f (hypot, 0.75L, 0, 0.75L);
- TEST_ff_f (hypot, -0.75L, 0, 0.75L);
- TEST_ff_f (hypot, -5.7e7, 0, 5.7e7L);
-
- TEST_ff_f (hypot, 0.75L, 1.25L, 1.45773797371132511771853821938639577L);
-
- END (hypot);
-}
-
-
-static void
-ilogb_test (void)
-{
- START (ilogb);
-
- TEST_f_i (ilogb, 1, 0);
- TEST_f_i (ilogb, M_El, 1);
- TEST_f_i (ilogb, 1024, 10);
- TEST_f_i (ilogb, -2000, 10);
-
- /* XXX We have a problem here: the standard does not tell us whether
- exceptions are allowed/required. ignore them for now. */
-
- TEST_f_i (ilogb, 0.0, FP_ILOGB0, EXCEPTIONS_OK);
- TEST_f_i (ilogb, nan_value, FP_ILOGBNAN, EXCEPTIONS_OK);
- TEST_f_i (ilogb, plus_infty, INT_MAX, EXCEPTIONS_OK);
- TEST_f_i (ilogb, minus_infty, INT_MAX, EXCEPTIONS_OK);
-
- END (ilogb);
-}
-
-static void
-isfinite_test (void)
-{
- START (isfinite);
-
- TEST_f_b (isfinite, 0, 1);
- TEST_f_b (isfinite, minus_zero, 1);
- TEST_f_b (isfinite, 10, 1);
- TEST_f_b (isfinite, plus_infty, 0);
- TEST_f_b (isfinite, minus_infty, 0);
- TEST_f_b (isfinite, nan_value, 0);
-
- END (isfinite);
-}
-
-static void
-isnormal_test (void)
-{
- START (isnormal);
-
- TEST_f_b (isnormal, 0, 0);
- TEST_f_b (isnormal, minus_zero, 0);
- TEST_f_b (isnormal, 10, 1);
- TEST_f_b (isnormal, plus_infty, 0);
- TEST_f_b (isnormal, minus_infty, 0);
- TEST_f_b (isnormal, nan_value, 0);
-
- END (isnormal);
-}
-
-#if defined __DO_XSI_MATH__ && !(defined TEST_LDOUBLE || defined TEST_FLOAT)
-static void
-j0_test (void)
-{
- errno = 0;
-#if 0
- FLOAT s, c;
- FUNC (sincos) (0, &s, &c);
- if (errno == ENOSYS)
- /* Required function not implemented. */
- return;
-#endif
- FUNC(j0) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (j0);
-
- /* j0 is the Bessel function of the first kind of order 0 */
- TEST_f_f (j0, nan_value, nan_value);
- TEST_f_f (j0, plus_infty, 0);
- TEST_f_f (j0, -1.0, 0.765197686557966551449717526102663221L);
- TEST_f_f (j0, 0.0, 1.0);
- TEST_f_f (j0, 0.125L, 0.996097563041985204620768999453174712L);
- TEST_f_f (j0, 0.75L, 0.864242275166648623555731103820923211L);
- TEST_f_f (j0, 1.0, 0.765197686557966551449717526102663221L);
- TEST_f_f (j0, 1.5, 0.511827671735918128749051744283411720L);
- TEST_f_f (j0, 2.0, 0.223890779141235668051827454649948626L);
- TEST_f_f (j0, 8.0, 0.171650807137553906090869407851972001L);
- TEST_f_f (j0, 10.0, -0.245935764451348335197760862485328754L);
- TEST_f_f (j0, 4.0, -3.9714980986384737228659076845169804197562E-1L);
- TEST_f_f (j0, -4.0, -3.9714980986384737228659076845169804197562E-1L);
-
- END (j0);
-}
-
-
-static void
-j1_test (void)
-{
- errno = 0;
-#if 0
- FLOAT s, c;
- FUNC (sincos) (0, &s, &c);
- if (errno == ENOSYS)
- /* Required function not implemented. */
- return;
-#endif
- FUNC(j1) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- /* j1 is the Bessel function of the first kind of order 1 */
-
- START (j1);
-
- TEST_f_f (j1, nan_value, nan_value);
- TEST_f_f (j1, plus_infty, 0);
-
- TEST_f_f (j1, -1.0, -0.440050585744933515959682203718914913L);
- TEST_f_f (j1, 0.0, 0.0);
- TEST_f_f (j1, 0.125L, 0.0623780091344946810942311355879361177L);
- TEST_f_f (j1, 0.75L, 0.349243602174862192523281016426251335L);
- TEST_f_f (j1, 1.0, 0.440050585744933515959682203718914913L);
- TEST_f_f (j1, 1.5, 0.557936507910099641990121213156089400L);
- TEST_f_f (j1, 2.0, 0.576724807756873387202448242269137087L);
- TEST_f_f (j1, 8.0, 0.234636346853914624381276651590454612L);
- TEST_f_f (j1, 10.0, 0.0434727461688614366697487680258592883L);
-
- END (j1);
-}
-
-static void
-jn_test (void)
-{
- errno = 0;
-#if 0
- FLOAT s, c;
- FUNC (sincos) (0, &s, &c);
- if (errno == ENOSYS)
- /* Required function not implemented. */
- return;
-#endif
- FUNC(jn) (1, 1);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- /* jn is the Bessel function of the first kind of order n. */
- START (jn);
-
- /* jn (0, x) == j0 (x) */
- TEST_ff_f (jn, 0, nan_value, nan_value);
- TEST_ff_f (jn, 0, plus_infty, 0);
- TEST_ff_f (jn, 0, -1.0, 0.765197686557966551449717526102663221L);
- TEST_ff_f (jn, 0, 0.0, 1.0);
- TEST_ff_f (jn, 0, 0.125L, 0.996097563041985204620768999453174712L);
- TEST_ff_f (jn, 0, 0.75L, 0.864242275166648623555731103820923211L);
- TEST_ff_f (jn, 0, 1.0, 0.765197686557966551449717526102663221L);
- TEST_ff_f (jn, 0, 1.5, 0.511827671735918128749051744283411720L);
- TEST_ff_f (jn, 0, 2.0, 0.223890779141235668051827454649948626L);
- TEST_ff_f (jn, 0, 8.0, 0.171650807137553906090869407851972001L);
- TEST_ff_f (jn, 0, 10.0, -0.245935764451348335197760862485328754L);
- TEST_ff_f (jn, 0, 4.0, -3.9714980986384737228659076845169804197562E-1L);
- TEST_ff_f (jn, 0, -4.0, -3.9714980986384737228659076845169804197562E-1L);
-
- /* jn (1, x) == j1 (x) */
- TEST_ff_f (jn, 1, nan_value, nan_value);
- TEST_ff_f (jn, 1, plus_infty, 0);
- TEST_ff_f (jn, 1, -1.0, -0.440050585744933515959682203718914913L);
- TEST_ff_f (jn, 1, 0.0, 0.0);
- TEST_ff_f (jn, 1, 0.125L, 0.0623780091344946810942311355879361177L);
- TEST_ff_f (jn, 1, 0.75L, 0.349243602174862192523281016426251335L);
- TEST_ff_f (jn, 1, 1.0, 0.440050585744933515959682203718914913L);
- TEST_ff_f (jn, 1, 1.5, 0.557936507910099641990121213156089400L);
- TEST_ff_f (jn, 1, 2.0, 0.576724807756873387202448242269137087L);
- TEST_ff_f (jn, 1, 8.0, 0.234636346853914624381276651590454612L);
- TEST_ff_f (jn, 1, 10.0, 0.0434727461688614366697487680258592883L);
-
- /* jn (3, x) */
- TEST_ff_f (jn, 3, nan_value, nan_value);
- TEST_ff_f (jn, 3, plus_infty, 0);
-
- TEST_ff_f (jn, 3, -1.0, -0.0195633539826684059189053216217515083L);
- TEST_ff_f (jn, 3, 0.0, 0.0);
- TEST_ff_f (jn, 3, 0.125L, 0.406503832554912875023029337653442868e-4L);
- TEST_ff_f (jn, 3, 0.75L, 0.848438342327410884392755236884386804e-2L);
- TEST_ff_f (jn, 3, 1.0, 0.0195633539826684059189053216217515083L);
- TEST_ff_f (jn, 3, 2.0, 0.128943249474402051098793332969239835L);
- TEST_ff_f (jn, 3, 10.0, 0.0583793793051868123429354784103409563L);
-
- /* jn (10, x) */
- TEST_ff_f (jn, 10, nan_value, nan_value);
- TEST_ff_f (jn, 10, plus_infty, 0);
-
- TEST_ff_f (jn, 10, -1.0, 0.263061512368745320699785368779050294e-9L);
- TEST_ff_f (jn, 10, 0.0, 0.0);
- TEST_ff_f (jn, 10, 0.125L, 0.250543369809369890173993791865771547e-18L);
- TEST_ff_f (jn, 10, 0.75L, 0.149621713117596814698712483621682835e-10L);
- TEST_ff_f (jn, 10, 1.0, 0.263061512368745320699785368779050294e-9L);
- TEST_ff_f (jn, 10, 2.0, 0.251538628271673670963516093751820639e-6L);
- TEST_ff_f (jn, 10, 10.0, 0.207486106633358857697278723518753428L);
-
- END (jn);
-}
-#endif /* __DO_XSI_MATH__ */
-
-
-static void
-ldexp_test (void)
-{
- TEST_ff_f (ldexp, 0, 0, 0);
- TEST_ff_f (ldexp, minus_zero, 0, minus_zero);
-
- TEST_ff_f (ldexp, plus_infty, 1, plus_infty);
- TEST_ff_f (ldexp, minus_infty, 1, minus_infty);
- TEST_ff_f (ldexp, nan_value, 1, nan_value);
-
- TEST_ff_f (ldexp, 0.8L, 4, 12.8L);
- TEST_ff_f (ldexp, -0.854375L, 5, -27.34L);
-
- /* ldexp (x, 0) == x. */
- TEST_ff_f (ldexp, 1.0L, 0L, 1.0L);
-}
-
-
-static void
-lgamma_test (void)
-{
- errno = 0;
- FUNC(lgamma) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
- feclearexcept (FE_ALL_EXCEPT);
-
- START (lgamma);
-
- TEST_f_f (lgamma, plus_infty, plus_infty);
- TEST_f_f (lgamma, 0, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_f_f (lgamma, nan_value, nan_value);
-
- /* lgamma (x) == +inf plus divide by zero exception for integer x <= 0. */
- TEST_f_f (lgamma, -3, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_f_f (lgamma, minus_infty, plus_infty);
-
- TEST_f_f1 (lgamma, 1, 0, 1);
-
- TEST_f_f1 (lgamma, 3, M_LN2l, 1);
-
- TEST_f_f1 (lgamma, 0.5, M_LOG_SQRT_PIl, 1);
- TEST_f_f1 (lgamma, -0.5, M_LOG_2_SQRT_PIl, -1);
- TEST_f_f1 (lgamma, 0.7L, 0.260867246531666514385732417016759578L, 1);
- TEST_f_f1 (lgamma, 1.2L, -0.853740900033158497197028392998854470e-1L, 1);
-
- END (lgamma);
-}
-
-
-#if 0
-static void
-lrint_test (void)
-{
- /* XXX this test is incomplete. We need to have a way to specifiy
- the rounding method and test the critical cases. So far, only
- unproblematic numbers are tested. */
-
- START (lrint);
-
- TEST_f_l (lrint, 0.0, 0);
- TEST_f_l (lrint, minus_zero, 0);
- TEST_f_l (lrint, 0.2L, 0);
- TEST_f_l (lrint, -0.2L, 0);
-
- TEST_f_l (lrint, 1.4L, 1);
- TEST_f_l (lrint, -1.4L, -1);
-
- TEST_f_l (lrint, 8388600.3L, 8388600);
- TEST_f_l (lrint, -8388600.3L, -8388600);
-
- TEST_f_l (lrint, 1071930.0008, 1071930);
-#ifndef TEST_FLOAT
- TEST_f_l (lrint, 1073741824.01, 1073741824);
-# if LONG_MAX > 281474976710656
- TEST_f_l (lrint, 281474976710656.025, 281474976710656);
-# endif
-#endif
-
- END (lrint);
-}
-
-
-static void
-llrint_test (void)
-{
- /* XXX this test is incomplete. We need to have a way to specifiy
- the rounding method and test the critical cases. So far, only
- unproblematic numbers are tested. */
-
- START (llrint);
-
- TEST_f_L (llrint, 0.0, 0);
- TEST_f_L (llrint, minus_zero, 0);
- TEST_f_L (llrint, 0.2L, 0);
- TEST_f_L (llrint, -0.2L, 0);
-
- TEST_f_L (llrint, 1.4L, 1);
- TEST_f_L (llrint, -1.4L, -1);
-
- TEST_f_L (llrint, 8388600.3L, 8388600);
- TEST_f_L (llrint, -8388600.3L, -8388600);
-
- TEST_f_l (llrint, 1071930.0008, 1071930);
-
- /* Test boundary conditions. */
- /* 0x1FFFFF */
- TEST_f_L (llrint, 2097151.0,2097151LL);
- /* 0x800000 */
- TEST_f_L (llrint, 8388608.0, 8388608LL);
- /* 0x1000000 */
- TEST_f_L (llrint, 16777216.0, 16777216LL);
- /* 0x20000000000 */
- TEST_f_L (llrint, 2199023255552.0, 2199023255552LL);
- /* 0x40000000000 */
- TEST_f_L (llrint, 4398046511104.0, 4398046511104LL);
- /* 0x1000000000000 */
- TEST_f_L (llrint, 281474976710656.0, 281474976710656LL);
- /* 0x10000000000000 */
- TEST_f_L (llrint, 4503599627370496.0, 4503599627370496LL);
- /* 0x10000080000000 */
- TEST_f_L (llrint, 4503601774854144.0, 4503601774854144LL);
- /* 0x20000000000000 */
- TEST_f_L (llrint, 9007199254740992.0, 9007199254740992LL);
- /* 0x80000000000000 */
- TEST_f_L (llrint, 36028797018963968.0, 36028797018963968LL);
- /* 0x100000000000000 */
- TEST_f_L (llrint, 72057594037927936.0, 72057594037927936LL);
-#ifdef TEST_LDOUBLE
- /* The input can only be represented in long double. */
- TEST_f_L (llrint, 4503599627370495.5L, 4503599627370496LL);
- TEST_f_L (llrint, 4503599627370496.25L, 4503599627370496LL);
- TEST_f_L (llrint, 4503599627370496.5L, 4503599627370496LL);
- TEST_f_L (llrint, 4503599627370496.75L, 4503599627370497LL);
- TEST_f_L (llrint, 4503599627370497.5L, 4503599627370498LL);
-
- TEST_f_L (llrint, -4503599627370495.5L, -4503599627370496LL);
- TEST_f_L (llrint, -4503599627370496.25L, -4503599627370496LL);
- TEST_f_L (llrint, -4503599627370496.5L, -4503599627370496LL);
- TEST_f_L (llrint, -4503599627370496.75L, -4503599627370497LL);
- TEST_f_L (llrint, -4503599627370497.5L, -4503599627370498LL);
-
- TEST_f_L (llrint, 9007199254740991.5L, 9007199254740992LL);
- TEST_f_L (llrint, 9007199254740992.25L, 9007199254740992LL);
- TEST_f_L (llrint, 9007199254740992.5L, 9007199254740992LL);
- TEST_f_L (llrint, 9007199254740992.75L, 9007199254740993LL);
- TEST_f_L (llrint, 9007199254740993.5L, 9007199254740994LL);
-
- TEST_f_L (llrint, -9007199254740991.5L, -9007199254740992LL);
- TEST_f_L (llrint, -9007199254740992.25L, -9007199254740992LL);
- TEST_f_L (llrint, -9007199254740992.5L, -9007199254740992LL);
- TEST_f_L (llrint, -9007199254740992.75L, -9007199254740993LL);
- TEST_f_L (llrint, -9007199254740993.5L, -9007199254740994LL);
-
- TEST_f_L (llrint, 72057594037927935.5L, 72057594037927936LL);
- TEST_f_L (llrint, 72057594037927936.25L, 72057594037927936LL);
- TEST_f_L (llrint, 72057594037927936.5L, 72057594037927936LL);
- TEST_f_L (llrint, 72057594037927936.75L, 72057594037927937LL);
- TEST_f_L (llrint, 72057594037927937.5L, 72057594037927938LL);
-
- TEST_f_L (llrint, -72057594037927935.5L, -72057594037927936LL);
- TEST_f_L (llrint, -72057594037927936.25L, -72057594037927936LL);
- TEST_f_L (llrint, -72057594037927936.5L, -72057594037927936LL);
- TEST_f_L (llrint, -72057594037927936.75L, -72057594037927937LL);
- TEST_f_L (llrint, -72057594037927937.5L, -72057594037927938LL);
-#endif
-
- END (llrint);
-}
-#endif
-
-
-static void
-log_test (void)
-{
- errno = 0;
- FUNC(log) (1);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
- START (log);
-
- TEST_f_f (log, 0, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_f_f (log, minus_zero, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
-
- TEST_f_f (log, 1, 0);
-
- TEST_f_f (log, -1, nan_value, INVALID_EXCEPTION);
- TEST_f_f (log, plus_infty, plus_infty);
-
- TEST_f_f (log, M_El, 1);
- TEST_f_f (log, 1.0 / M_El, -1);
- TEST_f_f (log, 2, M_LN2l);
- TEST_f_f (log, 10, M_LN10l);
- TEST_f_f (log, 0.75L, -0.287682072451780927439219005993827432L);
-
- END (log);
-}
-
-
-static void
-log10_test (void)
-{
- errno = 0;
- FUNC(log10) (1);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (log10);
-
- TEST_f_f (log10, 0, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_f_f (log10, minus_zero, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
-
- TEST_f_f (log10, 1, 0);
-
- /* log10 (x) == NaN plus invalid exception if x < 0. */
- TEST_f_f (log10, -1, nan_value, INVALID_EXCEPTION);
-
- TEST_f_f (log10, plus_infty, plus_infty);
- TEST_f_f (log10, nan_value, nan_value);
-
- TEST_f_f (log10, 0.1L, -1);
- TEST_f_f (log10, 10.0, 1);
- TEST_f_f (log10, 100.0, 2);
- TEST_f_f (log10, 10000.0, 4);
- TEST_f_f (log10, M_El, M_LOG10El);
- TEST_f_f (log10, 0.75L, -0.124938736608299953132449886193870744L);
-
- END (log10);
-}
-
-
-static void
-log1p_test (void)
-{
- errno = 0;
- FUNC(log1p) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (log1p);
-
- TEST_f_f (log1p, 0, 0);
- TEST_f_f (log1p, minus_zero, minus_zero);
-
- TEST_f_f (log1p, -1, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_f_f (log1p, -2, nan_value, INVALID_EXCEPTION);
-
- TEST_f_f (log1p, plus_infty, plus_infty);
- TEST_f_f (log1p, nan_value, nan_value);
-
- TEST_f_f (log1p, M_El - 1.0, 1);
-
- TEST_f_f (log1p, -0.25L, -0.287682072451780927439219005993827432L);
- TEST_f_f (log1p, -0.875, -2.07944154167983592825169636437452970L);
-
- END (log1p);
-}
-
-static void
-log2_test (void)
-{
- errno = 0;
- FUNC(log2) (1);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (log2);
-
- TEST_f_f (log2, 0, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_f_f (log2, minus_zero, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
-
- TEST_f_f (log2, 1, 0);
-
- TEST_f_f (log2, -1, nan_value, INVALID_EXCEPTION);
-
- TEST_f_f (log2, plus_infty, plus_infty);
- TEST_f_f (log2, nan_value, nan_value);
-
- TEST_f_f (log2, M_El, M_LOG2El);
- TEST_f_f (log2, 2.0, 1);
- TEST_f_f (log2, 16.0, 4);
- TEST_f_f (log2, 256.0, 8);
- TEST_f_f (log2, 0.75L, -.415037499278843818546261056052183492L);
-
- END (log2);
-}
-
-static void
-logb_test (void)
-{
- START (logb);
-
- TEST_f_f (logb, plus_infty, plus_infty);
- TEST_f_f (logb, minus_infty, plus_infty);
-
- TEST_f_f (logb, 0, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
-
- TEST_f_f (logb, minus_zero, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_f_f (logb, nan_value, nan_value);
-
- TEST_f_f (logb, 1, 0);
- TEST_f_f (logb, M_El, 1);
- TEST_f_f (logb, 1024, 10);
- TEST_f_f (logb, -2000, 10);
-
- END (logb);
-}
-
-
-#if 0
-static void
-lround_test (void)
-{
- START (lround);
-
- TEST_f_l (lround, 0, 0);
- TEST_f_l (lround, minus_zero, 0);
- TEST_f_l (lround, 0.2L, 0.0);
- TEST_f_l (lround, -0.2L, 0);
- TEST_f_l (lround, 0.5, 1);
- TEST_f_l (lround, -0.5, -1);
- TEST_f_l (lround, 0.8L, 1);
- TEST_f_l (lround, -0.8L, -1);
- TEST_f_l (lround, 1.5, 2);
- TEST_f_l (lround, -1.5, -2);
- TEST_f_l (lround, 22514.5, 22515);
- TEST_f_l (lround, -22514.5, -22515);
- TEST_f_l (lround, 1071930.0008, 1071930);
-#ifndef TEST_FLOAT
- TEST_f_l (lround, 1073741824.01, 1073741824);
-# if LONG_MAX > 281474976710656
- TEST_f_l (lround, 281474976710656.025, 281474976710656);
-# endif
- TEST_f_l (lround, 2097152.5, 2097153);
- TEST_f_l (lround, -2097152.5, -2097153);
-#endif
- END (lround);
-}
-
-
-static void
-llround_test (void)
-{
- START (llround);
-
- TEST_f_L (llround, 0, 0);
- TEST_f_L (llround, minus_zero, 0);
- TEST_f_L (llround, 0.2L, 0.0);
- TEST_f_L (llround, -0.2L, 0);
- TEST_f_L (llround, 0.5, 1);
- TEST_f_L (llround, -0.5, -1);
- TEST_f_L (llround, 0.8L, 1);
- TEST_f_L (llround, -0.8L, -1);
- TEST_f_L (llround, 1.5, 2);
- TEST_f_L (llround, -1.5, -2);
- TEST_f_L (llround, 22514.5, 22515);
- TEST_f_L (llround, -22514.5, -22515);
- TEST_f_l (llround, 1071930.0008, 1071930);
-#ifndef TEST_FLOAT
- TEST_f_L (llround, 2097152.5, 2097153);
- TEST_f_L (llround, -2097152.5, -2097153);
- TEST_f_L (llround, 34359738368.5, 34359738369ll);
- TEST_f_L (llround, -34359738368.5, -34359738369ll);
-#endif
-
- /* Test boundary conditions. */
- /* 0x1FFFFF */
- TEST_f_L (llround, 2097151.0, 2097151LL);
- /* 0x800000 */
- TEST_f_L (llround, 8388608.0, 8388608LL);
- /* 0x1000000 */
- TEST_f_L (llround, 16777216.0, 16777216LL);
- /* 0x20000000000 */
- TEST_f_L (llround, 2199023255552.0, 2199023255552LL);
- /* 0x40000000000 */
- TEST_f_L (llround, 4398046511104.0, 4398046511104LL);
- /* 0x1000000000000 */
- TEST_f_L (llround, 281474976710656.0, 281474976710656LL);
- /* 0x10000000000000 */
- TEST_f_L (llround, 4503599627370496.0, 4503599627370496LL);
- /* 0x10000080000000 */
- TEST_f_L (llround, 4503601774854144.0, 4503601774854144LL);
- /* 0x20000000000000 */
- TEST_f_L (llround, 9007199254740992.0, 9007199254740992LL);
- /* 0x80000000000000 */
- TEST_f_L (llround, 36028797018963968.0, 36028797018963968LL);
- /* 0x100000000000000 */
- TEST_f_L (llround, 72057594037927936.0, 72057594037927936LL);
-
-#ifndef TEST_FLOAT
- /* 0x100000000 */
- TEST_f_L (llround, 4294967295.5, 4294967296LL);
- /* 0x200000000 */
- TEST_f_L (llround, 8589934591.5, 8589934592LL);
-#endif
-
-#ifdef TEST_LDOUBLE
- /* The input can only be represented in long double. */
- TEST_f_L (llround, 4503599627370495.5L, 4503599627370496LL);
- TEST_f_L (llround, 4503599627370496.25L, 4503599627370496LL);
- TEST_f_L (llround, 4503599627370496.5L, 4503599627370497LL);
- TEST_f_L (llround, 4503599627370496.75L, 4503599627370497LL);
- TEST_f_L (llround, 4503599627370497.5L, 4503599627370498LL);
-
- TEST_f_L (llround, -4503599627370495.5L, -4503599627370496LL);
- TEST_f_L (llround, -4503599627370496.25L, -4503599627370496LL);
- TEST_f_L (llround, -4503599627370496.5L, -4503599627370497LL);
- TEST_f_L (llround, -4503599627370496.75L, -4503599627370497LL);
- TEST_f_L (llround, -4503599627370497.5L, -4503599627370498LL);
-
- TEST_f_L (llround, 9007199254740991.5L, 9007199254740992LL);
- TEST_f_L (llround, 9007199254740992.25L, 9007199254740992LL);
- TEST_f_L (llround, 9007199254740992.5L, 9007199254740993LL);
- TEST_f_L (llround, 9007199254740992.75L, 9007199254740993LL);
- TEST_f_L (llround, 9007199254740993.5L, 9007199254740994LL);
-
- TEST_f_L (llround, -9007199254740991.5L, -9007199254740992LL);
- TEST_f_L (llround, -9007199254740992.25L, -9007199254740992LL);
- TEST_f_L (llround, -9007199254740992.5L, -9007199254740993LL);
- TEST_f_L (llround, -9007199254740992.75L, -9007199254740993LL);
- TEST_f_L (llround, -9007199254740993.5L, -9007199254740994LL);
-
- TEST_f_L (llround, 72057594037927935.5L, 72057594037927936LL);
- TEST_f_L (llround, 72057594037927936.25L, 72057594037927936LL);
- TEST_f_L (llround, 72057594037927936.5L, 72057594037927937LL);
- TEST_f_L (llround, 72057594037927936.75L, 72057594037927937LL);
- TEST_f_L (llround, 72057594037927937.5L, 72057594037927938LL);
-
- TEST_f_L (llround, -72057594037927935.5L, -72057594037927936LL);
- TEST_f_L (llround, -72057594037927936.25L, -72057594037927936LL);
- TEST_f_L (llround, -72057594037927936.5L, -72057594037927937LL);
- TEST_f_L (llround, -72057594037927936.75L, -72057594037927937LL);
- TEST_f_L (llround, -72057594037927937.5L, -72057594037927938LL);
-
- TEST_f_L (llround, 9223372036854775806.25L, 9223372036854775806LL);
- TEST_f_L (llround, -9223372036854775806.25L, -9223372036854775806LL);
- TEST_f_L (llround, 9223372036854775806.5L, 9223372036854775807LL);
- TEST_f_L (llround, -9223372036854775806.5L, -9223372036854775807LL);
- TEST_f_L (llround, 9223372036854775807.0L, 9223372036854775807LL);
- TEST_f_L (llround, -9223372036854775807.0L, -9223372036854775807LL);
-#endif
-
- END (llround);
-}
-#endif
-
-static void
-modf_test (void)
-{
- FLOAT x;
-
- START (modf);
-
- TEST_fF_f1 (modf, plus_infty, 0, plus_infty);
- TEST_fF_f1 (modf, minus_infty, minus_zero, minus_infty);
- TEST_fF_f1 (modf, nan_value, nan_value, nan_value);
- TEST_fF_f1 (modf, 0, 0, 0);
- TEST_fF_f1 (modf, 1.5, 0.5, 1);
- TEST_fF_f1 (modf, 2.5, 0.5, 2);
- TEST_fF_f1 (modf, -2.5, -0.5, -2);
- TEST_fF_f1 (modf, 20, 0, 20);
- TEST_fF_f1 (modf, 21, 0, 21);
- TEST_fF_f1 (modf, 89.5, 0.5, 89);
-
- END (modf);
-}
-
-
-static void
-nearbyint_test (void)
-{
- START (nearbyint);
-
- TEST_f_f (nearbyint, 0.0, 0.0);
- TEST_f_f (nearbyint, minus_zero, minus_zero);
- TEST_f_f (nearbyint, plus_infty, plus_infty);
- TEST_f_f (nearbyint, minus_infty, minus_infty);
- TEST_f_f (nearbyint, nan_value, nan_value);
-
- /* Default rounding mode is round to nearest. */
- TEST_f_f (nearbyint, 0.5, 0.0);
- TEST_f_f (nearbyint, 1.5, 2.0);
- TEST_f_f (nearbyint, -0.5, minus_zero);
- TEST_f_f (nearbyint, -1.5, -2.0);
-
- END (nearbyint);
-}
-
-static void
-nextafter_test (void)
-{
-
- START (nextafter);
-
- TEST_ff_f (nextafter, 0, 0, 0);
- TEST_ff_f (nextafter, minus_zero, 0, 0);
- TEST_ff_f (nextafter, 0, minus_zero, minus_zero);
- TEST_ff_f (nextafter, minus_zero, minus_zero, minus_zero);
-
- TEST_ff_f (nextafter, 9, 9, 9);
- TEST_ff_f (nextafter, -9, -9, -9);
- TEST_ff_f (nextafter, plus_infty, plus_infty, plus_infty);
- TEST_ff_f (nextafter, minus_infty, minus_infty, minus_infty);
-
- TEST_ff_f (nextafter, nan_value, 1.1L, nan_value);
- TEST_ff_f (nextafter, 1.1L, nan_value, nan_value);
- TEST_ff_f (nextafter, nan_value, nan_value, nan_value);
-
- FLOAT fltmax = CHOOSE (LDBL_MAX, DBL_MAX, FLT_MAX,
- LDBL_MAX, DBL_MAX, FLT_MAX);
- TEST_ff_f (nextafter, fltmax, plus_infty, plus_infty);
- TEST_ff_f (nextafter, -fltmax, minus_infty, minus_infty);
-
-#ifdef TEST_LDOUBLE
- // XXX Enable once gcc is fixed.
- //TEST_ff_f (nextafter, 0x0.00000040000000000000p-16385L, -0.1L,
0x0.0000003ffffffff00000p-16385L);
-#endif
-
- /* XXX We need the hexadecimal FP number representation here for further
- tests. */
-
- END (nextafter);
-}
-
-
-static void
-nexttoward_test (void)
-{
- START (nexttoward);
- TEST_ff_f (nexttoward, 0, 0, 0);
- TEST_ff_f (nexttoward, minus_zero, 0, 0);
- TEST_ff_f (nexttoward, 0, minus_zero, minus_zero);
- TEST_ff_f (nexttoward, minus_zero, minus_zero, minus_zero);
-
- TEST_ff_f (nexttoward, 9, 9, 9);
- TEST_ff_f (nexttoward, -9, -9, -9);
- TEST_ff_f (nexttoward, plus_infty, plus_infty, plus_infty);
- TEST_ff_f (nexttoward, minus_infty, minus_infty, minus_infty);
-
- TEST_ff_f (nexttoward, nan_value, 1.1L, nan_value);
- TEST_ff_f (nexttoward, 1.1L, nan_value, nan_value);
- TEST_ff_f (nexttoward, nan_value, nan_value, nan_value);
-
- /* XXX We need the hexadecimal FP number representation here for further
- tests. */
-
- END (nexttoward);
-}
-
-
-static void
-pow_test (void)
-{
-
- errno = 0;
- FUNC(pow) (0, 0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (pow);
-
- TEST_ff_f (pow, 0, 0, 1);
- TEST_ff_f (pow, 0, minus_zero, 1);
- TEST_ff_f (pow, minus_zero, 0, 1);
- TEST_ff_f (pow, minus_zero, minus_zero, 1);
-
- TEST_ff_f (pow, 10, 0, 1);
- TEST_ff_f (pow, 10, minus_zero, 1);
- TEST_ff_f (pow, -10, 0, 1);
- TEST_ff_f (pow, -10, minus_zero, 1);
-
- TEST_ff_f (pow, nan_value, 0, 1);
- TEST_ff_f (pow, nan_value, minus_zero, 1);
-
-
-#ifndef TEST_INLINE
- TEST_ff_f (pow, 1.1L, plus_infty, plus_infty);
- TEST_ff_f (pow, plus_infty, plus_infty, plus_infty);
- TEST_ff_f (pow, -1.1L, plus_infty, plus_infty);
- TEST_ff_f (pow, minus_infty, plus_infty, plus_infty);
-
- TEST_ff_f (pow, 0.9L, plus_infty, 0);
- TEST_ff_f (pow, 1e-7L, plus_infty, 0);
- TEST_ff_f (pow, -0.9L, plus_infty, 0);
- TEST_ff_f (pow, -1e-7L, plus_infty, 0);
-
- TEST_ff_f (pow, 1.1L, minus_infty, 0);
- TEST_ff_f (pow, plus_infty, minus_infty, 0);
- TEST_ff_f (pow, -1.1L, minus_infty, 0);
- TEST_ff_f (pow, minus_infty, minus_infty, 0);
-
- TEST_ff_f (pow, 0.9L, minus_infty, plus_infty);
- TEST_ff_f (pow, 1e-7L, minus_infty, plus_infty);
- TEST_ff_f (pow, -0.9L, minus_infty, plus_infty);
- TEST_ff_f (pow, -1e-7L, minus_infty, plus_infty);
-
- TEST_ff_f (pow, plus_infty, 1e-7L, plus_infty);
- TEST_ff_f (pow, plus_infty, 1, plus_infty);
- TEST_ff_f (pow, plus_infty, 1e7L, plus_infty);
-
- TEST_ff_f (pow, plus_infty, -1e-7L, 0);
- TEST_ff_f (pow, plus_infty, -1, 0);
- TEST_ff_f (pow, plus_infty, -1e7L, 0);
-
- TEST_ff_f (pow, minus_infty, 1, minus_infty);
- TEST_ff_f (pow, minus_infty, 11, minus_infty);
- TEST_ff_f (pow, minus_infty, 1001, minus_infty);
-
- TEST_ff_f (pow, minus_infty, 2, plus_infty);
- TEST_ff_f (pow, minus_infty, 12, plus_infty);
- TEST_ff_f (pow, minus_infty, 1002, plus_infty);
- TEST_ff_f (pow, minus_infty, 0.1L, plus_infty);
- TEST_ff_f (pow, minus_infty, 1.1L, plus_infty);
- TEST_ff_f (pow, minus_infty, 11.1L, plus_infty);
- TEST_ff_f (pow, minus_infty, 1001.1L, plus_infty);
-
- TEST_ff_f (pow, minus_infty, -1, minus_zero);
- TEST_ff_f (pow, minus_infty, -11, minus_zero);
- TEST_ff_f (pow, minus_infty, -1001, minus_zero);
-
- TEST_ff_f (pow, minus_infty, -2, 0);
- TEST_ff_f (pow, minus_infty, -12, 0);
- TEST_ff_f (pow, minus_infty, -1002, 0);
- TEST_ff_f (pow, minus_infty, -0.1L, 0);
- TEST_ff_f (pow, minus_infty, -1.1L, 0);
- TEST_ff_f (pow, minus_infty, -11.1L, 0);
- TEST_ff_f (pow, minus_infty, -1001.1L, 0);
-#endif
-
- TEST_ff_f (pow, nan_value, nan_value, nan_value);
- TEST_ff_f (pow, 0, nan_value, nan_value);
- TEST_ff_f (pow, 1, nan_value, 1);
- TEST_ff_f (pow, -1, nan_value, nan_value);
- TEST_ff_f (pow, nan_value, 1, nan_value);
- TEST_ff_f (pow, nan_value, -1, nan_value);
-
- /* pow (x, NaN) == NaN. */
- TEST_ff_f (pow, 3.0, nan_value, nan_value);
-
- TEST_ff_f (pow, 1, plus_infty, 1);
- TEST_ff_f (pow, -1, plus_infty, 1);
- TEST_ff_f (pow, 1, minus_infty, 1);
- TEST_ff_f (pow, -1, minus_infty, 1);
- TEST_ff_f (pow, 1, 1, 1);
- TEST_ff_f (pow, 1, -1, 1);
- TEST_ff_f (pow, 1, 1.25, 1);
- TEST_ff_f (pow, 1, -1.25, 1);
- TEST_ff_f (pow, 1, 0x1p62L, 1);
- TEST_ff_f (pow, 1, 0x1p63L, 1);
- TEST_ff_f (pow, 1, 0x1p64L, 1);
- TEST_ff_f (pow, 1, 0x1p72L, 1);
-
- /* pow (x, +-0) == 1. */
- TEST_ff_f (pow, plus_infty, 0, 1);
- TEST_ff_f (pow, plus_infty, minus_zero, 1);
- TEST_ff_f (pow, minus_infty, 0, 1);
- TEST_ff_f (pow, minus_infty, minus_zero, 1);
- TEST_ff_f (pow, 32.75L, 0, 1);
- TEST_ff_f (pow, 32.75L, minus_zero, 1);
- TEST_ff_f (pow, -32.75L, 0, 1);
- TEST_ff_f (pow, -32.75L, minus_zero, 1);
- TEST_ff_f (pow, 0x1p72L, 0, 1);
- TEST_ff_f (pow, 0x1p72L, minus_zero, 1);
- TEST_ff_f (pow, 0x1p-72L, 0, 1);
- TEST_ff_f (pow, 0x1p-72L, minus_zero, 1);
-
- TEST_ff_f (pow, -0.1L, 1.1L, nan_value, INVALID_EXCEPTION);
- TEST_ff_f (pow, -0.1L, -1.1L, nan_value, INVALID_EXCEPTION);
- TEST_ff_f (pow, -10.1L, 1.1L, nan_value, INVALID_EXCEPTION);
- TEST_ff_f (pow, -10.1L, -1.1L, nan_value, INVALID_EXCEPTION);
-
- TEST_ff_f (pow, 0, -1, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_ff_f (pow, 0, -11, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_ff_f (pow, minus_zero, -1, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_ff_f (pow, minus_zero, -11, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
-
- TEST_ff_f (pow, 0, -2, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_ff_f (pow, 0, -11.1L, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_ff_f (pow, minus_zero, -2, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_ff_f (pow, minus_zero, -11.1L, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
-
- TEST_ff_f (pow, 0x1p72L, 0x1p72L, plus_infty);
- TEST_ff_f (pow, 10, -0x1p72L, 0);
- TEST_ff_f (pow, max_value, max_value, plus_infty);
- TEST_ff_f (pow, 10, -max_value, 0);
-
- TEST_ff_f (pow, 0, 1, 0);
- TEST_ff_f (pow, 0, 11, 0);
-
- TEST_ff_f (pow, minus_zero, 1, minus_zero);
- TEST_ff_f (pow, minus_zero, 11, minus_zero);
-
-
- TEST_ff_f (pow, 0, 2, 0);
- TEST_ff_f (pow, 0, 11.1L, 0);
-
-
- TEST_ff_f (pow, minus_zero, 2, 0);
- TEST_ff_f (pow, minus_zero, 11.1L, 0);
- TEST_ff_f (pow, 0, plus_infty, 0);
- TEST_ff_f (pow, minus_zero, plus_infty, 0);
-
-#ifndef TEST_INLINE
- /* pow (x, +inf) == +inf for |x| > 1. */
- TEST_ff_f (pow, 1.5, plus_infty, plus_infty);
-
- /* pow (x, +inf) == +0 for |x| < 1. */
- TEST_ff_f (pow, 0.5, plus_infty, 0.0);
-
- /* pow (x, -inf) == +0 for |x| > 1. */
- TEST_ff_f (pow, 1.5, minus_infty, 0.0);
-
- /* pow (x, -inf) == +inf for |x| < 1. */
- TEST_ff_f (pow, 0.5, minus_infty, plus_infty);
-#endif
-
- /* pow (+inf, y) == +inf for y > 0. */
- TEST_ff_f (pow, plus_infty, 2, plus_infty);
-
- /* pow (+inf, y) == +0 for y < 0. */
- TEST_ff_f (pow, plus_infty, -1, 0.0);
-
- /* pow (-inf, y) == -inf for y an odd integer > 0. */
- TEST_ff_f (pow, minus_infty, 27, minus_infty);
-
- /* pow (-inf, y) == +inf for y > 0 and not an odd integer. */
- TEST_ff_f (pow, minus_infty, 28, plus_infty);
-
- /* pow (-inf, y) == -0 for y an odd integer < 0. */
- TEST_ff_f (pow, minus_infty, -3, minus_zero);
- /* pow (-inf, y) == +0 for y < 0 and not an odd integer. */
- TEST_ff_f (pow, minus_infty, -2.0, 0.0);
-
- /* pow (+0, y) == +0 for y an odd integer > 0. */
- TEST_ff_f (pow, 0.0, 27, 0.0);
-
- /* pow (-0, y) == -0 for y an odd integer > 0. */
- TEST_ff_f (pow, minus_zero, 27, minus_zero);
-
- /* pow (+0, y) == +0 for y > 0 and not an odd integer. */
- TEST_ff_f (pow, 0.0, 4, 0.0);
-
- /* pow (-0, y) == +0 for y > 0 and not an odd integer. */
- TEST_ff_f (pow, minus_zero, 4, 0.0);
-
- TEST_ff_f (pow, 16, 0.25L, 2);
- TEST_ff_f (pow, 0x1p64L, 0.125L, 256);
- TEST_ff_f (pow, 2, 4, 16);
- TEST_ff_f (pow, 256, 8, 0x1p64L);
-
- TEST_ff_f (pow, 0.75L, 1.25L, 0.697953644326574699205914060237425566L);
-
-#if defined TEST_DOUBLE || defined TEST_LDOUBLE
- TEST_ff_f (pow, -7.49321e+133, -9.80818e+16, 0);
-#endif
-
- END (pow);
-}
-
-static void
-remainder_test (void)
-{
- errno = 0;
- FUNC(remainder) (1.625, 1.0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (remainder);
-
- TEST_ff_f (remainder, 1, 0, nan_value, INVALID_EXCEPTION);
- TEST_ff_f (remainder, 1, minus_zero, nan_value, INVALID_EXCEPTION);
- TEST_ff_f (remainder, plus_infty, 1, nan_value, INVALID_EXCEPTION);
- TEST_ff_f (remainder, minus_infty, 1, nan_value, INVALID_EXCEPTION);
- TEST_ff_f (remainder, nan_value, nan_value, nan_value);
-
- TEST_ff_f (remainder, 1.625, 1.0, -0.375);
- TEST_ff_f (remainder, -1.625, 1.0, 0.375);
- TEST_ff_f (remainder, 1.625, -1.0, -0.375);
- TEST_ff_f (remainder, -1.625, -1.0, 0.375);
- TEST_ff_f (remainder, 5.0, 2.0, 1.0);
- TEST_ff_f (remainder, 3.0, 2.0, -1.0);
-
- END (remainder);
-}
-
-static void
-remquo_test (void)
-{
- /* x is needed. */
- int x;
-
- errno = 0;
- FUNC(remquo) (1.625, 1.0, &x);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (remquo);
-
- TEST_ffI_f1 (remquo, 1, 0, nan_value, IGNORE, INVALID_EXCEPTION);
- TEST_ffI_f1 (remquo, 1, minus_zero, nan_value, IGNORE, INVALID_EXCEPTION);
- TEST_ffI_f1 (remquo, plus_infty, 1, nan_value, IGNORE, INVALID_EXCEPTION);
- TEST_ffI_f1 (remquo, minus_infty, 1, nan_value, IGNORE, INVALID_EXCEPTION);
- TEST_ffI_f1 (remquo, nan_value, nan_value, nan_value, IGNORE);
-
- TEST_ffI_f1 (remquo, 1.625, 1.0, -0.375, 2);
- TEST_ffI_f1 (remquo, -1.625, 1.0, 0.375, -2);
- TEST_ffI_f1 (remquo, 1.625, -1.0, -0.375, -2);
- TEST_ffI_f1 (remquo, -1.625, -1.0, 0.375, 2);
-
- TEST_ffI_f1 (remquo, 5, 2, 1, 2);
- TEST_ffI_f1 (remquo, 3, 2, -1, 2);
-
- END (remquo);
-}
-
-static void
-rint_test (void)
-{
- START (rint);
-
- TEST_f_f (rint, 0.0, 0.0);
- TEST_f_f (rint, minus_zero, minus_zero);
- TEST_f_f (rint, plus_infty, plus_infty);
- TEST_f_f (rint, minus_infty, minus_infty);
-
- /* Default rounding mode is round to even. */
- TEST_f_f (rint, 0.5, 0.0);
- TEST_f_f (rint, 1.5, 2.0);
- TEST_f_f (rint, 2.5, 2.0);
- TEST_f_f (rint, 3.5, 4.0);
- TEST_f_f (rint, 4.5, 4.0);
- TEST_f_f (rint, -0.5, -0.0);
- TEST_f_f (rint, -1.5, -2.0);
- TEST_f_f (rint, -2.5, -2.0);
- TEST_f_f (rint, -3.5, -4.0);
- TEST_f_f (rint, -4.5, -4.0);
-#ifdef TEST_LDOUBLE
- /* The result can only be represented in long double. */
- TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L);
- TEST_f_f (rint, 4503599627370496.25L, 4503599627370496.0L);
- TEST_f_f (rint, 4503599627370496.5L, 4503599627370496.0L);
- TEST_f_f (rint, 4503599627370496.75L, 4503599627370497.0L);
- TEST_f_f (rint, 4503599627370497.5L, 4503599627370498.0L);
-
- TEST_f_f (rint, -4503599627370495.5L, -4503599627370496.0L);
- TEST_f_f (rint, -4503599627370496.25L, -4503599627370496.0L);
- TEST_f_f (rint, -4503599627370496.5L, -4503599627370496.0L);
- TEST_f_f (rint, -4503599627370496.75L, -4503599627370497.0L);
- TEST_f_f (rint, -4503599627370497.5L, -4503599627370498.0L);
-
- TEST_f_f (rint, 9007199254740991.5L, 9007199254740992.0L);
- TEST_f_f (rint, 9007199254740992.25L, 9007199254740992.0L);
- TEST_f_f (rint, 9007199254740992.5L, 9007199254740992.0L);
- TEST_f_f (rint, 9007199254740992.75L, 9007199254740993.0L);
- TEST_f_f (rint, 9007199254740993.5L, 9007199254740994.0L);
-
- TEST_f_f (rint, -9007199254740991.5L, -9007199254740992.0L);
- TEST_f_f (rint, -9007199254740992.25L, -9007199254740992.0L);
- TEST_f_f (rint, -9007199254740992.5L, -9007199254740992.0L);
- TEST_f_f (rint, -9007199254740992.75L, -9007199254740993.0L);
- TEST_f_f (rint, -9007199254740993.5L, -9007199254740994.0L);
-
- TEST_f_f (rint, 72057594037927935.5L, 72057594037927936.0L);
- TEST_f_f (rint, 72057594037927936.25L, 72057594037927936.0L);
- TEST_f_f (rint, 72057594037927936.5L, 72057594037927936.0L);
- TEST_f_f (rint, 72057594037927936.75L, 72057594037927937.0L);
- TEST_f_f (rint, 72057594037927937.5L, 72057594037927938.0L);
-
- TEST_f_f (rint, -72057594037927935.5L, -72057594037927936.0L);
- TEST_f_f (rint, -72057594037927936.25L, -72057594037927936.0L);
- TEST_f_f (rint, -72057594037927936.5L, -72057594037927936.0L);
- TEST_f_f (rint, -72057594037927936.75L, -72057594037927937.0L);
- TEST_f_f (rint, -72057594037927937.5L, -72057594037927938.0L);
-
- TEST_f_f (rint, 10141204801825835211973625643007.5L,
10141204801825835211973625643008.0L);
- TEST_f_f (rint, 10141204801825835211973625643008.25L,
10141204801825835211973625643008.0L);
- TEST_f_f (rint, 10141204801825835211973625643008.5L,
10141204801825835211973625643008.0L);
- TEST_f_f (rint, 10141204801825835211973625643008.75L,
10141204801825835211973625643009.0L);
- TEST_f_f (rint, 10141204801825835211973625643009.5L,
10141204801825835211973625643010.0L);
-#endif
-
- END (rint);
-}
-
-#if 0
-static void
-rint_test_tonearest (void)
-{
- int save_round_mode;
- START (rint_tonearest);
-
- save_round_mode = fegetround();
-
- if (!fesetround (FE_TONEAREST))
- {
- TEST_f_f (rint, 2.0, 2.0);
- TEST_f_f (rint, 1.5, 2.0);
- TEST_f_f (rint, 1.0, 1.0);
- TEST_f_f (rint, 0.5, 0.0);
- TEST_f_f (rint, 0.0, 0.0);
- TEST_f_f (rint, minus_zero, minus_zero);
- TEST_f_f (rint, -0.5, -0.0);
- TEST_f_f (rint, -1.0, -1.0);
- TEST_f_f (rint, -1.5, -2.0);
- TEST_f_f (rint, -2.0, -2.0);
- }
-
- fesetround(save_round_mode);
-
- END (rint_tonearest);
-}
-
-static void
-rint_test_towardzero (void)
-{
- int save_round_mode;
- START (rint_towardzero);
-
- save_round_mode = fegetround();
-
- if (!fesetround (FE_TOWARDZERO))
- {
- TEST_f_f (rint, 2.0, 2.0);
- TEST_f_f (rint, 1.5, 1.0);
- TEST_f_f (rint, 1.0, 1.0);
- TEST_f_f (rint, 0.5, 0.0);
- TEST_f_f (rint, 0.0, 0.0);
- TEST_f_f (rint, minus_zero, minus_zero);
- TEST_f_f (rint, -0.5, -0.0);
- TEST_f_f (rint, -1.0, -1.0);
- TEST_f_f (rint, -1.5, -1.0);
- TEST_f_f (rint, -2.0, -2.0);
- }
-
- fesetround(save_round_mode);
-
- END (rint_towardzero);
-}
-
-static void
-rint_test_downward (void)
-{
- int save_round_mode;
- START (rint_downward);
-
- save_round_mode = fegetround();
-
- if (!fesetround (FE_DOWNWARD))
- {
- TEST_f_f (rint, 2.0, 2.0);
- TEST_f_f (rint, 1.5, 1.0);
- TEST_f_f (rint, 1.0, 1.0);
- TEST_f_f (rint, 0.5, 0.0);
- TEST_f_f (rint, 0.0, 0.0);
- TEST_f_f (rint, minus_zero, minus_zero);
- TEST_f_f (rint, -0.5, -1.0);
- TEST_f_f (rint, -1.0, -1.0);
- TEST_f_f (rint, -1.5, -2.0);
- TEST_f_f (rint, -2.0, -2.0);
- }
-
- fesetround(save_round_mode);
-
- END (rint_downward);
-}
-
-static void
-rint_test_upward (void)
-{
- int save_round_mode;
- START (rint_upward);
-
- save_round_mode = fegetround();
-
- if (!fesetround (FE_UPWARD))
- {
- TEST_f_f (rint, 2.0, 2.0);
- TEST_f_f (rint, 1.5, 2.0);
- TEST_f_f (rint, 1.0, 1.0);
- TEST_f_f (rint, 0.5, 1.0);
- TEST_f_f (rint, 0.0, 0.0);
- TEST_f_f (rint, minus_zero, minus_zero);
- TEST_f_f (rint, -0.5, -0.0);
- TEST_f_f (rint, -1.0, -1.0);
- TEST_f_f (rint, -1.5, -1.0);
- TEST_f_f (rint, -2.0, -2.0);
- }
-
- fesetround(save_round_mode);
-
- END (rint_upward);
-}
-
-static void
-round_test (void)
-{
- START (round);
-
- TEST_f_f (round, 0, 0);
- TEST_f_f (round, minus_zero, minus_zero);
- TEST_f_f (round, 0.2L, 0.0);
- TEST_f_f (round, -0.2L, minus_zero);
- TEST_f_f (round, 0.5, 1.0);
- TEST_f_f (round, -0.5, -1.0);
- TEST_f_f (round, 0.8L, 1.0);
- TEST_f_f (round, -0.8L, -1.0);
- TEST_f_f (round, 1.5, 2.0);
- TEST_f_f (round, -1.5, -2.0);
- TEST_f_f (round, 2097152.5, 2097153);
- TEST_f_f (round, -2097152.5, -2097153);
-
-#ifdef TEST_LDOUBLE
- /* The result can only be represented in long double. */
- TEST_f_f (round, 4503599627370495.5L, 4503599627370496.0L);
- TEST_f_f (round, 4503599627370496.25L, 4503599627370496.0L);
- TEST_f_f (round, 4503599627370496.5L, 4503599627370497.0L);
- TEST_f_f (round, 4503599627370496.75L, 4503599627370497.0L);
- TEST_f_f (round, 4503599627370497.5L, 4503599627370498.0L);
-
- TEST_f_f (round, -4503599627370495.5L, -4503599627370496.0L);
- TEST_f_f (round, -4503599627370496.25L, -4503599627370496.0L);
- TEST_f_f (round, -4503599627370496.5L, -4503599627370497.0L);
- TEST_f_f (round, -4503599627370496.75L, -4503599627370497.0L);
- TEST_f_f (round, -4503599627370497.5L, -4503599627370498.0L);
-
- TEST_f_f (round, 9007199254740991.5L, 9007199254740992.0L);
- TEST_f_f (round, 9007199254740992.25L, 9007199254740992.0L);
- TEST_f_f (round, 9007199254740992.5L, 9007199254740993.0L);
- TEST_f_f (round, 9007199254740992.75L, 9007199254740993.0L);
- TEST_f_f (round, 9007199254740993.5L, 9007199254740994.0L);
-
- TEST_f_f (round, -9007199254740991.5L, -9007199254740992.0L);
- TEST_f_f (round, -9007199254740992.25L, -9007199254740992.0L);
- TEST_f_f (round, -9007199254740992.5L, -9007199254740993.0L);
- TEST_f_f (round, -9007199254740992.75L, -9007199254740993.0L);
- TEST_f_f (round, -9007199254740993.5L, -9007199254740994.0L);
-
- TEST_f_f (round, 72057594037927935.5L, 72057594037927936.0L);
- TEST_f_f (round, 72057594037927936.25L, 72057594037927936.0L);
- TEST_f_f (round, 72057594037927936.5L, 72057594037927937.0L);
- TEST_f_f (round, 72057594037927936.75L, 72057594037927937.0L);
- TEST_f_f (round, 72057594037927937.5L, 72057594037927938.0L);
-
- TEST_f_f (round, -72057594037927935.5L, -72057594037927936.0L);
- TEST_f_f (round, -72057594037927936.25L, -72057594037927936.0L);
- TEST_f_f (round, -72057594037927936.5L, -72057594037927937.0L);
- TEST_f_f (round, -72057594037927936.75L, -72057594037927937.0L);
- TEST_f_f (round, -72057594037927937.5L, -72057594037927938.0L);
-
- TEST_f_f (round, 10141204801825835211973625643007.5L,
10141204801825835211973625643008.0L);
- TEST_f_f (round, 10141204801825835211973625643008.25L,
10141204801825835211973625643008.0L);
- TEST_f_f (round, 10141204801825835211973625643008.5L,
10141204801825835211973625643009.0L);
- TEST_f_f (round, 10141204801825835211973625643008.75L,
10141204801825835211973625643009.0L);
- TEST_f_f (round, 10141204801825835211973625643009.5L,
10141204801825835211973625643010.0L);
-#endif
-
- END (round);
-}
-#endif
-
-
-#ifdef __UCLIBC_SUSV3_LEGACY__
-static void
-scalb_test (void)
-{
- START (scalb);
-#ifndef TEST_LDOUBLE /* uclibc doesn't have scalbl */
-
- TEST_ff_f (scalb, 2.0, 0.5, nan_value, INVALID_EXCEPTION);
- TEST_ff_f (scalb, 3.0, -2.5, nan_value, INVALID_EXCEPTION);
-
- TEST_ff_f (scalb, 0, nan_value, nan_value);
- TEST_ff_f (scalb, 1, nan_value, nan_value);
-
- TEST_ff_f (scalb, 1, 0, 1);
- TEST_ff_f (scalb, -1, 0, -1);
-
- TEST_ff_f (scalb, 0, plus_infty, nan_value, INVALID_EXCEPTION);
- TEST_ff_f (scalb, minus_zero, plus_infty, nan_value, INVALID_EXCEPTION);
-
- TEST_ff_f (scalb, 0, 2, 0);
- TEST_ff_f (scalb, minus_zero, -4, minus_zero);
- TEST_ff_f (scalb, 0, 0, 0);
- TEST_ff_f (scalb, minus_zero, 0, minus_zero);
- TEST_ff_f (scalb, 0, -1, 0);
- TEST_ff_f (scalb, minus_zero, -10, minus_zero);
- TEST_ff_f (scalb, 0, minus_infty, 0);
- TEST_ff_f (scalb, minus_zero, minus_infty, minus_zero);
-
- TEST_ff_f (scalb, plus_infty, -1, plus_infty);
- TEST_ff_f (scalb, minus_infty, -10, minus_infty);
- TEST_ff_f (scalb, plus_infty, 0, plus_infty);
- TEST_ff_f (scalb, minus_infty, 0, minus_infty);
- TEST_ff_f (scalb, plus_infty, 2, plus_infty);
- TEST_ff_f (scalb, minus_infty, 100, minus_infty);
-
- TEST_ff_f (scalb, 0.1L, minus_infty, 0.0);
- TEST_ff_f (scalb, -0.1L, minus_infty, minus_zero);
-
- TEST_ff_f (scalb, 1, plus_infty, plus_infty);
- TEST_ff_f (scalb, -1, plus_infty, minus_infty);
- TEST_ff_f (scalb, plus_infty, plus_infty, plus_infty);
- TEST_ff_f (scalb, minus_infty, plus_infty, minus_infty);
-
- TEST_ff_f (scalb, plus_infty, minus_infty, nan_value, INVALID_EXCEPTION);
- TEST_ff_f (scalb, minus_infty, minus_infty, nan_value, INVALID_EXCEPTION);
-
- TEST_ff_f (scalb, nan_value, 1, nan_value);
- TEST_ff_f (scalb, 1, nan_value, nan_value);
- TEST_ff_f (scalb, nan_value, 0, nan_value);
- TEST_ff_f (scalb, 0, nan_value, nan_value);
- TEST_ff_f (scalb, nan_value, plus_infty, nan_value);
- TEST_ff_f (scalb, plus_infty, nan_value, nan_value);
- TEST_ff_f (scalb, nan_value, nan_value, nan_value);
-
- TEST_ff_f (scalb, 0.8L, 4, 12.8L);
- TEST_ff_f (scalb, -0.854375L, 5, -27.34L);
-#endif /* TEST_LDOUBLE */
- END (scalb);
-}
-#endif
-
-static void
-scalbn_test (void)
-{
-
- START (scalbn);
-
- TEST_fi_f (scalbn, 0, 0, 0);
- TEST_fi_f (scalbn, minus_zero, 0, minus_zero);
-
- TEST_fi_f (scalbn, plus_infty, 1, plus_infty);
- TEST_fi_f (scalbn, minus_infty, 1, minus_infty);
- TEST_fi_f (scalbn, nan_value, 1, nan_value);
-
- TEST_fi_f (scalbn, 0.8L, 4, 12.8L);
- TEST_fi_f (scalbn, -0.854375L, 5, -27.34L);
-
- TEST_fi_f (scalbn, 1, 0L, 1);
-
- END (scalbn);
-}
-
-
-static void
-scalbln_test (void)
-{
-
- START (scalbln);
-
- TEST_fl_f (scalbln, 0, 0, 0);
- TEST_fl_f (scalbln, minus_zero, 0, minus_zero);
-
- TEST_fl_f (scalbln, plus_infty, 1, plus_infty);
- TEST_fl_f (scalbln, minus_infty, 1, minus_infty);
- TEST_fl_f (scalbln, nan_value, 1, nan_value);
-
- TEST_fl_f (scalbln, 0.8L, 4, 12.8L);
- TEST_fl_f (scalbln, -0.854375L, 5, -27.34L);
-
- TEST_fl_f (scalbln, 1, 0L, 1);
-
- END (scalbn);
-}
-
-
-static void
-signbit_test (void)
-{
-
- START (signbit);
-
- TEST_f_b (signbit, 0, 0);
- TEST_f_b (signbit, minus_zero, 1);
- TEST_f_b (signbit, plus_infty, 0);
- TEST_f_b (signbit, minus_infty, 1);
-
- /* signbit (x) != 0 for x < 0. */
- TEST_f_b (signbit, -1, 1);
- /* signbit (x) == 0 for x >= 0. */
- TEST_f_b (signbit, 1, 0);
-
- END (signbit);
-}
-
-
-static void
-sin_test (void)
-{
- errno = 0;
- FUNC(sin) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (sin);
-
- TEST_f_f (sin, 0, 0);
- TEST_f_f (sin, minus_zero, minus_zero);
- TEST_f_f (sin, plus_infty, nan_value, INVALID_EXCEPTION);
- TEST_f_f (sin, minus_infty, nan_value, INVALID_EXCEPTION);
- TEST_f_f (sin, nan_value, nan_value);
-
- TEST_f_f (sin, M_PI_6l, 0.5);
- TEST_f_f (sin, -M_PI_6l, -0.5);
- TEST_f_f (sin, M_PI_2l, 1);
- TEST_f_f (sin, -M_PI_2l, -1);
- TEST_f_f (sin, 0.75L, 0.681638760023334166733241952779893935L);
-
-#ifdef TEST_DOUBLE
- TEST_f_f (sin, 0.80190127184058835, 0.71867942238767868);
-#endif
-
- END (sin);
-
-}
-
-
-#if 0
-static void
-sincos_test (void)
-{
- FLOAT sin_res, cos_res;
-
- errno = 0;
- FUNC(sincos) (0, &sin_res, &cos_res);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (sincos);
-
- /* sincos is treated differently because it returns void. */
- TEST_extra (sincos, 0, 0, 1);
-
- TEST_extra (sincos, minus_zero, minus_zero, 1);
- TEST_extra (sincos, plus_infty, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_extra (sincos, minus_infty, nan_value, nan_value, INVALID_EXCEPTION);
- TEST_extra (sincos, nan_value, nan_value, nan_value);
-
- TEST_extra (sincos, M_PI_2l, 1, 0);
- TEST_extra (sincos, M_PI_6l, 0.5, 0.86602540378443864676372317075293616L);
- TEST_extra (sincos, M_PI_6l*2.0, 0.86602540378443864676372317075293616L, 0.5);
- TEST_extra (sincos, 0.75L, 0.681638760023334166733241952779893935L,
0.731688868873820886311838753000084544L);
-
-#ifdef TEST_DOUBLE
- TEST_extra (sincos, 0.80190127184058835, 0.71867942238767868, 0.69534156199418473);
-#endif
-
- END (sincos);
-}
-#endif
-
-static void
-sinh_test (void)
-{
- errno = 0;
- FUNC(sinh) (0.7L);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (sinh);
- TEST_f_f (sinh, 0, 0);
- TEST_f_f (sinh, minus_zero, minus_zero);
-
-#ifndef TEST_INLINE
- TEST_f_f (sinh, plus_infty, plus_infty);
- TEST_f_f (sinh, minus_infty, minus_infty);
-#endif
- TEST_f_f (sinh, nan_value, nan_value);
-
- TEST_f_f (sinh, 0.75L, 0.822316731935829980703661634446913849L);
- TEST_f_f (sinh, 0x8p-32L, 1.86264514923095703232705808926175479e-9L);
-
- END (sinh);
-}
-
-static void
-sqrt_test (void)
-{
- errno = 0;
- FUNC(sqrt) (1);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (sqrt);
-
- TEST_f_f (sqrt, 0, 0);
- TEST_f_f (sqrt, nan_value, nan_value);
- TEST_f_f (sqrt, plus_infty, plus_infty);
-
- TEST_f_f (sqrt, minus_zero, minus_zero);
-
- /* sqrt (x) == NaN plus invalid exception for x < 0. */
- TEST_f_f (sqrt, -1, nan_value, INVALID_EXCEPTION);
- TEST_f_f (sqrt, minus_infty, nan_value, INVALID_EXCEPTION);
- TEST_f_f (sqrt, nan_value, nan_value);
-
- TEST_f_f (sqrt, 2209, 47);
- TEST_f_f (sqrt, 4, 2);
- TEST_f_f (sqrt, 2, M_SQRT2l);
- TEST_f_f (sqrt, 0.25, 0.5);
- TEST_f_f (sqrt, 6642.25, 81.5);
- TEST_f_f (sqrt, 15190.5625L, 123.25L);
- TEST_f_f (sqrt, 0.75L, 0.866025403784438646763723170752936183L);
-
- END (sqrt);
-}
-
-
-static void
-tan_test (void)
-{
- errno = 0;
- FUNC(tan) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (tan);
-
- TEST_f_f (tan, 0, 0);
- TEST_f_f (tan, minus_zero, minus_zero);
- TEST_f_f (tan, plus_infty, nan_value, INVALID_EXCEPTION);
- TEST_f_f (tan, minus_infty, nan_value, INVALID_EXCEPTION);
- TEST_f_f (tan, nan_value, nan_value);
-
- TEST_f_f (tan, M_PI_4l, 1);
- TEST_f_f (tan, 0.75L, 0.931596459944072461165202756573936428L);
-
- END (tan);
-}
-
-static void
-tanh_test (void)
-{
- errno = 0;
- FUNC(tanh) (0.7L);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (tanh);
-
- TEST_f_f (tanh, 0, 0);
- /* vda: uclibc: added IGNORE_ZERO_INF_SIGN to treat -0 as ok */
- TEST_f_f (tanh, minus_zero, minus_zero, IGNORE_ZERO_INF_SIGN);
-
-#ifndef TEST_INLINE
- TEST_f_f (tanh, plus_infty, 1);
- TEST_f_f (tanh, minus_infty, -1);
-#endif
- TEST_f_f (tanh, nan_value, nan_value);
-
- TEST_f_f (tanh, 0.75L, 0.635148952387287319214434357312496495L);
- TEST_f_f (tanh, -0.75L, -0.635148952387287319214434357312496495L);
-
- TEST_f_f (tanh, 1.0L, 0.7615941559557648881194582826047935904L);
- TEST_f_f (tanh, -1.0L, -0.7615941559557648881194582826047935904L);
-
- /* 2^-57 */
- TEST_f_f (tanh, 0x1p-57L, 6.938893903907228377647697925567626953125e-18L);
-
- END (tanh);
-}
-
-static void
-tgamma_test (void)
-{
- errno = 0;
- FUNC(tgamma) (1);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
- feclearexcept (FE_ALL_EXCEPT);
-
- START (tgamma);
-
- TEST_f_f (tgamma, plus_infty, plus_infty);
- TEST_f_f (tgamma, 0, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_f_f (tgamma, minus_zero, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- /* tgamma (x) == NaN plus invalid exception for integer x <= 0. */
- TEST_f_f (tgamma, -2, nan_value, INVALID_EXCEPTION);
- TEST_f_f (tgamma, minus_infty, nan_value, INVALID_EXCEPTION);
- TEST_f_f (tgamma, nan_value, nan_value);
-
- TEST_f_f (tgamma, 0.5, M_SQRT_PIl);
- TEST_f_f (tgamma, -0.5, -M_2_SQRT_PIl);
-
- TEST_f_f (tgamma, 1, 1);
- TEST_f_f (tgamma, 4, 6);
-
- TEST_f_f (tgamma, 0.7L, 1.29805533264755778568117117915281162L);
- TEST_f_f (tgamma, 1.2L, 0.918168742399760610640951655185830401L);
-
- END (tgamma);
-}
-
-
-#if 0
-static void
-trunc_test (void)
-{
- START (trunc);
-
- TEST_f_f (trunc, plus_infty, plus_infty);
- TEST_f_f (trunc, minus_infty, minus_infty);
- TEST_f_f (trunc, nan_value, nan_value);
-
- TEST_f_f (trunc, 0, 0);
- TEST_f_f (trunc, minus_zero, minus_zero);
- TEST_f_f (trunc, 0.625, 0);
- TEST_f_f (trunc, -0.625, minus_zero);
- TEST_f_f (trunc, 1, 1);
- TEST_f_f (trunc, -1, -1);
- TEST_f_f (trunc, 1.625, 1);
- TEST_f_f (trunc, -1.625, -1);
-
- TEST_f_f (trunc, 1048580.625L, 1048580L);
- TEST_f_f (trunc, -1048580.625L, -1048580L);
-
- TEST_f_f (trunc, 8388610.125L, 8388610.0L);
- TEST_f_f (trunc, -8388610.125L, -8388610.0L);
-
- TEST_f_f (trunc, 4294967296.625L, 4294967296.0L);
- TEST_f_f (trunc, -4294967296.625L, -4294967296.0L);
-
-#ifdef TEST_LDOUBLE
- /* The result can only be represented in long double. */
- TEST_f_f (trunc, 4503599627370495.5L, 4503599627370495.0L);
- TEST_f_f (trunc, 4503599627370496.25L, 4503599627370496.0L);
- TEST_f_f (trunc, 4503599627370496.5L, 4503599627370496.0L);
- TEST_f_f (trunc, 4503599627370496.75L, 4503599627370496.0L);
- TEST_f_f (trunc, 4503599627370497.5L, 4503599627370497.0L);
-
- TEST_f_f (trunc, -4503599627370495.5L, -4503599627370495.0L);
- TEST_f_f (trunc, -4503599627370496.25L, -4503599627370496.0L);
- TEST_f_f (trunc, -4503599627370496.5L, -4503599627370496.0L);
- TEST_f_f (trunc, -4503599627370496.75L, -4503599627370496.0L);
- TEST_f_f (trunc, -4503599627370497.5L, -4503599627370497.0L);
-
- TEST_f_f (trunc, 9007199254740991.5L, 9007199254740991.0L);
- TEST_f_f (trunc, 9007199254740992.25L, 9007199254740992.0L);
- TEST_f_f (trunc, 9007199254740992.5L, 9007199254740992.0L);
- TEST_f_f (trunc, 9007199254740992.75L, 9007199254740992.0L);
- TEST_f_f (trunc, 9007199254740993.5L, 9007199254740993.0L);
-
- TEST_f_f (trunc, -9007199254740991.5L, -9007199254740991.0L);
- TEST_f_f (trunc, -9007199254740992.25L, -9007199254740992.0L);
- TEST_f_f (trunc, -9007199254740992.5L, -9007199254740992.0L);
- TEST_f_f (trunc, -9007199254740992.75L, -9007199254740992.0L);
- TEST_f_f (trunc, -9007199254740993.5L, -9007199254740993.0L);
-
- TEST_f_f (trunc, 72057594037927935.5L, 72057594037927935.0L);
- TEST_f_f (trunc, 72057594037927936.25L, 72057594037927936.0L);
- TEST_f_f (trunc, 72057594037927936.5L, 72057594037927936.0L);
- TEST_f_f (trunc, 72057594037927936.75L, 72057594037927936.0L);
- TEST_f_f (trunc, 72057594037927937.5L, 72057594037927937.0L);
-
- TEST_f_f (trunc, -72057594037927935.5L, -72057594037927935.0L);
- TEST_f_f (trunc, -72057594037927936.25L, -72057594037927936.0L);
- TEST_f_f (trunc, -72057594037927936.5L, -72057594037927936.0L);
- TEST_f_f (trunc, -72057594037927936.75L, -72057594037927936.0L);
- TEST_f_f (trunc, -72057594037927937.5L, -72057594037927937.0L);
-
- TEST_f_f (trunc, 10141204801825835211973625643007.5L,
10141204801825835211973625643007.0L);
- TEST_f_f (trunc, 10141204801825835211973625643008.25L,
10141204801825835211973625643008.0L);
- TEST_f_f (trunc, 10141204801825835211973625643008.5L,
10141204801825835211973625643008.0L);
- TEST_f_f (trunc, 10141204801825835211973625643008.75L,
10141204801825835211973625643008.0L);
- TEST_f_f (trunc, 10141204801825835211973625643009.5L,
10141204801825835211973625643009.0L);
-#endif
-
- END (trunc);
-}
-#endif
-
-#if defined __DO_XSI_MATH__ && !(defined TEST_LDOUBLE || defined TEST_FLOAT)
-static void
-y0_test (void)
-{
- errno = 0;
-#if 0
- FLOAT s, c;
- FUNC (sincos) (0, &s, &c);
- if (errno == ENOSYS)
- /* Required function not implemented. */
- return;
-#endif
- FUNC(y0) (1);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- /* y0 is the Bessel function of the second kind of order 0 */
- START (y0);
-
- TEST_f_f (y0, -1.0, minus_infty, INVALID_EXCEPTION);
- TEST_f_f (y0, 0.0, minus_infty);
- TEST_f_f (y0, nan_value, nan_value);
- TEST_f_f (y0, plus_infty, 0);
-
- TEST_f_f (y0, 0.125L, -1.38968062514384052915582277745018693L);
- TEST_f_f (y0, 0.75L, -0.137172769385772397522814379396581855L);
- TEST_f_f (y0, 1.0, 0.0882569642156769579829267660235151628L);
- TEST_f_f (y0, 1.5, 0.382448923797758843955068554978089862L);
- TEST_f_f (y0, 2.0, 0.510375672649745119596606592727157873L);
- TEST_f_f (y0, 8.0, 0.223521489387566220527323400498620359L);
- TEST_f_f (y0, 10.0, 0.0556711672835993914244598774101900481L);
-
- END (y0);
-}
-
-
-static void
-y1_test (void)
-{
- errno = 0;
-#if 0
- FLOAT s, c;
- FUNC (sincos) (0, &s, &c);
- if (errno == ENOSYS)
- /* Required function not implemented. */
- return;
-#endif
- FUNC(y1) (1);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- /* y1 is the Bessel function of the second kind of order 1 */
- START (y1);
-
- TEST_f_f (y1, -1.0, minus_infty, INVALID_EXCEPTION);
- TEST_f_f (y1, 0.0, minus_infty);
- TEST_f_f (y1, plus_infty, 0);
- TEST_f_f (y1, nan_value, nan_value);
-
- TEST_f_f (y1, 0.125L, -5.19993611253477499595928744876579921L);
- TEST_f_f (y1, 0.75L, -1.03759455076928541973767132140642198L);
- TEST_f_f (y1, 1.0, -0.781212821300288716547150000047964821L);
- TEST_f_f (y1, 1.5, -0.412308626973911295952829820633445323L);
- TEST_f_f (y1, 2.0, -0.107032431540937546888370772277476637L);
- TEST_f_f (y1, 8.0, -0.158060461731247494255555266187483550L);
- TEST_f_f (y1, 10.0, 0.249015424206953883923283474663222803L);
-
- END (y1);
-}
-
-
-static void
-yn_test (void)
-{
- errno = 0;
-#if 0
- FLOAT s, c;
- FUNC (sincos) (0, &s, &c);
- if (errno == ENOSYS)
- /* Required function not implemented. */
- return;
-#endif
- FUNC(yn) (1, 1);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- /* yn is the Bessel function of the second kind of order n */
- START (yn);
-
- /* yn (0, x) == y0 (x) */
- TEST_ff_f (yn, 0, -1.0, minus_infty, INVALID_EXCEPTION);
- TEST_ff_f (yn, 0, 0.0, minus_infty);
- TEST_ff_f (yn, 0, nan_value, nan_value);
- TEST_ff_f (yn, 0, plus_infty, 0);
-
- TEST_ff_f (yn, 0, 0.125L, -1.38968062514384052915582277745018693L);
- TEST_ff_f (yn, 0, 0.75L, -0.137172769385772397522814379396581855L);
- TEST_ff_f (yn, 0, 1.0, 0.0882569642156769579829267660235151628L);
- TEST_ff_f (yn, 0, 1.5, 0.382448923797758843955068554978089862L);
- TEST_ff_f (yn, 0, 2.0, 0.510375672649745119596606592727157873L);
- TEST_ff_f (yn, 0, 8.0, 0.223521489387566220527323400498620359L);
- TEST_ff_f (yn, 0, 10.0, 0.0556711672835993914244598774101900481L);
-
- /* yn (1, x) == y1 (x) */
- TEST_ff_f (yn, 1, -1.0, minus_infty, INVALID_EXCEPTION);
- TEST_ff_f (yn, 1, 0.0, minus_infty);
- TEST_ff_f (yn, 1, plus_infty, 0);
- TEST_ff_f (yn, 1, nan_value, nan_value);
-
- TEST_ff_f (yn, 1, 0.125L, -5.19993611253477499595928744876579921L);
- TEST_ff_f (yn, 1, 0.75L, -1.03759455076928541973767132140642198L);
- TEST_ff_f (yn, 1, 1.0, -0.781212821300288716547150000047964821L);
- TEST_ff_f (yn, 1, 1.5, -0.412308626973911295952829820633445323L);
- TEST_ff_f (yn, 1, 2.0, -0.107032431540937546888370772277476637L);
- TEST_ff_f (yn, 1, 8.0, -0.158060461731247494255555266187483550L);
- TEST_ff_f (yn, 1, 10.0, 0.249015424206953883923283474663222803L);
-
- /* yn (3, x) */
- TEST_ff_f (yn, 3, plus_infty, 0);
- TEST_ff_f (yn, 3, nan_value, nan_value);
-
- TEST_ff_f (yn, 3, 0.125L, -2612.69757350066712600220955744091741L);
- TEST_ff_f (yn, 3, 0.75L, -12.9877176234475433186319774484809207L);
- TEST_ff_f (yn, 3, 1.0, -5.82151760596472884776175706442981440L);
- TEST_ff_f (yn, 3, 2.0, -1.12778377684042778608158395773179238L);
- TEST_ff_f (yn, 3, 10.0, -0.251362657183837329779204747654240998L);
-
- /* yn (10, x) */
- TEST_ff_f (yn, 10, plus_infty, 0);
- TEST_ff_f (yn, 10, nan_value, nan_value);
-
- TEST_ff_f (yn, 10, 0.125L, -127057845771019398.252538486899753195L);
- TEST_ff_f (yn, 10, 0.75L, -2133501638.90573424452445412893839236L);
- TEST_ff_f (yn, 10, 1.0, -121618014.278689189288130426667971145L);
- TEST_ff_f (yn, 10, 2.0, -129184.542208039282635913145923304214L);
- TEST_ff_f (yn, 10, 10.0, -0.359814152183402722051986577343560609L);
-
- END (yn);
-
-}
-#endif /* __DO_XSI_MATH__ */
-
-
-static void
-significand_test (void)
-{
- /* significand returns the mantissa of the exponential representation. */
- START (significand);
-
- TEST_f_f (significand, 4.0, 1.0);
- TEST_f_f (significand, 6.0, 1.5);
- TEST_f_f (significand, 8.0, 1.0);
-
- END (significand);
-}
-
-
-static void
-initialize (void)
-{
- fpstack_test ("start *init*");
- plus_zero = 0.0;
- nan_value = plus_zero / plus_zero; /* Suppress GCC warning */
-
- minus_zero = FUNC(copysign) (0.0, -1.0);
- plus_infty = CHOOSE (HUGE_VALL, HUGE_VAL, HUGE_VALF,
- HUGE_VALL, HUGE_VAL, HUGE_VALF);
- minus_infty = CHOOSE (-HUGE_VALL, -HUGE_VAL, -HUGE_VALF,
- -HUGE_VALL, -HUGE_VAL, -HUGE_VALF);
- max_value = CHOOSE (LDBL_MAX, DBL_MAX, FLT_MAX,
- LDBL_MAX, DBL_MAX, FLT_MAX);
- min_value = CHOOSE (LDBL_MIN, DBL_MIN, FLT_MIN,
- LDBL_MIN, DBL_MIN, FLT_MIN);
-
- (void) &plus_zero;
- (void) &nan_value;
- (void) &minus_zero;
- (void) &plus_infty;
- (void) &minus_infty;
- (void) &max_value;
- (void) &min_value;
-
- /* Clear all exceptions. From now on we must not get random exceptions. */
- feclearexcept (FE_ALL_EXCEPT);
-
- /* Test to make sure we start correctly. */
- fpstack_test ("end *init*");
-}
-
-#if 0
-/* function to check our ulp calculation. */
-void
-check_ulp (void)
-{
- int i;
-
- FLOAT u, diff, ulp;
- /* This gives one ulp. */
- u = FUNC(nextafter) (10, 20);
- check_equal (10.0, u, 1, &diff, &ulp);
- printf ("One ulp: % .4" PRINTF_NEXPR "\n", ulp);
-
- /* This gives one more ulp. */
- u = FUNC(nextafter) (u, 20);
- check_equal (10.0, u, 2, &diff, &ulp);
- printf ("two ulp: % .4" PRINTF_NEXPR "\n", ulp);
-
- /* And now calculate 100 ulp. */
- for (i = 2; i < 100; i++)
- u = FUNC(nextafter) (u, 20);
- check_equal (10.0, u, 100, &diff, &ulp);
- printf ("100 ulp: % .4" PRINTF_NEXPR "\n", ulp);
-}
-#endif
-
-int
-main (int argc, char **argv)
-{
-
- int key;
-
- verbose = 1;
- output_ulps = 0;
- output_max_error = 1;
- output_points = 1;
- /* XXX set to 0 for releases. */
- ignore_max_ulp = 0;
-
- /* Parse and process arguments. */
- while ((key = getopt(argc, argv, "fi:puv")) > 0) {
- switch (key)
- {
- case 'f':
- output_max_error = 0;
- break;
- case 'i':
- if (strcmp (optarg, "yes") == 0)
- ignore_max_ulp = 1;
- else if (strcmp (optarg, "no") == 0)
- ignore_max_ulp = 0;
- break;
- case 'p':
- output_points = 0;
- break;
- case 'u':
- output_ulps = 1;
- break;
- case 'v':
- verbose = 3;
- break;
- default:
- fprintf (stderr, "Unknown argument: %c", key);
- exit (EXIT_FAILURE);
- }
- }
-
- if (optind != argc)
- {
- fprintf (stderr, "wrong number of arguments");
- exit (EXIT_FAILURE);
- }
-
- if (output_ulps)
- {
- ulps_file = fopen ("ULPs", "a");
- if (ulps_file == NULL)
- {
- perror ("can't open file `ULPs' for writing: ");
- exit (1);
- }
- }
-
-
- initialize ();
- printf (TEST_MSG);
-
-#if 0
- check_ulp ();
-#endif
-
- /* Keep the tests a wee bit ordered (according to ISO C99). */
- /* Classification macros: */
- fpclassify_test ();
- isfinite_test ();
- isnormal_test ();
- signbit_test ();
-
- /* Trigonometric functions: */
- acos_test ();
- asin_test ();
- atan_test ();
- atan2_test ();
- cos_test ();
- sin_test ();
-#if 0
- sincos_test ();
-#endif
- tan_test ();
-
- /* Hyperbolic functions: */
- acosh_test ();
- asinh_test ();
- atanh_test ();
- cosh_test ();
- sinh_test ();
- tanh_test ();
-
- /* Exponential and logarithmic functions: */
- exp_test ();
-#if 0
- exp10_test ();
- exp2_test ();
-#endif
- expm1_test ();
- frexp_test ();
- ldexp_test ();
- log_test ();
- log10_test ();
- log1p_test ();
- log2_test ();
- logb_test ();
- modf_test ();
- ilogb_test ();
-#ifdef __UCLIBC_SUSV3_LEGACY__
- scalb_test ();
-#endif
- scalbn_test ();
- scalbln_test ();
- significand_test ();
-
- /* Power and absolute value functions: */
- cbrt_test ();
- fabs_test ();
- hypot_test ();
- pow_test ();
- sqrt_test ();
-
- /* Error and gamma functions: */
- erf_test ();
- erfc_test ();
- gamma_test ();
- lgamma_test ();
- tgamma_test ();
-
- /* Nearest integer functions: */
- ceil_test ();
- floor_test ();
- nearbyint_test ();
- rint_test ();
-#if 0
- rint_test_tonearest ();
- rint_test_towardzero ();
- rint_test_downward ();
- rint_test_upward ();
- lrint_test ();
- llrint_test ();
- round_test ();
- lround_test ();
- llround_test ();
- trunc_test ();
-#endif
-
- /* Remainder functions: */
- fmod_test ();
- remainder_test ();
- remquo_test ();
-
- /* Manipulation functions: */
- copysign_test ();
- nextafter_test ();
- nexttoward_test ();
-
- /* maximum, minimum and positive difference functions */
- fdim_test ();
- fmax_test ();
- fmin_test ();
-
- /* Multiply and add: */
- fma_test ();
-
-
- /* Complex functions: */
- cabs_test ();
-#if __CHK_COMPLEX_STUFF
-#if 0
- cacos_test ();
- cacosh_test ();
-#endif
- carg_test ();
-#if 0
- casin_test ();
- casinh_test ();
- catan_test ();
- catanh_test ();
- ccos_test ();
- ccosh_test ();
-#endif
- cexp_test ();
-#if 0
- cimag_test ();
- clog10_test ();
- clog_test ();
- conj_test ();
- cpow_test ();
- cproj_test ();
- creal_test ();
- csin_test ();
- csinh_test ();
- csqrt_test ();
- ctan_test ();
- ctanh_test ();
-#endif
-#endif /* __CHK_COMPLEX_STUFF */
-
- /* Bessel functions: */
-#if defined __DO_XSI_MATH__ && !(defined TEST_LDOUBLE || defined TEST_FLOAT)
- j0_test ();
- j1_test ();
- jn_test ();
- y0_test ();
- y1_test ();
- yn_test ();
-#endif /* __DO_XSI_MATH__ */
-
- if (output_ulps)
- fclose (ulps_file);
-
- printf ("\nTest suite completed:\n");
- printf (" %d test cases plus %d tests for exception flags executed.\n",
- noTests, noExcTests);
- if (noXFails)
- printf (" %d expected failures occurred.\n", noXFails);
- if (noXPasses)
- printf (" %d unexpected passes occurred.\n", noXPasses);
- if (noErrors)
- {
- printf (" %d errors occurred.\n", noErrors);
- return 1;
- }
- printf (" All tests passed successfully.\n");
-
- return 0;
-}
-
-/*
- * Local Variables:
- * mode:c
- * End:
- */
diff --git a/test/math/rint.c b/test/math/rint.c
deleted file mode 100644
index b595459..0000000
--- a/test/math/rint.c
+++ /dev/null
@@ -1,33 +0,0 @@
-#include <math.h>
-#include <float.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <stdio.h>
-
-#define check_d1(func, param, expected) \
-do { \
- int err; hex_union ur; hex_union up; \
- double result = func(param); up.f = param; ur.f = result; \
- errors += (err = (result != (expected))); \
- err \
- ? printf("FAIL: %s(%g/"HEXFMT")=%g/"HEXFMT" (expected
%g)\n", \
- #func, (double)(param), (long long)up.hex, result, (long long)ur.hex,
(double)(expected)) \
- : printf("PASS: %s(%g)=%g\n", #func, (double)(param), result); \
-} while (0)
-
-#define HEXFMT "%08llx"
-typedef union {
- double f;
- uint64_t hex;
-} hex_union;
-double result;
-
-int errors = 0;
-
-int main(void)
-{
- check_d1(rint, 0.6, 1.0);
-
- printf("Errors: %d\n", errors);
- return errors;
-}
diff --git a/test/math/signgam.c b/test/math/signgam.c
deleted file mode 100644
index 2f1adba..0000000
--- a/test/math/signgam.c
+++ /dev/null
@@ -1,28 +0,0 @@
-#define _XOPEN_SOURCE 600
-#include <math.h>
-#include <float.h>
-#include <stdio.h>
-
-double zero = 0.0;
-double mzero;
-
-int main(void)
-{
- double d;
- int errors = 0;
-
- mzero = copysign(zero, -1.0);
-
- d = lgamma(zero);
- printf("%g %d\n", d, signgam);
- errors += !(d == HUGE_VAL);
- errors += !(signgam == 1);
-
- d = lgamma(mzero);
- printf("%g %d\n", d, signgam);
- errors += !(d == HUGE_VAL);
- errors += !(signgam == -1);
-
- printf("Errors: %d\n", errors);
- return errors;
-}
diff --git a/test/math/test-double.c b/test/math/test-double.c
deleted file mode 100644
index 3c9733e..0000000
--- a/test/math/test-double.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 1997, 1999 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Andreas Jaeger <aj(a)suse.de>de>, 1997.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#define FUNC(function) function
-#define FLOAT double
-#define TEST_MSG "testing double (without inline functions)\n"
-#define MATHCONST(x) x
-#define CHOOSE(Clongdouble,Cdouble,Cfloat,Cinlinelongdouble,Cinlinedouble,Cinlinefloat)
Cdouble
-#define PRINTF_EXPR "e"
-#define PRINTF_XEXPR "a"
-#define PRINTF_NEXPR "f"
-#define TEST_DOUBLE 1
-
-#ifndef __NO_MATH_INLINES
-# define __NO_MATH_INLINES
-#endif
-
-#include "libm-test.c"
diff --git a/test/math/test-float.c b/test/math/test-float.c
deleted file mode 100644
index 6764fff..0000000
--- a/test/math/test-float.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 1997, 1999 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Andreas Jaeger <aj(a)suse.de>de>, 1997.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#define FUNC(function) function ## f
-#define FLOAT float
-#define TEST_MSG "testing float (without inline functions)\n"
-#define MATHCONST(x) x
-#define CHOOSE(Clongdouble,Cdouble,Cfloat,Cinlinelongdouble,Cinlinedouble,Cinlinefloat)
Cfloat
-#define PRINTF_EXPR "e"
-#define PRINTF_XEXPR "a"
-#define PRINTF_NEXPR "f"
-#define TEST_FLOAT 1
-
-#ifndef __NO_MATH_INLINES
-# define __NO_MATH_INLINES
-#endif
-
-#include "libm-test.c"
diff --git a/test/math/test-fpucw.c b/test/math/test-fpucw.c
deleted file mode 100644
index 93237ea..0000000
--- a/test/math/test-fpucw.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Andreas Jaeger <aj(a)suse.de>de>, 2000.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fpu_control.h>
-#include <stdio.h>
-
-int
-main (void)
-{
-#ifdef _FPU_GETCW
-/* Some architectures don't have _FPU_GETCW (e.g. Linux/Alpha). */
- fpu_control_t cw;
-
- _FPU_GETCW (cw);
-
- cw &= ~_FPU_RESERVED;
-
- if (cw != (_FPU_DEFAULT & ~_FPU_RESERVED))
- printf ("control word is 0x%lx but should be 0x%lx.\n",
- (long int) cw, (long int) (_FPU_DEFAULT & ~_FPU_RESERVED));
-
- return cw != (_FPU_DEFAULT & ~_FPU_RESERVED);
-
-#else
- return 0;
-#endif
-}
diff --git a/test/math/test-idouble.c b/test/math/test-idouble.c
deleted file mode 100644
index e340e19..0000000
--- a/test/math/test-idouble.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 1997, 1999 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Andreas Jaeger <aj(a)suse.de>de>, 1997.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#define FUNC(function) function
-#define FLOAT double
-#define TEST_MSG "testing double (inline functions)\n"
-#define MATHCONST(x) x
-#define CHOOSE(Clongdouble,Cdouble,Cfloat,Cinlinelongdouble,Cinlinedouble,Cinlinefloat)
Cinlinedouble
-#define PRINTF_EXPR "e"
-#define PRINTF_XEXPR "a"
-#define PRINTF_NEXPR "f"
-#define TEST_DOUBLE 1
-#define TEST_INLINE
-
-#ifdef __NO_MATH_INLINES
-# undef __NO_MATH_INLINES
-#endif
-
-#include "libm-test.c"
diff --git a/test/math/test-ifloat.c b/test/math/test-ifloat.c
deleted file mode 100644
index b8291d1..0000000
--- a/test/math/test-ifloat.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 1997, 1999 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Andreas Jaeger <aj(a)suse.de>de>, 1997.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#define FUNC(function) function ## f
-#define FLOAT float
-#define TEST_MSG "testing float (inline functions)\n"
-#define MATHCONST(x) x
-#define CHOOSE(Clongdouble,Cdouble,Cfloat,Cinlinelongdouble,Cinlinedouble,Cinlinefloat)
Cinlinefloat
-#define PRINTF_EXPR "e"
-#define PRINTF_XEXPR "a"
-#define PRINTF_NEXPR "f"
-#define TEST_FLOAT 1
-#define TEST_INLINE 1
-
-#ifdef __NO_MATH_INLINES
-# undef __NO_MATH_INLINES
-#endif
-
-#include "libm-test.c"
diff --git a/test/math/test-ildoubl.c b/test/math/test-ildoubl.c
deleted file mode 100644
index 7873804..0000000
--- a/test/math/test-ildoubl.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 1997, 1999, 2001 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Andreas Jaeger <aj(a)suse.de>de>, 1997.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#define FUNC(function) function##l
-#define FLOAT long double
-#define TEST_MSG "testing long double (inline functions)\n"
-#define MATHCONST(x) x##L
-#define CHOOSE(Clongdouble,Cdouble,Cfloat,Cinlinelongdouble,Cinlinedouble,Cinlinefloat)
Cinlinelongdouble
-#define PRINTF_EXPR "Le"
-#define PRINTF_XEXPR "La"
-#define PRINTF_NEXPR "Lf"
-#define TEST_INLINE
-#define TEST_LDOUBLE 1
-
-#ifdef __NO_MATH_INLINES
-# undef __NO_MATH_INLINES
-#endif
-
-#include "libm-test.c"
diff --git a/test/math/test-ldouble.c b/test/math/test-ldouble.c
deleted file mode 100644
index a5ec7cb..0000000
--- a/test/math/test-ldouble.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 1997, 1999, 2001 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Andreas Jaeger <aj(a)suse.de>de>, 1997.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#define FUNC(function) function##l
-#define FLOAT long double
-#define TEST_MSG "testing long double (without inline functions)\n"
-#define MATHCONST(x) x##L
-#define CHOOSE(Clongdouble,Cdouble,Cfloat,Cinlinelongdouble,Cinlinedouble,Cinlinefloat)
Clongdouble
-#define PRINTF_EXPR "Le"
-#define PRINTF_XEXPR "La"
-#define PRINTF_NEXPR "Lf"
-#define TEST_LDOUBLE 1
-
-#ifndef __NO_MATH_INLINES
-# define __NO_MATH_INLINES
-#endif
-
-#include "libm-test.c"
diff --git a/test/math/tst-definitions.c b/test/math/tst-definitions.c
deleted file mode 100644
index 3f71611..0000000
--- a/test/math/tst-definitions.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2000.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <limits.h>
-#include <math.h>
-#include <stdio.h>
-
-
-int
-main (void)
-{
- int result = 0;
-
- if (FP_ILOGB0 != INT_MIN && FP_ILOGB0 != -INT_MAX)
- {
- puts ("FP_ILOGB0 has no valid value");
- result = 1;
- }
- else
- puts ("FP_ILOGB0 value is OK");
-
- if (FP_ILOGBNAN != INT_MIN && FP_ILOGBNAN != INT_MAX)
- {
- puts ("FP_ILOBNAN has no valid value");
- result = 1;
- }
- else
- puts ("FP_ILOGBNAN value is OK");
-
- return result;
-}
diff --git a/test/misc/Makefile b/test/misc/Makefile
deleted file mode 100644
index 09fa233..0000000
--- a/test/misc/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc misc tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/misc/Makefile.in b/test/misc/Makefile.in
deleted file mode 100644
index 7d7bb10..0000000
--- a/test/misc/Makefile.in
+++ /dev/null
@@ -1,42 +0,0 @@
-# uClibc misc tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-TESTS_DISABLED := outb tst-fnmatch bug-glob1 tst-gnuglob
-
-ifeq ($(TARGET_avr32),y)
-TESTS_DISABLED += tst-inotify
-endif
-
-ifeq ($(UCLIBC_HAS_LFS),)
-TESTS_DISABLED += dirent64
-TESTS_DISABLED += tst-statfs # assuming host has LFS on
-endif
-CFLAGS_dirent64 := -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
-
-ifeq ($(UCLIBC_LINUX_SPECIFIC),)
-TESTS_DISABLED += tst-inotify
-endif
-
-ifeq ($(UCLIBC_HAS_GLOB),)
-TESTS_DISABLED += bug-glob2
-endif
-
-ifeq ($(UCLIBC_HAS_UTMPX),)
-TESTS_DISABLED += tst-utmpx
-endif
-
-ifeq ($(UCLIBC_HAS_UTMP),)
-TESTS_DISABLED += tst-utmp
-endif
-
-DODIFF_dirent := 1
-DODIFF_dirent64 := 1
-DODIFF_tst-statfs := 1
-DODIFF_tst-statvfs := 1
-
-OPTS_bug-glob1 := $(PWD)
-OPTS_tst-fnmatch := < tst-fnmatch.input
-
-MNTENTS = / /sys /proc /dev
-OPTS_tst-statfs := $(MNTENTS)
-OPTS_tst-statvfs := $(MNTENTS)
diff --git a/test/misc/bug-glob1.c b/test/misc/bug-glob1.c
deleted file mode 100644
index 276983a..0000000
--- a/test/misc/bug-glob1.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/* Test case for globbing dangling symlink. By Ulrich Drepper. */
-#include <errno.h>
-#include <error.h>
-#include <glob.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-
-static void prepare (int argc, char *argv[]);
-#define PREPARE prepare
-static int do_test (void);
-#define TEST_FUNCTION do_test ()
-
-#include "../test-skeleton.c"
-
-
-static char *fname;
-
-static void
-prepare (int argc, char *argv[])
-{
- if (argc < 2)
- error (EXIT_FAILURE, 0, "missing argument");
-
- size_t len = strlen (argv[1]);
- static const char ext[] = "globXXXXXX";
- fname = malloc (len + sizeof (ext));
- if (fname == NULL)
- error (EXIT_FAILURE, errno, "cannot create temp file");
- again:
- strcpy (stpcpy (fname, argv[1]), ext);
-
-/* fname = mktemp (fname); */
- close(mkstemp(fname));
- unlink(fname);
-
- if (fname == NULL || *fname == '\0')
- error (EXIT_FAILURE, errno, "cannot create temp file name");
- if (symlink ("bug-glob1-does-not-exist", fname) != 0)
- {
- if (errno == EEXIST)
- goto again;
-
- error (EXIT_FAILURE, errno, "cannot create symlink");
- }
- add_temp_file (fname);
-}
-
-
-static int
-do_test (void)
-{
- glob_t gl;
- int retval = 0;
- int e;
-
- e = glob (fname, 0, NULL, &gl);
- if (e == 0)
- {
- printf ("glob(\"%s\") succeeded when it should not have\n",
fname);
- retval = 1;
- }
- globfree (&gl);
-
- size_t fnamelen = strlen (fname);
- char buf[fnamelen + 2];
-
- strcpy (buf, fname);
- buf[fnamelen - 1] = '?';
- e = glob (buf, 0, NULL, &gl);
- if (e == 0)
- {
- printf ("glob(\"%s\") succeeded when it should not have\n",
buf);
- retval = 1;
- }
- globfree (&gl);
-
- strcpy (buf, fname);
- buf[fnamelen] = '*';
- buf[fnamelen + 1] = '\0';
- e = glob (buf, 0, NULL, &gl);
- if (e == 0)
- {
- printf ("glob(\"%s\") succeeded when it should not have\n",
buf);
- retval = 1;
- }
- globfree (&gl);
-
- return retval;
-}
diff --git a/test/misc/bug-glob2.c b/test/misc/bug-glob2.c
deleted file mode 100644
index 069891b..0000000
--- a/test/misc/bug-glob2.c
+++ /dev/null
@@ -1,300 +0,0 @@
-/* Test glob memory management.
- for the filesystem access functions.
- Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <dirent.h>
-#include <glob.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/stat.h>
-
-// #define DEBUG
-#ifdef DEBUG
-# define PRINTF(fmt, args...) \
- do \
- { \
- int save_errno = errno; \
- printf (fmt, ##args); \
- errno = save_errno; \
- } while (0)
-#else
-# define PRINTF(fmt, args...)
-#endif
-
-
-#ifdef GLOB_ALTDIRFUNC
-static struct
-{
- const char *name;
- int level;
- int type;
- mode_t mode;
-} filesystem[] =
-{
- { ".", 1, DT_DIR, 0755 },
- { "..", 1, DT_DIR, 0755 },
- { "dir", 1, DT_DIR, 0755 },
- { ".", 2, DT_DIR, 0755 },
- { "..", 2, DT_DIR, 0755 },
- { "readable", 2, DT_DIR, 0755 },
- { ".", 3, DT_DIR, 0755 },
- { "..", 3, DT_DIR, 0755 },
- { "a", 3, DT_REG, 0644 },
- { "unreadable", 2, DT_DIR, 0111 },
- { ".", 3, DT_DIR, 0111 },
- { "..", 3, DT_DIR, 0755 },
- { "a", 3, DT_REG, 0644 },
- { "zz-readable", 2, DT_DIR, 0755 },
- { ".", 3, DT_DIR, 0755 },
- { "..", 3, DT_DIR, 0755 },
- { "a", 3, DT_REG, 0644 }
-};
-#define nfiles (sizeof (filesystem) / sizeof (filesystem[0]))
-
-
-typedef struct
-{
- int level;
- int idx;
- struct dirent d;
- char room_for_dirent[NAME_MAX];
-} my_DIR;
-
-
-static long int
-find_file (const char *s)
-{
- int level = 1;
- long int idx = 0;
-
- if (strcmp (s, ".") == 0)
- return 0;
-
- if (s[0] == '.' && s[1] == '/')
- s += 2;
-
- while (*s != '\0')
- {
- char *endp = strchrnul (s, '/');
-
- PRINTF ("looking for %.*s, level %d\n", (int) (endp - s), s, level);
-
- while (idx < nfiles && filesystem[idx].level >= level)
- {
- if (filesystem[idx].level == level
- && memcmp (s, filesystem[idx].name, endp - s) == 0
- && filesystem[idx].name[endp - s] == '\0')
- break;
- ++idx;
- }
-
- if (idx == nfiles || filesystem[idx].level < level)
- {
- errno = ENOENT;
- return -1;
- }
-
- if (*endp == '\0')
- return idx + 1;
-
- if (filesystem[idx].type != DT_DIR
- && (idx + 1 >= nfiles
- || filesystem[idx].level >= filesystem[idx + 1].level))
- {
- errno = ENOTDIR;
- return -1;
- }
-
- ++idx;
-
- s = endp + 1;
- ++level;
- }
-
- errno = ENOENT;
- return -1;
-}
-
-
-static void *
-my_opendir (const char *s)
-{
- long int idx = find_file (s);
- my_DIR *dir;
-
- if (idx == -1)
- {
- PRINTF ("my_opendir(\"%s\") == NULL (%m)\n", s);
- return NULL;
- }
-
- if ((filesystem[idx].mode & 0400) == 0)
- {
- errno = EACCES;
- PRINTF ("my_opendir(\"%s\") == NULL (%m)\n", s);
- return NULL;
- }
-
- dir = (my_DIR *) malloc (sizeof (my_DIR));
- if (dir == NULL)
- {
- printf ("cannot allocate directory handle: %m\n");
- exit (EXIT_FAILURE);
- }
-
- dir->level = filesystem[idx].level;
- dir->idx = idx;
-
- PRINTF ("my_opendir(\"%s\") == { level: %d, idx: %ld }\n",
- s, filesystem[idx].level, idx);
-
- return dir;
-}
-
-
-static struct dirent *
-my_readdir (void *gdir)
-{
- my_DIR *dir = gdir;
-
- if (dir->idx == -1)
- {
- PRINTF ("my_readdir ({ level: %d, idx: %ld }) = NULL\n",
- dir->level, (long int) dir->idx);
- return NULL;
- }
-
- while (dir->idx < nfiles && filesystem[dir->idx].level >
dir->level)
- ++dir->idx;
-
- if (dir->idx == nfiles || filesystem[dir->idx].level < dir->level)
- {
- dir->idx = -1;
- PRINTF ("my_readdir ({ level: %d, idx: %ld }) = NULL\n",
- dir->level, (long int) dir->idx);
- return NULL;
- }
-
- dir->d.d_ino = dir->idx;
-
-#ifdef _DIRENT_HAVE_D_TYPE
- dir->d.d_type = filesystem[dir->idx].type;
-#endif
-
- strcpy (dir->d.d_name, filesystem[dir->idx].name);
-
-#ifdef _DIRENT_HAVE_D_TYPE
- PRINTF ("my_readdir ({ level: %d, idx: %ld }) = { d_ino: %ld, d_type: %d, d_name:
\"%s\" }\n",
- dir->level, (long int) dir->idx, dir->d.d_ino, dir->d.d_type,
- dir->d.d_name);
-#else
- PRINTF ("my_readdir ({ level: %d, idx: %ld }) = { d_ino: %ld, d_name:
\"%s\" }\n",
- dir->level, (long int) dir->idx, dir->d.d_ino,
- dir->d.d_name);
-#endif
-
- ++dir->idx;
-
- return &dir->d;
-}
-
-
-static void
-my_closedir (void *dir)
-{
- PRINTF ("my_closedir ()\n");
- free (dir);
-}
-
-
-/* We use this function for lstat as well since we don't have any. */
-static int
-my_stat (const char *name, struct stat *st)
-{
- long int idx = find_file (name);
-
- if (idx == -1)
- {
- PRINTF ("my_stat (\"%s\", ...) = -1 (%m)\n", name);
- return -1;
- }
-
- memset (st, '\0', sizeof (*st));
-
- if (filesystem[idx].type == DT_UNKNOWN)
- st->st_mode = DTTOIF (idx + 1 < nfiles
- && filesystem[idx].level < filesystem[idx + 1].level
- ? DT_DIR : DT_REG) | filesystem[idx].mode;
- else
- st->st_mode = DTTOIF (filesystem[idx].type) | filesystem[idx].mode;
-
- PRINTF ("my_stat (\"%s\", { st_mode: %o }) = 0\n", name,
st->st_mode);
-
- return 0;
-}
-
-
-static void
-init_glob_altdirfuncs (glob_t *pglob)
-{
- pglob->gl_closedir = my_closedir;
- pglob->gl_readdir = my_readdir;
- pglob->gl_opendir = my_opendir;
- pglob->gl_lstat = my_stat;
- pglob->gl_stat = my_stat;
-}
-
-
-static int
-do_test (void)
-{
- glob_t gl;
- memset (&gl, 0, sizeof (gl));
- init_glob_altdirfuncs (&gl);
-
- if (glob ("dir/*able/*", GLOB_ERR | GLOB_ALTDIRFUNC, NULL, &gl)
- != GLOB_ABORTED)
- {
- puts ("glob did not fail with GLOB_ABORTED");
- exit (EXIT_FAILURE);
- }
-
- globfree (&gl);
-
- memset (&gl, 0, sizeof (gl));
- init_glob_altdirfuncs (&gl);
-
- gl.gl_offs = 3;
- if (glob ("dir2/*", GLOB_DOOFFS, NULL, &gl) != GLOB_NOMATCH)
- {
- puts ("glob did not fail with GLOB_NOMATCH");
- exit (EXIT_FAILURE);
- }
-
- globfree (&gl);
-
- return 0;
-}
-#else
-static int do_test (void) { return 0; }
-#endif
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/misc/bug-readdir1.c b/test/misc/bug-readdir1.c
deleted file mode 100644
index a8594a8..0000000
--- a/test/misc/bug-readdir1.c
+++ /dev/null
@@ -1,37 +0,0 @@
-#include <dirent.h>
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/types.h>
-
-
-int
-main (void)
-{
- DIR *dirp;
- struct dirent* ent;
-
- /* open a dir stream */
- dirp = opendir ("/tmp");
- if (dirp == NULL)
- {
- if (errno == ENOENT)
- exit (0);
-
- perror ("opendir");
- exit (1);
- }
-
- /* close the directory file descriptor, making it invalid */
- if (close (dirfd (dirp)) != 0)
- {
- puts ("could not close directory file descriptor");
- /* This is not an error. It is not guaranteed this is possible. */
- return 0;
- }
-
- ent = readdir (dirp);
-
- return ent != NULL || errno != EBADF;
-}
diff --git a/test/misc/dirent.c b/test/misc/dirent.c
deleted file mode 100644
index 491e3cf..0000000
--- a/test/misc/dirent.c
+++ /dev/null
@@ -1,39 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <dirent.h>
-
-#define _DTIFY(DT) [DT] #DT
-const char * const types[] = {
- _DTIFY(DT_UNKNOWN),
- _DTIFY(DT_FIFO),
- _DTIFY(DT_CHR),
- _DTIFY(DT_DIR),
- _DTIFY(DT_BLK),
- _DTIFY(DT_REG),
- _DTIFY(DT_LNK),
- _DTIFY(DT_SOCK),
- _DTIFY(DT_WHT)
-};
-
-int main(int argc, char *argv[])
-{
- DIR *dirh;
- struct dirent *de;
- const char *mydir = (argc == 1 ? "/" : argv[1]);
-
- if ((dirh = opendir(mydir)) == NULL) {
- perror("opendir");
- return 1;
- }
-
- printf("readdir() says:\n");
- while ((de = readdir(dirh)) != NULL)
- printf("\tdir entry %s: %s\n", types[de->d_type], de->d_name);
-
- closedir(dirh);
-
- return 0;
-}
diff --git a/test/misc/dirent64.c b/test/misc/dirent64.c
deleted file mode 100644
index 26455ab..0000000
--- a/test/misc/dirent64.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "dirent.c"
diff --git a/test/misc/fdopen.c b/test/misc/fdopen.c
deleted file mode 100644
index 97e66de..0000000
--- a/test/misc/fdopen.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Test for fdopen bugs. */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <fcntl.h>
-
-#define assert(x) \
- if (!(x)) \
- { \
- fputs ("test failed: " #x "\n", stderr); \
- retval = 1; \
- goto the_end; \
- }
-
-int
-main (int argc, char *argv[])
-{
- char name[256];
- FILE *fp = NULL;
- int retval = 0;
- int fd;
-
- /* hack to get a tempfile name w/out using tmpname()
- * as that func causes a link time warning */
- sprintf(name, "%s-uClibc-test.XXXXXX", __FILE__);
- fd = mkstemp(name);
- close(fd);
-
- fp = fopen (name, "w");
- assert (fp != NULL)
- assert (fputs ("foobar and baz", fp) > 0);
- assert (fclose (fp) == 0);
- fp = NULL;
-
- fd = open (name, O_RDWR|O_CREAT, 0660);
- assert (fd != -1);
- assert (lseek (fd, 5, SEEK_SET) == 5);
-
- fp = fdopen (fd, "a");
- assert (fp != NULL);
- /* SuSv3 says that doing a fdopen() does not reset the file position,
- * thus the '5' here is correct, not '14'. */
- assert (ftell (fp) == 5);
-
-the_end:
- if (fp != NULL)
- assert (fclose (fp) == 0);
- unlink (name);
-
- return retval;
-}
diff --git a/test/misc/opendir-tst1.c b/test/misc/opendir-tst1.c
deleted file mode 100644
index ffd785f..0000000
--- a/test/misc/opendir-tst1.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/* Copyright (C) 1998, 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)cygnus.com>om>, 1998.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <dirent.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/stat.h>
-
-/* Name of the FIFO. */
-char tmpname[] = "fifoXXXXXX";
-
-
-/* Do the real work. */
-static int
-real_test (void)
-{
- DIR *dirp;
-
- /* This should not block for an FIFO. */
- dirp = opendir (tmpname);
-
- /* Successful. */
- if (dirp != NULL)
- {
- /* Oh, oh, how can this work? */
- fputs ("`opendir' succeeded on a FIFO???\n", stdout);
- closedir (dirp);
- return 1;
- }
-
- if (errno != ENOTDIR)
- {
- fprintf (stdout, "`opendir' return error `%s' instead of
`%s'\n",
- strerror (errno), strerror (ENOTDIR));
- return 1;
- }
-
- return 0;
-}
-
-
-static int
-do_test (int argc, char *argv[])
-{
- int retval;
-
- retval = mkstemp(tmpname);
- close(retval);
- unlink(tmpname);
-
- /* Try to generate a FIFO. */
- if (mknod (tmpname, 0600 | S_IFIFO, 0) < 0)
- {
- perror ("mknod");
- /* We cannot make this an error. */
- return 0;
- }
-
- retval = real_test ();
-
- remove (tmpname);
-
- return retval;
-}
-
-
-static void
-do_cleanup (void)
-{
- remove (tmpname);
-}
-#define CLEANUP_HANDLER do_cleanup ()
-
-
-/* Include the test skeleton. */
-#include "../test-skeleton.c"
diff --git a/test/misc/outb.c b/test/misc/outb.c
deleted file mode 100644
index bbe18ea..0000000
--- a/test/misc/outb.c
+++ /dev/null
@@ -1,9 +0,0 @@
-#include <sys/io.h>
-
-int main(void)
-{
- ioperm(0x340,0x342,1);
- outb(0x340,0x0);
- exit(0);
-}
-
diff --git a/test/misc/popen.c b/test/misc/popen.c
deleted file mode 100644
index 868b70e..0000000
--- a/test/misc/popen.c
+++ /dev/null
@@ -1,47 +0,0 @@
-#include <unistd.h>
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <signal.h>
-
-#define TEST(r, f, x, m) ( \
-((r) = (f)) == (x) || \
-(printf(__FILE__ ":%d: %s failed (" m ")\n", __LINE__, #f, r, x),
err++, 0) )
-
-#define TEST_E(f) ( (errno = 0), (f) || \
-(printf(__FILE__ ":%d: %s failed (errno = %d)\n", __LINE__, #f, errno), err++,
0) )
-
-#define TEST_S(s, x, m) ( \
-!strcmp((s),(x)) || \
-(printf(__FILE__ ":%d: [%s] != [%s] (%s)\n", __LINE__, s, x, m), err++, 0) )
-
-static sig_atomic_t got_sig;
-
-static void handler(int sig)
-{
- got_sig = 1;
-}
-
-int main(void)
-{
- int i;
- char foo[6];
- char cmd[64];
- int err = 0;
- FILE *f;
-
- TEST_E(f = popen("echo hello", "r"));
- TEST_E(fgets(foo, sizeof foo, f));
- TEST_S(foo, "hello", "child process did not say hello");
- TEST(i, pclose(f), 0, "exit status %04x != %04x");
-
- signal(SIGUSR1, handler);
- snprintf(cmd, sizeof cmd, "read a ; test \"x$a\" = xhello && kill
-USR1 %d", getpid());
- TEST_E(f = popen(cmd, "w"));
- TEST_E(fputs("hello", f) >= 0);
- TEST(i, pclose(f), 0, "exit status %04x != %04x");
- signal(SIGUSR1, SIG_DFL);
- TEST(i, got_sig, 1, "child process did not send signal (%i!=%i)");
-
- return err;
-}
diff --git a/test/misc/seek.c b/test/misc/seek.c
deleted file mode 100644
index c5edb94..0000000
--- a/test/misc/seek.c
+++ /dev/null
@@ -1,82 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <assert.h>
-
-#define ARRAY_SIZE(arr) (sizeof(arr)/sizeof(*arr))
-
-int main(void)
-{
- struct {
- off_t offset;
- int whence;
- } tests[] = {
- { 0x00, SEEK_SET },
- { 0x01, SEEK_SET },
- { 0xFF, SEEK_SET }
- };
- char buf[2000];
- off_t ret;
- int i, fd;
- FILE *fp;
- int tmp;
-
- fd = open("lseek.out", O_RDWR|O_CREAT, 0600);
- if (fd == -1) {
- perror("open(lseek.out) failed");
- return 1;
- }
- unlink("lseek.out");
- fp = fdopen(fd, "rw");
- if (fp == NULL) {
- perror("fopen(lseek.out) failed");
- return 1;
- }
-
- memset(buf, 0xAB, sizeof(buf));
- ret = write(fd, buf, sizeof(buf));
- if (ret != sizeof(buf)) {
- fprintf(stderr, "write() failed to write %zi bytes (wrote %li): ",
sizeof(buf), (long)ret);
- perror("");
- return 1;
- }
-
- tmp = fseeko(fp, 1024, SEEK_SET);
- assert(tmp == 0);
- tmp = fseeko(fp, (off_t)-16, SEEK_CUR);
- assert(tmp == 0);
- ret = ftell(fp);
- if (ret != (1024-16)) {
- fprintf(stderr, "ftell() failed, we wanted pos %i but got %li: ", (1024-16),
(long)ret);
- perror("");
- return 1;
- }
-
- for (i = 0; i < ARRAY_SIZE(tests); ++i) {
- ret = lseek(fd, tests[i].offset, tests[i].whence);
- if (ret != tests[i].offset) {
- fprintf(stderr, "lseek(%li,%i) failed (wanted %li, got %li): ",
(long)tests[i].offset,
- tests[i].whence, (long)tests[i].offset, (long)ret);
- perror("");
- return 1;
- }
- ret = fseek(fp, tests[i].offset, tests[i].whence);
- if (ret != 0) {
- fprintf(stderr, "fseek(%li,%i) failed (wanted 0, got %li): ",
(long)tests[i].offset,
- tests[i].whence, (long)ret);
- perror("");
- return 1;
- }
- }
-
- fclose(fp);
- close(fd);
-
- printf("Success!\n");
-
- return 0;
-}
diff --git a/test/misc/sem.c b/test/misc/sem.c
deleted file mode 100644
index 62a59b1..0000000
--- a/test/misc/sem.c
+++ /dev/null
@@ -1,45 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/ipc.h>
-#include <sys/sem.h>
-
-int main(void)
-{
- int k, r;
- union semun {
- int val;
- struct semid_ds *buf;
- unsigned short int *array;
- struct seminfo *__buf;
- } sd;
- struct semid_ds sd_buf;
-
- k = semget(IPC_PRIVATE, 10, IPC_CREAT | 0666 );
- printf("semget(IPC_CREAT) = %d\n", k);
-
- if (k < 0) {
- fprintf(stderr, "semget failed: %s\n", strerror(errno));
- return 1;
- }
-
- sd.buf = &sd_buf;
- r = semctl(k, 0, IPC_STAT, sd);
- printf("semctl(k) = %d\n", r);
-
- if (r < 0) {
- perror("semctl IPC_STAT failed");
- return 1;
- }
-
- printf("sem_nsems = %lu\n", sd_buf.sem_nsems);
- if (sd_buf.sem_nsems != 10) {
- fprintf(stderr, "failed: incorrect sem_nsems!\n");
- return 1;
- }
-
- printf("succeeded\n");
-
- return 0;
-}
diff --git a/test/misc/stdarg.c b/test/misc/stdarg.c
deleted file mode 100644
index 1566e0c..0000000
--- a/test/misc/stdarg.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* copied from rsync */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include <stdarg.h>
-static int foo(const char *format, ...)
-{
- va_list ap;
- size_t len;
- char buf[5];
-
- va_start(ap, format);
- len = vsnprintf(0, 0, format, ap);
- va_end(ap);
- if (len != 5) return(1);
-
- if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0)
return(1);
-
- return(0);
-}
-int main(void) { return foo("hello"); }
diff --git a/test/misc/tst-fnmatch.c b/test/misc/tst-fnmatch.c
deleted file mode 100644
index e7d5324..0000000
--- a/test/misc/tst-fnmatch.c
+++ /dev/null
@@ -1,443 +0,0 @@
-/* Tests for fnmatch function.
- Copyright (C) 2000, 2001 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <error.h>
-#include <fnmatch.h>
-#include <locale.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <sys/types.h>
-
-
-static char *next_input (char **line, int first, int last);
-static int convert_flags (const char *str);
-static char *flag_output (int flags);
-static char *escape (const char *str, size_t *reslenp, char **resbuf);
-
-
-int str_isalpha(const char *str)
-{
- size_t i = strlen(str);
- while (i--)
- if (isascii(str[i]) == 0)
- return 0;
- return 1;
-}
-int str_has_funk(const char *str, const char x)
-{
- size_t i, max = strlen(str);
- for (i=0; i+1<max; ++i)
- if (str[i] == '[' && str[i+1] == x)
- return 1;
- return 0;
-}
-
-
-int
-main (void)
-{
- char *linebuf = NULL;
- size_t linebuflen = 0;
- int ntests = 0;
- int nfailed = 0;
- int nskipped = 0;
- char *escinput = NULL;
- size_t escinputlen = 0;
- char *escpattern = NULL;
- size_t escpatternlen = 0;
- int nr = 0;
-
- /* Read lines from stdin with the following format:
-
- locale input-string match-string flags result
-
- where `result' is either 0 or 1. If the first character of a
- string is '"' we read until the next '"' and handled
escaped '"'. */
- while (! feof (stdin))
- {
- ssize_t n = getline (&linebuf, &linebuflen, stdin);
- char *cp;
- const char *locale;
- const char *input;
- const char *pattern;
- const char *result_str;
- int result;
- const char *flags;
- int flags_val;
- int fnmres;
- char numbuf[24];
-
- if (n == -1)
- break;
-
- if (n == 0)
- /* Maybe an empty line. */
- continue;
-
- /* Skip over all leading white spaces. */
- cp = linebuf;
-
- locale = next_input (&cp, 1, 0);
- if (locale == NULL)
- continue;
-
- input = next_input (&cp, 0, 0);
- if (input == NULL)
- continue;
-
- pattern = next_input (&cp, 0, 0);
- if (pattern == NULL)
- continue;
-
- result_str = next_input (&cp, 0, 0);
- if (result_str == NULL)
- continue;
-
- if (strcmp (result_str, "0") == 0)
- result = 0;
- else if (strcasecmp (result_str, "NOMATCH") == 0)
- result = FNM_NOMATCH;
- else
- {
- char *endp;
- result = strtol (result_str, &endp, 0);
- if (*endp != '\0')
- continue;
- }
-
- flags = next_input (&cp, 0, 1);
- if (flags == NULL)
- /* We allow the flags missing. */
- flags = "";
-
- /* Convert the text describing the flags in a numeric value. */
- flags_val = convert_flags (flags);
- if (flags_val == -1)
- /* Something went wrong. */
- continue;
-
- /* Now run the actual test. */
- ++ntests;
-
-#ifdef __UCLIBC_HAS_XLOCALE__
- if (setlocale (LC_COLLATE, locale) == NULL
- || setlocale (LC_CTYPE, locale) == NULL)
- {
- puts ("*** Cannot set locale");
- ++nfailed;
- continue;
- }
-#else
- /* skip non-ascii strings */
- if (!str_isalpha(pattern) || !str_isalpha(input))
- {
- ++nskipped;
- printf("%3d: fnmatch (\"%s\", \"%s\"): SKIP multibyte test
(requires locale support)\n", ++nr, pattern, input);
- continue;
- }
- /* skip collating symbols */
- if (str_has_funk(pattern, '.') || str_has_funk(input, '.'))
- {
- ++nskipped;
- printf("%3d: fnmatch (\"%s\", \"%s\"): SKIP collating symbol
test (requires locale support)\n", ++nr, pattern, input);
- continue;
- }
- /* skip equivalence class expressions */
- if (str_has_funk(pattern, '=') || str_has_funk(input, '='))
- {
- ++nskipped;
- printf("%3d: fnmatch (\"%s\", \"%s\"): SKIP equivalence class
test (requires locale support)\n", ++nr, pattern, input);
- continue;
- }
-#endif
-
- fnmres = fnmatch (pattern, input, flags_val);
-
- printf ("%3d: fnmatch (\"%s\", \"%s\", %s) = %s%c",
- ++nr,
- escape (pattern, &escpatternlen, &escpattern),
- escape (input, &escinputlen, &escinput),
- flag_output (flags_val),
- (fnmres == 0
- ? "0" : (fnmres == FNM_NOMATCH
- ? "FNM_NOMATCH"
- : (sprintf (numbuf, "%d", fnmres), numbuf))),
- (fnmres != 0) != (result != 0) ? ' ' : '\n');
-
- if ((fnmres != 0) != (result != 0))
- {
- printf ("(FAIL, expected %s) ***\n",
- result == 0
- ? "0" : (result == FNM_NOMATCH
- ? "FNM_NOMATCH"
- : (sprintf (numbuf, "%d", result), numbuf)));
- ++nfailed;
- }
- }
-
- printf ("=====================\n%3d tests, %3d failed, %3d skipped\n",
ntests, nfailed, nskipped);
-
- free (escpattern);
- free (escinput);
- free (linebuf);
-
- return nfailed != 0;
-}
-
-
-static char *
-next_input (char **line, int first, int last)
-{
- char *cp = *line;
- char *result;
-
- while (*cp == ' ' || *cp == '\t')
- ++cp;
-
- /* We allow comment lines starting with '#'. */
- if (first && *cp == '#')
- return NULL;
-
- if (*cp == '"')
- {
- char *wp;
-
- result = ++cp;
- wp = cp;
-
- while (*cp != '"' && *cp != '\0' && *cp !=
'\n')
- if (*cp == '\\')
- {
- if (cp[1] == '\n' || cp[1] == '\0')
- return NULL;
-
- ++cp;
- if (*cp == 't')
- *wp++ = '\t';
- else if (*cp == 'n')
- *wp++ = '\n';
- else
- *wp++ = *cp;
-
- ++cp;
- }
- else
- *wp++ = *cp++;
-
- if (*cp != '"')
- return NULL;
-
- if (wp != cp)
- *wp = '\0';
- }
- else
- {
- result = cp;
- while (*cp != '\0' && *cp != '\n' && *cp != '
' && *cp != '\t')
- ++cp;
-
- if (cp == result && ! last)
- /* Premature end of line. */
- return NULL;
- }
-
- /* Terminate and skip over the next white spaces. */
- *cp++ = '\0';
-
- *line = cp;
- return result;
-}
-
-
-static int
-convert_flags (const char *str)
-{
- int result = 0;
-
- while (*str != '\0')
- {
- int len;
-
- if (strncasecmp (str, "PATHNAME", 8) == 0
- && (str[8] == '|' || str[8] == '\0'))
- {
- result |= FNM_PATHNAME;
- len = 8;
- }
- else if (strncasecmp (str, "NOESCAPE", 8) == 0
- && (str[8] == '|' || str[8] == '\0'))
- {
- result |= FNM_NOESCAPE;
- len = 8;
- }
- else if (strncasecmp (str, "PERIOD", 6) == 0
- && (str[6] == '|' || str[6] == '\0'))
- {
- result |= FNM_PERIOD;
- len = 6;
- }
-#ifdef FNM_LEADING_DIR
- else if (strncasecmp (str, "LEADING_DIR", 11) == 0
- && (str[11] == '|' || str[11] == '\0'))
- {
- result |= FNM_LEADING_DIR;
- len = 11;
- }
-#endif
-#ifdef FNM_CASEFOLD
- else if (strncasecmp (str, "CASEFOLD", 8) == 0
- && (str[8] == '|' || str[8] == '\0'))
- {
- result |= FNM_CASEFOLD;
- len = 8;
- }
-#endif
-#ifdef FNM_EXTMATCH
- else if (strncasecmp (str, "EXTMATCH", 8) == 0
- && (str[8] == '|' || str[8] == '\0'))
- {
- result |= FNM_EXTMATCH;
- len = 8;
- }
-#endif
- else
- return -1;
-
- str += len;
- if (*str != '\0')
- ++str;
- }
-
- return result;
-}
-
-
-static char *
-flag_output (int flags)
-{
- static char buf[100];
- int first = 1;
- char *cp = buf;
-
- if (flags & FNM_PATHNAME)
- {
- cp = stpcpy (cp, "FNM_PATHNAME");
- first = 0;
- }
- if (flags & FNM_NOESCAPE)
- {
- if (! first)
- *cp++ = '|';
- cp = stpcpy (cp, "FNM_NOESCAPE");
- first = 0;
- }
- if (flags & FNM_PERIOD)
- {
- if (! first)
- *cp++ = '|';
- cp = stpcpy (cp, "FNM_PERIOD");
- first = 0;
- }
-#ifdef FNM_LEADING_DIR
- if (flags & FNM_LEADING_DIR)
- {
- if (! first)
- *cp++ = '|';
- cp = stpcpy (cp, "FNM_LEADING_DIR");
- first = 0;
- }
-#endif
-#ifdef FNM_CASEFOLD
- if (flags & FNM_CASEFOLD)
- {
- if (! first)
- *cp++ = '|';
- cp = stpcpy (cp, "FNM_CASEFOLD");
- first = 0;
- }
-#endif
-#ifdef FNM_EXTMATCH
- if (flags & FNM_EXTMATCH)
- {
- if (! first)
- *cp++ = '|';
- cp = stpcpy (cp, "FNM_EXTMATCH");
- first = 0;
- }
-#endif
- if (cp == buf)
- *cp++ = '0';
- *cp = '\0';
-
- return buf;
-}
-
-
-static char *
-escape (const char *str, size_t *reslenp, char **resbufp)
-{
- size_t reslen = *reslenp;
- char *resbuf = *resbufp;
- size_t len = strlen (str);
- char *wp;
-
- if (2 * len + 1 > reslen)
- {
- resbuf = (char *) realloc (resbuf, 2 * len + 1);
- if (resbuf == NULL)
- error (EXIT_FAILURE, errno, "while allocating buffer for printing");
- *reslenp = 2 * len + 1;
- *resbufp = resbuf;
- }
-
- wp = resbuf;
- while (*str != '\0')
- if (*str == '\t')
- {
- *wp++ = '\\';
- *wp++ = 't';
- ++str;
- }
- else if (*str == '\n')
- {
- *wp++ = '\\';
- *wp++ = 'n';
- ++str;
- }
- else if (*str == '"')
- {
- *wp++ = '\\';
- *wp++ = '"';
- ++str;
- }
- else if (*str == '\\')
- {
- *wp++ = '\\';
- *wp++ = '\\';
- ++str;
- }
- else
- *wp++ = *str++;
-
- *wp = '\0';
-
- return resbuf;
-}
diff --git a/test/misc/tst-fnmatch.input b/test/misc/tst-fnmatch.input
deleted file mode 100644
index bf69c12..0000000
--- a/test/misc/tst-fnmatch.input
+++ /dev/null
@@ -1,754 +0,0 @@
-# Tests for fnmatch.
-# Copyright (C) 2000, 2001, 2004 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-# Contributes by Ulrich Drepper <drepper(a)redhat.com>om>.
-#
-
-# The GNU C Library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-
-# The GNU C Library 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
-# Lesser General Public License for more details.
-
-# You should have received a copy of the GNU Lesser General Public
-# License along with the GNU C Library; see the file COPYING.LIB. If
-# not, see <http://www.gnu.org/licenses/>.
-
-
-# Derived from the IEEE 2003.2 text. The standard only contains some
-# wording describing the situations to be tested. It does not specify
-# any specific tests. I.e., the tests below are in no case sufficient.
-# They are hopefully necessary, though.
-
-# B.6 004(C)
-C "!#%+,-./01234567889" "!#%+,-./01234567889" 0
-C ":;=@ABCDEFGHIJKLMNO" ":;=@ABCDEFGHIJKLMNO" 0
-C "PQRSTUVWXYZ]abcdefg" "PQRSTUVWXYZ]abcdefg" 0
-C "hijklmnopqrstuvwxyz" "hijklmnopqrstuvwxyz" 0
-C "^_{}~" "^_{}~" 0
-
-# B.6 005(C)
-C "\"$&'()" "\\\"\\$\\&\\'\\(\\)" 0
-C "*?[\\`|" "\\*\\?\\[\\\\\\`\\|" 0
-C "<>" "\\<\\>" 0
-
-# B.6 006(C)
-C "?*[" "[?*[][?*[][?*[]" 0
-C "a/b" "?/b" 0
-
-# B.6 007(C)
-C "a/b" "a?b" 0
-C "a/b" "a/?" 0
-C "aa/b" "?/b" NOMATCH
-C "aa/b" "a?b" NOMATCH
-C "a/bb" "a/?" NOMATCH
-
-# B.6 009(C)
-C "abc" "[abc]" NOMATCH
-C "x" "[abc]" NOMATCH
-C "a" "[abc]" 0
-C "[" "[[abc]" 0
-C "a" "[][abc]" 0
-C "a]" "[]a]]" 0
-
-# B.6 010(C)
-C "xyz" "[!abc]" NOMATCH
-C "x" "[!abc]" 0
-C "a" "[!abc]" NOMATCH
-
-# B.6 011(C)
-C "]" "[][abc]" 0
-C "abc]" "[][abc]" NOMATCH
-C "[]abc" "[][]abc" NOMATCH
-C "]" "[!]]" NOMATCH
-C "aa]" "[!]a]" NOMATCH
-C "]" "[!a]" 0
-C "]]" "[!a]]" 0
-
-# B.6 012(C)
-C "a" "[[.a.]]" 0
-C "-" "[[.-.]]" 0
-C "-" "[[.-.][.].]]" 0
-C "-" "[[.].][.-.]]" 0
-C "-" "[[.-.][=u=]]" 0
-C "-" "[[.-.][:alpha:]]" 0
-C "a" "[![.a.]]" NOMATCH
-
-# B.6 013(C)
-C "a" "[[.b.]]" NOMATCH
-C "a" "[[.b.][.c.]]" NOMATCH
-C "a" "[[.b.][=b=]]" NOMATCH
-
-
-# B.6 015(C)
-C "a" "[[=a=]]" 0
-C "b" "[[=a=]b]" 0
-C "b" "[[=a=][=b=]]" 0
-C "a" "[[=a=][=b=]]" 0
-C "a" "[[=a=][.b.]]" 0
-C "a" "[[=a=][:digit:]]" 0
-
-# B.6 016(C)
-C "=" "[[=a=]b]" NOMATCH
-C "]" "[[=a=]b]" NOMATCH
-C "a" "[[=b=][=c=]]" NOMATCH
-C "a" "[[=b=][.].]]" NOMATCH
-C "a" "[[=b=][:digit:]]" NOMATCH
-
-# B.6 017(C)
-C "a" "[[:alnum:]]" 0
-C "a" "[![:alnum:]]" NOMATCH
-C "-" "[[:alnum:]]" NOMATCH
-C "a]a" "[[:alnum:]]a" NOMATCH
-C "-" "[[:alnum:]-]" 0
-C "aa" "[[:alnum:]]a" 0
-C "-" "[![:alnum:]]" 0
-C "]" "[!][:alnum:]]" NOMATCH
-C "[" "[![:alnum:][]" NOMATCH
-C "a" "[[:alnum:]]" 0
-C "b" "[[:alnum:]]" 0
-C "c" "[[:alnum:]]" 0
-C "d" "[[:alnum:]]" 0
-C "e" "[[:alnum:]]" 0
-C "f" "[[:alnum:]]" 0
-C "g" "[[:alnum:]]" 0
-C "h" "[[:alnum:]]" 0
-C "i" "[[:alnum:]]" 0
-C "j" "[[:alnum:]]" 0
-C "k" "[[:alnum:]]" 0
-C "l" "[[:alnum:]]" 0
-C "m" "[[:alnum:]]" 0
-C "n" "[[:alnum:]]" 0
-C "o" "[[:alnum:]]" 0
-C "p" "[[:alnum:]]" 0
-C "q" "[[:alnum:]]" 0
-C "r" "[[:alnum:]]" 0
-C "s" "[[:alnum:]]" 0
-C "t" "[[:alnum:]]" 0
-C "u" "[[:alnum:]]" 0
-C "v" "[[:alnum:]]" 0
-C "w" "[[:alnum:]]" 0
-C "x" "[[:alnum:]]" 0
-C "y" "[[:alnum:]]" 0
-C "z" "[[:alnum:]]" 0
-C "A" "[[:alnum:]]" 0
-C "B" "[[:alnum:]]" 0
-C "C" "[[:alnum:]]" 0
-C "D" "[[:alnum:]]" 0
-C "E" "[[:alnum:]]" 0
-C "F" "[[:alnum:]]" 0
-C "G" "[[:alnum:]]" 0
-C "H" "[[:alnum:]]" 0
-C "I" "[[:alnum:]]" 0
-C "J" "[[:alnum:]]" 0
-C "K" "[[:alnum:]]" 0
-C "L" "[[:alnum:]]" 0
-C "M" "[[:alnum:]]" 0
-C "N" "[[:alnum:]]" 0
-C "O" "[[:alnum:]]" 0
-C "P" "[[:alnum:]]" 0
-C "Q" "[[:alnum:]]" 0
-C "R" "[[:alnum:]]" 0
-C "S" "[[:alnum:]]" 0
-C "T" "[[:alnum:]]" 0
-C "U" "[[:alnum:]]" 0
-C "V" "[[:alnum:]]" 0
-C "W" "[[:alnum:]]" 0
-C "X" "[[:alnum:]]" 0
-C "Y" "[[:alnum:]]" 0
-C "Z" "[[:alnum:]]" 0
-C "0" "[[:alnum:]]" 0
-C "1" "[[:alnum:]]" 0
-C "2" "[[:alnum:]]" 0
-C "3" "[[:alnum:]]" 0
-C "4" "[[:alnum:]]" 0
-C "5" "[[:alnum:]]" 0
-C "6" "[[:alnum:]]" 0
-C "7" "[[:alnum:]]" 0
-C "8" "[[:alnum:]]" 0
-C "9" "[[:alnum:]]" 0
-C "!" "[[:alnum:]]" NOMATCH
-C "#" "[[:alnum:]]" NOMATCH
-C "%" "[[:alnum:]]" NOMATCH
-C "+" "[[:alnum:]]" NOMATCH
-C "," "[[:alnum:]]" NOMATCH
-C "-" "[[:alnum:]]" NOMATCH
-C "." "[[:alnum:]]" NOMATCH
-C "/" "[[:alnum:]]" NOMATCH
-C ":" "[[:alnum:]]" NOMATCH
-C ";" "[[:alnum:]]" NOMATCH
-C "=" "[[:alnum:]]" NOMATCH
-C "@" "[[:alnum:]]" NOMATCH
-C "[" "[[:alnum:]]" NOMATCH
-C "\\" "[[:alnum:]]" NOMATCH
-C "]" "[[:alnum:]]" NOMATCH
-C "^" "[[:alnum:]]" NOMATCH
-C "_" "[[:alnum:]]" NOMATCH
-C "{" "[[:alnum:]]" NOMATCH
-C "}" "[[:alnum:]]" NOMATCH
-C "~" "[[:alnum:]]" NOMATCH
-C "\"" "[[:alnum:]]" NOMATCH
-C "$" "[[:alnum:]]" NOMATCH
-C "&" "[[:alnum:]]" NOMATCH
-C "'" "[[:alnum:]]" NOMATCH
-C "(" "[[:alnum:]]" NOMATCH
-C ")" "[[:alnum:]]" NOMATCH
-C "*" "[[:alnum:]]" NOMATCH
-C "?" "[[:alnum:]]" NOMATCH
-C "`" "[[:alnum:]]" NOMATCH
-C "|" "[[:alnum:]]" NOMATCH
-C "<" "[[:alnum:]]" NOMATCH
-C ">" "[[:alnum:]]" NOMATCH
-C "\t" "[[:cntrl:]]" 0
-C "t" "[[:cntrl:]]" NOMATCH
-C "t" "[[:lower:]]" 0
-C "\t" "[[:lower:]]" NOMATCH
-C "T" "[[:lower:]]" NOMATCH
-C "\t" "[[:space:]]" 0
-C "t" "[[:space:]]" NOMATCH
-C "t" "[[:alpha:]]" 0
-C "\t" "[[:alpha:]]" NOMATCH
-C "0" "[[:digit:]]" 0
-C "\t" "[[:digit:]]" NOMATCH
-C "t" "[[:digit:]]" NOMATCH
-C "\t" "[[:print:]]" NOMATCH
-C "t" "[[:print:]]" 0
-C "T" "[[:upper:]]" 0
-C "\t" "[[:upper:]]" NOMATCH
-C "t" "[[:upper:]]" NOMATCH
-C "\t" "[[:blank:]]" 0
-C "t" "[[:blank:]]" NOMATCH
-C "\t" "[[:graph:]]" NOMATCH
-C "t" "[[:graph:]]" 0
-C "." "[[:punct:]]" 0
-C "t" "[[:punct:]]" NOMATCH
-C "\t" "[[:punct:]]" NOMATCH
-C "0" "[[:xdigit:]]" 0
-C "\t" "[[:xdigit:]]" NOMATCH
-C "a" "[[:xdigit:]]" 0
-C "A" "[[:xdigit:]]" 0
-C "t" "[[:xdigit:]]" NOMATCH
-C "a" "[[alpha]]" NOMATCH
-C "a" "[[alpha:]]" NOMATCH
-C "a]" "[[alpha]]" 0
-C "a]" "[[alpha:]]" 0
-C "a" "[[:alpha:][.b.]]" 0
-C "a" "[[:alpha:][=b=]]" 0
-C "a" "[[:alpha:][:digit:]]" 0
-C "a" "[[:digit:][:alpha:]]" 0
-
-# B.6 018(C)
-C "a" "[a-c]" 0
-C "b" "[a-c]" 0
-C "c" "[a-c]" 0
-C "a" "[b-c]" NOMATCH
-C "d" "[b-c]" NOMATCH
-C "B" "[a-c]" NOMATCH
-C "b" "[A-C]" NOMATCH
-C "" "[a-c]" NOMATCH
-C "as" "[a-ca-z]" NOMATCH
-C "a" "[[.a.]-c]" 0
-C "a" "[a-[.c.]]" 0
-C "a" "[[.a.]-[.c.]]" 0
-C "b" "[[.a.]-c]" 0
-C "b" "[a-[.c.]]" 0
-C "b" "[[.a.]-[.c.]]" 0
-C "c" "[[.a.]-c]" 0
-C "c" "[a-[.c.]]" 0
-C "c" "[[.a.]-[.c.]]" 0
-C "d" "[[.a.]-c]" NOMATCH
-C "d" "[a-[.c.]]" NOMATCH
-C "d" "[[.a.]-[.c.]]" NOMATCH
-
-# B.6 019(C)
-C "a" "[c-a]" NOMATCH
-C "a" "[[.c.]-a]" NOMATCH
-C "a" "[c-[.a.]]" NOMATCH
-C "a" "[[.c.]-[.a.]]" NOMATCH
-C "c" "[c-a]" NOMATCH
-C "c" "[[.c.]-a]" NOMATCH
-C "c" "[c-[.a.]]" NOMATCH
-C "c" "[[.c.]-[.a.]]" NOMATCH
-
-# B.6 020(C)
-C "a" "[a-c0-9]" 0
-C "d" "[a-c0-9]" NOMATCH
-C "B" "[a-c0-9]" NOMATCH
-
-# B.6 021(C)
-C "-" "[-a]" 0
-C "a" "[-b]" NOMATCH
-C "-" "[!-a]" NOMATCH
-C "a" "[!-b]" 0
-C "-" "[a-c-0-9]" 0
-C "b" "[a-c-0-9]" 0
-C "a:" "a[0-9-a]" NOMATCH
-C "a:" "a[09-a]" 0
-
-# B.6 024(C)
-C "" "*" 0
-C "asd/sdf" "*" 0
-
-# B.6 025(C)
-C "as" "[a-c][a-z]" 0
-C "as" "??" 0
-
-# B.6 026(C)
-C "asd/sdf" "as*df" 0
-C "asd/sdf" "as*" 0
-C "asd/sdf" "*df" 0
-C "asd/sdf" "as*dg" NOMATCH
-C "asdf" "as*df" 0
-C "asdf" "as*df?" NOMATCH
-C "asdf" "as*??" 0
-C "asdf" "a*???" 0
-C "asdf" "*????" 0
-C "asdf" "????*" 0
-C "asdf" "??*?" 0
-
-# B.6 027(C)
-C "/" "/" 0
-C "/" "/*" 0
-C "/" "*/" 0
-C "/" "/?" NOMATCH
-C "/" "?/" NOMATCH
-C "/" "?" 0
-C "." "?" 0
-C "/." "??" 0
-C "/" "[!a-c]" 0
-C "." "[!a-c]" 0
-
-# B.6 029(C)
-C "/" "/" 0 PATHNAME
-C "//" "//" 0 PATHNAME
-C "/.a" "/*" 0 PATHNAME
-C "/.a" "/?a" 0 PATHNAME
-C "/.a" "/[!a-z]a" 0 PATHNAME
-C "/.a/.b" "/*/?b" 0 PATHNAME
-
-# B.6 030(C)
-C "/" "?" NOMATCH PATHNAME
-C "/" "*" NOMATCH PATHNAME
-C "a/b" "a?b" NOMATCH PATHNAME
-C "/.a/.b" "/*b" NOMATCH PATHNAME
-
-# B.6 031(C)
-C "/$" "\\/\\$" 0
-C "/[" "\\/\\[" 0
-C "/[" "\\/[" NOMATCH
-
-# B.6 032(C)
-C "/$" "\\/\\$" NOMATCH NOESCAPE
-C "/\\$" "\\/\\$" NOMATCH NOESCAPE
-C "\\/\\$" "\\/\\$" 0 NOESCAPE
-
-# B.6 033(C)
-C ".asd" ".*" 0 PERIOD
-C "/.asd" "*" 0 PERIOD
-C "/as/.df" "*/?*f" 0 PERIOD
-C "..asd" ".[!a-z]*" 0 PERIOD
-
-# B.6 034(C)
-C ".asd" "*" NOMATCH PERIOD
-C ".asd" "?asd" NOMATCH PERIOD
-C ".asd" "[!a-z]*" NOMATCH PERIOD
-
-# B.6 035(C)
-C "/." "/." 0 PATHNAME|PERIOD
-C "/.a./.b." "/.*/.*" 0 PATHNAME|PERIOD
-C "/.a./.b." "/.??/.??" 0 PATHNAME|PERIOD
-
-# B.6 036(C)
-C "/." "*" NOMATCH PATHNAME|PERIOD
-C "/." "/*" NOMATCH PATHNAME|PERIOD
-C "/." "/?" NOMATCH PATHNAME|PERIOD
-C "/." "/[!a-z]" NOMATCH PATHNAME|PERIOD
-C "/a./.b." "/*/*" NOMATCH PATHNAME|PERIOD
-C "/a./.b." "/??/???" NOMATCH PATHNAME|PERIOD
-
-# Some home-grown tests.
-C "foobar" "foo*[abc]z" NOMATCH
-C "foobaz" "foo*[abc][xyz]" 0
-C "foobaz" "foo?*[abc][xyz]" 0
-C "foobaz" "foo?*[abc][x/yz]" 0
-C "foobaz" "foo?*[abc]/[xyz]" NOMATCH PATHNAME
-C "a" "a/" NOMATCH PATHNAME
-C "a/" "a" NOMATCH PATHNAME
-C "//a" "/a" NOMATCH PATHNAME
-C "/a" "//a" NOMATCH PATHNAME
-C "az" "[a-]z" 0
-C "bz" "[ab-]z" 0
-C "cz" "[ab-]z" NOMATCH
-C "-z" "[ab-]z" 0
-C "az" "[-a]z" 0
-C "bz" "[-ab]z" 0
-C "cz" "[-ab]z" NOMATCH
-C "-z" "[-ab]z" 0
-C "\\" "[\\\\-a]" 0
-C "_" "[\\\\-a]" 0
-C "a" "[\\\\-a]" 0
-C "-" "[\\\\-a]" NOMATCH
-C "\\" "[\\]-a]" NOMATCH
-C "_" "[\\]-a]" 0
-C "a" "[\\]-a]" 0
-C "]" "[\\]-a]" 0
-C "-" "[\\]-a]" NOMATCH
-C "\\" "[!\\\\-a]" NOMATCH
-C "_" "[!\\\\-a]" NOMATCH
-C "a" "[!\\\\-a]" NOMATCH
-C "-" "[!\\\\-a]" 0
-C "!" "[\\!-]" 0
-C "-" "[\\!-]" 0
-C "\\" "[\\!-]" NOMATCH
-C "Z" "[Z-\\\\]" 0
-C "[" "[Z-\\\\]" 0
-C "\\" "[Z-\\\\]" 0
-C "-" "[Z-\\\\]" NOMATCH
-C "Z" "[Z-\\]]" 0
-C "[" "[Z-\\]]" 0
-C "\\" "[Z-\\]]" 0
-C "]" "[Z-\\]]" 0
-C "-" "[Z-\\]]" NOMATCH
-
-# Following are tests outside the scope of IEEE 2003.2 since they are using
-# locales other than the C locale. The main focus of the tests is on the
-# handling of ranges and the recognition of character (vs bytes).
-de_DE.ISO-8859-1 "a" "[a-z]" 0
-de_DE.ISO-8859-1 "z" "[a-z]" 0
-de_DE.ISO-8859-1 "�" "[a-z]" 0
-de_DE.ISO-8859-1 "�" "[a-z]" 0
-de_DE.ISO-8859-1 "�" "[a-z]" 0
-de_DE.ISO-8859-1 "A" "[a-z]" NOMATCH
-de_DE.ISO-8859-1 "Z" "[a-z]" NOMATCH
-de_DE.ISO-8859-1 "�" "[a-z]" NOMATCH
-de_DE.ISO-8859-1 "�" "[a-z]" NOMATCH
-de_DE.ISO-8859-1 "�" "[a-z]" NOMATCH
-de_DE.ISO-8859-1 "a" "[A-Z]" NOMATCH
-de_DE.ISO-8859-1 "z" "[A-Z]" NOMATCH
-de_DE.ISO-8859-1 "�" "[A-Z]" NOMATCH
-de_DE.ISO-8859-1 "�" "[A-Z]" NOMATCH
-de_DE.ISO-8859-1 "�" "[A-Z]" NOMATCH
-de_DE.ISO-8859-1 "A" "[A-Z]" 0
-de_DE.ISO-8859-1 "Z" "[A-Z]" 0
-de_DE.ISO-8859-1 "�" "[A-Z]" 0
-de_DE.ISO-8859-1 "�" "[A-Z]" 0
-de_DE.ISO-8859-1 "�" "[A-Z]" 0
-de_DE.ISO-8859-1 "a" "[[:lower:]]" 0
-de_DE.ISO-8859-1 "z" "[[:lower:]]" 0
-de_DE.ISO-8859-1 "�" "[[:lower:]]" 0
-de_DE.ISO-8859-1 "�" "[[:lower:]]" 0
-de_DE.ISO-8859-1 "�" "[[:lower:]]" 0
-de_DE.ISO-8859-1 "A" "[[:lower:]]" NOMATCH
-de_DE.ISO-8859-1 "Z" "[[:lower:]]" NOMATCH
-de_DE.ISO-8859-1 "�" "[[:lower:]]" NOMATCH
-de_DE.ISO-8859-1 "�" "[[:lower:]]" NOMATCH
-de_DE.ISO-8859-1 "�" "[[:lower:]]" NOMATCH
-de_DE.ISO-8859-1 "a" "[[:upper:]]" NOMATCH
-de_DE.ISO-8859-1 "z" "[[:upper:]]" NOMATCH
-de_DE.ISO-8859-1 "�" "[[:upper:]]" NOMATCH
-de_DE.ISO-8859-1 "�" "[[:upper:]]" NOMATCH
-de_DE.ISO-8859-1 "�" "[[:upper:]]" NOMATCH
-de_DE.ISO-8859-1 "A" "[[:upper:]]" 0
-de_DE.ISO-8859-1 "Z" "[[:upper:]]" 0
-de_DE.ISO-8859-1 "�" "[[:upper:]]" 0
-de_DE.ISO-8859-1 "�" "[[:upper:]]" 0
-de_DE.ISO-8859-1 "�" "[[:upper:]]" 0
-de_DE.ISO-8859-1 "a" "[[:alpha:]]" 0
-de_DE.ISO-8859-1 "z" "[[:alpha:]]" 0
-de_DE.ISO-8859-1 "�" "[[:alpha:]]" 0
-de_DE.ISO-8859-1 "�" "[[:alpha:]]" 0
-de_DE.ISO-8859-1 "�" "[[:alpha:]]" 0
-de_DE.ISO-8859-1 "A" "[[:alpha:]]" 0
-de_DE.ISO-8859-1 "Z" "[[:alpha:]]" 0
-de_DE.ISO-8859-1 "�" "[[:alpha:]]" 0
-de_DE.ISO-8859-1 "�" "[[:alpha:]]" 0
-de_DE.ISO-8859-1 "�" "[[:alpha:]]" 0
-
-de_DE.ISO-8859-1 "a" "[[=a=]b]" 0
-de_DE.ISO-8859-1 "�" "[[=a=]b]" 0
-de_DE.ISO-8859-1 "�" "[[=a=]b]" 0
-de_DE.ISO-8859-1 "�" "[[=a=]b]" 0
-de_DE.ISO-8859-1 "�" "[[=a=]b]" 0
-de_DE.ISO-8859-1 "b" "[[=a=]b]" 0
-de_DE.ISO-8859-1 "c" "[[=a=]b]" NOMATCH
-de_DE.ISO-8859-1 "a" "[[=�=]b]" 0
-de_DE.ISO-8859-1 "�" "[[=�=]b]" 0
-de_DE.ISO-8859-1 "�" "[[=�=]b]" 0
-de_DE.ISO-8859-1 "�" "[[=�=]b]" 0
-de_DE.ISO-8859-1 "�" "[[=�=]b]" 0
-de_DE.ISO-8859-1 "b" "[[=�=]b]" 0
-de_DE.ISO-8859-1 "c" "[[=�=]b]" NOMATCH
-de_DE.ISO-8859-1 "a" "[[=�=]b]" 0
-de_DE.ISO-8859-1 "�" "[[=�=]b]" 0
-de_DE.ISO-8859-1 "�" "[[=�=]b]" 0
-de_DE.ISO-8859-1 "�" "[[=�=]b]" 0
-de_DE.ISO-8859-1 "�" "[[=�=]b]" 0
-de_DE.ISO-8859-1 "b" "[[=�=]b]" 0
-de_DE.ISO-8859-1 "c" "[[=�=]b]" NOMATCH
-de_DE.ISO-8859-1 "a" "[[=�=]b]" 0
-de_DE.ISO-8859-1 "�" "[[=�=]b]" 0
-de_DE.ISO-8859-1 "�" "[[=�=]b]" 0
-de_DE.ISO-8859-1 "�" "[[=�=]b]" 0
-de_DE.ISO-8859-1 "�" "[[=�=]b]" 0
-de_DE.ISO-8859-1 "b" "[[=�=]b]" 0
-de_DE.ISO-8859-1 "c" "[[=�=]b]" NOMATCH
-de_DE.ISO-8859-1 "a" "[[=�=]b]" 0
-de_DE.ISO-8859-1 "�" "[[=�=]b]" 0
-de_DE.ISO-8859-1 "�" "[[=�=]b]" 0
-de_DE.ISO-8859-1 "�" "[[=�=]b]" 0
-de_DE.ISO-8859-1 "�" "[[=�=]b]" 0
-de_DE.ISO-8859-1 "b" "[[=�=]b]" 0
-de_DE.ISO-8859-1 "c" "[[=�=]b]" NOMATCH
-
-de_DE.ISO-8859-1 "aa" "[[.a.]]a" 0
-de_DE.ISO-8859-1 "ba" "[[.a.]]a" NOMATCH
-
-
-# And with a multibyte character set.
-de_DE.UTF-8 "a" "[a-z]" 0
-de_DE.UTF-8 "z" "[a-z]" 0
-de_DE.UTF-8 "ä" "[a-z]" 0
-de_DE.UTF-8 "ö" "[a-z]" 0
-de_DE.UTF-8 "ü" "[a-z]" 0
-de_DE.UTF-8 "A" "[a-z]" NOMATCH
-de_DE.UTF-8 "Z" "[a-z]" NOMATCH
-de_DE.UTF-8 "Ä" "[a-z]" NOMATCH
-de_DE.UTF-8 "Ö" "[a-z]" NOMATCH
-de_DE.UTF-8 "Ü" "[a-z]" NOMATCH
-de_DE.UTF-8 "a" "[A-Z]" NOMATCH
-de_DE.UTF-8 "z" "[A-Z]" NOMATCH
-de_DE.UTF-8 "ä" "[A-Z]" NOMATCH
-de_DE.UTF-8 "ö" "[A-Z]" NOMATCH
-de_DE.UTF-8 "ü" "[A-Z]" NOMATCH
-de_DE.UTF-8 "A" "[A-Z]" 0
-de_DE.UTF-8 "Z" "[A-Z]" 0
-de_DE.UTF-8 "Ä" "[A-Z]" 0
-de_DE.UTF-8 "Ö" "[A-Z]" 0
-de_DE.UTF-8 "Ü" "[A-Z]" 0
-de_DE.UTF-8 "a" "[[:lower:]]" 0
-de_DE.UTF-8 "z" "[[:lower:]]" 0
-de_DE.UTF-8 "ä" "[[:lower:]]" 0
-de_DE.UTF-8 "ö" "[[:lower:]]" 0
-de_DE.UTF-8 "ü" "[[:lower:]]" 0
-de_DE.UTF-8 "A" "[[:lower:]]" NOMATCH
-de_DE.UTF-8 "Z" "[[:lower:]]" NOMATCH
-de_DE.UTF-8 "Ä" "[[:lower:]]" NOMATCH
-de_DE.UTF-8 "Ö" "[[:lower:]]" NOMATCH
-de_DE.UTF-8 "Ü" "[[:lower:]]" NOMATCH
-de_DE.UTF-8 "a" "[[:upper:]]" NOMATCH
-de_DE.UTF-8 "z" "[[:upper:]]" NOMATCH
-de_DE.UTF-8 "ä" "[[:upper:]]" NOMATCH
-de_DE.UTF-8 "ö" "[[:upper:]]" NOMATCH
-de_DE.UTF-8 "ü" "[[:upper:]]" NOMATCH
-de_DE.UTF-8 "A" "[[:upper:]]" 0
-de_DE.UTF-8 "Z" "[[:upper:]]" 0
-de_DE.UTF-8 "Ä" "[[:upper:]]" 0
-de_DE.UTF-8 "Ö" "[[:upper:]]" 0
-de_DE.UTF-8 "Ü" "[[:upper:]]" 0
-de_DE.UTF-8 "a" "[[:alpha:]]" 0
-de_DE.UTF-8 "z" "[[:alpha:]]" 0
-de_DE.UTF-8 "ä" "[[:alpha:]]" 0
-de_DE.UTF-8 "ö" "[[:alpha:]]" 0
-de_DE.UTF-8 "ü" "[[:alpha:]]" 0
-de_DE.UTF-8 "A" "[[:alpha:]]" 0
-de_DE.UTF-8 "Z" "[[:alpha:]]" 0
-de_DE.UTF-8 "Ä" "[[:alpha:]]" 0
-de_DE.UTF-8 "Ö" "[[:alpha:]]" 0
-de_DE.UTF-8 "Ü" "[[:alpha:]]" 0
-
-de_DE.UTF-8 "a" "[[=a=]b]" 0
-de_DE.UTF-8 "â" "[[=a=]b]" 0
-de_DE.UTF-8 "à" "[[=a=]b]" 0
-de_DE.UTF-8 "á" "[[=a=]b]" 0
-de_DE.UTF-8 "ä" "[[=a=]b]" 0
-de_DE.UTF-8 "b" "[[=a=]b]" 0
-de_DE.UTF-8 "c" "[[=a=]b]" NOMATCH
-de_DE.UTF-8 "a" "[[=â=]b]" 0
-de_DE.UTF-8 "â" "[[=â=]b]" 0
-de_DE.UTF-8 "à" "[[=â=]b]" 0
-de_DE.UTF-8 "á" "[[=â=]b]" 0
-de_DE.UTF-8 "ä" "[[=â=]b]" 0
-de_DE.UTF-8 "b" "[[=â=]b]" 0
-de_DE.UTF-8 "c" "[[=â=]b]" NOMATCH
-de_DE.UTF-8 "a" "[[=à=]b]" 0
-de_DE.UTF-8 "â" "[[=à=]b]" 0
-de_DE.UTF-8 "à" "[[=à=]b]" 0
-de_DE.UTF-8 "á" "[[=à=]b]" 0
-de_DE.UTF-8 "ä" "[[=à=]b]" 0
-de_DE.UTF-8 "b" "[[=à=]b]" 0
-de_DE.UTF-8 "c" "[[=à=]b]" NOMATCH
-de_DE.UTF-8 "a" "[[=á=]b]" 0
-de_DE.UTF-8 "â" "[[=á=]b]" 0
-de_DE.UTF-8 "à" "[[=á=]b]" 0
-de_DE.UTF-8 "á" "[[=á=]b]" 0
-de_DE.UTF-8 "ä" "[[=á=]b]" 0
-de_DE.UTF-8 "b" "[[=á=]b]" 0
-de_DE.UTF-8 "c" "[[=á=]b]" NOMATCH
-de_DE.UTF-8 "a" "[[=ä=]b]" 0
-de_DE.UTF-8 "â" "[[=ä=]b]" 0
-de_DE.UTF-8 "à" "[[=ä=]b]" 0
-de_DE.UTF-8 "á" "[[=ä=]b]" 0
-de_DE.UTF-8 "ä" "[[=ä=]b]" 0
-de_DE.UTF-8 "b" "[[=ä=]b]" 0
-de_DE.UTF-8 "c" "[[=ä=]b]" NOMATCH
-
-de_DE.UTF-8 "aa" "[[.a.]]a" 0
-de_DE.UTF-8 "ba" "[[.a.]]a" NOMATCH
-
-
-# Test of GNU extensions.
-C "x" "x" 0 PATHNAME|LEADING_DIR
-C "x/y" "x" 0 PATHNAME|LEADING_DIR
-C "x/y/z" "x" 0 PATHNAME|LEADING_DIR
-C "x" "*" 0 PATHNAME|LEADING_DIR
-C "x/y" "*" 0 PATHNAME|LEADING_DIR
-C "x/y/z" "*" 0 PATHNAME|LEADING_DIR
-C "x" "*x" 0 PATHNAME|LEADING_DIR
-C "x/y" "*x" 0 PATHNAME|LEADING_DIR
-C "x/y/z" "*x" 0 PATHNAME|LEADING_DIR
-C "x" "x*" 0 PATHNAME|LEADING_DIR
-C "x/y" "x*" 0 PATHNAME|LEADING_DIR
-C "x/y/z" "x*" 0 PATHNAME|LEADING_DIR
-C "x" "a" NOMATCH PATHNAME|LEADING_DIR
-C "x/y" "a" NOMATCH PATHNAME|LEADING_DIR
-C "x/y/z" "a" NOMATCH PATHNAME|LEADING_DIR
-C "x" "x/y" NOMATCH PATHNAME|LEADING_DIR
-C "x/y" "x/y" 0 PATHNAME|LEADING_DIR
-C "x/y/z" "x/y" 0 PATHNAME|LEADING_DIR
-C "x" "x?y" NOMATCH PATHNAME|LEADING_DIR
-C "x/y" "x?y" NOMATCH PATHNAME|LEADING_DIR
-C "x/y/z" "x?y" NOMATCH PATHNAME|LEADING_DIR
-
-# ksh style matching.
-C "abcd" "?@(a|b)*@(c)d" 0 EXTMATCH
-C "/dev/udp/129.22.8.102/45" "/dev/@(tcp|udp)/*/*" 0
PATHNAME|EXTMATCH
-C "12" "[1-9]*([0-9])" 0 EXTMATCH
-C "12abc" "[1-9]*([0-9])" NOMATCH EXTMATCH
-C "1" "[1-9]*([0-9])" 0 EXTMATCH
-C "07" "+([0-7])" 0 EXTMATCH
-C "0377" "+([0-7])" 0 EXTMATCH
-C "09" "+([0-7])" NOMATCH EXTMATCH
-C "paragraph" "para@(chute|graph)" 0 EXTMATCH
-C "paramour" "para@(chute|graph)" NOMATCH EXTMATCH
-C "para991" "para?([345]|99)1" 0 EXTMATCH
-C "para381" "para?([345]|99)1" NOMATCH EXTMATCH
-C "paragraph" "para*([0-9])" NOMATCH EXTMATCH
-C "para" "para*([0-9])" 0 EXTMATCH
-C "para13829383746592" "para*([0-9])" 0 EXTMATCH
-C "paragraph" "para+([0-9])" NOMATCH EXTMATCH
-C "para" "para+([0-9])" NOMATCH EXTMATCH
-C "para987346523" "para+([0-9])" 0 EXTMATCH
-C "paragraph" "para!(*.[0-9])" 0 EXTMATCH
-C "para.38" "para!(*.[0-9])" 0 EXTMATCH
-C "para.graph" "para!(*.[0-9])" 0 EXTMATCH
-C "para39" "para!(*.[0-9])" 0 EXTMATCH
-C "" "*(0|1|3|5|7|9)" 0 EXTMATCH
-C "137577991" "*(0|1|3|5|7|9)" 0 EXTMATCH
-C "2468" "*(0|1|3|5|7|9)" NOMATCH EXTMATCH
-C "1358" "*(0|1|3|5|7|9)" NOMATCH EXTMATCH
-C "file.c" "*.c?(c)" 0 EXTMATCH
-C "file.C" "*.c?(c)" NOMATCH EXTMATCH
-C "file.cc" "*.c?(c)" 0 EXTMATCH
-C "file.ccc" "*.c?(c)" NOMATCH EXTMATCH
-C "parse.y" "!(*.c|*.h|Makefile.in|config*|README)" 0 EXTMATCH
-C "shell.c" "!(*.c|*.h|Makefile.in|config*|README)" NOMATCH
EXTMATCH
-C "Makefile" "!(*.c|*.h|Makefile.in|config*|README)" 0 EXTMATCH
-C "VMS.FILE;1" "*\;[1-9]*([0-9])" 0 EXTMATCH
-C "VMS.FILE;0" "*\;[1-9]*([0-9])" NOMATCH EXTMATCH
-C "VMS.FILE;" "*\;[1-9]*([0-9])" NOMATCH EXTMATCH
-C "VMS.FILE;139" "*\;[1-9]*([0-9])" 0 EXTMATCH
-C "VMS.FILE;1N" "*\;[1-9]*([0-9])" NOMATCH EXTMATCH
-C "abcfefg" "ab**(e|f)" 0 EXTMATCH
-C "abcfefg" "ab**(e|f)g" 0 EXTMATCH
-C "ab" "ab*+(e|f)" NOMATCH EXTMATCH
-C "abef" "ab***ef" 0 EXTMATCH
-C "abef" "ab**" 0 EXTMATCH
-C "fofo" "*(f*(o))" 0 EXTMATCH
-C "ffo" "*(f*(o))" 0 EXTMATCH
-C "foooofo" "*(f*(o))" 0 EXTMATCH
-C "foooofof" "*(f*(o))" 0 EXTMATCH
-C "fooofoofofooo" "*(f*(o))" 0 EXTMATCH
-C "foooofof" "*(f+(o))" NOMATCH EXTMATCH
-C "xfoooofof" "*(f*(o))" NOMATCH EXTMATCH
-C "foooofofx" "*(f*(o))" NOMATCH EXTMATCH
-C "ofxoofxo" "*(*(of*(o)x)o)" 0 EXTMATCH
-C "ofooofoofofooo" "*(f*(o))" NOMATCH EXTMATCH
-C "foooxfooxfoxfooox" "*(f*(o)x)" 0 EXTMATCH
-C "foooxfooxofoxfooox" "*(f*(o)x)" NOMATCH EXTMATCH
-C "foooxfooxfxfooox" "*(f*(o)x)" 0 EXTMATCH
-C "ofxoofxo" "*(*(of*(o)x)o)" 0 EXTMATCH
-C "ofoooxoofxo" "*(*(of*(o)x)o)" 0 EXTMATCH
-C "ofoooxoofxoofoooxoofxo" "*(*(of*(o)x)o)" 0 EXTMATCH
-C "ofoooxoofxoofoooxoofxoo" "*(*(of*(o)x)o)" 0 EXTMATCH
-C "ofoooxoofxoofoooxoofxofo" "*(*(of*(o)x)o)" NOMATCH EXTMATCH
-C "ofoooxoofxoofoooxoofxooofxofxo" "*(*(of*(o)x)o)" 0 EXTMATCH
-C "aac" "*(@(a))a@(c)" 0 EXTMATCH
-C "ac" "*(@(a))a@(c)" 0 EXTMATCH
-C "c" "*(@(a))a@(c)" NOMATCH EXTMATCH
-C "aaac" "*(@(a))a@(c)" 0 EXTMATCH
-C "baaac" "*(@(a))a@(c)" NOMATCH EXTMATCH
-C "abcd" "?@(a|b)*@(c)d" 0 EXTMATCH
-C "abcd" "@(ab|a*@(b))*(c)d" 0 EXTMATCH
-C "acd" "@(ab|a*(b))*(c)d" 0 EXTMATCH
-C "abbcd" "@(ab|a*(b))*(c)d" 0 EXTMATCH
-C "effgz" "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH
-C "efgz" "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH
-C "egz" "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH
-C "egzefffgzbcdij" "*(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH
-C "egz" "@(b+(c)d|e+(f)g?|?(h)i@(j|k))" NOMATCH EXTMATCH
-C "ofoofo" "*(of+(o))" 0 EXTMATCH
-C "oxfoxoxfox" "*(oxf+(ox))" 0 EXTMATCH
-C "oxfoxfox" "*(oxf+(ox))" NOMATCH EXTMATCH
-C "ofoofo" "*(of+(o)|f)" 0 EXTMATCH
-C "foofoofo" "@(foo|f|fo)*(f|of+(o))" 0 EXTMATCH
-C "oofooofo" "*(of|oof+(o))" 0 EXTMATCH
-C "fffooofoooooffoofffooofff" "*(*(f)*(o))" 0 EXTMATCH
-C "fofoofoofofoo" "*(fo|foo)" 0 EXTMATCH
-C "foo" "!(x)" 0 EXTMATCH
-C "foo" "!(x)*" 0 EXTMATCH
-C "foo" "!(foo)" NOMATCH EXTMATCH
-C "foo" "!(foo)*" 0 EXTMATCH
-C "foobar" "!(foo)" 0 EXTMATCH
-C "foobar" "!(foo)*" 0 EXTMATCH
-C "moo.cow" "!(*.*).!(*.*)" 0 EXTMATCH
-C "mad.moo.cow" "!(*.*).!(*.*)" NOMATCH EXTMATCH
-C "mucca.pazza" "mu!(*(c))?.pa!(*(z))?" NOMATCH EXTMATCH
-C "fff" "!(f)" 0 EXTMATCH
-C "fff" "*(!(f))" 0 EXTMATCH
-C "fff" "+(!(f))" 0 EXTMATCH
-C "ooo" "!(f)" 0 EXTMATCH
-C "ooo" "*(!(f))" 0 EXTMATCH
-C "ooo" "+(!(f))" 0 EXTMATCH
-C "foo" "!(f)" 0 EXTMATCH
-C "foo" "*(!(f))" 0 EXTMATCH
-C "foo" "+(!(f))" 0 EXTMATCH
-C "f" "!(f)" NOMATCH EXTMATCH
-C "f" "*(!(f))" NOMATCH EXTMATCH
-C "f" "+(!(f))" NOMATCH EXTMATCH
-C "foot" "@(!(z*)|*x)" 0 EXTMATCH
-C "zoot" "@(!(z*)|*x)" NOMATCH EXTMATCH
-C "foox" "@(!(z*)|*x)" 0 EXTMATCH
-C "zoox" "@(!(z*)|*x)" 0 EXTMATCH
-C "foo" "*(!(foo)) 0 EXTMATCH
-C "foob" "!(foo)b*" NOMATCH EXTMATCH
-C "foobb" "!(foo)b*" 0 EXTMATCH
-C "[" "*([a[])" 0 EXTMATCH
-C "]" "*([]a[])" 0 EXTMATCH
-C "a" "*([]a[])" 0 EXTMATCH
-C "b" "*([!]a[])" 0 EXTMATCH
-C "[" "*([!]a[]|[[])" 0 EXTMATCH
-C "]" "*([!]a[]|[]])" 0 EXTMATCH
-C "[" "!([!]a[])" 0 EXTMATCH
-C "]" "!([!]a[])" 0 EXTMATCH
-C ")" "*([)])" 0 EXTMATCH
-C "*" "*([*(])" 0 EXTMATCH
-C "abcd" "*!(|a)cd" 0 EXTMATCH
-C "ab/.a" "+([abc])/*" NOMATCH EXTMATCH|PATHNAME|PERIOD
-C "" "" 0
-C "" "" 0 EXTMATCH
-C "" "*([abc])" 0 EXTMATCH
-C "" "?([abc])" 0 EXTMATCH
diff --git a/test/misc/tst-gnuglob.c b/test/misc/tst-gnuglob.c
deleted file mode 100644
index 53bc0cf..0000000
--- a/test/misc/tst-gnuglob.c
+++ /dev/null
@@ -1,446 +0,0 @@
-/* Test the GNU extensions in glob which allow the user to provide callbacks
- for the filesystem access functions.
- Copyright (C) 2001-2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2001.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <dirent.h>
-#include <errno.h>
-#include <error.h>
-#include <glob.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-
-
-// #define DEBUG
-#ifdef DEBUG
-# define PRINTF(fmt, args...) printf (fmt, ##args)
-#else
-# define PRINTF(fmt, args...)
-#endif
-
-
-#ifdef GLOB_ALTDIRFUNC
-static struct
-{
- const char *name;
- int level;
- int type;
-} filesystem[] =
-{
- { ".", 1, DT_DIR },
- { "..", 1, DT_DIR },
- { "file1lev1", 1, DT_REG },
- { "file2lev1", 1, DT_UNKNOWN },
- { "dir1lev1", 1, DT_UNKNOWN },
- { ".", 2, DT_DIR },
- { "..", 2, DT_DIR },
- { "file1lev2", 2, DT_REG },
- { "dir1lev2", 2, DT_DIR },
- { ".", 3, DT_DIR },
- { "..", 3, DT_DIR },
- { "dir2lev2", 2, DT_DIR },
- { ".", 3, DT_DIR },
- { "..", 3, DT_DIR },
- { ".foo", 3, DT_REG },
- { "dir1lev3", 3, DT_DIR },
- { ".", 4, DT_DIR },
- { "..", 4, DT_DIR },
- { "file1lev4", 4, DT_REG },
- { "file1lev3", 3, DT_REG },
- { "file2lev3", 3, DT_REG },
- { "file2lev2", 2, DT_REG },
- { "file3lev2", 2, DT_REG },
- { "dir3lev2", 2, DT_DIR },
- { ".", 3, DT_DIR },
- { "..", 3, DT_DIR },
- { "file3lev3", 3, DT_REG },
- { "file4lev3", 3, DT_REG },
- { "dir2lev1", 1, DT_DIR },
- { ".", 2, DT_DIR },
- { "..", 2, DT_DIR },
- { "dir1lev2", 2, DT_UNKNOWN },
- { ".", 3, DT_DIR },
- { "..", 3, DT_DIR },
- { ".foo", 3, DT_REG },
- { ".dir", 3, DT_DIR },
- { ".", 4, DT_DIR },
- { "..", 4, DT_DIR },
- { "hidden", 4, DT_REG }
-};
-#define nfiles (sizeof (filesystem) / sizeof (filesystem[0]))
-
-
-typedef struct
-{
- int level;
- int idx;
- struct dirent d;
- char room_for_dirent[NAME_MAX];
-} my_DIR;
-
-
-static long int
-find_file (const char *s)
-{
- int level = 1;
- long int idx = 0;
-
- if (strcmp (s, ".") == 0)
- return 0;
-
- if (s[0] == '.' && s[1] == '/')
- s += 2;
-
- while (*s != '\0')
- {
- char *endp = strchrnul (s, '/');
-
- PRINTF ("looking for %.*s, level %d\n", (int) (endp - s), s, level);
-
- while (idx < nfiles && filesystem[idx].level >= level)
- {
- if (filesystem[idx].level == level
- && memcmp (s, filesystem[idx].name, endp - s) == 0
- && filesystem[idx].name[endp - s] == '\0')
- break;
- ++idx;
- }
-
- if (idx == nfiles || filesystem[idx].level < level)
- {
- errno = ENOENT;
- return -1;
- }
-
- if (*endp == '\0')
- return idx + 1;
-
- if (filesystem[idx].type != DT_DIR
- && (idx + 1 >= nfiles
- || filesystem[idx].level >= filesystem[idx + 1].level))
- {
- errno = ENOTDIR;
- return -1;
- }
-
- ++idx;
-
- s = endp + 1;
- ++level;
- }
-
- errno = ENOENT;
- return -1;
-}
-
-
-static void *
-my_opendir (const char *s)
-{
- long int idx = find_file (s);
- my_DIR *dir;
-
-
- if (idx == -1)
- {
- PRINTF ("my_opendir(\"%s\") == NULL\n", s);
- return NULL;
- }
-
- dir = (my_DIR *) malloc (sizeof (my_DIR));
- if (dir == NULL)
- error (EXIT_FAILURE, errno, "cannot allocate directory handle");
-
- dir->level = filesystem[idx].level;
- dir->idx = idx;
-
- PRINTF ("my_opendir(\"%s\") == { level: %d, idx: %ld }\n",
- s, filesystem[idx].level, idx);
-
- return dir;
-}
-
-
-static struct dirent *
-my_readdir (void *gdir)
-{
- my_DIR *dir = gdir;
-
- if (dir->idx == -1)
- {
- PRINTF ("my_readdir ({ level: %d, idx: %ld }) = NULL\n",
- dir->level, (long int) dir->idx);
- return NULL;
- }
-
- while (dir->idx < nfiles && filesystem[dir->idx].level >
dir->level)
- ++dir->idx;
-
- if (dir->idx == nfiles || filesystem[dir->idx].level < dir->level)
- {
- dir->idx = -1;
- PRINTF ("my_readdir ({ level: %d, idx: %ld }) = NULL\n",
- dir->level, (long int) dir->idx);
- return NULL;
- }
-
- dir->d.d_ino = dir->idx;
-
-#ifdef _DIRENT_HAVE_D_TYPE
- dir->d.d_type = filesystem[dir->idx].type;
-#endif
-
- strcpy (dir->d.d_name, filesystem[dir->idx].name);
-
-#ifdef _DIRENT_HAVE_D_TYPE
- PRINTF ("my_readdir ({ level: %d, idx: %ld }) = { d_ino: %ld, d_type: %d, d_name:
\"%s\" }\n",
- dir->level, (long int) dir->idx, dir->d.d_ino, dir->d.d_type,
- dir->d.d_name);
-#else
- PRINTF ("my_readdir ({ level: %d, idx: %ld }) = { d_ino: %ld, d_name:
\"%s\" }\n",
- dir->level, (long int) dir->idx, dir->d.d_ino,
- dir->d.d_name);
-#endif
-
- ++dir->idx;
-
- return &dir->d;
-}
-
-
-static void
-my_closedir (void *dir)
-{
- PRINTF ("my_closedir ()\n");
- free (dir);
-}
-
-
-/* We use this function for lstat as well since we don't have any. */
-static int
-my_stat (const char *name, struct stat *st)
-{
- long int idx = find_file (name);
-
- if (idx == -1)
- {
- PRINTF ("my_stat (\"%s\", ...) = -1 (%s)\n", name, strerror
(errno));
- return -1;
- }
-
- memset (st, '\0', sizeof (*st));
-
- if (filesystem[idx].type == DT_UNKNOWN)
- st->st_mode = DTTOIF (idx + 1 < nfiles
- && filesystem[idx].level < filesystem[idx + 1].level
- ? DT_DIR : DT_REG) | 0777;
- else
- st->st_mode = DTTOIF (filesystem[idx].type) | 0777;
-
- PRINTF ("my_stat (\"%s\", { st_mode: %o }) = 0\n", name,
st->st_mode);
-
- return 0;
-}
-
-
-static const char *glob_errstring[] =
-{
- [GLOB_NOSPACE] = "out of memory",
- [GLOB_ABORTED] = "read error",
- [GLOB_NOMATCH] = "no matches found"
-};
-#define nglob_errstring (sizeof (glob_errstring) / sizeof (glob_errstring[0]))
-
-
-static const char *
-flagstr (int flags)
-{
- const char *strs[] =
- {
- "GLOB_ERR", "GLOB_MARK", "GLOB_NOSORT",
"GLOB_DOOFSS", "GLOB_NOCHECK",
- "GLOB_APPEND", "GLOB_NOESCAPE", "GLOB_PERIOD",
"GLOB_MAGCHAR",
- "GLOB_ALTDIRFUNC", "GLOB_BRACE", "GLOB_NOMAGIC",
"GLOB_TILDE",
- "GLOB_ONLYDIR", "GLOB_TILDECHECK"
- };
-#define nstrs (sizeof (strs) / sizeof (strs[0]))
- static char buf[100];
- char *cp = buf;
- int cnt;
-
- for (cnt = 0; cnt < nstrs; ++cnt)
- if (flags & (1 << cnt))
- {
- flags &= ~(1 << cnt);
- if (cp != buf)
- *cp++ = '|';
- cp = stpcpy (cp, strs[cnt]);
- }
-
- if (flags != 0)
- {
- if (cp != buf)
- *cp++ = '|';
- sprintf (cp, "%#x", flags);
- }
-
- return buf;
-}
-
-
-static int
-test_result (const char *fmt, int flags, glob_t *gl, const char *str[])
-{
- size_t cnt;
- int result = 0;
-
- printf ("results for glob (\"%s\", %s)\n", fmt, flagstr (flags));
- for (cnt = 0; cnt < gl->gl_pathc && str[cnt] != NULL; ++cnt)
- {
- int ok = strcmp (gl->gl_pathv[cnt], str[cnt]) == 0;
- const char *errstr = "";
-
- if (! ok)
- {
- size_t inner;
-
- for (inner = 0; str[inner] != NULL; ++inner)
- if (strcmp (gl->gl_pathv[cnt], str[inner]) == 0)
- break;
-
- if (str[inner] == NULL)
- errstr = ok ? "" : " *** WRONG";
- else
- errstr = ok ? "" : " * wrong position";
-
- result = 1;
- }
-
- printf (" %s%s\n", gl->gl_pathv[cnt], errstr);
- }
- puts ("");
-
- if (str[cnt] != NULL || cnt < gl->gl_pathc)
- {
- puts (" *** incorrect number of entries");
- result = 1;
- }
-
- return result;
-}
-
-
-int
-main (void)
-{
- glob_t gl;
- int errval;
- int result = 0;
- const char *fmt;
- int flags;
-
- memset (&gl, '\0', sizeof (gl));
-
- gl.gl_closedir = my_closedir;
- gl.gl_readdir = my_readdir;
- gl.gl_opendir = my_opendir;
- gl.gl_lstat = my_stat;
- gl.gl_stat = my_stat;
-
-#define test(a, b, c...) \
- fmt = a; \
- flags = b; \
- errval = glob (fmt, flags, NULL, &gl); \
- if (errval != 0) \
- { \
- printf ("glob (\"%s\", %s) failed: %s\n", fmt, flagstr
(flags), \
- errval >= 0 && errval < nglob_errstring \
- ? glob_errstring[errval] : "???"); \
- result = 1; \
- } \
- else \
- result |= test_result (fmt, flags, &gl, (const char *[]) { c, NULL })
-
- test ("*/*/*", GLOB_ALTDIRFUNC,
- "dir1lev1/dir2lev2/dir1lev3",
- "dir1lev1/dir2lev2/file1lev3",
- "dir1lev1/dir2lev2/file2lev3",
- "dir1lev1/dir3lev2/file3lev3",
- "dir1lev1/dir3lev2/file4lev3");
-
- test ("*/*/*", GLOB_ALTDIRFUNC | GLOB_PERIOD,
- "dir1lev1/dir1lev2/.",
- "dir1lev1/dir1lev2/..",
- "dir1lev1/dir2lev2/.",
- "dir1lev1/dir2lev2/..",
- "dir1lev1/dir2lev2/.foo",
- "dir1lev1/dir2lev2/dir1lev3",
- "dir1lev1/dir2lev2/file1lev3",
- "dir1lev1/dir2lev2/file2lev3",
- "dir1lev1/dir3lev2/.",
- "dir1lev1/dir3lev2/..",
- "dir1lev1/dir3lev2/file3lev3",
- "dir1lev1/dir3lev2/file4lev3",
- "dir2lev1/dir1lev2/.",
- "dir2lev1/dir1lev2/..",
- "dir2lev1/dir1lev2/.dir",
- "dir2lev1/dir1lev2/.foo");
-
- test ("*/*/.*", GLOB_ALTDIRFUNC,
- "dir1lev1/dir1lev2/.",
- "dir1lev1/dir1lev2/..",
- "dir1lev1/dir2lev2/.",
- "dir1lev1/dir2lev2/..",
- "dir1lev1/dir2lev2/.foo",
- "dir1lev1/dir3lev2/.",
- "dir1lev1/dir3lev2/..",
- "dir2lev1/dir1lev2/.",
- "dir2lev1/dir1lev2/..",
- "dir2lev1/dir1lev2/.dir",
- "dir2lev1/dir1lev2/.foo");
-
- test ("*1*/*2*/.*", GLOB_ALTDIRFUNC,
- "dir1lev1/dir1lev2/.",
- "dir1lev1/dir1lev2/..",
- "dir1lev1/dir2lev2/.",
- "dir1lev1/dir2lev2/..",
- "dir1lev1/dir2lev2/.foo",
- "dir1lev1/dir3lev2/.",
- "dir1lev1/dir3lev2/..",
- "dir2lev1/dir1lev2/.",
- "dir2lev1/dir1lev2/..",
- "dir2lev1/dir1lev2/.dir",
- "dir2lev1/dir1lev2/.foo");
-
- test ("*1*/*1*/.*", GLOB_ALTDIRFUNC,
- "dir1lev1/dir1lev2/.",
- "dir1lev1/dir1lev2/..",
- "dir2lev1/dir1lev2/.",
- "dir2lev1/dir1lev2/..",
- "dir2lev1/dir1lev2/.dir",
- "dir2lev1/dir1lev2/.foo");
-
- globfree (&gl);
-
- return result;
-}
-
-#else
-int main(void) { return 0; }
-#endif
diff --git a/test/misc/tst-inotify.c b/test/misc/tst-inotify.c
deleted file mode 100644
index f9f6830..0000000
--- a/test/misc/tst-inotify.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* vi: set sw=4 ts=4 sts=4: */
-/*
- * inotify test for uClibc
- * Copyright (C) 2012 by Kevin Cernekee <cernekee(a)gmail.com>
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <errno.h>
-#include <inttypes.h>
-#include <sys/inotify.h>
-#include <sys/fcntl.h>
-
-static int
-do_test(void)
-{
- int ifd, fd, ret, result = 0;
- struct inotify_event e;
- char tfile[] = "/tmp/inotify.XXXXXX";
-
- fd = mkstemp(tfile);
- close(fd);
-
- ifd = inotify_init1(IN_NONBLOCK);
- if (ifd < 0) {
- perror("inotify_init1()");
- result = 1;
- }
- if (inotify_add_watch(ifd, tfile, IN_DELETE_SELF) < 0) {
- perror("inotify_add_watch()");
- result = 1;
- }
-
- /* nonblocking inotify should return immediately with no events */
- ret = read(ifd, &e, sizeof(e));
- if (ret != -1 || errno != EAGAIN) {
- fprintf(stderr, "first read() returned %d\n", ret);
- result = 1;
- }
-
- /* generate an event */
- unlink(tfile);
-
- /* now check whether our event was seen */
- ret = read(ifd, &e, sizeof(e));
- if (ret != sizeof(e)) {
- fprintf(stderr, "second read() returned %d\n", ret);
- result = 1;
- }
-
- if (!(e.mask & IN_DELETE_SELF)) {
- fprintf(stderr, "incorrect event mask: %" PRIx32 "\n", e.mask);
- result = 1;
- }
-
- return result;
-}
-
-#define TIMEOUT 5
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/misc/tst-mkostemps.c b/test/misc/tst-mkostemps.c
deleted file mode 100644
index 272e747..0000000
--- a/test/misc/tst-mkostemps.c
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * Test application for mkstemp/mkstemps/mkostemp/mkostemps
- * Copyright (C) 2015 by Romain Naour <romain.naour(a)openwide.fr>
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <errno.h>
-
-#define assert(x) \
- if (!(x)) \
- { \
- fputs ("test failed: " #x "\n", stderr); \
- retval = 1; \
- goto the_end; \
- }
-
-int
-main (int argc, char *argv[])
-{
- char name[256];
- char name_suffix[256];
- FILE *fp = NULL;
- int retval = 0;
- int fd;
- int flags = O_RDONLY | O_CLOEXEC;
- struct stat sb_f1;
- struct stat sb_f2;
-
- /* mkstemp test */
- sprintf(name, "/tmp/%s-uClibc-test.XXXXXX", __FILE__);
-
- fd = mkstemp(name);
-
- fstat(fd, &sb_f1);
- assert ((sb_f1.st_mode & S_IFMT) == S_IFREG)
-
- stat(name, &sb_f2);
- assert ((sb_f2.st_mode & S_IFMT) == S_IFREG)
-
- assert (sb_f1.st_ino == sb_f2.st_ino)
-
- close(fd);
- unlink (name);
-
- /* mkstemps test */
- sprintf(name_suffix, "/tmp/%s-uClibc-test.XXXXXX.txt", __FILE__);
-
- fd = mkstemps(name_suffix, 4);
-
- fstat(fd, &sb_f1);
- assert ((sb_f1.st_mode & S_IFMT) == S_IFREG)
-
- stat(name_suffix, &sb_f2);
- assert ((sb_f2.st_mode & S_IFMT) == S_IFREG)
-
- assert (sb_f1.st_ino == sb_f2.st_ino)
-
- close(fd);
- unlink (name_suffix);
-
- /* mkostemp test */
- sprintf(name, "/tmp/%s-uClibc-test.XXXXXX", __FILE__);
-
- fd = mkostemp(name, flags);
-
- fstat(fd, &sb_f1);
- assert ((sb_f1.st_mode & S_IFMT) == S_IFREG)
-
- stat(name, &sb_f2);
- assert ((sb_f2.st_mode & S_IFMT) == S_IFREG)
-
- assert (sb_f1.st_ino == sb_f2.st_ino)
- assert (sb_f1.st_mode == sb_f2.st_mode)
-
- close(fd);
- unlink (name);
-
- /* mkostemps test */
- sprintf(name_suffix, "/tmp/%s-uClibc-test.XXXXXX.txt", __FILE__);
-
- fd = mkostemps(name_suffix, 4, flags);
-
- fstat(fd, &sb_f1);
- assert ((sb_f1.st_mode & S_IFMT) == S_IFREG)
-
- stat(name_suffix, &sb_f2);
- assert ((sb_f2.st_mode & S_IFMT) == S_IFREG)
-
- assert (sb_f1.st_ino == sb_f2.st_ino)
- assert (sb_f1.st_mode == sb_f2.st_mode)
-
- close(fd);
- unlink (name_suffix);
-
- /* suffixlen = 0 */
- sprintf(name_suffix, "/tmp/%s-uClibc-test.XXXXXX", __FILE__);
-
- fd = mkostemps(name_suffix, 0, flags);
-
- fstat(fd, &sb_f1);
- assert ((sb_f1.st_mode & S_IFMT) == S_IFREG)
-
- stat(name_suffix, &sb_f2);
- assert ((sb_f2.st_mode & S_IFMT) == S_IFREG)
-
- assert (sb_f1.st_ino == sb_f2.st_ino)
- assert (sb_f1.st_mode == sb_f2.st_mode)
-
- close(fd);
- unlink (name_suffix);
-
- /* stress tests */
-
- /* template len < 6 */
- sprintf(name, "XXXXX");
-
- fd = mkstemp(name);
-
- assert(fd == -1);
- assert(errno == EINVAL);
-
- /* suffixlen < 0 */
- sprintf(name_suffix, "/tmp/%s-uClibc-test.XXXXXX.txt", __FILE__);
-
- fd = mkostemps(name_suffix, -1, flags);
-
- assert(fd == -1);
- assert(errno == EINVAL);
-
- /* Missing one X */
- sprintf(name_suffix, "/tmp/%s-uClibc-test.XXXXX.txt", __FILE__);
-
- fd = mkostemps(name_suffix, 4, flags);
-
- assert(fd == -1);
- assert(errno == EINVAL);
-
- /* wrong suffixlen */
- sprintf(name_suffix, "/tmp/%s-uClibc-test.XXXXXX.txt", __FILE__);
-
- fd = mkostemps(name_suffix, 2, flags);
-
- assert(fd == -1);
- assert(errno == EINVAL);
-
-the_end:
- if (fp != NULL)
- assert (fclose (fp) == 0);
- unlink (name);
- unlink (name_suffix);
-
- return retval;
-}
diff --git a/test/misc/tst-nftw.c b/test/misc/tst-nftw.c
deleted file mode 100644
index 76d11eb..0000000
--- a/test/misc/tst-nftw.c
+++ /dev/null
@@ -1,57 +0,0 @@
-#define _XOPEN_SOURCE 500
-#define _GNU_SOURCE
-#include <ftw.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <unistd.h>
-
-int result = 0;
-
-static int process_one_entry(const char *fpath, const struct stat *sb,
- int typeflag, struct FTW *ftwbuf)
-{
-
- struct stat buf;
- const char *rel_path = fpath+ftwbuf->base;
-
- printf("Processing %s in working dir %s\n",
- rel_path, get_current_dir_name());
- if (stat(rel_path, &buf) < 0) {
- perror("Oops...relative path does not exist in current directory");
- result = 1;
- }
-}
-
-static int
-do_test(void)
-{
- char *path = "/tmp/stest_dir";
- char *subpath = "/tmp/stest_dir/d1";
- char *filepath = "/tmp/stest_dir/f1";
- char *filesubpath = "/tmp/stest_dir/d1/f2";
-
- if ((mkdir(path, 0700)) < 0)
- perror("Creating path");
- if ((mkdir(subpath, 0700)) < 0)
- perror("Creating subpath");
- if ((open(filepath, O_CREAT)) < 0)
- perror("Opening filepath");
- if ((open(filesubpath, O_CREAT)) < 0)
- perror("Opening filesubpath");
-
- if (nftw(path, process_one_entry, 100, (FTW_CHDIR|FTW_DEPTH|FTW_PHYS)) < 0)
- perror("ntfw");
-
- unlink(filesubpath);
- unlink(filepath);
- rmdir(subpath);
- rmdir(path);
-
- return result;
-}
-
-#define TIMEOUT 5
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/misc/tst-scandir.c b/test/misc/tst-scandir.c
deleted file mode 100644
index e1c72e3..0000000
--- a/test/misc/tst-scandir.c
+++ /dev/null
@@ -1,23 +0,0 @@
-#include <dirent.h>
-#include <errno.h>
-#include <stdio.h> /* perror() */
-#include <stdlib.h>
-
-static int skip_all(const struct dirent *dirbuf)
-{
- errno = EBADF;
- return 0;
-}
-
-int main(void)
-{
- struct dirent **namelist;
- int n;
-
- n = scandir(".", &namelist, skip_all, 0);
- if (n < 0) {
- perror("scandir");
- return EXIT_FAILURE;
- }
- return EXIT_SUCCESS;
-}
diff --git a/test/misc/tst-seekdir.c b/test/misc/tst-seekdir.c
deleted file mode 100644
index 7dd5d2e..0000000
--- a/test/misc/tst-seekdir.c
+++ /dev/null
@@ -1,79 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <dirent.h>
-#include <stdlib.h>
-
-int
-main (int argc, char *argv[])
-{
- DIR * dirp;
- long int save3 = 0;
- long int cur;
- int i = 0;
- int result = 0;
- struct dirent *dp;
- off_t save0, rewind_ret;
-
- dirp = opendir (".");
- if (dirp == NULL)
- {
- printf ("opendir failed: %s\n", strerror(errno));
- return 1;
- }
-
- save0 = telldir (dirp);
- if (save0 == -1)
- {
- printf ("telldir failed: %s\n", strerror(errno));
- result = 1;
- }
-
- for (dp = readdir (dirp); dp != NULL; dp = readdir (dirp))
- {
- /* save position 3 (after fourth entry) */
- if (i++ == 3)
- save3 = telldir (dirp);
-
- printf ("%s\n", dp->d_name);
-
- /* stop at 400 (just to make sure dirp->__offset and dirp->__size are
- scrambled */
- if (i == 400)
- break;
- }
-
- printf ("going back past 4-th entry...\n");
-
- /* go back to saved entry */
- seekdir (dirp, save3);
-
- /* Check whether telldir equals to save3 now. */
- cur = telldir (dirp);
- if (cur != save3)
- {
- printf ("seekdir (d, %ld); telldir (d) == %ld\n", save3, cur);
- result = 1;
- }
-
- /* print remaining files (3-last) */
- for (dp = readdir (dirp); dp != NULL; dp = readdir (dirp))
- printf ("%s\n", dp->d_name);
-
- /* Check rewinddir */
- rewinddir (dirp);
- rewind_ret = telldir (dirp);
- if (rewind_ret == -1)
- {
- printf ("telldir failed: %s\n", strerror(errno));
- result = 1;
- }
- else if (save0 != rewind_ret)
- {
- printf ("rewinddir didn't reset directory stream\n");
- result = 1;
- }
-
- closedir (dirp);
- return result;
-}
diff --git a/test/misc/tst-statfs.c b/test/misc/tst-statfs.c
deleted file mode 100644
index b8b4229..0000000
--- a/test/misc/tst-statfs.c
+++ /dev/null
@@ -1,31 +0,0 @@
-#include <sys/vfs.h>
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-int
-main(int argc, char* argv[])
-{
- struct statfs s;
- int ret = 0, i;
-
- for (i = 1; i < argc; i++) {
- if (statfs(argv[i], &s) != 0) {
- fprintf(stderr, "%s: %s: statfs failed. %s\n",
- *argv, argv[i], strerror(errno));
- exit(EXIT_FAILURE);
- }
- ++ret;
- printf("statfs %s:\n\tblocks=%lld\n\tblkfree=%lld\n\tbsize=%d\n",
- argv[i], s.f_blocks, s.f_bfree, s.f_bsize);
-#ifdef _STATFS_F_FRSIZE
- printf("\tfrsize=%lld\n", s.f_frsize);
-#elif defined __mips__
- printf("\tfrsize=mips, unsupported?\n");
-#else
-# error no _STATFS_F_FRSIZE
-#endif
- }
- exit(ret ? EXIT_SUCCESS : EXIT_FAILURE);
-}
diff --git a/test/misc/tst-statvfs.c b/test/misc/tst-statvfs.c
deleted file mode 100644
index 4b67719..0000000
--- a/test/misc/tst-statvfs.c
+++ /dev/null
@@ -1,26 +0,0 @@
-#include <sys/statvfs.h>
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-int
-main(int argc, char* argv[])
-{
- struct statvfs s;
- int i;
-
- for (i = 1; i < argc; i++) {
- if (statvfs(argv[i], &s) != 0) {
- fprintf(stderr, "%s: %s: statvfs failed. %s\n",
- *argv, argv[i], strerror(errno));
- exit(EXIT_FAILURE);
- }
- printf("statvfs %s:\n\tblocks=%lld\n\tblkfree=%lld\n\tbsize=%d\n",
- argv[i], s.f_blocks, s.f_bfree, s.f_bsize);
-#if 1 // def _STATFS_F_FRSIZE
- printf("\tfrsize=%lld\n", s.f_frsize);
-#endif
- }
- exit(EXIT_SUCCESS);
-}
diff --git a/test/misc/tst-utmp.c b/test/misc/tst-utmp.c
deleted file mode 100644
index 1b0333a..0000000
--- a/test/misc/tst-utmp.c
+++ /dev/null
@@ -1,423 +0,0 @@
-/* Tests for UTMP functions.
- Copyright (C) 1998, 2001-2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Mark Kettenis <kettenis(a)phys.uva.nl>nl>, 1998.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include <time.h>
-
-#ifdef UTMPX
-# include <utmpx.h>
-# define utmp utmpx
-# define utmpname utmpxname
-# define setutent setutxent
-# define getutent getutxent
-# define endutent endutxent
-# define getutline getutxline
-# define getutid getutxid
-# define pututline pututxline
-#else
-# include <utmp.h>
-#endif
-
-#ifndef _HAVE_UT_TYPE
-# define _HAVE_UT_TYPE 0
-#endif
-#ifndef _HAVE_UT_PID
-# define _HAVE_UT_PID 0
-#endif
-#ifndef _HAVE_UT_ID
-# define _HAVE_UT_ID 0
-#endif
-#ifndef _HAVE_UT_TV
-# define _HAVE_UT_TV 0
-#endif
-#ifndef _HAVE_UT_HOST
-# define _HAVE_UT_HOST 0
-#endif
-
-#if _HAVE_UT_TYPE || defined UTMPX
-
-/* Prototype for our test function. */
-static int do_test (int argc, char *argv[]);
-
-/* We have a preparation function. */
-static void do_prepare (int argc, char *argv[]);
-#define PREPARE do_prepare
-
-/* This defines the `main' function and some more. */
-#include "../test-skeleton.c"
-
-
-/* These are for the temporary file we generate. */
-char *name;
-int fd;
-
-static void
-do_prepare (int argc, char *argv[])
-{
- size_t name_len;
-
- name_len = strlen (test_dir);
- name = malloc (name_len + sizeof ("/utmpXXXXXX"));
- mempcpy (mempcpy (name, test_dir, name_len),
- "/utmpXXXXXX", sizeof ("/utmpXXXXXX"));
- add_temp_file (name);
-
- /* Open our test file. */
- fd = mkstemp (name);
- if (fd == -1) {
- fprintf (stderr, "cannot open test file `%s': ", name);
- perror (NULL);
- exit (EXIT_FAILURE);
- }
-}
-
-struct utmp entry[] =
-{
-#if _HAVE_UT_TV || defined UTMPX
-#define UT(a) .ut_tv = { .tv_sec = (a)}
-#else
-#define UT(a) .ut_time = (a)
-#endif
-
- { .ut_type = BOOT_TIME, .ut_pid = 1, UT(1000) },
- { .ut_type = RUN_LVL, .ut_pid = 1, UT(2000) },
- { .ut_type = INIT_PROCESS, .ut_pid = 5, .ut_id = "si", UT(3000) },
- { .ut_type = LOGIN_PROCESS, .ut_pid = 23, .ut_line = "tty1", .ut_id =
"1",
- .ut_user = "LOGIN", UT(4000) },
- { .ut_type = USER_PROCESS, .ut_pid = 24, .ut_line = "tty2", .ut_id =
"2",
- .ut_user = "albert", UT(8000) },
- { .ut_type = USER_PROCESS, .ut_pid = 196, .ut_line = "ttyp0", .ut_id =
"p0",
- .ut_user = "niels", UT(10000) },
- { .ut_type = DEAD_PROCESS, .ut_line = "ttyp1", .ut_id = "p1",
UT(16000) },
- { .ut_type = EMPTY },
- { .ut_type = EMPTY }
-};
-int num_entries = sizeof entry / sizeof (struct utmp);
-
-time_t entry_time = 20000;
-pid_t entry_pid = 234;
-
-static int
-do_init (void)
-{
- int n;
-
- setutent ();
-
- for (n = 0; n < num_entries; n++)
- {
- if (pututline (&entry[n]) == NULL)
- {
- perror ("cannot write UTMP entry");
- return 1;
- }
- }
-
- endutent ();
-
- return 0;
-}
-
-
-static int
-do_check (void)
-{
- struct utmp *ut;
- int n;
-
- setutent ();
-
- n = 0;
- while ((ut = getutent ()))
- {
- if (n < num_entries &&
- memcmp (ut, &entry[n], sizeof (struct utmp)))
- {
- fprintf (stderr, "UTMP entry does not match\n");
- return 1;
- }
-
- n++;
- }
-
- if (n != num_entries)
- {
- fprintf (stderr, "number of UTMP entries is incorrect\n");
- return 1;
- }
-
- endutent ();
-
- return 0;
-}
-
-static int
-simulate_login (const char *line, const char *user)
-{
- int n;
-
- for (n = 0; n < num_entries; n++)
- {
- if (strcmp (line, entry[n].ut_line) == 0 ||
- entry[n].ut_type == DEAD_PROCESS)
- {
- if (entry[n].ut_pid == DEAD_PROCESS)
- entry[n].ut_pid = (entry_pid += 27);
- entry[n].ut_type = USER_PROCESS;
- strncpy (entry[n].ut_user, user, sizeof (entry[n].ut_user));
-#if _HAVE_UT_TV - 0 || defined UTMPX
- entry[n].ut_tv.tv_sec = (entry_time += 1000);
-#else
- entry[n].ut_time = (entry_time += 1000);
-#endif
- setutent ();
-
- if (pututline (&entry[n]) == NULL)
- {
- perror ("cannot write UTMP entry");
- return 1;
- }
-
- endutent ();
-
- return 0;
- }
- }
-
- fprintf (stderr, "no entries available\n");
- return 1;
-}
-
-static int
-simulate_logout (const char *line)
-{
- int n;
-
- for (n = 0; n < num_entries; n++)
- {
- if (strcmp (line, entry[n].ut_line) == 0)
- {
- entry[n].ut_type = DEAD_PROCESS;
- strncpy (entry[n].ut_user, "", sizeof (entry[n].ut_user));
-#if _HAVE_UT_TV - 0 || defined UTMPX
- entry[n].ut_tv.tv_sec = (entry_time += 1000);
-#else
- entry[n].ut_time = (entry_time += 1000);
-#endif
- setutent ();
-
- if (pututline (&entry[n]) == NULL)
- {
- perror ("cannot write UTMP entry");
- return 1;
- }
-
- endutent ();
-
- return 0;
- }
- }
-
- fprintf (stderr, "no entry found for `%s'\n", line);
- return 1;
-}
-
-static int
-check_login (const char *line)
-{
- struct utmp *up;
- struct utmp ut;
- int n;
-
- setutent ();
-
- strcpy (ut.ut_line, line);
- up = getutline (&ut);
- if (up == NULL)
- {
- fprintf (stderr, "cannot get entry for line `%s': ", line);
- perror(NULL);
- return 1;
- }
-
- endutent ();
-
- for (n = 0; n < num_entries; n++)
- {
- if (strcmp (line, entry[n].ut_line) == 0)
- {
- if (memcmp (up, &entry[n], sizeof (struct utmp)))
- {
- fprintf (stderr, "UTMP entry does not match\n");
- return 1;
- }
-
- return 0;
- }
- }
-
- fprintf (stderr, "bogus entry for line `%s'\n", line);
- return 1;
-}
-
-static int
-check_logout (const char *line)
-{
- struct utmp ut;
-
- setutent ();
-
- strcpy (ut.ut_line, line);
- if (getutline (&ut) != NULL)
- {
- fprintf (stderr, "bogus login entry for `%s'\n", line);
- return 1;
- }
-
- endutent ();
-
- return 0;
-}
-
-static int
-check_id (const char *id)
-{
- struct utmp *up;
- struct utmp ut;
- int n;
-
- setutent ();
-
- ut.ut_type = USER_PROCESS;
- strcpy (ut.ut_id, id);
- up = getutid (&ut);
- if (up == NULL)
- {
- fprintf (stderr, "cannot get entry for ID `%s': ", id);
- perror (NULL);
- return 1;
- }
-
- endutent ();
-
- for (n = 0; n < num_entries; n++)
- {
- if (strcmp (id, entry[n].ut_id) == 0)
- {
- if (memcmp (up, &entry[n], sizeof (struct utmp)))
- {
- fprintf (stderr, "UTMP entry does not match\n");
- return 1;
- }
-
- return 0;
- }
- }
-
- fprintf (stderr, "bogus entry for ID `%s'\n", id);
- return 1;
-}
-
-static int
-check_type (int type)
-{
- struct utmp *up;
- struct utmp ut;
- int n;
-
- setutent ();
-
- ut.ut_type = type;
- up = getutid (&ut);
- if (up == NULL)
- {
- fprintf (stderr, "cannot get entry for type `%d': ", type);
- perror (NULL);
- return 1;
- }
-
- endutent ();
-
- for (n = 0; n < num_entries; n++)
- {
- if (type == entry[n].ut_type)
- {
- if (memcmp (up, &entry[n], sizeof (struct utmp)))
- {
- fprintf (stderr, "UTMP entry does not match\n");
- return 1;
- }
-
- return 0;
- }
- }
-
- fprintf (stderr, "bogus entry for type `%d'\n", type);
- return 1;
-}
-
-static int
-do_test (int argc, char *argv[])
-{
- int result = 0;
-
- utmpname (name);
-
- result |= do_init ();
- result |= do_check ();
-
- result |= simulate_login ("tty1", "erwin");
- result |= do_check ();
-
- result |= simulate_login ("ttyp1", "paul");
- result |= do_check ();
-
- result |= simulate_logout ("tty2");
- result |= do_check ();
-
- result |= simulate_logout ("ttyp0");
- result |= do_check ();
-
- result |= simulate_login ("ttyp2", "richard");
- result |= do_check ();
-
- result |= check_login ("tty1");
- result |= check_logout ("ttyp0");
- result |= check_id ("p1");
- result |= check_id ("2");
- result |= check_id ("si");
- result |= check_type (BOOT_TIME);
- result |= check_type (RUN_LVL);
-
- return result;
-}
-
-#else
-
-/* No field 'ut_type' in struct utmp. */
-int
-main ()
-{
- return 0;
-}
-
-#endif
diff --git a/test/misc/tst-utmpx.c b/test/misc/tst-utmpx.c
deleted file mode 100644
index edb5551..0000000
--- a/test/misc/tst-utmpx.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define UTMPX
-#include "tst-utmp.c"
diff --git a/test/mmap/Makefile b/test/mmap/Makefile
deleted file mode 100644
index 89e7195..0000000
--- a/test/mmap/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc mmap tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/mmap/Makefile.in b/test/mmap/Makefile.in
deleted file mode 100644
index 581f3b0..0000000
--- a/test/mmap/Makefile.in
+++ /dev/null
@@ -1,2 +0,0 @@
-# uClibc mmap tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
diff --git a/test/mmap/mmap.c b/test/mmap/mmap.c
deleted file mode 100644
index 8b29737..0000000
--- a/test/mmap/mmap.c
+++ /dev/null
@@ -1,73 +0,0 @@
-
-/* The mmap test is useful, since syscalls with 6 arguments
- * (as mmap) are done differently on various architectures.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-#include <unistd.h>
-#include <sys/mman.h>
-
-#define SIZEOF_ARRAY(type) (sizeof(type)/sizeof(*type))
-
-struct mmap_test {
- void *ret;
- int err;
- struct {
- void *start;
- size_t length;
- int prot;
- int flags;
- int fd;
- off_t offset;
- } args;
-};
-
-struct mmap_test tests[] = {
- [0] {
- .err = 0,
- .args.start = NULL,
- .args.length = 4096,
- .args.prot = PROT_READ|PROT_WRITE,
- .args.flags = MAP_PRIVATE|MAP_ANONYMOUS,
- .args.fd = 0,
- .args.offset = 0
- },
-};
-
-#define err(fmt, args...) \
- do { \
- fprintf(stderr, fmt "\n" , ## args); \
- exit(1); \
- } while (0)
-#define errp(fmt, args...) err(fmt ": %s" , ## args , strerror(errno))
-
-int main(int argc, char **argv)
-{
- int i;
- struct mmap_test *t;
-
- for (i=0; i<SIZEOF_ARRAY(tests); ++i) {
- t = tests + i;
-
- errno = 0;
- t->ret = mmap(t->args.start, t->args.length, t->args.prot,
- t->args.flags, t->args.fd, t->args.offset);
-
- if (t->err) {
- if (t->ret != MAP_FAILED)
- err("mmap test %i should have failed, but gave us %p", i, t->ret);
- else if (t->err != errno)
- errp("mmap test %i failed, but gave us wrong errno (got %i instead of %i)",
i, errno, t->err);
- } else {
- if (t->ret == MAP_FAILED)
- errp("mmap test %i failed", i);
- else if (munmap(t->ret, t->args.length) != 0)
- errp("munmap test %i failed", i);
- }
- }
-
- exit(0);
-}
diff --git a/test/mmap/mmap2.c b/test/mmap/mmap2.c
deleted file mode 100644
index 1d5f5db..0000000
--- a/test/mmap/mmap2.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* When trying to map /dev/mem with offset 0xFFFFF000 on the ARM platform, mmap
- * returns -EOVERFLOW.
- *
- * Since off_t is defined as a long int and the sign bit is set in the address,
- * the shift operation shifts in ones instead of zeroes
- * from the left. This results the offset sent to the kernel function becomes
- * 0xFFFFFFFF instead of 0x000FFFFF with MMAP2_PAGE_SHIFT set to 12.
- */
-
-#include <unistd.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <sys/mman.h>
-
-#define FATAL do { fprintf(stderr, "Error at line %d, file %s (%d) [%s]\n", \
- __LINE__, __FILE__, errno, strerror(errno)); exit(1); } while(0)
-
-#define MAP_SIZE sysconf(_SC_PAGESIZE)
-#define MAP_MASK (MAP_SIZE - 1)
-
-int main(int argc, char **argv) {
- void* map_base = 0;
- int fd;
- off_t target = 0xfffff000;
- if((fd = open("/dev/mem", O_RDWR | O_SYNC)) == -1) {
- /* skip test for non-root users */
- if (errno == EACCES)
- return 0;
- FATAL;
- }
- printf("/dev/mem opened.\n");
- fflush(stdout);
-
- /* Map one page */
- map_base = mmap(0, MAP_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED,
- fd, target & ~MAP_MASK);
- if(map_base == (void *) -1) FATAL;
- printf("Memory mapped at address %p.\n", map_base);
- fflush(stdout);
- if(munmap(map_base, MAP_SIZE) == -1) FATAL;
- close(fd);
- return 0;
-}
diff --git a/test/mmap/mmap64.c b/test/mmap/mmap64.c
deleted file mode 100644
index 87165fe..0000000
--- a/test/mmap/mmap64.c
+++ /dev/null
@@ -1,29 +0,0 @@
-
-/* The mmap test is useful, since syscalls with 6 arguments
- * (as mmap) are done differently on various architectures.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <features.h>
-
-int main(int argc, char **argv)
-{
-#ifdef __UCLIBC_HAS_LFS__
- void *ptr;
-
- ptr = mmap64(NULL, 4096, PROT_READ|PROT_WRITE,
- MAP_PRIVATE|MAP_ANONYMOUS, 0, 0);
-
- if (ptr == MAP_FAILED) {
- perror("mmap");
- exit(1);
- }
- printf("mmap returned %p\n", ptr);
- exit(0);
-#else
- exit(0);
-#endif
-}
diff --git a/test/mmap/tst-mmap-eofsync.c b/test/mmap/tst-mmap-eofsync.c
deleted file mode 100644
index e8ef727..0000000
--- a/test/mmap/tst-mmap-eofsync.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/* Test program for synchronization of stdio state with file after EOF. */
-
-#include <stdio.h>
-#include <error.h>
-#include <errno.h>
-
-static void do_prepare (void);
-#define PREPARE(argc, argv) do_prepare ()
-static int do_test (void);
-#define TEST_FUNCTION do_test ()
-#include <test-skeleton.c>
-
-static char *temp_file;
-static int temp_fd;
-
-static char text1[] = "Line the first\n";
-static char text2[] = "Line the second\n";
-
-static void
-do_prepare (void)
-{
- temp_fd = create_temp_file ("tst-mmap-eofsync.", &temp_file);
- if (temp_fd == -1)
- error (1, errno, "cannot create temporary file");
- else
- {
- ssize_t cc = write (temp_fd, text1, sizeof text1 - 1);
- if (cc != sizeof text1 - 1)
- error (1, errno, "cannot write to temporary file");
- }
-}
-
-static int
-do_test (void)
-{
- FILE *f;
- char buf[128];
- int result = 0;
- int c;
-
- f = fopen (temp_file, "rm");
- if (f == NULL)
- {
- perror (temp_file);
- return 1;
- }
-
- if (fgets (buf, sizeof buf, f) == NULL)
- {
- perror ("fgets");
- return 1;
- }
-
- if (strcmp (buf, text1))
- {
- printf ("read \"%s\", expected \"%s\"\n", buf,
text1);
- result = 1;
- }
-
- printf ("feof = %d, ferror = %d immediately after fgets\n",
- feof (f), ferror (f));
-
-#if 1
- c = fgetc (f);
- if (c == EOF)
- printf ("fgetc -> EOF (feof = %d, ferror = %d)\n",
- feof (f), ferror (f));
- else
- {
- printf ("fgetc returned %o (feof = %d, ferror = %d)\n",
- c, feof (f), ferror (f));
- result = 1;
- }
-#endif
-
- c = write (temp_fd, text2, sizeof text2 - 1);
- if (c == sizeof text2 - 1)
- printf ("wrote more to file\n");
- else
- {
- printf ("wrote %d != %zd (%m)\n", c, sizeof text2 - 1);
- result = 1;
- }
-
- if (fgets (buf, sizeof buf, f) == NULL)
- {
- printf ("second fgets fails: feof = %d, ferror = %d (%m)\n",
- feof (f), ferror (f));
- clearerr (f);
- if (fgets (buf, sizeof buf, f) == NULL)
- {
- printf ("retry fgets fails: feof = %d, ferror = %d (%m)\n",
- feof (f), ferror (f));
- result = 1;
- }
- }
- if (result == 0 && strcmp (buf, text2))
- {
- printf ("second time read \"%s\", expected \"%s\"\n",
buf, text2);
- result = 1;
- }
-
- fclose (f);
-
- return result;
-}
diff --git a/test/mmap/tst-mmap-fflushsync.c b/test/mmap/tst-mmap-fflushsync.c
deleted file mode 100644
index 24ae33c..0000000
--- a/test/mmap/tst-mmap-fflushsync.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/* Test program for synchronization of stdio state with file after fflush. */
-
-#include <stdio.h>
-#include <error.h>
-#include <errno.h>
-
-static void do_prepare (void);
-#define PREPARE(argc, argv) do_prepare ()
-static int do_test (void);
-#define TEST_FUNCTION do_test ()
-#include <test-skeleton.c>
-
-static char *temp_file;
-static int temp_fd;
-
-static char text1[] = "Line the first\n";
-static char text2[] = "Line the second\n";
-
-static void
-do_prepare (void)
-{
- temp_fd = create_temp_file ("tst-mmap-eofsync.", &temp_file);
- if (temp_fd == -1)
- error (1, errno, "cannot create temporary file");
- else
- {
- ssize_t cc = write (temp_fd, text1, sizeof text1 - 1);
- if (cc != sizeof text1 - 1)
- error (1, errno, "cannot write to temporary file");
- }
-}
-
-static int
-do_test (void)
-{
- FILE *f;
- char buf[128];
- int result = 0;
- int c;
-
- f = fopen (temp_file, "rm");
- if (f == NULL)
- {
- perror (temp_file);
- return 1;
- }
-
- if (fgets (buf, sizeof buf, f) == NULL)
- {
- perror ("fgets");
- return 1;
- }
-
- if (strcmp (buf, text1))
- {
- printf ("read \"%s\", expected \"%s\"\n", buf,
text1);
- result = 1;
- }
-
- printf ("feof = %d, ferror = %d immediately after fgets\n",
- feof (f), ferror (f));
-
- if (fflush (f) != 0)
- {
- printf ("fflush failed! %m\n");
- result = 1;
- }
-
- c = write (temp_fd, text2, sizeof text2 - 1);
- if (c == sizeof text2 - 1)
- printf ("wrote more to file\n");
- else
- {
- printf ("wrote %d != %zd (%m)\n", c, sizeof text2 - 1);
- result = 1;
- }
-
- if (fgets (buf, sizeof buf, f) == NULL)
- {
- printf ("second fgets fails: feof = %d, ferror = %d (%m)\n",
- feof (f), ferror (f));
- clearerr (f);
- if (fgets (buf, sizeof buf, f) == NULL)
- {
- printf ("retry fgets fails: feof = %d, ferror = %d (%m)\n",
- feof (f), ferror (f));
- result = 1;
- }
- }
- if (result == 0 && strcmp (buf, text2))
- {
- printf ("second time read \"%s\", expected \"%s\"\n",
buf, text2);
- result = 1;
- }
-
- fclose (f);
-
- return result;
-}
diff --git a/test/mmap/tst-mmap-offend.c b/test/mmap/tst-mmap-offend.c
deleted file mode 100644
index 19732e6..0000000
--- a/test/mmap/tst-mmap-offend.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/* Test case for bug with mmap stdio read past end of file. */
-
-#include <stdio.h>
-#include <error.h>
-#include <errno.h>
-
-static void do_prepare (void);
-#define PREPARE(argc, argv) do_prepare ()
-static int do_test (void);
-#define TEST_FUNCTION do_test ()
-#include <test-skeleton.c>
-
-static char *temp_file;
-
-static const char text1[] = "hello\n";
-
-static void
-do_prepare (void)
-{
- int temp_fd = create_temp_file ("tst-mmap-offend.", &temp_file);
- if (temp_fd == -1)
- error (1, errno, "cannot create temporary file");
- else
- {
- ssize_t cc = write (temp_fd, text1, sizeof text1 - 1);
- if (cc != sizeof text1 - 1)
- error (1, errno, "cannot write to temporary file");
- }
- close (temp_fd);
-}
-
-static int
-do_test (void)
-{
- unsigned char buffer[8192];
- int result = 0;
- FILE *f = fopen (temp_file, "rm");
- size_t cc;
-
- if (f == NULL)
- {
- perror (temp_file);
- return 1;
- }
-
- cc = fread (buffer, 1, sizeof (buffer), f);
- printf ("fread %zu: \"%.*s\"\n", cc, (int) cc, buffer);
- if (cc != sizeof text1 - 1)
- {
- perror ("fread");
- result = 1;
- }
-
- if (fseek (f, 2048, SEEK_SET) != 0)
- {
- perror ("fseek off end");
- result = 1;
- }
-
- if (fread (buffer, 1, sizeof (buffer), f) != 0
- || ferror (f) || !feof (f))
- {
- printf ("after fread error %d eof %d\n",
- ferror (f), feof (f));
- result = 1;
- }
-
- printf ("ftell %ld\n", ftell (f));
-
- if (fseek (f, 0, SEEK_SET) != 0)
- {
- perror ("fseek rewind");
- result = 1;
- }
-
- cc = fread (buffer, 1, sizeof (buffer), f);
- printf ("fread after rewind %zu: \"%.*s\"\n", cc, (int) cc,
buffer);
- if (cc != sizeof text1 - 1)
- {
- perror ("fread after rewind");
- result = 1;
- }
-
- fclose (f);
- return result;
-}
diff --git a/test/mmap/tst-mmap-setvbuf.c b/test/mmap/tst-mmap-setvbuf.c
deleted file mode 100644
index 33d60b7..0000000
--- a/test/mmap/tst-mmap-setvbuf.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Test setvbuf on readonly fopen (using mmap stdio).
- Copyright (C) 2002-2016 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-int main (void)
-{
- char name[] = "/tmp/tst-mmap-setvbuf.XXXXXX";
- char buf[4096];
- const char * const test = "Let's see if mmap stdio works with
setvbuf.\n";
- char temp[strlen (test) + 1];
- int fd = mkstemp (name);
- FILE *f;
-
- if (fd == -1)
- {
- printf ("%u: cannot open temporary file: %m\n", __LINE__);
- exit (1);
- }
-
- f = fdopen (fd, "w");
- if (f == NULL)
- {
- printf ("%u: cannot fdopen temporary file: %m\n", __LINE__);
- exit (1);
- }
-
- fputs (test, f);
- fclose (f);
-
- f = fopen (name, "rm");
- if (f == NULL)
- {
- printf ("%u: cannot fopen temporary file: %m\n", __LINE__);
- exit (1);
- }
-
- if (setvbuf (f, buf, _IOFBF, sizeof buf))
- {
- printf ("%u: setvbuf failed: %m\n", __LINE__);
- exit (1);
- }
-
- if (fread (temp, 1, strlen (test), f) != strlen (test))
- {
- printf ("%u: couldn't read the file back: %m\n", __LINE__);
- exit (1);
- }
- temp [strlen (test)] = '\0';
-
- if (strcmp (test, temp))
- {
- printf ("%u: read different string than was written:\n%s%s",
- __LINE__, test, temp);
- exit (1);
- }
-
- fclose (f);
-
- unlink (name);
- exit (0);
-}
diff --git a/test/nptl/Makefile b/test/nptl/Makefile
deleted file mode 100644
index c22b635..0000000
--- a/test/nptl/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc NPTL tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/nptl/Makefile.in b/test/nptl/Makefile.in
deleted file mode 100644
index 9a3b104..0000000
--- a/test/nptl/Makefile.in
+++ /dev/null
@@ -1,242 +0,0 @@
-# uClibc NPTL tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-TESTS := tst-align tst-align2 tst-atfork1 tst-attr1 tst-attr2 tst-attr3 \
- tst-barrier1 tst-barrier2 tst-barrier3 tst-barrier4 tst-basic1 \
- tst-basic2 tst-basic3 tst-basic4 tst-basic5 tst-basic6 \
- tst-cancel1 tst-cancel2 tst-cancel3 tst-cancel6 tst-cancel7 \
- tst-cancel8 tst-cancel9 tst-cancel10 tst-cancel11 tst-cancel12 \
- tst-cancel13 tst-cancel14 tst-cancel15 tst-cancel16 \
- tst-cancel19 tst-cancel20 tst-cancel21 tst-cancel22 \
- tst-cleanup0 tst-cleanup1 tst-cleanup2 tst-cleanup3 \
- tst-cleanup4 tst-clock1 tst-clock2 tst-cond1 tst-cond2 \
- tst-cond3 tst-cond4 tst-cond5 tst-cond6 tst-cond7 tst-cond8 \
- tst-cond9 tst-cond10 tst-cond11 tst-cond12 tst-cond13 \
- tst-cond14 tst-cond15 tst-cond16 tst-cond17 tst-cond18 \
- tst-cond19 tst-cond20 tst-cond21 tst-detach1 tst-eintr1 \
- tst-eintr2 tst-eintr3 tst-eintr4 tst-eintr5 tst-exec2 tst-exec3 \
- tst-exec4 tst-exit1 tst-exit2 tst-exit3 tst-flock1 tst-flock2 \
- tst-fork1 tst-fork2 tst-fork3 tst-fork4 tst-initializers1 \
- tst-join1 tst-join2 tst-join3 tst-join4 tst-join5 tst-key1 \
- tst-key2 tst-key3 tst-key4 tst-kill1 tst-kill2 tst-kill3 \
- tst-kill4 tst-kill5 tst-kill6 tst-mutex1 tst-mutex2 tst-mutex3 \
- tst-mutex4 tst-mutex5 tst-mutex6 tst-mutex7 tst-mutex8 \
- tst-mutex9 tst-mutex5a tst-mutex7a tst-once1 tst-once2 \
- tst-once3 tst-once4 tst-popen1 tst-raise1 tst-rwlock1 \
- tst-rwlock2 tst-rwlock3 tst-rwlock4 tst-rwlock5 tst-rwlock6 \
- tst-rwlock7 tst-rwlock8 tst-rwlock9 tst-rwlock10 tst-rwlock11 \
- tst-rwlock12 tst-rwlock13 tst-rwlock14 tst-sched1 tst-sem1 \
- tst-sem2 tst-sem3 tst-sem4 tst-sem5 tst-sem6 tst-sem7 tst-sem8 \
- tst-sem9 tst-signal1 tst-signal2 tst-signal3 tst-signal4 \
- tst-signal5 tst-signal6 tst-spin1 tst-spin2 tst-spin3 \
- tst-stack1 tst-stack2 tst-stdio1 tst-stdio2 tst-sysconf \
- tst-tls1 tst-tls2 tst-tls3 tst-tls4 tst-tls5 tst-tsd1 tst-tsd2 \
- tst-tsd3 tst-tsd4 tst-tsd5 tst-umask1 tst-cond-deadlock \
- tst-align3 tst-cancel4 tst-cancel5 tst-cancel18 tst-cancel23 \
- tst-cancel25 tst-cancelx2 tst-cancelx3 tst-cancelx4 tst-cancelx6 \
- tst-cancelx7 tst-cancelx8 tst-cancelx9 tst-cancelx10 tst-cancelx11 \
- tst-cancelx12 tst-cancelx13 tst-cancelx14 tst-cancelx15 tst-cancelx16 \
- tst-cancelx18 tst-cancelx20 tst-cancelx21 tst-cleanupx0 tst-cleanupx1 \
- tst-cleanupx2 tst-cleanupx3 tst-cleanupx4 tst-cond22 tst-cond23 \
- tst-getpid1 tst-getpid2 tst-getpid3 tst-join6 tst-tsd6 \
- tst-oddstacklimit tst-oncex3 tst-oncex4 tst-rwlock2a \
- tst-basic7 tst-signal7 tst-vfork1x tst-vfork2x tst-sem10 tst-sem11 \
- tst-sem12 tst-typesizes tst-initializers1-c89 tst-initializers1-c99 \
- tst-initializers1-gnu89 tst-initializers1-gnu99 \
- tst-atfork2
-
-#
-# These are for the RT library and POSIX timers.
-#
-TESTS += tst-clock tst-clock_nanosleep tst-cpuclock1 tst-cpuclock2 \
- tst-cputimer1 tst-cputimer2 tst-cputimer3 tst-mqueue1 \
- tst-mqueue2 tst-mqueue3 tst-mqueue4 tst-mqueue5 tst-mqueue6 \
- tst-mqueue7 tst-mqueue8 tst-mqueue9 tst-timer2 tst-timer3 \
- tst-timer4 tst-timer5
-
-ifeq ($(UCLIBC_HAS_OBSOLETE_BSD_SIGNAL),)
-TESTS_DISABLED += tst-exec2 tst-exec3 tst-exec4
-endif
-
-ifeq ($(UCLIBC_SUSV4_LEGACY),)
-TESTS_DISABLED += tst-basic5 tst-cancel4 tst-cancel5 tst-cancelx4
-endif
-
-GLIBC_TESTS_DISABLED := tst-eintr1_glibc tst-eintr2_glibc \
- tst-eintr3_glibc tst-eintr4_glibc tst-eintr5_glibc \
- tst-tls1_glibc tst-tls2_glibc
-
-
-ifeq ($(HAVE_SHARED),)
-TESTS_DISABLED += tst-tls3 tst-tls4 tst-tls5 tst-dlsym1 tst-fini1 \
- tst-unload
-else
-GLIBC_TESTS_DISABLED += tst-tls3_glibc tst-tls4_glibc tst-tls5_glibc
-endif
-
-EXTRA_CFLAGS := -DNOT_IN_libc=1 -D_LIBC -D__USE_GNU -std=gnu99 \
- $(PTINC) \
- -I$(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH) \
- -I$(top_srcdir)libc/sysdeps/linux \
- -I$(top_builddir)include \
- -include $(top_builddir)include/libc-symbols.h
-
-ifeq ($(TARGET_ARCH),i386)
-CFLAGS_tst-align := -malign-double -mpreferred-stack-boundary=4
-endif
-ifeq ($(TARGET_ARCH),i686)
-CFLAGS_tst-align := -malign-double -mpreferred-stack-boundary=4 -msse
-endif
-CFLAGS_tst-cleanup4aux.o := -W
-CFLAGS_tst-initializers1 := -W -Werror
-CFLAGS_tst-tls3mod.so := -fPIC -DPIC -DSHARED -shared -DNOT_IN_libc
-CFLAGS_tst-tls4moda.so := -fPIC -DPIC -DSHARED -shared -DNOT_IN_libc
-CFLAGS_tst-tls4modb.so := -fPIC -DPIC -DSHARED -shared -DNOT_IN_libc
-CFLAGS_tst-tls5mod.so := -fPIC -DPIC -DSHARED -shared -DNOT_IN_libc
-CFLAGS_tst-tls5moda.so := -fPIC -DPIC -DSHARED -shared -DNOT_IN_libc
-CFLAGS_tst-tls5modb.so := -fPIC -DPIC -DSHARED -shared -DNOT_IN_libc
-CFLAGS_tst-tls5modc.so := -fPIC -DPIC -DSHARED -shared -DNOT_IN_libc
-CFLAGS_tst-tls5modd.so := -fPIC -DPIC -DSHARED -shared -DNOT_IN_libc
-CFLAGS_tst-tls5mode.so := -fPIC -DPIC -DSHARED -shared -DNOT_IN_libc
-CFLAGS_tst-tls5modf.so := -fPIC -DPIC -DSHARED -shared -DNOT_IN_libc
-
-CFLAGS_tst-fini1mod.so := -fPIC -DPIC -DSHARED -shared -DNOT_IN_libc
-LDFLAGS_tst-cond11 = -lrt
-LDFLAGS_tst-cond19 = -lrt
-
-LDFLAGS_tst-cancelx2 = -lc
-LDFLAGS_tst-cancelx3 = -lc
-LDFLAGS_tst-cancelx4 = -lc
-LDFLAGS_tst-cancelx6 = -lc
-LDFLAGS_tst-cancelx6 = -lc
-LDFLAGS_tst-cancelx7 = -lc
-LDFLAGS_tst-cancelx8 = -lc
-LDFLAGS_tst-cancelx9 = -lc
-LDFLAGS_tst-cancelx10 = -lc
-LDFLAGS_tst-cancelx11 = -lc
-LDFLAGS_tst-cancelx12 = -lc
-LDFLAGS_tst-cancelx13 = -lc
-LDFLAGS_tst-cancelx14 = -lc
-LDFLAGS_tst-cancelx15 = -lc
-LDFLAGS_tst-cancelx16 = -lc
-LDFLAGS_tst-cancelx18 = -lc
-LDFLAGS_tst-cancelx20 = -lc
-LDFLAGS_tst-cancelx21 = -lc
-LDFLAGS_tst-cleanupx0 = -lc
-LDFLAGS_tst-cleanupx1 = -lc
-LDFLAGS_tst-cleanupx2 = -lc
-LDFLAGS_tst-cleanupx3 = -lc
-LDFLAGS_tst-oncex3 = -lc
-LDFLAGS_tst-oncex4 = -lc
-LDFLAGS_tst-rwlock14 = -lrt
-LDFLAGS_tst-fini1 = -Wl,-rpath=./ tst-fini1mod.so
-LDFLAGS_tst-fini1mod.so = -Wl,-soname=tst-fini1mod.so
-LDFLAGS_tst-unload = -ldl
-LDFLAGS_tst-cancel5 := -lpthread
-LDFLAGS_tst-cancel23 := -lc -lpthread
-LDFLAGS_tst-vfork1x := -lc -lpthread
-LDFLAGS_tst-vfork2x := -lc -lpthread
-
-CFLAGS_tst-cancelx2 += -fexceptions
-CFLAGS_tst-cancelx3 += -fexceptions
-CFLAGS_tst-cancelx4 += -fexceptions
-CFLAGS_tst-cancelx6 += -fexceptions
-CFLAGS_tst-cancelx7 += -fexceptions
-CFLAGS_tst-cancelx8 += -fexceptions
-CFLAGS_tst-cancelx9 += -fexceptions
-CFLAGS_tst-cancelx10 += -fexceptions
-CFLAGS_tst-cancelx11 += -fexceptions
-CFLAGS_tst-cancelx12 += -fexceptions
-CFLAGS_tst-cancelx13 += -fexceptions
-CFLAGS_tst-cancelx14 += -fexceptions
-CFLAGS_tst-cancelx15 += -fexceptions
-CFLAGS_tst-cancelx16 += -fexceptions
-CFLAGS_tst-cancelx18 += -fexceptions
-CFLAGS_tst-cancelx20 += -fexceptions -fasynchronous-unwind-tables
-CFLAGS_tst-cancelx21 += -fexceptions -fasynchronous-unwind-tables
-CFLAGS_tst-cleanupx0 += -fexceptions -fasynchronous-unwind-tables
-CFLAGS_tst-cleanupx1 += -fexceptions -fasynchronous-unwind-tables
-CFLAGS_tst-cleanupx2 += -fexceptions
-CFLAGS_tst-cleanupx3 += -fexceptions
-
-CFLAGS_tst-oncex3 += -fexceptions
-CFLAGS_tst-oncex4 += -fexceptions
-CFLAGS_tst-align += $(stack-align-test-flags)
-CFLAGS_tst-align3 += $(stack-align-test-flags)
-CFLAGS_tst-initializers1 = -W -Wall -Werror
-CFLAGS_tst-sem11 += -fexceptions -fasynchronous-unwind-tables
-CFLAGS_tst-sem12 += -fexceptions -fasynchronous-unwind-tables
-CFLAGS_tst-initializers1 = -W -Wall -Werror
-CFLAGS_tst-initializers1-c89 = $(CFLAGS-tst-initializers1) -std=c89
-CFLAGS_tst-initializers1-c99 = $(CFLAGS-tst-initializers1) -std=c99
-CFLAGS_tst-initializers1-gnu89 = $(CFLAGS-tst-initializers1) -std=gnu89
-CFLAGS_tst-initializers1-gnu99 = $(CFLAGS-tst-initializers1) -std=gnu99
-
-EXTRA_LDFLAGS = $(if $(findstring -lpthread,$(LDFLAGS_$@)),,-lpthread)
-
-LDFLAGS_tst-atfork2 := -ldl -rdynamic
-LDFLAGS_tst-atfork2mod.so := -shared -static-libgcc -lpthread
-LDFLAGS_tst-cleanup4 := tst-cleanup4aux.o
-LDFLAGS_tst-cleanupx4 := tst-cleanup4aux.o
-LDFLAGS_tst-clock2 := -lrt
-LDFLAGS_tst-cond11 := -lrt
-LDFLAGS_tst-cond19 := -lrt
-LDFLAGS_tst-rwlock14 := -lrt
-LDFLAGS_tst-tls3 := -ldl -rdynamic
-LDFLAGS_tst-tls4 := -ldl
-LDFLAGS_tst-tls5 := tst-tls5mod.so
-LDFLAGS_tst-clock := -lrt
-LDFLAGS_tst-clock_nanosleep := -lrt
-LDFLAGS_tst-cpuclock1 := -lrt
-LDFLAGS_tst-cpuclock2 := -lrt -lpthread
-LDFLAGS_tst-cputimer1 := -lrt -lpthread
-LDFLAGS_tst-cputimer2 := -lrt -lpthread
-LDFLAGS_tst-cputimer3 := -lrt -lpthread
-LDFLAGS_tst-mqueue1 := -lrt
-LDFLAGS_tst-mqueue2 := -lrt
-LDFLAGS_tst-mqueue3 := -lrt -lpthread
-LDFLAGS_tst-mqueue4 := -lrt
-LDFLAGS_tst-mqueue5 := -lrt -lpthread
-LDFLAGS_tst-mqueue6 := -lrt -lpthread
-LDFLAGS_tst-mqueue7 := -lrt
-LDFLAGS_tst-mqueue8 := -lrt
-LDFLAGS_tst-mqueue9 := -lrt
-LDFLAGS_tst-timer2 := -lrt -lpthread
-LDFLAGS_tst-timer3 := -lrt -lpthread
-LDFLAGS_tst-timer4 := -lrt -lpthread
-LDFLAGS_tst-timer5 := -lrt -lpthread
-LDFLAGS_tst-dlsym1 := -ldl -rdynamic
-LDFLAGS_tst-tls3mod.so := -shared -static-libgcc -lpthread
-LDFLAGS_tst-tls4moda.so := -shared -static-libgcc
-LDFLAGS_tst-tls4modb.so := -shared -static-libgcc
-LDFLAGS_tst-tls5mod.so := -shared -static-libgcc -Wl,-soname,tst-tls5mod.so
-LDFLAGS_tst-tls5moda.so := -shared -static-libgcc
-LDFLAGS_tst-tls5modb.so := -shared -static-libgcc
-LDFLAGS_tst-tls5modc.so := -shared -static-libgcc
-LDFLAGS_tst-tls5modd.so := -shared -static-libgcc
-LDFLAGS_tst-tls5mode.so := -shared -static-libgcc
-LDFLAGS_tst-tls5modf.so := -shared -static-libgcc
-LDFLAGS_tst-cleanupx4 := tst-cleanup4aux.o
-
-#
-# Special case
-#
-tst-cleanup4aux.o:
- $(Q)$(CC) $(CFLAGS) $(CFLAGS_$@) $(EXTRA_CFLAGS) -c tst-cleanup4aux.c -o $@
-
-tst-cleanup4: tst-cleanup4aux.o
-tst-tls3: tst-tls3mod.so
-tst-tls4: tst-tls4moda.so tst-tls4modb.so
-tst-tls5: tst-tls5mod.so
-
-tst-cleanupx4 : tst-cleanup4aux.o
-tst-fini1: tst-fini1mod.so
-
-tst-atfork2: tst-atfork2mod.so
-tst-atfork2_glibc: tst-atfork2mod.so.glibc
-
-OPTS_tst-cancel7 = -c ./tst-cancel7
-OPTS_tst-mqueue7 = -- ./tst-mqueue7
-OPTS_tst-exec4 = ./tst-exec4
-
-WRAPPER := env LD_LIBRARY_PATH="$$PWD:.:$(LD_LIBRARY_PATH)" TIMEOUTFACTOR=10
diff --git a/test/nptl/eintr.c b/test/nptl/eintr.c
deleted file mode 100644
index d6425b5..0000000
--- a/test/nptl/eintr.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <signal.h>
-#include <unistd.h>
-
-
-static int the_sig;
-
-
-static void
-eintr_handler (int sig)
-{
- if (sig != the_sig)
- {
- write (STDOUT_FILENO, "eintr_handler: signal number wrong\n", 35);
- _exit (1);
- }
- write (STDOUT_FILENO, ".", 1);
-}
-
-
-static void *
-eintr_source (void *arg)
-{
- struct timespec ts = { .tv_sec = 0, .tv_nsec = 500000 };
-
- if (arg == NULL)
- {
- sigset_t ss;
- sigemptyset (&ss);
- sigaddset (&ss, the_sig);
- pthread_sigmask (SIG_BLOCK, &ss, NULL);
- }
-
- while (1)
- {
- if (arg != NULL)
- pthread_kill (*(pthread_t *) arg, the_sig);
- else
- kill (getpid (), the_sig);
-
- nanosleep (&ts, NULL);
- }
-
- /* NOTREACHED */
- return NULL;
-}
-
-
-static void
-setup_eintr (int sig, pthread_t *thp)
-{
- struct sigaction sa;
- sigemptyset (&sa.sa_mask);
- sa.sa_flags = 0;
- sa.sa_handler = eintr_handler;
- if (sigaction (sig, &sa, NULL) != 0)
- {
- puts ("setup_eintr: sigaction failed");
- exit (1);
- }
- the_sig = sig;
-
- /* Create the thread which will fire off the signals. */
- pthread_t th;
- if (pthread_create (&th, NULL, eintr_source, thp) != 0)
- {
- puts ("setup_eintr: pthread_create failed");
- exit (1);
- }
-}
diff --git a/test/nptl/tst-align.c b/test/nptl/tst-align.c
deleted file mode 100644
index df66b38..0000000
--- a/test/nptl/tst-align.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdbool.h>
-#include <stdint.h>
-#include <stdio.h>
-#include "tst-stack-align.h"
-
-static void *
-tf (void *arg)
-{
- bool ok = true;
-
- puts ("in thread");
-
- if (TEST_STACK_ALIGN ())
- ok = false;
-
- return ok ? NULL : (void *) -1l;
-}
-
-static int
-do_test (void)
-{
- bool ok = true;
-
- puts ("in main");
-
- if (TEST_STACK_ALIGN ())
- ok = false;
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("create failed");
- return 1;
- }
-
- void *res;
- if (pthread_join (th, &res) != 0)
- {
- puts ("join failed");
- return 1;
- }
-
- if (res != NULL)
- ok = false;
-
- return ok ? 0 : 1;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-align2.c b/test/nptl/tst-align2.c
deleted file mode 100644
index 7d3a099..0000000
--- a/test/nptl/tst-align2.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/* Copyright (C) 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sched.h>
-#include <stdbool.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/wait.h>
-#include <unistd.h>
-#include "tst-stack-align.h"
-
-static int
-f (void *arg)
-{
- bool ok = true;
-
- if (TEST_STACK_ALIGN ())
- ok = false;
-
- return ok ? 0 : 1;
-}
-
-static int
-do_test (void)
-{
- bool ok = true;
-
- puts ("in main");
-
- if (TEST_STACK_ALIGN ())
- ok = false;
-
-#ifdef __ia64__
- extern int __clone2 (int (*__fn) (void *__arg), void *__child_stack_base,
- size_t __child_stack_size, int __flags,
- void *__arg, ...);
- char st[256 * 1024];
- pid_t p = __clone2 (f, st, sizeof (st), 0, 0);
-#else
- char st[128 * 1024];
- pid_t p = clone (f, st + sizeof (st), 0, 0);
-#endif
- if (p == -1)
- {
- printf("clone failed: %m\n");
- return 1;
- }
-
- int e;
- if (waitpid (p, &e, __WCLONE) != p)
- {
- puts ("waitpid failed");
- kill (p, SIGKILL);
- return 1;
- }
- if (!WIFEXITED (e))
- {
- if (WIFSIGNALED (e))
- printf ("died from signal %s\n", strsignal (WTERMSIG (e)));
- else
- puts ("did not terminate correctly");
- return 1;
- }
- if (WEXITSTATUS (e) != 0)
- ok = false;
-
- return ok ? 0 : 1;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-align3.c b/test/nptl/tst-align3.c
deleted file mode 100644
index fb0a8e4..0000000
--- a/test/nptl/tst-align3.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright (C) 2005 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2005.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdbool.h>
-#include <stdint.h>
-#include <stdio.h>
-#include "tst-stack-align.h"
-
-static bool ok = true;
-static pthread_once_t once = PTHREAD_ONCE_INIT;
-
-static void
-once_test (void)
-{
- puts ("in once_test");
-
- if (TEST_STACK_ALIGN ())
- ok = false;
-}
-
-static int
-do_test (void)
-{
- puts ("in main");
-
- if (TEST_STACK_ALIGN ())
- ok = false;
-
- if (pthread_once (&once, once_test))
- {
- puts ("pthread once failed");
- return 1;
- }
-
- return ok ? 0 : 1;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-atfork1.c b/test/nptl/tst-atfork1.c
deleted file mode 100644
index 1298937..0000000
--- a/test/nptl/tst-atfork1.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/wait.h>
-
-
-static int val;
-
-
-static void
-prepare1 (void)
-{
- val *= 2;
-}
-
-static void
-prepare2 (void)
-{
- ++val;
-}
-
-static void
-parent1 (void)
-{
- val += 4;
-}
-
-static void
-parent2 (void)
-{
- val *= 4;
-}
-
-static void
-child1 (void)
-{
- val += 8;
-}
-
-static void
-child2 (void)
-{
- val *= 8;
-}
-
-
-static int
-do_test (void)
-{
- pid_t pid;
- int status = 0;
-
- if (pthread_atfork (prepare1, parent1, child1) != 0)
- {
- puts ("1st atfork failed");
- exit (1);
- }
- if (pthread_atfork (prepare2, parent2, child2) != 0)
- {
- puts ("2nd atfork failed");
- exit (1);
- }
-
- pid = fork ();
- if (pid == -1)
- {
- puts ("fork failed");
- exit (1);
- }
-
- if (pid != 0)
- {
- /* Parent. */
- if (val != 24)
- {
- printf ("expected val=%d, got %d\n", 24, val);
- exit (1);
- }
-
- if (TEMP_FAILURE_RETRY (waitpid (pid, &status, 0)) != pid)
- {
- puts ("waitpid failed");
- exit (1);
- }
- }
- else
- {
- /* Child. */
- if (val != 80)
- {
- printf ("expected val=%d, got %d\n", 80, val);
- exit (2);
- }
- }
-
- return status;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-atfork2.c b/test/nptl/tst-atfork2.c
deleted file mode 100644
index 594f56e..0000000
--- a/test/nptl/tst-atfork2.c
+++ /dev/null
@@ -1,156 +0,0 @@
-/* Copyright (C) 2003-2016 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <dlfcn.h>
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/wait.h>
-
-
-/* Must be exported. */
-int val;
-
-static void
-prepare (void)
-{
- val *= 2;
-}
-
-static void
-parent (void)
-{
- val += 4;
-}
-
-static void
-child (void)
-{
- val += 8;
-}
-
-
-static int
-do_test (void)
-{
-
- if (pthread_atfork (prepare, parent, child) != 0)
- {
- puts ("do_test: atfork failed");
- exit (1);
- }
-
- void *h = dlopen ("tst-atfork2mod.so", RTLD_LAZY);
- if (h == NULL)
- {
- printf ("dlopen failed: %s\n", dlerror ());
- exit (1);
- }
-
- /* First trial of fork. */
- pid_t pid = fork ();
- if (pid == -1)
- {
- puts ("1st fork failed");
- exit (1);
- }
-
- if (pid == 0)
- {
- /* Child. */
- if (val != 80)
- {
- printf ("1st: expected val=%d, got %d\n", 80, val);
- exit (2);
- }
-
- exit (0);
- }
-
- /* Parent. */
- if (val != 24)
- {
- printf ("1st: expected val=%d, got %d\n", 24, val);
- exit (1);
- }
-
- int status;
- if (TEMP_FAILURE_RETRY (waitpid (pid, &status, 0)) != pid)
- {
- puts ("1st waitpid failed");
- exit (1);
- }
-
- if (status != 0)
- exit (status);
-
- puts ("unloading now");
-
- /* Unload the module. */
- if (dlclose (h) != 0)
- {
- puts ("dlclose failed");
- exit (1);
- }
-
- puts ("2nd fork");
-
- /* Second fork trial. */
- val = 1;
- pid = fork ();
- if (pid == -1)
- {
- puts ("2nd fork failed");
- exit (1);
- }
-
- if (pid == 0)
- {
- /* Child. */
- if (val != 10)
- {
- printf ("2nd: expected val=%d, got %d\n", 10, val);
- exit (3);
- }
-
- exit (0);
- }
-
- /* Parent. */
- if (val != 6)
- {
- printf ("2nd: expected val=%d, got %d\n", 6, val);
- exit (1);
- }
-
- if (TEMP_FAILURE_RETRY (waitpid (pid, &status, 0)) != pid)
- {
- puts ("2nd waitpid failed");
- exit (1);
- }
-
- if (status != 0)
- exit (status);
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-atfork2mod.c b/test/nptl/tst-atfork2mod.c
deleted file mode 100644
index 7c592b4..0000000
--- a/test/nptl/tst-atfork2mod.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Copyright (C) 2003-2016 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-extern int val;
-
-
-static void
-prepare (void)
-{
- ++val;
-}
-
-static void
-parent (void)
-{
- val *= 4;
-}
-
-static void
-child (void)
-{
- val *= 8;
-}
-
-static void
-__attribute__ ((constructor))
-init (void)
-{
- extern void *__dso_handle;
- printf ("dsohandle = %p\n", __dso_handle);
-
- if (pthread_atfork (prepare, parent, child) != 0)
- {
- puts ("init: atfork failed");
- exit (1);
- }
-}
diff --git a/test/nptl/tst-attr1.c b/test/nptl/tst-attr1.c
deleted file mode 100644
index 987f87f..0000000
--- a/test/nptl/tst-attr1.c
+++ /dev/null
@@ -1,305 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-int
-do_test (void)
-{
- int i;
- pthread_attr_t a;
-
- if (pthread_attr_init (&a) != 0)
- {
- puts ("attr_init failed");
- exit (1);
- }
-
- pthread_mutexattr_t ma;
-
- if (pthread_mutexattr_init (&ma) != 0)
- {
- puts ("mutexattr_init failed");
- exit (1);
- }
-
- pthread_rwlockattr_t rwa;
-
- if (pthread_rwlockattr_init (&rwa) != 0)
- {
- puts ("rwlockattr_init failed");
- exit (1);
- }
-
- /* XXX Remove if default value is clear. */
- pthread_attr_setinheritsched (&a, PTHREAD_INHERIT_SCHED);
- pthread_attr_setschedpolicy (&a, SCHED_OTHER);
- pthread_attr_setscope (&a, PTHREAD_SCOPE_SYSTEM);
-
- for (i = 0; i < 10000; ++i)
- {
- long int r = random ();
-
- if (r != PTHREAD_CREATE_DETACHED && r != PTHREAD_CREATE_JOINABLE)
- {
- int e = pthread_attr_setdetachstate (&a, r);
-
- if (e == 0)
- {
- printf ("attr_setdetachstate with value %ld succeeded\n", r);
- exit (1);
- }
- if (e != EINVAL)
- {
- puts ("attr_setdetachstate didn't return EINVAL");
- exit (1);
- }
-
- int s;
- if (pthread_attr_getdetachstate (&a, &s) != 0)
- {
- puts ("attr_getdetachstate failed");
- exit (1);
- }
-
- if (s != PTHREAD_CREATE_JOINABLE)
- {
- printf ("\
-detach state changed to %d by invalid setdetachstate call\n", s);
- exit (1);
- }
- }
-
- if (r != PTHREAD_INHERIT_SCHED && r != PTHREAD_EXPLICIT_SCHED)
- {
- int e = pthread_attr_setinheritsched (&a, r);
-
- if (e == 0)
- {
- printf ("attr_setinheritsched with value %ld succeeded\n", r);
- exit (1);
- }
- if (e != EINVAL)
- {
- puts ("attr_setinheritsched didn't return EINVAL");
- exit (1);
- }
-
- int s;
- if (pthread_attr_getinheritsched (&a, &s) != 0)
- {
- puts ("attr_getinheritsched failed");
- exit (1);
- }
-
- if (s != PTHREAD_INHERIT_SCHED)
- {
- printf ("\
-inheritsched changed to %d by invalid setinheritsched call\n", s);
- exit (1);
- }
- }
-
- if (r != SCHED_OTHER && r != SCHED_RR && r != SCHED_FIFO)
- {
- int e = pthread_attr_setschedpolicy (&a, r);
-
- if (e == 0)
- {
- printf ("attr_setschedpolicy with value %ld succeeded\n", r);
- exit (1);
- }
- if (e != EINVAL)
- {
- puts ("attr_setschedpolicy didn't return EINVAL");
- exit (1);
- }
-
- int s;
- if (pthread_attr_getschedpolicy (&a, &s) != 0)
- {
- puts ("attr_getschedpolicy failed");
- exit (1);
- }
-
- if (s != SCHED_OTHER)
- {
- printf ("\
-schedpolicy changed to %d by invalid setschedpolicy call\n", s);
- exit (1);
- }
- }
-
- if (r != PTHREAD_SCOPE_SYSTEM && r != PTHREAD_SCOPE_PROCESS)
- {
- int e = pthread_attr_setscope (&a, r);
-
- if (e == 0)
- {
- printf ("attr_setscope with value %ld succeeded\n", r);
- exit (1);
- }
- if (e != EINVAL)
- {
- puts ("attr_setscope didn't return EINVAL");
- exit (1);
- }
-
- int s;
- if (pthread_attr_getscope (&a, &s) != 0)
- {
- puts ("attr_getscope failed");
- exit (1);
- }
-
- if (s != PTHREAD_SCOPE_SYSTEM)
- {
- printf ("\
-contentionscope changed to %d by invalid setscope call\n", s);
- exit (1);
- }
- }
-
- if (r != PTHREAD_PROCESS_PRIVATE && r != PTHREAD_PROCESS_SHARED)
- {
- int e = pthread_mutexattr_setpshared (&ma, r);
-
- if (e == 0)
- {
- printf ("mutexattr_setpshared with value %ld succeeded\n", r);
- exit (1);
- }
- if (e != EINVAL)
- {
- puts ("mutexattr_setpshared didn't return EINVAL");
- exit (1);
- }
-
- int s;
- if (pthread_mutexattr_getpshared (&ma, &s) != 0)
- {
- puts ("mutexattr_getpshared failed");
- exit (1);
- }
-
- if (s != PTHREAD_PROCESS_PRIVATE)
- {
- printf ("\
-pshared changed to %d by invalid mutexattr_setpshared call\n", s);
- exit (1);
- }
-
- e = pthread_rwlockattr_setpshared (&rwa, r);
-
- if (e == 0)
- {
- printf ("rwlockattr_setpshared with value %ld succeeded\n", r);
- exit (1);
- }
- if (e != EINVAL)
- {
- puts ("rwlockattr_setpshared didn't return EINVAL");
- exit (1);
- }
-
- if (pthread_rwlockattr_getpshared (&rwa, &s) != 0)
- {
- puts ("rwlockattr_getpshared failed");
- exit (1);
- }
-
- if (s != PTHREAD_PROCESS_PRIVATE)
- {
- printf ("\
-pshared changed to %d by invalid rwlockattr_setpshared call\n", s);
- exit (1);
- }
- }
-
- if (r != PTHREAD_CANCEL_ENABLE && r != PTHREAD_CANCEL_DISABLE)
- {
- int e = pthread_setcancelstate (r, NULL);
-
- if (e == 0)
- {
- printf ("setcancelstate with value %ld succeeded\n", r);
- exit (1);
- }
-
- if (e != EINVAL)
- {
- puts ("setcancelstate didn't return EINVAL");
- exit (1);
- }
-
- int s;
- if (pthread_setcancelstate (PTHREAD_CANCEL_ENABLE, &s) != 0)
- {
- puts ("setcancelstate failed for PTHREAD_CANCEL_ENABLE");
- exit (1);
- }
-
- if (s != PTHREAD_CANCEL_ENABLE)
- {
- puts ("invalid setcancelstate changed state");
- exit (1);
- }
- }
-
- if (r != PTHREAD_CANCEL_DEFERRED && r != PTHREAD_CANCEL_ASYNCHRONOUS)
- {
- int e = pthread_setcanceltype (r, NULL);
-
- if (e == 0)
- {
- printf ("setcanceltype with value %ld succeeded\n", r);
- exit (1);
- }
-
- if (e != EINVAL)
- {
- puts ("setcanceltype didn't return EINVAL");
- exit (1);
- }
-
- int s;
- if (pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, &s) != 0)
- {
- puts ("setcanceltype failed for PTHREAD_CANCEL_DEFERRED");
- exit (1);
- }
-
- if (s != PTHREAD_CANCEL_DEFERRED)
- {
- puts ("invalid setcanceltype changed state");
- exit (1);
- }
- }
- }
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-attr2.c b/test/nptl/tst-attr2.c
deleted file mode 100644
index e8f9cc9..0000000
--- a/test/nptl/tst-attr2.c
+++ /dev/null
@@ -1,316 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-int
-do_test (void)
-{
- pthread_attr_t a;
-
- if (pthread_attr_init (&a) != 0)
- {
- puts ("attr_init failed");
- exit (1);
- }
-
- /* Check default value of detach state. */
- int s;
- if (pthread_attr_getdetachstate (&a, &s) != 0)
- {
- puts ("1st attr_getdestachstate failed");
- exit (1);
- }
- if (s != PTHREAD_CREATE_JOINABLE)
- {
- printf ("\
-default detach state wrong: %d, expected %d (PTHREAD_CREATE_JOINABLE)\n",
- s, PTHREAD_CREATE_JOINABLE);
- exit (1);
- }
-
- int e = pthread_attr_setdetachstate (&a, PTHREAD_CREATE_DETACHED);
- if (e != 0)
- {
- puts ("1st attr_setdetachstate failed");
- exit (1);
- }
- if (pthread_attr_getdetachstate (&a, &s) != 0)
- {
- puts ("2nd attr_getdestachstate failed");
- exit (1);
- }
- if (s != PTHREAD_CREATE_DETACHED)
- {
- puts ("PTHREAD_CREATE_DETACHED set, but not given back");
- exit (1);
- }
-
- e = pthread_attr_setdetachstate (&a, PTHREAD_CREATE_JOINABLE);
- if (e != 0)
- {
- puts ("2nd attr_setdetachstate failed");
- exit (1);
- }
- if (pthread_attr_getdetachstate (&a, &s) != 0)
- {
- puts ("3rd attr_getdestachstate failed");
- exit (1);
- }
- if (s != PTHREAD_CREATE_JOINABLE)
- {
- puts ("PTHREAD_CREATE_JOINABLE set, but not given back");
- exit (1);
- }
-
-
- size_t g;
- if (pthread_attr_getguardsize (&a, &g) != 0)
- {
- puts ("1st attr_getguardsize failed");
- exit (1);
- }
- if (g != (size_t) sysconf (_SC_PAGESIZE))
- {
- printf ("default guardsize %zu, expected %ld (PAGESIZE)\n",
- g, sysconf (_SC_PAGESIZE));
- exit (1);
- }
-
- e = pthread_attr_setguardsize (&a, 0);
- if (e != 0)
- {
- puts ("1st attr_setguardsize failed");
- exit (1);
- }
- if (pthread_attr_getguardsize (&a, &g) != 0)
- {
- puts ("2nd attr_getguardsize failed");
- exit (1);
- }
- if (g != 0)
- {
- printf ("guardsize set to zero but %zu returned\n", g);
- exit (1);
- }
-
- e = pthread_attr_setguardsize (&a, 1);
- if (e != 0)
- {
- puts ("2nd attr_setguardsize failed");
- exit (1);
- }
- if (pthread_attr_getguardsize (&a, &g) != 0)
- {
- puts ("3rd attr_getguardsize failed");
- exit (1);
- }
- if (g != 1)
- {
- printf ("guardsize set to 1 but %zu returned\n", g);
- exit (1);
- }
-
-
- if (pthread_attr_getinheritsched (&a, &s) != 0)
- {
- puts ("1st attr_getinheritsched failed");
- exit (1);
- }
- /* XXX What is the correct default value. */
- if (s != PTHREAD_INHERIT_SCHED && s != PTHREAD_EXPLICIT_SCHED)
- {
- puts ("incorrect default value for inheritsched");
- exit (1);
- }
-
- e = pthread_attr_setinheritsched (&a, PTHREAD_EXPLICIT_SCHED);
- if (e != 0)
- {
- puts ("1st attr_setinheritsched failed");
- exit (1);
- }
- if (pthread_attr_getinheritsched (&a, &s) != 0)
- {
- puts ("2nd attr_getinheritsched failed");
- exit (1);
- }
- if (s != PTHREAD_EXPLICIT_SCHED)
- {
- printf ("inheritsched set to PTHREAD_EXPLICIT_SCHED, but got %d\n", s);
- exit (1);
- }
-
- e = pthread_attr_setinheritsched (&a, PTHREAD_INHERIT_SCHED);
- if (e != 0)
- {
- puts ("2nd attr_setinheritsched failed");
- exit (1);
- }
- if (pthread_attr_getinheritsched (&a, &s) != 0)
- {
- puts ("3rd attr_getinheritsched failed");
- exit (1);
- }
- if (s != PTHREAD_INHERIT_SCHED)
- {
- printf ("inheritsched set to PTHREAD_INHERIT_SCHED, but got %d\n", s);
- exit (1);
- }
-
-
- if (pthread_attr_getschedpolicy (&a, &s) != 0)
- {
- puts ("1st attr_getschedpolicy failed");
- exit (1);
- }
- /* XXX What is the correct default value. */
- if (s != SCHED_OTHER && s != SCHED_FIFO && s != SCHED_RR)
- {
- puts ("incorrect default value for schedpolicy");
- exit (1);
- }
-
- e = pthread_attr_setschedpolicy (&a, SCHED_RR);
- if (e != 0)
- {
- puts ("1st attr_setschedpolicy failed");
- exit (1);
- }
- if (pthread_attr_getschedpolicy (&a, &s) != 0)
- {
- puts ("2nd attr_getschedpolicy failed");
- exit (1);
- }
- if (s != SCHED_RR)
- {
- printf ("schedpolicy set to SCHED_RR, but got %d\n", s);
- exit (1);
- }
-
- e = pthread_attr_setschedpolicy (&a, SCHED_FIFO);
- if (e != 0)
- {
- puts ("2nd attr_setschedpolicy failed");
- exit (1);
- }
- if (pthread_attr_getschedpolicy (&a, &s) != 0)
- {
- puts ("3rd attr_getschedpolicy failed");
- exit (1);
- }
- if (s != SCHED_FIFO)
- {
- printf ("schedpolicy set to SCHED_FIFO, but got %d\n", s);
- exit (1);
- }
-
- e = pthread_attr_setschedpolicy (&a, SCHED_OTHER);
- if (e != 0)
- {
- puts ("3rd attr_setschedpolicy failed");
- exit (1);
- }
- if (pthread_attr_getschedpolicy (&a, &s) != 0)
- {
- puts ("4th attr_getschedpolicy failed");
- exit (1);
- }
- if (s != SCHED_OTHER)
- {
- printf ("schedpolicy set to SCHED_OTHER, but got %d\n", s);
- exit (1);
- }
-
-
- if (pthread_attr_getscope (&a, &s) != 0)
- {
- puts ("1st attr_getscope failed");
- exit (1);
- }
- /* XXX What is the correct default value. */
- if (s != PTHREAD_SCOPE_SYSTEM && s != PTHREAD_SCOPE_PROCESS)
- {
- puts ("incorrect default value for contentionscope");
- exit (1);
- }
-
- e = pthread_attr_setscope (&a, PTHREAD_SCOPE_PROCESS);
- if (e != ENOTSUP)
- {
- if (e != 0)
- {
- puts ("1st attr_setscope failed");
- exit (1);
- }
- if (pthread_attr_getscope (&a, &s) != 0)
- {
- puts ("2nd attr_getscope failed");
- exit (1);
- }
- if (s != PTHREAD_SCOPE_PROCESS)
- {
- printf ("\
-contentionscope set to PTHREAD_SCOPE_PROCESS, but got %d\n", s);
- exit (1);
- }
- }
-
- e = pthread_attr_setscope (&a, PTHREAD_SCOPE_SYSTEM);
- if (e != 0)
- {
- puts ("2nd attr_setscope failed");
- exit (1);
- }
- if (pthread_attr_getscope (&a, &s) != 0)
- {
- puts ("3rd attr_getscope failed");
- exit (1);
- }
- if (s != PTHREAD_SCOPE_SYSTEM)
- {
- printf ("contentionscope set to PTHREAD_SCOPE_SYSTEM, but got %d\n", s);
- exit (1);
- }
-
- char buf[1];
- e = pthread_attr_setstack (&a, buf, 1);
- if (e != EINVAL)
- {
- puts ("setstack with size 1 did not produce EINVAL");
- exit (1);
- }
-
- e = pthread_attr_setstacksize (&a, 1);
- if (e != EINVAL)
- {
- puts ("setstacksize with size 1 did not produce EINVAL");
- exit (1);
- }
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-attr3.c b/test/nptl/tst-attr3.c
deleted file mode 100644
index 5ccf9ab..0000000
--- a/test/nptl/tst-attr3.c
+++ /dev/null
@@ -1,419 +0,0 @@
-/* pthread_getattr_np test.
- Copyright (C) 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <error.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-static void *
-tf (void *arg)
-{
- pthread_attr_t a, *ap, a2;
- int err;
- void *result = NULL;
-
- if (arg == NULL)
- {
- ap = &a2;
- err = pthread_attr_init (ap);
- if (err)
- {
- error (0, err, "pthread_attr_init failed");
- return tf;
- }
- }
- else
- ap = (pthread_attr_t *) arg;
-
- err = pthread_getattr_np (pthread_self (), &a);
- if (err)
- {
- error (0, err, "pthread_getattr_np failed");
- result = tf;
- }
-
- int detachstate1, detachstate2;
- err = pthread_attr_getdetachstate (&a, &detachstate1);
- if (err)
- {
- error (0, err, "pthread_attr_getdetachstate failed");
- result = tf;
- }
- else
- {
- err = pthread_attr_getdetachstate (ap, &detachstate2);
- if (err)
- {
- error (0, err, "pthread_attr_getdetachstate failed");
- result = tf;
- }
- else if (detachstate1 != detachstate2)
- {
- error (0, 0, "detachstate differs %d != %d",
- detachstate1, detachstate2);
- result = tf;
- }
- }
-
- void *stackaddr;
- size_t stacksize;
- err = pthread_attr_getstack (&a, &stackaddr, &stacksize);
- if (err)
- {
- error (0, err, "pthread_attr_getstack failed");
- result = tf;
- }
- else if ((void *) &a < stackaddr
- || (void *) &a >= stackaddr + stacksize)
- {
- error (0, 0, "pthread_attr_getstack returned range does not cover thread's
stack");
- result = tf;
- }
- else
- printf ("thread stack %p-%p (0x%zx)\n", stackaddr, stackaddr + stacksize,
- stacksize);
-
- size_t guardsize1, guardsize2;
- err = pthread_attr_getguardsize (&a, &guardsize1);
- if (err)
- {
- error (0, err, "pthread_attr_getguardsize failed");
- result = tf;
- }
- else
- {
- err = pthread_attr_getguardsize (ap, &guardsize2);
- if (err)
- {
- error (0, err, "pthread_attr_getguardsize failed");
- result = tf;
- }
- else if (guardsize1 != guardsize2)
- {
- error (0, 0, "guardsize differs %zd != %zd",
- guardsize1, guardsize2);
- result = tf;
- }
- else
- printf ("thread guardsize %zd\n", guardsize1);
- }
-
- int scope1, scope2;
- err = pthread_attr_getscope (&a, &scope1);
- if (err)
- {
- error (0, err, "pthread_attr_getscope failed");
- result = tf;
- }
- else
- {
- err = pthread_attr_getscope (ap, &scope2);
- if (err)
- {
- error (0, err, "pthread_attr_getscope failed");
- result = tf;
- }
- else if (scope1 != scope2)
- {
- error (0, 0, "scope differs %d != %d",
- scope1, scope2);
- result = tf;
- }
- }
-
- int inheritsched1, inheritsched2;
- err = pthread_attr_getinheritsched (&a, &inheritsched1);
- if (err)
- {
- error (0, err, "pthread_attr_getinheritsched failed");
- result = tf;
- }
- else
- {
- err = pthread_attr_getinheritsched (ap, &inheritsched2);
- if (err)
- {
- error (0, err, "pthread_attr_getinheritsched failed");
- result = tf;
- }
- else if (inheritsched1 != inheritsched2)
- {
- error (0, 0, "inheritsched differs %d != %d",
- inheritsched1, inheritsched2);
- result = tf;
- }
- }
-
- cpu_set_t c1, c2;
- err = pthread_getaffinity_np (pthread_self (), sizeof (c1), &c1);
- if (err == 0)
- {
- err = pthread_attr_getaffinity_np (&a, sizeof (c2), &c2);
- if (err)
- {
- error (0, err, "pthread_attr_getaffinity_np failed");
- result = tf;
- }
- else if (memcmp (&c1, &c2, sizeof (c1)))
- {
- error (0, 0, "pthread_attr_getaffinity_np returned different CPU mask than
pthread_getattr_np");
- result = tf;
- }
- }
-
- err = pthread_attr_destroy (&a);
- if (err)
- {
- error (0, err, "pthread_attr_destroy failed");
- result = tf;
- }
-
- if (ap == &a2)
- {
- err = pthread_attr_destroy (ap);
- if (err)
- {
- error (0, err, "pthread_attr_destroy failed");
- result = tf;
- }
- }
-
- return result;
-}
-
-
-static int
-do_test (void)
-{
- int result = 0;
- pthread_attr_t a;
- cpu_set_t c1, c2;
-
- int err = pthread_attr_init (&a);
- if (err)
- {
- error (0, err, "pthread_attr_init failed");
- result = 1;
- }
-
- err = pthread_attr_getaffinity_np (&a, sizeof (c1), &c1);
- if (err && err != ENOSYS)
- {
- error (0, err, "pthread_attr_getaffinity_np failed");
- result = 1;
- }
-
- err = pthread_attr_destroy (&a);
- if (err)
- {
- error (0, err, "pthread_attr_destroy failed");
- result = 1;
- }
-
- err = pthread_getattr_np (pthread_self (), &a);
- if (err)
- {
- error (0, err, "pthread_getattr_np failed");
- result = 1;
- }
-
- int detachstate;
- err = pthread_attr_getdetachstate (&a, &detachstate);
- if (err)
- {
- error (0, err, "pthread_attr_getdetachstate failed");
- result = 1;
- }
- else if (detachstate != PTHREAD_CREATE_JOINABLE)
- {
- error (0, 0, "initial thread not joinable");
- result = 1;
- }
-
- void *stackaddr;
- size_t stacksize;
- err = pthread_attr_getstack (&a, &stackaddr, &stacksize);
- if (err)
- {
- error (0, err, "pthread_attr_getstack failed");
- result = 1;
- }
- else if ((void *) &a < stackaddr
- || (void *) &a >= stackaddr + stacksize)
- {
- error (0, 0, "pthread_attr_getstack returned range does not cover main's
stack");
- result = 1;
- }
- else
- printf ("initial thread stack %p-%p (0x%zx)\n", stackaddr,
- stackaddr + stacksize, stacksize);
-
- size_t guardsize;
- err = pthread_attr_getguardsize (&a, &guardsize);
- if (err)
- {
- error (0, err, "pthread_attr_getguardsize failed");
- result = 1;
- }
- else if (guardsize != 0)
- {
- error (0, 0, "pthread_attr_getguardsize returned %zd != 0",
- guardsize);
- result = 1;
- }
-
- int scope;
- err = pthread_attr_getscope (&a, &scope);
- if (err)
- {
- error (0, err, "pthread_attr_getscope failed");
- result = 1;
- }
- else if (scope != PTHREAD_SCOPE_SYSTEM)
- {
- error (0, 0, "pthread_attr_getscope returned %d !=
PTHREAD_SCOPE_SYSTEM",
- scope);
- result = 1;
- }
-
- int inheritsched;
- err = pthread_attr_getinheritsched (&a, &inheritsched);
- if (err)
- {
- error (0, err, "pthread_attr_getinheritsched failed");
- result = 1;
- }
- else if (inheritsched != PTHREAD_INHERIT_SCHED)
- {
- error (0, 0, "pthread_attr_getinheritsched returned %d !=
PTHREAD_INHERIT_SCHED",
- inheritsched);
- result = 1;
- }
-
- err = pthread_getaffinity_np (pthread_self (), sizeof (c1), &c1);
- if (err == 0)
- {
- err = pthread_attr_getaffinity_np (&a, sizeof (c2), &c2);
- if (err)
- {
- error (0, err, "pthread_attr_getaffinity_np failed");
- result = 1;
- }
- else if (memcmp (&c1, &c2, sizeof (c1)))
- {
- error (0, 0, "pthread_attr_getaffinity_np returned different CPU mask than
pthread_getattr_np");
- result = 1;
- }
- }
-
- err = pthread_attr_destroy (&a);
- if (err)
- {
- error (0, err, "pthread_attr_destroy failed");
- result = 1;
- }
-
- pthread_t th;
- err = pthread_create (&th, NULL, tf, NULL);
- if (err)
- {
- error (0, err, "pthread_create #1 failed");
- result = 1;
- }
- else
- {
- void *ret;
- err = pthread_join (th, &ret);
- if (err)
- {
- error (0, err, "pthread_join #1 failed");
- result = 1;
- }
- else if (ret != NULL)
- result = 1;
- }
-
- err = pthread_attr_init (&a);
- if (err)
- {
- error (0, err, "pthread_attr_init failed");
- result = 1;
- }
-
- err = pthread_create (&th, &a, tf, &a);
- if (err)
- {
- error (0, err, "pthread_create #2 failed");
- result = 1;
- }
- else
- {
- void *ret;
- err = pthread_join (th, &ret);
- if (err)
- {
- error (0, err, "pthread_join #2 failed");
- result = 1;
- }
- else if (ret != NULL)
- result = 1;
- }
-
- err = pthread_attr_setguardsize (&a, 16 * sysconf (_SC_PAGESIZE));
- if (err)
- {
- error (0, err, "pthread_attr_setguardsize failed");
- result = 1;
- }
-
- err = pthread_create (&th, &a, tf, &a);
- if (err)
- {
- error (0, err, "pthread_create #3 failed");
- result = 1;
- }
- else
- {
- void *ret;
- err = pthread_join (th, &ret);
- if (err)
- {
- error (0, err, "pthread_join #3 failed");
- result = 1;
- }
- else if (ret != NULL)
- result = 1;
- }
-
- err = pthread_attr_destroy (&a);
- if (err)
- {
- error (0, err, "pthread_attr_destroy failed");
- result = 1;
- }
-
- return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-barrier1.c b/test/nptl/tst-barrier1.c
deleted file mode 100644
index 4e396c9..0000000
--- a/test/nptl/tst-barrier1.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-
-
-static int
-do_test (void)
-{
- pthread_barrier_t b;
- int e;
- int cnt;
-
- e = pthread_barrier_init (&b, NULL, 0);
- if (e == 0)
- {
- puts ("barrier_init with count 0 succeeded");
- return 1;
- }
- if (e != EINVAL)
- {
- puts ("barrier_init with count 0 didn't return EINVAL");
- return 1;
- }
-
- if (pthread_barrier_init (&b, NULL, 1) != 0)
- {
- puts ("real barrier_init failed");
- return 1;
- }
-
- for (cnt = 0; cnt < 10; ++cnt)
- {
- e = pthread_barrier_wait (&b);
-
- if (e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait didn't return PTHREAD_BARRIER_SERIAL_THREAD");
- return 1;
- }
- }
-
- if (pthread_barrier_destroy (&b) != 0)
- {
- puts ("barrier_destroy failed");
- return 1;
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-barrier2.c b/test/nptl/tst-barrier2.c
deleted file mode 100644
index 8ffcda0..0000000
--- a/test/nptl/tst-barrier2.c
+++ /dev/null
@@ -1,184 +0,0 @@
-/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/wait.h>
-
-
-static int
-do_test (void)
-{
- size_t ps = sysconf (_SC_PAGESIZE);
- char tmpfname[] = "/tmp/tst-barrier2.XXXXXX";
- char data[ps];
- void *mem;
- int fd;
- pthread_barrier_t *b;
- pthread_barrierattr_t a;
- pid_t pid;
- int serials = 0;
- int cnt;
- int status;
- int p;
-
- fd = mkstemp (tmpfname);
- if (fd == -1)
- {
- printf ("cannot open temporary file: %m\n");
- return 1;
- }
-
- /* Make sure it is always removed. */
- unlink (tmpfname);
-
- /* Create one page of data. */
- memset (data, '\0', ps);
-
- /* Write the data to the file. */
- if (write (fd, data, ps) != (ssize_t) ps)
- {
- puts ("short write");
- return 1;
- }
-
- mem = mmap (NULL, ps, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
- if (mem == MAP_FAILED)
- {
- printf ("mmap failed: %m\n");
- return 1;
- }
-
- b = (pthread_barrier_t *) (((uintptr_t) mem + __alignof (pthread_barrier_t))
- & ~(__alignof (pthread_barrier_t) - 1));
-
- if (pthread_barrierattr_init (&a) != 0)
- {
- puts ("barrierattr_init failed");
- return 1;
- }
-
- if (pthread_barrierattr_getpshared (&a, &p) != 0)
- {
- puts ("1st barrierattr_getpshared failed");
- return 1;
- }
-
- if (p != PTHREAD_PROCESS_PRIVATE)
- {
- puts ("default pshared value wrong");
- return 1;
- }
-
- if (pthread_barrierattr_setpshared (&a, PTHREAD_PROCESS_SHARED) != 0)
- {
- puts ("barrierattr_setpshared failed");
- return 1;
- }
-
- if (pthread_barrierattr_getpshared (&a, &p) != 0)
- {
- puts ("2nd barrierattr_getpshared failed");
- return 1;
- }
-
- if (p != PTHREAD_PROCESS_SHARED)
- {
- puts ("pshared value after setpshared call wrong");
- return 1;
- }
-
- if (pthread_barrier_init (b, &a, 2) != 0)
- {
- puts ("barrier_init failed");
- return 1;
- }
-
- if (pthread_barrierattr_destroy (&a) != 0)
- {
- puts ("barrierattr_destroy failed");
- return 1;
- }
-
- puts ("going to fork now");
- pid = fork ();
- if (pid == -1)
- {
- puts ("fork failed");
- return 1;
- }
-
- /* Just to be sure we don't hang forever. */
- alarm (4);
-
-#define N 30
- for (cnt = 0; cnt < N; ++cnt)
- {
- int e;
-
- e = pthread_barrier_wait (b);
- if (e == PTHREAD_BARRIER_SERIAL_THREAD)
- ++serials;
- else if (e != 0)
- {
- printf ("%s: barrier_wait returned value %d != 0 and
PTHREAD_BARRIER_SERIAL_THREAD\n",
- pid == 0 ? "child" : "parent", e);
- return 1;
- }
- }
-
- alarm (0);
-
- printf ("%s: was %d times the serial thread\n",
- pid == 0 ? "child" : "parent", serials);
-
- if (pid == 0)
- /* The child. Pass the number of times we had the serializing
- thread back to the parent. */
- exit (serials);
-
- if (waitpid (pid, &status, 0) != pid)
- {
- puts ("waitpid failed");
- return 1;
- }
-
- if (!WIFEXITED (status))
- {
- puts ("child exited abnormally");
- return 1;
- }
-
- if (WEXITSTATUS (status) + serials != N)
- {
- printf ("total number of serials is %d, expected %d\n",
- WEXITSTATUS (status) + serials, N);
- return 1;
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-barrier3.c b/test/nptl/tst-barrier3.c
deleted file mode 100644
index 9c4e2b2..0000000
--- a/test/nptl/tst-barrier3.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* Test of POSIX barriers. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#define NTHREADS 20
-
-#define ROUNDS 20
-
-static pthread_barrier_t barriers[NTHREADS];
-
-static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
-static int counters[NTHREADS];
-static int serial[NTHREADS];
-
-static void *
-worker (void *arg)
-{
- void *result = NULL;
- int nr = (long int) arg;
- int i;
-
- for (i = 0; i < ROUNDS; ++i)
- {
- int j;
- int retval;
-
- if (nr == 0)
- {
- memset (counters, '\0', sizeof (counters));
- memset (serial, '\0', sizeof (serial));
- }
-
- retval = pthread_barrier_wait (&barriers[NTHREADS - 1]);
- if (retval != 0 && retval != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("thread %d failed to wait for all the others\n", nr);
- result = (void *) 1;
- }
-
- for (j = nr; j < NTHREADS; ++j)
- {
- /* Increment the counter for this round. */
- pthread_mutex_lock (&lock);
- ++counters[j];
- pthread_mutex_unlock (&lock);
-
- /* Wait for the rest. */
- retval = pthread_barrier_wait (&barriers[j]);
-
- /* Test the result. */
- if (nr == 0 && counters[j] != j + 1)
- {
- printf ("barrier in round %d released but count is %d\n",
- j, counters[j]);
- result = (void *) 1;
- }
-
- if (retval != 0)
- {
- if (retval != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("thread %d in round %d has nonzero return value !=
PTHREAD_BARRIER_SERIAL_THREAD\n",
- nr, j);
- result = (void *) 1;
- }
- else
- {
- pthread_mutex_lock (&lock);
- ++serial[j];
- pthread_mutex_unlock (&lock);
- }
- }
-
- /* Wait for the rest again. */
- retval = pthread_barrier_wait (&barriers[j]);
-
- /* Now we can check whether exactly one thread was serializing. */
- if (nr == 0 && serial[j] != 1)
- {
- printf ("not exactly one serial thread in round %d\n", j);
- result = (void *) 1;
- }
- }
- }
-
- return result;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#define TIMEOUT 60
-static int
-do_test (void)
-{
- pthread_t threads[NTHREADS];
- int i;
- void *res;
- int result = 0;
-
- /* Initialized the barrier variables. */
- for (i = 0; i < NTHREADS; ++i)
- if (pthread_barrier_init (&barriers[i], NULL, i + 1) != 0)
- {
- printf ("Failed to initialize barrier %d\n", i);
- exit (1);
- }
-
- /* Start the threads. */
- for (i = 0; i < NTHREADS; ++i)
- if (pthread_create (&threads[i], NULL, worker, (void *) (long int) i) != 0)
- {
- printf ("Failed to start thread %d\n", i);
- exit (1);
- }
-
- /* And wait for them. */
- for (i = 0; i < NTHREADS; ++i)
- if (pthread_join (threads[i], &res) != 0 || res != NULL)
- {
- printf ("thread %d returned a failure\n", i);
- result = 1;
- }
- else
- printf ("joined threads %d\n", i);
-
- if (result == 0)
- puts ("all OK");
-
- return result;
-}
-
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-barrier4.c b/test/nptl/tst-barrier4.c
deleted file mode 100644
index cad9fb7..0000000
--- a/test/nptl/tst-barrier4.c
+++ /dev/null
@@ -1,121 +0,0 @@
-/* Copyright (C) 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* This is a test for behavior not guaranteed by POSIX. */
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static pthread_barrier_t b1;
-static pthread_barrier_t b2;
-
-
-#define N 20
-
-static void *
-tf (void *arg)
-{
- int round = 0;
-
- while (round++ < 30)
- {
- if (pthread_barrier_wait (&b1) == PTHREAD_BARRIER_SERIAL_THREAD)
- {
- pthread_barrier_destroy (&b1);
- if (pthread_barrier_init (&b1, NULL, N) != 0)
- {
- puts ("tf: 1st barrier_init failed");
- exit (1);
- }
- }
-
- if (pthread_barrier_wait (&b2) == PTHREAD_BARRIER_SERIAL_THREAD)
- {
- pthread_barrier_destroy (&b2);
- if (pthread_barrier_init (&b2, NULL, N) != 0)
- {
- puts ("tf: 2nd barrier_init failed");
- exit (1);
- }
- }
- }
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- pthread_attr_t at;
- int cnt;
-
- if (pthread_attr_init (&at) != 0)
- {
- puts ("attr_init failed");
- return 1;
- }
-
- if (pthread_attr_setstacksize (&at, 1 * 1024 * 1024) != 0)
- {
- puts ("attr_setstacksize failed");
- return 1;
- }
-
- if (pthread_barrier_init (&b1, NULL, N) != 0)
- {
- puts ("1st barrier_init failed");
- return 1;
- }
-
- if (pthread_barrier_init (&b2, NULL, N) != 0)
- {
- puts ("2nd barrier_init failed");
- return 1;
- }
-
- pthread_t th[N - 1];
- for (cnt = 0; cnt < N - 1; ++cnt)
- if (pthread_create (&th[cnt], &at, tf, NULL) != 0)
- {
- puts ("pthread_create failed");
- return 1;
- }
-
- if (pthread_attr_destroy (&at) != 0)
- {
- puts ("attr_destroy failed");
- return 1;
- }
-
- tf (NULL);
-
- for (cnt = 0; cnt < N - 1; ++cnt)
- if (pthread_join (th[cnt], NULL) != 0)
- {
- puts ("pthread_join failed");
- return 1;
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-basic1.c b/test/nptl/tst-basic1.c
deleted file mode 100644
index 748bbb7..0000000
--- a/test/nptl/tst-basic1.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <sys/types.h>
-
-
-static pid_t pid;
-
-static void *
-tf (void *a)
-{
- if (getpid () != pid)
- {
- write (2, "pid mismatch\n", 13);
- _exit (1);
- }
-
- return a;
-}
-
-
-int
-do_test (void)
-{
- pid = getpid ();
-
-#define N 2
- pthread_t t[N];
- int i;
-
- for (i = 0; i < N; ++i)
- if (pthread_create (&t[i], NULL, tf, (void *) (long int) (i + 1)) != 0)
- {
- write (2, "create failed\n", 14);
- _exit (1);
- }
- else
- printf ("created thread %d\n", i);
-
- for (i = 0; i < N; ++i)
- {
- void *r;
- int e;
- if ((e = pthread_join (t[i], &r)) != 0)
- {
- printf ("join failed: %d\n", e);
- _exit (1);
- }
- else if (r != (void *) (long int) (i + 1))
- {
- write (2, "result wrong\n", 13);
- _exit (1);
- }
- else
- printf ("joined thread %d\n", i);
- }
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-basic2.c b/test/nptl/tst-basic2.c
deleted file mode 100644
index 58ed6ac..0000000
--- a/test/nptl/tst-basic2.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-#define N 20
-
-static pthread_t th[N];
-static pthread_mutex_t lock[N];
-
-
-static void *tf (void *a)
-{
- uintptr_t idx = (uintptr_t) a;
-
- pthread_mutex_lock (&lock[idx]);
-
- return pthread_equal (pthread_self (), th[idx]) ? NULL : (void *) 1l;
-}
-
-
-int
-do_test (void)
-{
- if (pthread_equal (pthread_self (), pthread_self ()) == 0)
- {
- puts ("pthread_equal (pthread_self (), pthread_self ()) failed");
- exit (1);
- }
-
- pthread_attr_t at;
-
- if (pthread_attr_init (&at) != 0)
- {
- puts ("attr_init failed");
- return 1;
- }
-
- if (pthread_attr_setstacksize (&at, 1 * 1024 * 1024) != 0)
- {
- puts ("attr_setstacksize failed");
- return 1;
- }
-
- int i;
- for (i = 0; i < N; ++i)
- {
- if (pthread_mutex_init (&lock[i], NULL) != 0)
- {
- puts ("mutex_init failed");
- exit (1);
- }
-
- if (pthread_mutex_lock (&lock[i]) != 0)
- {
- puts ("mutex_lock failed");
- exit (1);
- }
-
- if (pthread_create (&th[i], &at, tf, (void *) (long int) i) != 0)
- {
- puts ("create failed");
- exit (1);
- }
-
- if (pthread_mutex_unlock (&lock[i]) != 0)
- {
- puts ("mutex_unlock failed");
- exit (1);
- }
-
- printf ("created thread %d\n", i);
- }
-
- if (pthread_attr_destroy (&at) != 0)
- {
- puts ("attr_destroy failed");
- return 1;
- }
-
- int result = 0;
- for (i = 0; i < N; ++i)
- {
- void *r;
- int e;
- if ((e = pthread_join (th[i], &r)) != 0)
- {
- printf ("join failed: %d\n", e);
- _exit (1);
- }
- else if (r != NULL)
- result = 1;
- }
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-basic3.c b/test/nptl/tst-basic3.c
deleted file mode 100644
index a3e2603..0000000
--- a/test/nptl/tst-basic3.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static int nrunning = 1;
-
-
-static void
-final_test (void)
-{
- puts ("final_test has been called");
-
-#define THE_SIGNAL SIGUSR1
- kill (getpid (), SIGUSR1);
-}
-
-
-static void *
-tf (void *a)
-{
- if (pthread_join ((pthread_t) a, NULL) != 0)
- {
- printf ("join failed while %d are running\n", nrunning);
- _exit (1);
- }
-
- printf ("%2d left\n", --nrunning);
-
- return NULL;
-}
-
-
-int
-do_test (void)
-{
-#define N 20
- pthread_t t[N];
- pthread_t last = pthread_self ();
- int i;
-
- atexit (final_test);
-
- printf ("starting %d + 1 threads\n", N);
- for (i = 0; i < N; ++i)
- {
- if (pthread_create (&t[i], NULL, tf, (void *) last) != 0)
- {
- puts ("create failed");
- _exit (1);
- }
-
- ++nrunning;
-
- last = t[i];
- }
-
- printf ("%2d left\n", --nrunning);
-
- pthread_exit (NULL);
-}
-
-
-#define EXPECTED_SIGNAL THE_SIGNAL
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-basic4.c b/test/nptl/tst-basic4.c
deleted file mode 100644
index b69ca20..0000000
--- a/test/nptl/tst-basic4.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/wait.h>
-
-
-static void
-final_test (void)
-{
- puts ("final_test has been called");
-
-#define THE_SIGNAL SIGUSR1
- kill (getpid (), SIGUSR1);
-}
-
-
-static void *
-tf (void *a)
-{
- pid_t pid = fork ();
- if (pid == -1)
- {
- puts ("fork failed");
- exit (1);
- }
-
- if (pid == 0)
- {
- atexit (final_test);
-
- pthread_exit (NULL);
- }
-
- int r;
- int e = TEMP_FAILURE_RETRY (waitpid (pid, &r, 0));
- if (e != pid)
- {
- puts ("waitpid failed");
- exit (1);
- }
-
- if (! WIFSIGNALED (r))
- {
- puts ("child not signled");
- exit (1);
- }
-
- if (WTERMSIG (r) != THE_SIGNAL)
- {
- puts ("child's termination signal wrong");
- exit (1);
- }
-
- return NULL;
-}
-
-
-int
-do_test (void)
-{
- pthread_t th;
-
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("create failed");
- _exit (1);
- }
-
- if (pthread_join (th, NULL) != 0)
- {
- puts ("join failed");
- exit (1);
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-basic5.c b/test/nptl/tst-basic5.c
deleted file mode 100644
index 76b5909..0000000
--- a/test/nptl/tst-basic5.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-
-int
-do_test (void)
-{
- int c = pthread_getconcurrency ();
- if (c != 0)
- {
- puts ("initial concurrencylevel wrong");
- exit (1);
- }
-
- if (pthread_setconcurrency (1) != 0)
- {
- puts ("setconcurrency failed");
- exit (1);
- }
-
- c = pthread_getconcurrency ();
- if (c != 1)
- {
- puts ("getconcurrency didn't return the value previous set");
- exit (1);
- }
-
- int e = pthread_setconcurrency (-1);
- if (e == 0)
- {
- puts ("setconcurrency of negative value didn't failed");
- exit (1);
- }
- if (e != EINVAL)
- {
- puts ("setconcurrency didn't return EINVAL for negative value");
- exit (1);
- }
-
- c = pthread_getconcurrency ();
- if (c != 1)
- {
- puts ("invalid getconcurrency changed level");
- exit (1);
- }
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-basic6.c b/test/nptl/tst-basic6.c
deleted file mode 100644
index 91e5fe2..0000000
--- a/test/nptl/tst-basic6.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-
-static char *p;
-
-static pthread_barrier_t b;
-#define BT \
- e = pthread_barrier_wait (&b); \
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD) \
- { \
- puts ("barrier_wait failed"); \
- exit (1); \
- }
-
-
-static void *
-tf (void *a)
-{
- int e;
-
- BT;
-
- char *p2 = getcwd (NULL, 0);
- if (p2 == NULL)
- {
- puts ("2nd getcwd failed");
- exit (1);
- }
-
- if (strcmp (p, p2) != 0)
- {
- printf ("initial cwd mismatch: \"%s\" vs \"%s\"\n",
p, p2);
- exit (1);
- }
-
- free (p);
- free (p2);
-
- if (chdir ("..") != 0)
- {
- puts ("chdir failed");
- exit (1);
- }
-
- p = getcwd (NULL, 0);
- if (p == NULL)
- {
- puts ("getcwd failed");
- exit (1);
- }
-
- return a;
-}
-
-
-int
-do_test (void)
-{
- if (pthread_barrier_init (&b, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- exit (1);
- }
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("create failed");
- exit (1);
- }
-
- p = getcwd (NULL, 0);
- if (p == NULL)
- {
- puts ("getcwd failed");
- exit (1);
- }
-
- int e;
- BT;
-
- if (pthread_join (th, NULL) != 0)
- {
- puts ("join failed");
- exit (1);
- }
-
- char *p2 = getcwd (NULL, 0);
- if (p2 == NULL)
- {
- puts ("2nd getcwd failed");
- exit (1);
- }
-
- if (strcmp (p, p2) != 0)
- {
- printf ("cwd after chdir mismatch: \"%s\" vs
\"%s\"\n", p, p2);
- exit (1);
- }
-
- free (p);
- free (p2);
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-basic7.c b/test/nptl/tst-basic7.c
deleted file mode 100644
index 15b6187..0000000
--- a/test/nptl/tst-basic7.c
+++ /dev/null
@@ -1,75 +0,0 @@
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <limits.h>
-#include <sys/mman.h>
-#include <sys/resource.h>
-
-static void use_stack (size_t needed);
-
-void (*use_stack_ptr) (size_t) = use_stack;
-
-static void
-use_stack (size_t needed)
-{
- size_t sz = sysconf (_SC_PAGESIZE);
- char *buf = alloca (sz);
- memset (buf, '\0', sz);
-
- if (needed > sz)
- use_stack_ptr (needed - sz);
-}
-
-static void
-use_up_memory (void)
-{
- struct rlimit rl;
- getrlimit (RLIMIT_AS, &rl);
- rl.rlim_cur = 10 * 1024 * 1024;
- setrlimit (RLIMIT_AS, &rl);
-
- char *c;
- int PAGESIZE = getpagesize ();
- while (1)
- {
- c = mmap (NULL, PAGESIZE, PROT_NONE, MAP_ANON | MAP_PRIVATE, -1, 0);
- if (c == MAP_FAILED)
- break;
- }
-}
-
-static void *
-child (void *arg)
-{
- sleep (1);
- return arg;
-}
-
-static int
-do_test (void)
-{
- int err;
- pthread_t tid;
-
- /* Allocate the memory needed for the stack. */
- use_stack_ptr (PTHREAD_STACK_MIN);
-
- use_up_memory ();
-
- err = pthread_create (&tid, NULL, child, NULL);
- if (err != 0)
- {
- printf ("pthread_create returns %d: %s\n", err,
- err == EAGAIN ? "OK" : "FAIL");
- return err != EAGAIN;
- }
-
- /* We did not fail to allocate memory despite the preparation. Oh well. */
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cancel1.c b/test/nptl/tst-cancel1.c
deleted file mode 100644
index 8b2ca07..0000000
--- a/test/nptl/tst-cancel1.c
+++ /dev/null
@@ -1,162 +0,0 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-static pthread_mutex_t m1 = PTHREAD_MUTEX_INITIALIZER;
-static pthread_mutex_t m2 = PTHREAD_MUTEX_INITIALIZER;
-
-static int cntr;
-
-
-static void
-cleanup (void *arg)
-{
- if (arg != (void *) 42l)
- cntr = 42;
- else
- cntr = 1;
-}
-
-
-static void *
-tf (void *arg)
-{
- /* Ignore all signals. This must not have any effect on delivering
- the cancellation signal. */
- sigset_t ss;
-
- sigfillset (&ss);
-
- if (pthread_sigmask (SIG_BLOCK, &ss, NULL) != 0)
- {
- puts ("pthread_sigmask failed");
- exit (1);
- }
-
- pthread_cleanup_push (cleanup, (void *) 42l);
-
- int err = pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
- if (err != 0)
- {
- printf ("setcanceltype failed: %s\n", strerror (err));
- exit (1);
- }
- /* The following code is not standard compliant: the mutex functions
- must not be called with asynchronous cancellation enabled. */
-
- err = pthread_mutex_unlock (&m2);
- if (err != 0)
- {
- printf ("child: mutex_unlock failed: %s\n", strerror (err));
- exit (1);
- }
-
- err = pthread_mutex_lock (&m1);
- if (err != 0)
- {
- printf ("child: 1st mutex_lock failed: %s\n", strerror (err));
- exit (1);
- }
-
- /* We should never come here. */
-
- pthread_cleanup_pop (0);
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- int err;
- pthread_t th;
- int result = 0;
- void *retval;
-
- /* Get the mutexes. */
- err = pthread_mutex_lock (&m1);
- if (err != 0)
- {
- printf ("parent: 1st mutex_lock failed: %s\n", strerror (err));
- return 1;
- }
- err = pthread_mutex_lock (&m2);
- if (err != 0)
- {
- printf ("parent: 2nd mutex_lock failed: %s\n", strerror (err));
- return 1;
- }
-
- err = pthread_create (&th, NULL, tf, NULL);
- if (err != 0)
- {
- printf ("create failed: %s\n", strerror (err));
- return 1;
- }
-
- err = pthread_mutex_lock (&m2);
- if (err != 0)
- {
- printf ("parent: 3rd mutex_lock failed: %s\n", strerror (err));
- return 1;
- }
-
- err = pthread_cancel (th);
- if (err != 0)
- {
- printf ("cancel failed: %s\n", strerror (err));
- return 1;
- }
-
- err = pthread_join (th, &retval);
- if (err != 0)
- {
- printf ("join failed: %s\n", strerror (err));
- return 1;
- }
-
- if (retval != PTHREAD_CANCELED)
- {
- printf ("wrong return value: %p\n", retval);
- result = 1;
- }
-
- if (cntr == 42)
- {
- puts ("cleanup handler called with wrong argument");
- result = 1;
- }
- else if (cntr != 1)
- {
- puts ("cleanup handling not called");
- result = 1;
- }
-
- return result;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cancel10.c b/test/nptl/tst-cancel10.c
deleted file mode 100644
index 534ddf4..0000000
--- a/test/nptl/tst-cancel10.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-static void
-cleanup (void *arg)
-{
- /* Just for fun. */
- if (pthread_cancel (pthread_self ()) != 0)
- {
- puts ("cleanup: cancel failed");
- exit (1);
- }
-
- printf ("cleanup for %ld\n", (long int) arg);
-}
-
-
-static void *
-tf (void *arg)
-{
- long int n = (long int) arg;
-
- pthread_cleanup_push (cleanup, arg);
-
- if (pthread_setcanceltype ((n & 1) == 0
- ? PTHREAD_CANCEL_DEFERRED
- : PTHREAD_CANCEL_ASYNCHRONOUS, NULL) != 0)
- {
- puts ("setcanceltype failed");
- exit (1);
- }
-
- if (pthread_cancel (pthread_self ()) != 0)
- {
- puts ("cancel failed");
- exit (1);
- }
-
- pthread_testcancel ();
-
- /* We should never come here. */
-
- pthread_cleanup_pop (0);
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- pthread_attr_t at;
-
- if (pthread_attr_init (&at) != 0)
- {
- puts ("attr_init failed");
- return 1;
- }
-
- if (pthread_attr_setstacksize (&at, 1 * 1024 * 1024) != 0)
- {
- puts ("attr_setstacksize failed");
- return 1;
- }
-
-#define N 20
- int i;
- pthread_t th[N];
-
- for (i = 0; i < N; ++i)
- if (pthread_create (&th[i], &at, tf, (void *) (long int) i) != 0)
- {
- puts ("create failed");
- exit (1);
- }
-
- if (pthread_attr_destroy (&at) != 0)
- {
- puts ("attr_destroy failed");
- return 1;
- }
-
- for (i = 0; i < N; ++i)
- {
- void *r;
- if (pthread_join (th[i], &r) != 0)
- {
- puts ("join failed");
- exit (1);
- }
-
- if (r != PTHREAD_CANCELED)
- {
- puts ("thread not canceled");
- exit (1);
- }
- }
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cancel11.c b/test/nptl/tst-cancel11.c
deleted file mode 100644
index c091582..0000000
--- a/test/nptl/tst-cancel11.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-
-static pthread_barrier_t bar;
-static int fd[2];
-
-
-static void
-cleanup (void *arg)
-{
- static int ncall;
-
- if (++ncall != 1)
- {
- puts ("second call to cleanup");
- exit (1);
- }
-
- printf ("cleanup call #%d\n", ncall);
-}
-
-
-static void *
-tf (void *arg)
-{
- pthread_cleanup_push (cleanup, NULL);
-
- int e = pthread_barrier_wait (&bar);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("tf: 1st barrier_wait failed");
- exit (1);
- }
-
- /* This call should block and be cancelable. */
- char buf[20];
- read (fd[0], buf, sizeof (buf));
-
- pthread_cleanup_pop (0);
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- pthread_t th;
-
- if (pthread_barrier_init (&bar, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- exit (1);
- }
-
- if (pipe (fd) != 0)
- {
- puts ("pipe failed");
- exit (1);
- }
-
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("create failed");
- exit (1);
- }
-
- int e = pthread_barrier_wait (&bar);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("1st barrier_wait failed");
- exit (1);
- }
-
- if (pthread_cancel (th) != 0)
- {
- puts ("1st cancel failed");
- exit (1);
- }
-
- void *r;
- if (pthread_join (th, &r) != 0)
- {
- puts ("join failed");
- exit (1);
- }
-
- if (r != PTHREAD_CANCELED)
- {
- puts ("thread not canceled");
- exit (1);
- }
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cancel12.c b/test/nptl/tst-cancel12.c
deleted file mode 100644
index 8b3faa6..0000000
--- a/test/nptl/tst-cancel12.c
+++ /dev/null
@@ -1,126 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <semaphore.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-
-static pthread_barrier_t bar;
-static sem_t sem;
-
-
-static void
-cleanup (void *arg)
-{
- static int ncall;
-
- if (++ncall != 1)
- {
- puts ("second call to cleanup");
- exit (1);
- }
-
- printf ("cleanup call #%d\n", ncall);
-}
-
-
-static void *
-tf (void *arg)
-{
- pthread_cleanup_push (cleanup, NULL);
-
- int e = pthread_barrier_wait (&bar);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("tf: 1st barrier_wait failed");
- exit (1);
- }
-
- /* This call should block and be cancelable. */
- sem_wait (&sem);
-
- pthread_cleanup_pop (0);
-
- puts ("sem_wait returned");
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- pthread_t th;
-
- if (pthread_barrier_init (&bar, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- exit (1);
- }
-
- if (sem_init (&sem, 0, 1) != 0)
- {
- puts ("sem_init failed");
- exit (1);
- }
-
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("create failed");
- exit (1);
- }
-
- /* Check whether cancellation is honored even before sem_wait does
- anything. */
- if (pthread_cancel (th) != 0)
- {
- puts ("1st cancel failed");
- exit (1);
- }
-
- int e = pthread_barrier_wait (&bar);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("1st barrier_wait failed");
- exit (1);
- }
-
- void *r;
- if (pthread_join (th, &r) != 0)
- {
- puts ("join failed");
- exit (1);
- }
-
- if (r != PTHREAD_CANCELED)
- {
- puts ("thread not canceled");
- exit (1);
- }
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cancel13.c b/test/nptl/tst-cancel13.c
deleted file mode 100644
index cf3ce20..0000000
--- a/test/nptl/tst-cancel13.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <semaphore.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-
-static pthread_barrier_t bar;
-static sem_t sem;
-
-
-static void
-cleanup (void *arg)
-{
- static int ncall;
-
- if (++ncall != 1)
- {
- puts ("second call to cleanup");
- exit (1);
- }
-
- printf ("cleanup call #%d\n", ncall);
-}
-
-
-static void *
-tf (void *arg)
-{
- pthread_cleanup_push (cleanup, NULL);
-
- int e = pthread_barrier_wait (&bar);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("tf: 1st barrier_wait failed");
- exit (1);
- }
-
- /* This call should block and be cancelable. */
- sem_wait (&sem);
-
- pthread_cleanup_pop (0);
-
- puts ("sem_wait returned");
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- pthread_t th;
-
- if (pthread_barrier_init (&bar, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- exit (1);
- }
-
- if (sem_init (&sem, 0, 0) != 0)
- {
- puts ("sem_init failed");
- exit (1);
- }
-
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("create failed");
- exit (1);
- }
-
- int e = pthread_barrier_wait (&bar);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("1st barrier_wait failed");
- exit (1);
- }
-
- /* Give the child a chance to go to sleep in sem_wait. */
- sleep (1);
-
- /* Check whether cancellation is honored when waiting in sem_wait. */
- if (pthread_cancel (th) != 0)
- {
- puts ("1st cancel failed");
- exit (1);
- }
-
- void *r;
- if (pthread_join (th, &r) != 0)
- {
- puts ("join failed");
- exit (1);
- }
-
- if (r != PTHREAD_CANCELED)
- {
- puts ("thread not canceled");
- exit (1);
- }
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cancel14.c b/test/nptl/tst-cancel14.c
deleted file mode 100644
index defbbdd..0000000
--- a/test/nptl/tst-cancel14.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <semaphore.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/time.h>
-
-
-static pthread_barrier_t bar;
-static sem_t sem;
-
-
-static void
-cleanup (void *arg)
-{
- static int ncall;
-
- if (++ncall != 1)
- {
- puts ("second call to cleanup");
- exit (1);
- }
-
- printf ("cleanup call #%d\n", ncall);
-}
-
-
-static void *
-tf (void *arg)
-{
- pthread_cleanup_push (cleanup, NULL);
-
- int e = pthread_barrier_wait (&bar);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("tf: 1st barrier_wait failed");
- exit (1);
- }
-
- struct timeval tv;
- (void) gettimeofday (&tv, NULL);
-
- struct timespec ts;
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
-
- /* Timeout in 5 seconds. */
- ts.tv_sec += 5;
-
- /* This call should block and be cancelable. */
- sem_timedwait (&sem, &ts);
-
- pthread_cleanup_pop (0);
-
- puts ("sem_timedwait returned");
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- pthread_t th;
-
- if (pthread_barrier_init (&bar, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- exit (1);
- }
-
- if (sem_init (&sem, 0, 1) != 0)
- {
- puts ("sem_init failed");
- exit (1);
- }
-
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("create failed");
- exit (1);
- }
-
- /* Check whether cancellation is honored even before sem_timedwait does
- anything. */
- if (pthread_cancel (th) != 0)
- {
- puts ("1st cancel failed");
- exit (1);
- }
-
- int e = pthread_barrier_wait (&bar);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("1st barrier_wait failed");
- exit (1);
- }
-
- void *r;
- if (pthread_join (th, &r) != 0)
- {
- puts ("join failed");
- exit (1);
- }
-
- if (r != PTHREAD_CANCELED)
- {
- puts ("thread not canceled");
- exit (1);
- }
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cancel15.c b/test/nptl/tst-cancel15.c
deleted file mode 100644
index eb2d713..0000000
--- a/test/nptl/tst-cancel15.c
+++ /dev/null
@@ -1,141 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <semaphore.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/time.h>
-
-
-static pthread_barrier_t bar;
-static sem_t sem;
-
-
-static void
-cleanup (void *arg)
-{
- static int ncall;
-
- if (++ncall != 1)
- {
- puts ("second call to cleanup");
- exit (1);
- }
-
- printf ("cleanup call #%d\n", ncall);
-}
-
-
-static void *
-tf (void *arg)
-{
- int e;
-
- pthread_cleanup_push (cleanup, NULL);
-
- e = pthread_barrier_wait (&bar);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("tf: 1st barrier_wait failed");
- exit (1);
- }
-
- struct timeval tv;
- (void) gettimeofday (&tv, NULL);
-
- struct timespec ts;
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
-
- /* Timeout in 5 seconds. */
- ts.tv_sec += 5;
-
- /* This call should block and be cancelable. */
- errno = 0;
- e = sem_timedwait (&sem, &ts);
-
- pthread_cleanup_pop (0);
-
- printf ("sem_timedwait returned, e = %d, errno = %d\n", e, errno);
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- pthread_t th;
-
- if (pthread_barrier_init (&bar, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- exit (1);
- }
-
- if (sem_init (&sem, 0, 0) != 0)
- {
- puts ("sem_init failed");
- exit (1);
- }
-
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("create failed");
- exit (1);
- }
-
- int e = pthread_barrier_wait (&bar);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("1st barrier_wait failed");
- exit (1);
- }
-
- /* Give the child a chance to go to sleep in sem_wait. */
- sleep (1);
-
- /* Check whether cancellation is honored when waiting in sem_timedwait. */
- if (pthread_cancel (th) != 0)
- {
- puts ("1st cancel failed");
- exit (1);
- }
-
- void *r;
- if (pthread_join (th, &r) != 0)
- {
- puts ("join failed");
- exit (1);
- }
-
- if (r != PTHREAD_CANCELED)
- {
- puts ("thread not canceled");
- exit (1);
- }
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cancel16.c b/test/nptl/tst-cancel16.c
deleted file mode 100644
index 6af657c..0000000
--- a/test/nptl/tst-cancel16.c
+++ /dev/null
@@ -1,230 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/wait.h>
-
-
-static pthread_barrier_t b2;
-static int fd;
-static int called;
-
-
-static void
-cl (void *arg)
-{
- called = 1;
-}
-
-
-static void *
-tf (void *arg)
-{
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("child thread: barrier_wait failed");
- exit (1);
- }
-
- pthread_cleanup_push (cl, NULL);
-
- /* This call should never return. */
- (void) lockf (fd, F_LOCK, 0);
-
- pthread_cleanup_pop (0);
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- char fname[] = "/tmp/cancel16XXXXXX";
- fd = mkstemp (fname);
- if (fd == -1)
- {
- puts ("mkstemp failed");
- return 1;
- }
- unlink (fname);
-
- char mem[sizeof (pthread_barrier_t)];
- memset (mem, '\0', sizeof (mem));
- if (TEMP_FAILURE_RETRY (pwrite (fd, mem, sizeof (mem), 0)) != sizeof (mem))
- {
- puts ("pwrite failed");
- return 1;
- }
-
- void *p = mmap (NULL, sizeof (mem), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
- if (p == MAP_FAILED)
- {
- puts ("mmap failed");
- return 1;
- }
- pthread_barrier_t *b = (pthread_barrier_t *) p;
-
- pthread_barrierattr_t ba;
- if (pthread_barrierattr_init (&ba) != 0)
- {
- puts ("barrierattr_init failed");
- return 1;
- }
- if (pthread_barrierattr_setpshared (&ba, 1) != 0)
- {
- puts ("barrierattr_setshared failed");
- return 1;
- }
-
- if (pthread_barrier_init (b, &ba, 2) != 0)
- {
- puts ("1st barrier_init failed");
- return 1;
- }
- if (pthread_barrierattr_destroy (&ba) != 0)
- {
- puts ("barrier_destroy failed");
- return 1;
- }
-
- pid_t pid = fork ();
- if (pid == 0)
- {
- /* Child. Lock the file and wait. */
- if (lockf (fd, F_LOCK, 0) != 0)
- {
- puts ("child process: lockf failed");
- _exit (1);
- }
-
- int r = pthread_barrier_wait (b);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("child process: 1st barrier_wait failed");
- _exit (1);
- }
-
- /* Make sure the process dies. */
- alarm (5);
-
- r = pthread_barrier_wait (b);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("child process: 2nd barrier_wait failed");
- _exit (1);
- }
-
- _exit (0);
- }
- if (pid == -1)
- {
- puts ("fork failed");
- return 1;
- }
-
- int r = pthread_barrier_wait (b);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("main: 1st barrier_wait failed");
- _exit (1);
- }
-
- if (pthread_barrier_init (&b2, NULL, 2) != 0)
- {
- puts ("2nd barrier_init failed");
- return 1;
- }
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("create failed");
- return 1;
- }
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("main: 2nd barrier_wait failed");
- return 1;
- }
-
- /* Delay. */
- sleep (1);
-
- if (pthread_cancel (th) != 0)
- {
- puts ("cancel failed");
- return 1;
- }
-
- void *result;
- if (pthread_join (th, &result) != 0)
- {
- puts ("join failed");
- return 1;
- }
- if (result != PTHREAD_CANCELED)
- {
- puts ("thread not canceled");
- return 1;
- }
- if (called == 0)
- {
- puts ("cleanup handler not called");
- return 1;
- }
-
- r = pthread_barrier_wait (b);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("main: 3rd barrier_wait failed");
- return 1;
- }
-
- int status;
- if (TEMP_FAILURE_RETRY (waitpid (pid, &status, 0)) != pid)
- {
- puts ("waitpid failed");
- return 1;
- }
- if (WEXITSTATUS (status) != 0)
- {
- printf ("child process exits with %d\n", WEXITSTATUS (status));
- return 1;
- }
-
- if (lockf (fd, F_LOCK, 0) != 0)
- {
- puts ("main: lockf failed");
- return 1;
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cancel18.c b/test/nptl/tst-cancel18.c
deleted file mode 100644
index e653119..0000000
--- a/test/nptl/tst-cancel18.c
+++ /dev/null
@@ -1,173 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include <unistd.h>
-
-
-static pthread_barrier_t b;
-
-
-/* Cleanup handling test. */
-static int cl_called;
-
-static void
-cl (void *arg)
-{
- ++cl_called;
-}
-
-
-static void *
-tf (void *arg)
-{
- int r = pthread_barrier_wait (&b);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- exit (1);
- }
-
- pthread_cleanup_push (cl, NULL);
-
- struct timespec ts = { .tv_sec = arg == NULL ? 10000000 : 0, .tv_nsec = 0 };
- TEMP_FAILURE_RETRY (clock_nanosleep (CLOCK_REALTIME, 0, &ts, &ts));
-
- pthread_cleanup_pop (0);
-
- puts ("clock_nanosleep returned");
-
- exit (1);
-}
-
-
-static int
-do_test (void)
-{
- if (pthread_barrier_init (&b, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- return 1;
- }
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("1st create failed");
- return 1;
- }
-
- int r = pthread_barrier_wait (&b);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- exit (1);
- }
-
- struct timespec ts = { .tv_sec = 0, .tv_nsec = 100000000 };
- while (nanosleep (&ts, &ts) != 0)
- continue;
-
- puts ("going to cancel in-time");
- if (pthread_cancel (th) != 0)
- {
- puts ("1st cancel failed");
- return 1;
- }
-
- void *status;
- if (pthread_join (th, &status) != 0)
- {
- puts ("1st join failed");
- return 1;
- }
- if (status != PTHREAD_CANCELED)
- {
- puts ("1st thread not canceled");
- return 1;
- }
-
- if (cl_called == 0)
- {
- puts ("cleanup handler not called");
- return 1;
- }
- if (cl_called > 1)
- {
- puts ("cleanup handler called more than once");
- return 1;
- }
-
- puts ("in-time cancellation succeeded");
-
-
- cl_called = 0;
-
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("2nd create failed");
- return 1;
- }
-
- puts ("going to cancel early");
- if (pthread_cancel (th) != 0)
- {
- puts ("2nd cancel failed");
- return 1;
- }
-
- r = pthread_barrier_wait (&b);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- exit (1);
- }
-
- if (pthread_join (th, &status) != 0)
- {
- puts ("2nd join failed");
- return 1;
- }
- if (status != PTHREAD_CANCELED)
- {
- puts ("2nd thread not canceled");
- return 1;
- }
-
- if (cl_called == 0)
- {
- printf ("cleanup handler not called\n");
- return 1;
- }
- if (cl_called > 1)
- {
- printf ("cleanup handler called more than once\n");
- return 1;
- }
-
- puts ("early cancellation succeeded");
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cancel19.c b/test/nptl/tst-cancel19.c
deleted file mode 100644
index 921df3f..0000000
--- a/test/nptl/tst-cancel19.c
+++ /dev/null
@@ -1,286 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <error.h>
-#include <fcntl.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/select.h>
-#include <sys/time.h>
-#include <unistd.h>
-
-static void *
-tf (void *arg)
-{
- return NULL;
-}
-
-static void
-handler (int sig)
-{
-}
-
-static void __attribute__ ((noinline))
-clobber_lots_of_regs (void)
-{
-#define X1(n) long r##n = 10##n; __asm__ __volatile__ ("" : "+r"
(r##n));
-#define X2(n) X1(n##0) X1(n##1) X1(n##2) X1(n##3) X1(n##4)
-#define X3(n) X2(n##0) X2(n##1) X2(n##2) X2(n##3) X2(n##4)
- X3(0) X3(1) X3(2) X3(3) X3(4)
-#undef X1
-#define X1(n) __asm__ __volatile__ ("" : : "r" (r##n));
- X3(0) X3(1) X3(2) X3(3) X3(4)
-#undef X1
-#undef X2
-#undef X3
-}
-
-static int
-do_test (void)
-{
- pthread_t th;
- int old, rc;
- int ret = 0;
- int fd[2];
-
- rc = pipe (fd);
- if (rc < 0)
- error (EXIT_FAILURE, errno, "couldn't create pipe");
-
- rc = pthread_create (&th, NULL, tf, NULL);
- if (rc)
- error (EXIT_FAILURE, rc, "couldn't create thread");
-
- rc = pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, &old);
- if (rc)
- {
- error (0, rc, "1st pthread_setcanceltype failed");
- ret = 1;
- }
- if (old != PTHREAD_CANCEL_DEFERRED && old != PTHREAD_CANCEL_ASYNCHRONOUS)
- {
- error (0, 0, "1st pthread_setcanceltype returned invalid value %d",
- old);
- ret = 1;
- }
-
- clobber_lots_of_regs ();
- close (fd[0]);
-
- rc = pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, &old);
- if (rc)
- {
- error (0, rc, "pthread_setcanceltype after close failed");
- ret = 1;
- }
- if (old != PTHREAD_CANCEL_DEFERRED)
- {
- error (0, 0, "pthread_setcanceltype after close returned invalid value
%d",
- old);
- ret = 1;
- }
-
- clobber_lots_of_regs ();
- close (fd[1]);
-
- rc = pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, &old);
- if (rc)
- {
- error (0, rc, "pthread_setcanceltype after 2nd close failed");
- ret = 1;
- }
- if (old != PTHREAD_CANCEL_ASYNCHRONOUS)
- {
- error (0, 0, "pthread_setcanceltype after 2nd close returned invalid value
%d",
- old);
- ret = 1;
- }
-
- struct sigaction sa = { .sa_handler = handler, .sa_flags = 0 };
- sigemptyset (&sa.sa_mask);
- sigaction (SIGALRM, &sa, NULL);
-
- struct itimerval it;
- it.it_value.tv_sec = 1;
- it.it_value.tv_usec = 0;
- it.it_interval = it.it_value;
- setitimer (ITIMER_REAL, &it, NULL);
-
- clobber_lots_of_regs ();
- pause ();
-
- memset (&it, 0, sizeof (it));
- setitimer (ITIMER_REAL, &it, NULL);
-
- rc = pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, &old);
- if (rc)
- {
- error (0, rc, "pthread_setcanceltype after pause failed");
- ret = 1;
- }
- if (old != PTHREAD_CANCEL_DEFERRED)
- {
- error (0, 0, "pthread_setcanceltype after pause returned invalid value
%d",
- old);
- ret = 1;
- }
-
- it.it_value.tv_sec = 1;
- it.it_value.tv_usec = 0;
- it.it_interval = it.it_value;
- setitimer (ITIMER_REAL, &it, NULL);
-
- clobber_lots_of_regs ();
- pause ();
-
- memset (&it, 0, sizeof (it));
- setitimer (ITIMER_REAL, &it, NULL);
-
- rc = pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, &old);
- if (rc)
- {
- error (0, rc, "pthread_setcanceltype after 2nd pause failed");
- ret = 1;
- }
- if (old != PTHREAD_CANCEL_ASYNCHRONOUS)
- {
- error (0, 0, "pthread_setcanceltype after 2nd pause returned invalid value
%d",
- old);
- ret = 1;
- }
-
- char fname[] = "/tmp/tst-cancel19-dir-XXXXXX\0foo/bar";
- char *enddir = strchr (fname, '\0');
- if (mkdtemp (fname) == NULL)
- {
- error (0, errno, "mkdtemp failed");
- ret = 1;
- }
- *enddir = '/';
-
- clobber_lots_of_regs ();
- creat (fname, 0400);
-
- rc = pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, &old);
- if (rc)
- {
- error (0, rc, "pthread_setcanceltype after creat failed");
- ret = 1;
- }
- if (old != PTHREAD_CANCEL_DEFERRED)
- {
- error (0, 0, "pthread_setcanceltype after creat returned invalid value
%d",
- old);
- ret = 1;
- }
-
- clobber_lots_of_regs ();
- creat (fname, 0400);
-
- rc = pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, &old);
- if (rc)
- {
- error (0, rc, "pthread_setcanceltype after 2nd creat failed");
- ret = 1;
- }
- if (old != PTHREAD_CANCEL_ASYNCHRONOUS)
- {
- error (0, 0, "pthread_setcanceltype after 2nd creat returned invalid value
%d",
- old);
- ret = 1;
- }
-
- clobber_lots_of_regs ();
- open (fname, O_CREAT, 0400);
-
- rc = pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, &old);
- if (rc)
- {
- error (0, rc, "pthread_setcanceltype after open failed");
- ret = 1;
- }
- if (old != PTHREAD_CANCEL_DEFERRED)
- {
- error (0, 0, "pthread_setcanceltype after open returned invalid value
%d",
- old);
- ret = 1;
- }
-
- clobber_lots_of_regs ();
- open (fname, O_CREAT, 0400);
-
- rc = pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, &old);
- if (rc)
- {
- error (0, rc, "pthread_setcanceltype after 2nd open failed");
- ret = 1;
- }
- if (old != PTHREAD_CANCEL_ASYNCHRONOUS)
- {
- error (0, 0, "pthread_setcanceltype after 2nd open returned invalid value
%d",
- old);
- ret = 1;
- }
-
- *enddir = '\0';
- rmdir (fname);
-
- clobber_lots_of_regs ();
- select (-1, NULL, NULL, NULL, NULL);
-
- rc = pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, &old);
- if (rc)
- {
- error (0, rc, "pthread_setcanceltype after select failed");
- ret = 1;
- }
- if (old != PTHREAD_CANCEL_DEFERRED)
- {
- error (0, 0, "pthread_setcanceltype after select returned invalid value
%d",
- old);
- ret = 1;
- }
-
- clobber_lots_of_regs ();
- select (-1, NULL, NULL, NULL, NULL);
-
- rc = pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, &old);
- if (rc)
- {
- error (0, rc, "pthread_setcanceltype after 2nd select failed");
- ret = 1;
- }
- if (old != PTHREAD_CANCEL_ASYNCHRONOUS)
- {
- error (0, 0, "pthread_setcanceltype after 2nd select returned invalid value
%d",
- old);
- ret = 1;
- }
-
- pthread_join (th, NULL);
-
- return ret;
-}
-
-#define TIMEOUT 20
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cancel2.c b/test/nptl/tst-cancel2.c
deleted file mode 100644
index 45c9e8e..0000000
--- a/test/nptl/tst-cancel2.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <unistd.h>
-
-
-static int fd[2];
-
-
-static void *
-tf (void *arg)
-{
- /* The buffer size must be larger than the pipe size so that the
- write blocks. */
- char buf[100000];
-
- if (write (fd[1], buf, sizeof (buf)) == sizeof (buf))
- {
- puts ("write succeeded");
- return (void *) 1l;
- }
-
- return (void *) 42l;
-}
-
-
-static int
-do_test (void)
-{
- pthread_t th;
- void *r;
- struct sigaction sa;
-
- sa.sa_handler = SIG_IGN;
- sigemptyset (&sa.sa_mask);
- sa.sa_flags = 0;
-
- if (sigaction (SIGPIPE, &sa, NULL) != 0)
- {
- puts ("sigaction failed");
- return 1;
- }
-
- if (pipe (fd) != 0)
- {
- puts ("pipe failed");
- return 1;
- }
-
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("create failed");
- return 1;
- }
-
- if (pthread_cancel (th) != 0)
- {
- puts ("cancel failed");
- return 1;
- }
-
- /* This will cause the write in the child to return. */
- close (fd[0]);
-
- if (pthread_join (th, &r) != 0)
- {
- puts ("join failed");
- return 1;
- }
-
- if (r != PTHREAD_CANCELED)
- {
- printf ("result is wrong: expected %p, got %p\n", PTHREAD_CANCELED, r);
- return 1;
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cancel20.c b/test/nptl/tst-cancel20.c
deleted file mode 100644
index 7e9199f..0000000
--- a/test/nptl/tst-cancel20.c
+++ /dev/null
@@ -1,263 +0,0 @@
-/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static int fd[4];
-static pthread_barrier_t b;
-volatile int in_sh_body;
-unsigned long cleanups;
-
-static void
-cl (void *arg)
-{
- cleanups = (cleanups << 4) | (long) arg;
-}
-
-
-static void __attribute__((noinline))
-sh_body (void)
-{
- char c;
-
- pthread_cleanup_push (cl, (void *) 1L);
-
- in_sh_body = 1;
- if (read (fd[2], &c, 1) == 1)
- {
- puts ("read succeeded");
- exit (1);
- }
-
- pthread_cleanup_pop (0);
-}
-
-
-static void
-sh (int sig)
-{
- pthread_cleanup_push (cl, (void *) 2L);
- sh_body ();
- in_sh_body = 0;
-
- pthread_cleanup_pop (0);
-}
-
-
-static void __attribute__((noinline))
-tf_body (void)
-{
- char c;
-
- pthread_cleanup_push (cl, (void *) 3L);
-
- int r = pthread_barrier_wait (&b);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("child thread: barrier_wait failed");
- exit (1);
- }
-
- if (read (fd[0], &c, 1) == 1)
- {
- puts ("read succeeded");
- exit (1);
- }
-
- read (fd[0], &c, 1);
-
- pthread_cleanup_pop (0);
-}
-
-
-static void *
-tf (void *arg)
-{
- pthread_cleanup_push (cl, (void *) 4L);
- tf_body ();
- pthread_cleanup_pop (0);
- return NULL;
-}
-
-
-static int
-do_one_test (void)
-{
- in_sh_body = 0;
- cleanups = 0;
- if (pipe (fd) != 0 || pipe (fd + 2) != 0)
- {
- puts ("pipe failed");
- return 1;
- }
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("create failed");
- return 1;
- }
-
- int r = pthread_barrier_wait (&b);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("parent thread: barrier_wait failed");
- return 1;
- }
-
- sleep (1);
-
- r = pthread_kill (th, SIGHUP);
- if (r)
- {
- errno = r;
- printf ("pthread_kill failed %m\n");
- return 1;
- }
-
- while (in_sh_body == 0)
- sleep (1);
-
- if (pthread_cancel (th) != 0)
- {
- puts ("cancel failed");
- return 1;
- }
-
- /* This will cause the read in the child to return. */
- close (fd[0]);
- close (fd[1]);
- close (fd[2]);
- close (fd[3]);
-
- void *ret;
- if (pthread_join (th, &ret) != 0)
- {
- puts ("join failed");
- return 1;
- }
-
- if (ret != PTHREAD_CANCELED)
- {
- puts ("result is wrong");
- return 1;
- }
-
- if (cleanups != 0x1234L)
- {
- printf ("called cleanups %lx\n", cleanups);
- return 1;
- }
-
- return 0;
-}
-
-
-static int
-do_test (void)
-{
- stack_t ss;
- ss.ss_sp = malloc (2 * SIGSTKSZ);
- if (ss.ss_sp == NULL)
- {
- puts ("failed to allocate alternate stack");
- return 1;
- }
- ss.ss_flags = 0;
- ss.ss_size = 2 * SIGSTKSZ;
- if (sigaltstack (&ss, NULL) < 0)
- {
- printf ("sigaltstack failed %m\n");
- return 1;
- }
-
- if (pthread_barrier_init (&b, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- return 1;
- }
-
- struct sigaction sa;
- sa.sa_handler = sh;
- sigemptyset (&sa.sa_mask);
- sa.sa_flags = 0;
-
- if (sigaction (SIGHUP, &sa, NULL) != 0)
- {
- puts ("sigaction failed");
- return 1;
- }
-
- puts ("sa_flags = 0 test");
- if (do_one_test ())
- return 1;
-
- sa.sa_handler = sh;
- sigemptyset (&sa.sa_mask);
- sa.sa_flags = SA_ONSTACK;
-
- if (sigaction (SIGHUP, &sa, NULL) != 0)
- {
- puts ("sigaction failed");
- return 1;
- }
-
- puts ("sa_flags = SA_ONSTACK test");
- if (do_one_test ())
- return 1;
-
- sa.sa_sigaction = (void (*)(int, siginfo_t *, void *)) sh;
- sigemptyset (&sa.sa_mask);
- sa.sa_flags = SA_SIGINFO;
-
- if (sigaction (SIGHUP, &sa, NULL) != 0)
- {
- puts ("sigaction failed");
- return 1;
- }
-
- puts ("sa_flags = SA_SIGINFO test");
- if (do_one_test ())
- return 1;
-
- sa.sa_sigaction = (void (*)(int, siginfo_t *, void *)) sh;
- sigemptyset (&sa.sa_mask);
- sa.sa_flags = SA_SIGINFO | SA_ONSTACK;
-
- if (sigaction (SIGHUP, &sa, NULL) != 0)
- {
- puts ("sigaction failed");
- return 1;
- }
-
- puts ("sa_flags = SA_SIGINFO|SA_ONSTACK test");
- if (do_one_test ())
- return 1;
-
- return 0;
-}
-
-#define TIMEOUT 40
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cancel21.c b/test/nptl/tst-cancel21.c
deleted file mode 100644
index 489c18a..0000000
--- a/test/nptl/tst-cancel21.c
+++ /dev/null
@@ -1,293 +0,0 @@
-/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/wait.h>
-#include <unistd.h>
-
-
-static int fd[4];
-static pthread_barrier_t b;
-volatile int in_sh_body;
-unsigned long cleanups;
-
-static void
-cl (void *arg)
-{
- cleanups = (cleanups << 4) | (long) arg;
-}
-
-
-static void __attribute__((noinline))
-sh_body (void)
-{
- char c;
-
- pthread_cleanup_push (cl, (void *) 1L);
-
- in_sh_body = 1;
- if (read (fd[2], &c, 1) == 1)
- {
- puts ("read succeeded");
- exit (1);
- }
-
- pthread_cleanup_pop (0);
-}
-
-
-static void
-sh (int sig)
-{
- pthread_cleanup_push (cl, (void *) 2L);
- sh_body ();
- in_sh_body = 0;
-
- pthread_cleanup_pop (0);
-}
-
-
-static void __attribute__((noinline))
-tf_body (void)
-{
- char c;
-
- pthread_cleanup_push (cl, (void *) 3L);
-
- int r = pthread_barrier_wait (&b);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("child thread: barrier_wait failed");
- exit (1);
- }
-
- if (read (fd[0], &c, 1) == 1)
- {
- puts ("read succeeded");
- exit (1);
- }
-
- read (fd[0], &c, 1);
-
- pthread_cleanup_pop (0);
-}
-
-
-static void *
-tf (void *arg)
-{
- pthread_t th = (pthread_t) arg;
-
- int r = pthread_barrier_wait (&b);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("parent thread: barrier_wait failed");
- exit (1);
- }
-
- sleep (1);
-
- r = pthread_kill (th, SIGHUP);
- if (r)
- {
- errno = r;
- printf ("pthread_kill failed %m\n");
- exit (1);
- }
-
- while (in_sh_body == 0)
- sleep (1);
-
- if (pthread_cancel (th) != 0)
- {
- puts ("cancel failed");
- exit (1);
- }
-
- /* This will cause the read in the initial thread to return. */
- close (fd[0]);
- close (fd[1]);
- close (fd[2]);
- close (fd[3]);
-
- void *ret;
- if (pthread_join (th, &ret) != 0)
- {
- puts ("join failed");
- exit (1);
- }
-
- if (ret != PTHREAD_CANCELED)
- {
- puts ("result is wrong");
- exit (1);
- }
-
- if (cleanups != 0x1234L)
- {
- printf ("called cleanups %lx\n", cleanups);
- exit (1);
- }
-
- if (pthread_barrier_destroy (&b))
- {
- puts ("barrier destroy failed");
- exit (1);
- }
-
- exit (0);
-}
-
-
-static int
-do_one_test (void)
-{
- in_sh_body = 0;
-
- pid_t pid = fork ();
-
- if (pid == -1)
- {
- printf ("fork failed: %m\n");
- return 1;
- }
-
- if (pid)
- {
- int status;
- if (waitpid (pid, &status, 0) < 0)
- {
- printf ("waitpid failed %m\n");
- return 1;
- }
-
- return !WIFEXITED (status) || WEXITSTATUS (status);
- }
-
- if (pthread_barrier_init (&b, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- exit (1);
- }
-
- cleanups = 0;
- if (pipe (fd) != 0 || pipe (fd + 2) != 0)
- {
- puts ("pipe failed");
- exit (1);
- }
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, (void *) pthread_self ()) != 0)
- {
- puts ("create failed");
- exit (1);
- }
-
- pthread_cleanup_push (cl, (void *) 4L);
- tf_body ();
- pthread_cleanup_pop (0);
- exit (1);
-}
-
-
-static int
-do_test (void)
-{
- stack_t ss;
- ss.ss_sp = malloc (2 * SIGSTKSZ);
- if (ss.ss_sp == NULL)
- {
- puts ("failed to allocate alternate stack");
- return 1;
- }
- ss.ss_flags = 0;
- ss.ss_size = 2 * SIGSTKSZ;
- if (sigaltstack (&ss, NULL) < 0)
- {
- printf ("sigaltstack failed %m\n");
- return 1;
- }
-
- struct sigaction sa;
- sa.sa_handler = sh;
- sigemptyset (&sa.sa_mask);
- sa.sa_flags = 0;
-
- if (sigaction (SIGHUP, &sa, NULL) != 0)
- {
- puts ("sigaction failed");
- return 1;
- }
-
- puts ("sa_flags = 0 test");
- if (do_one_test ())
- return 1;
-
- sa.sa_handler = sh;
- sigemptyset (&sa.sa_mask);
- sa.sa_flags = SA_ONSTACK;
-
- if (sigaction (SIGHUP, &sa, NULL) != 0)
- {
- puts ("sigaction failed");
- return 1;
- }
-
- puts ("sa_flags = SA_ONSTACK test");
- if (do_one_test ())
- return 1;
-
- sa.sa_sigaction = (void (*)(int, siginfo_t *, void *)) sh;
- sigemptyset (&sa.sa_mask);
- sa.sa_flags = SA_SIGINFO;
-
- if (sigaction (SIGHUP, &sa, NULL) != 0)
- {
- puts ("sigaction failed");
- return 1;
- }
-
- puts ("sa_flags = SA_SIGINFO test");
- if (do_one_test ())
- return 1;
-
- sa.sa_sigaction = (void (*)(int, siginfo_t *, void *)) sh;
- sigemptyset (&sa.sa_mask);
- sa.sa_flags = SA_SIGINFO | SA_ONSTACK;
-
- if (sigaction (SIGHUP, &sa, NULL) != 0)
- {
- puts ("sigaction failed");
- return 1;
- }
-
- puts ("sa_flags = SA_SIGINFO|SA_ONSTACK test");
- if (do_one_test ())
- return 1;
-
- return 0;
-}
-
-#define TIMEOUT 40
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cancel22.c b/test/nptl/tst-cancel22.c
deleted file mode 100644
index 8febbf0..0000000
--- a/test/nptl/tst-cancel22.c
+++ /dev/null
@@ -1,121 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-pthread_barrier_t b;
-int seen;
-
-static void *
-tf (void *arg)
-{
- int i;
- int old;
- int r = pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &old);
- if (r != 0)
- {
- puts ("setcancelstate failed");
- exit (1);
- }
-
- r = pthread_barrier_wait (&b);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- exit (1);
- }
-
- for (i = 0; i < 10; ++i)
- {
- struct timespec ts = { .tv_sec = 0, .tv_nsec = 100000000 };
- TEMP_FAILURE_RETRY (nanosleep (&ts, &ts));
- }
-
- seen = 1;
- pthread_setcancelstate (old, NULL);
-
- struct timespec ts = { .tv_sec = 0, .tv_nsec = 100000000 };
- TEMP_FAILURE_RETRY (nanosleep (&ts, &ts));
-
- exit (1);
-}
-
-
-static int
-do_test (void)
-{
- if (pthread_barrier_init (&b, NULL, 2) != 0)
- {
- puts ("barrier init failed");
- return 1;
- }
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("thread creation failed");
- return 1;
- }
-
- int r = pthread_barrier_wait (&b);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- return 1;
- }
-
- if (pthread_cancel (th) != 0)
- {
- puts ("cancel failed");
- return 1;
- }
-
- void *status;
- if (pthread_join (th, &status) != 0)
- {
- puts ("join failed");
- return 1;
- }
- if (status != PTHREAD_CANCELED)
- {
- puts ("thread not canceled");
- return 1;
- }
-
- if (pthread_barrier_destroy (&b) != 0)
- {
- puts ("barrier_destroy failed");
- return 1;
- }
-
- if (seen != 1)
- {
- puts ("thread cancelled when PTHREAD_CANCEL_DISABLED");
- return 1;
- }
-
- return 0;
-}
-
-#define TIMEOUT 5
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cancel23.c b/test/nptl/tst-cancel23.c
deleted file mode 100644
index 2111687..0000000
--- a/test/nptl/tst-cancel23.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel22.c"
diff --git a/test/nptl/tst-cancel25.c b/test/nptl/tst-cancel25.c
deleted file mode 100644
index 00b99ad..0000000
--- a/test/nptl/tst-cancel25.c
+++ /dev/null
@@ -1,171 +0,0 @@
-#include <pthreadP.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static pthread_barrier_t b;
-static pthread_t th2;
-
-
-static void *
-tf2 (void *arg)
-{
- sigset_t mask;
- if (pthread_sigmask (SIG_SETMASK, NULL, &mask) != 0)
- {
- puts ("pthread_sigmask failed");
- exit (1);
- }
- if (sigismember (&mask, SIGCANCEL))
- {
- puts ("SIGCANCEL blocked in new thread");
- exit (1);
- }
-
- /* Sync with the main thread so that we do not test anything else. */
- int e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- exit (1);
- }
-
- while (1)
- {
- /* Just a cancelable call. */
- struct timespec ts = { 10000, 0 };
- nanosleep (&ts, 0);
- }
-
- return NULL;
-}
-
-
-static void
-unwhand (void *arg)
-{
- if (pthread_create (&th2, NULL, tf2, NULL) != 0)
- {
- puts ("unwhand: create failed");
- exit (1);
- }
-}
-
-
-static void *
-tf (void *arg)
-{
- pthread_cleanup_push (unwhand, NULL);
-
- /* Sync with the main thread so that we do not test anything else. */
- int e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- exit (1);
- }
-
- while (1)
- {
- /* Just a cancelable call. */
- struct timespec ts = { 10000, 0 };
- nanosleep (&ts, 0);
- }
-
- pthread_cleanup_pop (0);
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- if (pthread_barrier_init (&b, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- return 1;
- }
-
- pthread_t th1;
- if (pthread_create (&th1, NULL, tf, NULL) != 0)
- {
- puts ("create failed");
- return 1;
- }
-
- int e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- return 1;
- }
-
- /* Make sure tf1 enters nanosleep. */
- struct timespec ts = { 0, 500000000 };
- while (nanosleep (&ts, &ts) != 0)
- ;
-
- if (pthread_cancel (th1) != 0)
- {
- puts ("1st cancel failed");
- return 1;
- }
-
- void *res;
- if (pthread_join (th1, &res) != 0)
- {
- puts ("1st join failed");
- return 1;
- }
- if (res != PTHREAD_CANCELED)
- {
- puts ("1st thread not canceled");
- return 1;
- }
-
- e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- return 1;
- }
-
- /* Make sure tf2 enters nanosleep. */
- ts.tv_sec = 0;
- ts.tv_nsec = 500000000;
- while (nanosleep (&ts, &ts) != 0)
- ;
-
- puts ("calling pthread_cancel the second time");
- if (pthread_cancel (th2) != 0)
- {
- puts ("2nd cancel failed");
- return 1;
- }
-
- puts ("calling pthread_join the second time");
- if (pthread_join (th2, &res) != 0)
- {
- puts ("2nd join failed");
- return 1;
- }
- if (res != PTHREAD_CANCELED)
- {
- puts ("2nd thread not canceled");
- return 1;
- }
-
- if (pthread_barrier_destroy (&b) != 0)
- {
- puts ("barrier_destroy failed");
- return 0;
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#define TIMEOUT 4
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cancel3.c b/test/nptl/tst-cancel3.c
deleted file mode 100644
index e1c111d..0000000
--- a/test/nptl/tst-cancel3.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <unistd.h>
-
-
-static int fd[2];
-
-
-static void *
-tf (void *arg)
-{
- char buf[100];
-
- if (read (fd[0], buf, sizeof (buf)) == sizeof (buf))
- {
- puts ("read succeeded");
- return (void *) 1l;
- }
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- pthread_t th;
- void *r;
- struct sigaction sa;
-
- sa.sa_handler = SIG_IGN;
- sigemptyset (&sa.sa_mask);
- sa.sa_flags = 0;
-
- if (sigaction (SIGPIPE, &sa, NULL) != 0)
- {
- puts ("sigaction failed");
- return 1;
- }
-
- if (pipe (fd) != 0)
- {
- puts ("pipe failed");
- return 1;
- }
-
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("create failed");
- return 1;
- }
-
- if (pthread_cancel (th) != 0)
- {
- puts ("cancel failed");
- return 1;
- }
-
- /* This will cause the read in the child to return. */
- close (fd[0]);
-
- if (pthread_join (th, &r) != 0)
- {
- puts ("join failed");
- return 1;
- }
-
- if (r != PTHREAD_CANCELED)
- {
- puts ("result is wrong");
- return 1;
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cancel4.c b/test/nptl/tst-cancel4.c
deleted file mode 100644
index ecaf297..0000000
--- a/test/nptl/tst-cancel4.c
+++ /dev/null
@@ -1,2393 +0,0 @@
-/* Copyright (C) 2002, 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* NOTE: this tests functionality beyond POSIX. POSIX does not allow
- exit to be called more than once. */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <limits.h>
-#include <pthread.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <termios.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/msg.h>
-#include <sys/poll.h>
-#include <sys/select.h>
-#include <sys/socket.h>
-#include <sys/uio.h>
-#include <sys/un.h>
-#include <sys/wait.h>
-
-#include "pthreadP.h"
-
-
-/* Since STREAMS are not supported in the standard Linux kernel and
- there we don't advertise STREAMS as supported is no need to test
- the STREAMS related functions. This affects
- getmsg() getpmsg() putmsg()
- putpmsg()
-
- lockf() and fcntl() are tested in tst-cancel16.
-
- pthread_join() is tested in tst-join5.
-
- pthread_testcancel()'s only purpose is to allow cancellation. This
- is tested in several places.
-
- sem_wait() and sem_timedwait() are checked in tst-cancel1[2345] tests.
-
- mq_send(), mq_timedsend(), mq_receive() and mq_timedreceive() are checked
- in tst-mqueue8{,x} tests.
-
- aio_suspend() is tested in tst-cancel17.
-
- clock_nanosleep() is tested in tst-cancel18.
-*/
-
-/* Pipe descriptors. */
-static int fds[2];
-
-/* Temporary file descriptor, to be closed after each round. */
-static int tempfd = -1;
-static int tempfd2 = -1;
-/* Name of temporary file to be removed after each round. */
-static char *tempfname;
-/* Temporary message queue. */
-static int tempmsg = -1;
-
-/* Often used barrier for two threads. */
-static pthread_barrier_t b2;
-
-
-#ifndef IPC_ADDVAL
-# define IPC_ADDVAL 0
-#endif
-
-/* The WRITE_BUFFER_SIZE value needs to be chosen such that if we set
- the socket send buffer size to '1', a write of this size on that
- socket will block.
-
- The Linux kernel imposes a minimum send socket buffer size which
- has changed over the years. As of Linux 3.10 the value is:
-
- 2 * (2048 + SKB_DATA_ALIGN(sizeof(struct sk_buff)))
-
- which is attempting to make sure that with standard MTUs,
- TCP can always queue up at least 2 full sized packets.
-
- Furthermore, there is logic in the socket send paths that
- will allow one more packet (of any size) to be queued up as
- long as some socket buffer space remains. Blocking only
- occurs when we try to queue up a new packet and the send
- buffer space has already been fully consumed.
-
- Therefore we must set this value to the largest possible value of
- the formula above (and since it depends upon the size of "struct
- sk_buff", it is dependent upon machine word size etc.) plus some
- slack space. */
-
-#define WRITE_BUFFER_SIZE 16384
-
-/* Cleanup handling test. */
-static int cl_called;
-
-static void
-cl (void *arg)
-{
- ++cl_called;
-}
-
-
-
-static void *
-tf_read (void *arg)
-{
- int fd;
- int r;
-
- if (arg == NULL)
- fd = fds[0];
- else
- {
- char fname[] = "/tmp/tst-cancel4-fd-XXXXXX";
- tempfd = fd = mkstemp (fname);
- if (fd == -1)
- printf ("%s: mkstemp failed\n", __FUNCTION__);
- unlink (fname);
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
- }
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- ssize_t s;
- pthread_cleanup_push (cl, NULL);
-
- char buf[100];
- s = read (fd, buf, sizeof (buf));
-
- pthread_cleanup_pop (0);
-
- printf ("%s: read returns with %zd\n", __FUNCTION__, s);
-
- exit (1);
-}
-
-
-static void *
-tf_readv (void *arg)
-{
- int fd;
- int r;
-
- if (arg == NULL)
- fd = fds[0];
- else
- {
- char fname[] = "/tmp/tst-cancel4-fd-XXXXXX";
- tempfd = fd = mkstemp (fname);
- if (fd == -1)
- printf ("%s: mkstemp failed\n", __FUNCTION__);
- unlink (fname);
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
- }
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- ssize_t s;
- pthread_cleanup_push (cl, NULL);
-
- char buf[100];
- struct iovec iov[1] = { [0] = { .iov_base = buf, .iov_len = sizeof (buf) } };
- s = readv (fd, iov, 1);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: readv returns with %zd\n", __FUNCTION__, s);
-
- exit (1);
-}
-
-
-static void *
-tf_write (void *arg)
-{
- int fd;
- int r;
-
- if (arg == NULL)
- fd = fds[1];
- else
- {
- char fname[] = "/tmp/tst-cancel4-fd-XXXXXX";
- tempfd = fd = mkstemp (fname);
- if (fd == -1)
- printf ("%s: mkstemp failed\n", __FUNCTION__);
- unlink (fname);
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
- }
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- ssize_t s;
- pthread_cleanup_push (cl, NULL);
-
- char buf[WRITE_BUFFER_SIZE];
- memset (buf, '\0', sizeof (buf));
- s = write (fd, buf, sizeof (buf));
-
- pthread_cleanup_pop (0);
-
- printf ("%s: write returns with %zd\n", __FUNCTION__, s);
-
- exit (1);
-}
-
-
-static void *
-tf_writev (void *arg)
-{
- int fd;
- int r;
-
- if (arg == NULL)
- fd = fds[1];
- else
- {
- char fname[] = "/tmp/tst-cancel4-fd-XXXXXX";
- tempfd = fd = mkstemp (fname);
- if (fd == -1)
- printf ("%s: mkstemp failed\n", __FUNCTION__);
- unlink (fname);
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
- }
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- ssize_t s;
- pthread_cleanup_push (cl, NULL);
-
- char buf[WRITE_BUFFER_SIZE];
- memset (buf, '\0', sizeof (buf));
- struct iovec iov[1] = { [0] = { .iov_base = buf, .iov_len = sizeof (buf) } };
- s = writev (fd, iov, 1);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: writev returns with %zd\n", __FUNCTION__, s);
-
- exit (1);
-}
-
-/* sleep is not early cancelable, disable for now */
-#if 0
-static void *
-tf_sleep (void *arg)
-{
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- if (arg != NULL)
- {
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
- }
-
- pthread_cleanup_push (cl, NULL);
-
- sleep (arg == NULL ? 1000000 : 0);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: sleep returns\n", __FUNCTION__);
-
- exit (1);
-}
-#endif
-
-static void *
-tf_usleep (void *arg)
-{
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- if (arg != NULL)
- {
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: 2nd barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
- }
-
- pthread_cleanup_push (cl, NULL);
-
- usleep (arg == NULL ? (useconds_t) ULONG_MAX : 0);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: usleep returns\n", __FUNCTION__);
-
- exit (1);
-}
-
-
-static void *
-tf_nanosleep (void *arg)
-{
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- if (arg != NULL)
- {
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
- }
-
- pthread_cleanup_push (cl, NULL);
-
- struct timespec ts = { .tv_sec = arg == NULL ? 10000000 : 0, .tv_nsec = 0 };
- TEMP_FAILURE_RETRY (nanosleep (&ts, &ts));
-
- pthread_cleanup_pop (0);
-
- printf ("%s: nanosleep returns\n", __FUNCTION__);
-
- exit (1);
-}
-
-
-static void *
-tf_select (void *arg)
-{
- int fd;
- int r;
-
- if (arg == NULL)
- fd = fds[0];
- else
- {
- char fname[] = "/tmp/tst-cancel4-fd-XXXXXX";
- tempfd = fd = mkstemp (fname);
- if (fd == -1)
- printf ("%s: mkstemp failed\n", __FUNCTION__);
- unlink (fname);
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
- }
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- fd_set rfs;
- FD_ZERO (&rfs);
- FD_SET (fd, &rfs);
-
- int s;
- pthread_cleanup_push (cl, NULL);
-
- s = select (fd + 1, &rfs, NULL, NULL, NULL);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: select returns with %d (%s)\n", __FUNCTION__, s,
- strerror (errno));
-
- exit (1);
-}
-
-
-static void *
-tf_pselect (void *arg)
-{
- int fd;
- int r;
-
- if (arg == NULL)
- fd = fds[0];
- else
- {
- char fname[] = "/tmp/tst-cancel4-fd-XXXXXX";
- tempfd = fd = mkstemp (fname);
- if (fd == -1)
- printf ("%s: mkstemp failed\n", __FUNCTION__);
- unlink (fname);
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
- }
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- fd_set rfs;
- FD_ZERO (&rfs);
- FD_SET (fd, &rfs);
-
- int s;
- pthread_cleanup_push (cl, NULL);
-
- s = pselect (fd + 1, &rfs, NULL, NULL, NULL, NULL);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: pselect returns with %d (%s)\n", __FUNCTION__, s,
- strerror (errno));
-
- exit (1);
-}
-
-
-static void *
-tf_poll (void *arg)
-{
- int fd;
- int r;
-
- if (arg == NULL)
- fd = fds[0];
- else
- {
- char fname[] = "/tmp/tst-cancel4-fd-XXXXXX";
- tempfd = fd = mkstemp (fname);
- if (fd == -1)
- printf ("%s: mkstemp failed\n", __FUNCTION__);
- unlink (fname);
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
- }
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- struct pollfd rfs[1] = { [0] = { .fd = fd, .events = POLLIN } };
-
- int s;
- pthread_cleanup_push (cl, NULL);
-
- s = poll (rfs, 1, -1);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: poll returns with %d (%s)\n", __FUNCTION__, s,
- strerror (errno));
-
- exit (1);
-}
-
-
-static void *
-tf_ppoll (void *arg)
-{
- int fd;
- int r;
-
- if (arg == NULL)
- fd = fds[0];
- else
- {
- char fname[] = "/tmp/tst-cancel4-fd-XXXXXX";
- tempfd = fd = mkstemp (fname);
- if (fd == -1)
- printf ("%s: mkstemp failed\n", __FUNCTION__);
- unlink (fname);
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
- }
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- struct pollfd rfs[1] = { [0] = { .fd = fd, .events = POLLIN } };
-
- int s;
- pthread_cleanup_push (cl, NULL);
-
- s = ppoll (rfs, 1, NULL, NULL);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: ppoll returns with %d (%s)\n", __FUNCTION__, s,
- strerror (errno));
-
- exit (1);
-}
-
-
-static void *
-tf_wait (void *arg)
-{
- pid_t pid = fork ();
- if (pid == -1)
- {
- puts ("fork failed");
- exit (1);
- }
-
- if (pid == 0)
- {
- /* Make the program disappear after a while. */
- if (arg == NULL)
- sleep (10);
- exit (0);
- }
-
- int r;
- if (arg != NULL)
- {
- struct timespec ts = { .tv_sec = 0, .tv_nsec = 100000000 };
- while (nanosleep (&ts, &ts) != 0)
- continue;
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
- }
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- int s;
- pthread_cleanup_push (cl, NULL);
-
- s = wait (NULL);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: wait returns with %d (%s)\n", __FUNCTION__, s,
- strerror (errno));
-
- exit (1);
-}
-
-
-static void *
-tf_waitpid (void *arg)
-{
-
- pid_t pid = fork ();
- if (pid == -1)
- {
- puts ("fork failed");
- exit (1);
- }
-
- if (pid == 0)
- {
- /* Make the program disappear after a while. */
- if (arg == NULL)
- sleep (10);
- exit (0);
- }
-
- int r;
- if (arg != NULL)
- {
- struct timespec ts = { .tv_sec = 0, .tv_nsec = 100000000 };
- while (nanosleep (&ts, &ts) != 0)
- continue;
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
- }
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- int s;
- pthread_cleanup_push (cl, NULL);
-
- s = waitpid (-1, NULL, 0);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: waitpid returns with %d (%s)\n", __FUNCTION__, s,
- strerror (errno));
-
- exit (1);
-}
-
-
-static void *
-tf_waitid (void *arg)
-{
- pid_t pid = fork ();
- if (pid == -1)
- {
- puts ("fork failed");
- exit (1);
- }
-
- if (pid == 0)
- {
- /* Make the program disappear after a while. */
- if (arg == NULL)
- sleep (10);
- exit (0);
- }
-
- int r;
- if (arg != NULL)
- {
- struct timespec ts = { .tv_sec = 0, .tv_nsec = 100000000 };
- while (nanosleep (&ts, &ts) != 0)
- continue;
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
- }
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- int s;
- pthread_cleanup_push (cl, NULL);
-
-#ifndef WEXITED
-# define WEXITED 0
-#endif
- siginfo_t si;
- s = waitid (P_PID, pid, &si, WEXITED);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: waitid returns with %d (%s)\n", __FUNCTION__, s,
- strerror (errno));
-
- exit (1);
-}
-
-
-static void *
-tf_sigpause (void *arg)
-{
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- if (arg != NULL)
- {
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: 2nd barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
- }
-
- pthread_cleanup_push (cl, NULL);
-
- sigpause (SIGCANCEL);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: sigpause returned\n", __FUNCTION__);
-
- exit (1);
-}
-
-
-static void *
-tf_sigsuspend (void *arg)
-{
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- if (arg != NULL)
- {
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: 2nd barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
- }
-
- pthread_cleanup_push (cl, NULL);
-
- /* Just for fun block all signals. */
- sigset_t mask;
- sigfillset (&mask);
- sigsuspend (&mask);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: sigsuspend returned\n", __FUNCTION__);
-
- exit (1);
-}
-
-
-static void *
-tf_sigwait (void *arg)
-{
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- if (arg != NULL)
- {
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: 2nd barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
- }
-
- /* Block SIGUSR1. */
- sigset_t mask;
- sigemptyset (&mask);
- sigaddset (&mask, SIGUSR1);
- if (pthread_sigmask (SIG_BLOCK, &mask, NULL) != 0)
- {
- printf ("%s: pthread_sigmask failed\n", __FUNCTION__);
- exit (1);
- }
-
- int sig;
- pthread_cleanup_push (cl, NULL);
-
- /* Wait for SIGUSR1. */
- sigwait (&mask, &sig);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: sigwait returned with signal %d\n", __FUNCTION__, sig);
-
- exit (1);
-}
-
-
-static void *
-tf_sigwaitinfo (void *arg)
-{
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- if (arg != NULL)
- {
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: 2nd barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
- }
-
- /* Block SIGUSR1. */
- sigset_t mask;
- sigemptyset (&mask);
- sigaddset (&mask, SIGUSR1);
- if (pthread_sigmask (SIG_BLOCK, &mask, NULL) != 0)
- {
- printf ("%s: pthread_sigmask failed\n", __FUNCTION__);
- exit (1);
- }
-
- siginfo_t info;
- pthread_cleanup_push (cl, NULL);
-
- /* Wait for SIGUSR1. */
- sigwaitinfo (&mask, &info);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: sigwaitinfo returned with signal %d\n", __FUNCTION__,
- info.si_signo);
-
- exit (1);
-}
-
-
-static void *
-tf_sigtimedwait (void *arg)
-{
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- if (arg != NULL)
- {
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: 2nd barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
- }
-
- /* Block SIGUSR1. */
- sigset_t mask;
- sigemptyset (&mask);
- sigaddset (&mask, SIGUSR1);
- if (pthread_sigmask (SIG_BLOCK, &mask, NULL) != 0)
- {
- printf ("%s: pthread_sigmask failed\n", __FUNCTION__);
- exit (1);
- }
-
- /* Wait for SIGUSR1. */
- siginfo_t info;
- struct timespec ts = { .tv_sec = 60, .tv_nsec = 0 };
- pthread_cleanup_push (cl, NULL);
-
- sigtimedwait (&mask, &info, &ts);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: sigtimedwait returned with signal %d\n", __FUNCTION__,
- info.si_signo);
-
- exit (1);
-}
-
-
-static void *
-tf_pause (void *arg)
-{
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- if (arg != NULL)
- {
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: 2nd barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
- }
-
- pthread_cleanup_push (cl, NULL);
-
- pause ();
-
- pthread_cleanup_pop (0);
-
- printf ("%s: pause returned\n", __FUNCTION__);
-
- exit (1);
-}
-
-
-static void *
-tf_accept (void *arg)
-{
- struct sockaddr_un sun;
- /* To test a non-blocking accept call we make the call file by using
- a datagrame socket. */
- int pf = arg == NULL ? SOCK_STREAM : SOCK_DGRAM;
-
- tempfd = socket (AF_UNIX, pf, 0);
- if (tempfd == -1)
- {
- printf ("%s: socket call failed\n", __FUNCTION__);
- exit (1);
- }
-
- int tries = 0;
- do
- {
- if (++tries > 10)
- {
- printf ("%s: too many unsuccessful bind calls\n", __FUNCTION__);
- /* prevent endless loop, when bind fails forever */
- exit (1);
- }
-
- strcpy (sun.sun_path, "/tmp/tst-cancel4-socket-1-XXXXXX");
- if (mktemp (sun.sun_path) == NULL)
- {
- printf ("%s: cannot generate temp file name\n", __FUNCTION__);
- exit (1);
- }
- sun.sun_family = AF_UNIX;
- }
- while (bind (tempfd, (struct sockaddr *) &sun,
- offsetof (struct sockaddr_un, sun_path)
- + strlen (sun.sun_path) + 1) != 0);
-
- unlink (sun.sun_path);
-
- listen (tempfd, 5);
-
- socklen_t len = sizeof (sun);
-
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- if (arg != NULL)
- {
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: 2nd barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
- }
-
- pthread_cleanup_push (cl, NULL);
-
- accept (tempfd, (struct sockaddr *) &sun, &len);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: accept returned\n", __FUNCTION__);
-
- exit (1);
-}
-
-
-static void *
-tf_send (void *arg)
-{
- struct sockaddr_un sun;
-
- tempfd = socket (AF_UNIX, SOCK_STREAM, 0);
- if (tempfd == -1)
- {
- printf ("%s: first socket call failed\n", __FUNCTION__);
- exit (1);
- }
-
- int tries = 0;
- do
- {
- if (++tries > 10)
- {
- printf ("%s: too many unsuccessful bind calls\n", __FUNCTION__);
- exit (1);
- }
-
- strcpy (sun.sun_path, "/tmp/tst-cancel4-socket-2-XXXXXX");
- if (mktemp (sun.sun_path) == NULL)
- {
- printf ("%s: cannot generate temp file name\n", __FUNCTION__);
- exit (1);
- }
- sun.sun_family = AF_UNIX;
- }
- while (bind (tempfd, (struct sockaddr *) &sun,
- offsetof (struct sockaddr_un, sun_path)
- + strlen (sun.sun_path) + 1) != 0);
-
- listen (tempfd, 5);
-
- tempfd2 = socket (AF_UNIX, SOCK_STREAM, 0);
- if (tempfd2 == -1)
- {
- printf ("%s: second socket call failed\n", __FUNCTION__);
- exit (1);
- }
-
- if (connect (tempfd2, (struct sockaddr *) &sun, sizeof (sun)) != 0)
- {
- printf ("%s: connect failed\n", __FUNCTION__);
- exit(1);
- }
-
- unlink (sun.sun_path);
-
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- if (arg != NULL)
- {
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: 2nd barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
- }
-
- pthread_cleanup_push (cl, NULL);
-
- /* Very large block, so that the send call blocks. */
- char mem[700000];
-
- send (tempfd2, mem, arg == NULL ? sizeof (mem) : 1, 0);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: send returned\n", __FUNCTION__);
-
- exit (1);
-}
-
-
-static void *
-tf_recv (void *arg)
-{
- struct sockaddr_un sun;
-
- tempfd = socket (AF_UNIX, SOCK_STREAM, 0);
- if (tempfd == -1)
- {
- printf ("%s: first socket call failed\n", __FUNCTION__);
- exit (1);
- }
-
- int tries = 0;
- do
- {
- if (++tries > 10)
- {
- printf ("%s: too many unsuccessful bind calls\n", __FUNCTION__);
- exit (1);
- }
-
- strcpy (sun.sun_path, "/tmp/tst-cancel4-socket-3-XXXXXX");
- if (mktemp (sun.sun_path) == NULL)
- {
- printf ("%s: cannot generate temp file name\n", __FUNCTION__);
- exit (1);
- }
- sun.sun_family = AF_UNIX;
- }
- while (bind (tempfd, (struct sockaddr *) &sun,
- offsetof (struct sockaddr_un, sun_path)
- + strlen (sun.sun_path) + 1) != 0);
-
- listen (tempfd, 5);
-
- tempfd2 = socket (AF_UNIX, SOCK_STREAM, 0);
- if (tempfd2 == -1)
- {
- printf ("%s: second socket call failed\n", __FUNCTION__);
- exit (1);
- }
-
- if (connect (tempfd2, (struct sockaddr *) &sun, sizeof (sun)) != 0)
- {
- printf ("%s: connect failed\n", __FUNCTION__);
- exit(1);
- }
-
- unlink (sun.sun_path);
-
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- if (arg != NULL)
- {
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: 2nd barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
- }
-
- pthread_cleanup_push (cl, NULL);
-
- char mem[70];
-
- recv (tempfd2, mem, arg == NULL ? sizeof (mem) : 0, 0);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: recv returned\n", __FUNCTION__);
-
- exit (1);
-}
-
-
-static void *
-tf_recvfrom (void *arg)
-{
- struct sockaddr_un sun;
-
- tempfd = socket (AF_UNIX, SOCK_DGRAM, 0);
- if (tempfd == -1)
- {
- printf ("%s: first socket call failed\n", __FUNCTION__);
- exit (1);
- }
-
- int tries = 0;
- do
- {
- if (++tries > 10)
- {
- printf ("%s: too many unsuccessful bind calls\n", __FUNCTION__);
- exit (1);
- }
-
- strcpy (sun.sun_path, "/tmp/tst-cancel4-socket-4-XXXXXX");
- if (mktemp (sun.sun_path) == NULL)
- {
- printf ("%s: cannot generate temp file name\n", __FUNCTION__);
- exit (1);
- }
- sun.sun_family = AF_UNIX;
- }
- while (bind (tempfd, (struct sockaddr *) &sun,
- offsetof (struct sockaddr_un, sun_path)
- + strlen (sun.sun_path) + 1) != 0);
-
- tempfname = strdup (sun.sun_path);
-
- tempfd2 = socket (AF_UNIX, SOCK_DGRAM, 0);
- if (tempfd2 == -1)
- {
- printf ("%s: second socket call failed\n", __FUNCTION__);
- exit (1);
- }
-
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- if (arg != NULL)
- {
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: 2nd barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
- }
-
- pthread_cleanup_push (cl, NULL);
-
- char mem[70];
- socklen_t len = sizeof (sun);
-
- recvfrom (tempfd2, mem, arg == NULL ? sizeof (mem) : 0, 0,
- (struct sockaddr *) &sun, &len);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: recvfrom returned\n", __FUNCTION__);
-
- exit (1);
-}
-
-
-static void *
-tf_recvmsg (void *arg)
-{
- struct sockaddr_un sun;
-
- tempfd = socket (AF_UNIX, SOCK_DGRAM, 0);
- if (tempfd == -1)
- {
- printf ("%s: first socket call failed\n", __FUNCTION__);
- exit (1);
- }
-
- int tries = 0;
- do
- {
- if (++tries > 10)
- {
- printf ("%s: too many unsuccessful bind calls\n", __FUNCTION__);
- exit (1);
- }
-
- strcpy (sun.sun_path, "/tmp/tst-cancel4-socket-5-XXXXXX");
- if (mktemp (sun.sun_path) == NULL)
- {
- printf ("%s: cannot generate temp file name\n", __FUNCTION__);
- exit (1);
- }
- sun.sun_family = AF_UNIX;
- }
- while (bind (tempfd, (struct sockaddr *) &sun,
- offsetof (struct sockaddr_un, sun_path)
- + strlen (sun.sun_path) + 1) != 0);
-
- tempfname = strdup (sun.sun_path);
-
- tempfd2 = socket (AF_UNIX, SOCK_DGRAM, 0);
- if (tempfd2 == -1)
- {
- printf ("%s: second socket call failed\n", __FUNCTION__);
- exit (1);
- }
-
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- if (arg != NULL)
- {
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: 2nd barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
- }
-
- pthread_cleanup_push (cl, NULL);
-
- char mem[70];
- struct iovec iov[1];
- iov[0].iov_base = mem;
- iov[0].iov_len = arg == NULL ? sizeof (mem) : 0;
-
- struct msghdr m;
- m.msg_name = &sun;
- m.msg_namelen = sizeof (sun);
- m.msg_iov = iov;
- m.msg_iovlen = 1;
- m.msg_control = NULL;
- m.msg_controllen = 0;
-
- recvmsg (tempfd2, &m, 0);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: recvmsg returned\n", __FUNCTION__);
-
- exit (1);
-}
-
-
-static void *
-tf_open (void *arg)
-{
- if (arg == NULL)
- // XXX If somebody can provide a portable test case in which open()
- // blocks we can enable this test to run in both rounds.
- abort ();
-
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: 2nd barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- pthread_cleanup_push (cl, NULL);
-
- open ("Makefile", O_RDONLY);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: open returned\n", __FUNCTION__);
-
- exit (1);
-}
-
-
-static void *
-tf_close (void *arg)
-{
- if (arg == NULL)
- // XXX If somebody can provide a portable test case in which close()
- // blocks we can enable this test to run in both rounds.
- abort ();
-
- char fname[] = "/tmp/tst-cancel-fd-XXXXXX";
- tempfd = mkstemp (fname);
- if (tempfd == -1)
- {
- printf ("%s: mkstemp failed\n", __FUNCTION__);
- exit (1);
- }
- unlink (fname);
-
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: 2nd barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- pthread_cleanup_push (cl, NULL);
-
- close (tempfd);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: close returned\n", __FUNCTION__);
-
- exit (1);
-}
-
-
-static void *
-tf_pread (void *arg)
-{
- if (arg == NULL)
- // XXX If somebody can provide a portable test case in which pread()
- // blocks we can enable this test to run in both rounds.
- abort ();
-
- tempfd = open ("Makefile", O_RDONLY);
- if (tempfd == -1)
- {
- printf ("%s: cannot open Makefile\n", __FUNCTION__);
- exit (1);
- }
-
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: 2nd barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- pthread_cleanup_push (cl, NULL);
-
- char mem[10];
- pread (tempfd, mem, sizeof (mem), 0);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: pread returned\n", __FUNCTION__);
-
- exit (1);
-}
-
-
-static void *
-tf_pwrite (void *arg)
-{
- if (arg == NULL)
- // XXX If somebody can provide a portable test case in which pwrite()
- // blocks we can enable this test to run in both rounds.
- abort ();
-
- char fname[] = "/tmp/tst-cancel4-fd-XXXXXX";
- tempfd = mkstemp (fname);
- if (tempfd == -1)
- {
- printf ("%s: mkstemp failed\n", __FUNCTION__);
- exit (1);
- }
- unlink (fname);
-
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: 2nd barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- pthread_cleanup_push (cl, NULL);
-
- char mem[10];
- pwrite (tempfd, mem, sizeof (mem), 0);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: pwrite returned\n", __FUNCTION__);
-
- exit (1);
-}
-
-
-static void *
-tf_fsync (void *arg)
-{
- if (arg == NULL)
- // XXX If somebody can provide a portable test case in which fsync()
- // blocks we can enable this test to run in both rounds.
- abort ();
-
- tempfd = open ("Makefile", O_RDONLY);
- if (tempfd == -1)
- {
- printf ("%s: cannot open Makefile\n", __FUNCTION__);
- exit (1);
- }
-
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: 2nd barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- pthread_cleanup_push (cl, NULL);
-
- fsync (tempfd);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: fsync returned\n", __FUNCTION__);
-
- exit (1);
-}
-
-
-static void *
-tf_fdatasync (void *arg)
-{
- if (arg == NULL)
- // XXX If somebody can provide a portable test case in which fdatasync()
- // blocks we can enable this test to run in both rounds.
- abort ();
-
- tempfd = open ("Makefile", O_RDONLY);
- if (tempfd == -1)
- {
- printf ("%s: cannot open Makefile\n", __FUNCTION__);
- exit (1);
- }
-
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: 2nd barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- pthread_cleanup_push (cl, NULL);
-
- fdatasync (tempfd);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: fdatasync returned\n", __FUNCTION__);
-
- exit (1);
-}
-
-
-static void *
-tf_msync (void *arg)
-{
- if (arg == NULL)
- // XXX If somebody can provide a portable test case in which msync()
- // blocks we can enable this test to run in both rounds.
- abort ();
-
- tempfd = open ("Makefile", O_RDONLY);
- if (tempfd == -1)
- {
- printf ("%s: cannot open Makefile\n", __FUNCTION__);
- exit (1);
- }
- void *p = mmap (NULL, 10, PROT_READ, MAP_SHARED, tempfd, 0);
- if (p == MAP_FAILED)
- {
- printf ("%s: mmap failed\n", __FUNCTION__);
- exit (1);
- }
-
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: 2nd barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- pthread_cleanup_push (cl, NULL);
-
- msync (p, 10, 0);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: msync returned\n", __FUNCTION__);
-
- exit (1);
-}
-
-
-static void *
-tf_sendto (void *arg)
-{
- if (arg == NULL)
- // XXX If somebody can provide a portable test case in which sendto()
- // blocks we can enable this test to run in both rounds.
- abort ();
-
- struct sockaddr_un sun;
-
- tempfd = socket (AF_UNIX, SOCK_DGRAM, 0);
- if (tempfd == -1)
- {
- printf ("%s: first socket call failed\n", __FUNCTION__);
- exit (1);
- }
-
- int tries = 0;
- do
- {
- if (++tries > 10)
- {
- printf ("%s: too many unsuccessful bind calls\n", __FUNCTION__);
- exit (1);
- }
-
- strcpy (sun.sun_path, "/tmp/tst-cancel4-socket-6-XXXXXX");
- if (mktemp (sun.sun_path) == NULL)
- {
- printf ("%s: cannot generate temp file name\n", __FUNCTION__);
- exit (1);
- }
- sun.sun_family = AF_UNIX;
- }
- while (bind (tempfd, (struct sockaddr *) &sun,
- offsetof (struct sockaddr_un, sun_path)
- + strlen (sun.sun_path) + 1) != 0);
- tempfname = strdup (sun.sun_path);
-
- tempfd2 = socket (AF_UNIX, SOCK_DGRAM, 0);
- if (tempfd2 == -1)
- {
- printf ("%s: second socket call failed\n", __FUNCTION__);
- exit (1);
- }
-
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: 2nd barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- pthread_cleanup_push (cl, NULL);
-
- char mem[1];
-
- sendto (tempfd2, mem, arg == NULL ? sizeof (mem) : 1, 0,
- (struct sockaddr *) &sun,
- offsetof (struct sockaddr_un, sun_path) + strlen (sun.sun_path) + 1);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: sendto returned\n", __FUNCTION__);
-
- exit (1);
-}
-
-
-static void *
-tf_sendmsg (void *arg)
-{
- if (arg == NULL)
- // XXX If somebody can provide a portable test case in which sendmsg()
- // blocks we can enable this test to run in both rounds.
- abort ();
-
- struct sockaddr_un sun;
-
- tempfd = socket (AF_UNIX, SOCK_DGRAM, 0);
- if (tempfd == -1)
- {
- printf ("%s: first socket call failed\n", __FUNCTION__);
- exit (1);
- }
-
- int tries = 0;
- do
- {
- if (++tries > 10)
- {
- printf ("%s: too many unsuccessful bind calls\n", __FUNCTION__);
- exit (1);
- }
-
- strcpy (sun.sun_path, "/tmp/tst-cancel4-socket-7-XXXXXX");
- if (mktemp (sun.sun_path) == NULL)
- {
- printf ("%s: cannot generate temp file name\n", __FUNCTION__);
- exit (1);
- }
- sun.sun_family = AF_UNIX;
- }
- while (bind (tempfd, (struct sockaddr *) &sun,
- offsetof (struct sockaddr_un, sun_path)
- + strlen (sun.sun_path) + 1) != 0);
- tempfname = strdup (sun.sun_path);
-
- tempfd2 = socket (AF_UNIX, SOCK_DGRAM, 0);
- if (tempfd2 == -1)
- {
- printf ("%s: second socket call failed\n", __FUNCTION__);
- exit (1);
- }
-
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: 2nd barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- pthread_cleanup_push (cl, NULL);
-
- char mem[1];
- struct iovec iov[1];
- iov[0].iov_base = mem;
- iov[0].iov_len = 1;
-
- struct msghdr m;
- m.msg_name = &sun;
- m.msg_namelen = (offsetof (struct sockaddr_un, sun_path)
- + strlen (sun.sun_path) + 1);
- m.msg_iov = iov;
- m.msg_iovlen = 1;
- m.msg_control = NULL;
- m.msg_controllen = 0;
-
- sendmsg (tempfd2, &m, 0);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: sendmsg returned\n", __FUNCTION__);
-
- exit (1);
-}
-
-
-static void *
-tf_creat (void *arg)
-{
- if (arg == NULL)
- // XXX If somebody can provide a portable test case in which sendmsg()
- // blocks we can enable this test to run in both rounds.
- abort ();
-
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: 2nd barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- pthread_cleanup_push (cl, NULL);
-
- creat ("tmp/tst-cancel-4-should-not-exist", 0666);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: creat returned\n", __FUNCTION__);
-
- exit (1);
-}
-
-
-static void *
-tf_connect (void *arg)
-{
- if (arg == NULL)
- // XXX If somebody can provide a portable test case in which connect()
- // blocks we can enable this test to run in both rounds.
- abort ();
-
- struct sockaddr_un sun;
-
- tempfd = socket (AF_UNIX, SOCK_STREAM, 0);
- if (tempfd == -1)
- {
- printf ("%s: first socket call failed\n", __FUNCTION__);
- exit (1);
- }
-
- int tries = 0;
- do
- {
- if (++tries > 10)
- {
- printf ("%s: too many unsuccessful bind calls\n", __FUNCTION__);
- exit (1);
- }
-
- strcpy (sun.sun_path, "/tmp/tst-cancel4-socket-2-XXXXXX");
- if (mktemp (sun.sun_path) == NULL)
- {
- printf ("%s: cannot generate temp file name\n", __FUNCTION__);
- exit (1);
- }
- sun.sun_family = AF_UNIX;
- }
- while (bind (tempfd, (struct sockaddr *) &sun,
- offsetof (struct sockaddr_un, sun_path)
- + strlen (sun.sun_path) + 1) != 0);
- tempfname = strdup (sun.sun_path);
-
- listen (tempfd, 5);
-
- tempfd2 = socket (AF_UNIX, SOCK_STREAM, 0);
- if (tempfd2 == -1)
- {
- printf ("%s: second socket call failed\n", __FUNCTION__);
- exit (1);
- }
-
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- if (arg != NULL)
- {
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: 2nd barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
- }
-
- pthread_cleanup_push (cl, NULL);
-
- connect (tempfd2, (struct sockaddr *) &sun, sizeof (sun));
-
- pthread_cleanup_pop (0);
-
- printf ("%s: connect returned\n", __FUNCTION__);
-
- exit (1);
-}
-
-
-static void *
-tf_tcdrain (void *arg)
-{
- if (arg == NULL)
- // XXX If somebody can provide a portable test case in which tcdrain()
- // blocks we can enable this test to run in both rounds.
- abort ();
-
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- if (arg != NULL)
- {
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: 2nd barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
- }
-
- pthread_cleanup_push (cl, NULL);
-
- /* Regardless of stderr being a terminal, the tcdrain call should be
- canceled. */
- tcdrain (STDERR_FILENO);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: tcdrain returned\n", __FUNCTION__);
-
- exit (1);
-}
-
-
-static void *
-tf_msgrcv (void *arg)
-{
- tempmsg = msgget (IPC_PRIVATE, 0666 | IPC_CREAT);
- if (tempmsg == -1)
- {
- printf ("%s: msgget failed: %s\n", __FUNCTION__, strerror (errno));
- exit (1);
- }
-
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- if (arg != NULL)
- {
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: 2nd barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
- }
-
- ssize_t s;
-
- pthread_cleanup_push (cl, NULL);
-
- struct
- {
- long int type;
- char mem[10];
- } m;
- int randnr;
- /* We need a positive random number. */
- do
- randnr = random () % 64000;
- while (randnr <= 0);
- do
- {
- errno = 0;
- s = msgrcv (tempmsg, (struct msgbuf *) &m, 10, randnr, 0);
- }
- while (errno == EIDRM || errno == EINTR);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: msgrcv returned %zd with errno = %m\n", __FUNCTION__, s);
-
- msgctl (tempmsg, IPC_RMID, NULL);
-
- exit (1);
-}
-
-
-static void *
-tf_msgsnd (void *arg)
-{
- if (arg == NULL)
- // XXX If somebody can provide a portable test case in which msgsnd()
- // blocks we can enable this test to run in both rounds.
- abort ();
-
- tempmsg = msgget (IPC_PRIVATE, 0666 | IPC_CREAT);
- if (tempmsg == -1)
- {
- printf ("%s: msgget failed: %s\n", __FUNCTION__, strerror (errno));
- exit (1);
- }
-
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: 2nd barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- pthread_cleanup_push (cl, NULL);
-
- struct
- {
- long int type;
- char mem[1];
- } m;
- /* We need a positive random number. */
- do
- m.type = random () % 64000;
- while (m.type <= 0);
- msgsnd (tempmsg, (struct msgbuf *) &m, sizeof (m.mem), 0);
-
- pthread_cleanup_pop (0);
-
- printf ("%s: msgsnd returned\n", __FUNCTION__);
-
- msgctl (tempmsg, IPC_RMID, NULL);
-
- exit (1);
-}
-
-
-static struct
-{
- const char *name;
- void *(*tf) (void *);
- int nb;
- int only_early;
-} tests[] =
-{
-#define ADD_TEST(name, nbar, early) { #name, tf_##name, nbar, early }
- ADD_TEST (read, 2, 0),
- ADD_TEST (readv, 2, 0),
- ADD_TEST (select, 2, 0),
- ADD_TEST (pselect, 2, 0),
- ADD_TEST (poll, 2, 0),
- ADD_TEST (ppoll, 2, 0),
- ADD_TEST (write, 2, 0),
- ADD_TEST (writev, 2, 0),
- ADD_TEST (usleep, 2, 0),
- ADD_TEST (nanosleep, 2, 0),
- ADD_TEST (wait, 2, 0),
- ADD_TEST (waitid, 2, 0),
- ADD_TEST (waitpid, 2, 0),
- ADD_TEST (sigpause, 2, 0),
- ADD_TEST (sigsuspend, 2, 0),
- ADD_TEST (sigwait, 2, 0),
- ADD_TEST (sigwaitinfo, 2, 0),
- ADD_TEST (sigtimedwait, 2, 0),
- ADD_TEST (pause, 2, 0),
- ADD_TEST (accept, 2, 0),
- ADD_TEST (send, 2, 0),
- ADD_TEST (recv, 2, 0),
- ADD_TEST (recvfrom, 2, 0),
- ADD_TEST (recvmsg, 2, 0),
- ADD_TEST (open, 2, 1),
- ADD_TEST (close, 2, 1),
- ADD_TEST (pread, 2, 1),
- ADD_TEST (pwrite, 2, 1),
- ADD_TEST (fsync, 2, 1),
- ADD_TEST (fdatasync, 2, 1),
- ADD_TEST (msync, 2, 1),
- ADD_TEST (sendto, 2, 1),
- ADD_TEST (sendmsg, 2, 1),
- ADD_TEST (creat, 2, 1),
- ADD_TEST (connect, 2, 1),
- ADD_TEST (tcdrain, 2, 1),
- ADD_TEST (msgrcv, 2, 0),
- ADD_TEST (msgsnd, 2, 1),
-};
-#define ntest_tf (sizeof (tests) / sizeof (tests[0]))
-
-
-static int
-do_test (void)
-{
- int val;
- socklen_t len;
-
- if (socketpair (AF_UNIX, SOCK_STREAM, PF_UNIX, fds) != 0)
- {
- perror ("socketpair");
- exit (1);
- }
-
- val = 1;
- len = sizeof(val);
- setsockopt (fds[1], SOL_SOCKET, SO_SNDBUF, &val, sizeof(val));
- if (getsockopt (fds[1], SOL_SOCKET, SO_SNDBUF, &val, &len) < 0)
- {
- perror ("getsockopt");
- exit (1);
- }
- if (val >= WRITE_BUFFER_SIZE)
- {
- puts ("minimum write buffer size too large");
- exit (1);
- }
- setsockopt (fds[1], SOL_SOCKET, SO_SNDBUF, &val, sizeof(val));
-
- int result = 0;
- size_t cnt;
- for (cnt = 0; cnt < ntest_tf; ++cnt)
- {
- if (tests[cnt].only_early)
- continue;
-
- if (pthread_barrier_init (&b2, NULL, tests[cnt].nb) != 0)
- {
- puts ("b2 init failed");
- exit (1);
- }
-
- /* Reset the counter for the cleanup handler. */
- cl_called = 0;
-
- pthread_t th;
- if (pthread_create (&th, NULL, tests[cnt].tf, NULL) != 0)
- {
- printf ("create for '%s' test failed\n", tests[cnt].name);
- result = 1;
- continue;
- }
-
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- result = 1;
- continue;
- }
-
- struct timespec ts = { .tv_sec = 0, .tv_nsec = 100000000 };
- while (nanosleep (&ts, &ts) != 0)
- continue;
-
- if (pthread_cancel (th) != 0)
- {
- printf ("cancel for '%s' failed\n", tests[cnt].name);
- result = 1;
- continue;
- }
-
- void *status;
- if (pthread_join (th, &status) != 0)
- {
- printf ("join for '%s' failed\n", tests[cnt].name);
- result = 1;
- continue;
- }
- if (status != PTHREAD_CANCELED)
- {
- printf ("thread for '%s' not canceled\n", tests[cnt].name);
- result = 1;
- continue;
- }
-
- if (pthread_barrier_destroy (&b2) != 0)
- {
- puts ("barrier_destroy failed");
- result = 1;
- continue;
- }
-
- if (cl_called == 0)
- {
- printf ("cleanup handler not called for '%s'\n", tests[cnt].name);
- result = 1;
- continue;
- }
- if (cl_called > 1)
- {
- printf ("cleanup handler called more than once for '%s'\n",
- tests[cnt].name);
- result = 1;
- continue;
- }
-
- printf ("in-time cancel test of '%s' successful\n",
tests[cnt].name);
-
- if (tempfd != -1)
- {
- close (tempfd);
- tempfd = -1;
- }
- if (tempfd2 != -1)
- {
- close (tempfd2);
- tempfd2 = -1;
- }
- if (tempfname != NULL)
- {
- unlink (tempfname);
- free (tempfname);
- tempfname = NULL;
- }
- if (tempmsg != -1)
- {
- msgctl (tempmsg, IPC_RMID, NULL);
- tempmsg = -1;
- }
- }
-
- for (cnt = 0; cnt < ntest_tf; ++cnt)
- {
- if (pthread_barrier_init (&b2, NULL, tests[cnt].nb) != 0)
- {
- puts ("b2 init failed");
- exit (1);
- }
-
- /* Reset the counter for the cleanup handler. */
- cl_called = 0;
-
- pthread_t th;
- if (pthread_create (&th, NULL, tests[cnt].tf, (void *) 1l) != 0)
- {
- printf ("create for '%s' test failed\n", tests[cnt].name);
- result = 1;
- continue;
- }
-
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- result = 1;
- continue;
- }
-
- if (pthread_cancel (th) != 0)
- {
- printf ("cancel for '%s' failed\n", tests[cnt].name);
- result = 1;
- continue;
- }
-
- r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- result = 1;
- continue;
- }
-
- void *status;
- if (pthread_join (th, &status) != 0)
- {
- printf ("join for '%s' failed\n", tests[cnt].name);
- result = 1;
- continue;
- }
- if (status != PTHREAD_CANCELED)
- {
- printf ("thread for '%s' not canceled\n", tests[cnt].name);
- result = 1;
- continue;
- }
-
- if (pthread_barrier_destroy (&b2) != 0)
- {
- puts ("barrier_destroy failed");
- result = 1;
- continue;
- }
-
- if (cl_called == 0)
- {
- printf ("cleanup handler not called for '%s'\n", tests[cnt].name);
- result = 1;
- continue;
- }
- if (cl_called > 1)
- {
- printf ("cleanup handler called more than once for '%s'\n",
- tests[cnt].name);
- result = 1;
- continue;
- }
-
- printf ("early cancel test of '%s' successful\n",
tests[cnt].name);
-
- if (tempfd != -1)
- {
- close (tempfd);
- tempfd = -1;
- }
- if (tempfd2 != -1)
- {
- close (tempfd2);
- tempfd2 = -1;
- }
- if (tempfname != NULL)
- {
- unlink (tempfname);
- free (tempfname);
- tempfname = NULL;
- }
- if (tempmsg != -1)
- {
- msgctl (tempmsg, IPC_RMID, NULL);
- tempmsg = -1;
- }
- }
-
- return result;
-}
-
-#define TIMEOUT 60
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cancel5.c b/test/nptl/tst-cancel5.c
deleted file mode 100644
index 1c879eb..0000000
--- a/test/nptl/tst-cancel5.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel4.c"
diff --git a/test/nptl/tst-cancel6.c b/test/nptl/tst-cancel6.c
deleted file mode 100644
index 4e11277..0000000
--- a/test/nptl/tst-cancel6.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static void *
-tf (void *arg)
-{
- char buf[100];
- fgets (buf, sizeof (buf), arg);
- /* This call should never return. */
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- int fd[2];
- if (pipe (fd) != 0)
- {
- puts ("pipe failed");
- return 1;
- }
-
- FILE *fp = fdopen (fd[0], "r");
- if (fp == NULL)
- {
- puts ("fdopen failed");
- return 1;
- }
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, fp) != 0)
- {
- puts ("pthread_create failed");
- return 1;
- }
-
- sleep (1);
-
- if (pthread_cancel (th) != 0)
- {
- puts ("pthread_cancel failed");
- return 1;
- }
-
- void *r;
- if (pthread_join (th, &r) != 0)
- {
- puts ("pthread_join failed");
- return 1;
- }
-
- return r != PTHREAD_CANCELED;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cancel7.c b/test/nptl/tst-cancel7.c
deleted file mode 100644
index 9e7d22e..0000000
--- a/test/nptl/tst-cancel7.c
+++ /dev/null
@@ -1,208 +0,0 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-const char *command;
-const char *pidfile;
-char pidfilename[] = "/tmp/tst-cancel7-XXXXXX";
-
-static void *
-tf (void *arg)
-{
- const char *args = " -d -p ";
- char *cmd = alloca (strlen (command) + strlen (args)
- + strlen (pidfilename) + 1);
-
- strcpy (stpcpy (stpcpy (cmd, command), args), pidfilename);
- system (cmd);
- /* This call should never return. */
- return NULL;
-}
-
-
-static void
-sl (void)
-{
- FILE *f = fopen (pidfile, "w");
- if (f == NULL)
- exit (1);
-
- fprintf (f, "%lld\n", (long long) getpid ());
- fflush (f);
-
- struct flock fl =
- {
- .l_type = F_WRLCK,
- .l_start = 0,
- .l_whence = SEEK_SET,
- .l_len = 1
- };
- if (fcntl (fileno (f), F_SETLK, &fl) != 0)
- exit (1);
-
- sigset_t ss;
- sigfillset (&ss);
- sigsuspend (&ss);
- exit (0);
-}
-
-
-static void
-do_prepare (int argc, char *argv[])
-{
- if (command == NULL)
- command = argv[0];
-
- if (pidfile)
- sl ();
-
- int fd = mkstemp (pidfilename);
- if (fd == -1)
- {
- puts ("mkstemp failed");
- exit (1);
- }
-
- write (fd, " ", 1);
- close (fd);
-}
-
-
-static int
-do_test (void)
-{
- pthread_t th;
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("pthread_create failed");
- return 1;
- }
-
- do
- sleep (1);
- while (access (pidfilename, R_OK) != 0);
-
- if (pthread_cancel (th) != 0)
- {
- puts ("pthread_cancel failed");
- return 1;
- }
-
- void *r;
- if (pthread_join (th, &r) != 0)
- {
- puts ("pthread_join failed");
- return 1;
- }
-
- sleep (1);
-
- FILE *f = fopen (pidfilename, "r+");
- if (f == NULL)
- {
- puts ("no pidfile");
- return 1;
- }
-
- long long ll;
- if (fscanf (f, "%lld\n", &ll) != 1)
- {
- puts ("could not read pid");
- unlink (pidfilename);
- return 1;
- }
-
- struct flock fl =
- {
- .l_type = F_WRLCK,
- .l_start = 0,
- .l_whence = SEEK_SET,
- .l_len = 1
- };
- if (fcntl (fileno (f), F_GETLK, &fl) != 0)
- {
- puts ("F_GETLK failed");
- unlink (pidfilename);
- return 1;
- }
-
- if (fl.l_type != F_UNLCK)
- {
- printf ("child %lld still running\n", (long long) fl.l_pid);
- if (fl.l_pid == ll)
- kill (fl.l_pid, SIGKILL);
-
- unlink (pidfilename);
- return 1;
- }
-
- fclose (f);
-
- unlink (pidfilename);
-
- return r != PTHREAD_CANCELED;
-}
-
-#if 0 /* unused */
-static void
-do_cleanup (void)
-{
- FILE *f = fopen (pidfilename, "r+");
- long long ll;
-
- if (f != NULL && fscanf (f, "%lld\n", &ll) == 1)
- {
- struct flock fl =
- {
- .l_type = F_WRLCK,
- .l_start = 0,
- .l_whence = SEEK_SET,
- .l_len = 1
- };
- if (fcntl (fileno (f), F_GETLK, &fl) == 0 && fl.l_type != F_UNLCK
- && fl.l_pid == ll)
- kill (fl.l_pid, SIGKILL);
-
- fclose (f);
- }
-
- unlink (pidfilename);
-}
-#endif
-
-#define CMDLINE_OPTIONS \
- "c:p:"
-#define CMDLINE_PROCESS \
- case 'c': \
- command = optarg; \
- break; \
- case 'p': \
- pidfile = optarg; \
- break;
-#define PREPARE(argc, argv) do_prepare (argc, argv)
-#define TEST_FUNCTION do_test ()
-#define TIMEOUT 5
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cancel8.c b/test/nptl/tst-cancel8.c
deleted file mode 100644
index 1c91d47..0000000
--- a/test/nptl/tst-cancel8.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static pthread_barrier_t bar;
-
-static int global;
-
-
-static void
-cleanup (void *arg)
-{
- global = 1;
-}
-
-
-static void *
-tf (void *arg)
-{
- /* Enable cancellation, but defer it. */
- if (pthread_setcancelstate (PTHREAD_CANCEL_ENABLE, NULL) != 0)
- {
- puts ("setcancelstate failed");
- exit (1);
- }
- if (pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, NULL) != 0)
- {
- puts ("setcanceltype failed");
- exit (1);
- }
-
- /* Add cleanup handler. */
- pthread_cleanup_push (cleanup, NULL);
-
- /* Synchronize with the main thread. */
- int r = pthread_barrier_wait (&bar);
- if (r != 0 && r!= PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("tf: first barrier_wait failed");
- exit (1);
- }
-
- /* And again. Once this is done the main thread should have canceled
- this thread. */
- r = pthread_barrier_wait (&bar);
- if (r != 0 && r!= PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("tf: second barrier_wait failed");
- exit (1);
- }
-
- /* Remove the cleanup handler without executing it. */
- pthread_cleanup_pop (0);
-
- /* Now react on the cancellation. */
- pthread_testcancel ();
-
- /* This call should never return. */
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- if (pthread_barrier_init (&bar, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- exit (1);
- }
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("pthread_create failed");
- return 1;
- }
-
- int r = pthread_barrier_wait (&bar);
- if (r != 0 && r!= PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("first barrier_wait failed");
- exit (1);
- }
-
- if (pthread_cancel (th) != 0)
- {
- puts ("pthread_cancel failed");
- return 1;
- }
-
- r = pthread_barrier_wait (&bar);
- if (r != 0 && r!= PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("second barrier_wait failed");
- exit (1);
- }
-
- void *result;
- if (pthread_join (th, &result) != 0)
- {
- puts ("pthread_join failed");
- return 1;
- }
-
- if (result != PTHREAD_CANCELED)
- {
- puts ("thread was not canceled");
- exit (1);
- }
-
- if (global != 0)
- {
- puts ("cancellation handler has been called");
- exit (1);
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cancel9.c b/test/nptl/tst-cancel9.c
deleted file mode 100644
index 40a62c5..0000000
--- a/test/nptl/tst-cancel9.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fcntl.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-
-static pthread_barrier_t b;
-
-
-static void
-cleanup (void *arg)
-{
- fputs ("in cleanup\n", stdout);
-}
-
-
-static void *
-tf (void *arg)
-{
- int fd = open ("/dev/null", O_RDWR);
- if (fd == -1)
- {
- puts ("cannot open /dev/null");
- exit (1);
- }
- FILE *fp = fdopen (fd, "w");
- if (fp == NULL)
- {
- puts ("fdopen failed");
- exit (1);
- }
-
- pthread_cleanup_push (cleanup, NULL);
-
- int e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- exit (1);
- }
-
- while (1)
- /* fprintf() uses write() which is a cancallation point. */
- fprintf (fp, "foo");
-
- pthread_cleanup_pop (0);
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- if (pthread_barrier_init (&b, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- exit (1);
- }
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("create failed");
- return 1;
- }
-
- int e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- exit (1);
- }
-
- sleep (1);
-
- puts ("cancel now");
-
- if (pthread_cancel (th) != 0)
- {
- puts ("cancel failed");
- exit (1);
- }
-
- puts ("waiting for the child");
-
- void *r;
- if (pthread_join (th, &r) != 0)
- {
- puts ("join failed");
- exit (1);
- }
-
- if (r != PTHREAD_CANCELED)
- {
- puts ("thread wasn't canceled");
- exit (1);
- }
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cancelx10.c b/test/nptl/tst-cancelx10.c
deleted file mode 100644
index e5bbb34..0000000
--- a/test/nptl/tst-cancelx10.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel10.c"
diff --git a/test/nptl/tst-cancelx11.c b/test/nptl/tst-cancelx11.c
deleted file mode 100644
index ffcc2ee..0000000
--- a/test/nptl/tst-cancelx11.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel11.c"
diff --git a/test/nptl/tst-cancelx12.c b/test/nptl/tst-cancelx12.c
deleted file mode 100644
index f90ae61..0000000
--- a/test/nptl/tst-cancelx12.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel12.c"
diff --git a/test/nptl/tst-cancelx13.c b/test/nptl/tst-cancelx13.c
deleted file mode 100644
index 37c4c39..0000000
--- a/test/nptl/tst-cancelx13.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel13.c"
diff --git a/test/nptl/tst-cancelx14.c b/test/nptl/tst-cancelx14.c
deleted file mode 100644
index ba4e775..0000000
--- a/test/nptl/tst-cancelx14.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel14.c"
diff --git a/test/nptl/tst-cancelx15.c b/test/nptl/tst-cancelx15.c
deleted file mode 100644
index 005c1f6..0000000
--- a/test/nptl/tst-cancelx15.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel15.c"
diff --git a/test/nptl/tst-cancelx16.c b/test/nptl/tst-cancelx16.c
deleted file mode 100644
index 99af3b1..0000000
--- a/test/nptl/tst-cancelx16.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel16.c"
diff --git a/test/nptl/tst-cancelx18.c b/test/nptl/tst-cancelx18.c
deleted file mode 100644
index 56da18f..0000000
--- a/test/nptl/tst-cancelx18.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel18.c"
diff --git a/test/nptl/tst-cancelx2.c b/test/nptl/tst-cancelx2.c
deleted file mode 100644
index 95dc8a8..0000000
--- a/test/nptl/tst-cancelx2.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel2.c"
diff --git a/test/nptl/tst-cancelx20.c b/test/nptl/tst-cancelx20.c
deleted file mode 100644
index 6bd8637..0000000
--- a/test/nptl/tst-cancelx20.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel20.c"
diff --git a/test/nptl/tst-cancelx21.c b/test/nptl/tst-cancelx21.c
deleted file mode 100644
index 2a01061..0000000
--- a/test/nptl/tst-cancelx21.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel21.c"
diff --git a/test/nptl/tst-cancelx3.c b/test/nptl/tst-cancelx3.c
deleted file mode 100644
index 3937f10..0000000
--- a/test/nptl/tst-cancelx3.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel3.c"
diff --git a/test/nptl/tst-cancelx4.c b/test/nptl/tst-cancelx4.c
deleted file mode 100644
index 1c879eb..0000000
--- a/test/nptl/tst-cancelx4.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel4.c"
diff --git a/test/nptl/tst-cancelx6.c b/test/nptl/tst-cancelx6.c
deleted file mode 100644
index 6926e21..0000000
--- a/test/nptl/tst-cancelx6.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel6.c"
diff --git a/test/nptl/tst-cancelx7.c b/test/nptl/tst-cancelx7.c
deleted file mode 100644
index 4df1a58..0000000
--- a/test/nptl/tst-cancelx7.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel7.c"
diff --git a/test/nptl/tst-cancelx8.c b/test/nptl/tst-cancelx8.c
deleted file mode 100644
index 0555c7c..0000000
--- a/test/nptl/tst-cancelx8.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel8.c"
diff --git a/test/nptl/tst-cancelx9.c b/test/nptl/tst-cancelx9.c
deleted file mode 100644
index 9d84663..0000000
--- a/test/nptl/tst-cancelx9.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel9.c"
diff --git a/test/nptl/tst-cleanup0.c b/test/nptl/tst-cleanup0.c
deleted file mode 100644
index 401115d..0000000
--- a/test/nptl/tst-cleanup0.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static int global;
-
-
-static void
-ch (void *arg)
-{
- int val = (long int) arg;
-
- printf ("ch (%d)\n", val);
-
- global *= val;
- global += val;
-}
-
-
-static void
-endfct (void)
-{
- /* We force exit right here. */
- _exit (global);
-}
-
-
-static int
-do_test (void)
-{
- atexit (endfct);
-
- pthread_cancel (pthread_self ());
-
- pthread_cleanup_push (ch, (void *) 1l);
-
- pthread_cleanup_push (ch, (void *) 2l);
-
- pthread_cleanup_push (ch, (void *) 3l);
-
-// pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
-
- pthread_cleanup_pop (1);
-
- pthread_cleanup_pop (1);
-
- pthread_cleanup_pop (1);
-
- return 100;
-}
-
-
-#define EXPECTED_STATUS 9
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cleanup1.c b/test/nptl/tst-cleanup1.c
deleted file mode 100644
index e89f434..0000000
--- a/test/nptl/tst-cleanup1.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static int global;
-
-
-static void
-ch (void *arg)
-{
- int val = (long int) arg;
-
- printf ("ch (%d)\n", val);
-
- global *= val;
- global += val;
-}
-
-
-static void *
-tf (void *a)
-{
- pthread_cancel (pthread_self ());
-
- pthread_cleanup_push (ch, (void *) 1l);
-
- pthread_cleanup_push (ch, (void *) 2l);
-
- pthread_cleanup_push (ch, (void *) 3l);
-
- pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
-
- pthread_cleanup_pop (1);
-
- pthread_cleanup_pop (1);
-
- pthread_cleanup_pop (1);
-
- return NULL;
-}
-
-
-int
-do_test (void)
-{
- pthread_t th;
-
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- write (2, "create failed\n", 14);
- _exit (1);
- }
-
- void *r;
- int e;
- if ((e = pthread_join (th, &r)) != 0)
- {
- printf ("join failed: %d\n", e);
- _exit (1);
- }
-
- if (r != PTHREAD_CANCELED)
- {
- puts ("thread not canceled");
- exit (1);
- }
-
- if (global != 9)
- {
- printf ("global = %d, expected 9\n", global);
- exit (1);
- }
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cleanup2.c b/test/nptl/tst-cleanup2.c
deleted file mode 100644
index d01301b..0000000
--- a/test/nptl/tst-cleanup2.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Bao Duong <bduong(a)progress.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <setjmp.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/types.h>
-
-static sigjmp_buf jmpbuf;
-
-static void
-sig_handler (int signo)
-{
- siglongjmp (jmpbuf, 1);
-}
-
-static int
-do_test (void)
-{
- char *p = NULL;
- struct sigaction sa;
-
- sa.sa_handler = sig_handler;
- sigemptyset (&sa.sa_mask);
- sa.sa_flags = SA_SIGINFO;
-
- if (sigaction (SIGSEGV, &sa, 0))
- {
- perror ("installing SIGSEGV handler\n");
- exit (1);
- }
-
- puts ("Attempting to sprintf to null ptr");
- if (setjmp (jmpbuf))
- {
- puts ("Exiting main...");
- return 0;
- }
-
- sprintf (p, "This should segv\n");
-
- return 1;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cleanup3.c b/test/nptl/tst-cleanup3.c
deleted file mode 100644
index 67bd9eb..0000000
--- a/test/nptl/tst-cleanup3.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static int global;
-
-
-static void
-ch (void *arg)
-{
- int val = (long int) arg;
-
- printf ("ch (%d)\n", val);
-
- global *= val;
- global += val;
-}
-
-
-static void *
-tf (void *a)
-{
- pthread_cleanup_push (ch, (void *) 1l);
-
- pthread_cleanup_push (ch, (void *) 2l);
-
- pthread_cleanup_push (ch, (void *) 3l);
-
- pthread_exit ((void *) 1l);
-
- pthread_cleanup_pop (1);
-
- pthread_cleanup_pop (1);
-
- pthread_cleanup_pop (1);
-
- return NULL;
-}
-
-
-int
-do_test (void)
-{
- pthread_t th;
-
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- write (2, "create failed\n", 14);
- _exit (1);
- }
-
- void *r;
- int e;
- if ((e = pthread_join (th, &r)) != 0)
- {
- printf ("join failed: %d\n", e);
- _exit (1);
- }
-
- if (r != (void *) 1l)
- {
- puts ("thread not canceled");
- exit (1);
- }
-
- if (global != 9)
- {
- printf ("global = %d, expected 9\n", global);
- exit (1);
- }
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cleanup4.c b/test/nptl/tst-cleanup4.c
deleted file mode 100644
index 3fe3998..0000000
--- a/test/nptl/tst-cleanup4.c
+++ /dev/null
@@ -1,197 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-/* LinuxThreads pthread_cleanup_{push,pop} helpers. */
-extern void _pthread_cleanup_push (struct _pthread_cleanup_buffer *__buffer,
- void (*__routine) (void *),
- void *__arg);
-extern void _pthread_cleanup_pop (struct _pthread_cleanup_buffer *__buffer,
- int __execute);
-
-static int fds[2];
-static pthread_barrier_t b2;
-static int global;
-
-/* Defined in tst-cleanup4aux.c, never compiled with -fexceptions. */
-extern void fn5 (void);
-extern void fn7 (void);
-extern void fn9 (void);
-
-void
-clh (void *arg)
-{
- int val = (long int) arg;
-
- printf ("clh (%d)\n", val);
-
- global *= val;
- global += val;
-}
-
-
-static __attribute__((noinline)) void
-fn_read (void)
-{
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- char c;
- read (fds[0], &c, 1);
-}
-
-
-__attribute__((noinline)) void
-fn0 (void)
-{
- pthread_cleanup_push (clh, (void *) 1l);
-
- fn_read ();
-
- pthread_cleanup_pop (1);
-}
-
-
-__attribute__((noinline)) void
-fn1 (void)
-{
- /* This is the old LinuxThreads pthread_cleanup_{push,pop}. */
- struct _pthread_cleanup_buffer b;
- _pthread_cleanup_push (&b, clh, (void *) 2l);
-
- fn0 ();
-
- _pthread_cleanup_pop (&b, 1);
-}
-
-
-static __attribute__((noinline)) void
-fn2 (void)
-{
- pthread_cleanup_push (clh, (void *) 3l);
-
- fn1 ();
-
- pthread_cleanup_pop (1);
-}
-
-
-static void *
-tf (void *a)
-{
- switch ((long) a)
- {
- case 0:
- fn2 ();
- break;
- case 1:
- fn5 ();
- break;
- case 2:
- fn7 ();
- break;
- case 3:
- fn9 ();
- break;
- }
-
- return NULL;
-}
-
-
-int
-do_test (void)
-{
- int result = 0;
-
- if (pipe (fds) != 0)
- {
- puts ("pipe failed");
- exit (1);
- }
-
- if (pthread_barrier_init (&b2, NULL, 2) != 0)
- {
- puts ("b2 init failed");
- exit (1);
- }
-
- const int expect[] =
- {
- 15, /* 1 2 3 */
- 276, /* 1 4 5 6 */
- 120, /* 1 7 8 */
- 460 /* 1 2 9 10 */
- };
-
- long i;
- for (i = 0; i < 4; ++i)
- {
- global = 0;
-
- printf ("test %ld\n", i);
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, (void *) i) != 0)
- {
- puts ("create failed");
- exit (1);
- }
-
- int e = pthread_barrier_wait (&b2);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __FUNCTION__);
- exit (1);
- }
-
- pthread_cancel (th);
-
- void *r;
- if ((e = pthread_join (th, &r)) != 0)
- {
- printf ("join failed: %d\n", e);
- _exit (1);
- }
-
- if (r != PTHREAD_CANCELED)
- {
- puts ("thread not canceled");
- exit (1);
- }
-
- if (global != expect[i])
- {
- printf ("global = %d, expected %d\n", global, expect[i]);
- result = 1;
- }
- }
-
- return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cleanup4aux.c b/test/nptl/tst-cleanup4aux.c
deleted file mode 100644
index 029c493..0000000
--- a/test/nptl/tst-cleanup4aux.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-extern void _pthread_cleanup_push (struct _pthread_cleanup_buffer *__buffer,
- void (*__routine) (void *),
- void *__arg);
-extern void _pthread_cleanup_pop (struct _pthread_cleanup_buffer *__buffer,
- int __execute);
-
-extern void clh (void *arg);
-extern void fn0 (void);
-extern void fn1 (void);
-extern void fn5 (void);
-extern void fn7 (void);
-extern void fn9 (void);
-
-
-static __attribute__((noinline)) void
-fn3 (void)
-{
- /* This is the old LinuxThreads pthread_cleanup_{push,pop}. */
- struct _pthread_cleanup_buffer b;
- _pthread_cleanup_push (&b, clh, (void *) 4l);
-
- fn0 ();
-
- _pthread_cleanup_pop (&b, 1);
-}
-
-
-static __attribute__((noinline)) void
-fn4 (void)
-{
- pthread_cleanup_push (clh, (void *) 5l);
-
- fn3 ();
-
- pthread_cleanup_pop (1);
-}
-
-
-void
-fn5 (void)
-{
- /* This is the old LinuxThreads pthread_cleanup_{push,pop}. */
- struct _pthread_cleanup_buffer b;
- _pthread_cleanup_push (&b, clh, (void *) 6l);
-
- fn4 ();
-
- _pthread_cleanup_pop (&b, 1);
-}
-
-
-static __attribute__((noinline)) void
-fn6 (void)
-{
- pthread_cleanup_push (clh, (void *) 7l);
-
- fn0 ();
-
- pthread_cleanup_pop (1);
-}
-
-
-void
-fn7 (void)
-{
- /* This is the old LinuxThreads pthread_cleanup_{push,pop}. */
- struct _pthread_cleanup_buffer b;
- _pthread_cleanup_push (&b, clh, (void *) 8l);
-
- fn6 ();
-
- _pthread_cleanup_pop (&b, 1);
-}
-
-
-static __attribute__((noinline)) void
-fn8 (void)
-{
- pthread_cleanup_push (clh, (void *) 9l);
-
- fn1 ();
-
- pthread_cleanup_pop (1);
-}
-
-
-void
-fn9 (void)
-{
- /* This is the old LinuxThreads pthread_cleanup_{push,pop}. */
- struct _pthread_cleanup_buffer b;
- _pthread_cleanup_push (&b, clh, (void *) 10l);
-
- fn8 ();
-
- _pthread_cleanup_pop (&b, 1);
-}
diff --git a/test/nptl/tst-cleanupx0.c b/test/nptl/tst-cleanupx0.c
deleted file mode 100644
index 0012ab1..0000000
--- a/test/nptl/tst-cleanupx0.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cleanup0.c"
diff --git a/test/nptl/tst-cleanupx1.c b/test/nptl/tst-cleanupx1.c
deleted file mode 100644
index 21e9e58..0000000
--- a/test/nptl/tst-cleanupx1.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cleanup1.c"
diff --git a/test/nptl/tst-cleanupx2.c b/test/nptl/tst-cleanupx2.c
deleted file mode 100644
index 8b9e350..0000000
--- a/test/nptl/tst-cleanupx2.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cleanup2.c"
diff --git a/test/nptl/tst-cleanupx3.c b/test/nptl/tst-cleanupx3.c
deleted file mode 100644
index 90baf90..0000000
--- a/test/nptl/tst-cleanupx3.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cleanup3.c"
diff --git a/test/nptl/tst-cleanupx4.c b/test/nptl/tst-cleanupx4.c
deleted file mode 100644
index 8dea954..0000000
--- a/test/nptl/tst-cleanupx4.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cleanup4.c"
diff --git a/test/nptl/tst-clock.c b/test/nptl/tst-clock.c
deleted file mode 100644
index 2023cbc..0000000
--- a/test/nptl/tst-clock.c
+++ /dev/null
@@ -1,123 +0,0 @@
-/* Test program for POSIX clock_* functions.
- Copyright (C) 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)cygnus.com>om>, 2000.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stdio.h>
-#include <string.h>
-#include <time.h>
-
-
-/* We want to see output immediately. */
-#define STDOUT_UNBUFFERED
-
-/* We expect to run at least 10 seconds. */
-#define TIMEOUT 15
-
-static int
-clock_test (clockid_t cl)
-{
- struct timespec old_ts;
- struct timespec ts;
- struct timespec waitit;
- int result = 0;
- int i;
-
- memset (&ts, '\0', sizeof ts);
-
- waitit.tv_sec = 0;
- waitit.tv_nsec = 500000000;
-
- /* Get and print resolution of the clock. */
- if (clock_getres (cl, &ts) == 0)
- {
- if (ts.tv_nsec < 0 || ts.tv_nsec >= 1000000000)
- {
- printf ("clock %d: nanosecond value of resolution wrong\n", cl);
- result = 1;
- }
- else
- printf ("clock %d: resolution = %ld.%09ld secs\n",
- cl, ts.tv_sec, ts.tv_nsec);
- }
- else
- {
- printf ("clock %d: cannot get resolution\n", cl);
- result = 1;
- }
-
- memset (&ts, '\0', sizeof ts);
- memset (&old_ts, '\0', sizeof old_ts);
-
- /* Next get the current time value a few times. */
- for (i = 0; i < 10; ++i)
- {
- if (clock_gettime (cl, &ts) == 0)
- {
- if (ts.tv_nsec < 0 || ts.tv_nsec >= 1000000000)
- {
- printf ("clock %d: nanosecond value of time wrong (try %d)\n",
- cl, i);
- result = 1;
- }
- else
- {
- printf ("clock %d: time = %ld.%09ld secs\n",
- cl, ts.tv_sec, ts.tv_nsec);
-
- if (memcmp (&ts, &old_ts, sizeof ts) == 0)
- {
- printf ("clock %d: time hasn't changed (try %d)\n", cl, i);
- result = 1;
-
- old_ts = ts;
- }
- }
- }
- else
- {
- printf ("clock %d: cannot get time (try %d)\n", cl, i);
- result = 1;
- }
-
- /* Wait a bit before the next iteration. */
- nanosleep (&waitit, NULL);
- }
-
- return result;
-}
-
-static int
-do_test (void)
-{
- clockid_t cl;
- int result;
-
- result = clock_test (CLOCK_REALTIME);
-
- if (clock_getcpuclockid (0, &cl) == 0)
- /* XXX It's not yet a bug when this fails. */
- clock_test (cl);
- else
- printf("CPU clock unavailble, skipping test\n");
-
- return result;
-}
-#define TEST_FUNCTION do_test ()
-
-
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-clock1.c b/test/nptl/tst-clock1.c
deleted file mode 100644
index 7e483b5..0000000
--- a/test/nptl/tst-clock1.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include <unistd.h>
-
-
-int
-do_test (void)
-{
-#if defined _POSIX_THREAD_CPUTIME && _POSIX_THREAD_CPUTIME >= 0
- clockid_t cl;
- /* This is really only a linking-test here. */
- int e = pthread_getcpuclockid (pthread_self (), &cl);
- if (e != 0)
- {
-# if _POSIX_THREAD_CPUTIME == 0
- if (sysconf (_SC_THREAD_CPUTIME) >= 0)
-# endif
- {
- puts ("cpuclock advertized, but cannot get ID");
- exit (1);
- }
- }
-#endif
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-clock2.c b/test/nptl/tst-clock2.c
deleted file mode 100644
index df6ec00..0000000
--- a/test/nptl/tst-clock2.c
+++ /dev/null
@@ -1,201 +0,0 @@
-/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include <unistd.h>
-
-
-#if defined _POSIX_THREAD_CPUTIME && _POSIX_THREAD_CPUTIME >= 0
-static pthread_barrier_t b2;
-static pthread_barrier_t bN;
-
-
-static void *
-tf (void *arg)
-{
- int e = pthread_barrier_wait (&b2);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- exit (1);
- }
-
- e = pthread_barrier_wait (&bN);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- exit (1);
- }
-
- return NULL;
-}
-#endif
-
-
-int
-do_test (void)
-{
-#if defined _POSIX_THREAD_CPUTIME && _POSIX_THREAD_CPUTIME >= 0
-# define N 10
-
-# if _POSIX_THREAD_CPUTIME == 0
- if (sysconf (_SC_THREAD_CPUTIME) < 0)
- {
- puts ("_POSIX_THREAD_CPUTIME option not available");
- return 0;
- }
-# endif
-
- if (pthread_barrier_init (&b2, NULL, 2) != 0
- || pthread_barrier_init (&bN, NULL, N + 1) != 0)
- {
- puts ("barrier_init failed");
- return 1;
- }
-
- struct timespec ts = { .tv_sec = 0, .tv_nsec = 100000000 };
- TEMP_FAILURE_RETRY (nanosleep (&ts, &ts));
-
- pthread_t th[N + 1];
- clockid_t cl[N + 1];
-# ifndef CLOCK_THREAD_CPUTIME_ID
- if (pthread_getcpuclockid (pthread_self (), &cl[0]) != 0)
- {
- puts ("own pthread_getcpuclockid failed");
- return 1;
- }
-# else
- cl[0] = CLOCK_THREAD_CPUTIME_ID;
-# endif
-
- pthread_attr_t at;
-
- if (pthread_attr_init (&at) != 0)
- {
- puts ("attr_init failed");
- return 1;
- }
-
- if (pthread_attr_setstacksize (&at, 1 * 1024 * 1024) != 0)
- {
- puts ("attr_setstacksize failed");
- return 1;
- }
-
- int i;
- int e;
- for (i = 0; i < N; ++i)
- {
- if (pthread_create (&th[i], &at, tf, NULL) != 0)
- {
- puts ("create failed");
- return 1;
- }
-
- e = pthread_barrier_wait (&b2);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- return 1;
- }
-
- ts.tv_sec = 0;
- ts.tv_nsec = 100000000;
- TEMP_FAILURE_RETRY (nanosleep (&ts, &ts));
-
- if (pthread_getcpuclockid (th[i], &cl[i + 1]) != 0)
- {
- puts ("pthread_getcpuclockid failed");
- return 1;
- }
- }
-
- if (pthread_attr_destroy (&at) != 0)
- {
- puts ("attr_destroy failed");
- return 1;
- }
-
- struct timespec t[N + 1];
- for (i = 0; i < N + 1; ++i)
- if (clock_gettime (cl[i], &t[i]) != 0)
- {
- printf ("clock_gettime round %d failed\n", i);
- return 1;
- }
-
- for (i = 0; i < N; ++i)
- {
- struct timespec diff;
-
- diff.tv_sec = t[i].tv_sec - t[i + 1].tv_sec;
- diff.tv_nsec = t[i].tv_nsec - t[i + 1].tv_nsec;
- if (diff.tv_nsec < 0)
- {
- diff.tv_nsec += 1000000000;
- --diff.tv_sec;
- }
-
- if (diff.tv_sec < 0 || (diff.tv_sec == 0 && diff.tv_nsec <
100000000))
- {
- printf ("\
-difference between thread %d and %d too small (%ld.%09ld)\n",
- i, i + 1, (long int) diff.tv_sec, (long int) diff.tv_nsec);
- return 1;
- }
-
- printf ("diff %d->%d: %ld.%09ld\n",
- i, i + 1, (long int) diff.tv_sec, (long int) diff.tv_nsec);
- }
-
- ts.tv_sec = 0;
- ts.tv_nsec = 0;
- for (i = 0; i < N + 1; ++i)
- if (clock_settime (cl[i], &ts) != 0)
- {
- printf ("clock_settime(%d) round %d failed\n", cl[i], i);
- return 1;
- }
-
- for (i = 0; i < N + 1; ++i)
- {
- if (clock_gettime (cl[i], &ts) != 0)
- {
- puts ("clock_gettime failed");
- return 1;
- }
-
- if (ts.tv_sec > t[i].tv_sec
- || (ts.tv_sec == t[i].tv_sec && ts.tv_nsec > t[i].tv_nsec))
- {
- puts ("clock_settime didn't reset clock");
- return 1;
- }
- }
-#endif
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-clock_nanosleep.c b/test/nptl/tst-clock_nanosleep.c
deleted file mode 100644
index a2d1f00..0000000
--- a/test/nptl/tst-clock_nanosleep.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <sys/time.h>
-#include <time.h>
-
-
-/* Test that clock_nanosleep() does sleep. */
-static int
-do_test (void)
-{
- /* Current time. */
- struct timeval tv1;
- (void) gettimeofday (&tv1, NULL);
-
- struct timespec ts;
- ts.tv_sec = 1;
- ts.tv_nsec = 0;
- TEMP_FAILURE_RETRY (clock_nanosleep (CLOCK_REALTIME, 0, &ts, &ts));
-
- /* At least one second must have passed. */
- struct timeval tv2;
- (void) gettimeofday (&tv2, NULL);
-
- tv2.tv_sec -= tv1.tv_sec;
- tv2.tv_usec -= tv1.tv_usec;
- if (tv2.tv_usec < 0)
- --tv2.tv_sec;
-
- if (tv2.tv_sec < 1)
- {
- puts ("clock_nanosleep didn't sleep long enough");
- return 1;
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cond-deadlock.c b/test/nptl/tst-cond-deadlock.c
deleted file mode 100644
index dd978fb..0000000
--- a/test/nptl/tst-cond-deadlock.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2016 Martin Willi <martin(a)strongswan.org>
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-#include <pthread.h>
-
-static pthread_mutex_t m;
-static pthread_cond_t c;
-static pthread_t t;
-static volatile int ready;
-
-static void cancelcb(void *arg)
-{
- pthread_mutex_unlock(&m);
-}
-
-static void* threadcb(void *arg)
-{
- pthread_mutex_lock(&m);
- pthread_cleanup_push(cancelcb, NULL);
-
- ready = 1;
- while (1)
- pthread_cond_wait(&c, &m);
- pthread_cleanup_pop(1);
-}
-
-static int
-do_test (void)
-{
- pthread_mutex_init(&m, NULL);
- pthread_cond_init(&c, NULL);
-
- pthread_create(&t, NULL, threadcb, NULL);
-
- while (!ready);
-
- pthread_cancel(t);
- pthread_join(t, NULL);
-
- pthread_cond_signal(&c);
- pthread_cond_destroy(&c);
- pthread_mutex_destroy(&m);
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#define TIMEOUT 100
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cond1.c b/test/nptl/tst-cond1.c
deleted file mode 100644
index 30efe5b..0000000
--- a/test/nptl/tst-cond1.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <error.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;
-
-
-static void *
-tf (void *p)
-{
- int err;
-
- err = pthread_mutex_lock (&mut);
- if (err != 0)
- error (EXIT_FAILURE, err, "child: cannot get mutex");
-
- puts ("child: got mutex; signalling");
-
- pthread_cond_signal (&cond);
-
- puts ("child: unlock");
-
- err = pthread_mutex_unlock (&mut);
- if (err != 0)
- error (EXIT_FAILURE, err, "child: cannot unlock");
-
- puts ("child: done");
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- pthread_t th;
- int err;
-
- printf ("&cond = %p\n&mut = %p\n", &cond, &mut);
-
- puts ("parent: get mutex");
-
- err = pthread_mutex_lock (&mut);
- if (err != 0)
- error (EXIT_FAILURE, err, "parent: cannot get mutex");
-
- puts ("parent: create child");
-
- err = pthread_create (&th, NULL, tf, NULL);
- if (err != 0)
- error (EXIT_FAILURE, err, "parent: cannot create thread");
-
- puts ("parent: wait for condition");
-
- err = pthread_cond_wait (&cond, &mut);
- if (err != 0)
- error (EXIT_FAILURE, err, "parent: cannot wait fir signal");
-
- puts ("parent: got signal");
-
- err = pthread_join (th, NULL);
- if (err != 0)
- error (EXIT_FAILURE, err, "parent: failed to join");
-
- puts ("done");
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cond10.c b/test/nptl/tst-cond10.c
deleted file mode 100644
index cd52477..0000000
--- a/test/nptl/tst-cond10.c
+++ /dev/null
@@ -1,172 +0,0 @@
-/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <error.h>
-#include <pthread.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-#define N 10
-#define ROUNDS 100
-
-static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;
-static pthread_barrier_t bN1;
-static pthread_barrier_t b2;
-
-
-static void *
-tf (void *p)
-{
- if (pthread_mutex_lock (&mut) != 0)
- {
- puts ("child: 1st mutex_lock failed");
- exit (1);
- }
-
- int e = pthread_barrier_wait (&b2);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("child: 1st barrier_wait failed");
- exit (1);
- }
-
- if (pthread_cond_wait (&cond, &mut) != 0)
- {
- puts ("child: cond_wait failed");
- exit (1);
- }
-
- if (pthread_mutex_unlock (&mut) != 0)
- {
- puts ("child: mutex_unlock failed");
- exit (1);
- }
-
- e = pthread_barrier_wait (&bN1);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("child: 2nd barrier_wait failed");
- exit (1);
- }
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- if (pthread_barrier_init (&bN1, NULL, N + 1) != 0)
- {
- puts ("barrier_init failed");
- exit (1);
- }
-
- if (pthread_barrier_init (&b2, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- exit (1);
- }
-
- pthread_attr_t at;
-
- if (pthread_attr_init (&at) != 0)
- {
- puts ("attr_init failed");
- return 1;
- }
-
- if (pthread_attr_setstacksize (&at, 1 * 1024 * 1024) != 0)
- {
- puts ("attr_setstacksize failed");
- return 1;
- }
-
- int r;
- for (r = 0; r < ROUNDS; ++r)
- {
- printf ("round %d\n", r + 1);
-
- int i;
- pthread_t th[N];
- for (i = 0; i < N; ++i)
- {
- if (pthread_create (&th[i], &at, tf, NULL) != 0)
- {
- puts ("create failed");
- exit (1);
- }
-
- int e = pthread_barrier_wait (&b2);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("parent: 1st barrier_wait failed");
- exit (1);
- }
- }
-
- if (pthread_mutex_lock (&mut) != 0)
- {
- puts ("parent: mutex_lock failed");
- exit (1);
- }
- if (pthread_mutex_unlock (&mut) != 0)
- {
- puts ("parent: mutex_unlock failed");
- exit (1);
- }
-
- /* N single signal calls. Without locking. This tests that no
- signal gets lost. */
- for (i = 0; i < N; ++i)
- if (pthread_cond_signal (&cond) != 0)
- {
- puts ("cond_signal failed");
- exit (1);
- }
-
- int e = pthread_barrier_wait (&bN1);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("parent: 2nd barrier_wait failed");
- exit (1);
- }
-
- for (i = 0; i < N; ++i)
- if (pthread_join (th[i], NULL) != 0)
- {
- puts ("join failed");
- exit (1);
- }
- }
-
- if (pthread_attr_destroy (&at) != 0)
- {
- puts ("attr_destroy failed");
- return 1;
- }
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cond11.c b/test/nptl/tst-cond11.c
deleted file mode 100644
index 4aaf380..0000000
--- a/test/nptl/tst-cond11.c
+++ /dev/null
@@ -1,190 +0,0 @@
-/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <time.h>
-#include <unistd.h>
-
-
-#if defined _POSIX_CLOCK_SELECTION && _POSIX_CLOCK_SELECTION >= 0
-static int
-run_test (clockid_t cl)
-{
- pthread_condattr_t condattr;
- pthread_cond_t cond;
- pthread_mutexattr_t mutattr;
- pthread_mutex_t mut;
-
- printf ("clock = %d\n", (int) cl);
-
- if (pthread_condattr_init (&condattr) != 0)
- {
- puts ("condattr_init failed");
- return 1;
- }
-
- if (pthread_condattr_setclock (&condattr, cl) != 0)
- {
- puts ("condattr_setclock failed");
- return 1;
- }
-
- clockid_t cl2;
- if (pthread_condattr_getclock (&condattr, &cl2) != 0)
- {
- puts ("condattr_getclock failed");
- return 1;
- }
- if (cl != cl2)
- {
- printf ("condattr_getclock returned wrong value: %d, expected %d\n",
- (int) cl2, (int) cl);
- return 1;
- }
-
- if (pthread_cond_init (&cond, &condattr) != 0)
- {
- puts ("cond_init failed");
- return 1;
- }
-
- if (pthread_condattr_destroy (&condattr) != 0)
- {
- puts ("condattr_destroy failed");
- return 1;
- }
-
- if (pthread_mutexattr_init (&mutattr) != 0)
- {
- puts ("mutexattr_init failed");
- return 1;
- }
-
- if (pthread_mutexattr_settype (&mutattr, PTHREAD_MUTEX_ERRORCHECK) != 0)
- {
- puts ("mutexattr_settype failed");
- return 1;
- }
-
- if (pthread_mutex_init (&mut, &mutattr) != 0)
- {
- puts ("mutex_init failed");
- return 1;
- }
-
- if (pthread_mutexattr_destroy (&mutattr) != 0)
- {
- puts ("mutexattr_destroy failed");
- return 1;
- }
-
- if (pthread_mutex_lock (&mut) != 0)
- {
- puts ("mutex_lock failed");
- return 1;
- }
-
- if (pthread_mutex_lock (&mut) != EDEADLK)
- {
- puts ("2nd mutex_lock did not return EDEADLK");
- return 1;
- }
-
- struct timespec ts;
- if (clock_gettime (cl, &ts) != 0)
- {
- puts ("clock_gettime failed");
- return 1;
- }
-
- /* Wait one second. */
- ++ts.tv_sec;
-
- int e = pthread_cond_timedwait (&cond, &mut, &ts);
- if (e == 0)
- {
- puts ("cond_timedwait succeeded");
- return 1;
- }
- else if (e != ETIMEDOUT)
- {
- puts ("cond_timedwait did not return ETIMEDOUT");
- return 1;
- }
-
- if (pthread_mutex_unlock (&mut) != 0)
- {
- puts ("mutex_unlock failed");
- return 1;
- }
-
- if (pthread_mutex_destroy (&mut) != 0)
- {
- puts ("mutex_destroy failed");
- return 1;
- }
-
- if (pthread_cond_destroy (&cond) != 0)
- {
- puts ("cond_destroy failed");
- return 1;
- }
-
- return 0;
-}
-#endif
-
-
-static int
-do_test (void)
-{
-#if !defined _POSIX_CLOCK_SELECTION || _POSIX_CLOCK_SELECTION == -1
-
- puts ("_POSIX_CLOCK_SELECTION not supported, test skipped");
- return 0;
-
-#else
-
- int res = run_test (CLOCK_REALTIME);
-
-# if defined _POSIX_MONOTONIC_CLOCK && _POSIX_MONOTONIC_CLOCK >= 0
-# if _POSIX_MONOTONIC_CLOCK == 0
- int e = sysconf (_SC_MONOTONIC_CLOCK);
- if (e < 0)
- puts ("CLOCK_MONOTONIC not supported");
- else if (e == 0)
- {
- puts ("sysconf (_SC_MONOTONIC_CLOCK) must not return 0");
- res = 1;
- }
- else
-# endif
- res |= run_test (CLOCK_MONOTONIC);
-# else
- puts ("_POSIX_MONOTONIC_CLOCK not defined");
-# endif
-
- return res;
-#endif
-}
-
-#define TIMEOUT 3
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cond12.c b/test/nptl/tst-cond12.c
deleted file mode 100644
index b38d9d5..0000000
--- a/test/nptl/tst-cond12.c
+++ /dev/null
@@ -1,195 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/wait.h>
-
-
-static char fname[] = "/tmp/tst-cond12-XXXXXX";
-static int fd;
-
-
-static void prepare (void);
-#define PREPARE(argc, argv) prepare ()
-
-static int do_test (void);
-#define TEST_FUNCTION do_test ()
-
-#include "../test-skeleton.c"
-
-
-static void
-prepare (void)
-{
- fd = mkstemp (fname);
- if (fd == -1)
- {
- printf ("mkstemp failed: %m\n");
- exit (1);
- }
- add_temp_file (fname);
- if (ftruncate (fd, 1000) < 0)
- {
- printf ("ftruncate failed: %m\n");
- exit (1);
- }
-}
-
-
-static int
-do_test (void)
-{
- struct
- {
- pthread_mutex_t m;
- pthread_cond_t c;
- int var;
- } *p = mmap (NULL, sizeof (*p), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
- if (p == MAP_FAILED)
- {
- printf ("initial mmap failed: %m\n");
- return 1;
- }
-
- pthread_mutexattr_t ma;
- if (pthread_mutexattr_init (&ma) != 0)
- {
- puts ("mutexattr_init failed");
- return 1;
- }
- if (pthread_mutexattr_setpshared (&ma, 1) != 0)
- {
- puts ("mutexattr_setpshared failed");
- return 1;
- }
- if (pthread_mutex_init (&p->m, &ma) != 0)
- {
- puts ("mutex_init failed");
- return 1;
- }
- if (pthread_mutexattr_destroy (&ma) != 0)
- {
- puts ("mutexattr_destroy failed");
- return 1;
- }
-
- pthread_condattr_t ca;
- if (pthread_condattr_init (&ca) != 0)
- {
- puts ("condattr_init failed");
- return 1;
- }
- if (pthread_condattr_setpshared (&ca, 1) != 0)
- {
- puts ("condattr_setpshared failed");
- return 1;
- }
- if (pthread_cond_init (&p->c, &ca) != 0)
- {
- puts ("mutex_init failed");
- return 1;
- }
- if (pthread_condattr_destroy (&ca) != 0)
- {
- puts ("condattr_destroy failed");
- return 1;
- }
-
- if (pthread_mutex_lock (&p->m) != 0)
- {
- puts ("initial mutex_lock failed");
- return 1;
- }
-
- p->var = 42;
-
- pid_t pid = fork ();
- if (pid == -1)
- {
- printf ("fork failed: %m\n");
- return 1;
- }
-
- if (pid == 0)
- {
- void *oldp = p;
- p = mmap (NULL, sizeof (*p), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
-
- if (p == oldp)
- {
- puts ("child: mapped to same address");
- kill (getppid (), SIGKILL);
- exit (1);
- }
-
- munmap (oldp, sizeof (*p));
-
- if (pthread_mutex_lock (&p->m) != 0)
- {
- puts ("child: mutex_lock failed");
- kill (getppid (), SIGKILL);
- exit (1);
- }
-
- p->var = 0;
-
-#ifndef USE_COND_SIGNAL
- if (pthread_cond_broadcast (&p->c) != 0)
- {
- puts ("child: cond_broadcast failed");
- kill (getppid (), SIGKILL);
- exit (1);
- }
-#else
- if (pthread_cond_signal (&p->c) != 0)
- {
- puts ("child: cond_signal failed");
- kill (getppid (), SIGKILL);
- exit (1);
- }
-#endif
-
- if (pthread_mutex_unlock (&p->m) != 0)
- {
- puts ("child: mutex_unlock failed");
- kill (getppid (), SIGKILL);
- exit (1);
- }
-
- exit (0);
- }
-
- do
- pthread_cond_wait (&p->c, &p->m);
- while (p->var != 0);
-
- if (TEMP_FAILURE_RETRY (waitpid (pid, NULL, 0)) != pid)
- {
- printf ("waitpid failed: %m\n");
- kill (pid, SIGKILL);
- return 1;
- }
-
- return 0;
-}
diff --git a/test/nptl/tst-cond13.c b/test/nptl/tst-cond13.c
deleted file mode 100644
index 29d79b5..0000000
--- a/test/nptl/tst-cond13.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define USE_COND_SIGNAL 1
-#include "tst-cond12.c"
diff --git a/test/nptl/tst-cond14.c b/test/nptl/tst-cond14.c
deleted file mode 100644
index 8378405..0000000
--- a/test/nptl/tst-cond14.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/* Copyright (C) 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-
-static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t mut = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
-static pthread_mutex_t mut2 = PTHREAD_MUTEX_INITIALIZER;
-
-static void *
-tf (void *p)
-{
- if (pthread_mutex_lock (&mut) != 0)
- {
- printf ("%s: 1st mutex_lock failed\n", __func__);
- exit (1);
- }
- if (pthread_mutex_lock (&mut) != 0)
- {
- printf ("%s: 2nd mutex_lock failed\n", __func__);
- exit (1);
- }
- if (pthread_mutex_lock (&mut) != 0)
- {
- printf ("%s: 3rd mutex_lock failed\n", __func__);
- exit (1);
- }
-
- if (pthread_mutex_unlock (&mut2) != 0)
- {
- printf ("%s: mutex_unlock failed\n", __func__);
- exit (1);
- }
-
- if (pthread_cond_wait (&cond, &mut) != 0)
- {
- printf ("%s: cond_wait failed\n", __func__);
- exit (1);
- }
-
- puts ("child: done");
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- if (pthread_mutex_lock (&mut2) != 0)
- {
- puts ("1st mutex_lock failed");
- return 1;
- }
-
- puts ("parent: create child");
-
- pthread_t th;
- int err = pthread_create (&th, NULL, tf, NULL);
- if (err != 0)
- {
- printf ("parent: cannot create thread: %s\n", strerror (err));
- return 1;
- }
-
- /* We have to synchronize with the child. */
- if (pthread_mutex_lock (&mut2) != 0)
- {
- puts ("2nd mutex_lock failed");
- return 1;
- }
-
- /* Give the child to reach to pthread_cond_wait. */
- sleep (1);
-
- if (pthread_cond_signal (&cond) != 0)
- {
- puts ("cond_signal failed");
- return 1;
- }
-
- err = pthread_join (th, NULL);
- if (err != 0)
- {
- printf ("parent: failed to join: %s\n", strerror (err));
- return 1;
- }
-
- puts ("done");
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#define TIMEOUT 3
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cond15.c b/test/nptl/tst-cond15.c
deleted file mode 100644
index 0e8448c..0000000
--- a/test/nptl/tst-cond15.c
+++ /dev/null
@@ -1,159 +0,0 @@
-/* Copyright (C) 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/time.h>
-
-
-static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t mut = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
-static pthread_mutex_t mut2 = PTHREAD_MUTEX_INITIALIZER;
-
-static void *
-tf (void *p)
-{
- if (pthread_mutex_lock (&mut) != 0)
- {
- printf ("%s: 1st mutex_lock failed\n", __func__);
- exit (1);
- }
- if (pthread_mutex_lock (&mut) != 0)
- {
- printf ("%s: 2nd mutex_lock failed\n", __func__);
- exit (1);
- }
- if (pthread_mutex_lock (&mut) != 0)
- {
- printf ("%s: 3rd mutex_lock failed\n", __func__);
- exit (1);
- }
-
- if (pthread_mutex_unlock (&mut2) != 0)
- {
- printf ("%s: mutex_unlock failed\n", __func__);
- exit (1);
- }
-
- struct timeval tv;
- gettimeofday (&tv, NULL);
- struct timespec ts;
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- ts.tv_sec += p == NULL ? 100 : 1;
-
- int err = pthread_cond_timedwait (&cond, &mut, &ts);
- if ((err != 0 && p == NULL) || (err != ETIMEDOUT && p != NULL))
- {
- printf ("%s: cond_wait failed\n", __func__);
- exit (1);
- }
-
- if (pthread_mutex_unlock (&mut) != 0)
- {
- printf ("%s: 1st mutex_unlock failed\n", __func__);
- exit (1);
- }
- if (pthread_mutex_unlock (&mut) != 0)
- {
- printf ("%s: 2nd mutex_unlock failed\n", __func__);
- exit (1);
- }
- if (pthread_mutex_unlock (&mut) != 0)
- {
- printf ("%s: 3rd mutex_unlock failed\n", __func__);
- exit (1);
- }
-
- puts ("child: done");
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- if (pthread_mutex_lock (&mut2) != 0)
- {
- puts ("1st mutex_lock failed");
- return 1;
- }
-
- puts ("parent: create 1st child");
-
- pthread_t th;
- int err = pthread_create (&th, NULL, tf, NULL);
- if (err != 0)
- {
- printf ("parent: cannot 1st create thread: %s\n", strerror (err));
- return 1;
- }
-
- /* We have to synchronize with the child. */
- if (pthread_mutex_lock (&mut2) != 0)
- {
- puts ("2nd mutex_lock failed");
- return 1;
- }
-
- /* Give the child to reach to pthread_cond_wait. */
- sleep (1);
-
- if (pthread_cond_signal (&cond) != 0)
- {
- puts ("cond_signal failed");
- return 1;
- }
-
- err = pthread_join (th, NULL);
- if (err != 0)
- {
- printf ("parent: failed to join: %s\n", strerror (err));
- return 1;
- }
-
-
- puts ("parent: create 2nd child");
-
- err = pthread_create (&th, NULL, tf, (void *) 1l);
- if (err != 0)
- {
- printf ("parent: cannot 2nd create thread: %s\n", strerror (err));
- return 1;
- }
-
- err = pthread_join (th, NULL);
- if (err != 0)
- {
- printf ("parent: failed to join: %s\n", strerror (err));
- return 1;
- }
-
- puts ("done");
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#define TIMEOUT 6
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cond16.c b/test/nptl/tst-cond16.c
deleted file mode 100644
index 44b9863..0000000
--- a/test/nptl/tst-cond16.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/* Copyright (C) 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-pthread_cond_t cv = PTHREAD_COND_INITIALIZER;
-pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
-bool n, exiting;
-FILE *f;
-int count;
-
-void *
-tf (void *dummy)
-{
- bool loop = true;
-
- while (loop)
- {
- pthread_mutex_lock (&lock);
- while (n && !exiting)
- pthread_cond_wait (&cv, &lock);
- n = true;
- pthread_mutex_unlock (&lock);
-
- fputs (".", f);
-
- pthread_mutex_lock (&lock);
- n = false;
- if (exiting)
- loop = false;
-#ifdef UNLOCK_AFTER_BROADCAST
- pthread_cond_broadcast (&cv);
- pthread_mutex_unlock (&lock);
-#else
- pthread_mutex_unlock (&lock);
- pthread_cond_broadcast (&cv);
-#endif
- }
-
- return NULL;
-}
-
-int
-do_test (void)
-{
- f = fopen ("/dev/null", "w");
- if (f == NULL)
- {
- printf ("couldn't open /dev/null, %m\n");
- return 1;
- }
-
- count = sysconf (_SC_NPROCESSORS_ONLN);
- if (count <= 0)
- count = 1;
- count *= 4;
-
- pthread_t th[count];
- int i, ret;
- for (i = 0; i < count; ++i)
- if ((ret = pthread_create (&th[i], NULL, tf, NULL)) != 0)
- {
- errno = ret;
- printf ("pthread_create %d failed: %m\n", i);
- return 1;
- }
-
- struct timespec ts = { .tv_sec = 20, .tv_nsec = 0 };
- while (nanosleep (&ts, &ts) != 0);
-
- pthread_mutex_lock (&lock);
- exiting = true;
- pthread_mutex_unlock (&lock);
-
- for (i = 0; i < count; ++i)
- pthread_join (th[i], NULL);
-
- fclose (f);
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#define TIMEOUT 40
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cond17.c b/test/nptl/tst-cond17.c
deleted file mode 100644
index 0586fa5..0000000
--- a/test/nptl/tst-cond17.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define UNLOCK_AFTER_BROADCAST 1
-#include "tst-cond16.c"
diff --git a/test/nptl/tst-cond18.c b/test/nptl/tst-cond18.c
deleted file mode 100644
index a1bb947..0000000
--- a/test/nptl/tst-cond18.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/* Copyright (C) 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <pthread.h>
-#include <stdbool.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <unistd.h>
-
-pthread_cond_t cv = PTHREAD_COND_INITIALIZER;
-pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
-bool exiting;
-int fd, count, spins, nn;
-
-void *
-tf (void *id)
-{
- pthread_mutex_lock (&lock);
-
- if ((long) id == 0)
- {
- while (!exiting)
- {
- if ((spins++ % 1000) == 0)
- write (fd, ".", 1);
- pthread_mutex_unlock (&lock);
-
- pthread_mutex_lock (&lock);
- int njobs = rand () % (count + 1);
- nn = njobs;
- if ((rand () % 30) == 0)
- pthread_cond_broadcast (&cv);
- else
- while (njobs--)
- pthread_cond_signal (&cv);
- }
-
- pthread_cond_broadcast (&cv);
- }
- else
- {
- while (!exiting)
- {
- while (!nn && !exiting)
- pthread_cond_wait (&cv, &lock);
- --nn;
- pthread_mutex_unlock (&lock);
-
- pthread_mutex_lock (&lock);
- }
- }
-
- pthread_mutex_unlock (&lock);
- return NULL;
-}
-
-int
-do_test (void)
-{
- fd = open ("/dev/null", O_WRONLY);
- if (fd < 0)
- {
- printf ("couldn't open /dev/null, %m\n");
- return 1;
- }
-
- count = sysconf (_SC_NPROCESSORS_ONLN);
- if (count <= 0)
- count = 1;
- count *= 8;
-
- pthread_t th[count + 1];
- int i, ret;
-
- for (i = 0; i <= count; ++i)
- if ((ret = pthread_create (&th[i], NULL, tf, (void *) (long) i)) != 0)
- {
- errno = ret;
- printf ("pthread_create %d failed: %m\n", i);
- return 1;
- }
-
- struct timespec ts = { .tv_sec = 20, .tv_nsec = 0 };
- while (nanosleep (&ts, &ts) != 0);
-
- pthread_mutex_lock (&lock);
- exiting = true;
- pthread_mutex_unlock (&lock);
-
- for (i = 0; i < count; ++i)
- pthread_join (th[i], NULL);
-
- close (fd);
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#define TIMEOUT 40
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cond19.c b/test/nptl/tst-cond19.c
deleted file mode 100644
index 200e0ea..0000000
--- a/test/nptl/tst-cond19.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Copyright (C) 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-
-
-static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;
-
-
-static int
-do_test (void)
-{
- int result = 0;
- struct timespec ts;
-
- if (clock_gettime (CLOCK_REALTIME, &ts) != 0)
- {
- puts ("clock_gettime failed");
- return 1;
- }
-
- ts.tv_nsec = -1;
-
- int e = pthread_cond_timedwait (&cond, &mut, &ts);
- if (e == 0)
- {
- puts ("first cond_timedwait did not fail");
- result = 1;
- }
- else if (e != EINVAL)
- {
- puts ("first cond_timedwait did not return EINVAL");
- result = 1;
- }
-
- ts.tv_nsec = 2000000000;
-
- e = pthread_cond_timedwait (&cond, &mut, &ts);
- if (e == 0)
- {
- puts ("second cond_timedwait did not fail");
- result = 1;
- }
- else if (e != EINVAL)
- {
- puts ("second cond_timedwait did not return EINVAL");
- result = 1;
- }
-
- return result;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cond2.c b/test/nptl/tst-cond2.c
deleted file mode 100644
index 1da074c..0000000
--- a/test/nptl/tst-cond2.c
+++ /dev/null
@@ -1,162 +0,0 @@
-/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <error.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;
-static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-
-static pthread_barrier_t bar;
-
-
-static void *
-tf (void *a)
-{
- int i = (long int) a;
- int err;
-
- printf ("child %d: lock\n", i);
-
- err = pthread_mutex_lock (&mut);
- if (err != 0)
- error (EXIT_FAILURE, err, "locking in child failed");
-
- printf ("child %d: sync\n", i);
-
- int e = pthread_barrier_wait (&bar);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("child: barrier_wait failed");
- exit (1);
- }
-
- printf ("child %d: wait\n", i);
-
- err = pthread_cond_wait (&cond, &mut);
- if (err != 0)
- error (EXIT_FAILURE, err, "child %d: failed to wait", i);
-
- printf ("child %d: woken up\n", i);
-
- err = pthread_mutex_unlock (&mut);
- if (err != 0)
- error (EXIT_FAILURE, err, "child %d: unlock[2] failed", i);
-
- printf ("child %d: done\n", i);
-
- return NULL;
-}
-
-
-#define N 10
-
-
-static int
-do_test (void)
-{
- pthread_t th[N];
- int i;
- int err;
-
- printf ("&cond = %p\n&mut = %p\n", &cond, &mut);
-
- if (pthread_barrier_init (&bar, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- exit (1);
- }
-
- pthread_attr_t at;
-
- if (pthread_attr_init (&at) != 0)
- {
- puts ("attr_init failed");
- return 1;
- }
-
- if (pthread_attr_setstacksize (&at, 1 * 1024 * 1024) != 0)
- {
- puts ("attr_setstacksize failed");
- return 1;
- }
-
- for (i = 0; i < N; ++i)
- {
- printf ("create thread %d\n", i);
-
- err = pthread_create (&th[i], &at, tf, (void *) (long int) i);
- if (err != 0)
- error (EXIT_FAILURE, err, "cannot create thread %d", i);
-
- printf ("wait for child %d\n", i);
-
- /* Wait for the child to start up and get the mutex for the
- conditional variable. */
- int e = pthread_barrier_wait (&bar);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- exit (1);
- }
- }
-
- if (pthread_attr_destroy (&at) != 0)
- {
- puts ("attr_destroy failed");
- return 1;
- }
-
- puts ("get lock outselves");
-
- err = pthread_mutex_lock (&mut);
- if (err != 0)
- error (EXIT_FAILURE, err, "mut locking failed");
-
- puts ("broadcast");
-
- /* Wake up all threads. */
- err = pthread_cond_broadcast (&cond);
- if (err != 0)
- error (EXIT_FAILURE, err, "parent: broadcast failed");
-
- err = pthread_mutex_unlock (&mut);
- if (err != 0)
- error (EXIT_FAILURE, err, "mut unlocking failed");
-
- /* Join all threads. */
- for (i = 0; i < N; ++i)
- {
- printf ("join thread %d\n", i);
-
- err = pthread_join (th[i], NULL);
- if (err != 0)
- error (EXIT_FAILURE, err, "join of child %d failed", i);
- }
-
- puts ("done");
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cond20.c b/test/nptl/tst-cond20.c
deleted file mode 100644
index c1341a0..0000000
--- a/test/nptl/tst-cond20.c
+++ /dev/null
@@ -1,169 +0,0 @@
-/* Copyright (C) 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#define N 10
-#define ROUNDS 1000
-static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-static pthread_cond_t cond2 = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;
-static pthread_barrier_t b;
-static int count;
-
-static void *
-tf (void *p)
-{
- int i;
- for (i = 0; i < ROUNDS; ++i)
- {
- pthread_mutex_lock (&mut);
-
- if (++count == N)
- pthread_cond_signal (&cond2);
-
-#ifdef TIMED
- struct timeval tv;
- gettimeofday (&tv, NULL);
- struct timespec ts;
- /* Wait three seconds. */
- ts.tv_sec = tv.tv_sec + 3;
- ts.tv_nsec = tv.tv_usec * 1000;
- pthread_cond_timedwait (&cond, &mut, &ts);
-#else
- pthread_cond_wait (&cond, &mut);
-#endif
-
- pthread_mutex_unlock (&mut);
-
- int err = pthread_barrier_wait (&b);
- if (err != 0 && err != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("child: barrier_wait failed");
- exit (1);
- }
-
- err = pthread_barrier_wait (&b);
- if (err != 0 && err != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("child: barrier_wait failed");
- exit (1);
- }
- }
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- if (pthread_barrier_init (&b, NULL, N + 1) != 0)
- {
- puts ("barrier_init failed");
- return 1;
- }
-
- pthread_mutex_lock (&mut);
-
- int i, j, err;
- pthread_t th[N];
- for (i = 0; i < N; ++i)
- if ((err = pthread_create (&th[i], NULL, tf, NULL)) != 0)
- {
- printf ("cannot create thread %d: %s\n", i, strerror (err));
- return 1;
- }
-
- for (i = 0; i < ROUNDS; ++i)
- {
- pthread_cond_wait (&cond2, &mut);
-
- if (i & 1)
- pthread_mutex_unlock (&mut);
-
- if (i & 2)
- pthread_cond_broadcast (&cond);
- else if (i & 4)
- for (j = 0; j < N; ++j)
- pthread_cond_signal (&cond);
- else
- {
- for (j = 0; j < (i / 8) % N; ++j)
- pthread_cond_signal (&cond);
- pthread_cond_broadcast (&cond);
- }
-
- if ((i & 1) == 0)
- pthread_mutex_unlock (&mut);
-
- err = pthread_cond_destroy (&cond);
- if (err)
- {
- printf ("pthread_cond_destroy failed: %s\n", strerror (err));
- return 1;
- }
-
- /* Now clobber the cond variable which has been successfully
- destroyed above. */
- memset (&cond, (char) i, sizeof (cond));
-
- err = pthread_barrier_wait (&b);
- if (err != 0 && err != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("parent: barrier_wait failed");
- return 1;
- }
-
- pthread_mutex_lock (&mut);
-
- err = pthread_barrier_wait (&b);
- if (err != 0 && err != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("parent: barrier_wait failed");
- return 1;
- }
-
- count = 0;
- err = pthread_cond_init (&cond, NULL);
- if (err)
- {
- printf ("pthread_cond_init failed: %s\n", strerror (err));
- return 1;
- }
- }
-
- for (i = 0; i < N; ++i)
- if ((err = pthread_join (th[i], NULL)) != 0)
- {
- printf ("failed to join thread %d: %s\n", i, strerror (err));
- return 1;
- }
-
- puts ("done");
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cond21.c b/test/nptl/tst-cond21.c
deleted file mode 100644
index 89cb771..0000000
--- a/test/nptl/tst-cond21.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include <sys/time.h>
-#define TIMED 1
-#include "tst-cond20.c"
diff --git a/test/nptl/tst-cond22.c b/test/nptl/tst-cond22.c
deleted file mode 100644
index bd978e5..0000000
--- a/test/nptl/tst-cond22.c
+++ /dev/null
@@ -1,160 +0,0 @@
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static pthread_barrier_t b;
-static pthread_cond_t c = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
-
-
-static void
-cl (void *arg)
-{
- pthread_mutex_unlock (&m);
-}
-
-
-static void *
-tf (void *arg)
-{
- if (pthread_mutex_lock (&m) != 0)
- {
- printf ("%s: mutex_lock failed\n", __func__);
- exit (1);
- }
- int e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __func__);
- exit (1);
- }
- pthread_cleanup_push (cl, NULL);
- /* We have to loop here because the cancellation might come after
- the cond_wait call left the cancelable area and is then waiting
- on the mutex. In this case the beginning of the second cond_wait
- call will cause the cancellation to happen. */
- do
- if (pthread_cond_wait (&c, &m) != 0)
- {
- printf ("%s: cond_wait failed\n", __func__);
- exit (1);
- }
- while (arg == NULL);
- pthread_cleanup_pop (0);
- if (pthread_mutex_unlock (&m) != 0)
- {
- printf ("%s: mutex_unlock failed\n", __func__);
- exit (1);
- }
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- int status = 0;
-
- if (pthread_barrier_init (&b, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- return 1;
- }
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("1st create failed");
- return 1;
- }
- int e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("1st barrier_wait failed");
- return 1;
- }
- if (pthread_mutex_lock (&m) != 0)
- {
- puts ("1st mutex_lock failed");
- return 1;
- }
- if (pthread_cond_signal (&c) != 0)
- {
- puts ("1st cond_signal failed");
- return 1;
- }
- if (pthread_cancel (th) != 0)
- {
- puts ("cancel failed");
- return 1;
- }
- if (pthread_mutex_unlock (&m) != 0)
- {
- puts ("1st mutex_unlock failed");
- return 1;
- }
- void *res;
- if (pthread_join (th, &res) != 0)
- {
- puts ("1st join failed");
- return 1;
- }
- if (res != PTHREAD_CANCELED)
- {
- puts ("first thread not canceled");
- status = 1;
- }
-
- printf ("cond = { %d, %x, %lld, %lld, %lld, %p, %u, %u }\n",
- c.__data.__lock, c.__data.__futex, c.__data.__total_seq,
- c.__data.__wakeup_seq, c.__data.__woken_seq, c.__data.__mutex,
- c.__data.__nwaiters, c.__data.__broadcast_seq);
-
- if (pthread_create (&th, NULL, tf, (void *) 1l) != 0)
- {
- puts ("2nd create failed");
- return 1;
- }
- e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("2nd barrier_wait failed");
- return 1;
- }
- if (pthread_mutex_lock (&m) != 0)
- {
- puts ("2nd mutex_lock failed");
- return 1;
- }
- if (pthread_cond_signal (&c) != 0)
- {
- puts ("2nd cond_signal failed");
- return 1;
- }
- if (pthread_mutex_unlock (&m) != 0)
- {
- puts ("2nd mutex_unlock failed");
- return 1;
- }
- if (pthread_join (th, &res) != 0)
- {
- puts ("2nd join failed");
- return 1;
- }
- if (res != NULL)
- {
- puts ("2nd thread canceled");
- status = 1;
- }
-
- printf ("cond = { %d, %x, %lld, %lld, %lld, %p, %u, %u }\n",
- c.__data.__lock, c.__data.__futex, c.__data.__total_seq,
- c.__data.__wakeup_seq, c.__data.__woken_seq, c.__data.__mutex,
- c.__data.__nwaiters, c.__data.__broadcast_seq);
-
- return status;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cond23.c b/test/nptl/tst-cond23.c
deleted file mode 100644
index fb2936f..0000000
--- a/test/nptl/tst-cond23.c
+++ /dev/null
@@ -1,183 +0,0 @@
-/* Copyright (C) 2008 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2008.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <time.h>
-#include <unistd.h>
-
-
-#if defined _POSIX_CLOCK_SELECTION && _POSIX_CLOCK_SELECTION >= 0
-static int
-check (pthread_condattr_t *condattr, int pshared, clockid_t cl)
-{
- clockid_t cl2;
- if (pthread_condattr_getclock (condattr, &cl2) != 0)
- {
- puts ("condattr_getclock failed");
- return 1;
- }
- if (cl != cl2)
- {
- printf ("condattr_getclock returned wrong value: %d, expected %d\n",
- (int) cl2, (int) cl);
- return 1;
- }
-
- int p;
- if (pthread_condattr_getpshared (condattr, &p) != 0)
- {
- puts ("condattr_getpshared failed");
- return 1;
- }
- else if (p != pshared)
- {
- printf ("condattr_getpshared returned wrong value: %d, expected %d\n",
- p, pshared);
- return 1;
- }
-
- return 0;
-}
-
-static int
-run_test (clockid_t cl)
-{
- pthread_condattr_t condattr;
-
- printf ("clock = %d\n", (int) cl);
-
- if (pthread_condattr_init (&condattr) != 0)
- {
- puts ("condattr_init failed");
- return 1;
- }
-
- if (check (&condattr, PTHREAD_PROCESS_PRIVATE, CLOCK_REALTIME))
- return 1;
-
- if (pthread_condattr_setpshared (&condattr, PTHREAD_PROCESS_SHARED) != 0)
- {
- puts ("1st condattr_setpshared failed");
- return 1;
- }
-
- if (check (&condattr, PTHREAD_PROCESS_SHARED, CLOCK_REALTIME))
- return 1;
-
- if (pthread_condattr_setclock (&condattr, cl) != 0)
- {
- puts ("1st condattr_setclock failed");
- return 1;
- }
-
- if (check (&condattr, PTHREAD_PROCESS_SHARED, cl))
- return 1;
-
- if (pthread_condattr_setpshared (&condattr, PTHREAD_PROCESS_PRIVATE) != 0)
- {
- puts ("2nd condattr_setpshared failed");
- return 1;
- }
-
- if (check (&condattr, PTHREAD_PROCESS_PRIVATE, cl))
- return 1;
-
- if (pthread_condattr_setclock (&condattr, CLOCK_REALTIME) != 0)
- {
- puts ("2nd condattr_setclock failed");
- return 1;
- }
-
- if (check (&condattr, PTHREAD_PROCESS_PRIVATE, CLOCK_REALTIME))
- return 1;
-
- if (pthread_condattr_setclock (&condattr, cl) != 0)
- {
- puts ("3rd condattr_setclock failed");
- return 1;
- }
-
- if (check (&condattr, PTHREAD_PROCESS_PRIVATE, cl))
- return 1;
-
- if (pthread_condattr_setpshared (&condattr, PTHREAD_PROCESS_SHARED) != 0)
- {
- puts ("3rd condattr_setpshared failed");
- return 1;
- }
-
- if (check (&condattr, PTHREAD_PROCESS_SHARED, cl))
- return 1;
-
- if (pthread_condattr_setclock (&condattr, CLOCK_REALTIME) != 0)
- {
- puts ("4th condattr_setclock failed");
- return 1;
- }
-
- if (check (&condattr, PTHREAD_PROCESS_SHARED, CLOCK_REALTIME))
- return 1;
-
- if (pthread_condattr_destroy (&condattr) != 0)
- {
- puts ("condattr_destroy failed");
- return 1;
- }
-
- return 0;
-}
-#endif
-
-
-static int
-do_test (void)
-{
-#if !defined _POSIX_CLOCK_SELECTION || _POSIX_CLOCK_SELECTION == -1
-
- puts ("_POSIX_CLOCK_SELECTION not supported, test skipped");
- return 0;
-
-#else
-
- int res = run_test (CLOCK_REALTIME);
-
-# if defined _POSIX_MONOTONIC_CLOCK && _POSIX_MONOTONIC_CLOCK >= 0
-# if _POSIX_MONOTONIC_CLOCK == 0
- int e = sysconf (_SC_MONOTONIC_CLOCK);
- if (e < 0)
- puts ("CLOCK_MONOTONIC not supported");
- else if (e == 0)
- {
- puts ("sysconf (_SC_MONOTONIC_CLOCK) must not return 0");
- res = 1;
- }
- else
-# endif
- res |= run_test (CLOCK_MONOTONIC);
-# else
- puts ("_POSIX_MONOTONIC_CLOCK not defined");
-# endif
-
- return res;
-#endif
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cond3.c b/test/nptl/tst-cond3.c
deleted file mode 100644
index b181831..0000000
--- a/test/nptl/tst-cond3.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-
-/* Note that this test requires more than the standard. It is
- required that there are no spurious wakeups if only more readers
- are added. This is a reasonable demand. */
-
-
-static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;
-
-
-#define N 10
-
-
-static void *
-tf (void *arg)
-{
- int i = (long int) arg;
- int err;
-
- /* Get the mutex. */
- err = pthread_mutex_lock (&mut);
- if (err != 0)
- {
- printf ("child %d mutex_lock failed: %s\n", i, strerror (err));
- exit (1);
- }
-
- /* This call should never return. */
- pthread_cond_wait (&cond, &mut);
-
- /* We should never get here. */
- exit (1);
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- int err;
- int i;
-
- for (i = 0; i < N; ++i)
- {
- pthread_t th;
-
- if (i != 0)
- {
- /* Release the mutex. */
- err = pthread_mutex_unlock (&mut);
- if (err != 0)
- {
- printf ("mutex_unlock %d failed: %s\n", i, strerror (err));
- return 1;
- }
- }
-
- err = pthread_create (&th, NULL, tf, (void *) (long int) i);
- if (err != 0)
- {
- printf ("create %d failed: %s\n", i, strerror (err));
- return 1;
- }
-
- /* Get the mutex. */
- err = pthread_mutex_lock (&mut);
- if (err != 0)
- {
- printf ("mutex_lock %d failed: %s\n", i, strerror (err));
- return 1;
- }
- }
-
- /* Set an alarm for 1 second. The wrapper will expect this. */
- alarm (1);
-
- /* This call should never return. */
- pthread_cond_wait (&cond, &mut);
-
- puts ("cond_wait returned");
- return 1;
-}
-
-
-#define EXPECTED_SIGNAL SIGALRM
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cond4.c b/test/nptl/tst-cond4.c
deleted file mode 100644
index 47a7380..0000000
--- a/test/nptl/tst-cond4.c
+++ /dev/null
@@ -1,263 +0,0 @@
-/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/wait.h>
-#include <stdint.h>
-
-
-int *condition;
-
-static int
-do_test (void)
-{
- size_t ps = sysconf (_SC_PAGESIZE);
- char tmpfname[] = "/tmp/tst-cond4.XXXXXX";
- char data[ps];
- void *mem;
- int fd;
- pthread_mutexattr_t ma;
- pthread_mutex_t *mut1;
- pthread_mutex_t *mut2;
- pthread_condattr_t ca;
- pthread_cond_t *cond;
- pid_t pid;
- int result = 0;
- int p;
-
- fd = mkstemp (tmpfname);
- if (fd == -1)
- {
- printf ("cannot open temporary file: %m\n");
- return 1;
- }
-
- /* Make sure it is always removed. */
- unlink (tmpfname);
-
- /* Create one page of data. */
- memset (data, '\0', ps);
-
- /* Write the data to the file. */
- if (write (fd, data, ps) != (ssize_t) ps)
- {
- puts ("short write");
- return 1;
- }
-
- mem = mmap (NULL, ps, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
- if (mem == MAP_FAILED)
- {
- printf ("mmap failed: %m\n");
- return 1;
- }
-
- mut1 = (pthread_mutex_t *) (((uintptr_t) mem
- + __alignof (pthread_mutex_t))
- & ~(__alignof (pthread_mutex_t) - 1));
- mut2 = mut1 + 1;
-
- cond = (pthread_cond_t *) (((uintptr_t) (mut2 + 1)
- + __alignof (pthread_cond_t))
- & ~(__alignof (pthread_cond_t) - 1));
-
- condition = (int *) (((uintptr_t) (cond + 1) + __alignof (int))
- & ~(__alignof (int) - 1));
-
- if (pthread_mutexattr_init (&ma) != 0)
- {
- puts ("mutexattr_init failed");
- return 1;
- }
-
- if (pthread_mutexattr_getpshared (&ma, &p) != 0)
- {
- puts ("1st mutexattr_getpshared failed");
- return 1;
- }
-
- if (p != PTHREAD_PROCESS_PRIVATE)
- {
- puts ("default pshared value wrong");
- return 1;
- }
-
- if (pthread_mutexattr_setpshared (&ma, PTHREAD_PROCESS_SHARED) != 0)
- {
- puts ("mutexattr_setpshared failed");
- return 1;
- }
-
- if (pthread_mutexattr_getpshared (&ma, &p) != 0)
- {
- puts ("2nd mutexattr_getpshared failed");
- return 1;
- }
-
- if (p != PTHREAD_PROCESS_SHARED)
- {
- puts ("pshared value after setpshared call wrong");
- return 1;
- }
-
- if (pthread_mutex_init (mut1, &ma) != 0)
- {
- puts ("1st mutex_init failed");
- return 1;
- }
-
- if (pthread_mutex_init (mut2, &ma) != 0)
- {
- puts ("2nd mutex_init failed");
- return 1;
- }
-
- if (pthread_condattr_init (&ca) != 0)
- {
- puts ("condattr_init failed");
- return 1;
- }
-
- if (pthread_condattr_getpshared (&ca, &p) != 0)
- {
- puts ("1st condattr_getpshared failed");
- return 1;
- }
-
- if (p != PTHREAD_PROCESS_PRIVATE)
- {
- puts ("default value for pshared in condattr wrong");
- return 1;
- }
-
- if (pthread_condattr_setpshared (&ca, PTHREAD_PROCESS_SHARED) != 0)
- {
- puts ("condattr_setpshared failed");
- return 1;
- }
-
- if (pthread_condattr_getpshared (&ca, &p) != 0)
- {
- puts ("2nd condattr_getpshared failed");
- return 1;
- }
-
- if (p != PTHREAD_PROCESS_SHARED)
- {
- puts ("pshared condattr still not set");
- return 1;
- }
-
- if (pthread_cond_init (cond, &ca) != 0)
- {
- puts ("cond_init failed");
- return 1;
- }
-
- if (pthread_mutex_lock (mut1) != 0)
- {
- puts ("parent: 1st mutex_lock failed");
- return 1;
- }
-
- puts ("going to fork now");
- pid = fork ();
- if (pid == -1)
- {
- puts ("fork failed");
- return 1;
- }
- else if (pid == 0)
- {
- if (pthread_mutex_lock (mut2) != 0)
- {
- puts ("child: mutex_lock failed");
- return 1;
- }
-
- if (pthread_mutex_unlock (mut1) != 0)
- {
- puts ("child: 1st mutex_unlock failed");
- return 1;
- }
-
- do
- if (pthread_cond_wait (cond, mut2) != 0)
- {
- puts ("child: cond_wait failed");
- return 1;
- }
- while (*condition == 0);
-
- if (pthread_mutex_unlock (mut2) != 0)
- {
- puts ("child: 2nd mutex_unlock failed");
- return 1;
- }
-
- puts ("child done");
- }
- else
- {
- int status;
-
- if (pthread_mutex_lock (mut1) != 0)
- {
- puts ("parent: 2nd mutex_lock failed");
- return 1;
- }
-
- if (pthread_mutex_lock (mut2) != 0)
- {
- puts ("parent: 3rd mutex_lock failed");
- return 1;
- }
-
- if (pthread_cond_signal (cond) != 0)
- {
- puts ("parent: cond_signal failed");
- return 1;
- }
-
- *condition = 1;
-
- if (pthread_mutex_unlock (mut2) != 0)
- {
- puts ("parent: mutex_unlock failed");
- return 1;
- }
-
- puts ("waiting for child");
-
- waitpid (pid, &status, 0);
- result |= status;
-
- puts ("parent done");
- }
-
- return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cond5.c b/test/nptl/tst-cond5.c
deleted file mode 100644
index 7da5b41..0000000
--- a/test/nptl/tst-cond5.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <sys/time.h>
-
-
-static pthread_mutex_t mut;
-static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-
-
-static int
-do_test (void)
-{
- pthread_mutexattr_t ma;
- int err;
- struct timespec ts;
- struct timeval tv;
-
- if (pthread_mutexattr_init (&ma) != 0)
- {
- puts ("mutexattr_init failed");
- exit (1);
- }
-
- if (pthread_mutexattr_settype (&ma, PTHREAD_MUTEX_ERRORCHECK) != 0)
- {
- puts ("mutexattr_settype failed");
- exit (1);
- }
-
- if (pthread_mutex_init (&mut, &ma) != 0)
- {
- puts ("mutex_init failed");
- exit (1);
- }
-
- /* Get the mutex. */
- if (pthread_mutex_lock (&mut) != 0)
- {
- puts ("mutex_lock failed");
- exit (1);
- }
-
- /* Waiting for the condition will fail. But we want the timeout here. */
- if (gettimeofday (&tv, NULL) != 0)
- {
- puts ("gettimeofday failed");
- exit (1);
- }
-
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- ts.tv_nsec += 500000000;
- if (ts.tv_nsec >= 1000000000)
- {
- ts.tv_nsec -= 1000000000;
- ++ts.tv_sec;
- }
- err = pthread_cond_timedwait (&cond, &mut, &ts);
- if (err == 0)
- {
- /* This could in theory happen but here without any signal and
- additional waiter it should not. */
- puts ("cond_timedwait succeeded");
- exit (1);
- }
- else if (err != ETIMEDOUT)
- {
- printf ("cond_timedwait returned with %s\n", strerror (err));
- exit (1);
- }
-
- err = pthread_mutex_unlock (&mut);
- if (err != 0)
- {
- printf ("mutex_unlock failed: %s\n", strerror (err));
- exit (1);
- }
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cond6.c b/test/nptl/tst-cond6.c
deleted file mode 100644
index f28d4c1..0000000
--- a/test/nptl/tst-cond6.c
+++ /dev/null
@@ -1,233 +0,0 @@
-/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/time.h>
-#include <sys/wait.h>
-#include <stdint.h>
-
-
-int *condition;
-
-static int
-do_test (void)
-{
- size_t ps = sysconf (_SC_PAGESIZE);
- char tmpfname[] = "/tmp/tst-cond6.XXXXXX";
- char data[ps];
- void *mem;
- int fd;
- pthread_mutexattr_t ma;
- pthread_mutex_t *mut1;
- pthread_mutex_t *mut2;
- pthread_condattr_t ca;
- pthread_cond_t *cond;
- pid_t pid;
- int result = 0;
-
- fd = mkstemp (tmpfname);
- if (fd == -1)
- {
- printf ("cannot open temporary file: %m\n");
- exit (1);
- }
-
- /* Make sure it is always removed. */
- unlink (tmpfname);
-
- /* Create one page of data. */
- memset (data, '\0', ps);
-
- /* Write the data to the file. */
- if (write (fd, data, ps) != (ssize_t) ps)
- {
- puts ("short write");
- exit (1);
- }
-
- mem = mmap (NULL, ps, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
- if (mem == MAP_FAILED)
- {
- printf ("mmap failed: %m\n");
- exit (1);
- }
-
- mut1 = (pthread_mutex_t *) (((uintptr_t) mem
- + __alignof (pthread_mutex_t))
- & ~(__alignof (pthread_mutex_t) - 1));
- mut2 = mut1 + 1;
-
- cond = (pthread_cond_t *) (((uintptr_t) (mut2 + 1)
- + __alignof (pthread_cond_t))
- & ~(__alignof (pthread_cond_t) - 1));
-
- condition = (int *) (((uintptr_t) (cond + 1) + __alignof (int))
- & ~(__alignof (int) - 1));
-
- if (pthread_mutexattr_init (&ma) != 0)
- {
- puts ("mutexattr_init failed");
- exit (1);
- }
-
- if (pthread_mutexattr_setpshared (&ma, PTHREAD_PROCESS_SHARED) != 0)
- {
- puts ("mutexattr_setpshared failed");
- exit (1);
- }
-
- if (pthread_mutex_init (mut1, &ma) != 0)
- {
- puts ("1st mutex_init failed");
- exit (1);
- }
-
- if (pthread_mutex_init (mut2, &ma) != 0)
- {
- puts ("2nd mutex_init failed");
- exit (1);
- }
-
- if (pthread_condattr_init (&ca) != 0)
- {
- puts ("condattr_init failed");
- exit (1);
- }
-
- if (pthread_condattr_setpshared (&ca, PTHREAD_PROCESS_SHARED) != 0)
- {
- puts ("condattr_setpshared failed");
- exit (1);
- }
-
- if (pthread_cond_init (cond, &ca) != 0)
- {
- puts ("cond_init failed");
- exit (1);
- }
-
- if (pthread_mutex_lock (mut1) != 0)
- {
- puts ("parent: 1st mutex_lock failed");
- exit (1);
- }
-
- puts ("going to fork now");
- pid = fork ();
- if (pid == -1)
- {
- puts ("fork failed");
- exit (1);
- }
- else if (pid == 0)
- {
- struct timespec ts;
- struct timeval tv;
-
- if (pthread_mutex_lock (mut2) != 0)
- {
- puts ("child: mutex_lock failed");
- exit (1);
- }
-
- if (pthread_mutex_unlock (mut1) != 0)
- {
- puts ("child: 1st mutex_unlock failed");
- exit (1);
- }
-
- if (gettimeofday (&tv, NULL) != 0)
- {
- puts ("gettimeofday failed");
- exit (1);
- }
-
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- ts.tv_nsec += 500000000;
- if (ts.tv_nsec >= 1000000000)
- {
- ts.tv_nsec -= 1000000000;
- ++ts.tv_sec;
- }
-
- do
- if (pthread_cond_timedwait (cond, mut2, &ts) != 0)
- {
- puts ("child: cond_wait failed");
- exit (1);
- }
- while (*condition == 0);
-
- if (pthread_mutex_unlock (mut2) != 0)
- {
- puts ("child: 2nd mutex_unlock failed");
- exit (1);
- }
-
- puts ("child done");
- }
- else
- {
- int status;
-
- if (pthread_mutex_lock (mut1) != 0)
- {
- puts ("parent: 2nd mutex_lock failed");
- exit (1);
- }
-
- if (pthread_mutex_lock (mut2) != 0)
- {
- puts ("parent: 3rd mutex_lock failed");
- exit (1);
- }
-
- if (pthread_cond_signal (cond) != 0)
- {
- puts ("parent: cond_signal failed");
- exit (1);
- }
-
- *condition = 1;
-
- if (pthread_mutex_unlock (mut2) != 0)
- {
- puts ("parent: mutex_unlock failed");
- exit (1);
- }
-
- puts ("waiting for child");
-
- waitpid (pid, &status, 0);
- result |= status;
-
- puts ("parent done");
- }
-
- return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cond7.c b/test/nptl/tst-cond7.c
deleted file mode 100644
index c48fda1..0000000
--- a/test/nptl/tst-cond7.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <sys/time.h>
-
-
-typedef struct
- {
- pthread_cond_t cond;
- pthread_mutex_t lock;
- pthread_t h;
- } T;
-
-
-static volatile bool done;
-
-
-static void *
-tf (void *arg)
-{
- puts ("child created");
-
- if (pthread_setcancelstate (PTHREAD_CANCEL_ENABLE, NULL) != 0
- || pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, NULL) != 0)
- {
- puts ("cannot set cancellation options");
- exit (1);
- }
-
- T *t = (T *) arg;
-
- if (pthread_mutex_lock (&t->lock) != 0)
- {
- puts ("child: lock failed");
- exit (1);
- }
-
- done = true;
-
- if (pthread_cond_signal (&t->cond) != 0)
- {
- puts ("child: cond_signal failed");
- exit (1);
- }
-
- if (pthread_cond_wait (&t->cond, &t->lock) != 0)
- {
- puts ("child: cond_wait failed");
- exit (1);
- }
-
- if (pthread_mutex_unlock (&t->lock) != 0)
- {
- puts ("child: unlock failed");
- exit (1);
- }
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- int i;
-#define N 100
- T *t[N];
- for (i = 0; i < N; ++i)
- {
- printf ("round %d\n", i);
-
- t[i] = (T *) malloc (sizeof (T));
- if (t[i] == NULL)
- {
- puts ("out of memory");
- exit (1);
- }
-
- if (pthread_mutex_init (&t[i]->lock, NULL) != 0
- || pthread_cond_init (&t[i]->cond, NULL) != 0)
- {
- puts ("an _init function failed");
- exit (1);
- }
-
- if (pthread_mutex_lock (&t[i]->lock) != 0)
- {
- puts ("initial mutex_lock failed");
- exit (1);
- }
-
- done = false;
-
- if (pthread_create (&t[i]->h, NULL, tf, t[i]) != 0)
- {
- puts ("pthread_create failed");
- exit (1);
- }
-
- do
- if (pthread_cond_wait (&t[i]->cond, &t[i]->lock) != 0)
- {
- puts ("cond_wait failed");
- exit (1);
- }
- while (! done);
-
- /* Release the lock since the cancel handler will get it. */
- if (pthread_mutex_unlock (&t[i]->lock) != 0)
- {
- puts ("mutex_unlock failed");
- exit (1);
- }
-
- if (pthread_cancel (t[i]->h) != 0)
- {
- puts ("cancel failed");
- exit (1);
- }
-
- puts ("parent: joining now");
-
- void *result;
- if (pthread_join (t[i]->h, &result) != 0)
- {
- puts ("join failed");
- exit (1);
- }
-
- if (result != PTHREAD_CANCELED)
- {
- puts ("result != PTHREAD_CANCELED");
- exit (1);
- }
- }
-
- for (i = 0; i < N; ++i)
- free (t[i]);
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cond8.c b/test/nptl/tst-cond8.c
deleted file mode 100644
index fb13fa4..0000000
--- a/test/nptl/tst-cond8.c
+++ /dev/null
@@ -1,276 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include <sys/time.h>
-
-
-static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t mut = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP;
-
-static pthread_barrier_t bar;
-
-
-static void
-ch (void *arg)
-{
- int e = pthread_mutex_lock (&mut);
- if (e == 0)
- {
- puts ("mutex not locked at all by cond_wait");
- exit (1);
- }
-
- if (e != EDEADLK)
- {
- puts ("no deadlock error signaled");
- exit (1);
- }
-
- if (pthread_mutex_unlock (&mut) != 0)
- {
- puts ("ch: cannot unlock mutex");
- exit (1);
- }
-
- puts ("ch done");
-}
-
-
-static void *
-tf1 (void *p)
-{
- int err;
-
- if (pthread_setcancelstate (PTHREAD_CANCEL_ENABLE, NULL) != 0
- || pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, NULL) != 0)
- {
- puts ("cannot set cancellation options");
- exit (1);
- }
-
- err = pthread_mutex_lock (&mut);
- if (err != 0)
- {
- puts ("child: cannot get mutex");
- exit (1);
- }
-
- err = pthread_barrier_wait (&bar);
- if (err != 0 && err != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("barrier_wait returned %d\n", err);
- exit (1);
- }
-
- puts ("child: got mutex; waiting");
-
- pthread_cleanup_push (ch, NULL);
-
- pthread_cond_wait (&cond, &mut);
-
- pthread_cleanup_pop (0);
-
- puts ("child: cond_wait should not have returned");
-
- return NULL;
-}
-
-
-static void *
-tf2 (void *p)
-{
- int err;
-
- if (pthread_setcancelstate (PTHREAD_CANCEL_ENABLE, NULL) != 0
- || pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, NULL) != 0)
- {
- puts ("cannot set cancellation options");
- exit (1);
- }
-
- err = pthread_mutex_lock (&mut);
- if (err != 0)
- {
- puts ("child: cannot get mutex");
- exit (1);
- }
-
- err = pthread_barrier_wait (&bar);
- if (err != 0 && err != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("barrier_wait returned %d\n", err);
- exit (1);
- }
-
- puts ("child: got mutex; waiting");
-
- pthread_cleanup_push (ch, NULL);
-
- /* Current time. */
- struct timeval tv;
- (void) gettimeofday (&tv, NULL);
- /* +1000 seconds in correct format. */
- struct timespec ts;
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- ts.tv_sec += 1000;
-
- pthread_cond_timedwait (&cond, &mut, &ts);
-
- pthread_cleanup_pop (0);
-
- puts ("child: cond_wait should not have returned");
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- pthread_t th;
- int err;
-
- printf ("&cond = %p\n&mut = %p\n", &cond, &mut);
-
- puts ("parent: get mutex");
-
- err = pthread_barrier_init (&bar, NULL, 2);
- if (err != 0)
- {
- puts ("parent: cannot init barrier");
- exit (1);
- }
-
- puts ("parent: create child");
-
- err = pthread_create (&th, NULL, tf1, NULL);
- if (err != 0)
- {
- puts ("parent: cannot create thread");
- exit (1);
- }
-
- puts ("parent: wait for child to lock mutex");
-
- err = pthread_barrier_wait (&bar);
- if (err != 0 && err != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("parent: cannot wait for barrier");
- exit (1);
- }
-
- err = pthread_mutex_lock (&mut);
- if (err != 0)
- {
- puts ("parent: mutex_lock failed");
- exit (1);
- }
-
- err = pthread_mutex_unlock (&mut);
- if (err != 0)
- {
- puts ("parent: mutex_unlock failed");
- exit (1);
- }
-
- if (pthread_cancel (th) != 0)
- {
- puts ("cannot cancel thread");
- exit (1);
- }
-
- void *r;
- err = pthread_join (th, &r);
- if (err != 0)
- {
- puts ("parent: failed to join");
- exit (1);
- }
-
- if (r != PTHREAD_CANCELED)
- {
- puts ("child hasn't been canceled");
- exit (1);
- }
-
-
-
- puts ("parent: create 2nd child");
-
- err = pthread_create (&th, NULL, tf2, NULL);
- if (err != 0)
- {
- puts ("parent: cannot create thread");
- exit (1);
- }
-
- puts ("parent: wait for child to lock mutex");
-
- err = pthread_barrier_wait (&bar);
- if (err != 0 && err != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("parent: cannot wait for barrier");
- exit (1);
- }
-
- err = pthread_mutex_lock (&mut);
- if (err != 0)
- {
- puts ("parent: mutex_lock failed");
- exit (1);
- }
-
- err = pthread_mutex_unlock (&mut);
- if (err != 0)
- {
- puts ("parent: mutex_unlock failed");
- exit (1);
- }
-
- if (pthread_cancel (th) != 0)
- {
- puts ("cannot cancel thread");
- exit (1);
- }
-
- err = pthread_join (th, &r);
- if (err != 0)
- {
- puts ("parent: failed to join");
- exit (1);
- }
-
- if (r != PTHREAD_CANCELED)
- {
- puts ("child hasn't been canceled");
- exit (1);
- }
-
- puts ("done");
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cond9.c b/test/nptl/tst-cond9.c
deleted file mode 100644
index dcb597d..0000000
--- a/test/nptl/tst-cond9.c
+++ /dev/null
@@ -1,149 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include <sys/time.h>
-
-
-static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t mut = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP;
-
-
-static void *
-tf (void *arg)
-{
- int err = pthread_cond_wait (&cond, &mut);
- if (err == 0)
- {
- puts ("cond_wait did not fail");
- exit (1);
- }
-
- if (err != EPERM)
- {
- printf ("cond_wait didn't return EPERM but %d\n", err);
- exit (1);
- }
-
-
- /* Current time. */
- struct timeval tv;
- (void) gettimeofday (&tv, NULL);
- /* +1000 seconds in correct format. */
- struct timespec ts;
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- ts.tv_sec += 1000;
-
- err = pthread_cond_timedwait (&cond, &mut, &ts);
- if (err == 0)
- {
- puts ("cond_timedwait did not fail");
- exit (1);
- }
-
- if (err != EPERM)
- {
- printf ("cond_timedwait didn't return EPERM but %d\n", err);
- exit (1);
- }
-
- return (void *) 1l;
-}
-
-
-static int
-do_test (void)
-{
- pthread_t th;
- int err;
-
- printf ("&cond = %p\n&mut = %p\n", &cond, &mut);
-
- err = pthread_cond_wait (&cond, &mut);
- if (err == 0)
- {
- puts ("cond_wait did not fail");
- exit (1);
- }
-
- if (err != EPERM)
- {
- printf ("cond_wait didn't return EPERM but %d\n", err);
- exit (1);
- }
-
-
- /* Current time. */
- struct timeval tv;
- (void) gettimeofday (&tv, NULL);
- /* +1000 seconds in correct format. */
- struct timespec ts;
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- ts.tv_sec += 1000;
-
- err = pthread_cond_timedwait (&cond, &mut, &ts);
- if (err == 0)
- {
- puts ("cond_timedwait did not fail");
- exit (1);
- }
-
- if (err != EPERM)
- {
- printf ("cond_timedwait didn't return EPERM but %d\n", err);
- exit (1);
- }
-
- if (pthread_mutex_lock (&mut) != 0)
- {
- puts ("parent: mutex_lock failed");
- exit (1);
- }
-
- puts ("creating thread");
-
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("create failed");
- exit (1);
- }
-
- void *r;
- if (pthread_join (th, &r) != 0)
- {
- puts ("join failed");
- exit (1);
- }
- if (r != (void *) 1l)
- {
- puts ("thread has wrong return value");
- exit (1);
- }
-
- puts ("done");
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cpuclock1.c b/test/nptl/tst-cpuclock1.c
deleted file mode 100644
index 9d68ec5..0000000
--- a/test/nptl/tst-cpuclock1.c
+++ /dev/null
@@ -1,306 +0,0 @@
-/* Test program for process CPU clocks.
- Copyright (C) 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <string.h>
-#include <errno.h>
-#include <signal.h>
-#include <sys/wait.h>
-
-/* This function is intended to rack up both user and system time. */
-static void
-chew_cpu (void)
-{
- while (1)
- {
- static volatile char buf[4096];
- for (int i = 0; i < 100; ++i)
- for (size_t j = 0; j < sizeof buf; ++j)
- buf[j] = 0xaa;
- int nullfd = open ("/dev/null", O_WRONLY);
- for (int i = 0; i < 100; ++i)
- for (size_t j = 0; j < sizeof buf; ++j)
- buf[j] = 0xbb;
- write (nullfd, (char *) buf, sizeof buf);
- close (nullfd);
- if (getppid () == 1)
- _exit (2);
- }
-}
-
-static int
-do_test (void)
-{
- int result = 0;
- clockid_t cl;
- int e;
- pid_t dead_child, child;
-
- /* Fork a child and let it die, to give us a PID known not be valid
- (assuming PIDs don't wrap around during the test). */
- {
- dead_child = fork ();
- if (dead_child == 0)
- _exit (0);
- if (dead_child < 0)
- {
- perror ("fork");
- return 1;
- }
- int x;
- if (wait (&x) != dead_child)
- {
- perror ("wait");
- return 2;
- }
- }
-
- /* POSIX says we should get ESRCH for this. */
- e = clock_getcpuclockid (dead_child, &cl);
- if (e != ENOSYS && e != ESRCH && e != EPERM)
- {
- printf ("clock_getcpuclockid on dead PID %d => %s\n",
- dead_child, strerror (e));
- result = 1;
- }
-
- /* Now give us a live child eating up CPU time. */
- child = fork ();
- if (child == 0)
- {
- chew_cpu ();
- _exit (1);
- }
- if (child < 0)
- {
- perror ("fork");
- return 1;
- }
-
- e = clock_getcpuclockid (child, &cl);
- if (e == EPERM)
- {
- puts ("clock_getcpuclockid does not support other processes");
- goto done;
- }
- if (e != 0)
- {
- printf ("clock_getcpuclockid on live PID %d => %s\n",
- child, strerror (e));
- result = 1;
- goto done;
- }
-
- const clockid_t child_clock = cl;
- struct timespec res;
- if (clock_getres (child_clock, &res) < 0)
- {
- printf ("clock_getres on live PID %d clock %lx => %s\n",
- child, (unsigned long int) child_clock, strerror (errno));
- result = 1;
- goto done;
- }
- printf ("live PID %d clock %lx resolution %lu.%.9lu\n",
- child, (unsigned long int) child_clock, res.tv_sec, res.tv_nsec);
-
- struct timespec before, after;
- if (clock_gettime (child_clock, &before) < 0)
- {
- printf ("clock_gettime on live PID %d clock %lx => %s\n",
- child, (unsigned long int) child_clock, strerror (errno));
- result = 1;
- goto done;
- }
- printf ("live PID %d before sleep => %lu.%.9lu\n",
- child, before.tv_sec, before.tv_nsec);
-
- struct timespec sleeptime = { .tv_nsec = 500000000 };
- nanosleep (&sleeptime, NULL);
-
- if (clock_gettime (child_clock, &after) < 0)
- {
- printf ("clock_gettime on live PID %d clock %lx => %s\n",
- child, (unsigned long int) child_clock, strerror (errno));
- result = 1;
- goto done;
- }
- printf ("live PID %d after sleep => %lu.%.9lu\n",
- child, after.tv_sec, after.tv_nsec);
-
- struct timespec diff = { .tv_sec = after.tv_sec - before.tv_sec,
- .tv_nsec = after.tv_nsec - before.tv_nsec };
- if (diff.tv_nsec < 0)
- {
- --diff.tv_sec;
- diff.tv_nsec += 1000000000;
- }
- if (diff.tv_sec != 0
- || diff.tv_nsec > 600000000
- || diff.tv_nsec < 100000000)
- {
- printf ("before - after %lu.%.9lu outside reasonable range\n",
- diff.tv_sec, diff.tv_nsec);
- result = 1;
- }
-
- sleeptime.tv_nsec = 100000000;
- e = clock_nanosleep (child_clock, 0, &sleeptime, NULL);
- if (e == EINVAL || e == ENOTSUP || e == ENOSYS)
- {
- printf ("clock_nanosleep not supported for other process clock: %s\n",
- strerror (e));
- }
- else if (e != 0)
- {
- printf ("clock_nanosleep on other process clock: %s\n", strerror (e));
- result = 1;
- }
- else
- {
- struct timespec afterns;
- if (clock_gettime (child_clock, &afterns) < 0)
- {
- printf ("clock_gettime on live PID %d clock %lx => %s\n",
- child, (unsigned long int) child_clock, strerror (errno));
- result = 1;
- }
- else
- {
- struct timespec d = { .tv_sec = afterns.tv_sec - after.tv_sec,
- .tv_nsec = afterns.tv_nsec - after.tv_nsec };
- if (d.tv_nsec < 0)
- {
- --d.tv_sec;
- d.tv_nsec += 1000000000;
- }
- if (d.tv_sec > 0
- || d.tv_nsec < sleeptime.tv_nsec
- || d.tv_nsec > sleeptime.tv_nsec * 2)
- {
- printf ("nanosleep time %lu.%.9lu outside reasonable range\n",
- d.tv_sec, d.tv_nsec);
- result = 1;
- }
- }
- }
-
- if (kill (child, SIGKILL) != 0)
- {
- perror ("kill");
- result = 2;
- goto done;
- }
-
- /* Wait long enough to let the child finish dying. */
-
- sleeptime.tv_nsec = 200000000;
- nanosleep (&sleeptime, NULL);
-
- struct timespec dead;
- if (clock_gettime (child_clock, &dead) < 0)
- {
- printf ("clock_gettime on dead PID %d clock %lx => %s\n",
- child, (unsigned long int) child_clock, strerror (errno));
- result = 1;
- goto done;
- }
- printf ("dead PID %d => %lu.%.9lu\n",
- child, dead.tv_sec, dead.tv_nsec);
-
- diff.tv_sec = dead.tv_sec - after.tv_sec;
- diff.tv_nsec = dead.tv_nsec - after.tv_nsec;
- if (diff.tv_nsec < 0)
- {
- --diff.tv_sec;
- diff.tv_nsec += 1000000000;
- }
- if (diff.tv_sec != 0 || diff.tv_nsec > 200000000)
- {
- printf ("dead - after %lu.%.9lu outside reasonable range\n",
- diff.tv_sec, diff.tv_nsec);
- result = 1;
- }
-
- /* Now reap the child and verify that its clock is no longer valid. */
- {
- int x;
- if (waitpid (child, &x, 0) != child)
- {
- perror ("waitpid");
- result = 1;
- }
- }
-
- if (clock_gettime (child_clock, &dead) == 0)
- {
- printf ("clock_gettime on reaped PID %d clock %lx => %lu%.9lu\n",
- child, (unsigned long int) child_clock,
- dead.tv_sec, dead.tv_nsec);
- result = 1;
- }
- else
- {
- if (errno != EINVAL)
- result = 1;
- printf ("clock_gettime on reaped PID %d clock %lx => %s\n",
- child, (unsigned long int) child_clock, strerror (errno));
- }
-
- if (clock_getres (child_clock, &dead) == 0)
- {
- printf ("clock_getres on reaped PID %d clock %lx => %lu%.9lu\n",
- child, (unsigned long int) child_clock,
- dead.tv_sec, dead.tv_nsec);
- result = 1;
- }
- else
- {
- if (errno != EINVAL)
- result = 1;
- printf ("clock_getres on reaped PID %d clock %lx => %s\n",
- child, (unsigned long int) child_clock, strerror (errno));
- }
-
- return result;
-
- done:
- {
- if (kill (child, SIGKILL) != 0 && errno != ESRCH)
- {
- perror ("kill");
- return 2;
- }
- int x;
- if (waitpid (child, &x, 0) != child && errno != ECHILD)
- {
- perror ("waitpid");
- return 2;
- }
- }
-
- return result;
-}
-
-
-#define TIMEOUT 5
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cpuclock2.c b/test/nptl/tst-cpuclock2.c
deleted file mode 100644
index d08dc62..0000000
--- a/test/nptl/tst-cpuclock2.c
+++ /dev/null
@@ -1,331 +0,0 @@
-/* Test program for process and thread CPU clocks.
- Copyright (C) 2005 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <unistd.h>
-
-#if (_POSIX_THREADS - 0) <= 0
-
-# define TEST_FUNCTION 0
-
-#else
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include <fcntl.h>
-#include <string.h>
-#include <errno.h>
-#include <pthread.h>
-
-static pthread_barrier_t barrier;
-
-/* This function is intended to rack up both user and system time. */
-static void *
-chew_cpu (void *arg)
-{
- pthread_barrier_wait (&barrier);
-
- while (1)
- {
- static volatile char buf[4096];
- for (int i = 0; i < 100; ++i)
- for (size_t j = 0; j < sizeof buf; ++j)
- buf[j] = 0xaa;
- int nullfd = open ("/dev/null", O_WRONLY);
- for (int i = 0; i < 100; ++i)
- for (size_t j = 0; j < sizeof buf; ++j)
- buf[j] = 0xbb;
- write (nullfd, (char *) buf, sizeof buf);
- close (nullfd);
- }
-
- return NULL;
-}
-
-static unsigned long long int
-tsdiff (const struct timespec *before, const struct timespec *after)
-{
- struct timespec diff = { .tv_sec = after->tv_sec - before->tv_sec,
- .tv_nsec = after->tv_nsec - before->tv_nsec };
- while (diff.tv_nsec < 0)
- {
- --diff.tv_sec;
- diff.tv_nsec += 1000000000;
- }
- return diff.tv_sec * 1000000000ULL + diff.tv_nsec;
-}
-
-static unsigned long long int
-test_nanosleep (clockid_t clock, const char *which,
- const struct timespec *before, int *bad)
-{
- const struct timespec sleeptime = { .tv_nsec = 100000000 };
- int e = clock_nanosleep (clock, 0, &sleeptime, NULL);
- if (e == EINVAL || e == ENOTSUP || e == ENOSYS)
- {
- printf ("clock_nanosleep not supported for %s CPU clock: %s\n",
- which, strerror (e));
- return 0;
- }
- if (e != 0)
- {
- printf ("clock_nanosleep on %s CPU clock: %s\n", which, strerror (e));
- *bad = 1;
- return 0;
- }
-
- struct timespec after;
- if (clock_gettime (clock, &after) < 0)
- {
- printf ("clock_gettime on %s CPU clock %lx => %s\n",
- which, (unsigned long int) clock, strerror (errno));
- *bad = 1;
- return 0;
- }
-
- unsigned long long int diff = tsdiff (before, &after);
- if (diff < sleeptime.tv_nsec || diff > sleeptime.tv_nsec * 2)
- {
- printf ("clock_nanosleep on %s slept %llu (outside reasonable range)\n",
- which, diff);
- *bad = 1;
- return diff;
- }
-
- struct timespec sleeptimeabs = sleeptime;
- sleeptimeabs.tv_sec += after.tv_sec;
- sleeptimeabs.tv_nsec += after.tv_nsec;
- while (sleeptimeabs.tv_nsec > 1000000000)
- {
- ++sleeptimeabs.tv_sec;
- sleeptimeabs.tv_nsec -= 1000000000;
- }
- e = clock_nanosleep (clock, TIMER_ABSTIME, &sleeptimeabs, NULL);
- if (e != 0)
- {
- printf ("absolute clock_nanosleep on %s CPU clock: %s\n",
- which, strerror (e));
- *bad = 1;
- return diff;
- }
-
- struct timespec afterabs;
- if (clock_gettime (clock, &afterabs) < 0)
- {
- printf ("clock_gettime on %s CPU clock %lx => %s\n",
- which, (unsigned long int) clock, strerror (errno));
- *bad = 1;
- return diff;
- }
-
- unsigned long long int sleepdiff = tsdiff (&sleeptimeabs, &afterabs);
- if (sleepdiff > sleeptime.tv_nsec)
- {
- printf ("\
-absolute clock_nanosleep on %s %llu past target (outside reasonable range)\n",
- which, sleepdiff);
- *bad = 1;
- }
-
- unsigned long long int diffabs = tsdiff (&after, &afterabs);
- if (diffabs < sleeptime.tv_nsec || diffabs > sleeptime.tv_nsec * 2)
- {
- printf ("\
-absolute clock_nanosleep on %s slept %llu (outside reasonable range)\n",
- which, diffabs);
- *bad = 1;
- }
-
- return diff + diffabs;
-}
-
-
-
-static int
-do_test (void)
-{
- int result = 0;
- clockid_t process_clock, th_clock, my_thread_clock;
- int e;
- pthread_t th;
-
- e = clock_getcpuclockid (0, &process_clock);
- if (e != 0)
- {
- printf ("clock_getcpuclockid on self => %s\n", strerror (e));
- return 1;
- }
-
- e = pthread_getcpuclockid (pthread_self (), &my_thread_clock);
- if (e != 0)
- {
- printf ("pthread_getcpuclockid on self => %s\n", strerror (e));
- return 1;
- }
-
- /* This is a kludge. This test fails if the semantics of thread and
- process clocks are wrong. The old code using hp-timing without kernel
- support has bogus semantics if there are context switches. We don't
- fail to report failure when the proper functionality is not available
- in the kernel. It so happens that Linux kernels without correct CPU
- clock support also lack CPU timer support, so we use use that to guess
- that we are using the bogus code and not test it. */
- timer_t t;
- if (timer_create (my_thread_clock, NULL, &t) != 0)
- {
- printf ("timer_create: %m\n");
- puts ("No support for CPU clocks with good semantics, skipping test");
- return 0;
- }
- timer_delete (t);
-
-
- pthread_barrier_init (&barrier, NULL, 2);
-
- e = pthread_create (&th, NULL, chew_cpu, NULL);
- if (e != 0)
- {
- printf ("pthread_create: %s\n", strerror (e));
- return 1;
- }
-
- e = pthread_getcpuclockid (th, &th_clock);
- if (e == ENOENT || e == ENOSYS || e == ENOTSUP)
- {
- puts ("pthread_getcpuclockid does not support other threads");
- return 1;
- }
-
- pthread_barrier_wait (&barrier);
-
- struct timespec res;
- if (clock_getres (th_clock, &res) < 0)
- {
- printf ("clock_getres on thread clock %lx => %s\n",
- (unsigned long int) th_clock, strerror (errno));
- result = 1;
- return 1;
- }
- printf ("live thread clock %lx resolution %lu.%.9lu\n",
- (unsigned long int) th_clock, res.tv_sec, res.tv_nsec);
-
- struct timespec process_before, process_after;
- if (clock_gettime (process_clock, &process_before) < 0)
- {
- printf ("clock_gettime on process clock %lx => %s\n",
- (unsigned long int) th_clock, strerror (errno));
- return 1;
- }
-
- struct timespec before, after;
- if (clock_gettime (th_clock, &before) < 0)
- {
- printf ("clock_gettime on live thread clock %lx => %s\n",
- (unsigned long int) th_clock, strerror (errno));
- return 1;
- }
- printf ("live thread before sleep => %lu.%.9lu\n",
- before.tv_sec, before.tv_nsec);
-
- struct timespec me_before, me_after;
- if (clock_gettime (my_thread_clock, &me_before) < 0)
- {
- printf ("clock_gettime on live thread clock %lx => %s\n",
- (unsigned long int) th_clock, strerror (errno));
- return 1;
- }
- printf ("self thread before sleep => %lu.%.9lu\n",
- me_before.tv_sec, me_before.tv_nsec);
-
- struct timespec sleeptime = { .tv_nsec = 500000000 };
- nanosleep (&sleeptime, NULL);
-
- if (clock_gettime (th_clock, &after) < 0)
- {
- printf ("clock_gettime on live thread clock %lx => %s\n",
- (unsigned long int) th_clock, strerror (errno));
- return 1;
- }
- printf ("live thread after sleep => %lu.%.9lu\n",
- after.tv_sec, after.tv_nsec);
-
- if (clock_gettime (process_clock, &process_after) < 0)
- {
- printf ("clock_gettime on process clock %lx => %s\n",
- (unsigned long int) th_clock, strerror (errno));
- return 1;
- }
-
- if (clock_gettime (my_thread_clock, &me_after) < 0)
- {
- printf ("clock_gettime on live thread clock %lx => %s\n",
- (unsigned long int) th_clock, strerror (errno));
- return 1;
- }
- printf ("self thread after sleep => %lu.%.9lu\n",
- me_after.tv_sec, me_after.tv_nsec);
-
- unsigned long long int th_diff = tsdiff (&before, &after);
- unsigned long long int pdiff = tsdiff (&process_before, &process_after);
- unsigned long long int my_diff = tsdiff (&me_before, &me_after);
-
- if (th_diff < 100000000 || th_diff > 600000000)
- {
- printf ("thread before - after %llu outside reasonable range\n",
- th_diff);
- result = 1;
- }
-
- if (my_diff > 100000000)
- {
- printf ("self thread before - after %llu outside reasonable range\n",
- my_diff);
- result = 1;
- }
-
- if (pdiff < th_diff)
- {
- printf ("process before - after %llu outside reasonable range (%llu)\n",
- pdiff, th_diff);
- result = 1;
- }
-
- process_after.tv_nsec += test_nanosleep (th_clock, "thread",
- &after, &result);
- process_after.tv_nsec += test_nanosleep (process_clock, "process",
- &process_after, &result);
- test_nanosleep (CLOCK_PROCESS_CPUTIME_ID,
- "PROCESS_CPUTIME_ID", &process_after, &result);
-
- pthread_cancel (th);
-
- e = clock_nanosleep (CLOCK_THREAD_CPUTIME_ID, 0, &sleeptime, NULL);
- if (e != EINVAL)
- {
- printf ("clock_nanosleep CLOCK_THREAD_CPUTIME_ID: %s\n",
- strerror (e));
- result = 1;
- }
-
- return result;
-}
-# define TIMEOUT 8
-# define TEST_FUNCTION do_test ()
-#endif
-
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-cputimer1.c b/test/nptl/tst-cputimer1.c
deleted file mode 100644
index 8f5dd76..0000000
--- a/test/nptl/tst-cputimer1.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Tests for POSIX timer implementation using process CPU clock. */
-
-#include <unistd.h>
-
-#if _POSIX_THREADS && defined _POSIX_CPUTIME
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <fcntl.h>
-#include <time.h>
-#include <pthread.h>
-
-#define TEST_CLOCK CLOCK_PROCESS_CPUTIME_ID
-#define TEST_CLOCK_MISSING(clock) \
- (setup_test () ? "process CPU clock timer support" : NULL)
-
-/* This function is intended to rack up both user and system time. */
-static void *
-chew_cpu (void *arg)
-{
- while (1)
- {
- static volatile char buf[4096];
- for (int i = 0; i < 100; ++i)
- for (size_t j = 0; j < sizeof buf; ++j)
- buf[j] = 0xaa;
- int nullfd = open ("/dev/null", O_WRONLY);
- for (int i = 0; i < 100; ++i)
- for (size_t j = 0; j < sizeof buf; ++j)
- buf[j] = 0xbb;
- write (nullfd, (char *) buf, sizeof buf);
- close (nullfd);
- }
-
- return NULL;
-}
-
-static int
-setup_test (void)
-{
- /* Test timers on our own process CPU clock by having a worker thread
- eating CPU. First make sure we can make such timers at all. */
-
- timer_t t;
- if (timer_create (TEST_CLOCK, NULL, &t) != 0)
- {
- printf ("timer_create: %m\n");
- return 1;
- }
- timer_delete (t);
-
- pthread_t th;
- int e = pthread_create (&th, NULL, chew_cpu, NULL);
- if (e != 0)
- {
- printf ("pthread_create: %s\n", strerror (e));
- exit (1);
- }
-
- return 0;
-}
-
-#else
-# define TEST_CLOCK_MISSING(clock) "process clocks"
-#endif
-
-#include "tst-timer4.c"
diff --git a/test/nptl/tst-cputimer2.c b/test/nptl/tst-cputimer2.c
deleted file mode 100644
index 397d799..0000000
--- a/test/nptl/tst-cputimer2.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/* Tests for POSIX timer implementation using thread CPU clock. */
-
-#include <unistd.h>
-
-#if _POSIX_THREADS && defined _POSIX_CPUTIME
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <fcntl.h>
-#include <time.h>
-#include <pthread.h>
-
-static clockid_t worker_thread_clock;
-
-#define TEST_CLOCK worker_thread_clock
-#define TEST_CLOCK_MISSING(clock) \
- (setup_test () ? "thread CPU clock timer support" : NULL)
-
-/* This function is intended to rack up both user and system time. */
-static void *
-chew_cpu (void *arg)
-{
- while (1)
- {
- static volatile char buf[4096];
- for (int i = 0; i < 100; ++i)
- for (size_t j = 0; j < sizeof buf; ++j)
- buf[j] = 0xaa;
- int nullfd = open ("/dev/null", O_WRONLY);
- for (int i = 0; i < 100; ++i)
- for (size_t j = 0; j < sizeof buf; ++j)
- buf[j] = 0xbb;
- write (nullfd, (char *) buf, sizeof buf);
- close (nullfd);
- }
-
- return NULL;
-}
-
-static int
-setup_test (void)
-{
- /* Test timers on a thread CPU clock by having a worker thread eating
- CPU. First make sure we can make such timers at all. */
-
- pthread_t th;
- int e = pthread_create (&th, NULL, chew_cpu, NULL);
- if (e != 0)
- {
- printf ("pthread_create: %s\n", strerror (e));
- exit (1);
- }
-
- e = pthread_getcpuclockid (th, &worker_thread_clock);
- if (e == EPERM || e == ENOENT || e == ENOTSUP)
- {
- puts ("pthread_getcpuclockid does not support other threads");
- return 1;
- }
- if (e != 0)
- {
- printf ("pthread_getcpuclockid: %s\n", strerror (e));
- exit (1);
- }
-
- timer_t t;
- if (timer_create (TEST_CLOCK, NULL, &t) != 0)
- {
- printf ("timer_create: %m\n");
- return 1;
- }
- timer_delete (t);
-
- return 0;
-}
-
-#else
-# define TEST_CLOCK_MISSING(clock) "process clocks"
-#endif
-
-#include "tst-timer4.c"
diff --git a/test/nptl/tst-cputimer3.c b/test/nptl/tst-cputimer3.c
deleted file mode 100644
index 056766a..0000000
--- a/test/nptl/tst-cputimer3.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/* Tests for POSIX timer implementation using another process's CPU clock. */
-
-#include <unistd.h>
-
-#if _POSIX_THREADS && defined _POSIX_CPUTIME
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <fcntl.h>
-#include <time.h>
-#include <signal.h>
-#include <sys/wait.h>
-
-static clockid_t child_clock;
-
-#define TEST_CLOCK child_clock
-#define TEST_CLOCK_MISSING(clock) \
- (setup_test () ? "other-process CPU clock timer support" : NULL)
-
-/* This function is intended to rack up both user and system time. */
-static void
-chew_cpu (void)
-{
- while (1)
- {
- static volatile char buf[4096];
- for (int i = 0; i < 100; ++i)
- for (size_t j = 0; j < sizeof buf; ++j)
- buf[j] = 0xaa;
- int nullfd = open ("/dev/null", O_WRONLY);
- for (int i = 0; i < 100; ++i)
- for (size_t j = 0; j < sizeof buf; ++j)
- buf[j] = 0xbb;
- write (nullfd, (char *) buf, sizeof buf);
- close (nullfd);
- if (getppid () == 1)
- _exit (2);
- }
-}
-
-static pid_t child;
-static void
-cleanup_child (void)
-{
- if (child <= 0)
- return;
- if (kill (child, SIGKILL) < 0 && errno != ESRCH)
- printf ("cannot kill child %d: %m\n", child);
- else
- {
- int status;
- errno = 0;
- if (waitpid (child, &status, 0) != child)
- printf ("waitpid %d: %m\n", child);
- }
-}
-#define CLEANUP_HANDLER cleanup_child ()
-
-static int
-setup_test (void)
-{
- /* Test timers on a process CPU clock by having a child process eating
- CPU. First make sure we can make such timers at all. */
-
- int pipefd[2];
- if (pipe (pipefd) < 0)
- {
- printf ("pipe: %m\n");
- exit (1);
- }
-
- child = fork ();
-
- if (child == 0)
- {
- char c;
- close (pipefd[1]);
- if (read (pipefd[0], &c, 1) == 1)
- chew_cpu ();
- _exit (1);
- }
-
- if (child < 0)
- {
- printf ("fork: %m\n");
- exit (1);
- }
-
- atexit (&cleanup_child);
-
- close (pipefd[0]);
-
- int e = clock_getcpuclockid (child, &child_clock);
- if (e == EPERM)
- {
- puts ("clock_getcpuclockid does not support other processes");
- return 1;
- }
- if (e != 0)
- {
- printf ("clock_getcpuclockid: %s\n", strerror (e));
- exit (1);
- }
-
- timer_t t;
- if (timer_create (TEST_CLOCK, NULL, &t) != 0)
- {
- printf ("timer_create: %m\n");
- return 1;
- }
- timer_delete (t);
-
- /* Get the child started chewing. */
- if (write (pipefd[1], "x", 1) != 1)
- {
- printf ("write to pipe: %m\n");
- return 1;
- }
- close (pipefd[1]);
-
- return 0;
-}
-
-#else
-# define TEST_CLOCK_MISSING(clock) "process clocks"
-#endif
-
-#include "tst-timer4.c"
diff --git a/test/nptl/tst-detach1.c b/test/nptl/tst-detach1.c
deleted file mode 100644
index 90a69ff..0000000
--- a/test/nptl/tst-detach1.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static void *
-tf (void *arg)
-{
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- pthread_t th;
- if (pthread_create (&th, NULL, tf, (void *) pthread_self ()) != 0)
- {
- puts ("create failed");
- exit (1);
- }
-
- /* Give the child a chance to finish. */
- sleep (1);
-
- if (pthread_detach (th) != 0)
- {
- puts ("detach failed");
- exit (1);
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-dlsym1.c b/test/nptl/tst-dlsym1.c
deleted file mode 100644
index 3744570..0000000
--- a/test/nptl/tst-dlsym1.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Test case by Hui Huang <hui.huang(a)sun.com>om>. */
-#include <dlfcn.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static void *
-start_routine (void *args)
-{
- int i;
- void **addrs = (void **) args;
- for (i = 0; i < 10000; ++i)
- addrs[i % 1024] = dlsym (NULL, "does_not_exist");
-
- return addrs;
-}
-
-
-static int
-do_test (void)
-{
- pthread_t tid1, tid2, tid3;
-
- void *addrs1[1024];
- void *addrs2[1024];
- void *addrs3[1024];
-
- if (pthread_create (&tid1, NULL, start_routine, addrs1) != 0)
- {
- puts ("1st create failed");
- exit (1);
- }
- if (pthread_create (&tid2, NULL, start_routine, addrs2) != 0)
- {
- puts ("2nd create failed");
- exit (1);
- }
- if (pthread_create (&tid3, NULL, start_routine, addrs3) != 0)
- {
- puts ("3rd create failed");
- exit (1);
- }
-
- if (pthread_join (tid1, NULL) != 0)
- {
- puts ("1st join failed");
- exit (1);
- }
- if (pthread_join (tid2, NULL) != 0)
- {
- puts ("2nd join failed");
- exit (1);
- }
- if (pthread_join (tid3, NULL) != 0)
- {
- puts ("2rd join failed");
- exit (1);
- }
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-eintr1.c b/test/nptl/tst-eintr1.c
deleted file mode 100644
index ac381a8..0000000
--- a/test/nptl/tst-eintr1.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "eintr.c"
-
-
-static void *
-tf2 (void *arg)
-{
- return arg;
-}
-
-
-static void *
-tf1 (void *arg)
-{
- while (1)
- {
- pthread_t th;
-
- int e = pthread_create (&th, NULL, tf2, NULL);
- if (e != 0)
- {
- if (e == EINTR)
- {
- puts ("pthread_create returned EINTR");
- exit (1);
- }
-
- char buf[100];
- printf ("tf1: pthread_create failed: %s\n",
- strerror_r (e, buf, sizeof (buf)));
- exit (1);
- }
-
- e = pthread_join (th, NULL);
- if (e != 0)
- {
- if (e == EINTR)
- {
- puts ("pthread_join returned EINTR");
- exit (1);
- }
-
- char buf[100];
- printf ("tf1: pthread_join failed: %s\n",
- strerror_r (e, buf, sizeof (buf)));
- exit (1);
- }
- }
-}
-
-
-static int
-do_test (void)
-{
- setup_eintr (SIGUSR1, NULL);
-
- int i;
- for (i = 0; i < 10; ++i)
- {
- pthread_t th;
- int e = pthread_create (&th, NULL, tf1, NULL);
- if (e != 0)
- {
- char buf[100];
- printf ("main: pthread_create failed: %s\n",
- strerror_r (e, buf, sizeof (buf)));
- exit (1);
- }
- }
-
- (void) tf1 (NULL);
- /* NOTREACHED */
-
- return 0;
-}
-
-#define EXPECTED_SIGNAL SIGALRM
-#define TIMEOUT 3
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-eintr2.c b/test/nptl/tst-eintr2.c
deleted file mode 100644
index f20c709..0000000
--- a/test/nptl/tst-eintr2.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/time.h>
-
-#include "eintr.c"
-
-
-static pthread_mutex_t m1 = PTHREAD_MUTEX_INITIALIZER;
-static pthread_mutex_t m2 = PTHREAD_MUTEX_INITIALIZER;
-
-
-static void *
-tf1 (void *arg)
-{
- struct timespec ts;
- struct timeval tv;
-
- gettimeofday (&tv, NULL);
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- ts.tv_sec += 10000;
-
- /* This call must never return. */
- int e = pthread_mutex_timedlock (&m1, &ts);
- char buf[100];
- printf ("tf1: mutex_timedlock returned: %s\n",
- strerror_r (e, buf, sizeof (buf)));
-
- exit (1);
-}
-
-
-static void *
-tf2 (void *arg)
-{
- while (1)
- {
- int e = pthread_mutex_lock (&m2);
- if (e != 0)
- {
- puts ("tf2: mutex_lock failed");
- exit (1);
- }
- e = pthread_mutex_unlock (&m2);
- if (e != 0)
- {
- puts ("tf2: mutex_unlock failed");
- exit (1);
- }
- struct timespec ts = { .tv_sec = 0, .tv_nsec = 10000000 };
- nanosleep (&ts, NULL);
- }
-}
-
-
-static int
-do_test (void)
-{
- if (pthread_mutex_lock (&m1) != 0)
- {
- puts ("mutex_lock failed");
- exit (1);
- }
-
- setup_eintr (SIGUSR1, NULL);
-
- pthread_t th;
- char buf[100];
- int e = pthread_create (&th, NULL, tf1, NULL);
- if (e != 0)
- {
- printf ("main: 1st pthread_create failed: %s\n",
- strerror_r (e, buf, sizeof (buf)));
- exit (1);
- }
-
- e = pthread_create (&th, NULL, tf2, NULL);
- if (e != 0)
- {
- printf ("main: 2nd pthread_create failed: %s\n",
- strerror_r (e, buf, sizeof (buf)));
- exit (1);
- }
-
- /* This call must never return. */
- e = pthread_mutex_lock (&m1);
- printf ("main: mutex_lock returned: %s\n",
- strerror_r (e, buf, sizeof (buf)));
-
- return 0;
-}
-
-#define EXPECTED_SIGNAL SIGALRM
-#define TIMEOUT 3
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-eintr3.c b/test/nptl/tst-eintr3.c
deleted file mode 100644
index 3149760..0000000
--- a/test/nptl/tst-eintr3.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "eintr.c"
-
-
-static void *
-tf (void *arg)
-{
- pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
- pthread_mutex_lock (&m);
- /* This call must not return. */
- pthread_mutex_lock (&m);
-
- puts ("tf: mutex_lock returned");
- exit (1);
-}
-
-
-static int
-do_test (void)
-{
- pthread_t self = pthread_self ();
-
- setup_eintr (SIGUSR1, &self);
-
- pthread_t th;
- char buf[100];
- int e = pthread_create (&th, NULL, tf, NULL);
- if (e != 0)
- {
- printf ("main: pthread_create failed: %s\n",
- strerror_r (e, buf, sizeof (buf)));
- exit (1);
- }
-
- /* This call must never return. */
- e = pthread_join (th, NULL);
-
- if (e == EINTR)
- puts ("pthread_join returned with EINTR");
-
- return 0;
-}
-
-#define EXPECTED_SIGNAL SIGALRM
-#define TIMEOUT 1
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-eintr4.c b/test/nptl/tst-eintr4.c
deleted file mode 100644
index f2290f9..0000000
--- a/test/nptl/tst-eintr4.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "eintr.c"
-
-
-static int
-do_test (void)
-{
- pthread_t self = pthread_self ();
-
- setup_eintr (SIGUSR1, &self);
-
- pthread_barrier_t b;
- if (pthread_barrier_init (&b, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- exit (1);
- }
-
- /* This call must never return. */
- int e = pthread_barrier_wait (&b);
-
- if (e == EINTR)
- puts ("pthread_join returned with EINTR");
-
- return 0;
-}
-
-#define EXPECTED_SIGNAL SIGALRM
-#define TIMEOUT 1
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-eintr5.c b/test/nptl/tst-eintr5.c
deleted file mode 100644
index f7cb762..0000000
--- a/test/nptl/tst-eintr5.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/time.h>
-
-#include "eintr.c"
-
-
-static pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
-static pthread_cond_t c = PTHREAD_COND_INITIALIZER;
-
-
-static void *
-tf (void *arg)
-{
- struct timespec ts;
- struct timeval tv;
-
- gettimeofday (&tv, NULL);
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- ts.tv_sec += 10000;
-
- /* This call must never return. */
- int e = pthread_cond_timedwait (&c, &m, &ts);
- char buf[100];
- printf ("tf: cond_timedwait returned: %s\n",
- strerror_r (e, buf, sizeof (buf)));
-
- exit (1);
-}
-
-
-static int
-do_test (void)
-{
- setup_eintr (SIGUSR1, NULL);
-
- pthread_t th;
- char buf[100];
- int e = pthread_create (&th, NULL, tf, NULL);
- if (e != 0)
- {
- printf ("main: pthread_create failed: %s\n",
- strerror_r (e, buf, sizeof (buf)));
- exit (1);
- }
-
- /* This call must never return. */
- e = pthread_cond_wait (&c, &m);
- printf ("main: cond_wait returned: %s\n",
- strerror_r (e, buf, sizeof (buf)));
-
- return 0;
-}
-
-#define EXPECTED_SIGNAL SIGALRM
-#define TIMEOUT 3
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-exec2.c b/test/nptl/tst-exec2.c
deleted file mode 100644
index 061e3fc..0000000
--- a/test/nptl/tst-exec2.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/* Thread with running thread calls exec.
- Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <paths.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/wait.h>
-
-
-static void *
-tf (void *arg)
-{
- pthread_t th = (pthread_t) arg;
-
- if (pthread_join (th, NULL) == 0)
- {
- puts ("thread in parent joined!?");
- exit (1);
- }
-
- puts ("join in thread in parent returned!?");
- exit (1);
-}
-
-
-static int
-do_test (void)
-{
- int fd[2];
- if (pipe (fd) != 0)
- {
- puts ("pipe failed");
- exit (1);
- }
-
- /* Not interested in knowing when the pipe is closed. */
- if (sigignore (SIGPIPE) != 0)
- {
- puts ("sigignore failed");
- exit (1);
- }
-
- pid_t pid = fork ();
- if (pid == -1)
- {
- puts ("fork failed");
- exit (1);
- }
-
- if (pid == 0)
- {
- /* Use the fd for stdout. This is kind of ugly because it
- substitutes the fd of stdout but we know what we are doing
- here... */
- if (dup2 (fd[1], STDOUT_FILENO) != STDOUT_FILENO)
- {
- puts ("dup2 failed");
- exit (1);
- }
-
- close (fd[0]);
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, (void *) pthread_self ()) != 0)
- {
- puts ("create failed");
- exit (1);
- }
-
- execl (_PATH_BSHELL, _PATH_BSHELL, "-c", "echo $$", NULL);
-
- puts ("execl failed");
- exit (1);
- }
-
- close (fd[1]);
-
- char buf[200];
- ssize_t n;
- bool seen_pid = false;
- while (TEMP_FAILURE_RETRY ((n = read (fd[0], buf, sizeof (buf)))) > 0)
- {
- /* We only expect to read the PID. */
- char *endp;
- long int rpid = strtol (buf, &endp, 10);
-
- if (*endp != '\n')
- {
- printf ("didn't parse whole line: \"%s\"\n", buf);
- exit (1);
- }
- if (endp == buf)
- {
- puts ("read empty line");
- exit (1);
- }
-
- if (rpid != pid)
- {
- printf ("found \"%s\", expected PID %ld\n", buf, (long int) pid);
- exit (1);
- }
-
- if (seen_pid)
- {
- puts ("found more than one PID line");
- exit (1);
- }
- seen_pid = true;
- }
-
- close (fd[0]);
-
- int status;
- int err = waitpid (pid, &status, 0);
- if (err != pid)
- {
- puts ("waitpid failed");
- exit (1);
- }
-
- if (!seen_pid)
- {
- puts ("didn't get PID");
- exit (1);
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-exec3.c b/test/nptl/tst-exec3.c
deleted file mode 100644
index be4098b..0000000
--- a/test/nptl/tst-exec3.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/* Thread calls exec.
- Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <paths.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/wait.h>
-
-
-static void *
-tf (void *arg)
-{
- execl (_PATH_BSHELL, _PATH_BSHELL, "-c", "echo $$", NULL);
-
- puts ("execl failed");
- exit (1);
-}
-
-
-static int
-do_test (void)
-{
- int fd[2];
- if (pipe (fd) != 0)
- {
- puts ("pipe failed");
- exit (1);
- }
-
- /* Not interested in knowing when the pipe is closed. */
- if (sigignore (SIGPIPE) != 0)
- {
- puts ("sigignore failed");
- exit (1);
- }
-
- pid_t pid = fork ();
- if (pid == -1)
- {
- puts ("fork failed");
- exit (1);
- }
-
- if (pid == 0)
- {
- /* Use the fd for stdout. This is kind of ugly because it
- substitutes the fd of stdout but we know what we are doing
- here... */
- if (dup2 (fd[1], STDOUT_FILENO) != STDOUT_FILENO)
- {
- puts ("dup2 failed");
- exit (1);
- }
-
- close (fd[0]);
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("create failed");
- exit (1);
- }
-
- if (pthread_join (th, NULL) == 0)
- {
- puts ("join succeeded!?");
- exit (1);
- }
-
- puts ("join returned!?");
- exit (1);
- }
-
- close (fd[1]);
-
- char buf[200];
- ssize_t n;
- bool seen_pid = false;
- while (TEMP_FAILURE_RETRY ((n = read (fd[0], buf, sizeof (buf)))) > 0)
- {
- /* We only expect to read the PID. */
- char *endp;
- long int rpid = strtol (buf, &endp, 10);
-
- if (*endp != '\n')
- {
- printf ("didn't parse whole line: \"%s\"\n", buf);
- exit (1);
- }
- if (endp == buf)
- {
- puts ("read empty line");
- exit (1);
- }
-
- if (rpid != pid)
- {
- printf ("found \"%s\", expected PID %ld\n", buf, (long int) pid);
- exit (1);
- }
-
- if (seen_pid)
- {
- puts ("found more than one PID line");
- exit (1);
- }
- seen_pid = true;
- }
-
- close (fd[0]);
-
- int status;
- int err = waitpid (pid, &status, 0);
- if (err != pid)
- {
- puts ("waitpid failed");
- exit (1);
- }
-
- if (!seen_pid)
- {
- puts ("didn't get PID");
- exit (1);
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-exec4.c b/test/nptl/tst-exec4.c
deleted file mode 100644
index 1a4b88c..0000000
--- a/test/nptl/tst-exec4.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/* Signal handler and mask set in thread which calls exec.
- Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static void *
-tf (void *arg)
-{
- /* Ignore SIGUSR1 and block SIGUSR2. */
- if (sigignore (SIGUSR1) != 0)
- {
- puts ("sigignore failed");
- exit (1);
- }
-
- sigset_t ss;
- sigemptyset (&ss);
- sigaddset (&ss, SIGUSR2);
- if (pthread_sigmask (SIG_BLOCK, &ss, NULL) != 0)
- {
- puts ("1st run: sigmask failed");
- exit (1);
- }
-
- char **oldargv = (char **) arg;
- size_t n = 1;
- while (oldargv[n] != NULL)
- ++n;
-
- char **argv = (char **) alloca ((n + 1) * sizeof (char *));
- for (n = 0; oldargv[n + 1] != NULL; ++n)
- argv[n] = oldargv[n + 1];
- argv[n++] = (char *) "-d";
- argv[n] = NULL;
-
- execv (argv[0], argv);
-
- puts ("execv failed");
-
- exit (1);
-}
-
-
-static int
-do_test (int argc, char *argv[])
-{
- if (argc == 1)
- {
- /* This is the second call. Perform the test. */
- struct sigaction sa;
-
- if (sigaction (SIGUSR1, NULL, &sa) != 0)
- {
- puts ("2nd run: sigaction failed");
- return 1;
- }
- if (sa.sa_handler != SIG_IGN)
- {
- puts ("SIGUSR1 not ignored");
- return 1;
- }
-
- sigset_t ss;
- if (pthread_sigmask (SIG_SETMASK, NULL, &ss) != 0)
- {
- puts ("2nd run: sigmask failed");
- return 1;
- }
- if (! sigismember (&ss, SIGUSR2))
- {
- puts ("SIGUSR2 not blocked");
- return 1;
- }
-
- return 0;
- }
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, argv) != 0)
- {
- puts ("create failed");
- exit (1);
- }
-
- /* This call should never return. */
- pthread_join (th, NULL);
-
- puts ("join returned");
-
- return 1;
-}
-
-#define TEST_FUNCTION do_test (argc, argv)
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-exit1.c b/test/nptl/tst-exit1.c
deleted file mode 100644
index 7f0fe79..0000000
--- a/test/nptl/tst-exit1.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* NOTE: this tests functionality beyond POSIX. POSIX does not allow
- exit to be called more than once. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-static pthread_barrier_t b;
-
-
-static void *
-tf (void *arg)
-{
- int r = pthread_barrier_wait (&b);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- exit (1);
- }
-
- exit (0);
-}
-
-
-static int
-do_test (void)
-{
- if (pthread_barrier_init (&b, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- exit (1);
- }
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("create failed");
- exit (1);
- }
-
- int r = pthread_barrier_wait (&b);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- exit (1);
- }
-
- /* Do nothing. */
- if (pthread_join (th, NULL) == 0)
- {
- puts ("join succeeded!?");
- exit (1);
- }
-
- puts ("join returned!?");
- exit (1);
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-exit2.c b/test/nptl/tst-exit2.c
deleted file mode 100644
index 3f5ff27..0000000
--- a/test/nptl/tst-exit2.c
+++ /dev/null
@@ -1,40 +0,0 @@
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-
-
-static void *
-tf (void *arg)
-{
- while (1)
- sleep (100);
-
- /* NOTREACHED */
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- pthread_t th;
-
- int e = pthread_create (&th, NULL, tf, NULL);
- if (e != 0)
- {
- printf ("create failed: %s\n", strerror (e));
- return 1;
- }
-
- /* Terminate only this thread. */
- pthread_exit (NULL);
-
- /* NOTREACHED */
- return 1;
-}
-
-#define EXPECTED_SIGNAL SIGALRM
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-exit3.c b/test/nptl/tst-exit3.c
deleted file mode 100644
index da92c82..0000000
--- a/test/nptl/tst-exit3.c
+++ /dev/null
@@ -1,81 +0,0 @@
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-
-static pthread_barrier_t b;
-
-
-static void *
-tf2 (void *arg)
-{
- while (1)
- sleep (100);
-
- /* NOTREACHED */
- return NULL;
-}
-
-
-static void *
-tf (void *arg)
-{
- pthread_t th;
-
- int e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- exit (1);
- }
-
- e = pthread_create (&th, NULL, tf2, NULL);
- if (e != 0)
- {
- printf ("create failed: %s\n", strerror (e));
- exit (1);
- }
-
- /* Terminate only this thread. */
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- pthread_t th;
-
- if (pthread_barrier_init (&b, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- exit (1);
- }
-
- int e = pthread_create (&th, NULL, tf, NULL);
- if (e != 0)
- {
- printf ("create failed: %s\n", strerror (e));
- exit (1);
- }
-
- e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- exit (1);
- }
-
- /* Terminate only this thread. */
- pthread_exit (NULL);
-
- /* NOTREACHED */
- return 1;
-}
-
-#define EXPECTED_SIGNAL SIGALRM
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-fini1.c b/test/nptl/tst-fini1.c
deleted file mode 100644
index b8c7a73..0000000
--- a/test/nptl/tst-fini1.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <unistd.h>
-
-extern void m (void);
-
-int
-main (void)
-{
- alarm (5);
-
- m ();
-
- /* The destructor is supposed to run now. Make sure that if it is
- not we will notice it by using 42 as the exit code. In case the
- destructor is run it will terminate with status zero. */
- return 42;
-}
diff --git a/test/nptl/tst-fini1mod.c b/test/nptl/tst-fini1mod.c
deleted file mode 100644
index 669c9af..0000000
--- a/test/nptl/tst-fini1mod.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Copyright (C) 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static void *
-tf (void *arg)
-{
- int fds[2];
- if (pipe (fds) != 0)
- {
- puts ("pipe failed");
- exit (1);
- }
-
- char buf[10];
- read (fds[0], buf, sizeof (buf));
-
- puts ("read returned");
- exit (1);
-}
-
-static pthread_t th;
-
-static void
-__attribute ((destructor))
-dest (void)
-{
- if (pthread_cancel (th) != 0)
- {
- puts ("cancel failed");
- _exit (1);
- }
- void *r;
- if (pthread_join (th, &r) != 0)
- {
- puts ("join failed");
- _exit (1);
- }
- /* Exit successfully. */
- _exit (0);
-}
-
-void
-m (void)
-{
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("create failed");
- _exit (1);
- }
-}
diff --git a/test/nptl/tst-flock1.c b/test/nptl/tst-flock1.c
deleted file mode 100644
index e271c80..0000000
--- a/test/nptl/tst-flock1.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/file.h>
-
-
-static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
-
-static int fd;
-
-
-static void *
-tf (void *arg)
-{
- if (flock (fd, LOCK_SH | LOCK_NB) != 0)
- {
- puts ("second flock failed");
- exit (1);
- }
-
- pthread_mutex_unlock (&lock);
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- char tmp[] = "/tmp/tst-flock1-XXXXXX";
-
- fd = mkstemp (tmp);
- if (fd == -1)
- {
- puts ("mkstemp failed");
- exit (1);
- }
-
- unlink (tmp);
-
- write (fd, "foobar xyzzy", 12);
-
- if (flock (fd, LOCK_EX | LOCK_NB) != 0)
- {
- puts ("first flock failed");
- exit (1);
- }
-
- pthread_mutex_lock (&lock);
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("pthread_create failed");
- exit (1);
- }
-
- pthread_mutex_lock (&lock);
-
- void *result;
- if (pthread_join (th, &result) != 0)
- {
- puts ("pthread_join failed");
- exit (1);
- }
-
- close (fd);
-
- return result != NULL;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-flock2.c b/test/nptl/tst-flock2.c
deleted file mode 100644
index 941c52f..0000000
--- a/test/nptl/tst-flock2.c
+++ /dev/null
@@ -1,259 +0,0 @@
-/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/file.h>
-#include <sys/mman.h>
-#include <sys/wait.h>
-
-
-static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
-static pthread_mutex_t lock2 = PTHREAD_MUTEX_INITIALIZER;
-static int fd;
-
-
-static void *
-tf (void *arg)
-{
- struct flock fl =
- {
- .l_type = F_WRLCK,
- .l_start = 0,
- .l_whence = SEEK_SET,
- .l_len = 10
- };
- if (TEMP_FAILURE_RETRY (fcntl (fd, F_SETLKW, &fl)) != 0)
- {
- puts ("fourth fcntl failed");
- exit (1);
- }
-
- pthread_mutex_unlock (&lock);
-
- pthread_mutex_lock (&lock2);
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- char tmp[] = "/tmp/tst-flock2-XXXXXX";
-
- fd = mkstemp (tmp);
- if (fd == -1)
- {
- puts ("mkstemp failed");
- return 1;
- }
-
- unlink (tmp);
-
- int i;
- for (i = 0; i < 20; ++i)
- write (fd, "foobar xyzzy", 12);
-
- pthread_barrier_t *b;
- b = mmap (NULL, sizeof (pthread_barrier_t), PROT_READ | PROT_WRITE,
- MAP_SHARED, fd, 0);
- if (b == MAP_FAILED)
- {
- puts ("mmap failed");
- return 1;
- }
-
- pthread_barrierattr_t ba;
- if (pthread_barrierattr_init (&ba) != 0)
- {
- puts ("barrierattr_init failed");
- return 1;
- }
-
- if (pthread_barrierattr_setpshared (&ba, PTHREAD_PROCESS_SHARED) != 0)
- {
- puts ("barrierattr_setpshared failed");
- return 1;
- }
-
- if (pthread_barrier_init (b, &ba, 2) != 0)
- {
- puts ("barrier_init failed");
- return 1;
- }
-
- if (pthread_barrierattr_destroy (&ba) != 0)
- {
- puts ("barrierattr_destroy failed");
- return 1;
- }
-
- struct flock fl =
- {
- .l_type = F_WRLCK,
- .l_start = 0,
- .l_whence = SEEK_SET,
- .l_len = 10
- };
- if (TEMP_FAILURE_RETRY (fcntl (fd, F_SETLKW, &fl)) != 0)
- {
- puts ("first fcntl failed");
- return 1;
- }
-
- pid_t pid = fork ();
- if (pid == -1)
- {
- puts ("fork failed");
- return 1;
- }
-
- if (pid == 0)
- {
- /* Make sure the child does not stay around indefinitely. */
- alarm (10);
-
- /* Try to get the lock. */
- if (TEMP_FAILURE_RETRY (fcntl (fd, F_SETLK, &fl)) == 0)
- {
- puts ("child: second flock succeeded");
- return 1;
- }
- }
-
- pthread_barrier_wait (b);
-
- if (pid != 0)
- {
- fl.l_type = F_UNLCK;
- if (TEMP_FAILURE_RETRY (fcntl (fd, F_SETLKW, &fl)) != 0)
- {
- puts ("third fcntl failed");
- return 1;
- }
- }
-
- pthread_barrier_wait (b);
-
- pthread_t th;
- if (pid == 0)
- {
- if (pthread_mutex_lock (&lock) != 0)
- {
- puts ("1st locking of lock failed");
- return 1;
- }
-
- if (pthread_mutex_lock (&lock2) != 0)
- {
- puts ("1st locking of lock2 failed");
- return 1;
- }
-
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("pthread_create failed");
- return 1;
- }
-
- if (pthread_mutex_lock (&lock) != 0)
- {
- puts ("2nd locking of lock failed");
- return 1;
- }
-
- puts ("child locked file");
- }
-
- pthread_barrier_wait (b);
-
- if (pid != 0)
- {
- fl.l_type = F_WRLCK;
- if (TEMP_FAILURE_RETRY (fcntl (fd, F_SETLK, &fl)) == 0)
- {
- puts ("fifth fcntl succeeded");
- return 1;
- }
-
- puts ("file locked by child");
- }
-
- pthread_barrier_wait (b);
-
- if (pid == 0)
- {
- if (pthread_mutex_unlock (&lock2) != 0)
- {
- puts ("unlock of lock2 failed");
- return 1;
- }
-
- if (pthread_join (th, NULL) != 0)
- {
- puts ("join failed");
- return 1;
- }
-
- puts ("child's thread terminated");
- }
-
- pthread_barrier_wait (b);
-
- if (pid != 0)
- {
- fl.l_type = F_WRLCK;
- if (TEMP_FAILURE_RETRY (fcntl (fd, F_SETLK, &fl)) == 0)
- {
- puts ("fifth fcntl succeeded");
- return 1;
- }
-
- puts ("file still locked");
- }
-
- pthread_barrier_wait (b);
-
- if (pid == 0)
- {
- _exit (0);
- }
-
- int status;
- if (TEMP_FAILURE_RETRY (waitpid (pid, &status, 0)) != pid)
- {
- puts ("waitpid failed");
- return 1;
- }
- puts ("child terminated");
-
- if (TEMP_FAILURE_RETRY (fcntl (fd, F_SETLKW, &fl)) != 0)
- {
- puts ("sixth fcntl failed");
- return 1;
- }
-
- return status;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-fork1.c b/test/nptl/tst-fork1.c
deleted file mode 100644
index 0d89728..0000000
--- a/test/nptl/tst-fork1.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/* Copyright (C) 2002, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Roland McGrath <roland(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/wait.h>
-
-static void *
-thread_function (void * arg)
-{
- int i = (intptr_t) arg;
- int status;
- pid_t pid;
- pid_t pid2;
-
- pid = fork ();
- switch (pid)
- {
- case 0:
- printf ("%ld for %d\n", (long int) getpid (), i);
- struct timespec ts = { .tv_sec = 0, .tv_nsec = 100000000 * i };
- nanosleep (&ts, NULL);
- _exit (i);
- break;
- case -1:
- printf ("fork: %m\n");
- return (void *) 1l;
- break;
- }
-
- pid2 = TEMP_FAILURE_RETRY (waitpid (pid, &status, 0));
- if (pid2 != pid)
- {
- printf ("waitpid returned %ld, expected %ld\n",
- (long int) pid2, (long int) pid);
- return (void *) 1l;
- }
-
- printf ("%ld with %d, expected %d\n",
- (long int) pid, WEXITSTATUS (status), i);
-
- return WEXITSTATUS (status) == i ? NULL : (void *) 1l;
-}
-
-#define N 5
-static const int t[N] = { 7, 6, 5, 4, 3 };
-
-int
-main (void)
-{
- pthread_t th[N];
- int i;
- int result = 0;
- pthread_attr_t at;
-
- if (pthread_attr_init (&at) != 0)
- {
- puts ("attr_init failed");
- return 1;
- }
-
- if (pthread_attr_setstacksize (&at, 1 * 1024 * 1024) != 0)
- {
- puts ("attr_setstacksize failed");
- return 1;
- }
-
- for (i = 0; i < N; ++i)
- if (pthread_create (&th[i], NULL, thread_function,
- (void *) (intptr_t) t[i]) != 0)
- {
- printf ("creation of thread %d failed\n", i);
- exit (1);
- }
-
- if (pthread_attr_destroy (&at) != 0)
- {
- puts ("attr_destroy failed");
- return 1;
- }
-
- for (i = 0; i < N; ++i)
- {
- void *v;
- if (pthread_join (th[i], &v) != 0)
- {
- printf ("join of thread %d failed\n", i);
- result = 1;
- }
- else if (v != NULL)
- {
- printf ("join %d successful, but child failed\n", i);
- result = 1;
- }
- else
- printf ("join %d successful\n", i);
- }
-
- return result;
-}
diff --git a/test/nptl/tst-fork2.c b/test/nptl/tst-fork2.c
deleted file mode 100644
index d85ea21..0000000
--- a/test/nptl/tst-fork2.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Roland McGrath <roland(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/wait.h>
-
-
-static pid_t initial_pid;
-
-
-static void *
-tf (void *arg)
-{
- if (getppid () != initial_pid)
- {
- printf ("getppid in thread returned %ld, expected %ld\n",
- (long int) getppid (), (long int) initial_pid);
- return (void *) -1;
- }
-
- return NULL;
-}
-
-
-int
-main (void)
-{
- initial_pid = getpid ();
-
- pid_t child = fork ();
- if (child == 0)
- {
- if (getppid () != initial_pid)
- {
- printf ("first getppid returned %ld, expected %ld\n",
- (long int) getppid (), (long int) initial_pid);
- exit (1);
- }
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("pthread_create failed");
- exit (1);
- }
-
- void *result;
- if (pthread_join (th, &result) != 0)
- {
- puts ("pthread_join failed");
- exit (1);
- }
-
- exit (result == NULL ? 0 : 1);
- }
- else if (child == -1)
- {
- puts ("initial fork failed");
- return 1;
- }
-
- int status;
- if (TEMP_FAILURE_RETRY (waitpid (child, &status, 0)) != child)
- {
- printf ("waitpid failed: %m\n");
- return 1;
- }
-
- return status;
-}
diff --git a/test/nptl/tst-fork3.c b/test/nptl/tst-fork3.c
deleted file mode 100644
index 968d0ab..0000000
--- a/test/nptl/tst-fork3.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Roland McGrath <roland(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/wait.h>
-
-
-static pid_t initial_pid;
-
-
-static void *
-tf2 (void *arg)
-{
- if (getppid () != initial_pid)
- {
- printf ("getppid in thread returned %ld, expected %ld\n",
- (long int) getppid (), (long int) initial_pid);
- return (void *) -1;
- }
-
- return NULL;
-}
-
-
-static void *
-tf1 (void *arg)
-{
- pid_t child = fork ();
- if (child == 0)
- {
- if (getppid () != initial_pid)
- {
- printf ("first getppid returned %ld, expected %ld\n",
- (long int) getppid (), (long int) initial_pid);
- exit (1);
- }
-
- pthread_t th2;
- if (pthread_create (&th2, NULL, tf2, NULL) != 0)
- {
- puts ("child: pthread_create failed");
- exit (1);
- }
-
- void *result;
- if (pthread_join (th2, &result) != 0)
- {
- puts ("pthread_join failed");
- exit (1);
- }
-
- exit (result == NULL ? 0 : 1);
- }
- else if (child == -1)
- {
- puts ("initial fork failed");
- exit (1);
- }
-
- int status;
- if (TEMP_FAILURE_RETRY (waitpid (child, &status, 0)) != child)
- {
- printf ("waitpid failed: %m\n");
- exit (1);
- }
-
- exit (status);
-}
-
-
-int
-main (void)
-{
- initial_pid = getpid ();
-
- pthread_t th1;
- if (pthread_create (&th1, NULL, tf1, NULL) != 0)
- {
- puts ("parent: pthread_create failed");
- exit (1);
- }
-
- /* This call should never return. */
- pthread_join (th1, NULL);
-
- return 1;
-}
diff --git a/test/nptl/tst-fork4.c b/test/nptl/tst-fork4.c
deleted file mode 100644
index ee87108..0000000
--- a/test/nptl/tst-fork4.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Test of fork updating child universe's pthread structures.
- Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <string.h>
-
-
-static int
-do_test (void)
-{
- pthread_t me = pthread_self ();
-
- pid_t pid = fork ();
-
- if (pid < 0)
- {
- printf ("fork: %m\n");
- return 1;
- }
-
- if (pid == 0)
- {
- int err = pthread_kill (me, SIGTERM);
- printf ("pthread_kill returned: %s\n", strerror (err));
- return 3;
- }
-
- int status;
- errno = 0;
- if (wait (&status) != pid)
- printf ("wait failed: %m\n");
- else if (WIFSIGNALED (status) && WTERMSIG (status) == SIGTERM)
- {
- printf ("child correctly died with SIGTERM\n");
- return 0;
- }
- else
- printf ("child died with bad status %#x\n", status);
-
- return 1;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-getpid1.c b/test/nptl/tst-getpid1.c
deleted file mode 100644
index 4d25b0d..0000000
--- a/test/nptl/tst-getpid1.c
+++ /dev/null
@@ -1,122 +0,0 @@
-#include <sched.h>
-#include <signal.h>
-#include <string.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <bits/stackinfo.h>
-
-#ifndef TEST_CLONE_FLAGS
-#define TEST_CLONE_FLAGS 0
-#endif
-
-static int sig;
-
-static int
-f (void *a)
-{
- puts ("in f");
- union sigval sival;
- sival.sival_int = getpid ();
- printf ("pid = %d\n", sival.sival_int);
- if (sigqueue (getppid (), sig, sival) != 0)
- return 1;
- return 0;
-}
-
-
-static int
-do_test (void)
-{
- int mypid = getpid ();
-
- sig = SIGRTMIN;
- sigset_t ss;
- sigemptyset (&ss);
- sigaddset (&ss, sig);
- if (sigprocmask (SIG_BLOCK, &ss, NULL) != 0)
- {
- printf ("sigprocmask failed: %m\n");
- return 1;
- }
-
-#ifdef __ia64__
- extern int __clone2 (int (*__fn) (void *__arg), void *__child_stack_base,
- size_t __child_stack_size, int __flags,
- void *__arg, ...);
- char st[256 * 1024] __attribute__ ((aligned));
- pid_t p = __clone2 (f, st, sizeof (st), TEST_CLONE_FLAGS, 0);
-#else
- char st[128 * 1024] __attribute__ ((aligned));
-# if _STACK_GROWS_DOWN
- pid_t p = clone (f, st + sizeof (st), TEST_CLONE_FLAGS, 0);
-# elif _STACK_GROWS_UP
- pid_t p = clone (f, st, TEST_CLONE_FLAGS, 0);
-# else
-# error "Define either _STACK_GROWS_DOWN or _STACK_GROWS_UP"
-# endif
-#endif
- if (p == -1)
- {
- printf("clone failed: %m\n");
- return 1;
- }
- printf ("new thread: %d\n", (int) p);
-
- siginfo_t si;
- do
- if (sigwaitinfo (&ss, &si) < 0)
- {
- printf("sigwaitinfo failed: %m\n");
- kill (p, SIGKILL);
- return 1;
- }
- while (si.si_signo != sig || si.si_code != SI_QUEUE);
-
- int e;
- if (waitpid (p, &e, __WCLONE) != p)
- {
- puts ("waitpid failed");
- kill (p, SIGKILL);
- return 1;
- }
- if (!WIFEXITED (e))
- {
- if (WIFSIGNALED (e))
- printf ("died from signal %s\n", strsignal (WTERMSIG (e)));
- else
- puts ("did not terminate correctly");
- return 1;
- }
- if (WEXITSTATUS (e) != 0)
- {
- printf ("exit code %d\n", WEXITSTATUS (e));
- return 1;
- }
-
- if (si.si_int != (int) p)
- {
- printf ("expected PID %d, got si_int %d\n", (int) p, si.si_int);
- kill (p, SIGKILL);
- return 1;
- }
-
- if (si.si_pid != p)
- {
- printf ("expected PID %d, got si_pid %d\n", (int) p, (int) si.si_pid);
- kill (p, SIGKILL);
- return 1;
- }
-
- if (getpid () != mypid)
- {
- puts ("my PID changed");
- return 1;
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-getpid2.c b/test/nptl/tst-getpid2.c
deleted file mode 100644
index fc98cb6..0000000
--- a/test/nptl/tst-getpid2.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define TEST_CLONE_FLAGS CLONE_VM
-#include "tst-getpid1.c"
diff --git a/test/nptl/tst-getpid3.c b/test/nptl/tst-getpid3.c
deleted file mode 100644
index f1e77f6..0000000
--- a/test/nptl/tst-getpid3.c
+++ /dev/null
@@ -1,114 +0,0 @@
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/wait.h>
-
-
-static pid_t pid;
-
-static void *
-pid_thread (void *arg)
-{
- if (pid != getpid ())
- {
- printf ("pid wrong in thread: should be %d, is %d\n",
- (int) pid, (int) getpid ());
- return (void *) 1L;
- }
-
- return NULL;
-}
-
-static int
-do_test (void)
-{
- pid = getpid ();
-
- pthread_t thr;
- int ret = pthread_create (&thr, NULL, pid_thread, NULL);
- if (ret)
- {
- printf ("pthread_create failed: %d\n", ret);
- return 1;
- }
-
- void *thr_ret;
- ret = pthread_join (thr, &thr_ret);
- if (ret)
- {
- printf ("pthread_create failed: %d\n", ret);
- return 1;
- }
- else if (thr_ret)
- {
- printf ("thread getpid failed\n");
- return 1;
- }
-
- pid_t child = fork ();
- if (child == -1)
- {
- printf ("fork failed: %m\n");
- return 1;
- }
- else if (child == 0)
- {
- if (pid == getpid ())
- {
- puts ("pid did not change after fork");
- exit (1);
- }
-
- pid = getpid ();
- ret = pthread_create (&thr, NULL, pid_thread, NULL);
- if (ret)
- {
- printf ("pthread_create failed: %d\n", ret);
- return 1;
- }
-
- ret = pthread_join (thr, &thr_ret);
- if (ret)
- {
- printf ("pthread_create failed: %d\n", ret);
- return 1;
- }
- else if (thr_ret)
- {
- printf ("thread getpid failed\n");
- return 1;
- }
-
- return 0;
- }
-
- int status;
- if (TEMP_FAILURE_RETRY (waitpid (child, &status, 0)) != child)
- {
- puts ("waitpid failed");
- kill (child, SIGKILL);
- return 1;
- }
-
- if (!WIFEXITED (status))
- {
- if (WIFSIGNALED (status))
- printf ("died from signal %s\n", strsignal (WTERMSIG (status)));
- else
- puts ("did not terminate correctly");
- return 1;
- }
- if (WEXITSTATUS (status) != 0)
- {
- printf ("exit code %d\n", WEXITSTATUS (status));
- return 1;
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-initializers1-c89.c b/test/nptl/tst-initializers1-c89.c
deleted file mode 100644
index 7c27c1d..0000000
--- a/test/nptl/tst-initializers1-c89.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-initializers1.c"
diff --git a/test/nptl/tst-initializers1-c99.c b/test/nptl/tst-initializers1-c99.c
deleted file mode 100644
index 7c27c1d..0000000
--- a/test/nptl/tst-initializers1-c99.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-initializers1.c"
diff --git a/test/nptl/tst-initializers1-gnu89.c b/test/nptl/tst-initializers1-gnu89.c
deleted file mode 100644
index 7c27c1d..0000000
--- a/test/nptl/tst-initializers1-gnu89.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-initializers1.c"
diff --git a/test/nptl/tst-initializers1-gnu99.c b/test/nptl/tst-initializers1-gnu99.c
deleted file mode 100644
index 7c27c1d..0000000
--- a/test/nptl/tst-initializers1-gnu99.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-initializers1.c"
diff --git a/test/nptl/tst-initializers1.c b/test/nptl/tst-initializers1.c
deleted file mode 100644
index 1e35380..0000000
--- a/test/nptl/tst-initializers1.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright (C) 2005 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2005.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-
-pthread_mutex_t mtx_normal = PTHREAD_MUTEX_INITIALIZER;
-pthread_mutex_t mtx_recursive = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
-pthread_mutex_t mtx_errorchk = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP;
-pthread_mutex_t mtx_adaptive = PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP;
-pthread_rwlock_t rwl_normal = PTHREAD_RWLOCK_INITIALIZER;
-pthread_rwlock_t rwl_writer
- = PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP;
-pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-
-int
-main (void)
-{
- if (mtx_normal.__data.__kind != PTHREAD_MUTEX_TIMED_NP)
- return 1;
- if (mtx_recursive.__data.__kind != PTHREAD_MUTEX_RECURSIVE_NP)
- return 1;
- if (mtx_errorchk.__data.__kind != PTHREAD_MUTEX_ERRORCHECK_NP)
- return 1;
- if (mtx_adaptive.__data.__kind != PTHREAD_MUTEX_ADAPTIVE_NP)
- return 1;
- if (rwl_normal.__data.__flags != PTHREAD_RWLOCK_PREFER_READER_NP)
- return 1;
- if (rwl_writer.__data.__flags
- != PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP)
- return 1;
- return 0;
-}
diff --git a/test/nptl/tst-join1.c b/test/nptl/tst-join1.c
deleted file mode 100644
index 681245a..0000000
--- a/test/nptl/tst-join1.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
-
-
-static void *
-tf (void *arg)
-{
- pthread_t mh = (pthread_t) arg;
- void *result;
-
- if (pthread_mutex_unlock (&lock) != 0)
- {
- puts ("unlock failed");
- exit (1);
- }
-
- if (pthread_join (mh, &result) != 0)
- {
- puts ("join failed");
- exit (1);
- }
-
- if (result != (void *) 42l)
- {
- printf ("result wrong: expected %p, got %p\n", (void *) 42, result);
- exit (1);
- }
-
- exit (0);
-}
-
-
-static int
-do_test (void)
-{
- pthread_t th;
-
- if (pthread_mutex_lock (&lock) != 0)
- {
- puts ("1st lock failed");
- exit (1);
- }
-
- if (pthread_create (&th, NULL, tf, (void *) pthread_self ()) != 0)
- {
- puts ("create failed");
- exit (1);
- }
-
- if (pthread_mutex_lock (&lock) != 0)
- {
- puts ("2nd lock failed");
- exit (1);
- }
-
- pthread_exit ((void *) 42);
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-join2.c b/test/nptl/tst-join2.c
deleted file mode 100644
index 0320398..0000000
--- a/test/nptl/tst-join2.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-
-
-static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
-
-
-static void *
-tf (void *arg)
-{
- if (pthread_mutex_lock (&lock) != 0)
- {
- puts ("child: mutex_lock failed");
- return NULL;
- }
-
- return (void *) 42l;
-}
-
-
-static int
-do_test (void)
-{
- pthread_t th;
-
- if (pthread_mutex_lock (&lock) != 0)
- {
- puts ("mutex_lock failed");
- exit (1);
- }
-
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("mutex_create failed");
- exit (1);
- }
-
- void *status;
- int val = pthread_tryjoin_np (th, &status);
- if (val == 0)
- {
- puts ("1st tryjoin succeeded");
- exit (1);
- }
- else if (val != EBUSY)
- {
- puts ("1st tryjoin didn't return EBUSY");
- exit (1);
- }
-
- if (pthread_mutex_unlock (&lock) != 0)
- {
- puts ("mutex_unlock failed");
- exit (1);
- }
-
- while ((val = pthread_tryjoin_np (th, &status)) != 0)
- {
- if (val != EBUSY)
- {
- printf ("tryjoin returned %s (%d), expected only 0 or EBUSY\n",
- strerror (val), val);
- exit (1);
- }
-
- /* Delay minimally. */
- struct timespec ts = { .tv_sec = 0, .tv_nsec = 10000000 };
- nanosleep (&ts, NULL);
- }
-
- if (status != (void *) 42l)
- {
- printf ("return value %p, expected %p\n", status, (void *) 42l);
- exit (1);
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-join3.c b/test/nptl/tst-join3.c
deleted file mode 100644
index b25ffd8..0000000
--- a/test/nptl/tst-join3.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/time.h>
-
-
-static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
-
-
-static void *
-tf (void *arg)
-{
- if (pthread_mutex_lock (&lock) != 0)
- {
- puts ("child: mutex_lock failed");
- return NULL;
- }
-
- return (void *) 42l;
-}
-
-
-static int
-do_test (void)
-{
- pthread_t th;
-
- if (pthread_mutex_lock (&lock) != 0)
- {
- puts ("mutex_lock failed");
- exit (1);
- }
-
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("mutex_create failed");
- exit (1);
- }
-
- void *status;
- struct timespec ts;
- struct timeval tv;
- (void) gettimeofday (&tv, NULL);
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- ts.tv_nsec += 200000000;
- if (ts.tv_nsec >= 1000000000)
- {
- ts.tv_nsec -= 1000000000;
- ++ts.tv_sec;
- }
- int val = pthread_timedjoin_np (th, &status, &ts);
- if (val == 0)
- {
- puts ("1st timedjoin succeeded");
- exit (1);
- }
- else if (val != ETIMEDOUT)
- {
- puts ("1st timedjoin didn't return ETIMEDOUT");
- exit (1);
- }
-
- if (pthread_mutex_unlock (&lock) != 0)
- {
- puts ("mutex_unlock failed");
- exit (1);
- }
-
- while (1)
- {
- (void) gettimeofday (&tv, NULL);
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- ts.tv_nsec += 200000000;
- if (ts.tv_nsec >= 1000000000)
- {
- ts.tv_nsec -= 1000000000;
- ++ts.tv_sec;
- }
-
- val = pthread_timedjoin_np (th, &status, &ts);
- if (val == 0)
- break;
-
- if (val != ETIMEDOUT)
- {
- printf ("timedjoin returned %s (%d), expected only 0 or ETIMEDOUT\n",
- strerror (val), val);
- exit (1);
- }
- }
-
- if (status != (void *) 42l)
- {
- printf ("return value %p, expected %p\n", status, (void *) 42l);
- exit (1);
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-join4.c b/test/nptl/tst-join4.c
deleted file mode 100644
index 96b650d..0000000
--- a/test/nptl/tst-join4.c
+++ /dev/null
@@ -1,124 +0,0 @@
-/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static pthread_barrier_t bar;
-
-
-static void *
-tf (void *arg)
-{
- if (pthread_barrier_wait (&bar) != 0)
- {
- puts ("tf: barrier_wait failed");
- exit (1);
- }
-
- return (void *) 1l;
-}
-
-
-static int
-do_test (void)
-{
- if (pthread_barrier_init (&bar, NULL, 3) != 0)
- {
- puts ("barrier_init failed");
- exit (1);
- }
-
- pthread_attr_t a;
-
- if (pthread_attr_init (&a) != 0)
- {
- puts ("attr_init failed");
- exit (1);
- }
-
- if (pthread_attr_setstacksize (&a, 1 * 1024 * 1024) != 0)
- {
- puts ("attr_setstacksize failed");
- return 1;
- }
-
- pthread_t th[2];
-
- if (pthread_create (&th[0], &a, tf, NULL) != 0)
- {
- puts ("1st create failed");
- exit (1);
- }
-
- if (pthread_attr_setdetachstate (&a, PTHREAD_CREATE_DETACHED) != 0)
- {
- puts ("attr_setdetachstate failed");
- exit (1);
- }
-
- if (pthread_create (&th[1], &a, tf, NULL) != 0)
- {
- puts ("1st create failed");
- exit (1);
- }
-
- if (pthread_attr_destroy (&a) != 0)
- {
- puts ("attr_destroy failed");
- exit (1);
- }
-
- if (pthread_detach (th[0]) != 0)
- {
- puts ("could not detach 1st thread");
- exit (1);
- }
-
- int err = pthread_detach (th[0]);
- if (err == 0)
- {
- puts ("second detach of 1st thread succeeded");
- exit (1);
- }
- if (err != EINVAL)
- {
- printf ("second detach of 1st thread returned %d, not EINVAL\n", err);
- exit (1);
- }
-
- err = pthread_detach (th[1]);
- if (err == 0)
- {
- puts ("detach of 2nd thread succeeded");
- exit (1);
- }
- if (err != EINVAL)
- {
- printf ("detach of 2nd thread returned %d, not EINVAL\n", err);
- exit (1);
- }
-
- exit (0);
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-join5.c b/test/nptl/tst-join5.c
deleted file mode 100644
index feeee2e..0000000
--- a/test/nptl/tst-join5.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static void *
-tf1 (void *arg)
-{
- pthread_join ((pthread_t) arg, NULL);
-
- puts ("1st join returned");
-
- return (void *) 1l;
-}
-
-
-static void *
-tf2 (void *arg)
-{
- int a;
- a = pthread_join ((pthread_t) arg, NULL);
-
- puts ("2nd join returned");
- printf("a = %i\n", a);
-
- return (void *) 1l;
-}
-
-
-static int
-do_test (void)
-{
- pthread_t th;
-
- int err = pthread_join (pthread_self (), NULL);
- if (err == 0)
- {
- puts ("1st circular join succeeded");
- exit (1);
- }
- if (err != EDEADLK)
- {
- printf ("1st circular join %d, not EDEADLK\n", err);
- exit (1);
- }
-
- if (pthread_create (&th, NULL, tf1, (void *) pthread_self ()) != 0)
- {
- puts ("1st create failed");
- exit (1);
- }
-
- if (pthread_cancel (th) != 0)
- {
- puts ("cannot cancel 1st thread");
- exit (1);
- }
-
- void *r;
- err = pthread_join (th, &r);
- if (err != 0)
- {
- printf ("cannot join 1st thread: %d\n", err);
- exit (1);
- }
- if (r != PTHREAD_CANCELED)
- {
- puts ("1st thread not canceled");
- exit (1);
- }
-
- err = pthread_join (pthread_self (), NULL);
- if (err == 0)
- {
- puts ("2nd circular join succeeded");
- exit (1);
- }
- if (err != EDEADLK)
- {
- printf ("2nd circular join %d, not EDEADLK\n", err);
- exit (1);
- }
-
- if (pthread_create (&th, NULL, tf2, (void *) pthread_self ()) != 0)
- {
- puts ("2nd create failed");
- exit (1);
- }
-
- if (pthread_cancel (th) != 0)
- {
- puts ("cannot cancel 2nd thread");
- exit (1);
- }
-
- if (pthread_join (th, &r) != 0)
- {
- puts ("cannot join 2nd thread");
- exit (1);
- }
- if (r != PTHREAD_CANCELED)
- {
- puts ("2nd thread not canceled");
- exit (1);
- }
-
- err = pthread_join (pthread_self (), NULL);
- if (err == 0)
- {
- puts ("2nd circular join succeeded");
- exit (1);
- }
- if (err != EDEADLK)
- {
- printf ("2nd circular join %d, not EDEADLK\n", err);
- exit (1);
- }
-
- exit (0);
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-join6.c b/test/nptl/tst-join6.c
deleted file mode 100644
index 0c9e7c0..0000000
--- a/test/nptl/tst-join6.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define WAIT_IN_CHILD 1
-#include "tst-join5.c"
diff --git a/test/nptl/tst-key1.c b/test/nptl/tst-key1.c
deleted file mode 100644
index ebda395..0000000
--- a/test/nptl/tst-key1.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <limits.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-int
-do_test (void)
-{
- int max;
-#ifdef PTHREAD_KEYS_MAX
- max = PTHREAD_KEYS_MAX;
-#else
- max = _POSIX_THREAD_KEYS_MAX;
-#endif
- pthread_key_t *keys = alloca (max * sizeof (pthread_key_t));
-
- int i;
- for (i = 0; i < max; ++i)
- if (pthread_key_create (&keys[i], NULL) != 0)
- {
- write (2, "key_create failed\n", 18);
- _exit (1);
- }
- else
- {
- printf ("created key %d\n", i);
-
- if (pthread_setspecific (keys[i], (const void *) (i + 100l)) != 0)
- {
- write (2, "setspecific failed\n", 19);
- _exit (1);
- }
- }
-
- for (i = 0; i < max; ++i)
- {
- if (pthread_getspecific (keys[i]) != (void *) (i + 100l))
- {
- write (2, "getspecific failed\n", 19);
- _exit (1);
- }
-
- if (pthread_key_delete (keys[i]) != 0)
- {
- write (2, "key_delete failed\n", 18);
- _exit (1);
- }
- }
-
- /* Now it must be once again possible to allocate keys. */
- if (pthread_key_create (&keys[0], NULL) != 0)
- {
- write (2, "2nd key_create failed\n", 22);
- _exit (1);
- }
-
- if (pthread_key_delete (keys[0]) != 0)
- {
- write (2, "2nd key_delete failed\n", 22);
- _exit (1);
- }
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-key2.c b/test/nptl/tst-key2.c
deleted file mode 100644
index c32031e..0000000
--- a/test/nptl/tst-key2.c
+++ /dev/null
@@ -1,114 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <unistd.h>
-
-#define N 2
-
-
-static int cnt0;
-static void
-f0 (void *p)
-{
- ++cnt0;
-}
-
-
-static int cnt1;
-static void
-f1 (void *p)
-{
- ++cnt1;
-}
-
-
-static void (*fcts[N]) (void *) =
-{
- f0,
- f1
-};
-
-
-static void *
-tf (void *arg)
-{
- pthread_key_t *key = (pthread_key_t *) arg;
-
- if (pthread_setspecific (*key, (void *) -1l) != 0)
- {
- write (2, "setspecific failed\n", 19);
- _exit (1);
- }
-
- return NULL;
-}
-
-
-int
-do_test (void)
-{
- pthread_key_t keys[N];
-
- int i;
- for (i = 0; i < N; ++i)
- if (pthread_key_create (&keys[i], fcts[i]) != 0)
- {
- write (2, "key_create failed\n", 18);
- _exit (1);
- }
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, &keys[1]) != 0)
- {
- write (2, "create failed\n", 14);
- _exit (1);
- }
-
- if (pthread_join (th, NULL) != 0)
- {
- write (2, "join failed\n", 12);
- _exit (1);
- }
-
- if (cnt0 != 0)
- {
- write (2, "cnt0 != 0\n", 10);
- _exit (1);
- }
-
- if (cnt1 != 1)
- {
- write (2, "cnt1 != 1\n", 10);
- _exit (1);
- }
-
- for (i = 0; i < N; ++i)
- if (pthread_key_delete (keys[i]) != 0)
- {
- write (2, "key_delete failed\n", 18);
- _exit (1);
- }
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-key3.c b/test/nptl/tst-key3.c
deleted file mode 100644
index f5426ce..0000000
--- a/test/nptl/tst-key3.c
+++ /dev/null
@@ -1,155 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <unistd.h>
-
-#define N 2
-
-
-static int cnt0;
-static void
-f0 (void *p)
-{
- ++cnt0;
-}
-
-
-static int cnt1;
-static void
-f1 (void *p)
-{
- ++cnt1;
-}
-
-
-static void (*fcts[N]) (void *) =
-{
- f0,
- f1
-};
-
-
-static pthread_barrier_t b;
-
-
-static void *
-tf (void *arg)
-{
- pthread_key_t *key = (pthread_key_t *) arg;
-
- if (pthread_setspecific (*key, (void *) -1l) != 0)
- {
- write (2, "setspecific failed\n", 19);
- _exit (1);
- }
-
- pthread_barrier_wait (&b);
-
- const struct timespec t = { .tv_sec = 1000, .tv_nsec = 0 };
- while (1)
- nanosleep (&t, NULL);
-
- /* NOTREACHED */
- return NULL;
-}
-
-
-int
-do_test (void)
-{
- pthread_key_t keys[N];
-
- int i;
- for (i = 0; i < N; ++i)
- if (pthread_key_create (&keys[i], fcts[i]) != 0)
- {
- write (2, "key_create failed\n", 18);
- _exit (1);
- }
-
- if (pthread_barrier_init (&b, NULL, 2) != 0)
- {
- write (2, "barrier_init failed\n", 20);
- _exit (1);
- }
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, &keys[1]) != 0)
- {
- write (2, "create failed\n", 14);
- _exit (1);
- }
-
- pthread_barrier_wait (&b);
-
- if (pthread_cancel (th) != 0)
- {
- write (2, "cancel failed\n", 14);
- _exit (1);
- }
-
- void *status;
- if (pthread_join (th, &status) != 0)
- {
- write (2, "join failed\n", 12);
- _exit (1);
- }
-
- if (status != PTHREAD_CANCELED)
- {
- write (2, "thread not canceled\n", 20);
- _exit (1);
- }
-
- /* Note that the TSD destructors not necessarily have to have
- finished by the time pthread_join returns. At least according to
- POSIX. We implement the stronger requirement that they indeed
- have run and therefore these tests succeed. */
- if (cnt0 != 0)
- {
- write (2, "cnt0 != 0\n", 10);
- _exit (1);
- }
-
- if (cnt1 != 1)
- {
- write (2, "cnt1 != 1\n", 10);
- _exit (1);
- }
-
- for (i = 0; i < N; ++i)
- if (pthread_key_delete (keys[i]) != 0)
- {
- write (2, "key_delete failed\n", 18);
- _exit (1);
- }
-
- if (pthread_barrier_destroy (&b) != 0)
- {
- write (2, "barrier_destroy failed\n", 23);
- _exit (1);
- }
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-key4.c b/test/nptl/tst-key4.c
deleted file mode 100644
index af44c22..0000000
--- a/test/nptl/tst-key4.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <limits.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-#ifdef PTHREAD_KEYS_MAX
-const int max = PTHREAD_KEYS_MAX;
-#else
-const int max = _POSIX_THREAD_KEYS_MAX;
-#endif
-static pthread_key_t *keys;
-
-
-static void *
-tf1 (void *arg)
-{
- int i;
- for (i = 0; i < max; ++i)
- if (pthread_setspecific (keys[i], (void *) (long int) (i + 1)) != 0)
- {
- puts ("setspecific failed");
- exit (1);
- }
-
- return NULL;
-}
-
-
-static void *
-tf2 (void *arg)
-{
- int i;
- for (i = 0; i < max; ++i)
- if (pthread_getspecific (keys[i]) != NULL)
- {
- printf ("getspecific for key %d not NULL\n", i);
- exit (1);
- }
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- keys = alloca (max * sizeof (pthread_key_t));
-
- int i;
- for (i = 0; i < max; ++i)
- if (pthread_key_create (&keys[i], NULL) != 0)
- {
- puts ("key_create failed");
- exit (1);
- }
-
- pthread_attr_t a;
-
- if (pthread_attr_init (&a) != 0)
- {
- puts ("attr_init failed");
- exit (1);
- }
-
- if (pthread_attr_setstacksize (&a, 1 * 1024 * 1024) != 0)
- {
- puts ("attr_setstacksize failed");
- return 1;
- }
-
- for (i = 0; i < 10; ++i)
- {
- int j;
-#define N 2
- pthread_t th[N];
- for (j = 0; j < N; ++j)
- if (pthread_create (&th[j], NULL, tf1, NULL) != 0)
- {
- puts ("1st create failed");
- exit (1);
- }
-
- for (j = 0; j < N; ++j)
- if (pthread_join (th[j], NULL) != 0)
- {
- puts ("1st join failed");
- exit (1);
- }
-
- for (j = 0; j < N; ++j)
- if (pthread_create (&th[j], NULL, tf2, NULL) != 0)
- {
- puts ("2nd create failed");
- exit (1);
- }
-
- for (j = 0; j < N; ++j)
- if (pthread_join (th[j], NULL) != 0)
- {
- puts ("2nd join failed");
- exit (1);
- }
- }
-
- if (pthread_attr_destroy (&a) != 0)
- {
- puts ("attr_destroy failed");
- exit (1);
- }
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-kill1.c b/test/nptl/tst-kill1.c
deleted file mode 100644
index f58016f..0000000
--- a/test/nptl/tst-kill1.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static pthread_cond_t c = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
-static pthread_barrier_t b;
-
-static void *
-tf (void *a)
-{
- if (pthread_mutex_lock (&m) != 0)
- {
- puts ("child: mutex_lock failed");
- exit (1);
- }
-
- int e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("child: barrier_wait failed");
- exit (1);
- }
-
- /* This call should never return. */
- pthread_cond_wait (&c, &m);
-
- return NULL;
-}
-
-
-int
-do_test (void)
-{
- pthread_t th;
-
- if (pthread_barrier_init (&b, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- exit (1);
- }
-
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("create failed");
- exit (1);
- }
-
- int e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- exit (1);
- }
-
- if (pthread_mutex_lock (&m) != 0)
- {
- puts ("mutex_lock failed");
- exit (1);
- }
-
- /* Send the thread a signal which it doesn't catch and which will
- cause the process to terminate. */
- if (pthread_kill (th, SIGUSR1) != 0)
- {
- puts ("kill failed");
- exit (1);
- }
-
- /* This call should never return. */
- pthread_join (th, NULL);
-
- return 0;
-}
-
-
-#define EXPECTED_SIGNAL SIGUSR1
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-kill2.c b/test/nptl/tst-kill2.c
deleted file mode 100644
index 0315a02..0000000
--- a/test/nptl/tst-kill2.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/time.h>
-
-
-static pthread_cond_t c = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
-static pthread_barrier_t b;
-
-static void *
-tf (void *a)
-{
- /* Block SIGUSR1. */
- sigset_t ss;
-
- sigemptyset (&ss);
- sigaddset (&ss, SIGUSR1);
- if (pthread_sigmask (SIG_BLOCK, &ss, NULL) != 0)
- {
- puts ("child: sigmask failed");
- exit (1);
- }
-
- if (pthread_mutex_lock (&m) != 0)
- {
- puts ("child: mutex_lock failed");
- exit (1);
- }
-
- int e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("child: barrier_wait failed");
- exit (1);
- }
-
- /* Compute timeout. */
- struct timeval tv;
- (void) gettimeofday (&tv, NULL);
- struct timespec ts;
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- /* Timeout: 1sec. */
- ts.tv_sec += 1;
-
- /* This call should never return. */
- if (pthread_cond_timedwait (&c, &m, &ts) != ETIMEDOUT)
- {
- puts ("cond_timedwait didn't time out");
- exit (1);
- }
-
- return NULL;
-}
-
-
-int
-do_test (void)
-{
- pthread_t th;
-
- if (pthread_barrier_init (&b, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- exit (1);
- }
-
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("create failed");
- exit (1);
- }
-
- int e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- exit (1);
- }
-
- if (pthread_mutex_lock (&m) != 0)
- {
- puts ("mutex_lock failed");
- exit (1);
- }
-
- /* Send the thread a signal which it has blocked. */
- if (pthread_kill (th, SIGUSR1) != 0)
- {
- puts ("kill failed");
- exit (1);
- }
-
- if (pthread_mutex_unlock (&m) != 0)
- {
- puts ("mutex_unlock failed");
- exit (1);
- }
-
- void *r;
- if (pthread_join (th, &r) != 0)
- {
- puts ("join failed");
- exit (1);
- }
- if (r != NULL)
- {
- puts ("return value wrong");
- exit (1);
- }
-
- return 0;
-}
-
-
-#define TIMEOUT 5
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-kill3.c b/test/nptl/tst-kill3.c
deleted file mode 100644
index fe9359b..0000000
--- a/test/nptl/tst-kill3.c
+++ /dev/null
@@ -1,158 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/time.h>
-
-
-static pthread_cond_t c = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
-static pthread_barrier_t b;
-
-
-static void
-handler (int sig)
-{
- write (1, "handler called\n", 15);
- _exit (1);
-}
-
-
-static void *
-tf (void *a)
-{
- /* Block SIGUSR1. */
- sigset_t ss;
-
- sigemptyset (&ss);
- sigaddset (&ss, SIGUSR1);
- if (pthread_sigmask (SIG_BLOCK, &ss, NULL) != 0)
- {
- puts ("child: sigmask failed");
- exit (1);
- }
-
- if (pthread_mutex_lock (&m) != 0)
- {
- puts ("child: mutex_lock failed");
- exit (1);
- }
-
- int e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("child: barrier_wait failed");
- exit (1);
- }
-
- /* Compute timeout. */
- struct timeval tv;
- (void) gettimeofday (&tv, NULL);
- struct timespec ts;
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- /* Timeout: 1sec. */
- ts.tv_sec += 1;
-
- /* This call should never return. */
- if (pthread_cond_timedwait (&c, &m, &ts) != ETIMEDOUT)
- {
- puts ("cond_timedwait didn't time out");
- exit (1);
- }
-
- return NULL;
-}
-
-
-int
-do_test (void)
-{
- pthread_t th;
-
- struct sigaction sa;
- sigemptyset (&sa.sa_mask);
- sa.sa_flags = 0;
- sa.sa_handler = handler;
- if (sigaction (SIGUSR1, &sa, NULL) != 0)
- {
- puts ("sigaction failed");
- exit (1);
- }
-
- if (pthread_barrier_init (&b, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- exit (1);
- }
-
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("create failed");
- exit (1);
- }
-
- int e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- exit (1);
- }
-
- if (pthread_mutex_lock (&m) != 0)
- {
- puts ("mutex_lock failed");
- exit (1);
- }
-
- /* Send the thread a signal which it has blocked. */
- if (pthread_kill (th, SIGUSR1) != 0)
- {
- puts ("kill failed");
- exit (1);
- }
-
- if (pthread_mutex_unlock (&m) != 0)
- {
- puts ("mutex_unlock failed");
- exit (1);
- }
-
- void *r;
- if (pthread_join (th, &r) != 0)
- {
- puts ("join failed");
- exit (1);
- }
- if (r != NULL)
- {
- puts ("return value wrong");
- exit (1);
- }
-
- return 0;
-}
-
-
-#define TIMEOUT 5
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-kill4.c b/test/nptl/tst-kill4.c
deleted file mode 100644
index 4ede7ed..0000000
--- a/test/nptl/tst-kill4.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static void *
-tf (void *a)
-{
- return NULL;
-}
-
-
-int
-do_test (void)
-{
- pthread_t th;
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("create failed");
- exit (1);
- }
-
- if (pthread_join (th, NULL) != 0)
- {
- puts ("join failed");
- exit (1);
- }
-
- /* The following only works because we assume here something about
- the implementation. Namely, that the memory allocated for the
- thread descriptor is not going away, that the the TID field is
- cleared and therefore the signal is sent to process 0, and that
- we can savely assume there is no other process with this ID at
- that time. */
- int e = pthread_kill (th, 0);
- if (e == 0)
- {
- puts ("pthread_kill succeeded");
- exit (1);
- }
- if (e != ESRCH)
- {
- puts ("pthread_kill didn't return ESRCH");
- exit (1);
- }
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-kill5.c b/test/nptl/tst-kill5.c
deleted file mode 100644
index 254015c..0000000
--- a/test/nptl/tst-kill5.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-int
-do_test (void)
-{
- /* XXX This test might require architecture and system specific changes.
- There is no guarantee that this signal number is invalid. */
- int e = pthread_kill (pthread_self (), SIGRTMAX + 10);
- if (e == 0)
- {
- puts ("kill didn't failed");
- exit (1);
- }
- if (e != EINVAL)
- {
- puts ("error not EINVAL");
- exit (1);
- }
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-kill6.c b/test/nptl/tst-kill6.c
deleted file mode 100644
index f530e4e..0000000
--- a/test/nptl/tst-kill6.c
+++ /dev/null
@@ -1,161 +0,0 @@
-/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <semaphore.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static pthread_t receiver;
-static sem_t sem;
-static pthread_barrier_t b;
-
-static void
-handler (int sig)
-{
- if (sig != SIGUSR1)
- {
- write (STDOUT_FILENO, "wrong signal\n", 13);
- _exit (1);
- }
-
- if (pthread_self () != receiver)
- {
- write (STDOUT_FILENO, "not the intended receiver\n", 26);
- _exit (1);
- }
-
- if (sem_post (&sem) != 0)
- {
- write (STDOUT_FILENO, "sem_post failed\n", 16);
- _exit (1);
- }
-}
-
-
-static void *
-tf (void *a)
-{
- int e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("child: barrier_wait failed");
- exit (1);
- }
-
- return NULL;
-}
-
-
-int
-do_test (void)
-{
- struct sigaction sa;
- sigemptyset (&sa.sa_mask);
- sa.sa_flags = 0;
- sa.sa_handler = handler;
- if (sigaction (SIGUSR1, &sa, NULL) != 0)
- {
- puts ("sigaction failed");
- exit (1);
- }
-
-#define N 20
-
- if (pthread_barrier_init (&b, NULL, N + 1) != 0)
- {
- puts ("barrier_init failed");
- exit (1);
- }
-
- pthread_attr_t a;
-
- if (pthread_attr_init (&a) != 0)
- {
- puts ("attr_init failed");
- exit (1);
- }
-
- if (pthread_attr_setstacksize (&a, 1 * 1024 * 1024) != 0)
- {
- puts ("attr_setstacksize failed");
- return 1;
- }
-
- pthread_t th[N];
- int i;
- for (i = 0; i < N; ++i)
- if (pthread_create (&th[i], &a, tf, NULL) != 0)
- {
- puts ("create failed");
- exit (1);
- }
-
- if (pthread_attr_destroy (&a) != 0)
- {
- puts ("attr_destroy failed");
- exit (1);
- }
-
- if (sem_init (&sem, 0, 0) != 0)
- {
- puts ("sem_init failed");
- exit (1);
- }
-
- for (i = 0; i < N * 10; ++i)
- {
- receiver = th[i % N];
-
- if (pthread_kill (receiver, SIGUSR1) != 0)
- {
- puts ("kill failed");
- exit (1);
- }
-
- if (TEMP_FAILURE_RETRY (sem_wait (&sem)) != 0)
- {
- puts ("sem_wait failed");
- exit (1);
- }
- }
-
- int e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- exit (1);
- }
-
- for (i = 0; i < N; ++i)
- if (pthread_join (th[i], NULL) != 0)
- {
- puts ("join failed");
- exit (1);
- }
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-mqueue.h b/test/nptl/tst-mqueue.h
deleted file mode 100644
index 1401c3e..0000000
--- a/test/nptl/tst-mqueue.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* Common code for message queue passing tests.
- Copyright (C) 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <mqueue.h>
-#include <search.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/uio.h>
-#include <unistd.h>
-
-static int temp_mq_fd;
-
-/* Add temporary files in list. */
-static void
-__attribute__ ((unused))
-add_temp_mq (const char *name)
-{
- struct iovec iov[2];
- iov[0].iov_base = (char *) name;
- iov[0].iov_len = strlen (name);
- iov[1].iov_base = (char *) "\n";
- iov[1].iov_len = 1;
- if (writev (temp_mq_fd, iov, 2) != iov[0].iov_len + 1)
- printf ("Could not record temp mq filename %s\n", name);
-}
-
-/* Delete all temporary message queues. */
-static void
-do_cleanup (void)
-{
- if (lseek (temp_mq_fd, 0, SEEK_SET) != 0)
- return;
-
- FILE *f = fdopen (temp_mq_fd, "r");
- if (f == NULL)
- return;
-
- char *line = NULL;
- size_t n = 0;
- ssize_t rets;
- while ((rets = getline (&line, &n, f)) > 0)
- {
- if (line[rets - 1] != '\n')
- continue;
-
- line[rets - 1] = '\0';
- mq_unlink (line);
- }
- fclose (f);
-}
-
-static void
-do_prepare (void)
-{
- char name [] = "/tmp/tst-mqueueN.XXXXXX";
- temp_mq_fd = mkstemp (name);
- if (temp_mq_fd == -1)
- {
- printf ("Could not create temporary file %s: %m\n", name);
- exit (1);
- }
- unlink (name);
-}
-
-#define PREPARE(argc, argv) do_prepare ()
-#define CLEANUP_HANDLER do_cleanup ()
diff --git a/test/nptl/tst-mqueue1.c b/test/nptl/tst-mqueue1.c
deleted file mode 100644
index 5ec79cf..0000000
--- a/test/nptl/tst-mqueue1.c
+++ /dev/null
@@ -1,416 +0,0 @@
-/* Test message queue passing.
- Copyright (C) 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <mqueue.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/wait.h>
-#include <time.h>
-#include <unistd.h>
-#include "tst-mqueue.h"
-
-static int
-intcmp (const void *a, const void *b)
-{
- if (*(unsigned char *)a < *(unsigned char *)b)
- return 1;
- if (*(unsigned char *)a > *(unsigned char *)b)
- return -1;
- return 0;
-}
-
-static int
-check_attrs (struct mq_attr *attr, int nonblock, long cnt)
-{
- int result = 0;
-
- if (attr->mq_maxmsg != 10 || attr->mq_msgsize != 1)
- {
- printf ("attributes don't match those passed to mq_open\n"
- "mq_maxmsg %ld, mq_msgsize %ld\n",
- attr->mq_maxmsg, attr->mq_msgsize);
- result = 1;
- }
-
- if ((attr->mq_flags & O_NONBLOCK) != nonblock)
- {
- printf ("mq_flags %lx != %x\n", (attr->mq_flags & O_NONBLOCK),
nonblock);
- result = 1;
- }
-
- if (attr->mq_curmsgs != cnt)
- {
- printf ("mq_curmsgs %ld != %ld\n", attr->mq_curmsgs, cnt);
- result = 1;
- }
-
- return result;
-}
-
-static int
-do_one_test (mqd_t q, const char *name, int nonblock)
-{
- int result = 0;
-
- char v []
- = { 0x32, 0x62, 0x22, 0x31, 0x11, 0x73, 0x61, 0x21, 0x72, 0x71, 0x81 };
-
- struct mq_attr attr;
- memset (&attr, 0xaa, sizeof (attr));
- if (mq_getattr (q, &attr) != 0)
- {
- printf ("mq_getattr failed: %m\n");
- result = 1;
- }
- else
- result |= check_attrs (&attr, nonblock, 0);
-
- if (mq_receive (q, &v[0], 1, NULL) != -1)
- {
- puts ("mq_receive on O_WRONLY mqd_t unexpectedly succeeded");
- result = 1;
- }
- else if (errno != EBADF)
- {
- printf ("mq_receive on O_WRONLY mqd_t did not fail with EBADF: %m\n");
- result = 1;
- }
-
- struct timespec ts;
- if (clock_gettime (CLOCK_REALTIME, &ts) == 0)
- --ts.tv_sec;
- else
- {
- ts.tv_sec = time (NULL) - 1;
- ts.tv_nsec = 0;
- }
-
- int ret;
- for (int i = 0; i < 10; ++i)
- {
- if (i & 1)
- ret = mq_send (q, &v[i], 1, v[i] >> 4);
- else
- ret = mq_timedsend (q, &v[i], 1, v[i] >> 4, &ts);
-
- if (ret)
- {
- printf ("mq_%ssend failed: %m\n", (i & 1) ? "" :
"timed");
- result = 1;
- }
- }
-
- ret = mq_timedsend (q, &v[10], 1, 8, &ts);
- if (ret != -1)
- {
- puts ("mq_timedsend on full queue did not fail");
- result = 1;
- }
- else if (errno != (nonblock ? EAGAIN : ETIMEDOUT))
- {
- printf ("mq_timedsend on full queue did not fail with %s: %m\n",
- nonblock ? "EAGAIN" : "ETIMEDOUT");
- result = 1;
- }
-
- if (nonblock)
- {
- ret = mq_send (q, &v[10], 1, 8);
- if (ret != -1)
- {
- puts ("mq_send on full non-blocking queue did not fail");
- result = 1;
- }
- else if (errno != EAGAIN)
- {
- printf ("mq_send on full non-blocking queue did not fail"
- "with EAGAIN: %m\n");
- result = 1;
- }
- }
-
- memset (&attr, 0xaa, sizeof (attr));
- if (mq_getattr (q, &attr) != 0)
- {
- printf ("mq_getattr failed: %m\n");
- result = 1;
- }
- else
- result |= check_attrs (&attr, nonblock, 10);
-
- pid_t pid = fork ();
- if (pid == -1)
- {
- printf ("fork failed: %m\n");
- result = 1;
- }
- else if (pid == 0)
- {
- result = 0;
-
- if (mq_close (q) != 0)
- {
- printf ("mq_close in child failed: %m\n");
- result = 1;
- }
-
- q = mq_open (name, O_RDONLY | nonblock);
- if (q == (mqd_t) -1)
- {
- printf ("mq_open in child failed: %m\n");
- exit (1);
- }
-
- memset (&attr, 0xaa, sizeof (attr));
- if (mq_getattr (q, &attr) != 0)
- {
- printf ("mq_getattr failed: %m\n");
- result = 1;
- }
- else
- result |= check_attrs (&attr, nonblock, 10);
-
- char vr[11] = { };
- unsigned int prio;
- ssize_t rets;
-
- if (mq_send (q, &v[0], 1, 1) != -1)
- {
- puts ("mq_send on O_RDONLY mqd_t unexpectedly succeeded");
- result = 1;
- }
- else if (errno != EBADF)
- {
- printf ("mq_send on O_WRONLY mqd_t did not fail with EBADF: %m\n");
- result = 1;
- }
-
- for (int i = 0; i < 10; ++i)
- {
- if (i & 1)
- rets = mq_receive (q, &vr[i], 1, &prio);
- else
- rets = mq_timedreceive (q, &vr[i], 1, &prio, &ts);
-
- if (rets != 1)
- {
- if (rets == -1)
- printf ("mq_%sreceive failed: %m\n", (i & 1) ? "" :
"timed");
- else
- printf ("mq_%sreceive returned %zd != 1\n",
- (i & 1) ? "" : "timed", rets);
- result = 1;
- }
- else if (prio != (unsigned int) vr[i] >> 4)
- {
- printf ("unexpected priority %x for value %02x\n", prio,
- vr[i]);
- result = 1;
- }
- }
-
- qsort (v, 10, 1, intcmp);
- if (memcmp (v, vr, 10) != 0)
- {
- puts ("messages not received in expected order");
- result = 1;
- }
-
- rets = mq_timedreceive (q, &vr[10], 1, &prio, &ts);
- if (rets != -1)
- {
- puts ("mq_timedreceive on empty queue did not fail");
- result = 1;
- }
- else if (errno != (nonblock ? EAGAIN : ETIMEDOUT))
- {
- printf ("mq_timedreceive on empty queue did not fail with %s: %m\n",
- nonblock ? "EAGAIN" : "ETIMEDOUT");
- result = 1;
- }
-
- if (nonblock)
- {
- ret = mq_receive (q, &vr[10], 1, &prio);
- if (ret != -1)
- {
- puts ("mq_receive on empty non-blocking queue did not fail");
- result = 1;
- }
- else if (errno != EAGAIN)
- {
- printf ("mq_receive on empty non-blocking queue did not fail"
- "with EAGAIN: %m\n");
- result = 1;
- }
- }
-
- memset (&attr, 0xaa, sizeof (attr));
- if (mq_getattr (q, &attr) != 0)
- {
- printf ("mq_getattr failed: %m\n");
- result = 1;
- }
- else
- result |= check_attrs (&attr, nonblock, 0);
-
- if (mq_close (q) != 0)
- {
- printf ("mq_close in child failed: %m\n");
- result = 1;
- }
-
- exit (result);
- }
-
- int status;
- if (TEMP_FAILURE_RETRY (waitpid (pid, &status, 0)) != pid)
- {
- printf ("waitpid failed: %m\n");
- kill (pid, SIGKILL);
- result = 1;
- }
- else if (!WIFEXITED (status) || WEXITSTATUS (status))
- {
- printf ("child failed: %d\n", status);
- result = 1;
- }
-
- memset (&attr, 0xaa, sizeof (attr));
- if (mq_getattr (q, &attr) != 0)
- {
- printf ("mq_getattr failed: %m\n");
- result = 1;
- }
- else
- result |= check_attrs (&attr, nonblock, 0);
-
- return result;
-}
-
-#define TEST_FUNCTION do_test ()
-static int
-do_test (void)
-{
- int result = 0;
-
- char name[sizeof "/tst-mqueue1-" + sizeof (pid_t) * 3];
- snprintf (name, sizeof (name), "/tst-mqueue1-%u", getpid ());
-
- struct mq_attr attr = { .mq_maxmsg = 10, .mq_msgsize = 1 };
- mqd_t q = mq_open (name, O_CREAT | O_EXCL | O_WRONLY, 0600, &attr);
-
- if (q == (mqd_t) -1)
- {
- printf ("mq_open failed with: %m\n");
- return result;
- }
- else
- add_temp_mq (name);
-
- result |= do_one_test (q, name, 0);
-
- mqd_t q2 = mq_open (name, O_WRONLY | O_NONBLOCK);
- if (q2 == (mqd_t) -1)
- {
- printf ("mq_open failed with: %m\n");
- q2 = q;
- result = 1;
- }
- else
- {
- if (mq_close (q) != 0)
- {
- printf ("mq_close in parent failed: %m\n");
- result = 1;
- }
-
- q = q2;
- result |= do_one_test (q, name, O_NONBLOCK);
-
- if (mq_getattr (q, &attr) != 0)
- {
- printf ("mq_getattr failed: %m\n");
- result = 1;
- }
- else
- {
- attr.mq_flags ^= O_NONBLOCK;
-
- struct mq_attr attr2;
- memset (&attr2, 0x55, sizeof (attr2));
- if (mq_setattr (q, &attr, &attr2) != 0)
- {
- printf ("mq_setattr failed: %m\n");
- result = 1;
- }
- else if (attr.mq_flags != (attr2.mq_flags ^ O_NONBLOCK)
- || attr.mq_maxmsg != attr2.mq_maxmsg
- || attr.mq_msgsize != attr2.mq_msgsize
- || attr.mq_curmsgs != 0
- || attr2.mq_curmsgs != 0)
- {
- puts ("mq_setattr returned unexpected values in *omqstat");
- result = 1;
- }
- else
- {
- result |= do_one_test (q, name, 0);
-
- if (mq_setattr (q, &attr2, NULL) != 0)
- {
- printf ("mq_setattr failed: %m\n");
- result = 1;
- }
- else
- result |= do_one_test (q, name, O_NONBLOCK);
- }
- }
- }
-
- if (mq_unlink (name) != 0)
- {
- printf ("mq_unlink failed: %m\n");
- result = 1;
- }
-
- if (mq_close (q) != 0)
- {
- printf ("mq_close in parent failed: %m\n");
- result = 1;
- }
-
- if (mq_close (q) != -1)
- {
- puts ("second mq_close did not fail");
- result = 1;
- }
- else if (errno != EBADF)
- {
- printf ("second mq_close did not fail with EBADF: %m\n");
- result = 1;
- }
-
- return result;
-}
-
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-mqueue2.c b/test/nptl/tst-mqueue2.c
deleted file mode 100644
index 9fbaedd..0000000
--- a/test/nptl/tst-mqueue2.c
+++ /dev/null
@@ -1,476 +0,0 @@
-/* Test message queue passing.
- Copyright (C) 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <mqueue.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/time.h>
-#include <sys/wait.h>
-#include <time.h>
-#include <unistd.h>
-#include "tst-mqueue.h"
-
-static void
-alrm_handler (int sig)
-{
-}
-
-#define TIMEOUT 10
-#define TEST_FUNCTION do_test ()
-static int
-do_test (void)
-{
- int result = 0;
-
- char name[sizeof "/tst-mqueue2-" + sizeof (pid_t) * 3];
- snprintf (name, sizeof (name), "/tst-mqueue2-%u", getpid ());
-
- struct mq_attr attr = { .mq_maxmsg = 2, .mq_msgsize = 2 };
- mqd_t q = mq_open (name, O_CREAT | O_EXCL | O_RDWR, 0600, &attr);
-
- if (q == (mqd_t) -1)
- {
- printf ("mq_open failed with: %m\n");
- return result;
- }
- else
- add_temp_mq (name);
-
- mqd_t q2 = mq_open (name, O_CREAT | O_EXCL | O_RDWR, 0600, &attr);
- if (q2 != (mqd_t) -1)
- {
- puts ("mq_open with O_EXCL unexpectedly succeeded");
- result = 1;
- }
- else if (errno != EEXIST)
- {
- printf ("mq_open did not fail with EEXIST: %m\n");
- result = 1;
- }
-
- char name2[sizeof "/tst-mqueue2-2-" + sizeof (pid_t) * 3];
- snprintf (name2, sizeof (name2), "/tst-mqueue2-2-%u", getpid ());
-
- attr.mq_maxmsg = -2;
- q2 = mq_open (name2, O_CREAT | O_EXCL | O_RDWR, 0600, &attr);
- if (q2 != (mqd_t) -1)
- {
- puts ("mq_open with invalid mq_maxmsg unexpectedly succeeded");
- add_temp_mq (name2);
- result = 1;
- }
- else if (errno != EINVAL)
- {
- printf ("mq_open with invalid mq_maxmsg did not fail with "
- "EINVAL: %m\n");
- result = 1;
- }
-
- attr.mq_maxmsg = 2;
- attr.mq_msgsize = -56;
- q2 = mq_open (name2, O_CREAT | O_EXCL | O_RDWR, 0600, &attr);
- if (q2 != (mqd_t) -1)
- {
- puts ("mq_open with invalid mq_msgsize unexpectedly succeeded");
- add_temp_mq (name2);
- result = 1;
- }
- else if (errno != EINVAL)
- {
- printf ("mq_open with invalid mq_msgsize did not fail with "
- "EINVAL: %m\n");
- result = 1;
- }
-
- char buf[3];
- struct timespec ts;
- if (clock_gettime (CLOCK_REALTIME, &ts) == 0)
- ts.tv_sec += 10;
- else
- {
- ts.tv_sec = time (NULL) + 10;
- ts.tv_nsec = 0;
- }
-
- if (mq_timedreceive (q, buf, 1, NULL, &ts) == 0)
- {
- puts ("mq_timedreceive with too small msg_len did not fail");
- result = 1;
- }
- else if (errno != EMSGSIZE)
- {
- printf ("mq_timedreceive with too small msg_len did not fail with "
- "EMSGSIZE: %m\n");
- result = 1;
- }
-
- ts.tv_nsec = -1;
- if (mq_timedreceive (q, buf, 2, NULL, &ts) == 0)
- {
- puts ("mq_timedreceive with negative tv_nsec did not fail");
- result = 1;
- }
- else if (errno != EINVAL)
- {
- printf ("mq_timedreceive with negative tv_nsec did not fail with "
- "EINVAL: %m\n");
- result = 1;
- }
-
- ts.tv_nsec = 1000000000;
- if (mq_timedreceive (q, buf, 2, NULL, &ts) == 0)
- {
- puts ("mq_timedreceive with tv_nsec >= 1000000000 did not fail");
- result = 1;
- }
- else if (errno != EINVAL)
- {
- printf ("mq_timedreceive with tv_nsec >= 1000000000 did not fail with
"
- "EINVAL: %m\n");
- result = 1;
- }
-
- struct sigaction sa = { .sa_handler = alrm_handler, .sa_flags = 0 };
- sigemptyset (&sa.sa_mask);
- sigaction (SIGALRM, &sa, NULL);
-
- struct itimerval it = { .it_value = { .tv_sec = 1 } };
- setitimer (ITIMER_REAL, &it, NULL);
-
- if (mq_receive (q, buf, 2, NULL) == 0)
- {
- puts ("mq_receive on empty queue did not block");
- result = 1;
- }
- else if (errno != EINTR)
- {
- printf ("mq_receive on empty queue did not fail with EINTR: %m\n");
- result = 1;
- }
-
- setitimer (ITIMER_REAL, &it, NULL);
-
- ts.tv_nsec = 0;
- if (mq_timedreceive (q, buf, 2, NULL, &ts) == 0)
- {
- puts ("mq_timedreceive on empty queue did not block");
- result = 1;
- }
- else if (errno != EINTR)
- {
- printf ("mq_timedreceive on empty queue did not fail with EINTR: %m\n");
- result = 1;
- }
-
- buf[0] = '6';
- buf[1] = '7';
- if (mq_send (q, buf, 2, 3) != 0
- || (buf[0] = '8', mq_send (q, buf, 1, 4) != 0))
- {
- printf ("mq_send failed: %m\n");
- result = 1;
- }
-
- memset (buf, ' ', sizeof (buf));
-
- unsigned int prio;
- ssize_t rets = mq_receive (q, buf, 3, &prio);
- if (rets != 1)
- {
- if (rets == -1)
- printf ("mq_receive failed: %m\n");
- else
- printf ("mq_receive returned %zd != 1\n", rets);
- result = 1;
- }
- else if (prio != 4 || memcmp (buf, "8 ", 3) != 0)
- {
- printf ("mq_receive prio %u (4) buf \"%c%c%c\" (\"8
\")\n",
- prio, buf[0], buf[1], buf[2]);
- result = 1;
- }
-
- rets = mq_receive (q, buf, 2, NULL);
- if (rets != 2)
- {
- if (rets == -1)
- printf ("mq_receive failed: %m\n");
- else
- printf ("mq_receive returned %zd != 2\n", rets);
- result = 1;
- }
- else if (memcmp (buf, "67 ", 3) != 0)
- {
- printf ("mq_receive buf \"%c%c%c\" != \"67 \"\n",
- buf[0], buf[1], buf[2]);
- result = 1;
- }
-
- buf[0] = '2';
- buf[1] = '1';
- if (clock_gettime (CLOCK_REALTIME, &ts) != 0)
- ts.tv_sec = time (NULL);
- ts.tv_nsec = -1000000001;
- if ((mq_timedsend (q, buf, 2, 5, &ts) != 0
- && (errno != EINVAL || mq_send (q, buf, 2, 5) != 0))
- || (buf[0] = '3', ts.tv_nsec = -ts.tv_nsec,
- (mq_timedsend (q, buf, 1, 4, &ts) != 0
- && (errno != EINVAL || mq_send (q, buf, 1, 4) != 0))))
- {
- printf ("mq_timedsend failed: %m\n");
- result = 1;
- }
-
- buf[0] = '-';
- ts.tv_nsec = 1000000001;
- if (mq_timedsend (q, buf, 1, 6, &ts) == 0)
- {
- puts ("mq_timedsend with tv_nsec >= 1000000000 did not fail");
- result = 1;
- }
- else if (errno != EINVAL)
- {
- printf ("mq_timedsend with tv_nsec >= 1000000000 did not fail with "
- "EINVAL: %m\n");
- result = 1;
- }
-
- ts.tv_nsec = -2;
- if (mq_timedsend (q, buf, 1, 6, &ts) == 0)
- {
- puts ("mq_timedsend with negative tv_nsec did not fail");
- result = 1;
- }
- else if (errno != EINVAL)
- {
- printf ("mq_timedsend with megatove tv_nsec did not fail with "
- "EINVAL: %m\n");
- result = 1;
- }
-
- setitimer (ITIMER_REAL, &it, NULL);
-
- if (mq_send (q, buf, 2, 8) == 0)
- {
- puts ("mq_send on full queue did not block");
- result = 1;
- }
- else if (errno != EINTR)
- {
- printf ("mq_send on full queue did not fail with EINTR: %m\n");
- result = 1;
- }
-
- setitimer (ITIMER_REAL, &it, NULL);
-
- ts.tv_sec += 10;
- ts.tv_nsec = 0;
- if (mq_timedsend (q, buf, 2, 7, &ts) == 0)
- {
- puts ("mq_timedsend on full queue did not block");
- result = 1;
- }
- else if (errno != EINTR)
- {
- printf ("mq_timedsend on full queue did not fail with EINTR: %m\n");
- result = 1;
- }
-
- memset (buf, ' ', sizeof (buf));
-
- if (clock_gettime (CLOCK_REALTIME, &ts) != 0)
- ts.tv_sec = time (NULL);
- ts.tv_nsec = -1000000001;
- rets = mq_timedreceive (q, buf, 2, &prio, &ts);
- if (rets == -1 && errno == EINVAL)
- rets = mq_receive (q, buf, 2, &prio);
- if (rets != 2)
- {
- if (rets == -1)
- printf ("mq_timedreceive failed: %m\n");
- else
- printf ("mq_timedreceive returned %zd != 2\n", rets);
- result = 1;
- }
- else if (prio != 5 || memcmp (buf, "21 ", 3) != 0)
- {
- printf ("mq_timedreceive prio %u (5) buf \"%c%c%c\" (\"21
\")\n",
- prio, buf[0], buf[1], buf[2]);
- result = 1;
- }
-
- if (mq_receive (q, buf, 1, NULL) == 0)
- {
- puts ("mq_receive with too small msg_len did not fail");
- result = 1;
- }
- else if (errno != EMSGSIZE)
- {
- printf ("mq_receive with too small msg_len did not fail with "
- "EMSGSIZE: %m\n");
- result = 1;
- }
-
- ts.tv_nsec = -ts.tv_nsec;
- rets = mq_timedreceive (q, buf, 2, NULL, &ts);
- if (rets == -1 && errno == EINVAL)
- rets = mq_receive (q, buf, 2, NULL);
- if (rets != 1)
- {
- if (rets == -1)
- printf ("mq_timedreceive failed: %m\n");
- else
- printf ("mq_timedreceive returned %zd != 1\n", rets);
- result = 1;
- }
- else if (memcmp (buf, "31 ", 3) != 0)
- {
- printf ("mq_timedreceive buf \"%c%c%c\" != \"31
\"\n",
- buf[0], buf[1], buf[2]);
- result = 1;
- }
-
- if (mq_send (q, "", 0, 2) != 0)
- {
- printf ("mq_send with msg_len 0 failed: %m\n");
- result = 1;
- }
-
- rets = mq_receive (q, buf, 2, &prio);
- if (rets)
- {
- if (rets == -1)
- printf ("mq_receive failed: %m\n");
- else
- printf ("mq_receive returned %zd != 0\n", rets);
- result = 1;
- }
-
- long mq_prio_max = sysconf (_SC_MQ_PRIO_MAX);
- if (mq_prio_max > 0 && (unsigned int) mq_prio_max == mq_prio_max)
- {
- if (mq_send (q, buf, 1, mq_prio_max) == 0)
- {
- puts ("mq_send with MQ_PRIO_MAX priority unpexpectedly succeeded");
- result = 1;
- }
- else if (errno != EINVAL)
- {
- printf ("mq_send with MQ_PRIO_MAX priority did not fail with "
- "EINVAL: %m\n");
- result = 1;
- }
-
- if (mq_send (q, buf, 1, mq_prio_max - 1) != 0)
- {
- printf ("mq_send with MQ_PRIO_MAX-1 priority failed: %m\n");
- result = 1;
- }
- }
-
- if (mq_unlink (name) != 0)
- {
- printf ("mq_unlink failed: %m\n");
- result = 1;
- }
-
- q2 = mq_open (name, O_RDWR);
- if (q2 != (mqd_t) -1)
- {
- printf ("mq_open of unlinked %s without O_CREAT unexpectedly"
- "succeeded\n", name);
- result = 1;
- }
- else if (errno != ENOENT)
- {
- printf ("mq_open of unlinked %s without O_CREAT did not fail with "
- "ENOENT: %m\n", name);
- result = 1;
- }
-
- if (mq_close (q) != 0)
- {
- printf ("mq_close in parent failed: %m\n");
- result = 1;
- }
-
- if (mq_receive (q, buf, 2, NULL) == 0)
- {
- puts ("mq_receive on invalid mqd_t did not fail");
- result = 1;
- }
- else if (errno != EBADF)
- {
- printf ("mq_receive on invalid mqd_t did not fail with EBADF: %m\n");
- result = 1;
- }
-
- if (mq_send (q, buf, 1, 2) == 0)
- {
- puts ("mq_send on invalid mqd_t did not fail");
- result = 1;
- }
- else if (errno != EBADF)
- {
- printf ("mq_send on invalid mqd_t did not fail with EBADF: %m\n");
- result = 1;
- }
-
- if (mq_getattr (q, &attr) == 0)
- {
- puts ("mq_getattr on invalid mqd_t did not fail");
- result = 1;
- }
- else if (errno != EBADF)
- {
- printf ("mq_getattr on invalid mqd_t did not fail with EBADF: %m\n");
- result = 1;
- }
-
- memset (&attr, 0, sizeof (attr));
- if (mq_setattr (q, &attr, NULL) == 0)
- {
- puts ("mq_setattr on invalid mqd_t did not fail");
- result = 1;
- }
- else if (errno != EBADF)
- {
- printf ("mq_setattr on invalid mqd_t did not fail with EBADF: %m\n");
- result = 1;
- }
-
- if (mq_unlink ("/tst-mqueue2-which-should-never-exist") != -1)
- {
- puts ("mq_unlink of non-existant message queue unexpectedly succeeded");
- result = 1;
- }
- else if (errno != ENOENT)
- {
- printf ("mq_unlink of non-existant message queue did not fail with "
- "ENOENT: %m\n");
- result = 1;
- }
- return result;
-}
-
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-mqueue3.c b/test/nptl/tst-mqueue3.c
deleted file mode 100644
index 5686f43..0000000
--- a/test/nptl/tst-mqueue3.c
+++ /dev/null
@@ -1,243 +0,0 @@
-/* Test SIGEV_THREAD handling for POSIX message queues.
- Copyright (C) 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <mqueue.h>
-#include <signal.h>
-#include <stddef.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/mman.h>
-#include <sys/wait.h>
-#include <unistd.h>
-
-#if _POSIX_THREADS
-# include <pthread.h>
-
-static pid_t pid;
-static mqd_t m;
-static const char message[] = "hello";
-
-# define MAXMSG 10
-# define MSGSIZE 10
-# define UNIQUE 42
-
-
-static void
-fct (union sigval s)
-{
- /* Put the mq in non-blocking mode. */
- struct mq_attr attr;
- if (mq_getattr (m, &attr) != 0)
- {
- printf ("%s: mq_getattr failed: %m\n", __FUNCTION__);
- exit (1);
- }
- attr.mq_flags |= O_NONBLOCK;
- if (mq_setattr (m, &attr, NULL) != 0)
- {
- printf ("%s: mq_setattr failed: %m\n", __FUNCTION__);
- exit (1);
- }
-
- /* Check the values. */
- if (attr.mq_maxmsg != MAXMSG)
- {
- printf ("%s: mq_maxmsg wrong: is %ld, expecte %d\n",
- __FUNCTION__, attr.mq_maxmsg, MAXMSG);
- exit (1);
- }
- if (attr.mq_msgsize != MAXMSG)
- {
- printf ("%s: mq_msgsize wrong: is %ld, expecte %d\n",
- __FUNCTION__, attr.mq_msgsize, MSGSIZE);
- exit (1);
- }
-
- /* Read the message. */
- char buf[attr.mq_msgsize];
- ssize_t n = TEMP_FAILURE_RETRY (mq_receive (m, buf, attr.mq_msgsize, NULL));
- if (n != sizeof (message))
- {
- printf ("%s: length of message wrong: is %zd, expected %zu\n",
- __FUNCTION__, n, sizeof (message));
- exit (1);
- }
- if (memcmp (buf, message, sizeof (message)) != 0)
- {
- printf ("%s: message wrong: is \"%s\", expected
\"%s\"\n",
- __FUNCTION__, buf, message);
- exit (1);
- }
-
- exit (UNIQUE);
-}
-
-
-int
-do_test (void)
-{
- char tmpfname[] = "/tmp/tst-mqueue3-barrier.XXXXXX";
- int fd = mkstemp (tmpfname);
- if (fd == -1)
- {
- printf ("cannot open temporary file: %m\n");
- return 1;
- }
-
- /* Make sure it is always removed. */
- unlink (tmpfname);
-
- /* Create one page of data. */
- size_t ps = sysconf (_SC_PAGESIZE);
- char data[ps];
- memset (data, '\0', ps);
-
- /* Write the data to the file. */
- if (write (fd, data, ps) != (ssize_t) ps)
- {
- puts ("short write");
- return 1;
- }
-
- void *mem = mmap (NULL, ps, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
- if (mem == MAP_FAILED)
- {
- printf ("mmap failed: %m\n");
- return 1;
- }
-
- pthread_barrier_t *b;
- b = (pthread_barrier_t *) (((uintptr_t) mem + __alignof (pthread_barrier_t))
- & ~(__alignof (pthread_barrier_t) - 1));
-
- pthread_barrierattr_t a;
- if (pthread_barrierattr_init (&a) != 0)
- {
- puts ("barrierattr_init failed");
- return 1;
- }
-
- if (pthread_barrierattr_setpshared (&a, PTHREAD_PROCESS_SHARED) != 0)
- {
- puts ("barrierattr_setpshared failed, could not test");
- return 0;
- }
-
- if (pthread_barrier_init (b, &a, 2) != 0)
- {
- puts ("barrier_init failed");
- return 1;
- }
-
- if (pthread_barrierattr_destroy (&a) != 0)
- {
- puts ("barrierattr_destroy failed");
- return 1;
- }
-
- /* Name for the message queue. */
- char mqname[sizeof ("/tst-mqueue3-") + 3 * sizeof (pid_t)];
- snprintf (mqname, sizeof (mqname) - 1, "/tst-mqueue3-%ld",
- (long int) getpid ());
-
- /* Create the message queue. */
- struct mq_attr attr = { .mq_maxmsg = MAXMSG, .mq_msgsize = MSGSIZE };
- m = mq_open (mqname, O_CREAT | O_EXCL | O_RDWR, 0600, &attr);
- if (m == -1)
- {
- if (errno == ENOSYS)
- {
- puts ("not implemented");
- return 0;
- }
-
- puts ("mq_open failed");
- return 1;
- }
-
- /* Unlink the message queue right away. */
- if (mq_unlink (mqname) != 0)
- {
- puts ("mq_unlink failed");
- return 1;
- }
-
- pid = fork ();
- if (pid == -1)
- {
- puts ("fork failed");
- return 1;
- }
- if (pid == 0)
- {
- /* Request notification via thread. */
- struct sigevent ev;
- ev.sigev_notify = SIGEV_THREAD;
- ev.sigev_notify_function = fct;
- ev.sigev_value.sival_ptr = NULL;
- ev.sigev_notify_attributes = NULL;
-
- /* Tell the kernel. */
- if (mq_notify (m,&ev) != 0)
- {
- puts ("mq_notify failed");
- exit (1);
- }
-
- /* Tell the parent we are ready. */
- (void) pthread_barrier_wait (b);
-
- /* Make sure the process goes away eventually. */
- alarm (10);
-
- /* Do nothing forever. */
- while (1)
- pause ();
- }
-
- /* Wait for the child process to register to notification method. */
- (void) pthread_barrier_wait (b);
-
- /* Send the message. */
- if (mq_send (m, message, sizeof (message), 1) != 0)
- {
- kill (pid, SIGKILL);
- puts ("mq_send failed");
- return 1;
- }
-
- int r;
- if (TEMP_FAILURE_RETRY (waitpid (pid, &r, 0)) != pid)
- {
- kill (pid, SIGKILL);
- puts ("waitpid failed");
- return 1;
- }
-
- return WIFEXITED (r) && WEXITSTATUS (r) == UNIQUE ? 0 : 1;
-}
-# define TEST_FUNCTION do_test ()
-#else
-# define TEST_FUNCTION 0
-#endif
-
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-mqueue4.c b/test/nptl/tst-mqueue4.c
deleted file mode 100644
index 87ef0c3..0000000
--- a/test/nptl/tst-mqueue4.c
+++ /dev/null
@@ -1,287 +0,0 @@
-/* Test message queue passing.
- Copyright (C) 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <mqueue.h>
-#include <limits.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/time.h>
-#include <sys/wait.h>
-#include <time.h>
-#include <unistd.h>
-#include "tst-mqueue.h"
-
-#define TIMEOUT 4
-#define TEST_FUNCTION do_test ()
-static int
-do_test (void)
-{
- int result = 0;
-
- char name[sizeof "/tst-mqueue4-" + sizeof (pid_t) * 3 + NAME_MAX];
- char *p;
- p = name + snprintf (name, sizeof (name), "/tst-mqueue4-%u", getpid ());
- struct mq_attr attr = { .mq_maxmsg = 2, .mq_msgsize = 2 };
- mqd_t q = mq_open (name, O_CREAT | O_EXCL | O_RDWR, 0600, &attr);
-
- if (q == (mqd_t) -1)
- {
- printf ("mq_open failed with: %m\n");
- return result;
- }
- else
- add_temp_mq (name);
-
- *p = '.';
- memset (p + 1, 'x', NAME_MAX + 1 - (p - name));
- name[NAME_MAX + 1] = '\0';
-
- mqd_t q2 = mq_open (name, O_CREAT | O_EXCL | O_RDWR, 0600, &attr);
- if (q2 == (mqd_t) -1)
- {
- printf ("mq_open with NAME_MAX long name compoment failed with: %m\n");
- result = 1;
- }
-
- if (mq_unlink (name) != 0)
- {
- printf ("mq_unlink failed: %m\n");
- result = 1;
- }
-
- if (mq_close (q2) != 0)
- {
- printf ("mq_close failed: %m\n");
- result = 1;
- }
-
- name[NAME_MAX + 1] = 'x';
- name[NAME_MAX + 2] = '\0';
- q2 = mq_open (name, O_CREAT | O_EXCL | O_RDWR, 0600, &attr);
- if (q2 != (mqd_t) -1)
- {
- puts ("mq_open with too long name component unexpectedly succeeded");
- mq_unlink (name);
- mq_close (q2);
- result = 1;
- }
- else if (errno != ENAMETOOLONG)
- {
- printf ("mq_open with too long name component did not fail with "
- "ENAMETOOLONG: %m\n");
- result = 1;
- }
-
- if (mq_unlink (name) == 0)
- {
- puts ("mq_unlink with too long name component unexpectedly succeeded");
- result = 1;
- }
- else if (errno != ENAMETOOLONG)
- {
- printf ("mq_unlink with too long name component did not fail with "
- "ENAMETOOLONG: %m\n");
- result = 1;
- }
-
- *p = '\0';
- attr.mq_maxmsg = 1;
- attr.mq_msgsize = 3;
- q2 = mq_open (name, O_CREAT | O_RDWR, 0600, &attr);
- if (q2 == (mqd_t) -1)
- {
- printf ("mq_open without O_EXCL failed with %m\n");
- result = 1;
- }
-
- char buf[3];
- strcpy (buf, "jk");
- if (mq_send (q, buf, 2, 4) != 0)
- {
- printf ("mq_send failed: %m\n");
- result = 1;
- }
-
- if (mq_send (q, buf + 1, 1, 5) != 0)
- {
- printf ("mq_send failed: %m\n");
- result = 1;
- }
-
- if (mq_getattr (q2, &attr) != 0)
- {
- printf ("mq_getattr failed: %m\n");
- result = 1;
- }
-
- if ((attr.mq_flags & O_NONBLOCK)
- || attr.mq_maxmsg != 2
- || attr.mq_msgsize != 2
- || attr.mq_curmsgs != 2)
- {
- printf ("mq_getattr returned unexpected { .mq_flags = %ld,\n"
- ".mq_maxmsg = %ld, .mq_msgsize = %ld, .mq_curmsgs = %ld }\n",
- attr.mq_flags, attr.mq_maxmsg, attr.mq_msgsize, attr.mq_curmsgs);
- result = 1;
- }
-
- struct timespec ts;
- if (clock_gettime (CLOCK_REALTIME, &ts) == 0)
- ++ts.tv_sec;
- else
- {
- ts.tv_sec = time (NULL) + 1;
- ts.tv_nsec = 0;
- }
-
- if (mq_timedsend (q2, buf, 1, 1, &ts) == 0)
- {
- puts ("mq_timedsend unexpectedly succeeded");
- result = 1;
- }
- else if (errno != ETIMEDOUT)
- {
- printf ("mq_timedsend did not fail with ETIMEDOUT: %m\n");
- result = 1;
- }
-
- if (mq_close (q2) != 0)
- {
- printf ("mq_close failed: %m\n");
- result = 1;
- }
-
- q2 = mq_open (name, O_RDONLY, 0600);
- if (q2 == (mqd_t) -1)
- {
- printf ("mq_open without O_CREAT failed with %m\n");
- result = 1;
- }
-
- mqd_t q3 = mq_open (name, O_RDONLY, 0600);
- if (q3 == (mqd_t) -1)
- {
- printf ("mq_open without O_CREAT failed with %m\n");
- result = 1;
- }
-
- memset (buf, ' ', sizeof (buf));
-
- unsigned int prio;
- ssize_t rets = mq_receive (q2, buf, 2, &prio);
- if (rets != 1)
- {
- if (rets == -1)
- printf ("mq_receive failed with: %m\n");
- else
- printf ("mq_receive returned %zd != 1\n", rets);
- result = 1;
- }
- else if (prio != 5 || memcmp (buf, "k ", 3) != 0)
- {
- printf ("mq_receive returned prio %u (2) buf \"%c%c%c\" (\"k
\")\n",
- prio, buf[0], buf[1], buf[2]);
- result = 1;
- }
-
- if (mq_getattr (q3, &attr) != 0)
- {
- printf ("mq_getattr failed: %m\n");
- result = 1;
- }
-
- if ((attr.mq_flags & O_NONBLOCK)
- || attr.mq_maxmsg != 2
- || attr.mq_msgsize != 2
- || attr.mq_curmsgs != 1)
- {
- printf ("mq_getattr returned unexpected { .mq_flags = %ld,\n"
- ".mq_maxmsg = %ld, .mq_msgsize = %ld, .mq_curmsgs = %ld }\n",
- attr.mq_flags, attr.mq_maxmsg, attr.mq_msgsize, attr.mq_curmsgs);
- result = 1;
- }
-
- rets = mq_receive (q3, buf, 2, NULL);
- if (rets != 2)
- {
- if (rets == -1)
- printf ("mq_receive failed with: %m\n");
- else
- printf ("mq_receive returned %zd != 2\n", rets);
- result = 1;
- }
- else if (memcmp (buf, "jk ", 3) != 0)
- {
- printf ("mq_receive returned buf \"%c%c%c\" != \"jk
\"\n",
- buf[0], buf[1], buf[2]);
- result = 1;
- }
-
- if (clock_gettime (CLOCK_REALTIME, &ts) == 0)
- ++ts.tv_sec;
- else
- {
- ts.tv_sec = time (NULL) + 1;
- ts.tv_nsec = 0;
- }
-
- if (mq_timedreceive (q2, buf, 2, NULL, &ts) != -1)
- {
- puts ("mq_timedreceive on empty queue unexpectedly succeeded");
- result = 1;
- }
- else if (errno != ETIMEDOUT)
- {
- printf ("mq_timedreceive on empty queue did not fail with "
- "ETIMEDOUT: %m\n");
- result = 1;
- }
-
- if (mq_unlink (name) != 0)
- {
- printf ("mq_unlink failed: %m\n");
- result = 1;
- }
-
- if (mq_close (q) != 0)
- {
- printf ("mq_close failed: %m\n");
- result = 1;
- }
-
- if (mq_close (q2) != 0)
- {
- printf ("mq_close failed: %m\n");
- result = 1;
- }
-
- if (mq_close (q3) != 0)
- {
- printf ("mq_close failed: %m\n");
- result = 1;
- }
-
- return result;
-}
-
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-mqueue5.c b/test/nptl/tst-mqueue5.c
deleted file mode 100644
index 58e2ebf..0000000
--- a/test/nptl/tst-mqueue5.c
+++ /dev/null
@@ -1,1013 +0,0 @@
-/* Test mq_notify.
- Copyright (C) 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <mqueue.h>
-#include <limits.h>
-#include <signal.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/mman.h>
-#include <sys/time.h>
-#include <sys/wait.h>
-#include <time.h>
-#include <unistd.h>
-#include "tst-mqueue.h"
-
-#define TIMEOUT 3
-
-#if _POSIX_THREADS
-# include <pthread.h>
-
-volatile int rtmin_cnt;
-volatile pid_t rtmin_pid;
-volatile uid_t rtmin_uid;
-volatile int rtmin_code;
-volatile union sigval rtmin_sigval;
-
-static void
-rtmin_handler (int sig, siginfo_t *info, void *ctx)
-{
- if (sig != SIGRTMIN)
- abort ();
- ++rtmin_cnt;
- rtmin_pid = info->si_pid;
- rtmin_uid = info->si_uid;
- rtmin_code = info->si_code;
- rtmin_sigval = info->si_value;
-}
-
-#define mqsend(q) (mqsend) (q, __LINE__)
-static int
-(mqsend) (mqd_t q, int line)
-{
- char c;
- if (mq_send (q, &c, 1, 1) != 0)
- {
- printf ("mq_send on line %d failed with: %m\n", line);
- return 1;
- }
- return 0;
-}
-
-#define mqrecv(q) (mqrecv) (q, __LINE__)
-static int
-(mqrecv) (mqd_t q, int line)
-{
- char c;
- ssize_t rets = TEMP_FAILURE_RETRY (mq_receive (q, &c, 1, NULL));
- if (rets != 1)
- {
- if (rets == -1)
- printf ("mq_receive on line %d failed with: %m\n", line);
- else
- printf ("mq_receive on line %d returned %zd != 1\n",
- line, rets);
- return 1;
- }
- return 0;
-}
-
-struct thr_data
-{
- const char *name;
- pthread_barrier_t *b3;
- mqd_t q;
-};
-
-static void *
-thr (void *arg)
-{
- pthread_barrier_t *b3 = ((struct thr_data *)arg)->b3;
- mqd_t q = ((struct thr_data *)arg)->q;
- const char *name = ((struct thr_data *)arg)->name;
- int result = 0;
-
- result |= mqrecv (q);
-
- (void) pthread_barrier_wait (b3);
-
- /* Child verifies SIGRTMIN has not been sent. */
-
- (void) pthread_barrier_wait (b3);
-
- /* Parent calls mqsend (q), which should trigger notification. */
-
- (void) pthread_barrier_wait (b3);
-
- if (rtmin_cnt != 2)
- {
- puts ("SIGRTMIN signal in child did not arrive");
- result = 1;
- }
- else if (rtmin_pid != getppid ()
- || rtmin_uid != getuid ()
- || rtmin_code != SI_MESGQ
- || rtmin_sigval.sival_int != 0xdeadbeef)
- {
- printf ("unexpected siginfo_t fields: pid %u (%u), uid %u (%u), code %d (%d),
si_int %d (%d)\n",
- rtmin_pid, getppid (), rtmin_uid, getuid (),
- rtmin_code, SI_MESGQ, rtmin_sigval.sival_int, 0xdeadbeef);
- result = 1;
- }
-
- struct sigevent ev;
- memset (&ev, 0x82, sizeof (ev));
- ev.sigev_notify = SIGEV_NONE;
- if (mq_notify (q, &ev) != 0)
- {
- printf ("mq_notify in thread (q, { SIGEV_NONE }) failed with: %m\n");
- result = 1;
- }
-
- if (mq_notify (q, NULL) != 0)
- {
- printf ("mq_notify in thread (q, NULL) failed with: %m\n");
- result = 1;
- }
-
- result |= mqrecv (q);
-
- (void) pthread_barrier_wait (b3);
-
- /* Child calls mq_notify (q, { SIGEV_SIGNAL }). */
-
- (void) pthread_barrier_wait (b3);
-
- if (mq_notify (q, NULL) != 0)
- {
- printf ("second mq_notify in thread (q, NULL) failed with: %m\n");
- result = 1;
- }
-
- (void) pthread_barrier_wait (b3);
-
- /* Parent calls mqsend (q), which should not trigger notification. */
-
- (void) pthread_barrier_wait (b3);
-
- /* Child verifies SIGRTMIN has not been received. */
- /* Child calls mq_notify (q, { SIGEV_SIGNAL }). */
-
- (void) pthread_barrier_wait (b3);
-
- mqd_t q4 = mq_open (name, O_RDONLY);
- if (q4 == (mqd_t) -1)
- {
- printf ("mq_open in thread failed with: %m\n");
- result = 1;
- }
-
- if (mq_notify (q4, NULL) != 0)
- {
- printf ("mq_notify in thread (q4, NULL) failed with: %m\n");
- result = 1;
- }
-
- if (mq_close (q4) != 0)
- {
- printf ("mq_close in thread failed with: %m\n");
- result = 1;
- }
-
- (void) pthread_barrier_wait (b3);
-
- /* Parent calls mqsend (q), which should not trigger notification. */
-
- (void) pthread_barrier_wait (b3);
-
- /* Child verifies SIGRTMIN has not been received. */
- /* Child calls mq_notify (q, { SIGEV_SIGNAL }). */
-
- (void) pthread_barrier_wait (b3);
-
- mqd_t q5 = mq_open (name, O_WRONLY);
- if (q5 == (mqd_t) -1)
- {
- printf ("mq_open O_WRONLY in thread failed with: %m\n");
- result = 1;
- }
-
- if (mq_notify (q5, NULL) != 0)
- {
- printf ("mq_notify in thread (q5, NULL) failed with: %m\n");
- result = 1;
- }
-
- if (mq_close (q5) != 0)
- {
- printf ("mq_close in thread failed with: %m\n");
- result = 1;
- }
-
- (void) pthread_barrier_wait (b3);
-
- /* Parent calls mqsend (q), which should not trigger notification. */
-
- (void) pthread_barrier_wait (b3);
-
- /* Child verifies SIGRTMIN has not been received. */
-
- return (void *) (long) result;
-}
-
-static void
-do_child (const char *name, pthread_barrier_t *b2, pthread_barrier_t *b3,
- mqd_t q)
-{
- int result = 0;
-
- struct sigevent ev;
- memset (&ev, 0x55, sizeof (ev));
- ev.sigev_notify = SIGEV_SIGNAL;
- ev.sigev_signo = SIGRTMIN;
- ev.sigev_value.sival_ptr = &ev;
- if (mq_notify (q, &ev) == 0)
- {
- puts ("first mq_notify in child (q, { SIGEV_SIGNAL }) unexpectedly
succeeded");
- result = 1;
- }
- else if (errno != EBUSY)
- {
- printf ("first mq_notify in child (q, { SIGEV_SIGNAL }) failed with:
%m\n");
- result = 1;
- }
-
- (void) pthread_barrier_wait (b2);
-
- /* Parent calls mqsend (q), which makes notification available. */
-
- (void) pthread_barrier_wait (b2);
-
- rtmin_cnt = 0;
-
- if (mq_notify (q, &ev) != 0)
- {
- printf ("second mq_notify in child (q, { SIGEV_SIGNAL }) failed with:
%m\n");
- result = 1;
- }
-
- if (rtmin_cnt != 0)
- {
- puts ("SIGRTMIN signal in child caught too early");
- result = 1;
- }
-
- (void) pthread_barrier_wait (b2);
-
- /* Parent unsuccessfully attempts to mq_notify. */
- /* Parent calls mqsend (q), which makes notification available
- and triggers a signal in the child. */
- /* Parent successfully calls mq_notify SIGEV_SIGNAL. */
-
- (void) pthread_barrier_wait (b2);
-
- if (rtmin_cnt != 1)
- {
- puts ("SIGRTMIN signal in child did not arrive");
- result = 1;
- }
- else if (rtmin_pid != getppid ()
- || rtmin_uid != getuid ()
- || rtmin_code != SI_MESGQ
- || rtmin_sigval.sival_ptr != &ev)
- {
- printf ("unexpected siginfo_t fields: pid %u (%u), uid %u (%u), code %d (%d),
si_ptr %p (%p)\n",
- rtmin_pid, getppid (), rtmin_uid, getuid (),
- rtmin_code, SI_MESGQ, rtmin_sigval.sival_ptr, &ev);
- result = 1;
- }
-
- result |= mqsend (q);
-
- (void) pthread_barrier_wait (b2);
-
- /* Parent verifies caught SIGRTMIN. */
-
- mqd_t q2 = mq_open (name, O_RDWR);
- if (q2 == (mqd_t) -1)
- {
- printf ("mq_open in child failed with: %m\n");
- result = 1;
- }
-
- (void) pthread_barrier_wait (b2);
-
- /* Parent mq_open's another mqd_t for the same queue (q3). */
-
- memset (&ev, 0x11, sizeof (ev));
- ev.sigev_notify = SIGEV_SIGNAL;
- ev.sigev_signo = SIGRTMIN;
- ev.sigev_value.sival_ptr = &ev;
- if (mq_notify (q2, &ev) != 0)
- {
- printf ("mq_notify in child (q2, { SIGEV_SIGNAL }) failed with: %m\n");
- result = 1;
- }
-
- (void) pthread_barrier_wait (b2);
-
- /* Parent unsuccessfully attempts to mq_notify { SIGEV_NONE } on q. */
-
- (void) pthread_barrier_wait (b2);
-
- if (mq_close (q2) != 0)
- {
- printf ("mq_close failed: %m\n");
- result = 1;
- }
-
- (void) pthread_barrier_wait (b2);
-
- /* Parent successfully calls mq_notify { SIGEV_NONE } on q3. */
-
- (void) pthread_barrier_wait (b2);
-
- memset (&ev, 0xbb, sizeof (ev));
- ev.sigev_notify = SIGEV_SIGNAL;
- ev.sigev_signo = SIGRTMIN;
- ev.sigev_value.sival_ptr = &b2;
- if (mq_notify (q, &ev) == 0)
- {
- puts ("third mq_notify in child (q, { SIGEV_SIGNAL }) unexpectedly
succeeded");
- result = 1;
- }
- else if (errno != EBUSY)
- {
- printf ("third mq_notify in child (q, { SIGEV_SIGNAL }) failed with:
%m\n");
- result = 1;
- }
-
- (void) pthread_barrier_wait (b2);
-
- /* Parent calls mq_close on q3, which makes the queue available again for
- notification. */
-
- (void) pthread_barrier_wait (b2);
-
- memset (&ev, 0x13, sizeof (ev));
- ev.sigev_notify = SIGEV_NONE;
- if (mq_notify (q, &ev) != 0)
- {
- printf ("mq_notify in child (q, { SIGEV_NONE }) failed with: %m\n");
- result = 1;
- }
-
- if (mq_notify (q, NULL) != 0)
- {
- printf ("mq_notify in child (q, NULL) failed with: %m\n");
- result = 1;
- }
-
- (void) pthread_barrier_wait (b2);
-
- struct thr_data thr_data = { .name = name, .b3 = b3, .q = q };
- pthread_t th;
- int ret = pthread_create (&th, NULL, thr, &thr_data);
- if (ret)
- {
- errno = ret;
- printf ("pthread_created failed with: %m\n");
- result = 1;
- }
-
- /* Wait till thr calls mq_receive on the empty queue q and blocks on it. */
- sleep (1);
-
- memset (&ev, 0x5f, sizeof (ev));
- ev.sigev_notify = SIGEV_SIGNAL;
- ev.sigev_signo = SIGRTMIN;
- ev.sigev_value.sival_int = 0xdeadbeef;
- if (mq_notify (q, &ev) != 0)
- {
- printf ("fourth mq_notify in child (q, { SIGEV_SIGNAL }) failed with:
%m\n");
- result = 1;
- }
-
- (void) pthread_barrier_wait (b2);
-
- /* Parent calls mqsend (q), which should wake up mqrecv (q)
- in the thread but no notification should be sent. */
-
- (void) pthread_barrier_wait (b3);
-
- if (rtmin_cnt != 1)
- {
- puts ("SIGRTMIN signal caught while thr was blocked on mq_receive");
- result = 1;
- }
-
- (void) pthread_barrier_wait (b3);
-
- /* Parent calls mqsend (q), which should trigger notification. */
-
- (void) pthread_barrier_wait (b3);
-
- /* Thread verifies SIGRTMIN has been received. */
- /* Thread calls mq_notify (q, { SIGEV_NONE }) to verify notification is now
- available for registration. */
- /* Thread calls mq_notify (q, NULL). */
-
- (void) pthread_barrier_wait (b3);
-
- memset (&ev, 0x6a, sizeof (ev));
- ev.sigev_notify = SIGEV_SIGNAL;
- ev.sigev_signo = SIGRTMIN;
- ev.sigev_value.sival_ptr = do_child;
- if (mq_notify (q, &ev) != 0)
- {
- printf ("fifth mq_notify in child (q, { SIGEV_SIGNAL }) failed with:
%m\n");
- result = 1;
- }
-
- (void) pthread_barrier_wait (b3);
-
- /* Thread calls mq_notify (q, NULL), which should unregister the above
- notification. */
-
- (void) pthread_barrier_wait (b3);
-
- /* Parent calls mqsend (q), which should not trigger notification. */
-
- (void) pthread_barrier_wait (b3);
-
- if (rtmin_cnt != 2)
- {
- puts ("SIGRTMIN signal caught while notification has been disabled");
- result = 1;
- }
-
- memset (&ev, 0x7b, sizeof (ev));
- ev.sigev_notify = SIGEV_SIGNAL;
- ev.sigev_signo = SIGRTMIN;
- ev.sigev_value.sival_ptr = thr;
- if (mq_notify (q, &ev) != 0)
- {
- printf ("sixth mq_notify in child (q, { SIGEV_SIGNAL }) failed with:
%m\n");
- result = 1;
- }
-
- (void) pthread_barrier_wait (b3);
-
- /* Thread opens a new O_RDONLY mqd_t (q4). */
- /* Thread calls mq_notify (q4, NULL), which should unregister the above
- notification. */
- /* Thread calls mq_close (q4). */
-
- (void) pthread_barrier_wait (b3);
-
- /* Parent calls mqsend (q), which should not trigger notification. */
-
- (void) pthread_barrier_wait (b3);
-
- if (rtmin_cnt != 2)
- {
- puts ("SIGRTMIN signal caught while notification has been disabled");
- result = 1;
- }
-
- memset (&ev, 0xe1, sizeof (ev));
- ev.sigev_notify = SIGEV_SIGNAL;
- ev.sigev_signo = SIGRTMIN;
- ev.sigev_value.sival_int = 127;
- if (mq_notify (q, &ev) != 0)
- {
- printf ("seventh mq_notify in child (q, { SIGEV_SIGNAL }) failed with:
%m\n");
- result = 1;
- }
-
- (void) pthread_barrier_wait (b3);
-
- /* Thread opens a new O_WRONLY mqd_t (q5). */
- /* Thread calls mq_notify (q5, NULL), which should unregister the above
- notification. */
- /* Thread calls mq_close (q5). */
-
- (void) pthread_barrier_wait (b3);
-
- /* Parent calls mqsend (q), which should not trigger notification. */
-
- (void) pthread_barrier_wait (b3);
-
- if (rtmin_cnt != 2)
- {
- puts ("SIGRTMIN signal caught while notification has been disabled");
- result = 1;
- }
-
- void *thr_ret;
- ret = pthread_join (th, &thr_ret);
- if (ret)
- {
- errno = ret;
- printf ("pthread_join failed: %m\n");
- result = 1;
- }
- else if (thr_ret)
- result = 1;
-
- if (mq_close (q) != 0)
- {
- printf ("mq_close failed: %m\n");
- result = 1;
- }
-
- exit (result);
-}
-
-#define TEST_FUNCTION do_test ()
-static int
-do_test (void)
-{
- int result = 0;
-
- char tmpfname[] = "/tmp/tst-mqueue5-barrier.XXXXXX";
- int fd = mkstemp (tmpfname);
- if (fd == -1)
- {
- printf ("cannot open temporary file: %m\n");
- return 1;
- }
-
- /* Make sure it is always removed. */
- unlink (tmpfname);
-
- /* Create one page of data. */
- size_t ps = sysconf (_SC_PAGESIZE);
- char data[ps];
- memset (data, '\0', ps);
-
- /* Write the data to the file. */
- if (write (fd, data, ps) != (ssize_t) ps)
- {
- puts ("short write");
- return 1;
- }
-
- void *mem = mmap (NULL, ps, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
- if (mem == MAP_FAILED)
- {
- printf ("mmap failed: %m\n");
- return 1;
- }
-
- pthread_barrier_t *b2;
- b2 = (pthread_barrier_t *) (((uintptr_t) mem + __alignof (pthread_barrier_t))
- & ~(__alignof (pthread_barrier_t) - 1));
-
- pthread_barrier_t *b3;
- b3 = b2 + 1;
-
- pthread_barrierattr_t a;
- if (pthread_barrierattr_init (&a) != 0)
- {
- puts ("barrierattr_init failed");
- return 1;
- }
-
- if (pthread_barrierattr_setpshared (&a, PTHREAD_PROCESS_SHARED) != 0)
- {
- puts ("barrierattr_setpshared failed, could not test");
- return 0;
- }
-
- if (pthread_barrier_init (b2, &a, 2) != 0)
- {
- puts ("barrier_init failed");
- return 1;
- }
-
- if (pthread_barrier_init (b3, &a, 3) != 0)
- {
- puts ("barrier_init failed");
- return 1;
- }
-
- if (pthread_barrierattr_destroy (&a) != 0)
- {
- puts ("barrierattr_destroy failed");
- return 1;
- }
-
- char name[sizeof "/tst-mqueue5-" + sizeof (pid_t) * 3];
- snprintf (name, sizeof (name), "/tst-mqueue5-%u", getpid ());
-
- struct mq_attr attr = { .mq_maxmsg = 1, .mq_msgsize = 1 };
- mqd_t q = mq_open (name, O_CREAT | O_EXCL | O_RDWR, 0600, &attr);
-
- if (q == (mqd_t) -1)
- {
- printf ("mq_open failed with: %m\n");
- return result;
- }
- else
- add_temp_mq (name);
-
- struct sigevent ev;
- memset (&ev, 0xaa, sizeof (ev));
- ev.sigev_notify = SIGEV_NONE;
- if (mq_notify (q, &ev) != 0)
- {
- printf ("mq_notify (q, { SIGEV_NONE }) failed with: %m\n");
- result = 1;
- }
-
- if (mq_notify (q, &ev) == 0)
- {
- puts ("second mq_notify (q, { SIGEV_NONE }) unexpectedly succeeded");
- result = 1;
- }
- else if (errno != EBUSY)
- {
- printf ("second mq_notify (q, { SIGEV_NONE }) failed with: %m\n");
- result = 1;
- }
-
- result |= mqsend (q);
-
- if (mq_notify (q, &ev) != 0)
- {
- printf ("third mq_notify (q, { SIGEV_NONE }) failed with: %m\n");
- result = 1;
- }
-
- result |= mqrecv (q);
-
- if (mq_notify (q, NULL) != 0)
- {
- printf ("mq_notify (q, NULL) failed with: %m\n");
- result = 1;
- }
-
- if (mq_notify (q, NULL) != 0)
- {
- /* Implementation-defined behaviour, so don't fail,
- just inform. */
- printf ("second mq_notify (q, NULL) failed with: %m\n");
- }
-
- struct sigaction sa = { .sa_sigaction = rtmin_handler,
- .sa_flags = SA_SIGINFO };
- sigemptyset (&sa.sa_mask);
- sigaction (SIGRTMIN, &sa, NULL);
-
- memset (&ev, 0x55, sizeof (ev));
- ev.sigev_notify = SIGEV_SIGNAL;
- ev.sigev_signo = SIGRTMIN;
- ev.sigev_value.sival_int = 26;
- if (mq_notify (q, &ev) != 0)
- {
- printf ("mq_notify (q, { SIGEV_SIGNAL }) failed with: %m\n");
- result = 1;
- }
-
- ev.sigev_value.sival_ptr = &ev;
- if (mq_notify (q, &ev) == 0)
- {
- puts ("second mq_notify (q, { SIGEV_SIGNAL }) unexpectedly succeeded");
- result = 1;
- }
- else if (errno != EBUSY)
- {
- printf ("second mq_notify (q, { SIGEV_SIGNAL }) failed with: %m\n");
- result = 1;
- }
-
- if (rtmin_cnt != 0)
- {
- puts ("SIGRTMIN signal caught too early");
- result = 1;
- }
-
- result |= mqsend (q);
-
- if (rtmin_cnt != 1)
- {
- puts ("SIGRTMIN signal did not arrive");
- result = 1;
- }
- else if (rtmin_pid != getpid ()
- || rtmin_uid != getuid ()
- || rtmin_code != SI_MESGQ
- || rtmin_sigval.sival_int != 26)
- {
- printf ("unexpected siginfo_t fields: pid %u (%u), uid %u (%u), code %d (%d),
si_int %d (26)\n",
- rtmin_pid, getpid (), rtmin_uid, getuid (),
- rtmin_code, SI_MESGQ, rtmin_sigval.sival_int);
- result = 1;
- }
-
- ev.sigev_value.sival_int = 75;
- if (mq_notify (q, &ev) != 0)
- {
- printf ("third mq_notify (q, { SIGEV_SIGNAL }) failed with: %m\n");
- result = 1;
- }
-
- result |= mqrecv (q);
-
- if (mq_notify (q, NULL) != 0)
- {
- printf ("mq_notify (q, NULL) failed with: %m\n");
- result = 1;
- }
-
- memset (&ev, 0x33, sizeof (ev));
- ev.sigev_notify = SIGEV_NONE;
- if (mq_notify (q, &ev) != 0)
- {
- printf ("fourth mq_notify (q, { SIGEV_NONE }) failed with: %m\n");
- result = 1;
- }
-
- pid_t pid = fork ();
- if (pid == -1)
- {
- printf ("fork () failed: %m\n");
- mq_unlink (name);
- return 1;
- }
-
- if (pid == 0)
- do_child (name, b2, b3, q);
-
- /* Child unsuccessfully attempts to mq_notify. */
-
- (void) pthread_barrier_wait (b2);
-
- result |= mqsend (q);
-
- (void) pthread_barrier_wait (b2);
-
- /* Child successfully calls mq_notify SIGEV_SIGNAL now. */
-
- result |= mqrecv (q);
-
- (void) pthread_barrier_wait (b2);
-
- memset (&ev, 0xbb, sizeof (ev));
- ev.sigev_notify = SIGEV_SIGNAL;
- ev.sigev_signo = SIGRTMIN;
- ev.sigev_value.sival_int = 15;
- if (mq_notify (q, &ev) == 0)
- {
- puts ("fourth mq_notify (q, { SIGEV_SIGNAL }) unexpectedly succeeded");
- result = 1;
- }
- else if (errno != EBUSY)
- {
- printf ("fourth mq_notify (q, { SIGEV_SIGNAL }) failed with: %m\n");
- result = 1;
- }
-
- result |= mqsend (q);
-
- if (mq_notify (q, &ev) != 0)
- {
- printf ("fifth mq_notify (q, { SIGEV_SIGNAL }) failed with: %m\n");
- result = 1;
- }
-
- if (rtmin_cnt != 1)
- {
- puts ("SIGRTMIN signal caught too early");
- result = 1;
- }
-
- result |= mqrecv (q);
-
- (void) pthread_barrier_wait (b2);
-
- /* Child verifies caught SIGRTMIN signal. */
- /* Child calls mq_send (q) which triggers SIGRTMIN signal here. */
-
- (void) pthread_barrier_wait (b2);
-
- /* Child mq_open's another mqd_t for the same queue (q2). */
-
- if (rtmin_cnt != 2)
- {
- puts ("SIGRTMIN signal did not arrive");
- result = 1;
- }
- else if (rtmin_pid != pid
- || rtmin_uid != getuid ()
- || rtmin_code != SI_MESGQ
- || rtmin_sigval.sival_int != 15)
- {
- printf ("unexpected siginfo_t fields: pid %u (%u), uid %u (%u), code %d (%d),
si_int %d (15)\n",
- rtmin_pid, pid, rtmin_uid, getuid (),
- rtmin_code, SI_MESGQ, rtmin_sigval.sival_int);
- result = 1;
- }
-
- result |= mqrecv (q);
-
- (void) pthread_barrier_wait (b2);
-
- /* Child successfully calls mq_notify { SIGEV_SIGNAL } on q2. */
-
- (void) pthread_barrier_wait (b2);
-
- memset (&ev, 0xbb, sizeof (ev));
- ev.sigev_notify = SIGEV_NONE;
- if (mq_notify (q, &ev) == 0)
- {
- puts ("fifth mq_notify (q, { SIGEV_NONE }) unexpectedly succeeded");
- result = 1;
- }
- else if (errno != EBUSY)
- {
- printf ("fifth mq_notify (q, { SIGEV_NONE }) failed with: %m\n");
- result = 1;
- }
-
- (void) pthread_barrier_wait (b2);
-
- /* Child calls mq_close on q2, which makes the queue available again for
- notification. */
-
- mqd_t q3 = mq_open (name, O_RDWR);
- if (q3 == (mqd_t) -1)
- {
- printf ("mq_open q3 in parent failed with: %m\n");
- result = 1;
- }
-
- (void) pthread_barrier_wait (b2);
-
- memset (&ev, 0x12, sizeof (ev));
- ev.sigev_notify = SIGEV_NONE;
- if (mq_notify (q3, &ev) != 0)
- {
- printf ("mq_notify (q3, { SIGEV_NONE }) failed with: %m\n");
- result = 1;
- }
-
- (void) pthread_barrier_wait (b2);
-
- /* Child unsuccessfully attempts to mq_notify { SIGEV_SIGNAL } on q. */
-
- (void) pthread_barrier_wait (b2);
-
- if (mq_close (q3) != 0)
- {
- printf ("mq_close failed: %m\n");
- result = 1;
- }
-
- (void) pthread_barrier_wait (b2);
-
- /* Child successfully calls mq_notify { SIGEV_NONE } on q. */
- /* Child successfully calls mq_notify NULL on q. */
-
- (void) pthread_barrier_wait (b2);
-
- /* Child creates new thread. */
- /* Thread blocks on mqrecv (q). */
- /* Child sleeps for 1sec so that thread has time to reach that point. */
- /* Child successfully calls mq_notify { SIGEV_SIGNAL } on q. */
-
- (void) pthread_barrier_wait (b2);
-
- result |= mqsend (q);
-
- (void) pthread_barrier_wait (b3);
-
- /* Child verifies SIGRTMIN has not been sent. */
-
- (void) pthread_barrier_wait (b3);
-
- result |= mqsend (q);
-
- (void) pthread_barrier_wait (b3);
-
- /* Thread verifies SIGRTMIN has been caught. */
- /* Thread calls mq_notify (q, { SIGEV_NONE }) to verify notification is now
- available for registration. */
- /* Thread calls mq_notify (q, NULL). */
-
- (void) pthread_barrier_wait (b3);
-
- /* Child calls mq_notify (q, { SIGEV_SIGNAL }). */
-
- (void) pthread_barrier_wait (b3);
-
- /* Thread calls mq_notify (q, NULL). */
-
- (void) pthread_barrier_wait (b3);
-
- result |= mqsend (q);
- result |= mqrecv (q);
-
- (void) pthread_barrier_wait (b3);
-
- /* Child verifies SIGRTMIN has not been sent. */
- /* Child calls mq_notify (q, { SIGEV_SIGNAL }). */
-
- (void) pthread_barrier_wait (b3);
-
- /* Thread opens a new O_RDONLY mqd_t (q4). */
- /* Thread calls mq_notify (q4, NULL). */
- /* Thread calls mq_close (q4). */
-
- (void) pthread_barrier_wait (b3);
-
- result |= mqsend (q);
- result |= mqrecv (q);
-
- (void) pthread_barrier_wait (b3);
-
- /* Child verifies SIGRTMIN has not been sent. */
- /* Child calls mq_notify (q, { SIGEV_SIGNAL }). */
-
- (void) pthread_barrier_wait (b3);
-
- /* Thread opens a new O_WRONLY mqd_t (q5). */
- /* Thread calls mq_notify (q5, NULL). */
- /* Thread calls mq_close (q5). */
-
- (void) pthread_barrier_wait (b3);
-
- result |= mqsend (q);
- result |= mqrecv (q);
-
- (void) pthread_barrier_wait (b3);
-
- /* Child verifies SIGRTMIN has not been sent. */
-
- int status;
- if (TEMP_FAILURE_RETRY (waitpid (pid, &status, 0)) != pid)
- {
- puts ("waitpid failed");
- kill (pid, SIGKILL);
- result = 1;
- }
- else if (!WIFEXITED (status) || WEXITSTATUS (status))
- {
- printf ("child failed with status %d\n", status);
- result = 1;
- }
-
- if (mq_unlink (name) != 0)
- {
- printf ("mq_unlink failed: %m\n");
- result = 1;
- }
-
- if (mq_close (q) != 0)
- {
- printf ("mq_close failed: %m\n");
- result = 1;
- }
-
- if (mq_notify (q, NULL) == 0)
- {
- puts ("mq_notify on closed mqd_t unexpectedly succeeded");
- result = 1;
- }
- else if (errno != EBADF)
- {
- printf ("mq_notify on closed mqd_t did not fail with EBADF: %m\n");
- result = 1;
- }
-
- memset (&ev, 0x55, sizeof (ev));
- ev.sigev_notify = SIGEV_NONE;
- if (mq_notify (q, &ev) == 0)
- {
- puts ("mq_notify on closed mqd_t unexpectedly succeeded");
- result = 1;
- }
- else if (errno != EBADF)
- {
- printf ("mq_notify on closed mqd_t did not fail with EBADF: %m\n");
- result = 1;
- }
-
- return result;
-}
-#else
-# define TEST_FUNCTION 0
-#endif
-
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-mqueue6.c b/test/nptl/tst-mqueue6.c
deleted file mode 100644
index 8d84c19..0000000
--- a/test/nptl/tst-mqueue6.c
+++ /dev/null
@@ -1,304 +0,0 @@
-/* Test mq_notify.
- Copyright (C) 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <mqueue.h>
-#include <limits.h>
-#include <signal.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/mman.h>
-#include <sys/time.h>
-#include <sys/wait.h>
-#include <time.h>
-#include <unistd.h>
-#include "tst-mqueue.h"
-
-#if _POSIX_THREADS
-# include <pthread.h>
-
-# define mqsend(q) (mqsend) (q, __LINE__)
-static int
-(mqsend) (mqd_t q, int line)
-{
- char c;
- if (mq_send (q, &c, 1, 1) != 0)
- {
- printf ("mq_send on line %d failed with: %m\n", line);
- return 1;
- }
- return 0;
-}
-
-# define mqrecv(q) (mqrecv) (q, __LINE__)
-static int
-(mqrecv) (mqd_t q, int line)
-{
- char c;
- ssize_t rets = TEMP_FAILURE_RETRY (mq_receive (q, &c, 1, NULL));
- if (rets != 1)
- {
- if (rets == -1)
- printf ("mq_receive on line %d failed with: %m\n", line);
- else
- printf ("mq_receive on line %d returned %zd != 1\n",
- line, rets);
- return 1;
- }
- return 0;
-}
-
-volatile int fct_cnt, fct_err;
-size_t fct_guardsize;
-
-static void
-fct (union sigval s)
-{
- mqd_t q = *(mqd_t *) s.sival_ptr;
-
- pthread_attr_t nattr;
- int ret = pthread_getattr_np (pthread_self (), &nattr);
- if (ret)
- {
- errno = ret;
- printf ("pthread_getattr_np failed: %m\n");
- fct_err = 1;
- }
- else
- {
- ret = pthread_attr_getguardsize (&nattr, &fct_guardsize);
- if (ret)
- {
- errno = ret;
- printf ("pthread_attr_getguardsize failed: %m\n");
- fct_err = 1;
- }
- if (pthread_attr_destroy (&nattr) != 0)
- {
- puts ("pthread_attr_destroy failed");
- fct_err = 1;
- }
- }
-
- ++fct_cnt;
- fct_err |= mqsend (q);
-}
-
-# define TEST_FUNCTION do_test ()
-static int
-do_test (void)
-{
- int result = 0;
-
- char name[sizeof "/tst-mqueue6-" + sizeof (pid_t) * 3];
- snprintf (name, sizeof (name), "/tst-mqueue6-%u", getpid ());
-
- struct mq_attr attr = { .mq_maxmsg = 1, .mq_msgsize = 1 };
- mqd_t q = mq_open (name, O_CREAT | O_EXCL | O_RDWR, 0600, &attr);
-
- if (q == (mqd_t) -1)
- {
- printf ("mq_open failed with: %m\n");
- return result;
- }
- else
- add_temp_mq (name);
-
- pthread_attr_t nattr;
- if (pthread_attr_init (&nattr)
- || pthread_attr_setguardsize (&nattr, 0))
- {
- puts ("pthread_attr_t setup failed");
- result = 1;
- }
-
- fct_guardsize = 1;
-
- struct sigevent ev;
- memset (&ev, 0xaa, sizeof (ev));
- ev.sigev_notify = SIGEV_THREAD;
- ev.sigev_notify_function = fct;
- ev.sigev_notify_attributes = &nattr;
- ev.sigev_value.sival_ptr = &q;
- if (mq_notify (q, &ev) != 0)
- {
- printf ("mq_notify (q, { SIGEV_THREAD }) failed with: %m\n");
- result = 1;
- }
-
- size_t ps = sysconf (_SC_PAGESIZE);
- if (pthread_attr_setguardsize (&nattr, 32 * ps))
- {
- puts ("pthread_attr_t setup failed");
- result = 1;
- }
-
- if (mq_notify (q, &ev) == 0)
- {
- puts ("second mq_notify (q, { SIGEV_NONE }) unexpectedly succeeded");
- result = 1;
- }
- else if (errno != EBUSY)
- {
- printf ("second mq_notify (q, { SIGEV_NONE }) failed with: %m\n");
- result = 1;
- }
-
- if (fct_cnt != 0)
- {
- printf ("fct called too early (%d on %d)\n", fct_cnt, __LINE__);
- result = 1;
- }
-
- result |= mqsend (q);
-
- result |= mqrecv (q);
- result |= mqrecv (q);
-
- if (fct_cnt != 1)
- {
- printf ("fct not called (%d on %d)\n", fct_cnt, __LINE__);
- result = 1;
- }
- else if (fct_guardsize != 0)
- {
- printf ("fct_guardsize %zd != 0\n", fct_guardsize);
- result = 1;
- }
-
- if (mq_notify (q, &ev) != 0)
- {
- printf ("third mq_notify (q, { SIGEV_NONE }) failed with: %m\n");
- result = 1;
- }
-
- if (mq_notify (q, NULL) != 0)
- {
- printf ("mq_notify (q, NULL) failed with: %m\n");
- result = 1;
- }
-
- memset (&ev, 0x11, sizeof (ev));
- ev.sigev_notify = SIGEV_THREAD;
- ev.sigev_notify_function = fct;
- ev.sigev_notify_attributes = &nattr;
- ev.sigev_value.sival_ptr = &q;
- if (mq_notify (q, &ev) != 0)
- {
- printf ("mq_notify (q, { SIGEV_THREAD }) failed with: %m\n");
- result = 1;
- }
-
- if (pthread_attr_setguardsize (&nattr, 0))
- {
- puts ("pthread_attr_t setup failed");
- result = 1;
- }
-
- if (mq_notify (q, &ev) == 0)
- {
- puts ("second mq_notify (q, { SIGEV_NONE }) unexpectedly succeeded");
- result = 1;
- }
- else if (errno != EBUSY)
- {
- printf ("second mq_notify (q, { SIGEV_NONE }) failed with: %m\n");
- result = 1;
- }
-
- if (fct_cnt != 1)
- {
- printf ("fct called too early (%d on %d)\n", fct_cnt, __LINE__);
- result = 1;
- }
-
- result |= mqsend (q);
-
- result |= mqrecv (q);
- result |= mqrecv (q);
-
- if (fct_cnt != 2)
- {
- printf ("fct not called (%d on %d)\n", fct_cnt, __LINE__);
- result = 1;
- }
- else if (fct_guardsize != 32 * ps)
- {
- printf ("fct_guardsize %zd != %zd\n", fct_guardsize, 32 * ps);
- result = 1;
- }
-
- if (mq_notify (q, &ev) != 0)
- {
- printf ("third mq_notify (q, { SIGEV_NONE }) failed with: %m\n");
- result = 1;
- }
-
- if (mq_notify (q, NULL) != 0)
- {
- printf ("mq_notify (q, NULL) failed with: %m\n");
- result = 1;
- }
-
- if (pthread_attr_destroy (&nattr) != 0)
- {
- puts ("pthread_attr_destroy failed");
- result = 1;
- }
-
- if (mq_unlink (name) != 0)
- {
- printf ("mq_unlink failed: %m\n");
- result = 1;
- }
-
- if (mq_close (q) != 0)
- {
- printf ("mq_close failed: %m\n");
- result = 1;
- }
-
- memset (&ev, 0x55, sizeof (ev));
- ev.sigev_notify = SIGEV_THREAD;
- ev.sigev_notify_function = fct;
- ev.sigev_notify_attributes = NULL;
- ev.sigev_value.sival_int = 0;
- if (mq_notify (q, &ev) == 0)
- {
- puts ("mq_notify on closed mqd_t unexpectedly succeeded");
- result = 1;
- }
- else if (errno != EBADF)
- {
- printf ("mq_notify on closed mqd_t did not fail with EBADF: %m\n");
- result = 1;
- }
-
- if (fct_err)
- result = 1;
- return result;
-}
-#else
-# define TEST_FUNCTION 0
-#endif
-
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-mqueue7.c b/test/nptl/tst-mqueue7.c
deleted file mode 100644
index 1892f95..0000000
--- a/test/nptl/tst-mqueue7.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/* Test all open message queues descriptors are closed during exec*.
- Copyright (C) 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <mqueue.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/wait.h>
-#include <time.h>
-#include <unistd.h>
-
-#define OPT_AFTEREXEC 20000
-
-static mqd_t after_exec = (mqd_t) -1;
-
-#define CMDLINE_OPTIONS \
- "a:"
-
-#define CMDLINE_PROCESS \
- case 'a': \
- after_exec = (mqd_t) strtoul (optarg, NULL, 0); \
- break;
-
-static int
-do_after_exec (void)
-{
- int result = 0;
-
- struct mq_attr attr;
- if (mq_getattr (after_exec, &attr) == 0)
- {
- puts ("mq_getattr after exec unexpectedly succeeded");
- result = 1;
- }
- else if (errno != EBADF)
- {
- printf ("mq_getattr after exec did not fail with EBADF: %m\n");
- result = 1;
- }
-
- return result;
-}
-
-static int
-do_test (int argc, char **argv)
-{
- if (after_exec != (mqd_t) -1)
- return do_after_exec ();
-
- char name[sizeof "/tst-mqueue7-" + sizeof (pid_t) * 3];
- snprintf (name, sizeof (name), "/tst-mqueue7-%u", getpid ());
-
- struct mq_attr attr = { .mq_maxmsg = 10, .mq_msgsize = 1 };
- mqd_t q = mq_open (name, O_CREAT | O_EXCL | O_WRONLY, 0600, &attr);
-
- if (q == (mqd_t) -1)
- {
- printf ("mq_open failed with: %m\n");
- return 0;
- }
- else if (mq_unlink (name) != 0)
- {
- printf ("mq_unlink failed with: %m\n");
- return 1;
- }
-
- if (mq_getattr (q, &attr) != 0)
- {
- printf ("mq_getattr failed: %m\n");
- return 1;
- }
-
- char after_exec_arg[sizeof "-a=0x" + sizeof (long) * 3];
- snprintf (after_exec_arg, sizeof (after_exec_arg),
- "-a=0x%lx", (long) q);
-
- const char *newargv[argc + 2];
- for (int i = 1; i < argc; ++i)
- newargv[i - 1] = argv[i];
- newargv[argc - 1] = "-d";
- newargv[argc] = after_exec_arg;
- newargv[argc + 1] = NULL;
-
- /* Verify that exec* has the effect of mq_close (q). */
- execv (newargv[0], (char * const *) newargv);
- printf ("execv failed: %m\n");
- return 1;
-}
-
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-mqueue8.c b/test/nptl/tst-mqueue8.c
deleted file mode 100644
index b80e4e5..0000000
--- a/test/nptl/tst-mqueue8.c
+++ /dev/null
@@ -1,265 +0,0 @@
-/* Copyright (C) 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <mqueue.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#if _POSIX_THREADS
-# include <pthread.h>
-
-static pthread_barrier_t b;
-
-/* Cleanup handling test. */
-static int cl_called;
-
-static void
-cl (void *arg)
-{
- ++cl_called;
-}
-
-#define TF_MQ_RECEIVE 0L
-#define TF_MQ_TIMEDRECEIVE 1L
-#define TF_MQ_SEND 2L
-#define TF_MQ_TIMEDSEND 3L
-
-static const char *names[]
- = { "mq_receive", "mq_timedreceive", "mq_send",
"mq_timedsend" };
-
-static mqd_t q;
-static struct timespec never;
-
-static void *
-tf (void *arg)
-{
- int r = pthread_barrier_wait (&b);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("tf: barrier_wait failed");
- exit (1);
- }
-
- pthread_cleanup_push (cl, NULL);
-
- char c = ' ';
-
- switch ((long) arg)
- {
- case TF_MQ_SEND:
- TEMP_FAILURE_RETRY (mq_send (q, &c, 1, 1));
- break;
- case TF_MQ_TIMEDSEND:
- TEMP_FAILURE_RETRY (mq_timedsend (q, &c, 1, 1, &never));
- break;
- case TF_MQ_RECEIVE:
- TEMP_FAILURE_RETRY (mq_receive (q, &c, 1, NULL));
- break;
- case TF_MQ_TIMEDRECEIVE:
- TEMP_FAILURE_RETRY (mq_timedreceive (q, &c, 1, NULL, &never));
- break;
- }
-
- pthread_cleanup_pop (0);
-
- printf ("tf: %s returned\n", names[(long) arg]);
-
- exit (1);
-}
-
-#define TEST_FUNCTION do_test ()
-static int
-do_test (void)
-{
- char name[sizeof "/tst-mqueue8-" + sizeof (pid_t) * 3];
- snprintf (name, sizeof (name), "/tst-mqueue8-%u", getpid ());
-
- struct mq_attr attr = { .mq_maxmsg = 1, .mq_msgsize = 1 };
- q = mq_open (name, O_CREAT | O_EXCL | O_RDWR, 0600, &attr);
-
- if (q == (mqd_t) -1)
- {
- printf ("mq_open failed with: %m\n");
- return 0;
- }
-
- if (mq_unlink (name) != 0)
- {
- printf ("mq_unlink failed with: %m\n");
- return 1;
- }
-
- if (pthread_barrier_init (&b, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- return 1;
- }
-
- if (clock_gettime (CLOCK_REALTIME, &never) == 0)
- never.tv_sec += 100;
- else
- {
- never.tv_sec = time (NULL) + 100;
- never.tv_nsec = 0;
- }
-
- int result = 0;
- for (long l = TF_MQ_RECEIVE; l <= TF_MQ_TIMEDSEND; ++l)
- {
- cl_called = 0;
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, (void *) l) != 0)
- {
- printf ("1st %s create failed\n", names[l]);
- result = 1;
- continue;
- }
-
- int r = pthread_barrier_wait (&b);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- result = 1;
- continue;
- }
-
- struct timespec ts = { .tv_sec = 0, .tv_nsec = 100000000 };
- while (nanosleep (&ts, &ts) != 0)
- continue;
-
- printf ("going to cancel %s in-time\n", names[l]);
- if (pthread_cancel (th) != 0)
- {
- printf ("1st cancel of %s failed\n", names[l]);
- result = 1;
- continue;
- }
-
- void *status;
- if (pthread_join (th, &status) != 0)
- {
- printf ("1st join of %s failed\n", names[l]);
- result = 1;
- continue;
- }
- if (status != PTHREAD_CANCELED)
- {
- printf ("1st %s thread not canceled\n", names[l]);
- result = 1;
- continue;
- }
-
- if (cl_called == 0)
- {
- printf ("%s cleanup handler not called\n", names[l]);
- result = 1;
- continue;
- }
- if (cl_called > 1)
- {
- printf ("%s cleanup handler called more than once\n", names[l]);
- result = 1;
- continue;
- }
-
- printf ("in-time %s cancellation succeeded\n", names[l]);
-
- cl_called = 0;
-
- if (pthread_create (&th, NULL, tf, (void *) l) != 0)
- {
- printf ("2nd %s create failed\n", names[l]);
- result = 1;
- continue;
- }
-
- printf ("going to cancel %s early\n", names[l]);
- if (pthread_cancel (th) != 0)
- {
- printf ("2nd cancel of %s failed\n", names[l]);
- result = 1;
- continue;
- }
-
- r = pthread_barrier_wait (&b);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- result = 1;
- continue;
- }
-
- if (pthread_join (th, &status) != 0)
- {
- printf ("2nd join of %s failed\n", names[l]);
- result = 1;
- continue;
- }
- if (status != PTHREAD_CANCELED)
- {
- printf ("2nd %s thread not canceled\n", names[l]);
- result = 1;
- continue;
- }
-
- if (cl_called == 0)
- {
- printf ("%s cleanup handler not called\n", names[l]);
- result = 1;
- continue;
- }
- if (cl_called > 1)
- {
- printf ("%s cleanup handler called more than once\n", names[l]);
- result = 1;
- continue;
- }
-
- printf ("early %s cancellation succeeded\n", names[l]);
-
- if (l == TF_MQ_TIMEDRECEIVE)
- {
- /* mq_receive and mq_timedreceive are tested on empty mq.
- For mq_send and mq_timedsend we need to make it full.
- If this fails, there is no point in doing further testing. */
- char c = ' ';
- if (mq_send (q, &c, 1, 1) != 0)
- {
- printf ("mq_send failed: %m\n");
- result = 1;
- break;
- }
- }
- }
-
- if (mq_close (q) != 0)
- {
- printf ("mq_close failed: %m\n");
- result = 1;
- }
-
- return result;
-}
-#else
-# define TEST_FUNCTION 0
-#endif
-
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-mqueue9.c b/test/nptl/tst-mqueue9.c
deleted file mode 100644
index 7098b84..0000000
--- a/test/nptl/tst-mqueue9.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/* Copyright (C) 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <mqueue.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include "tst-mqueue.h"
-
-#define TEST_FUNCTION do_test ()
-static int
-do_test (void)
-{
- if (geteuid () != 0)
- {
- puts ("this test requires root");
- return 0;
- }
-
- char name[sizeof "/tst-mqueue9-" + sizeof (pid_t) * 3];
- snprintf (name, sizeof (name), "/tst-mqueue9-%u", getpid ());
-
- struct mq_attr attr = { .mq_maxmsg = 1, .mq_msgsize = 1 };
- mqd_t q = mq_open (name, O_CREAT | O_EXCL | O_RDWR, 0600, &attr);
-
- if (q == (mqd_t) -1)
- {
- printf ("mq_open failed with: %m\n");
- return 0;
- }
- else
- add_temp_mq (name);
-
- if (seteuid (1) != 0)
- {
- printf ("failed to seteuid (1): %m\n");
- mq_unlink (name);
- return 0;
- }
-
- int result = 0;
- if (mq_unlink (name) == 0)
- {
- puts ("mq_unlink unexpectedly succeeded");
- result = 1;
- }
- else if (errno != EACCES)
- {
- printf ("mq_unlink did not fail with EACCES: %m\n");
- result = 1;;
- }
-
- if (seteuid (0) != 0)
- {
- printf ("failed to seteuid (0): %m\n");
- result = 1;
- }
-
- if (mq_unlink (name) != 0)
- {
- printf ("mq_unlink failed with: %m\n");
- result = 1;
- }
-
- if (mq_close (q) != 0)
- {
- printf ("mq_close failed with: %m\n");
- result = 1;
- }
-
- return result;
-}
-
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-mutex1.c b/test/nptl/tst-mutex1.c
deleted file mode 100644
index 0f3a98c..0000000
--- a/test/nptl/tst-mutex1.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-
-
-static int
-do_test (void)
-{
- pthread_mutex_t m;
-
- if (pthread_mutex_init (&m, NULL) != 0)
- {
- puts ("mutex_init failed");
- return 1;
- }
-
- if (pthread_mutex_lock (&m) != 0)
- {
- puts ("mutex_lock failed");
- return 1;
- }
-
- if (pthread_mutex_unlock (&m) != 0)
- {
- puts ("mutex_unlock failed");
- return 1;
- }
-
- if (pthread_mutex_destroy (&m) != 0)
- {
- puts ("mutex_destroy failed");
- return 1;
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-mutex2.c b/test/nptl/tst-mutex2.c
deleted file mode 100644
index 707afe9..0000000
--- a/test/nptl/tst-mutex2.c
+++ /dev/null
@@ -1,222 +0,0 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static pthread_mutex_t m;
-static pthread_barrier_t b;
-
-
-static void *
-tf (void *arg)
-{
- int e = pthread_mutex_unlock (&m);
- if (e == 0)
- {
- puts ("child: 1st mutex_unlock succeeded");
- exit (1);
- }
- else if (e != EPERM)
- {
- puts ("child: 1st mutex_unlock error != EPERM");
- exit (1);
- }
-
- e = pthread_mutex_trylock (&m);
- if (e == 0)
- {
- puts ("child: 1st trylock suceeded");
- exit (1);
- }
- if (e != EBUSY)
- {
- puts ("child: 1st trylock didn't return EBUSY");
- exit (1);
- }
-
- e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("child: 1st barrier_wait failed");
- exit (1);
- }
-
- e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("child: 2nd barrier_wait failed");
- exit (1);
- }
-
- e = pthread_mutex_unlock (&m);
- if (e == 0)
- {
- puts ("child: 2nd mutex_unlock succeeded");
- exit (1);
- }
- else if (e != EPERM)
- {
- puts ("child: 2nd mutex_unlock error != EPERM");
- exit (1);
- }
-
- if (pthread_mutex_trylock (&m) != 0)
- {
- puts ("child: 2nd trylock failed");
- exit (1);
- }
-
- if (pthread_mutex_unlock (&m) != 0)
- {
- puts ("child: 3rd mutex_unlock failed");
- exit (1);
- }
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- pthread_mutexattr_t a;
- int e;
-
- if (pthread_mutexattr_init (&a) != 0)
- {
- puts ("mutexattr_init failed");
- exit (1);
- }
-
- if (pthread_mutexattr_settype (&a, PTHREAD_MUTEX_ERRORCHECK) != 0)
- {
- puts ("mutexattr_settype failed");
- exit (1);
- }
-
- if (pthread_mutex_init (&m, &a) != 0)
- {
- puts ("mutex_init failed");
- exit (1);
- }
-
- if (pthread_barrier_init (&b, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- exit (1);
- }
-
- if ((e = pthread_mutex_unlock (&m)) == 0)
- {
- puts ("1st mutex_unlock succeeded");
- exit (1);
- }
- else if (e != EPERM)
- {
- puts ("1st mutex_unlock error != EPERM");
- exit (1);
- }
-
- if (pthread_mutex_lock (&m) != 0)
- {
- puts ("mutex_lock failed");
- exit (1);
- }
-
- if ((e = pthread_mutex_lock (&m)) == 0)
- {
- puts ("2nd mutex_lock succeeded");
- exit (1);
- }
- else if (e != EDEADLK)
- {
- puts ("2nd mutex_lock error != EDEADLK");
- exit (1);
- }
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("create failed");
- exit (1);
- }
-
- e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("1st barrier_wait failed");
- exit (1);
- }
-
- if (pthread_mutex_unlock (&m) != 0)
- {
- puts ("2nd mutex_unlock failed");
- exit (1);
- }
-
- if ((e = pthread_mutex_unlock (&m)) == 0)
- {
- puts ("3rd mutex_unlock succeeded");
- exit (1);
- }
- else if (e != EPERM)
- {
- puts ("3rd mutex_unlock error != EPERM");
- exit (1);
- }
-
- e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("2nd barrier_wait failed");
- exit (1);
- }
-
- if (pthread_join (th, NULL) != 0)
- {
- puts ("join failed");
- exit (1);
- }
-
- if (pthread_mutex_destroy (&m) != 0)
- {
- puts ("mutex_destroy failed");
- exit (1);
- }
-
- if (pthread_barrier_destroy (&b) != 0)
- {
- puts ("barrier_destroy failed");
- exit (1);
- }
-
- if (pthread_mutexattr_destroy (&a) != 0)
- {
- puts ("mutexattr_destroy failed");
- exit (1);
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-mutex3.c b/test/nptl/tst-mutex3.c
deleted file mode 100644
index 5e58285..0000000
--- a/test/nptl/tst-mutex3.c
+++ /dev/null
@@ -1,224 +0,0 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static pthread_mutex_t m;
-static pthread_barrier_t b;
-
-
-static void *
-tf (void *arg)
-{
- int e = pthread_mutex_unlock (&m);
- if (e == 0)
- {
- puts ("1st mutex_unlock in child succeeded");
- exit (1);
- }
- if (e != EPERM)
- {
- puts ("1st mutex_unlock in child didn't return EPERM");
- exit (1);
- }
-
- e = pthread_mutex_trylock (&m);
- if (e == 0)
- {
- puts ("mutex_trylock in second thread succeeded");
- exit (1);
- }
- if (e != EBUSY)
- {
- puts ("mutex_trylock returned wrong value");
- exit (1);
- }
-
- e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- exit (1);
- }
-
- e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- exit (1);
- }
-
- e = pthread_mutex_unlock (&m);
- if (e == 0)
- {
- puts ("2nd mutex_unlock in child succeeded");
- exit (1);
- }
- if (e != EPERM)
- {
- puts ("2nd mutex_unlock in child didn't return EPERM");
- exit (1);
- }
-
- if (pthread_mutex_trylock (&m) != 0)
- {
- puts ("2nd mutex_trylock in second thread failed");
- exit (1);
- }
-
- if (pthread_mutex_unlock (&m) != 0)
- {
- puts ("3rd mutex_unlock in second thread failed");
- exit (1);
- }
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- pthread_mutexattr_t a;
-
- if (pthread_mutexattr_init (&a) != 0)
- {
- puts ("mutexattr_init failed");
- return 1;
- }
-
- if (pthread_mutexattr_settype (&a, PTHREAD_MUTEX_RECURSIVE) != 0)
- {
- puts ("mutexattr_settype failed");
- return 1;
- }
-
- if (pthread_mutex_init (&m, &a) != 0)
- {
- puts ("mutex_init failed");
- return 1;
- }
-
- if (pthread_barrier_init (&b, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- return 1;
- }
-
- if (pthread_mutex_lock (&m) != 0)
- {
- puts ("mutex_lock failed");
- return 1;
- }
-
- if (pthread_mutex_lock (&m) != 0)
- {
- puts ("2nd mutex_lock failed");
- return 1;
- }
-
- if (pthread_mutex_trylock (&m) != 0)
- {
- puts ("1st trylock failed");
- return 1;
- }
-
- if (pthread_mutex_unlock (&m) != 0)
- {
- puts ("mutex_unlock failed");
- return 1;
- }
-
- if (pthread_mutex_unlock (&m) != 0)
- {
- puts ("2nd mutex_unlock failed");
- return 1;
- }
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("create failed");
- return 1;
- }
-
- int e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- return 1;
- }
-
- if (pthread_mutex_unlock (&m) != 0)
- {
- puts ("3rd mutex_unlock failed");
- return 1;
- }
-
- e = pthread_mutex_unlock (&m);
- if (e == 0)
- {
- puts ("4th mutex_unlock succeeded");
- return 1;
- }
- if (e != EPERM)
- {
- puts ("4th mutex_unlock didn't return EPERM");
- return 1;
- }
-
- e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- return 1;
- }
-
- if (pthread_join (th, NULL) != 0)
- {
- puts ("join failed");
- return 1;
- }
-
- if (pthread_barrier_destroy (&b) != 0)
- {
- puts ("barrier_destroy failed");
- return 1;
- }
-
- if (pthread_mutex_destroy (&m) != 0)
- {
- puts ("mutex_destroy failed");
- return 1;
- }
-
- if (pthread_mutexattr_destroy (&a) != 0)
- {
- puts ("mutexattr_destroy failed");
- return 1;
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-mutex4.c b/test/nptl/tst-mutex4.c
deleted file mode 100644
index f66abc0..0000000
--- a/test/nptl/tst-mutex4.c
+++ /dev/null
@@ -1,190 +0,0 @@
-/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/wait.h>
-
-
-static int
-do_test (void)
-{
- size_t ps = sysconf (_SC_PAGESIZE);
- char tmpfname[] = "/tmp/tst-mutex4.XXXXXX";
- char data[ps];
- void *mem;
- int fd;
- pthread_mutex_t *m;
- pthread_mutexattr_t a;
- pid_t pid;
- char *p;
- int err;
- int s;
-
- fd = mkstemp (tmpfname);
- if (fd == -1)
- {
- printf ("cannot open temporary file: %m\n");
- return 1;
- }
-
- /* Make sure it is always removed. */
- unlink (tmpfname);
-
- /* Create one page of data. */
- memset (data, '\0', ps);
-
- /* Write the data to the file. */
- if (write (fd, data, ps) != (ssize_t) ps)
- {
- puts ("short write");
- return 1;
- }
-
- mem = mmap (NULL, ps, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
- if (mem == MAP_FAILED)
- {
- printf ("mmap failed: %m\n");
- return 1;
- }
-
- m = (pthread_mutex_t *) (((uintptr_t) mem + __alignof (pthread_mutex_t))
- & ~(__alignof (pthread_mutex_t) - 1));
- p = (char *) (m + 1);
-
- if (pthread_mutexattr_init (&a) != 0)
- {
- puts ("mutexattr_init failed");
- return 1;
- }
-
- if (pthread_mutexattr_getpshared (&a, &s) != 0)
- {
- puts ("1st mutexattr_getpshared failed");
- return 1;
- }
-
- if (s != PTHREAD_PROCESS_PRIVATE)
- {
- puts ("default pshared value wrong");
- return 1;
- }
-
- if (pthread_mutexattr_setpshared (&a, PTHREAD_PROCESS_SHARED) != 0)
- {
- puts ("mutexattr_setpshared failed");
- return 1;
- }
-
- if (pthread_mutexattr_getpshared (&a, &s) != 0)
- {
- puts ("2nd mutexattr_getpshared failed");
- return 1;
- }
-
- if (s != PTHREAD_PROCESS_SHARED)
- {
- puts ("pshared value after setpshared call wrong");
- return 1;
- }
-
- if (pthread_mutex_init (m, &a) != 0)
- {
- puts ("mutex_init failed");
- return 1;
- }
-
- if (pthread_mutex_lock (m) != 0)
- {
- puts ("mutex_lock failed");
- return 1;
- }
-
- if (pthread_mutexattr_destroy (&a) != 0)
- {
- puts ("mutexattr_destroy failed");
- return 1;
- }
-
- err = pthread_mutex_trylock (m);
- if (err == 0)
- {
- puts ("mutex_trylock succeeded");
- return 1;
- }
- else if (err != EBUSY)
- {
- puts ("mutex_trylock didn't return EBUSY");
- return 1;
- }
-
- *p = 0;
-
- puts ("going to fork now");
- pid = fork ();
- if (pid == -1)
- {
- puts ("fork failed");
- return 1;
- }
- else if (pid == 0)
- {
- /* Play some lock ping-pong. It's our turn to unlock first. */
- if ((*p)++ != 0)
- {
- puts ("child: *p != 0");
- return 1;
- }
-
- if (pthread_mutex_unlock (m) != 0)
- {
- puts ("child: 1st mutex_unlock failed");
- return 1;
- }
-
- puts ("child done");
- }
- else
- {
- if (pthread_mutex_lock (m) != 0)
- {
- puts ("parent: 2nd mutex_lock failed");
- return 1;
- }
-
- if (*p != 1)
- {
- puts ("*p != 1");
- return 1;
- }
-
- puts ("parent done");
- }
-
- return 0;
-}
-
-#define TIMEOUT 4
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-mutex5.c b/test/nptl/tst-mutex5.c
deleted file mode 100644
index 85dddef..0000000
--- a/test/nptl/tst-mutex5.c
+++ /dev/null
@@ -1,185 +0,0 @@
-/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <time.h>
-#include <unistd.h>
-#include <sys/time.h>
-
-
-#ifndef TYPE
-# define TYPE PTHREAD_MUTEX_NORMAL
-#endif
-
-
-static int
-do_test (void)
-{
- pthread_mutex_t m;
- struct timespec ts;
- struct timeval tv;
- struct timeval tv2;
- int err;
- pthread_mutexattr_t a;
-
- if (pthread_mutexattr_init (&a) != 0)
- {
- puts ("mutexattr_init failed");
- return 1;
- }
-
- if (pthread_mutexattr_settype (&a, TYPE) != 0)
- {
- puts ("mutexattr_settype failed");
- return 1;
- }
-
- if (pthread_mutex_init (&m, &a) != 0)
- {
- puts ("mutex_init failed");
- return 1;
- }
-
- if (pthread_mutexattr_destroy (&a) != 0)
- {
- puts ("mutexattr_destroy failed");
- return 1;
- }
-
- if (pthread_mutex_lock (&m) != 0)
- {
- puts ("mutex_lock failed");
- return 1;
- }
-
- if (pthread_mutex_trylock (&m) == 0)
- {
- puts ("mutex_trylock succeeded");
- return 1;
- }
-
- gettimeofday (&tv, NULL);
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
-
- ts.tv_sec += 2; /* Wait 2 seconds. */
-
- err = pthread_mutex_timedlock (&m, &ts);
- if (err == 0)
- {
- puts ("timedlock succeeded");
- return 1;
- }
- else if (err != ETIMEDOUT)
- {
- printf ("timedlock error != ETIMEDOUT: %d\n", err);
- return 1;
- }
- else
- {
- int clk_tck = sysconf (_SC_CLK_TCK);
-
- gettimeofday (&tv2, NULL);
-
- tv2.tv_sec -= tv.tv_sec;
- tv2.tv_usec -= tv.tv_usec;
- if (tv2.tv_usec < 0)
- {
- tv2.tv_usec += 1000000;
- tv2.tv_sec -= 1;
- }
-
- /* Be a bit tolerant, add one CLK_TCK. */
- tv2.tv_usec += 1000000 / clk_tck;
- if (tv2.tv_usec >= 1000000)
- {
- tv2.tv_usec -= 1000000;
- ++tv2.tv_sec;
- }
-
- if (tv2.tv_sec < 2)
- {
- printf ("premature timeout: %ld.%06ld difference\n",
- tv2.tv_sec, tv2.tv_usec);
- return 1;
- }
- }
-
- (void) gettimeofday (&tv, NULL);
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
-
- ts.tv_sec += 2; /* Wait 2 seconds. */
- /* The following makes the ts value invalid. */
- ts.tv_nsec += 1000000000;
-
- err = pthread_mutex_timedlock (&m, &ts);
- if (err == 0)
- {
- puts ("2nd timedlock succeeded");
- return 1;
- }
- else if (err != EINVAL)
- {
- printf ("2nd timedlock error != EINVAL: %d\n", err);
- return 1;
- }
-
- if (pthread_mutex_unlock (&m) != 0)
- {
- puts ("mutex_unlock failed");
- return 1;
- }
-
- (void) gettimeofday (&tv, NULL);
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
-
- ts.tv_sec += 2; /* Wait 2 seconds. */
- if (pthread_mutex_timedlock (&m, &ts) != 0)
- {
- puts ("3rd timedlock failed");
- }
-
- (void) gettimeofday (&tv2, NULL);
-
- /* Check that timedlock didn't delay. We use a limit of 0.1 secs. */
- timersub (&tv2, &tv, &tv2);
- if (tv2.tv_sec > 0 || tv2.tv_usec > 100000)
- {
- puts ("3rd timedlock didn't return right away");
- return 1;
- }
-
- if (pthread_mutex_unlock (&m) != 0)
- {
- puts ("final mutex_unlock failed");
- return 1;
- }
-
- if (pthread_mutex_destroy (&m) != 0)
- {
- puts ("mutex_destroy failed");
- return 1;
- }
-
- return 0;
-}
-
-#define TIMEOUT 4
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-mutex5a.c b/test/nptl/tst-mutex5a.c
deleted file mode 100644
index f91eec0..0000000
--- a/test/nptl/tst-mutex5a.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define TYPE PTHREAD_MUTEX_ADAPTIVE_NP
-#include "tst-mutex5.c"
diff --git a/test/nptl/tst-mutex6.c b/test/nptl/tst-mutex6.c
deleted file mode 100644
index 0dcfc77..0000000
--- a/test/nptl/tst-mutex6.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <unistd.h>
-
-
-static int
-do_test (void)
-{
- pthread_mutex_t m;
-
- if (pthread_mutex_init (&m, NULL) != 0)
- {
- puts ("mutex_init failed");
- return 1;
- }
-
- if (pthread_mutex_lock (&m) != 0)
- {
- puts ("1st mutex_lock failed");
- return 1;
- }
-
- /* Set an alarm for 1 second. The wrapper will expect this. */
- alarm (1);
-
- /* This call should never return. */
- pthread_mutex_lock (&m);
-
- puts ("2nd mutex_lock returned");
- return 1;
-}
-
-#define EXPECTED_SIGNAL SIGALRM
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-mutex7.c b/test/nptl/tst-mutex7.c
deleted file mode 100644
index 29a1423..0000000
--- a/test/nptl/tst-mutex7.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/* Copyright (C) 2002, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <time.h>
-
-
-#ifndef INIT
-# define INIT PTHREAD_MUTEX_INITIALIZER
-#endif
-
-
-static pthread_mutex_t lock = INIT;
-
-
-#define ROUNDS 1000
-#define N 100
-
-
-static void *
-tf (void *arg)
-{
- int nr = (long int) arg;
- int cnt;
- struct timespec ts = { .tv_sec = 0, .tv_nsec = 11000 };
-
- for (cnt = 0; cnt < ROUNDS; ++cnt)
- {
- if (pthread_mutex_lock (&lock) != 0)
- {
- printf ("thread %d: failed to get the lock\n", nr);
- return (void *) 1l;
- }
-
- if (pthread_mutex_unlock (&lock) != 0)
- {
- printf ("thread %d: failed to release the lock\n", nr);
- return (void *) 1l;
- }
-
- nanosleep (&ts, NULL);
- }
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- pthread_attr_t at;
- pthread_t th[N];
- int cnt;
-
- if (pthread_attr_init (&at) != 0)
- {
- puts ("attr_init failed");
- return 1;
- }
-
- if (pthread_attr_setstacksize (&at, 1 * 1024 * 1024) != 0)
- {
- puts ("attr_setstacksize failed");
- return 1;
- }
-
- if (pthread_mutex_lock (&lock) != 0)
- {
- puts ("locking in parent failed");
- return 1;
- }
-
- for (cnt = 0; cnt < N; ++cnt)
- if (pthread_create (&th[cnt], &at, tf, (void *) (long int) cnt) != 0)
- {
- printf ("creating thread %d failed\n", cnt);
- return 1;
- }
-
- if (pthread_attr_destroy (&at) != 0)
- {
- puts ("attr_destroy failed");
- return 1;
- }
-
- if (pthread_mutex_unlock (&lock) != 0)
- {
- puts ("unlocking in parent failed");
- return 1;
- }
-
- for (cnt = 0; cnt < N; ++cnt)
- if (pthread_join (th[cnt], NULL) != 0)
- {
- printf ("joining thread %d failed\n", cnt);
- return 1;
- }
-
- return 0;
-}
-
-#define TIMEOUT 60
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-mutex7a.c b/test/nptl/tst-mutex7a.c
deleted file mode 100644
index f08799a..0000000
--- a/test/nptl/tst-mutex7a.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define INIT PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP
-#include "tst-mutex7.c"
diff --git a/test/nptl/tst-mutex8.c b/test/nptl/tst-mutex8.c
deleted file mode 100644
index a949be3..0000000
--- a/test/nptl/tst-mutex8.c
+++ /dev/null
@@ -1,366 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* This test checks behavior not required by POSIX. */
-#include <errno.h>
-#include <pthread.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static pthread_mutex_t *m;
-static pthread_barrier_t b;
-static pthread_cond_t c;
-static bool done;
-
-
-static void
-cl (void *arg)
-{
- if (pthread_mutex_unlock (m) != 0)
- {
- puts ("cl: mutex_unlocked failed");
- exit (1);
- }
-}
-
-
-static void *
-tf (void *arg)
-{
- if (pthread_mutex_lock (m) != 0)
- {
- puts ("tf: mutex_lock failed");
- return (void *) 1l;
- }
-
- int e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- return (void *) 1l;
- }
-
- if (arg == NULL)
- do
- if (pthread_cond_wait (&c, m) != 0)
- {
- puts ("tf: cond_wait failed");
- return (void *) 1l;
- }
- while (! done);
- else
- do
- {
- pthread_cleanup_push (cl, NULL);
-
- if (pthread_cond_wait (&c, m) != 0)
- {
- puts ("tf: cond_wait failed");
- return (void *) 1l;
- }
-
- pthread_cleanup_pop (0);
- }
- while (! done);
-
- if (pthread_mutex_unlock (m) != 0)
- {
- puts ("tf: mutex_unlock failed");
- return (void *) 1l;
- }
-
- return NULL;
-}
-
-
-static int
-check_type (const char *mas, pthread_mutexattr_t *ma)
-{
- if (pthread_mutex_init (m, ma) != 0)
- {
- printf ("1st mutex_init failed for %s\n", mas);
- return 1;
- }
-
- if (pthread_mutex_destroy (m) != 0)
- {
- printf ("immediate mutex_destroy failed for %s\n", mas);
- return 1;
- }
-
- if (pthread_mutex_init (m, ma) != 0)
- {
- printf ("2nd mutex_init failed for %s\n", mas);
- return 1;
- }
-
- if (pthread_mutex_lock (m) != 0)
- {
- printf ("1st mutex_lock failed for %s\n", mas);
- return 1;
- }
-
- int e = pthread_mutex_destroy (m);
- if (e == 0)
- {
- printf ("mutex_destroy of self-locked mutex succeeded for %s\n", mas);
- return 1;
- }
- if (e != EBUSY)
- {
- printf ("mutex_destroy of self-locked mutex did not return EBUSY %s\n",
- mas);
- return 1;
- }
-
- if (pthread_mutex_unlock (m) != 0)
- {
- printf ("1st mutex_unlock failed for %s\n", mas);
- return 1;
- }
-
- if (pthread_mutex_trylock (m) != 0)
- {
- printf ("mutex_trylock failed for %s\n", mas);
- return 1;
- }
-
- e = pthread_mutex_destroy (m);
- if (e == 0)
- {
- printf ("mutex_destroy of self-trylocked mutex succeeded for %s\n",
mas);
- return 1;
- }
- if (e != EBUSY)
- {
- printf ("\
-mutex_destroy of self-trylocked mutex did not return EBUSY %s\n",
- mas);
- return 1;
- }
-
- if (pthread_mutex_unlock (m) != 0)
- {
- printf ("2nd mutex_unlock failed for %s\n", mas);
- return 1;
- }
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("1st create failed");
- return 1;
- }
- done = false;
-
- e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("1st barrier_wait failed");
- return 1;
- }
-
- if (pthread_mutex_lock (m) != 0)
- {
- printf ("2nd mutex_lock failed for %s\n", mas);
- return 1;
- }
-
- if (pthread_mutex_unlock (m) != 0)
- {
- printf ("3rd mutex_unlock failed for %s\n", mas);
- return 1;
- }
-
- e = pthread_mutex_destroy (m);
- if (e == 0)
- {
- printf ("mutex_destroy of condvar-used mutex succeeded for %s\n", mas);
- return 1;
- }
- if (e != EBUSY)
- {
- printf ("\
-mutex_destroy of condvar-used mutex did not return EBUSY for %s\n", mas);
- return 1;
- }
-
- done = true;
- if (pthread_cond_signal (&c) != 0)
- {
- puts ("cond_signal failed");
- return 1;
- }
-
- void *r;
- if (pthread_join (th, &r) != 0)
- {
- puts ("join failed");
- return 1;
- }
- if (r != NULL)
- {
- puts ("thread didn't return NULL");
- return 1;
- }
-
- if (pthread_mutex_destroy (m) != 0)
- {
- printf ("mutex_destroy after condvar-use failed for %s\n", mas);
- return 1;
- }
-
- if (pthread_mutex_init (m, ma) != 0)
- {
- printf ("3rd mutex_init failed for %s\n", mas);
- return 1;
- }
-
- if (pthread_create (&th, NULL, tf, (void *) 1) != 0)
- {
- puts ("2nd create failed");
- return 1;
- }
- done = false;
-
- e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("2nd barrier_wait failed");
- return 1;
- }
-
- if (pthread_mutex_lock (m) != 0)
- {
- printf ("3rd mutex_lock failed for %s\n", mas);
- return 1;
- }
-
- if (pthread_mutex_unlock (m) != 0)
- {
- printf ("4th mutex_unlock failed for %s\n", mas);
- return 1;
- }
-
- e = pthread_mutex_destroy (m);
- if (e == 0)
- {
- printf ("2nd mutex_destroy of condvar-used mutex succeeded for %s\n",
- mas);
- return 1;
- }
- if (e != EBUSY)
- {
- printf ("\
-2nd mutex_destroy of condvar-used mutex did not return EBUSY for %s\n",
- mas);
- return 1;
- }
-
- if (pthread_cancel (th) != 0)
- {
- puts ("cond_cancel failed");
- return 1;
- }
-
- if (pthread_join (th, &r) != 0)
- {
- puts ("join failed");
- return 1;
- }
- if (r != PTHREAD_CANCELED)
- {
- puts ("thread not canceled");
- return 1;
- }
-
- if (pthread_mutex_destroy (m) != 0)
- {
- printf ("mutex_destroy after condvar-canceled failed for %s\n", mas);
- return 1;
- }
-
- return 0;
-}
-
-
-static int
-do_test (void)
-{
- pthread_mutex_t mm;
- m = &mm;
-
- if (pthread_barrier_init (&b, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- return 1;
- }
-
- if (pthread_cond_init (&c, NULL) != 0)
- {
- puts ("cond_init failed");
- return 1;
- }
-
- puts ("check normal mutex");
- int res = check_type ("normal", NULL);
-
- pthread_mutexattr_t ma;
- if (pthread_mutexattr_init (&ma) != 0)
- {
- puts ("1st mutexattr_init failed");
- return 1;
- }
- if (pthread_mutexattr_settype (&ma, PTHREAD_MUTEX_RECURSIVE) != 0)
- {
- puts ("1st mutexattr_settype failed");
- return 1;
- }
- puts ("check recursive mutex");
- res |= check_type ("recursive", &ma);
- if (pthread_mutexattr_destroy (&ma) != 0)
- {
- puts ("1st mutexattr_destroy failed");
- return 1;
- }
-
- if (pthread_mutexattr_init (&ma) != 0)
- {
- puts ("2nd mutexattr_init failed");
- return 1;
- }
- if (pthread_mutexattr_settype (&ma, PTHREAD_MUTEX_ERRORCHECK) != 0)
- {
- puts ("2nd mutexattr_settype failed");
- return 1;
- }
- puts ("check error-checking mutex");
- res |= check_type ("error-checking", &ma);
- if (pthread_mutexattr_destroy (&ma) != 0)
- {
- puts ("2nd mutexattr_destroy failed");
- return 1;
- }
-
- return res;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-mutex9.c b/test/nptl/tst-mutex9.c
deleted file mode 100644
index a4bb3aa..0000000
--- a/test/nptl/tst-mutex9.c
+++ /dev/null
@@ -1,190 +0,0 @@
-/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/wait.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <sys/time.h>
-
-int gettimeofday(struct timeval *tv, struct timezone *tz);
-
-
-static int
-do_test (void)
-{
- size_t ps = sysconf (_SC_PAGESIZE);
- char tmpfname[] = "/tmp/tst-mutex9.XXXXXX";
- char data[ps];
- void *mem;
- int fd;
- pthread_mutex_t *m;
- pthread_mutexattr_t a;
- pid_t pid;
- char *p;
-
- fd = mkstemp (tmpfname);
- if (fd == -1)
- {
- printf ("cannot open temporary file: %m\n");
- return 1;
- }
-
- /* Make sure it is always removed. */
- unlink (tmpfname);
-
- /* Create one page of data. */
- memset (data, '\0', ps);
-
- /* Write the data to the file. */
- if (write (fd, data, ps) != (ssize_t) ps)
- {
- puts ("short write");
- return 1;
- }
-
- mem = mmap (NULL, ps, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
- if (mem == MAP_FAILED)
- {
- printf ("mmap failed: %m\n");
- return 1;
- }
-
- m = (pthread_mutex_t *) (((uintptr_t) mem + __alignof (pthread_mutex_t))
- & ~(__alignof (pthread_mutex_t) - 1));
- p = (char *) (m + 1);
-
- if (pthread_mutexattr_init (&a) != 0)
- {
- puts ("mutexattr_init failed");
- return 1;
- }
-
- if (pthread_mutexattr_setpshared (&a, PTHREAD_PROCESS_SHARED) != 0)
- {
- puts ("mutexattr_setpshared failed");
- return 1;
- }
-
- if (pthread_mutexattr_settype (&a, PTHREAD_MUTEX_RECURSIVE) != 0)
- {
- puts ("mutexattr_settype failed");
- return 1;
- }
-
- if (pthread_mutex_init (m, &a) != 0)
- {
- puts ("mutex_init failed");
- return 1;
- }
-
- if (pthread_mutex_lock (m) != 0)
- {
- puts ("mutex_lock failed");
- return 1;
- }
-
- if (pthread_mutexattr_destroy (&a) != 0)
- {
- puts ("mutexattr_destroy failed");
- return 1;
- }
-
- puts ("going to fork now");
- pid = fork ();
- if (pid == -1)
- {
- puts ("fork failed");
- return 1;
- }
- else if (pid == 0)
- {
- if (pthread_mutex_trylock (m) == 0)
- {
- puts ("child: mutex_trylock succeeded");
- exit (1);
- }
-
- if (pthread_mutex_unlock (m) == 0)
- {
- puts ("child: mutex_unlock succeeded");
- exit (1);
- }
-
- struct timeval tv;
- gettimeofday (&tv, NULL);
- struct timespec ts;
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- ts.tv_nsec += 500000000;
- if (ts.tv_nsec >= 1000000000)
- {
- ++ts.tv_sec;
- ts.tv_nsec -= 1000000000;
- }
-
- int e = pthread_mutex_timedlock (m, &ts);
- if (e == 0)
- {
- puts ("child: mutex_timedlock succeeded");
- exit (1);
- }
- if (e != ETIMEDOUT)
- {
- puts ("child: mutex_timedlock didn't time out");
- exit (1);
- }
-
- alarm (1);
-
- pthread_mutex_lock (m);
-
- puts ("child: mutex_lock returned");
-
- exit (0);
- }
-
- sleep (2);
-
- int status;
- if (TEMP_FAILURE_RETRY (waitpid (pid, &status, 0)) != pid)
- {
- puts ("waitpid failed");
- return 1;
- }
- if (! WIFSIGNALED (status))
- {
- puts ("child not killed by signal");
- return 1;
- }
- if (WTERMSIG (status) != SIGALRM)
- {
- puts ("child not killed by SIGALRM");
- return 1;
- }
-
- return 0;
-}
-
-#define TIMEOUT 3
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-oddstacklimit.c b/test/nptl/tst-oddstacklimit.c
deleted file mode 100644
index 9fbef18..0000000
--- a/test/nptl/tst-oddstacklimit.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-basic1.c"
diff --git a/test/nptl/tst-once1.c b/test/nptl/tst-once1.c
deleted file mode 100644
index 308a455..0000000
--- a/test/nptl/tst-once1.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-
-
-static pthread_once_t once = PTHREAD_ONCE_INIT;
-
-static int global;
-
-static void
-once_handler (void)
-{
- ++global;
-}
-
-
-static int
-do_test (void)
-{
- pthread_once (&once, once_handler);
- pthread_once (&once, once_handler);
-
- if (global != 1)
- {
- printf ("global = %d, expected 1\n", global);
- return 1;
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-once2.c b/test/nptl/tst-once2.c
deleted file mode 100644
index 6e2f3db..0000000
--- a/test/nptl/tst-once2.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/* Copyright (C) 2002, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-
-
-#define N 100
-
-static pthread_once_t once = PTHREAD_ONCE_INIT;
-
-static int global;
-
-static void
-once_handler (void)
-{
- struct timespec ts;
-
- ++global;
-
- ts.tv_sec = 2;
- ts.tv_nsec = 0;
- nanosleep (&ts, NULL);
-}
-
-
-static void *
-tf (void *arg)
-{
- pthread_once (&once, once_handler);
-
- if (global != 1)
- {
- printf ("thread %ld: global == %d\n", (long int) arg, global);
- exit (1);
- }
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- pthread_attr_t at;
- pthread_t th[N];
- int cnt;
-
- if (pthread_attr_init (&at) != 0)
- {
- puts ("attr_init failed");
- return 1;
- }
-
- if (pthread_attr_setstacksize (&at, 1 * 1024 * 1024) != 0)
- {
- puts ("attr_setstacksize failed");
- return 1;
- }
-
- for (cnt = 0; cnt < N; ++cnt)
- if (pthread_create (&th[cnt], &at, tf, (void *) (long int) cnt) != 0)
- {
- printf ("creation of thread %d failed\n", cnt);
- return 1;
- }
-
- if (pthread_attr_destroy (&at) != 0)
- {
- puts ("attr_destroy failed");
- return 1;
- }
-
- for (cnt = 0; cnt < N; ++cnt)
- if (pthread_join (th[cnt], NULL) != 0)
- {
- printf ("join of thread %d failed\n", cnt);
- return 1;
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#define TIMEOUT 4
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-once3.c b/test/nptl/tst-once3.c
deleted file mode 100644
index c869ca8..0000000
--- a/test/nptl/tst-once3.c
+++ /dev/null
@@ -1,161 +0,0 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-
-
-#define N 100
-
-static pthread_once_t once = PTHREAD_ONCE_INIT;
-
-static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;
-
-static pthread_barrier_t bar;
-
-static int global;
-static int cl_called;
-
-static void
-once_handler1 (void)
-{
- if (pthread_mutex_lock (&mut) != 0)
- {
- puts ("once_handler1: mutex_lock failed");
- exit (1);
- }
- puts ("once_handler1: locked");
-
- int r = pthread_barrier_wait (&bar);
- if (r != 0 && r!= PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("once_handler1: barrier_wait failed");
- exit (1);
- }
-
- pthread_cond_wait (&cond, &mut);
-
- /* We should never get here. */
- exit (42);
-}
-
-static void
-once_handler2 (void)
-{
- global = 1;
-}
-
-
-static void
-cl (void *arg)
-{
- cl_called = 1;
-}
-
-
-static void *
-tf (void *arg)
-{
- pthread_cleanup_push (cl, NULL)
-
- pthread_once (&once, once_handler1);
-
- pthread_cleanup_pop (0);
-
- /* We should never get here. */
- puts ("pthread_once in tf returned");
- exit (1);
-}
-
-
-static int
-do_test (void)
-{
- pthread_t th;
-
- if (pthread_barrier_init (&bar, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- return 1;
- }
-
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("first create failed");
- return 1;
- }
-
- int r = pthread_barrier_wait (&bar);
- if (r != 0 && r!= PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- return 1;
- }
-
- if (pthread_mutex_lock (&mut) != 0)
- {
- puts ("mutex_lock failed");
- return 1;
- }
- /* We unlock the mutex so that we catch the case where the pthread_cond_wait
- call incorrectly resumes and tries to get the mutex. */
- if (pthread_mutex_unlock (&mut) != 0)
- {
- puts ("mutex_unlock failed");
- return 1;
- }
-
- /* Cancel the thread. */
- puts ("going to cancel");
- if (pthread_cancel (th) != 0)
- {
- puts ("cancel failed");
- return 1;
- }
-
- void *result;
- pthread_join (th, &result);
- if (result != PTHREAD_CANCELED)
- {
- puts ("join didn't return PTHREAD_CANCELED");
- return 1;
- }
-
- if (cl_called != 1)
- {
- puts ("cleanup handler not called");
- return 1;
- }
-
- pthread_once (&once, once_handler2);
-
- if (global != 1)
- {
- puts ("global still 0");
- return 1;
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#define TIMEOUT 4
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-once4.c b/test/nptl/tst-once4.c
deleted file mode 100644
index a80b830..0000000
--- a/test/nptl/tst-once4.c
+++ /dev/null
@@ -1,201 +0,0 @@
-/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include <unistd.h>
-
-
-static pthread_once_t once = PTHREAD_ONCE_INIT;
-
-static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;
-
-static pthread_barrier_t bar;
-
-static int global;
-static int cl_called;
-
-static void
-once_handler1 (void)
-{
- if (pthread_mutex_lock (&mut) != 0)
- {
- puts ("once_handler1: mutex_lock failed");
- exit (1);
- }
-
- int r = pthread_barrier_wait (&bar);
- if (r != 0 && r!= PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("once_handler1: barrier_wait failed");
- exit (1);
- }
-
- pthread_cond_wait (&cond, &mut);
-
- /* We should never get here. */
-}
-
-
-static void
-once_handler2 (void)
-{
- global = 1;
-}
-
-
-static void
-cl (void *arg)
-{
- ++cl_called;
-}
-
-
-static void *
-tf1 (void *arg)
-{
- pthread_cleanup_push (cl, NULL);
-
- pthread_once (&once, once_handler1);
-
- pthread_cleanup_pop (0);
-
- /* We should never get here. */
- puts ("pthread_once in tf returned");
- exit (1);
-}
-
-
-static void *
-tf2 (void *arg)
-{
- pthread_cleanup_push (cl, NULL);
-
- int r = pthread_barrier_wait (&bar);
- if (r != 0 && r!= PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("once_handler2: barrier_wait failed");
- exit (1);
- }
-
- pthread_cleanup_pop (0);
-
- pthread_once (&once, once_handler2);
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- pthread_t th[2];
-
- if (pthread_barrier_init (&bar, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- return 1;
- }
-
- if (pthread_create (&th[0], NULL, tf1, NULL) != 0)
- {
- puts ("first create failed");
- return 1;
- }
-
- int r = pthread_barrier_wait (&bar);
- if (r != 0 && r!= PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("first barrier_wait failed");
- return 1;
- }
-
- if (pthread_mutex_lock (&mut) != 0)
- {
- puts ("mutex_lock failed");
- return 1;
- }
- /* We unlock the mutex so that we catch the case where the pthread_cond_wait
- call incorrectly resumes and tries to get the mutex. */
- if (pthread_mutex_unlock (&mut) != 0)
- {
- puts ("mutex_unlock failed");
- return 1;
- }
-
- if (pthread_create (&th[1], NULL, tf2, NULL) != 0)
- {
- puts ("second create failed");
- return 1;
- }
-
- r = pthread_barrier_wait (&bar);
- if (r != 0 && r!= PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("second barrier_wait failed");
- return 1;
- }
-
- /* Give the second thread a chance to reach the pthread_once call. */
- sleep (2);
-
- /* Cancel the thread. */
- if (pthread_cancel (th[0]) != 0)
- {
- puts ("cancel failed");
- return 1;
- }
-
- void *result;
- pthread_join (th[0], &result);
- if (result != PTHREAD_CANCELED)
- {
- puts ("first join didn't return PTHREAD_CANCELED");
- return 1;
- }
-
- puts ("joined first thread");
-
- pthread_join (th[1], &result);
- if (result != NULL)
- {
- puts ("second join didn't return PTHREAD_CANCELED");
- return 1;
- }
-
- if (global != 1)
- {
- puts ("global still 0");
- return 1;
- }
-
- if (cl_called != 1)
- {
- printf ("cl_called = %d\n", cl_called);
- return 1;
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#define TIMEOUT 4
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-oncex3.c b/test/nptl/tst-oncex3.c
deleted file mode 100644
index 08225b8..0000000
--- a/test/nptl/tst-oncex3.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-once3.c"
diff --git a/test/nptl/tst-oncex4.c b/test/nptl/tst-oncex4.c
deleted file mode 100644
index 9b4d98f..0000000
--- a/test/nptl/tst-oncex4.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-once4.c"
diff --git a/test/nptl/tst-popen1.c b/test/nptl/tst-popen1.c
deleted file mode 100644
index 0c779fc..0000000
--- a/test/nptl/tst-popen1.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <error.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-static void *
-dummy (void *x)
-{
- return NULL;
-}
-
-static char buf[sizeof "something\n"];
-
-static int
-do_test (void)
-{
- FILE *f;
- pthread_t p;
- int err;
-
- f = popen ("echo something", "r");
- if (f == NULL)
- error (EXIT_FAILURE, errno, "popen failed");
- if (fgets (buf, sizeof (buf), f) == NULL)
- error (EXIT_FAILURE, 0, "fgets failed");
- if (strcmp (buf, "something\n"))
- error (EXIT_FAILURE, 0, "read wrong data");
- if (pclose (f))
- error (EXIT_FAILURE, errno, "pclose returned non-zero");
- if ((err = pthread_create (&p, NULL, dummy, NULL)))
- error (EXIT_FAILURE, err, "pthread_create failed");
- if ((err = pthread_join (p, NULL)))
- error (EXIT_FAILURE, err, "pthread_join failed");
- exit (0);
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-raise1.c b/test/nptl/tst-raise1.c
deleted file mode 100644
index 45c62e1..0000000
--- a/test/nptl/tst-raise1.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <error.h>
-#include <signal.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-volatile int count;
-
-void
-sh (int sig)
-{
- ++count;
-}
-
-int
-main (void)
-{
- struct sigaction sa;
- sa.sa_handler = sh;
- sigemptyset (&sa.sa_mask);
- sa.sa_flags = 0;
- if (sigaction (SIGUSR1, &sa, NULL) < 0)
- {
- printf ("sigaction failed: %m\n");
- exit (1);
- }
- if (raise (SIGUSR1) < 0)
- {
- printf ("first raise failed: %m\n");
- exit (1);
- }
- if (raise (SIGUSR1) < 0)
- {
- printf ("second raise failed: %m\n");
- exit (1);
- }
- if (count != 2)
- {
- printf ("signal handler not called 2 times\n");
- exit (1);
- }
- exit (0);
-}
diff --git a/test/nptl/tst-rwlock1.c b/test/nptl/tst-rwlock1.c
deleted file mode 100644
index a5e8d63..0000000
--- a/test/nptl/tst-rwlock1.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-
-
-static int
-do_test (void)
-{
- pthread_rwlock_t r;
-
- if (pthread_rwlock_init (&r, NULL) != 0)
- {
- puts ("rwlock_init failed");
- return 1;
- }
- puts ("rwlock_init succeeded");
-
- if (pthread_rwlock_rdlock (&r) != 0)
- {
- puts ("1st rwlock_rdlock failed");
- return 1;
- }
- puts ("1st rwlock_rdlock succeeded");
-
- if (pthread_rwlock_rdlock (&r) != 0)
- {
- puts ("2nd rwlock_rdlock failed");
- return 1;
- }
- puts ("2nd rwlock_rdlock succeeded");
-
- if (pthread_rwlock_unlock (&r) != 0)
- {
- puts ("1st rwlock_unlock failed");
- return 1;
- }
- puts ("1st rwlock_unlock succeeded");
-
- if (pthread_rwlock_unlock (&r) != 0)
- {
- puts ("2nd rwlock_unlock failed");
- return 1;
- }
- puts ("2nd rwlock_unlock succeeded");
-
- if (pthread_rwlock_wrlock (&r) != 0)
- {
- puts ("1st rwlock_wrlock failed");
- return 1;
- }
- puts ("1st rwlock_wrlock succeeded");
-
- if (pthread_rwlock_unlock (&r) != 0)
- {
- puts ("3rd rwlock_unlock failed");
- return 1;
- }
- puts ("3rd rwlock_unlock succeeded");
-
- if (pthread_rwlock_wrlock (&r) != 0)
- {
- puts ("2nd rwlock_wrlock failed");
- return 1;
- }
- puts ("2nd rwlock_wrlock succeeded");
-
- if (pthread_rwlock_unlock (&r) != 0)
- {
- puts ("4th rwlock_unlock failed");
- return 1;
- }
- puts ("4th rwlock_unlock succeeded");
-
- if (pthread_rwlock_rdlock (&r) != 0)
- {
- puts ("3rd rwlock_rdlock failed");
- return 1;
- }
- puts ("3rd rwlock_rdlock succeeded");
-
- if (pthread_rwlock_unlock (&r) != 0)
- {
- puts ("5th rwlock_unlock failed");
- return 1;
- }
- puts ("5th rwlock_unlock succeeded");
-
- if (pthread_rwlock_destroy (&r) != 0)
- {
- puts ("rwlock_destroy failed");
- return 1;
- }
- puts ("rwlock_destroy succeeded");
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-rwlock10.c b/test/nptl/tst-rwlock10.c
deleted file mode 100644
index e22b1e0..0000000
--- a/test/nptl/tst-rwlock10.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Test program for timedout read/write lock functions.
- Copyright (C) 2003 Free Software Foundation, Inc.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
-
-#define INIT PTHREAD_RWLOCK_INITIALIZER
-#include "tst-rwlock8.c"
diff --git a/test/nptl/tst-rwlock11.c b/test/nptl/tst-rwlock11.c
deleted file mode 100644
index 93a1b0c..0000000
--- a/test/nptl/tst-rwlock11.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Test program for timedout read/write lock functions.
- Copyright (C) 2003 Free Software Foundation, Inc.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
-
-#define INIT PTHREAD_RWLOCK_INITIALIZER
-#include "tst-rwlock9.c"
diff --git a/test/nptl/tst-rwlock12.c b/test/nptl/tst-rwlock12.c
deleted file mode 100644
index c0e5cee..0000000
--- a/test/nptl/tst-rwlock12.c
+++ /dev/null
@@ -1,207 +0,0 @@
-/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/wait.h>
-
-
-static int
-do_test (void)
-{
- size_t ps = sysconf (_SC_PAGESIZE);
- char tmpfname[] = "/tmp/tst-rwlock12.XXXXXX";
- char data[ps];
- void *mem;
- int fd;
- pthread_mutex_t *m;
- pthread_mutexattr_t ma;
- pthread_rwlock_t *r;
- pthread_rwlockattr_t ra;
- pid_t pid;
- int status = 0;
-
- fd = mkstemp (tmpfname);
- if (fd == -1)
- {
- printf ("cannot open temporary file: %m\n");
- return 1;
- }
-
- /* Make sure it is always removed. */
- unlink (tmpfname);
-
- /* Create one page of data. */
- memset (data, '\0', ps);
-
- /* Write the data to the file. */
- if (write (fd, data, ps) != (ssize_t) ps)
- {
- puts ("short write");
- return 1;
- }
-
- mem = mmap (NULL, ps, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
- if (mem == MAP_FAILED)
- {
- printf ("mmap failed: %m\n");
- return 1;
- }
-
- r = (pthread_rwlock_t *) (((uintptr_t) mem + __alignof (pthread_rwlock_t))
- & ~(__alignof (pthread_rwlock_t) - 1));
- /* The following assumes alignment for a mutex is at least as high
- as that for a rwlock. Which is true in our case. */
- m = (pthread_mutex_t *) (r + 1);
-
- if (pthread_rwlockattr_init (&ra) != 0)
- {
- puts ("rwlockattr_init failed");
- return 1;
- }
-
- if (pthread_rwlockattr_setpshared (&ra, PTHREAD_PROCESS_SHARED) != 0)
- {
- puts ("rwlockattr_setpshared failed");
- return 1;
- }
-
- if (pthread_rwlock_init (r, &ra) != 0)
- {
- puts ("rwlock_init failed");
- return 1;
- }
-
- if (pthread_mutexattr_init (&ma) != 0)
- {
- puts ("rwlockattr_init failed");
- return 1;
- }
-
- if (pthread_mutexattr_setpshared (&ma, PTHREAD_PROCESS_SHARED) != 0)
- {
- puts ("mutexattr_setpshared failed");
- return 1;
- }
-
- if (pthread_mutex_init (m, &ma) != 0)
- {
- puts ("mutex_init failed");
- return 1;
- }
-
- /* Lock the mutex. */
- if (pthread_mutex_lock (m) != 0)
- {
- puts ("mutex_lock failed");
- return 1;
- }
-
- puts ("going to fork now");
- pid = fork ();
- if (pid == -1)
- {
- puts ("fork failed");
- return 1;
- }
- else if (pid == 0)
- {
- /* Lock the mutex. */
- if (pthread_mutex_lock (m) != 0)
- {
- puts ("child: mutex_lock failed");
- return 1;
- }
-
- /* Try to get the rwlock. */
- if (pthread_rwlock_trywrlock (r) == 0)
- {
- puts ("rwlock_trywrlock succeeded");
- return 1;
- }
-
- /* Try again. */
- struct timespec ts = { .tv_sec = 0, .tv_nsec = 500000000 };
- int e = pthread_rwlock_timedwrlock (r, &ts);
- if (e == 0)
- {
- puts ("rwlock_timedwrlock succeeded");
- return 1;
- }
- if (e != ETIMEDOUT)
- {
- puts ("rwlock_timedwrlock didn't return ETIMEDOUT");
- status = 1;
- }
-
- if (pthread_rwlock_tryrdlock (r) == 0)
- {
- puts ("rwlock_tryrdlock succeeded");
- return 1;
- }
-
- e = pthread_rwlock_timedrdlock (r, &ts);
- if (e == 0)
- {
- puts ("rwlock_timedrdlock succeeded");
- return 1;
- }
- if (e != ETIMEDOUT)
- {
- puts ("rwlock_timedrdlock didn't return ETIMEDOUT");
- status = 1;
- }
- }
- else
- {
- /* Lock the rwlock for writing. */
- if (pthread_rwlock_wrlock (r) != 0)
- {
- puts ("rwlock_wrlock failed");
- kill (pid, SIGTERM);
- return 1;
- }
-
- /* Allow the child to run. */
- if (pthread_mutex_unlock (m) != 0)
- {
- puts ("mutex_unlock failed");
- kill (pid, SIGTERM);
- return 1;
- }
-
- /* Just wait for the child. */
- if (TEMP_FAILURE_RETRY (waitpid (pid, &status, 0)) != pid)
- {
- puts ("waitpid failed");
- kill (pid, SIGTERM);
- return 1;
- }
- }
-
- return status;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-rwlock13.c b/test/nptl/tst-rwlock13.c
deleted file mode 100644
index 8fb2a7d..0000000
--- a/test/nptl/tst-rwlock13.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Copyright (C) 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <string.h>
-
-
-static int
-do_test (void)
-{
- pthread_rwlock_t r;
- int ret;
-
- memset (&r, 0xaa, sizeof (r));
- if ((ret = pthread_rwlock_init (&r, NULL)) != 0)
- {
- printf ("rwlock_init failed: %d\n", ret);
- return 1;
- }
-
- if ((ret = pthread_rwlock_rdlock (&r)) != 0)
- {
- printf ("rwlock_rdlock failed: %d\n", ret);
- return 1;
- }
-
- if ((ret = pthread_rwlock_unlock (&r)) != 0)
- {
- printf ("rwlock_unlock failed: %d\n", ret);
- return 1;
- }
-
- if ((ret = pthread_rwlock_wrlock (&r)) != 0)
- {
- printf ("rwlock_wrlock failed: %d\n", ret);
- return 1;
- }
-
- if ((ret = pthread_rwlock_unlock (&r)) != 0)
- {
- printf ("second rwlock_unlock failed: %d\n", ret);
- return 1;
- }
-
- if ((ret = pthread_rwlock_destroy (&r)) != 0)
- {
- printf ("second rwlock_destroy failed: %d\n", ret);
- return 1;
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-rwlock14.c b/test/nptl/tst-rwlock14.c
deleted file mode 100644
index 953d802..0000000
--- a/test/nptl/tst-rwlock14.c
+++ /dev/null
@@ -1,168 +0,0 @@
-/* Copyright (C) 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-
-
-static pthread_barrier_t b;
-static pthread_rwlock_t r = PTHREAD_RWLOCK_INITIALIZER;
-
-
-static void *
-tf (void *arg)
-{
- /* Lock the read-write lock. */
- if (pthread_rwlock_wrlock (&r) != 0)
- {
- puts ("tf: cannot lock rwlock");
- exit (EXIT_FAILURE);
- }
-
- pthread_t mt = *(pthread_t *) arg;
-
- pthread_barrier_wait (&b);
-
- /* This call will never return. */
- pthread_join (mt, NULL);
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- int result = 0;
- struct timespec ts;
-
- if (clock_gettime (CLOCK_REALTIME, &ts) != 0)
- {
- puts ("clock_gettime failed");
- return 1;
- }
-
- if (pthread_barrier_init (&b, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- return 1;
- }
-
- pthread_t me = pthread_self ();
- pthread_t th;
- if (pthread_create (&th, NULL, tf, &me) != 0)
- {
- puts ("create failed");
- return 1;
- }
-
- /* Wait until the rwlock is locked. */
- pthread_barrier_wait (&b);
-
- ts.tv_nsec = -1;
-
- int e = pthread_rwlock_timedrdlock (&r, &ts);
- if (e == 0)
- {
- puts ("first rwlock_timedrdlock did not fail");
- result = 1;
- }
- else if (e != EINVAL)
- {
- puts ("first rwlock_timedrdlock did not return EINVAL");
- result = 1;
- }
-
- e = pthread_rwlock_timedwrlock (&r, &ts);
- if (e == 0)
- {
- puts ("first rwlock_timedwrlock did not fail");
- result = 1;
- }
- else if (e != EINVAL)
- {
- puts ("first rwlock_timedwrlock did not return EINVAL");
- result = 1;
- }
-
- ts.tv_nsec = 1000000000;
-
- e = pthread_rwlock_timedrdlock (&r, &ts);
- if (e == 0)
- {
- puts ("second rwlock_timedrdlock did not fail");
- result = 1;
- }
- else if (e != EINVAL)
- {
- puts ("second rwlock_timedrdlock did not return EINVAL");
- result = 1;
- }
-
- e = pthread_rwlock_timedrdlock (&r, &ts);
- if (e == 0)
- {
- puts ("second rwlock_timedrdlock did not fail");
- result = 1;
- }
- else if (e != EINVAL)
- {
- puts ("second rwlock_timedrdlock did not return EINVAL");
- result = 1;
- }
-
- ts.tv_nsec = 0x100001000LL;
- if (ts.tv_nsec != 0x100001000LL)
- ts.tv_nsec = 2000000000;
-
- e = pthread_rwlock_timedrdlock (&r, &ts);
- if (e == 0)
- {
- puts ("third rwlock_timedrdlock did not fail");
- result = 1;
- }
- else if (e != EINVAL)
- {
- puts ("third rwlock_timedrdlock did not return EINVAL");
- result = 1;
- }
-
- e = pthread_rwlock_timedrdlock (&r, &ts);
- if (e == 0)
- {
- puts ("third rwlock_timedrdlock did not fail");
- result = 1;
- }
- else if (e != EINVAL)
- {
- puts ("third rwlock_timedrdlock did not return EINVAL");
- result = 1;
- }
-
- if (result == 0)
- puts ("no bugs");
-
- return result;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-rwlock2.c b/test/nptl/tst-rwlock2.c
deleted file mode 100644
index a74ce86..0000000
--- a/test/nptl/tst-rwlock2.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-
-
-static int
-do_test (void)
-{
- pthread_rwlock_t r;
- int e;
-
- if (pthread_rwlock_init (&r, NULL) != 0)
- {
- puts ("rwlock_init failed");
- return 1;
- }
- puts ("rwlock_init succeeded");
-
- if (pthread_rwlock_wrlock (&r) != 0)
- {
- puts ("1st rwlock_wrlock failed");
- return 1;
- }
- puts ("1st rwlock_wrlock succeeded");
-
- e = pthread_rwlock_tryrdlock (&r);
- if (e == 0)
- {
- puts ("rwlock_tryrdlock on rwlock with writer succeeded");
- return 1;
- }
- if (e != EBUSY)
- {
- puts ("rwlock_tryrdlock on rwlock with writer return value != EBUSY");
- return 1;
- }
- puts ("rwlock_tryrdlock on rwlock with writer failed with EBUSY");
-
- e = pthread_rwlock_trywrlock (&r);
- if (e == 0)
- {
- puts ("rwlock_trywrlock on rwlock with writer succeeded");
- return 1;
- }
- if (e != EBUSY)
- {
- puts ("rwlock_trywrlock on rwlock with writer return value != EBUSY");
- return 1;
- }
- puts ("rwlock_trywrlock on rwlock with writer failed with EBUSY");
-
- if (pthread_rwlock_unlock (&r) != 0)
- {
- puts ("1st rwlock_unlock failed");
- return 1;
- }
- puts ("1st rwlock_unlock succeeded");
-
- if (pthread_rwlock_tryrdlock (&r) != 0)
- {
- puts ("rwlock_tryrdlock on unlocked rwlock failed");
- return 1;
- }
- puts ("rwlock_tryrdlock on unlocked rwlock succeeded");
-
- e = pthread_rwlock_trywrlock (&r);
- if (e == 0)
- {
- puts ("rwlock_trywrlock on rwlock with reader succeeded");
- return 1;
- }
- if (e != EBUSY)
- {
- puts ("rwlock_trywrlock on rwlock with reader return value != EBUSY");
- return 1;
- }
- puts ("rwlock_trywrlock on rwlock with reader failed with EBUSY");
-
- if (pthread_rwlock_unlock (&r) != 0)
- {
- puts ("2nd rwlock_unlock failed");
- return 1;
- }
- puts ("2nd rwlock_unlock succeeded");
-
- if (pthread_rwlock_trywrlock (&r) != 0)
- {
- puts ("rwlock_trywrlock on unlocked rwlock failed");
- return 1;
- }
- puts ("rwlock_trywrlock on unlocked rwlock succeeded");
-
- e = pthread_rwlock_tryrdlock (&r);
- if (e == 0)
- {
- puts ("rwlock_tryrdlock on rwlock with writer succeeded");
- return 1;
- }
- if (e != EBUSY)
- {
- puts ("rwlock_tryrdlock on rwlock with writer return value != EBUSY");
- return 1;
- }
- puts ("rwlock_tryrdlock on rwlock with writer failed with EBUSY");
-
- if (pthread_rwlock_unlock (&r) != 0)
- {
- puts ("3rd rwlock_unlock failed");
- return 1;
- }
- puts ("3rd rwlock_unlock succeeded");
-
- if (pthread_rwlock_destroy (&r) != 0)
- {
- puts ("rwlock_destroy failed");
- return 1;
- }
- puts ("rwlock_destroy succeeded");
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-rwlock2a.c b/test/nptl/tst-rwlock2a.c
deleted file mode 100644
index 615de5c..0000000
--- a/test/nptl/tst-rwlock2a.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define TYPE PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP
-#include "tst-rwlock2.c"
diff --git a/test/nptl/tst-rwlock3.c b/test/nptl/tst-rwlock3.c
deleted file mode 100644
index 1cb5338..0000000
--- a/test/nptl/tst-rwlock3.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* This test case checks more than standard compliance. An
- implementation may provide this service but it is not required to
- do so. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-
-
-static int
-do_test (void)
-{
- pthread_rwlock_t r;
- int e;
-
- if (pthread_rwlock_init (&r, NULL) != 0)
- {
- puts ("rwlock_init failed");
- return 1;
- }
- puts ("rwlock_init succeeded");
-
- if (pthread_rwlock_trywrlock (&r) != 0)
- {
- puts ("rwlock_trywrlock on unlocked rwlock failed");
- return 1;
- }
- puts ("rwlock_trywrlock on unlocked rwlock succeeded");
-
- e = pthread_rwlock_rdlock (&r);
- if (e == 0)
- {
- puts ("rwlock_rdlock on rwlock with writer succeeded");
- return 1;
- }
- if (e != EDEADLK)
- {
- puts ("rwlock_rdlock on rwlock with writer failed != EDEADLK");
- return 1;
- }
- puts ("rwlock_rdlock on rwlock with writer failed with EDEADLK");
-
- e = pthread_rwlock_wrlock (&r);
- if (e == 0)
- {
- puts ("rwlock_wrlock on rwlock with writer succeeded");
- return 1;
- }
- if (e != EDEADLK)
- {
- puts ("rwlock_wrlock on rwlock with writer failed != EDEADLK");
- return 1;
- }
- puts ("rwlock_wrlock on rwlock with writer failed with EDEADLK");
-
- if (pthread_rwlock_unlock (&r) != 0)
- {
- puts ("rwlock_unlock failed");
- return 1;
- }
- puts ("rwlock_unlock succeeded");
-
- if (pthread_rwlock_destroy (&r) != 0)
- {
- puts ("rwlock_destroy failed");
- return 1;
- }
- puts ("rwlock_destroy succeeded");
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-rwlock4.c b/test/nptl/tst-rwlock4.c
deleted file mode 100644
index 0bbf083..0000000
--- a/test/nptl/tst-rwlock4.c
+++ /dev/null
@@ -1,189 +0,0 @@
-/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/wait.h>
-
-
-static int
-do_test (void)
-{
- size_t ps = sysconf (_SC_PAGESIZE);
- char tmpfname[] = "/tmp/tst-rwlock4.XXXXXX";
- char data[ps];
- void *mem;
- int fd;
- pthread_rwlock_t *r;
- pthread_rwlockattr_t a;
- pid_t pid;
- char *p;
- int err;
- int s;
-
- fd = mkstemp (tmpfname);
- if (fd == -1)
- {
- printf ("cannot open temporary file: %m\n");
- return 1;
- }
-
- /* Make sure it is always removed. */
- unlink (tmpfname);
-
- /* Create one page of data. */
- memset (data, '\0', ps);
-
- /* Write the data to the file. */
- if (write (fd, data, ps) != (ssize_t) ps)
- {
- puts ("short write");
- return 1;
- }
-
- mem = mmap (NULL, ps, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
- if (mem == MAP_FAILED)
- {
- printf ("mmap failed: %m\n");
- return 1;
- }
-
- r = (pthread_rwlock_t *) (((uintptr_t) mem + __alignof (pthread_rwlock_t))
- & ~(__alignof (pthread_rwlock_t) - 1));
- p = (char *) (r + 1);
-
- if (pthread_rwlockattr_init (&a) != 0)
- {
- puts ("rwlockattr_init failed");
- return 1;
- }
-
- if (pthread_rwlockattr_getpshared (&a, &s) != 0)
- {
- puts ("1st rwlockattr_getpshared failed");
- return 1;
- }
-
- if (s != PTHREAD_PROCESS_PRIVATE)
- {
- puts ("default pshared value wrong");
- return 1;
- }
-
- if (pthread_rwlockattr_setpshared (&a, PTHREAD_PROCESS_SHARED) != 0)
- {
- puts ("rwlockattr_setpshared failed");
- return 1;
- }
-
- if (pthread_rwlockattr_getpshared (&a, &s) != 0)
- {
- puts ("2nd rwlockattr_getpshared failed");
- return 1;
- }
-
- if (s != PTHREAD_PROCESS_SHARED)
- {
- puts ("pshared value after setpshared call wrong");
- return 1;
- }
-
- if (pthread_rwlock_init (r, &a) != 0)
- {
- puts ("rwlock_init failed");
- return 1;
- }
-
- if (pthread_rwlock_rdlock (r) != 0)
- {
- puts ("rwlock_rdlock failed");
- return 1;
- }
-
- if (pthread_rwlockattr_destroy (&a) != 0)
- {
- puts ("rwlockattr_destroy failed");
- return 1;
- }
-
- err = pthread_rwlock_trywrlock (r);
- if (err == 0)
- {
- puts ("rwlock_trywrlock succeeded");
- return 1;
- }
- else if (err != EBUSY)
- {
- puts ("rwlock_trywrlock didn't return EBUSY");
- return 1;
- }
-
- *p = 0;
-
- puts ("going to fork now");
- pid = fork ();
- if (pid == -1)
- {
- puts ("fork failed");
- return 1;
- }
- else if (pid == 0)
- {
- /* Play some lock ping-pong. It's our turn to unlock first. */
- if ((*p)++ != 0)
- {
- puts ("child: *p != 0");
- return 1;
- }
-
- if (pthread_rwlock_unlock (r) != 0)
- {
- puts ("child: 1st rwlock_unlock failed");
- return 1;
- }
-
- puts ("child done");
- }
- else
- {
- if (pthread_rwlock_wrlock (r) != 0)
- {
- puts ("parent: rwlock_wrlock failed");
- return 1;
- }
-
- if (*p != 1)
- {
- puts ("*p != 1");
- return 1;
- }
-
- puts ("parent done");
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-rwlock5.c b/test/nptl/tst-rwlock5.c
deleted file mode 100644
index 4914afd..0000000
--- a/test/nptl/tst-rwlock5.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
-static pthread_rwlock_t r;
-
-
-static void *
-tf (void *arg)
-{
- if (pthread_rwlock_wrlock (&r) == 0)
- {
- puts ("child: rwlock_wrlock succeeded");
- exit (1);
- }
-
- puts ("child: rwlock_wrlock returned");
-
- exit (1);
-}
-
-
-static int
-do_test (void)
-{
- pthread_t th;
-
- if (pthread_rwlock_init (&r, NULL) != 0)
- {
- puts ("rwlock_init failed");
- return 1;
- }
-
- if (pthread_rwlock_wrlock (&r) != 0)
- {
- puts ("rwlock_wrlock failed");
- return 1;
- }
-
- if (pthread_mutex_lock (&m) != 0)
- {
- puts ("mutex_lock failed");
- return 1;
- }
-
- /* Set an alarm for 1 second. The wrapper will expect this. */
- alarm (1);
-
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("create failed");
- return 1;
- }
-
- /* This call should never return. */
- pthread_mutex_lock (&m);
-
- puts ("2nd mutex_lock returned");
- return 1;
-}
-
-#define EXPECTED_SIGNAL SIGALRM
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-rwlock6.c b/test/nptl/tst-rwlock6.c
deleted file mode 100644
index 78d0716..0000000
--- a/test/nptl/tst-rwlock6.c
+++ /dev/null
@@ -1,225 +0,0 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/time.h>
-
-
-static int kind[] =
- {
- PTHREAD_RWLOCK_PREFER_READER_NP,
- PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,
- PTHREAD_RWLOCK_PREFER_WRITER_NP,
- };
-
-
-static void *
-tf (void *arg)
-{
- pthread_rwlock_t *r = arg;
-
- /* Timeout: 0.3 secs. */
- struct timeval tv;
- (void) gettimeofday (&tv, NULL);
-
- struct timespec ts;
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- ts.tv_nsec += 300000000;
- if (ts.tv_nsec >= 1000000000)
- {
- ts.tv_nsec -= 1000000000;
- ++ts.tv_sec;
- }
-
- puts ("child calling timedrdlock");
-
- int err = pthread_rwlock_timedrdlock (r, &ts);
- if (err == 0)
- {
- puts ("rwlock_timedrdlock returned");
- pthread_exit ((void *) 1l);
- }
-
- if (err != ETIMEDOUT)
- {
- printf ("err = %s (%d), expected %s (%d)\n",
- strerror (err), err, strerror (ETIMEDOUT), ETIMEDOUT);
- pthread_exit ((void *) 1l);
- }
-
- puts ("1st child timedrdlock done");
-
- struct timeval tv2;
- (void) gettimeofday (&tv2, NULL);
-
- timersub (&tv2, &tv, &tv);
-
- if (tv.tv_usec < 200000)
- {
- puts ("timeout too short");
- pthread_exit ((void *) 1l);
- }
-
- (void) gettimeofday (&tv, NULL);
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- ts.tv_sec += 10;
- /* Note that the following operation makes ts invalid. */
- ts.tv_nsec += 1000000000;
-
- err = pthread_rwlock_timedrdlock (r, &ts);
- if (err == 0)
- {
- puts ("2nd timedrdlock succeeded");
- pthread_exit ((void *) 1l);
- }
- if (err != EINVAL)
- {
- puts ("2nd timedrdlock did not return EINVAL");
- pthread_exit ((void *) 1l);
- }
-
- puts ("2nd child timedrdlock done");
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- size_t cnt;
- for (cnt = 0; cnt < sizeof (kind) / sizeof (kind[0]); ++cnt)
- {
- pthread_rwlock_t r;
- pthread_rwlockattr_t a;
-
- if (pthread_rwlockattr_init (&a) != 0)
- {
- printf ("round %Zu: rwlockattr_t failed\n", cnt);
- exit (1);
- }
-
- if (pthread_rwlockattr_setkind_np (&a, kind[cnt]) != 0)
- {
- printf ("round %Zu: rwlockattr_setkind failed\n", cnt);
- exit (1);
- }
-
- if (pthread_rwlock_init (&r, &a) != 0)
- {
- printf ("round %Zu: rwlock_init failed\n", cnt);
- exit (1);
- }
-
- if (pthread_rwlockattr_destroy (&a) != 0)
- {
- printf ("round %Zu: rwlockattr_destroy failed\n", cnt);
- exit (1);
- }
-
- struct timeval tv;
- (void) gettimeofday (&tv, NULL);
-
- struct timespec ts;
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
-
- ++ts.tv_sec;
-
- /* Get a write lock. */
- int e = pthread_rwlock_timedwrlock (&r, &ts);
- if (e != 0)
- {
- printf ("round %Zu: rwlock_timedwrlock failed (%d)\n", cnt, e);
- exit (1);
- }
-
- puts ("1st timedwrlock done");
-
- (void) gettimeofday (&tv, NULL);
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- ++ts.tv_sec;
- e = pthread_rwlock_timedrdlock (&r, &ts);
- if (e == 0)
- {
- puts ("timedrdlock succeeded");
- exit (1);
- }
- if (e != EDEADLK)
- {
- puts ("timedrdlock did not return EDEADLK");
- exit (1);
- }
-
- puts ("1st timedrdlock done");
-
- (void) gettimeofday (&tv, NULL);
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- ++ts.tv_sec;
- e = pthread_rwlock_timedwrlock (&r, &ts);
- if (e == 0)
- {
- puts ("2nd timedwrlock succeeded");
- exit (1);
- }
- if (e != EDEADLK)
- {
- puts ("2nd timedwrlock did not return EDEADLK");
- exit (1);
- }
-
- puts ("2nd timedwrlock done");
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, &r) != 0)
- {
- printf ("round %Zu: create failed\n", cnt);
- exit (1);
- }
-
- puts ("started thread");
-
- void *status;
- if (pthread_join (th, &status) != 0)
- {
- printf ("round %Zu: join failed\n", cnt);
- exit (1);
- }
- if (status != NULL)
- {
- printf ("failure in round %Zu\n", cnt);
- exit (1);
- }
-
- puts ("joined thread");
-
- if (pthread_rwlock_destroy (&r) != 0)
- {
- printf ("round %Zu: rwlock_destroy failed\n", cnt);
- exit (1);
- }
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-rwlock7.c b/test/nptl/tst-rwlock7.c
deleted file mode 100644
index 5189a47..0000000
--- a/test/nptl/tst-rwlock7.c
+++ /dev/null
@@ -1,178 +0,0 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/time.h>
-
-
-static int kind[] =
- {
- PTHREAD_RWLOCK_PREFER_READER_NP,
- PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,
- PTHREAD_RWLOCK_PREFER_WRITER_NP,
- };
-
-
-static void *
-tf (void *arg)
-{
- pthread_rwlock_t *r = arg;
-
- /* Timeout: 0.3 secs. */
- struct timeval tv;
- (void) gettimeofday (&tv, NULL);
-
- struct timespec ts;
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- ts.tv_nsec += 300000000;
- if (ts.tv_nsec >= 1000000000)
- {
- ts.tv_nsec -= 1000000000;
- ++ts.tv_sec;
- }
-
- int err = pthread_rwlock_timedwrlock (r, &ts);
- if (err == 0)
- {
- puts ("rwlock_timedwrlock returned");
- pthread_exit ((void *) 1l);
- }
-
- if (err != ETIMEDOUT)
- {
- printf ("err = %s (%d), expected %s (%d)\n",
- strerror (err), err, strerror (ETIMEDOUT), ETIMEDOUT);
- pthread_exit ((void *) 1l);
- }
-
- struct timeval tv2;
- (void) gettimeofday (&tv2, NULL);
-
- timersub (&tv2, &tv, &tv);
-
- if (tv.tv_usec < 200000)
- {
- puts ("timeout too short");
- pthread_exit ((void *) 1l);
- }
-
- (void) gettimeofday (&tv, NULL);
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- ts.tv_sec += 10;
- /* Note that the following operation makes ts invalid. */
- ts.tv_nsec += 1000000000;
-
- err = pthread_rwlock_timedwrlock (r, &ts);
- if (err == 0)
- {
- puts ("2nd timedwrlock succeeded");
- pthread_exit ((void *) 1l);
- }
- if (err != EINVAL)
- {
- puts ("2nd timedwrlock did not return EINVAL");
- pthread_exit ((void *) 1l);
- }
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- size_t cnt;
- for (cnt = 0; cnt < sizeof (kind) / sizeof (kind[0]); ++cnt)
- {
- pthread_rwlock_t r;
- pthread_rwlockattr_t a;
-
- if (pthread_rwlockattr_init (&a) != 0)
- {
- printf ("round %Zu: rwlockattr_t failed\n", cnt);
- exit (1);
- }
-
- if (pthread_rwlockattr_setkind_np (&a, kind[cnt]) != 0)
- {
- printf ("round %Zu: rwlockattr_setkind failed\n", cnt);
- exit (1);
- }
-
- if (pthread_rwlock_init (&r, &a) != 0)
- {
- printf ("round %Zu: rwlock_init failed\n", cnt);
- exit (1);
- }
-
- if (pthread_rwlockattr_destroy (&a) != 0)
- {
- printf ("round %Zu: rwlockattr_destroy failed\n", cnt);
- exit (1);
- }
-
- struct timeval tv;
- (void) gettimeofday (&tv, NULL);
-
- struct timespec ts;
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
-
- ++ts.tv_sec;
-
- /* Get a read lock. */
- if (pthread_rwlock_timedrdlock (&r, &ts) != 0)
- {
- printf ("round %Zu: rwlock_timedrdlock failed\n", cnt);
- exit (1);
- }
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, &r) != 0)
- {
- printf ("round %Zu: create failed\n", cnt);
- exit (1);
- }
-
- void *status;
- if (pthread_join (th, &status) != 0)
- {
- printf ("round %Zu: join failed\n", cnt);
- exit (1);
- }
- if (status != NULL)
- {
- printf ("failure in round %Zu\n", cnt);
- exit (1);
- }
-
- if (pthread_rwlock_destroy (&r) != 0)
- {
- printf ("round %Zu: rwlock_destroy failed\n", cnt);
- exit (1);
- }
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-rwlock8.c b/test/nptl/tst-rwlock8.c
deleted file mode 100644
index b67e55a..0000000
--- a/test/nptl/tst-rwlock8.c
+++ /dev/null
@@ -1,163 +0,0 @@
-/* Test program for timedout read/write lock functions.
- Copyright (C) 2000, 2003 Free Software Foundation, Inc.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2000.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <error.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include <unistd.h>
-
-
-#define NWRITERS 15
-#define WRITETRIES 10
-#define NREADERS 15
-#define READTRIES 15
-
-#define DELAY 1000000
-
-#ifndef INIT
-# define INIT PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP
-#endif
-
-static pthread_rwlock_t lock = INIT;
-
-
-static void *
-writer_thread (void *nr)
-{
- struct timespec delay;
- int n;
-
- delay.tv_sec = 0;
- delay.tv_nsec = DELAY;
-
- for (n = 0; n < WRITETRIES; ++n)
- {
- printf ("writer thread %ld tries again\n", (long int) nr);
-
- if (pthread_rwlock_wrlock (&lock) != 0)
- {
- puts ("wrlock failed");
- exit (1);
- }
-
- printf ("writer thread %ld succeeded\n", (long int) nr);
-
- nanosleep (&delay, NULL);
-
- if (pthread_rwlock_unlock (&lock) != 0)
- {
- puts ("unlock for writer failed");
- exit (1);
- }
-
- printf ("writer thread %ld released\n", (long int) nr);
- }
-
- return NULL;
-}
-
-
-static void *
-reader_thread (void *nr)
-{
- struct timespec delay;
- int n;
-
- delay.tv_sec = 0;
- delay.tv_nsec = DELAY;
-
- for (n = 0; n < READTRIES; ++n)
- {
- printf ("reader thread %ld tries again\n", (long int) nr);
-
- if (pthread_rwlock_rdlock (&lock) != 0)
- {
- puts ("rdlock failed");
- exit (1);
- }
-
- printf ("reader thread %ld succeeded\n", (long int) nr);
-
- nanosleep (&delay, NULL);
-
- if (pthread_rwlock_unlock (&lock) != 0)
- {
- puts ("unlock for reader failed");
- exit (1);
- }
-
- printf ("reader thread %ld released\n", (long int) nr);
- }
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- pthread_t thwr[NWRITERS];
- pthread_t thrd[NREADERS];
- int n;
- void *res;
-
- /* Make standard error the same as standard output. */
- dup2 (1, 2);
-
- /* Make sure we see all message, even those on stdout. */
- setvbuf (stdout, NULL, _IONBF, 0);
-
- for (n = 0; n < NWRITERS; ++n)
- if (pthread_create (&thwr[n], NULL, writer_thread,
- (void *) (long int) n) != 0)
- {
- puts ("writer create failed");
- exit (1);
- }
-
- for (n = 0; n < NREADERS; ++n)
- if (pthread_create (&thrd[n], NULL, reader_thread,
- (void *) (long int) n) != 0)
- {
- puts ("reader create failed");
- exit (1);
- }
-
- /* Wait for all the threads. */
- for (n = 0; n < NWRITERS; ++n)
- if (pthread_join (thwr[n], &res) != 0)
- {
- puts ("writer join failed");
- exit (1);
- }
- for (n = 0; n < NREADERS; ++n)
- if (pthread_join (thrd[n], &res) != 0)
- {
- puts ("reader join failed");
- exit (1);
- }
-
- return 0;
-}
-
-#define TIMEOUT 30
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-rwlock9.c b/test/nptl/tst-rwlock9.c
deleted file mode 100644
index e9f0151..0000000
--- a/test/nptl/tst-rwlock9.c
+++ /dev/null
@@ -1,202 +0,0 @@
-/* Test program for timedout read/write lock functions.
- Copyright (C) 2000, 2003 Free Software Foundation, Inc.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2000.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <error.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include <unistd.h>
-#include <sys/time.h>
-
-
-#define NWRITERS 15
-#define WRITETRIES 10
-#define NREADERS 15
-#define READTRIES 15
-
-#define TIMEOUT 1000000
-#define DELAY 1000000
-
-#ifndef INIT
-# define INIT PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP
-#endif
-
-static pthread_rwlock_t lock = INIT;
-
-
-static void *
-writer_thread (void *nr)
-{
- struct timespec ts;
- struct timespec delay;
- int n;
-
- delay.tv_sec = 0;
- delay.tv_nsec = DELAY;
-
- for (n = 0; n < WRITETRIES; ++n)
- {
- int e;
- do
- {
- struct timeval tv;
- (void) gettimeofday (&tv, NULL);
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
-
- ts.tv_nsec += 2 * TIMEOUT;
- if (ts.tv_nsec >= 1000000000)
- {
- ts.tv_nsec -= 1000000000;
- ++ts.tv_sec;
- }
-
- printf ("writer thread %ld tries again\n", (long int) nr);
-
- e = pthread_rwlock_timedwrlock (&lock, &ts);
- if (e != 0 && e != ETIMEDOUT)
- {
- puts ("timedwrlock failed");
- exit (1);
- }
- }
- while (e == ETIMEDOUT);
-
- printf ("writer thread %ld succeeded\n", (long int) nr);
-
- nanosleep (&delay, NULL);
-
- if (pthread_rwlock_unlock (&lock) != 0)
- {
- puts ("unlock for writer failed");
- exit (1);
- }
-
- printf ("writer thread %ld released\n", (long int) nr);
- }
-
- return NULL;
-}
-
-
-static void *
-reader_thread (void *nr)
-{
- struct timespec ts;
- struct timespec delay;
- int n;
-
- delay.tv_sec = 0;
- delay.tv_nsec = DELAY;
-
- for (n = 0; n < READTRIES; ++n)
- {
- int e;
- do
- {
- struct timeval tv;
- (void) gettimeofday (&tv, NULL);
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
-
- ts.tv_nsec += TIMEOUT;
- if (ts.tv_nsec >= 1000000000)
- {
- ts.tv_nsec -= 1000000000;
- ++ts.tv_sec;
- }
-
- printf ("reader thread %ld tries again\n", (long int) nr);
-
- e = pthread_rwlock_timedrdlock (&lock, &ts);
- if (e != 0 && e != ETIMEDOUT)
- {
- puts ("timedrdlock failed");
- exit (1);
- }
- }
- while (e == ETIMEDOUT);
-
- printf ("reader thread %ld succeeded\n", (long int) nr);
-
- nanosleep (&delay, NULL);
-
- if (pthread_rwlock_unlock (&lock) != 0)
- {
- puts ("unlock for reader failed");
- exit (1);
- }
-
- printf ("reader thread %ld released\n", (long int) nr);
- }
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- pthread_t thwr[NWRITERS];
- pthread_t thrd[NREADERS];
- int n;
- void *res;
-
- /* Make standard error the same as standard output. */
- dup2 (1, 2);
-
- /* Make sure we see all message, even those on stdout. */
- setvbuf (stdout, NULL, _IONBF, 0);
-
- for (n = 0; n < NWRITERS; ++n)
- if (pthread_create (&thwr[n], NULL, writer_thread,
- (void *) (long int) n) != 0)
- {
- puts ("writer create failed");
- exit (1);
- }
-
- for (n = 0; n < NREADERS; ++n)
- if (pthread_create (&thrd[n], NULL, reader_thread,
- (void *) (long int) n) != 0)
- {
- puts ("reader create failed");
- exit (1);
- }
-
- /* Wait for all the threads. */
- for (n = 0; n < NWRITERS; ++n)
- if (pthread_join (thwr[n], &res) != 0)
- {
- puts ("writer join failed");
- exit (1);
- }
- for (n = 0; n < NREADERS; ++n)
- if (pthread_join (thrd[n], &res) != 0)
- {
- puts ("reader join failed");
- exit (1);
- }
-
- return 0;
-}
-
-#undef TIMEOUT
-#define TIMEOUT 30
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-sched1.c b/test/nptl/tst-sched1.c
deleted file mode 100644
index be3f1b8..0000000
--- a/test/nptl/tst-sched1.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <sys/types.h>
-
-
-static int global;
-
-static void *
-tf (void *a)
-{
- global = 1;
-
- return 0;
-}
-
-
-int
-do_test (void)
-{
- pthread_t th;
- pthread_attr_t at;
-
- if (pthread_attr_init (&at) != 0)
- {
- puts ("attr_init failed");
- return 1;
- }
-
- if (pthread_attr_setschedpolicy (&at, SCHED_OTHER) != 0)
- {
- puts ("attr_setschedpolicy failed");
- return 1;
- }
-
- struct sched_param pa;
- if (sched_getparam (getpid (), &pa) != 0)
- {
- puts ("sched_getschedparam failed");
- return 1;
- }
-
- if (pthread_attr_setschedparam (&at, &pa) != 0)
- {
- puts ("attr_setschedparam failed");
- return 1;
- }
-
- if (pthread_attr_setinheritsched (&at, PTHREAD_EXPLICIT_SCHED) != 0)
- {
- puts ("attr_setinheritsched failed");
- return 1;
- }
-
- if (pthread_create (&th, &at, tf, NULL) != 0)
- {
- puts ("create failed");
- return 1;
- }
-
- int e = pthread_join (th, NULL);
- if (e != 0)
- {
- printf ("join failed: %d\n", e);
- return 1;
- }
-
- if (global == 0)
- {
- puts ("thread didn't run");
- return 1;
- }
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-sem1.c b/test/nptl/tst-sem1.c
deleted file mode 100644
index 5e55dd3..0000000
--- a/test/nptl/tst-sem1.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <semaphore.h>
-#include <stdio.h>
-#include <unistd.h>
-
-
-static int
-do_test (void)
-{
- sem_t s;
-
- if (sem_init (&s, 0, 1) == -1)
- {
- puts ("init failed");
- return 1;
- }
-
- if (TEMP_FAILURE_RETRY (sem_wait (&s)) == -1)
- {
- puts ("1st wait failed");
- return 1;
- }
-
- if (sem_post (&s) == -1)
- {
- puts ("1st post failed");
- return 1;
- }
-
- if (TEMP_FAILURE_RETRY (sem_trywait (&s)) == -1)
- {
- puts ("1st trywait failed");
- return 1;
- }
-
- errno = 0;
- if (TEMP_FAILURE_RETRY (sem_trywait (&s)) != -1)
- {
- puts ("2nd trywait succeeded");
- return 1;
- }
- else if (errno != EAGAIN)
- {
- puts ("2nd trywait did not set errno to EAGAIN");
- return 1;
- }
-
- if (sem_post (&s) == -1)
- {
- puts ("2nd post failed");
- return 1;
- }
-
- if (TEMP_FAILURE_RETRY (sem_wait (&s)) == -1)
- {
- puts ("2nd wait failed");
- return 1;
- }
-
- if (sem_destroy (&s) == -1)
- {
- puts ("destroy failed");
- return 1;
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-sem10.c b/test/nptl/tst-sem10.c
deleted file mode 100644
index ae6218a..0000000
--- a/test/nptl/tst-sem10.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Copyright (C) 2007 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2007.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <semaphore.h>
-#include <stdio.h>
-#include <time.h>
-#include <unistd.h>
-#include <sys/time.h>
-
-
-static int
-do_test (void)
-{
- sem_t s;
- if (sem_init (&s, 0, 0) == -1)
- {
- puts ("sem_init failed");
- return 1;
- }
-
- struct timeval tv;
- if (gettimeofday (&tv, NULL) != 0)
- {
- puts ("gettimeofday failed");
- return 1;
- }
-
- struct timespec ts;
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
-
- /* Set ts to yesterday. */
- ts.tv_sec -= 86400;
-
- int type_before;
- if (pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, &type_before) != 0)
- {
- puts ("first pthread_setcanceltype failed");
- return 1;
- }
-
- errno = 0;
- if (TEMP_FAILURE_RETRY (sem_timedwait (&s, &ts)) != -1)
- {
- puts ("sem_timedwait succeeded");
- return 1;
- }
- if (errno != ETIMEDOUT)
- {
- printf ("sem_timedwait return errno = %d instead of ETIMEDOUT\n",
- errno);
- return 1;
- }
-
- int type_after;
- if (pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, &type_after) != 0)
- {
- puts ("second pthread_setcanceltype failed");
- return 1;
- }
- if (type_after != PTHREAD_CANCEL_DEFERRED)
- {
- puts ("sem_timedwait changed cancellation type");
- return 1;
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-sem11.c b/test/nptl/tst-sem11.c
deleted file mode 100644
index 6633ddd..0000000
--- a/test/nptl/tst-sem11.c
+++ /dev/null
@@ -1,76 +0,0 @@
-#include <semaphore.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <pthread.h>
-#include <internaltypes.h>
-
-#ifndef SEM_WAIT
-# define SEM_WAIT(s) sem_wait (s)
-#endif
-
-static void *
-tf (void *arg)
-{
-#ifdef PREPARE
- PREPARE
-#endif
- SEM_WAIT (arg);
- return NULL;
-}
-
-int
-main (void)
-{
- int tries = 5;
- pthread_t th;
- sem_t s;
- again:
- if (sem_init (&s, 0, 0) != 0)
- {
- puts ("sem_init failed");
- return 1;
- }
-
- struct new_sem *is = (struct new_sem *) &s;
-
- if (is->nwaiters != 0)
- {
- puts ("nwaiters not initialized");
- return 1;
- }
-
- if (pthread_create (&th, NULL, tf, &s) != 0)
- {
- puts ("pthread_create failed");
- return 1;
- }
-
- sleep (1);
-
- if (pthread_cancel (th) != 0)
- {
- puts ("pthread_cancel failed");
- return 1;
- }
-
- void *r;
- if (pthread_join (th, &r) != 0)
- {
- puts ("pthread_join failed");
- return 1;
- }
- if (r != PTHREAD_CANCELED && --tries > 0)
- {
- /* Maybe we get the scheduling right the next time. */
- sem_destroy (&s);
- goto again;
- }
-
- if (is->nwaiters != 0)
- {
- puts ("nwaiters not reset");
- return 1;
- }
-
- return 0;
-}
diff --git a/test/nptl/tst-sem12.c b/test/nptl/tst-sem12.c
deleted file mode 100644
index 71d02b7..0000000
--- a/test/nptl/tst-sem12.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include <time.h>
-#include <sys/time.h>
-
-
-#define PREPARE \
- struct timespec ts; \
- struct timeval tv; \
- gettimeofday (&tv, NULL); \
- TIMEVAL_TO_TIMESPEC (&tv, &ts); \
- ts.tv_sec += 60;
-
-#define SEM_WAIT(s) sem_timedwait (s, &ts)
-
-#include "tst-sem11.c"
diff --git a/test/nptl/tst-sem2.c b/test/nptl/tst-sem2.c
deleted file mode 100644
index edc553c..0000000
--- a/test/nptl/tst-sem2.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <semaphore.h>
-#include <signal.h>
-#include <stdio.h>
-#include <unistd.h>
-
-
-static int
-do_test (void)
-{
- sem_t s;
-
- if (sem_init (&s, 0, 0) == -1)
- {
- puts ("init failed");
- return 1;
- }
-
- /* Set an alarm for 1 second. The wrapper will expect this. */
- alarm (1);
-
- if (TEMP_FAILURE_RETRY (sem_wait (&s)) == -1)
- {
- puts ("wait failed");
- return 1;
- }
-
- /* We should never get here. */
- puts ("wait succeeded");
- return 1;
-}
-
-#define EXPECTED_SIGNAL SIGALRM
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-sem3.c b/test/nptl/tst-sem3.c
deleted file mode 100644
index 7b75e29..0000000
--- a/test/nptl/tst-sem3.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/* Copyright (C) 2002-2014 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <semaphore.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/wait.h>
-
-
-int
-do_test (void)
-{
- size_t ps = sysconf (_SC_PAGESIZE);
- char tmpfname[] = "/tmp/tst-sem3.XXXXXX";
- char data[ps];
- void *mem;
- int fd;
- sem_t *s;
- pid_t pid;
- char *p;
-
- fd = mkstemp (tmpfname);
- if (fd == -1)
- {
- printf ("cannot open temporary file: %m\n");
- return 1;
- }
-
- /* Make sure it is always removed. */
- unlink (tmpfname);
-
- /* Create one page of data. */
- memset (data, '\0', ps);
-
- /* Write the data to the file. */
- if (write (fd, data, ps) != (ssize_t) ps)
- {
- puts ("short write");
- return 1;
- }
-
- mem = mmap (NULL, ps, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
- if (mem == MAP_FAILED)
- {
- printf ("mmap failed: %m\n");
- return 1;
- }
-
- s = (sem_t *) (((uintptr_t) mem + __alignof (sem_t))
- & ~(__alignof (sem_t) - 1));
- p = (char *) (s + 1);
-
- if (sem_init (s, 1, 1) == -1)
- {
- puts ("init failed");
- return 1;
- }
-
- if (TEMP_FAILURE_RETRY (sem_wait (s)) == -1)
- {
- puts ("1st wait failed");
- return 1;
- }
-
- errno = 0;
- if (TEMP_FAILURE_RETRY (sem_trywait (s)) != -1)
- {
- puts ("trywait succeeded");
- return 1;
- }
- else if (errno != EAGAIN)
- {
- puts ("trywait didn't return EAGAIN");
- return 1;
- }
-
- *p = 0;
-
- puts ("going to fork now");
- pid = fork ();
- if (pid == -1)
- {
- puts ("fork failed");
- return 1;
- }
- else if (pid == 0)
- {
- /* Play some lock ping-pong. It's our turn to unlock first. */
- if ((*p)++ != 0)
- {
- puts ("child: *p != 0");
- return 1;
- }
-
- if (sem_post (s) == -1)
- {
- puts ("child: 1st post failed");
- return 1;
- }
-
- puts ("child done");
- }
- else
- {
- if (TEMP_FAILURE_RETRY (sem_wait (s)) == -1)
- {
- printf ("parent: 2nd wait failed: %m\n");
- return 1;
- }
-
- if (*p != 1)
- {
- puts ("*p != 1");
- return 1;
- }
-
- puts ("parent done");
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-sem4.c b/test/nptl/tst-sem4.c
deleted file mode 100644
index 72ed97d..0000000
--- a/test/nptl/tst-sem4.c
+++ /dev/null
@@ -1,149 +0,0 @@
-/* Copyright (C) 2002-2014 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <semaphore.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static void
-remove_sem (int status, void *arg)
-{
- sem_unlink (arg);
-}
-
-
-int
-do_test (void)
-{
- sem_t *s;
- sem_t *s2;
- pid_t pid;
- int val;
-
- s = sem_open ("/glibc-tst-sem4", O_CREAT, 0600, 1);
- if (s == SEM_FAILED)
- {
- if (errno == ENOSYS)
- {
- puts ("sem_open not supported. Oh well.");
- return 0;
- }
-
- /* Maybe the shm filesystem has strict permissions. */
- if (errno == EACCES)
- {
- puts ("sem_open not allowed. Oh well.");
- return 0;
- }
-
- printf ("sem_open: %m\n");
- return 1;
- }
-
- on_exit (remove_sem, (void *) "/glibc-tst-sem4");
-
- /* We have the semaphore object. Now try again with O_EXCL, this
- should fail. */
- s2 = sem_open ("/glibc-tst-sem4", O_CREAT | O_EXCL, 0600, 1);
- if (s2 != SEM_FAILED)
- {
- puts ("2nd sem_open didn't fail");
- return 1;
- }
- if (errno != EEXIST)
- {
- puts ("2nd sem_open returned wrong error");
- return 1;
- }
-
- /* Check the value. */
- if (sem_getvalue (s, &val) == -1)
- {
- puts ("getvalue failed");
- return 1;
- }
- if (val != 1)
- {
- printf ("initial value wrong: got %d, expected 1\n", val);
- return 1;
- }
-
- if (TEMP_FAILURE_RETRY (sem_wait (s)) == -1)
- {
- puts ("1st sem_wait failed");
- return 1;
- }
-
- pid = fork ();
- if (pid == -1)
- {
- printf ("fork failed: %m\n");
- return 1;
- }
-
- if (pid == 0)
- {
- /* Child. */
-
- /* Check the value. */
- if (sem_getvalue (s, &val) == -1)
- {
- puts ("child: getvalue failed");
- return 1;
- }
- if (val != 0)
- {
- printf ("child: value wrong: got %d, expect 0\n", val);
- return 1;
- }
-
- if (sem_post (s) == -1)
- {
- puts ("child: post failed");
- return 1;
- }
- }
- else
- {
- if (TEMP_FAILURE_RETRY (sem_wait (s)) == -1)
- {
- puts ("2nd sem_wait failed");
- return 1;
- }
-
- if (sem_getvalue (s, &val) == -1)
- {
- puts ("parent: 2nd getvalue failed");
- return 1;
- }
- if (val != 0)
- {
- printf ("parent: value wrong: got %d, expected 0\n", val);
- return 1;
- }
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-sem5.c b/test/nptl/tst-sem5.c
deleted file mode 100644
index f0b905c..0000000
--- a/test/nptl/tst-sem5.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <semaphore.h>
-#include <stdio.h>
-#include <time.h>
-#include <unistd.h>
-#include <sys/time.h>
-
-
-static int
-do_test (void)
-{
- sem_t s;
- struct timespec ts;
- struct timeval tv;
-
- if (sem_init (&s, 0, 1) == -1)
- {
- puts ("sem_init failed");
- return 1;
- }
-
- if (TEMP_FAILURE_RETRY (sem_wait (&s)) == -1)
- {
- puts ("sem_wait failed");
- return 1;
- }
-
- if (gettimeofday (&tv, NULL) != 0)
- {
- puts ("gettimeofday failed");
- return 1;
- }
-
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
-
- /* We wait for half a second. */
- ts.tv_nsec += 500000000;
- if (ts.tv_nsec >= 1000000000)
- {
- ++ts.tv_sec;
- ts.tv_nsec -= 1000000000;
- }
-
- errno = 0;
- if (TEMP_FAILURE_RETRY (sem_timedwait (&s, &ts)) != -1)
- {
- puts ("sem_timedwait succeeded");
- return 1;
- }
- if (errno != ETIMEDOUT)
- {
- printf ("sem_timedwait return errno = %d instead of ETIMEDOUT\n",
- errno);
- return 1;
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-sem6.c b/test/nptl/tst-sem6.c
deleted file mode 100644
index 16adb95..0000000
--- a/test/nptl/tst-sem6.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <semaphore.h>
-#include <signal.h>
-#include <stdio.h>
-#include <unistd.h>
-
-
-static void
-handler (int sig)
-{
- struct sigaction sa;
-
- sa.sa_handler = SIG_DFL;
- sa.sa_flags = 0;
- sigemptyset (&sa.sa_mask);
-
- sigaction (SIGALRM, &sa, NULL);
-
- /* Rearm the timer. */
- alarm (1);
-}
-
-
-static int
-do_test (void)
-{
- sem_t s;
- struct sigaction sa;
-
- sa.sa_handler = handler;
- sa.sa_flags = 0;
- sigemptyset (&sa.sa_mask);
-
- sigaction (SIGALRM, &sa, NULL);
-
- if (sem_init (&s, 0, 0) == -1)
- {
- puts ("init failed");
- return 1;
- }
-
- /* Set an alarm for 1 second. The wrapper will expect this. */
- alarm (1);
-
- int res = sem_wait (&s);
- if (res == 0)
- {
- puts ("wait succeeded");
- return 1;
- }
- if (res != -1 || errno != EINTR)
- {
- puts ("wait didn't fail with EINTR");
- return 1;
- }
-
- return 0;
-}
-
-#define TIMEOUT 3
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-sem7.c b/test/nptl/tst-sem7.c
deleted file mode 100644
index 34ddb40..0000000
--- a/test/nptl/tst-sem7.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <semaphore.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static void
-remove_sem (int status, void *arg)
-{
- sem_unlink (arg);
-}
-
-
-int
-main (void)
-{
- sem_t *s;
- sem_t *s2;
- sem_t *s3;
-
- s = sem_open ("/glibc-tst-sem7", O_CREAT, 0600, 1);
- if (s == SEM_FAILED)
- {
- if (errno == ENOSYS)
- {
- puts ("sem_open not supported. Oh well.");
- return 0;
- }
-
- /* Maybe the shm filesystem has strict permissions. */
- if (errno == EACCES)
- {
- puts ("sem_open not allowed. Oh well.");
- return 0;
- }
-
- printf ("sem_open: %m\n");
- return 1;
- }
-
- on_exit (remove_sem, (void *) "/glibc-tst-sem7");
-
- /* We have the semaphore object. Now try again. We should get the
- same address. */
- s2 = sem_open ("/glibc-tst-sem7", O_CREAT, 0600, 1);
- if (s2 == SEM_FAILED)
- {
- puts ("2nd sem_open failed");
- return 1;
- }
- if (s != s2)
- {
- puts ("2nd sem_open didn't return the same address");
- return 1;
- }
-
- /* And again, this time without O_CREAT. */
- s3 = sem_open ("/glibc-tst-sem7", 0);
- if (s3 == SEM_FAILED)
- {
- puts ("3rd sem_open failed");
- return 1;
- }
- if (s != s3)
- {
- puts ("3rd sem_open didn't return the same address");
- return 1;
- }
-
- /* Now close the handle. Three times. */
- if (sem_close (s2) != 0)
- {
- puts ("1st sem_close failed");
- return 1;
- }
- if (sem_close (s) != 0)
- {
- puts ("2nd sem_close failed");
- return 1;
- }
- if (sem_close (s3) != 0)
- {
- puts ("3rd sem_close failed");
- return 1;
- }
-
- return 0;
-}
diff --git a/test/nptl/tst-sem8.c b/test/nptl/tst-sem8.c
deleted file mode 100644
index 286590f..0000000
--- a/test/nptl/tst-sem8.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <semaphore.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static void
-remove_sem (int status, void *arg)
-{
- sem_unlink (arg);
-}
-
-
-int
-main (void)
-{
- sem_t *s;
- int i;
-
- on_exit (remove_sem, (void *) "/glibc-tst-sem8");
-
- for (i = 0; i < 3; ++i)
- {
- s = sem_open ("/glibc-tst-sem8", O_CREAT, 0600, 1);
- if (s == SEM_FAILED)
- {
- if (errno == ENOSYS)
- {
- puts ("sem_open not supported. Oh well.");
- return 0;
- }
-
- /* Maybe the shm filesystem has strict permissions. */
- if (errno == EACCES)
- {
- puts ("sem_open not allowed. Oh well.");
- return 0;
- }
-
- printf ("sem_open: %m\n");
- return 1;
- }
-
- /* Now close the handle. */
- if (sem_close (s) != 0)
- {
- puts ("sem_close failed");
- return 1;
- }
- }
-
- return 0;
-}
diff --git a/test/nptl/tst-sem9.c b/test/nptl/tst-sem9.c
deleted file mode 100644
index bdb594b..0000000
--- a/test/nptl/tst-sem9.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <semaphore.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static void
-remove_sem (int status, void *arg)
-{
- sem_unlink (arg);
-}
-
-
-int
-main (void)
-{
- sem_t *s;
- int i;
-
- on_exit (remove_sem, (void *) "/glibc-tst-sem9");
-
- for (i = 0; i < 3; ++i)
- {
- s = sem_open ("/glibc-tst-sem9", O_CREAT, 0600, 1);
- if (s == SEM_FAILED)
- {
- if (errno == ENOSYS)
- {
- puts ("sem_open not supported. Oh well.");
- return 0;
- }
-
- /* Maybe the shm filesystem has strict permissions. */
- if (errno == EACCES)
- {
- puts ("sem_open not allowed. Oh well.");
- return 0;
- }
-
- printf ("sem_open: %m\n");
- return 1;
- }
-
- /* Now close the handle. */
- if (sem_close (s) != 0)
- {
- puts ("sem_close failed");
- return 1;
- }
-
- /* And remove it. */
- if (sem_unlink ("/glibc-tst-sem9") != 0)
- {
- puts ("sem_unlink failed");
- return 1;
- }
- }
-
- return 0;
-}
diff --git a/test/nptl/tst-signal1.c b/test/nptl/tst-signal1.c
deleted file mode 100644
index 0f952fd..0000000
--- a/test/nptl/tst-signal1.c
+++ /dev/null
@@ -1,188 +0,0 @@
-/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/wait.h>
-
-
-static sigset_t ss;
-static pthread_barrier_t *b;
-
-
-static void *
-tf (void *arg)
-{
- sigdelset (&ss, SIGINT);
-
- if (pthread_sigmask (SIG_SETMASK, &ss, NULL) != 0)
- {
- puts ("2nd pthread_sigmask failed");
- exit (1);
- }
-
- pthread_barrier_wait (b);
-
- int sig;
- int res = sigwait (&ss, &sig);
- if (res == 0)
- {
- printf ("sigwait returned successfully with signal %d\n", sig);
- exit (1);
- }
-
- printf ("sigwait returned with %s (%d)\n", strerror (res), res);
-
- return NULL;
-}
-
-
-static void
-receiver (void)
-{
- pthread_t th;
-
- /* Make sure the process doesn't run forever. */
- alarm (10);
-
- sigfillset (&ss);
-
- if (pthread_sigmask (SIG_SETMASK, &ss, NULL) != 0)
- {
- puts ("1st pthread_sigmask failed");
- exit (1);
- }
-
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("pthread_create failed");
- exit (1);
- }
-
- if (pthread_join (th, NULL) == 0)
- {
- puts ("thread joined?!");
- exit (1);
- }
-
- _exit (0);
-}
-
-
-static int
-do_test (void)
-{
- char tmp[] = "/tmp/tst-signal1-XXXXXX";
-
- int fd = mkstemp (tmp);
- if (fd == -1)
- {
- puts ("mkstemp failed");
- exit (1);
- }
-
- unlink (tmp);
-
- int i;
- for (i = 0; i < 20; ++i)
- write (fd, "foobar xyzzy", 12);
-
- b = mmap (NULL, sizeof (pthread_barrier_t), PROT_READ | PROT_WRITE,
- MAP_SHARED, fd, 0);
- if (b == MAP_FAILED)
- {
- puts ("mmap failed");
- exit (1);
- }
-
- pthread_barrierattr_t ba;
- if (pthread_barrierattr_init (&ba) != 0)
- {
- puts ("barrierattr_init failed");
- exit (1);
- }
-
- if (pthread_barrierattr_setpshared (&ba, PTHREAD_PROCESS_SHARED) != 0)
- {
- puts ("barrierattr_setpshared failed");
- exit (1);
- }
-
- if (pthread_barrier_init (b, &ba, 2) != 0)
- {
- puts ("barrier_init failed");
- exit (1);
- }
-
- if (pthread_barrierattr_destroy (&ba) != 0)
- {
- puts ("barrierattr_destroy failed");
- exit (1);
- }
-
- pid_t pid = fork ();
- if (pid == -1)
- {
- puts ("fork failed");
- exit (1);
- }
-
- if (pid == 0)
- receiver ();
-
- pthread_barrier_wait (b);
-
- /* Wait a bit more. */
- struct timespec ts = { .tv_sec = 0, .tv_nsec = 10000000 };
- nanosleep (&ts, NULL);
-
- /* Send the signal. */
- puts ("sending the signal now");
- kill (pid, SIGINT);
-
- /* Wait for the process to terminate. */
- int status;
- if (TEMP_FAILURE_RETRY (waitpid (pid, &status, 0)) != pid)
- {
- puts ("wrong child reported terminated");
- exit (1);
- }
-
- if (!WIFSIGNALED (status))
- {
- puts ("child wasn't signalled");
- exit (1);
- }
-
- if (WTERMSIG (status) != SIGINT)
- {
- puts ("child not terminated with SIGINT");
- exit (1);
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-signal2.c b/test/nptl/tst-signal2.c
deleted file mode 100644
index 37d5611..0000000
--- a/test/nptl/tst-signal2.c
+++ /dev/null
@@ -1,197 +0,0 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/wait.h>
-#include <string.h>
-
-
-static sigset_t ss;
-static pthread_barrier_t *b;
-
-
-static void *
-tf (void *arg)
-{
- pthread_barrier_wait (b);
-
- puts ("child: calling sigwait now");
-
- int sig;
- int err;
- err = sigwait (&ss, &sig);
- if (err != 0)
- {
- printf ("sigwait returned unsuccessfully: %s (%d)\n",
- strerror (err), err);
- _exit (1);
- }
-
- puts ("sigwait returned");
-
- if (sig != SIGINT)
- {
- printf ("caught signal %d, expected %d (SIGINT)\n", sig, SIGINT);
- _exit (1);
- }
-
- puts ("child thread terminating now");
-
- return NULL;
-}
-
-
-static void
-receiver (void)
-{
- pthread_t th;
-
- /* Make sure the process doesn't run forever. */
- alarm (10);
-
- sigfillset (&ss);
-
- if (pthread_sigmask (SIG_SETMASK, &ss, NULL) != 0)
- {
- puts ("1st pthread_sigmask failed");
- _exit (1);
- }
-
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("pthread_create failed");
- _exit (1);
- }
-
- if (pthread_join (th, NULL) != 0)
- {
- puts ("thread didn't join");
- _exit (1);
- }
-
- puts ("join succeeded");
-
- _exit (0);
-}
-
-
-static int
-do_test (void)
-{
- char tmp[] = "/tmp/tst-signal1-XXXXXX";
-
- int fd = mkstemp (tmp);
- if (fd == -1)
- {
- puts ("mkstemp failed");
- exit (1);
- }
-
- unlink (tmp);
-
- int i;
- for (i = 0; i < 20; ++i)
- write (fd, "foobar xyzzy", 12);
-
- b = mmap (NULL, sizeof (pthread_barrier_t), PROT_READ | PROT_WRITE,
- MAP_SHARED, fd, 0);
- if (b == MAP_FAILED)
- {
- puts ("mmap failed");
- exit (1);
- }
-
- pthread_barrierattr_t ba;
- if (pthread_barrierattr_init (&ba) != 0)
- {
- puts ("barrierattr_init failed");
- exit (1);
- }
-
- if (pthread_barrierattr_setpshared (&ba, PTHREAD_PROCESS_SHARED) != 0)
- {
- puts ("barrierattr_setpshared failed");
- exit (1);
- }
-
- if (pthread_barrier_init (b, &ba, 2) != 0)
- {
- puts ("barrier_init failed");
- exit (1);
- }
-
- if (pthread_barrierattr_destroy (&ba) != 0)
- {
- puts ("barrierattr_destroy failed");
- exit (1);
- }
-
- pid_t pid = fork ();
- if (pid == -1)
- {
- puts ("fork failed");
- exit (1);
- }
-
- if (pid == 0)
- receiver ();
-
- pthread_barrier_wait (b);
-
- /* Wait a bit more. */
- struct timespec ts = { .tv_sec = 0, .tv_nsec = 10000000 };
- nanosleep (&ts, NULL);
-
- /* Send the signal. */
- puts ("sending the signal now");
- kill (pid, SIGINT);
-
- /* Wait for the process to terminate. */
- int status;
- if (TEMP_FAILURE_RETRY (waitpid (pid, &status, 0)) != pid)
- {
- puts ("wrong child reported terminated");
- exit (1);
- }
-
- if (!WIFEXITED (status))
- {
- if (WIFSIGNALED (status))
- printf ("child exited with signal %d\n", WTERMSIG (status));
- else
- puts ("child didn't exit normally");
- exit (1);
- }
-
- if (WEXITSTATUS (status) != 0)
- {
- printf ("exit status %d != 0\n", WEXITSTATUS (status));
- exit (1);
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-signal3.c b/test/nptl/tst-signal3.c
deleted file mode 100644
index fbd9ace..0000000
--- a/test/nptl/tst-signal3.c
+++ /dev/null
@@ -1,260 +0,0 @@
-/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <semaphore.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-/* Number of different signalss to use. Also is the number of
- threads. */
-#define N 10
-/* Maximum number of threads in flight at any one time. */
-#define INFLIGHT 5
-/* Number of signals sent in total. */
-#define ROUNDS 10000
-
-
-static int received[N][N];
-static int nsig[N];
-static pthread_t th[N];
-static sem_t sem;
-static pthread_mutex_t lock[N];
-static pthread_t th_main;
-static int sig0;
-
-static void
-handler (int sig)
-{
- int i;
- for (i = 0; i < N; ++i)
- if (pthread_equal (pthread_self (), th[i]))
- break;
-
- if (i == N)
- {
- if (pthread_equal (pthread_self (), th_main))
- puts ("signal received by main thread");
- else
- printf ("signal received by unknown thread (%lx)\n",
- (unsigned long int) pthread_self ());
- exit (1);
- }
-
- ++received[i][sig - sig0];
-
- sem_post (&sem);
-}
-
-
-static void *
-tf (void *arg)
-{
- int idx = (long int) arg;
-
- sigset_t ss;
- sigemptyset (&ss);
-
- int i;
- for (i = 0; i <= idx; ++i)
- sigaddset (&ss, sig0 + i);
-
- if (pthread_sigmask (SIG_UNBLOCK, &ss, NULL) != 0)
- {
- printf ("thread %d: pthread_sigmask failed\n", i);
- exit (1);
- }
-
- pthread_mutex_lock (&lock[idx]);
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- /* Block all signals. */
- sigset_t ss;
- sigfillset (&ss);
-
- th_main = pthread_self ();
-
- sig0 = SIGRTMIN;
-
- if (pthread_sigmask (SIG_SETMASK, &ss, NULL) != 0)
- {
- puts ("1st pthread_sigmask failed");
- exit (1);
- }
-
- /* Install the handler. */
- int i;
- for (i = 0; i < N; ++i)
- {
- struct sigaction sa =
- {
- .sa_handler = handler,
- .sa_flags = 0
- };
- sigfillset (&sa.sa_mask);
-
- if (sigaction (sig0 + i, &sa, NULL) != 0)
- {
- printf ("sigaction for signal %d failed\n", i);
- exit (1);
- }
- }
-
- if (sem_init (&sem, 0, INFLIGHT) != 0)
- {
- puts ("sem_init failed");
- exit (1);
- }
-
- pthread_attr_t a;
-
- if (pthread_attr_init (&a) != 0)
- {
- puts ("attr_init failed");
- exit (1);
- }
-
- if (pthread_attr_setstacksize (&a, 1 * 1024 * 1024) != 0)
- {
- puts ("attr_setstacksize failed");
- return 1;
- }
-
- for (i = 0; i < N; ++i)
- {
- if (pthread_mutex_init (&lock[i], NULL) != 0)
- {
- printf ("mutex_init[%d] failed\n", i);
- }
-
- if (pthread_mutex_lock (&lock[i]) != 0)
- {
- printf ("mutex_lock[%d] failed\n", i);
- }
-
- if (pthread_create (&th[i], &a, tf, (void *) (long int) i) != 0)
- {
- printf ("create of thread %d failed\n", i);
- exit (1);
- }
- }
-
- if (pthread_attr_destroy (&a) != 0)
- {
- puts ("attr_destroy failed");
- exit (1);
- }
-
- int result = 0;
- unsigned int r = 42;
- pid_t pid = getpid ();
-
- for (i = 0; i < ROUNDS; ++i)
- {
- if (TEMP_FAILURE_RETRY (sem_wait (&sem)) != 0)
- {
- printf ("sem_wait round %d failed: %m\n", i);
- exit (1);
- }
-
- int s = rand_r (&r) % N;
-
- kill (pid, sig0 + s);
- }
-
- void *status;
- for (i = 0; i < N; ++i)
- {
- if (pthread_mutex_unlock (&lock[i]) != 0)
- {
- printf ("unlock %d failed\n", i);
- exit (1);
- }
-
- if (pthread_join (th[i], &status) != 0)
- {
- printf ("join %d failed\n", i);
- result = 1;
- }
- else if (status != NULL)
- {
- printf ("%d: result != NULL\n", i);
- result = 1;
- }
- }
-
- int total = 0;
- for (i = 0; i < N; ++i)
- {
- int j;
-
- for (j = 0; j <= i; ++j)
- total += received[i][j];
-
- for (j = i + 1; j < N; ++j)
- if (received[i][j] != 0)
- {
- printf ("thread %d received signal SIGRTMIN+%d\n", i, j);
- result = 1;
- }
- }
-
- if (total != ROUNDS)
- {
- printf ("total number of handled signals is %d, expected %d\n",
- total, ROUNDS);
- result = 1;
- }
-
- printf ("A total of %d signals sent and received\n", total);
- for (i = 0; i < N; ++i)
- {
- printf ("thread %2d:", i);
-
- int j;
- for (j = 0; j <= i; ++j)
- {
- printf (" %5d", received[i][j]);
- nsig[j] += received[i][j];
- }
-
- putchar ('\n');
-
- }
-
- printf ("\nTotal :");
- for (i = 0; i < N; ++i)
- printf (" %5d", nsig[i]);
- putchar ('\n');
-
- return result;
-}
-
-#define TIMEOUT 10
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-signal4.c b/test/nptl/tst-signal4.c
deleted file mode 100644
index f249b7b..0000000
--- a/test/nptl/tst-signal4.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-static int
-do_test (void)
-{
- sigset_t ss;
-
- sigemptyset (&ss);
-
- int i;
- for (i = 0; i < 10000; ++i)
- {
- long int r = random ();
-
- if (r != SIG_BLOCK && r != SIG_SETMASK && r != SIG_UNBLOCK)
- {
- int e = pthread_sigmask (r, &ss, NULL);
-
- if (e == 0)
- {
- printf ("pthread_sigmask succeeded for how = %ld\n", r);
- exit (1);
- }
-
- if (e != EINVAL)
- {
- puts ("pthread_sigmask didn't return EINVAL");
- exit (1);
- }
- }
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-signal5.c b/test/nptl/tst-signal5.c
deleted file mode 100644
index 5c0ac0c..0000000
--- a/test/nptl/tst-signal5.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/wait.h>
-
-
-static sigset_t ss;
-
-
-static void *
-tf (void *arg)
-{
- sigset_t ss2;
- if (pthread_sigmask (SIG_SETMASK, NULL, &ss2) != 0)
- {
- puts ("child: sigmask failed");
- exit (1);
- }
-
- int i;
- for (i = 1; i < 32; ++i)
- if (sigismember (&ss, i) && ! sigismember (&ss2, i))
- {
- printf ("signal %d set in parent mask, but not in child\n", i);
- exit (1);
- }
- else if (! sigismember (&ss, i) && sigismember (&ss2, i))
- {
- printf ("signal %d set in child mask, but not in parent\n", i);
- exit (1);
- }
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- sigemptyset (&ss);
- sigaddset (&ss, SIGUSR1);
- if (pthread_sigmask (SIG_SETMASK, &ss, NULL) != 0)
- {
- puts ("1st sigmask failed");
- exit (1);
- }
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("1st create failed");
- exit (1);
- }
-
- void *r;
- if (pthread_join (th, &r) != 0)
- {
- puts ("1st join failed");
- exit (1);
- }
-
- sigemptyset (&ss);
- sigaddset (&ss, SIGUSR2);
- sigaddset (&ss, SIGFPE);
- if (pthread_sigmask (SIG_SETMASK, &ss, NULL) != 0)
- {
- puts ("2nd sigmask failed");
- exit (1);
- }
-
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("2nd create failed");
- exit (1);
- }
-
- if (pthread_join (th, &r) != 0)
- {
- puts ("2nd join failed");
- exit (1);
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-signal6.c b/test/nptl/tst-signal6.c
deleted file mode 100644
index 31827b7..0000000
--- a/test/nptl/tst-signal6.c
+++ /dev/null
@@ -1,191 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <signal.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-#define N 2
-static pthread_barrier_t bar;
-static struct
-{
- void *p;
- pthread_t s;
-} ti[N];
-static int sig1;
-
-
-static void
-handler (int sig)
-{
- pthread_t self = pthread_self ();
- size_t i;
-
- for (i = 0; i < N; ++i)
- if (ti[i].s == self)
- {
- if ((uintptr_t) ti[i].p <= (uintptr_t) &self
- && (uintptr_t) ti[i].p + 2 * MINSIGSTKSZ > (uintptr_t) &self)
- {
- puts ("alt stack not used");
- exit (1);
- }
-
- printf ("thread %zu used alt stack for signal %d\n", i, sig);
-
- return;
- }
-
- puts ("handler: thread not found");
- exit (1);
-}
-
-
-static void *
-tf (void *arg)
-{
- size_t nr = (uintptr_t) arg;
- if (nr >= N)
- {
- puts ("wrong nr parameter");
- exit (1);
- }
-
- sigset_t ss;
- sigemptyset (&ss);
- size_t i;
- for (i = 0; i < N; ++i)
- if (i != nr)
- if (sigaddset (&ss, sig1 + i) != 0)
- {
- puts ("tf: sigaddset failed");
- exit (1);
- }
- if (pthread_sigmask (SIG_BLOCK, &ss, NULL) != 0)
- {
- puts ("tf: sigmask failed");
- exit (1);
- }
-
- void *p = malloc (2 * MINSIGSTKSZ);
- if (p == NULL)
- {
- puts ("tf: malloc failed");
- exit (1);
- }
-
- stack_t s;
- s.ss_sp = p;
- s.ss_size = 2 * MINSIGSTKSZ;
- s.ss_flags = 0;
- if (sigaltstack (&s, NULL) != 0)
- {
- puts ("tf: sigaltstack failed");
- exit (1);
- }
-
- ti[nr].p = p;
- ti[nr].s = pthread_self ();
-
- pthread_barrier_wait (&bar);
-
- pthread_barrier_wait (&bar);
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- sig1 = SIGRTMIN;
- if (sig1 + N > SIGRTMAX)
- {
- puts ("too few RT signals");
- return 0;
- }
-
- struct sigaction sa;
- sa.sa_handler = handler;
- sa.sa_flags = 0;
- sigemptyset (&sa.sa_mask);
-
- if (sigaction (sig1, &sa, NULL) != 0
- || sigaction (sig1 + 1, &sa, NULL) != 0
- || sigaction (sig1 + 2, &sa, NULL) != 0)
- {
- puts ("sigaction failed");
- return 1;
- }
-
- if (pthread_barrier_init (&bar, NULL, 1 + N) != 0)
- {
- puts ("barrier_init failed");
- return 1;
- }
-
- pthread_t th[N];
- size_t i;
- for (i = 0; i < N; ++i)
- if (pthread_create (&th[i], NULL, tf, (void *) (long int) i) != 0)
- {
- puts ("create failed");
- return 1;
- }
-
- /* Block the three signals. */
- sigset_t ss;
- sigemptyset (&ss);
- for (i = 0; i <= N; ++i)
- sigaddset (&ss, sig1 + i);
- if (pthread_sigmask (SIG_BLOCK, &ss, NULL) != 0)
- {
- puts ("main: sigmask failed");
- return 1;
- }
-
- pthread_barrier_wait (&bar);
-
- /* Send some signals. */
- pid_t me = getpid ();
- kill (me, sig1 + N);
- for (i = 0; i < N; ++i)
- kill (me, sig1 + i);
- kill (me, sig1 + N);
-
- /* Give the signals a chance to be worked on. */
- sleep (1);
-
- pthread_barrier_wait (&bar);
-
- for (i = 0; i < N; ++i)
- if (pthread_join (th[i], NULL) != 0)
- {
- puts ("join failed");
- return 1;
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-signal7.c b/test/nptl/tst-signal7.c
deleted file mode 100644
index 629f377..0000000
--- a/test/nptl/tst-signal7.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Copyright (C) 2005 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2005.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthreadP.h>
-#include <signal.h>
-#include <stdio.h>
-
-
-static int
-do_test (void)
-{
- int result = 0;
-
- errno = 0;
- if (sigaction (SIGCANCEL, NULL, NULL) == 0)
- {
- puts ("sigaction(SIGCANCEL) did not fail");
- result = 1;
- }
- else if (errno != EINVAL)
- {
- puts ("sigaction(SIGCANCEL) did not set errno to EINVAL");
- result = 1;
- }
-
- errno = 0;
- if (sigaction (SIGSETXID, NULL, NULL) == 0)
- {
- puts ("sigaction(SIGSETXID) did not fail");
- result = 1;
- }
- else if (errno != EINVAL)
- {
- puts ("sigaction(SIGSETXID) did not set errno to EINVAL");
- result = 1;
- }
-
- return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-spin1.c b/test/nptl/tst-spin1.c
deleted file mode 100644
index b55c958..0000000
--- a/test/nptl/tst-spin1.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-
-
-static int
-do_test (void)
-{
- pthread_spinlock_t s;
-
- if (pthread_spin_init (&s, PTHREAD_PROCESS_PRIVATE) != 0)
- {
- puts ("spin_init failed");
- return 1;
- }
-
- if (pthread_spin_lock (&s) != 0)
- {
- puts ("spin_lock failed");
- return 1;
- }
-
- if (pthread_spin_unlock (&s) != 0)
- {
- puts ("spin_unlock failed");
- return 1;
- }
-
- if (pthread_spin_destroy (&s) != 0)
- {
- puts ("spin_destroy failed");
- return 1;
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-spin2.c b/test/nptl/tst-spin2.c
deleted file mode 100644
index 6119a3b..0000000
--- a/test/nptl/tst-spin2.c
+++ /dev/null
@@ -1,158 +0,0 @@
-/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/wait.h>
-
-
-static int
-do_test (void)
-{
- size_t ps = sysconf (_SC_PAGESIZE);
- char tmpfname[] = "/tmp/tst-spin2.XXXXXX";
- char data[ps];
- void *mem;
- int fd;
- pthread_spinlock_t *s;
- pid_t pid;
- char *p;
- int err;
-
- fd = mkstemp (tmpfname);
- if (fd == -1)
- {
- printf ("cannot open temporary file: %m\n");
- return 1;
- }
-
- /* Make sure it is always removed. */
- unlink (tmpfname);
-
- /* Create one page of data. */
- memset (data, '\0', ps);
-
- /* Write the data to the file. */
- if (write (fd, data, ps) != (ssize_t) ps)
- {
- puts ("short write");
- return 1;
- }
-
- mem = mmap (NULL, ps, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
- if (mem == MAP_FAILED)
- {
- printf ("mmap failed: %m\n");
- return 1;
- }
-
- s = (pthread_spinlock_t *) (((uintptr_t) mem
- + __alignof (pthread_spinlock_t))
- & ~(__alignof (pthread_spinlock_t) - 1));
- p = (char *) (s + 1);
-
- if (pthread_spin_init (s, PTHREAD_PROCESS_SHARED) != 0)
- {
- puts ("spin_init failed");
- return 1;
- }
-
- if (pthread_spin_lock (s) != 0)
- {
- puts ("spin_lock failed");
- return 1;
- }
-
- err = pthread_spin_trylock (s);
- if (err == 0)
- {
- puts ("1st spin_trylock succeeded");
- return 1;
- }
- else if (err != EBUSY)
- {
- puts ("1st spin_trylock didn't return EBUSY");
- return 1;
- }
-
- err = pthread_spin_unlock (s);
- if (err != 0)
- {
- puts ("parent: spin_unlock failed");
- return 1;
- }
-
- err = pthread_spin_trylock (s);
- if (err != 0)
- {
- puts ("2nd spin_trylock failed");
- return 1;
- }
-
- *p = 0;
-
- puts ("going to fork now");
- pid = fork ();
- if (pid == -1)
- {
- puts ("fork failed");
- return 1;
- }
- else if (pid == 0)
- {
- /* Play some lock ping-pong. It's our turn to unlock first. */
- if ((*p)++ != 0)
- {
- puts ("child: *p != 0");
- return 1;
- }
-
- if (pthread_spin_unlock (s) != 0)
- {
- puts ("child: 1st spin_unlock failed");
- return 1;
- }
-
- puts ("child done");
- }
- else
- {
- if (pthread_spin_lock (s) != 0)
- {
- puts ("parent: 2nd spin_lock failed");
- return 1;
- }
-
- puts ("waiting for child");
-
- waitpid (pid, NULL, 0);
-
- puts ("parent done");
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-spin3.c b/test/nptl/tst-spin3.c
deleted file mode 100644
index b54d42c..0000000
--- a/test/nptl/tst-spin3.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <unistd.h>
-
-
-static int
-do_test (void)
-{
- pthread_spinlock_t s;
-
- if (pthread_spin_init (&s, PTHREAD_PROCESS_PRIVATE) != 0)
- {
- puts ("spin_init failed");
- return 1;
- }
-
- if (pthread_spin_lock (&s) != 0)
- {
- puts ("1st spin_lock failed");
- return 1;
- }
-
- /* Set an alarm for 1 second. The wrapper will expect this. */
- alarm (1);
-
- /* This call should never return. */
- pthread_spin_lock (&s);
-
- puts ("2nd spin_lock returned");
- return 1;
-}
-
-#define EXPECTED_SIGNAL SIGALRM
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-stack-align.h b/test/nptl/tst-stack-align.h
deleted file mode 100644
index 9a59d71..0000000
--- a/test/nptl/tst-stack-align.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stdio.h>
-#include <stdint.h>
-
-#define TEST_STACK_ALIGN() \
- ({ \
- double _d = 12.0; \
- long double _ld = 15.0; \
- int _ret = 0; \
- printf ("double: %g %p %zu\n", _d, &_d, __alignof (double)); \
- if ((((uintptr_t) &_d) & (__alignof (double) - 1)) != 0) \
- _ret = 1; \
- \
- printf ("ldouble: %Lg %p %zu\n", _ld, &_ld, __alignof (long double));
\
- if ((((uintptr_t) &_ld) & (__alignof (long double) - 1)) != 0) \
- _ret = 1; \
- _ret; \
- })
diff --git a/test/nptl/tst-stack1.c b/test/nptl/tst-stack1.c
deleted file mode 100644
index 288024a..0000000
--- a/test/nptl/tst-stack1.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <limits.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/param.h>
-#include <unistd.h>
-
-
-static void *stack;
-static size_t size;
-
-
-static void *
-tf (void *a)
-{
- int result = 0;
-
- puts ("child start");
-
- pthread_attr_t attr;
- if (pthread_getattr_np (pthread_self (), &attr) != 0)
- {
- puts ("getattr_np failed");
- exit (1);
- }
-
- size_t test_size;
- void *test_stack;
- if (pthread_attr_getstack (&attr, &test_stack, &test_size) != 0)
- {
- puts ("attr_getstack failed");
- exit (1);
- }
-
- if (test_size != size)
- {
- printf ("child: reported size differs: is %zu, expected %zu\n",
- test_size, size);
- result = 1;
- }
-
- if (test_stack != stack)
- {
- printf ("child: reported stack address differs: is %p, expected %p\n",
- test_stack, stack);
- result = 1;
- }
-
- puts ("child OK");
-
- return result ? (void *) 1l : NULL;
-}
-
-
-int
-do_test (void)
-{
- int result = 0;
-
- size = MAX (4 * getpagesize (), PTHREAD_STACK_MIN);
- if (posix_memalign (&stack, getpagesize (), size) != 0)
- {
- puts ("out of memory while allocating the stack memory");
- exit (1);
- }
-
- pthread_attr_t attr;
- if (pthread_attr_init (&attr) != 0)
- {
- puts ("attr_init failed");
- exit (1);
- }
-
- puts ("attr_setstack");
- if (pthread_attr_setstack (&attr, stack, size) != 0)
- {
- puts ("attr_setstack failed");
- exit (1);
- }
-
- size_t test_size;
- void *test_stack;
- puts ("attr_getstack");
- if (pthread_attr_getstack (&attr, &test_stack, &test_size) != 0)
- {
- puts ("attr_getstack failed");
- exit (1);
- }
-
- if (test_size != size)
- {
- printf ("reported size differs: is %zu, expected %zu\n",
- test_size, size);
- result = 1;
- }
-
- if (test_stack != stack)
- {
- printf ("reported stack address differs: is %p, expected %p\n",
- test_stack, stack);
- result = 1;
- }
-
- puts ("create");
-
- pthread_t th;
- if (pthread_create (&th, &attr, tf, NULL) != 0)
- {
- puts ("failed to create thread");
- exit (1);
- }
-
- void *status;
- if (pthread_join (th, &status) != 0)
- {
- puts ("join failed");
- exit (1);
- }
-
- result |= status != NULL;
-
- return result;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-stack2.c b/test/nptl/tst-stack2.c
deleted file mode 100644
index 7b1e2f6..0000000
--- a/test/nptl/tst-stack2.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* Test whether it is possible to create a thread with PTHREAD_STACK_MIN
- stack size. */
-
-#include <pthread.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <limits.h>
-
-static int seen;
-
-static void *
-tf (void *p)
-{
- ++seen;
- return NULL;
-}
-
-static int
-do_test (void)
-{
- pthread_attr_t attr;
- pthread_attr_init (&attr);
-
- int result = 0;
- int res = pthread_attr_setstacksize (&attr, PTHREAD_STACK_MIN);
- if (res)
- {
- printf ("pthread_attr_setstacksize failed %d\n", res);
- result = 1;
- }
-
- /* Create the thread. */
- pthread_t th;
- res = pthread_create (&th, &attr, tf, NULL);
- if (res)
- {
- printf ("pthread_create failed %d\n", res);
- result = 1;
- }
- else
- {
- res = pthread_join (th, NULL);
- if (res)
- {
- printf ("pthread_join failed %d\n", res);
- result = 1;
- }
- }
-
- if (seen != 1)
- {
- printf ("seen %d != 1\n", seen);
- result = 1;
- }
-
- return result;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-stdio1.c b/test/nptl/tst-stdio1.c
deleted file mode 100644
index 2396e01..0000000
--- a/test/nptl/tst-stdio1.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <unistd.h>
-
-
-static void *tf (void *a)
-{
- flockfile (stdout);
- /* This call should never return. */
- return a;
-}
-
-
-int
-do_test (void)
-{
- pthread_t th;
-
- flockfile (stdout);
-
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- write (2, "create failed\n", 14);
- _exit (1);
- }
-
- pthread_join (th, NULL);
-
- puts ("join returned");
-
- return 0;
-}
-
-
-#define EXPECTED_SIGNAL SIGALRM
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-stdio2.c b/test/nptl/tst-stdio2.c
deleted file mode 100644
index 4ac778c..0000000
--- a/test/nptl/tst-stdio2.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static void *tf (void *a)
-{
- puts ("start tf");
-
- /* Multiple locking, implicitly or explicitly, must be possible. */
- flockfile (stdout);
-
- puts ("after first flockfile");
-
- flockfile (stdout);
-
- puts ("foo");
-
- funlockfile (stdout);
-
- puts ("after first funlockfile");
-
- funlockfile (stdout);
-
- puts ("all done");
-
- return a;
-}
-
-
-int
-do_test (void)
-{
- pthread_t th;
-
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- write (2, "create failed\n", 14);
- _exit (1);
- }
-
- void *result;
- if (pthread_join (th, &result) != 0)
- {
- puts ("join failed");
- exit (1);
- }
- else if (result != NULL)
- {
- printf ("wrong return value: %p, expected %p\n", result, NULL);
- exit (1);
- }
-
- puts ("join returned succsefully");
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-sysconf.c b/test/nptl/tst-sysconf.c
deleted file mode 100644
index da493ef..0000000
--- a/test/nptl/tst-sysconf.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <unistd.h>
-
-
-static int
-do_test (void)
-{
- puts ("We expect no limits");
- /* We have no fixed limit on the number of threads. Make sure the
- headers tell the right story. */
-#ifdef PTHREAD_THREADS_MAX
- printf ("Header report maximum number of threads = %lu\n",
- (unsigned long int) PTHREAD_THREADS_MAX);
- return 1;
-#else
- long int r = sysconf (_SC_THREAD_THREADS_MAX);
- if (r != -1)
- {
- printf ("sysconf(_SC_THREAD_THREADS_MAX) return %ld\n", r);
- return 1;
- }
-#endif
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-timer2.c b/test/nptl/tst-timer2.c
deleted file mode 100644
index 60026c1..0000000
--- a/test/nptl/tst-timer2.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Test for crashing bugs when trying to create too many timers. */
-
-#include <stdio.h>
-#include <time.h>
-#include <signal.h>
-#include <sys/time.h>
-#include <sys/resource.h>
-#include <unistd.h>
-
-#if _POSIX_THREADS
-# include <pthread.h>
-
-void
-thread (union sigval arg)
-{
- puts ("Timeout");
-}
-
-int
-do_test (void)
-{
- int i, res;
- timer_t timerId;
- struct itimerspec itval;
- struct sigevent sigev;
-
- itval.it_interval.tv_sec = 2;
- itval.it_interval.tv_nsec = 0;
- itval.it_value.tv_sec = 2;
- itval.it_value.tv_nsec = 0;
-
- sigev.sigev_notify = SIGEV_THREAD;
- sigev.sigev_signo = SIGRTMIN;
- sigev.sigev_notify_function = thread;
- sigev.sigev_notify_attributes = 0;
- sigev.sigev_value.sival_ptr = (void *) &timerId;
-
- for (i = 0; i < 100; i++)
- {
- printf ("cnt = %d\n", i);
-
- if (timer_create (CLOCK_REALTIME, &sigev, &timerId) < 0)
- {
- perror ("timer_create");
- continue;
- }
-
- res = timer_settime (timerId, 0, &itval, NULL);
- if (res < 0)
- perror ("timer_settime");
-
- res = timer_delete (timerId);
- if (res < 0)
- perror ("timer_delete");
- }
-
- return 0;
-}
-
-# define TEST_FUNCTION do_test ()
-#else
-# define TEST_FUNCTION 0
-#endif
-
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-timer3.c b/test/nptl/tst-timer3.c
deleted file mode 100644
index 8113f66..0000000
--- a/test/nptl/tst-timer3.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/* Test for bogus per-thread deletion of timers. */
-
-#include <stdio.h>
-#include <error.h>
-#include <time.h>
-#include <signal.h>
-#include <stdint.h>
-#include <string.h>
-#include <sys/time.h>
-#include <sys/resource.h>
-#include <unistd.h>
-#if _POSIX_THREADS
-# include <pthread.h>
-
-
-/* Creating timers in another thread should work too. */
-static void *
-do_timer_create (void *arg)
-{
- struct sigevent *const sigev = arg;
- timer_t *const timerId = sigev->sigev_value.sival_ptr;
- if (timer_create (CLOCK_REALTIME, sigev, timerId) < 0)
- {
- printf ("timer_create: %m\n");
- return NULL;
- }
- return timerId;
-}
-
-
-static int
-do_test (void)
-{
- int i, res;
- timer_t timerId;
- struct itimerspec itval;
- struct sigevent sigev;
-
- itval.it_interval.tv_sec = 2;
- itval.it_interval.tv_nsec = 0;
- itval.it_value.tv_sec = 2;
- itval.it_value.tv_nsec = 0;
-
- sigev.sigev_notify = SIGEV_SIGNAL;
- sigev.sigev_signo = SIGALRM;
- sigev.sigev_value.sival_ptr = (void *) &timerId;
-
- for (i = 0; i < 100; i++)
- {
- printf ("cnt = %d\n", i);
-
- pthread_t thr;
- res = pthread_create (&thr, NULL, &do_timer_create, &sigev);
- if (res)
- {
- printf ("pthread_create: %s\n", strerror (res));
- continue;
- }
- void *val;
- res = pthread_join (thr, &val);
- if (res)
- {
- printf ("pthread_join: %s\n", strerror (res));
- continue;
- }
- if (val == NULL)
- continue;
-
- res = timer_settime (timerId, 0, &itval, NULL);
- if (res < 0)
- printf ("timer_settime: %m\n");
-
- res = timer_delete (timerId);
- if (res < 0)
- printf ("timer_delete: %m\n");
- }
-
- return 0;
-}
-
-# define TEST_FUNCTION do_test ()
-#else
-# define TEST_FUNCTION 0
-#endif
-
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-timer4.c b/test/nptl/tst-timer4.c
deleted file mode 100644
index fafb565..0000000
--- a/test/nptl/tst-timer4.c
+++ /dev/null
@@ -1,647 +0,0 @@
-/* Tests for POSIX timer implementation.
- Copyright (C) 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2004
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <signal.h>
-#include <stdio.h>
-#include <string.h>
-#include <time.h>
-#include <unistd.h>
-#if _POSIX_THREADS
-# include <pthread.h>
-
-# ifndef TEST_CLOCK
-# define TEST_CLOCK CLOCK_REALTIME
-# endif
-
-pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
-pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-
-timer_t timer_none, timer_sig1, timer_sig2, timer_thr1, timer_thr2;
-
-int thr1_cnt, thr1_err;
-union sigval thr1_sigval;
-struct timespec thr1_ts;
-
-static void
-thr1 (union sigval sigval)
-{
- pthread_mutex_lock (&lock);
- thr1_err = clock_gettime (TEST_CLOCK, &thr1_ts);
- if (thr1_cnt >= 5)
- {
- struct itimerspec it = { };
- thr1_err |= timer_settime (timer_thr1, 0, &it, NULL);
- }
- thr1_sigval = sigval;
- ++thr1_cnt;
- pthread_cond_signal (&cond);
- pthread_mutex_unlock (&lock);
-}
-
-int thr2_cnt, thr2_err;
-union sigval thr2_sigval;
-size_t thr2_guardsize;
-struct timespec thr2_ts;
-
-static void
-thr2 (union sigval sigval)
-{
- pthread_attr_t nattr;
- int err = 0;
- size_t guardsize = -1;
- int ret = pthread_getattr_np (pthread_self (), &nattr);
- if (ret)
- {
- errno = ret;
- printf ("*** pthread_getattr_np failed: %m\n");
- err = 1;
- }
- else
- {
- ret = pthread_attr_getguardsize (&nattr, &guardsize);
- if (ret)
- {
- errno = ret;
- printf ("*** pthread_attr_getguardsize failed: %m\n");
- err = 1;
- }
- if (pthread_attr_destroy (&nattr) != 0)
- {
- puts ("*** pthread_attr_destroy failed");
- err = 1;
- }
- }
- pthread_mutex_lock (&lock);
- thr2_err = clock_gettime (TEST_CLOCK, &thr2_ts) | err;
- if (thr2_cnt >= 5)
- {
- struct itimerspec it = { };
- thr2_err |= timer_settime (timer_thr2, 0, &it, NULL);
- }
- thr2_sigval = sigval;
- ++thr2_cnt;
- thr2_guardsize = guardsize;
- pthread_cond_signal (&cond);
- pthread_mutex_unlock (&lock);
-}
-
-volatile int sig1_cnt, sig1_err;
-volatile union sigval sig1_sigval;
-struct timespec sig1_ts;
-
-static void
-sig1_handler (int sig, siginfo_t *info, void *ctx)
-{
- int err = 0;
- if (sig != SIGRTMIN) err |= 1 << 0;
- if (info->si_signo != SIGRTMIN) err |= 1 << 1;
- if (info->si_code != SI_TIMER) err |= 1 << 2;
- if (clock_gettime (TEST_CLOCK, &sig1_ts) != 0)
- err |= 1 << 3;
- if (sig1_cnt >= 5)
- {
- struct itimerspec it = { };
- if (timer_settime (timer_sig1, 0, &it, NULL))
- err |= 1 << 4;
- }
- sig1_err |= err;
- sig1_sigval = info->si_value;
- ++sig1_cnt;
-}
-
-volatile int sig2_cnt, sig2_err;
-volatile union sigval sig2_sigval;
-struct timespec sig2_ts;
-
-static void
-sig2_handler (int sig, siginfo_t *info, void *ctx)
-{
- int err = 0;
- if (sig != SIGRTMIN + 1) err |= 1 << 0;
- if (info->si_signo != SIGRTMIN + 1) err |= 1 << 1;
- if (info->si_code != SI_TIMER) err |= 1 << 2;
- if (clock_gettime (TEST_CLOCK, &sig2_ts) != 0)
- err |= 1 << 3;
- if (sig2_cnt >= 5)
- {
- struct itimerspec it = { };
- if (timer_settime (timer_sig2, 0, &it, NULL))
- err |= 1 << 4;
- }
- sig2_err |= err;
- sig2_sigval = info->si_value;
- ++sig2_cnt;
-}
-
-/* Check if end is later or equal to start + nsec. */
-static int
-check_ts (const char *name, const struct timespec *start,
- const struct timespec *end, long msec)
-{
- struct timespec ts = *start;
-
- ts.tv_sec += msec / 1000000;
- ts.tv_nsec += (msec % 1000000) * 1000;
- if (ts.tv_nsec >= 1000000000)
- {
- ++ts.tv_sec;
- ts.tv_nsec -= 1000000000;
- }
- if (end->tv_sec < ts.tv_sec
- || (end->tv_sec == ts.tv_sec && end->tv_nsec < ts.tv_nsec))
- {
- printf ("\
-*** timer %s invoked too soon: %ld.%09ld instead of expected %ld.%09ld\n",
- name, (long) end->tv_sec, end->tv_nsec,
- (long) ts.tv_sec, ts.tv_nsec);
- return 1;
- }
- else
- return 0;
-}
-
-#define TIMEOUT 15
-#define TEST_FUNCTION do_test ()
-static int
-do_test (void)
-{
- int result = 0;
-
-#ifdef TEST_CLOCK_MISSING
- const char *missing = TEST_CLOCK_MISSING (TEST_CLOCK);
- if (missing != NULL)
- {
- printf ("%s missing, skipping test\n", missing);
- return 0;
- }
-#endif
-
- struct timespec ts;
- if (clock_gettime (TEST_CLOCK, &ts) != 0)
- {
- printf ("*** clock_gettime failed: %m\n");
- result = 1;
- }
- else
- printf ("clock_gettime returned timespec = { %ld, %ld }\n",
- (long) ts.tv_sec, ts.tv_nsec);
-
- if (clock_getres (TEST_CLOCK, &ts) != 0)
- {
- printf ("*** clock_getres failed: %m\n");
- result = 1;
- }
- else
- printf ("clock_getres returned timespec = { %ld, %ld }\n",
- (long) ts.tv_sec, ts.tv_nsec);
-
- struct sigevent ev;
- memset (&ev, 0x11, sizeof (ev));
- ev.sigev_notify = SIGEV_NONE;
- if (timer_create (TEST_CLOCK, &ev, &timer_none) != 0)
- {
- printf ("*** timer_create for timer_none failed: %m\n");
- return 1;
- }
-
- struct sigaction sa = { .sa_sigaction = sig1_handler,
- .sa_flags = SA_SIGINFO };
- sigemptyset (&sa.sa_mask);
- sigaction (SIGRTMIN, &sa, NULL);
- sa.sa_sigaction = sig2_handler;
- sigaction (SIGRTMIN + 1, &sa, NULL);
-
- memset (&ev, 0x22, sizeof (ev));
- ev.sigev_notify = SIGEV_SIGNAL;
- ev.sigev_signo = SIGRTMIN;
- ev.sigev_value.sival_ptr = &ev;
- if (timer_create (TEST_CLOCK, &ev, &timer_sig1) != 0)
- {
- printf ("*** timer_create for timer_sig1 failed: %m\n");
- return 1;
- }
-
- memset (&ev, 0x33, sizeof (ev));
- ev.sigev_notify = SIGEV_SIGNAL;
- ev.sigev_signo = SIGRTMIN + 1;
- ev.sigev_value.sival_int = 163;
- if (timer_create (TEST_CLOCK, &ev, &timer_sig2) != 0)
- {
- printf ("*** timer_create for timer_sig2 failed: %m\n");
- return 1;
- }
-
- memset (&ev, 0x44, sizeof (ev));
- ev.sigev_notify = SIGEV_THREAD;
- ev.sigev_notify_function = thr1;
- ev.sigev_notify_attributes = NULL;
- ev.sigev_value.sival_ptr = &ev;
- if (timer_create (TEST_CLOCK, &ev, &timer_thr1) != 0)
- {
- printf ("*** timer_create for timer_thr1 failed: %m\n");
- return 1;
- }
-
- pthread_attr_t nattr;
- if (pthread_attr_init (&nattr)
- || pthread_attr_setguardsize (&nattr, 0))
- {
- puts ("*** pthread_attr_t setup failed");
- result = 1;
- }
-
- memset (&ev, 0x55, sizeof (ev));
- ev.sigev_notify = SIGEV_THREAD;
- ev.sigev_notify_function = thr2;
- ev.sigev_notify_attributes = &nattr;
- ev.sigev_value.sival_int = 111;
- if (timer_create (TEST_CLOCK, &ev, &timer_thr2) != 0)
- {
- printf ("*** timer_create for timer_thr2 failed: %m\n");
- return 1;
- }
-
- int ret = timer_getoverrun (timer_thr1);
- if (ret != 0)
- {
- if (ret == -1)
- printf ("*** timer_getoverrun failed: %m\n");
- else
- printf ("*** timer_getoverrun returned %d != 0\n", ret);
- result = 1;
- }
-
- struct itimerspec it;
- it.it_value.tv_sec = 0;
- it.it_value.tv_nsec = -26;
- it.it_interval.tv_sec = 0;
- it.it_interval.tv_nsec = 0;
- if (timer_settime (timer_sig1, 0, &it, NULL) == 0)
- {
- puts ("*** timer_settime with negative tv_nsec unexpectedly succeeded");
- result = 1;
- }
- else if (errno != EINVAL)
- {
- printf ("*** timer_settime with negative tv_nsec did not fail with "
- "EINVAL: %m\n");
- result = 1;
- }
-
- it.it_value.tv_nsec = 100000;
- it.it_interval.tv_nsec = 1000000000;
- if (timer_settime (timer_sig2, 0, &it, NULL) == 0)
- {
- puts ("\
-*** timer_settime with tv_nsec 1000000000 unexpectedly succeeded");
- result = 1;
- }
- else if (errno != EINVAL)
- {
- printf ("*** timer_settime with tv_nsec 1000000000 did not fail with "
- "EINVAL: %m\n");
- result = 1;
- }
-
-#if 0
- it.it_value.tv_nsec = 0;
- it.it_interval.tv_nsec = -26;
- if (timer_settime (timer_thr1, 0, &it, NULL) != 0)
- {
- printf ("\
-!!! timer_settime with it_value 0 it_interval invalid failed: %m\n");
- /* FIXME: is this mandated by POSIX?
- result = 1; */
- }
-
- it.it_interval.tv_nsec = 3000000000;
- if (timer_settime (timer_thr2, 0, &it, NULL) != 0)
- {
- printf ("\
-!!! timer_settime with it_value 0 it_interval invalid failed: %m\n");
- /* FIXME: is this mandated by POSIX?
- result = 1; */
- }
-#endif
-
- struct timespec startts;
- if (clock_gettime (TEST_CLOCK, &startts) != 0)
- {
- printf ("*** clock_gettime failed: %m\n");
- result = 1;
- }
-
- it.it_value.tv_nsec = 100000000;
- it.it_interval.tv_nsec = 0;
- if (timer_settime (timer_none, 0, &it, NULL) != 0)
- {
- printf ("*** timer_settime timer_none failed: %m\n");
- result = 1;
- }
-
- it.it_value.tv_nsec = 200000000;
- if (timer_settime (timer_thr1, 0, &it, NULL) != 0)
- {
- printf ("*** timer_settime timer_thr1 failed: %m\n");
- result = 1;
- }
-
- it.it_value.tv_nsec = 300000000;
- if (timer_settime (timer_thr2, 0, &it, NULL) != 0)
- {
- printf ("*** timer_settime timer_thr2 failed: %m\n");
- result = 1;
- }
-
- it.it_value.tv_nsec = 400000000;
- if (timer_settime (timer_sig1, 0, &it, NULL) != 0)
- {
- printf ("*** timer_settime timer_sig1 failed: %m\n");
- result = 1;
- }
-
- it.it_value.tv_nsec = 500000000;
- if (TEMP_FAILURE_RETRY (timer_settime (timer_sig2, 0, &it, NULL)) != 0)
- {
- printf ("*** timer_settime timer_sig2 failed: %m\n");
- result = 1;
- }
-
- pthread_mutex_lock (&lock);
- while (thr1_cnt == 0 || thr2_cnt == 0)
- pthread_cond_wait (&cond, &lock);
- pthread_mutex_unlock (&lock);
-
- while (sig1_cnt == 0 || sig2_cnt == 0)
- {
- ts.tv_sec = 0;
- ts.tv_nsec = 100000000;
- nanosleep (&ts, NULL);
- }
-
- pthread_mutex_lock (&lock);
-
- if (thr1_cnt != 1)
- {
- printf ("*** thr1 not called exactly once, but %d times\n", thr1_cnt);
- result = 1;
- }
- else if (thr1_err)
- {
- puts ("*** an error occurred in thr1");
- result = 1;
- }
- else if (thr1_sigval.sival_ptr != &ev)
- {
- printf ("*** thr1_sigval.sival_ptr %p != %p\n",
- thr1_sigval.sival_ptr, &ev);
- result = 1;
- }
- else if (check_ts ("thr1", &startts, &thr1_ts, 200000))
- result = 1;
-
- if (thr2_cnt != 1)
- {
- printf ("*** thr2 not called exactly once, but %d times\n", thr2_cnt);
- result = 1;
- }
- else if (thr2_err)
- {
- puts ("*** an error occurred in thr2");
- result = 1;
- }
- else if (thr2_sigval.sival_int != 111)
- {
- printf ("*** thr2_sigval.sival_ptr %d != 111\n", thr2_sigval.sival_int);
- result = 1;
- }
- else if (check_ts ("thr2", &startts, &thr2_ts, 300000))
- result = 1;
- else if (thr2_guardsize != 0)
- {
- printf ("*** thr2 guardsize %zd != 0\n", thr2_guardsize);
- result = 1;
- }
-
- pthread_mutex_unlock (&lock);
-
- if (sig1_cnt != 1)
- {
- printf ("*** sig1 not called exactly once, but %d times\n", sig1_cnt);
- result = 1;
- }
- else if (sig1_err)
- {
- printf ("*** errors occurred in sig1 handler %x\n", sig1_err);
- result = 1;
- }
- else if (sig1_sigval.sival_ptr != &ev)
- {
- printf ("*** sig1_sigval.sival_ptr %p != %p\n",
- sig1_sigval.sival_ptr, &ev);
- result = 1;
- }
- else if (check_ts ("sig1", &startts, &sig1_ts, 400000))
- result = 1;
-
- if (sig2_cnt != 1)
- {
- printf ("*** sig2 not called exactly once, but %d times\n", sig2_cnt);
- result = 1;
- }
- else if (sig2_err)
- {
- printf ("*** errors occurred in sig2 handler %x\n", sig2_err);
- result = 1;
- }
- else if (sig2_sigval.sival_int != 163)
- {
- printf ("*** sig2_sigval.sival_ptr %d != 163\n", sig2_sigval.sival_int);
- result = 1;
- }
- else if (check_ts ("sig2", &startts, &sig2_ts, 500000))
- result = 1;
-
- if (timer_gettime (timer_none, &it) != 0)
- {
- printf ("*** timer_gettime timer_none failed: %m\n");
- result = 1;
- }
- else if (it.it_value.tv_sec || it.it_value.tv_nsec
- || it.it_interval.tv_sec || it.it_interval.tv_nsec)
- {
- printf ("\
-*** timer_gettime timer_none returned { %ld.%09ld, %ld.%09ld }\n",
- (long) it.it_value.tv_sec, it.it_value.tv_nsec,
- (long) it.it_interval.tv_sec, it.it_interval.tv_nsec);
- result = 1;
- }
-
- if (clock_gettime (TEST_CLOCK, &startts) != 0)
- {
- printf ("*** clock_gettime failed: %m\n");
- result = 1;
- }
-
- it.it_value.tv_sec = 1;
- it.it_value.tv_nsec = 0;
- it.it_interval.tv_sec = 0;
- it.it_interval.tv_nsec = 100000000;
- if (timer_settime (timer_none, 0, &it, NULL) != 0)
- {
- printf ("*** timer_settime timer_none failed: %m\n");
- result = 1;
- }
-
- it.it_value.tv_nsec = 100000000;
- it.it_interval.tv_nsec = 200000000;
- if (timer_settime (timer_thr1, 0, &it, NULL) != 0)
- {
- printf ("*** timer_settime timer_thr1 failed: %m\n");
- result = 1;
- }
-
- it.it_value.tv_nsec = 200000000;
- it.it_interval.tv_nsec = 300000000;
- if (timer_settime (timer_thr2, 0, &it, NULL) != 0)
- {
- printf ("*** timer_settime timer_thr2 failed: %m\n");
- result = 1;
- }
-
- it.it_value.tv_nsec = 300000000;
- it.it_interval.tv_nsec = 400000000;
- if (timer_settime (timer_sig1, 0, &it, NULL) != 0)
- {
- printf ("*** timer_settime timer_sig1 failed: %m\n");
- result = 1;
- }
-
- it.it_value.tv_nsec = 400000000;
- it.it_interval.tv_nsec = 500000000;
- if (TEMP_FAILURE_RETRY (timer_settime (timer_sig2, 0, &it, NULL)) != 0)
- {
- printf ("*** timer_settime timer_sig2 failed: %m\n");
- result = 1;
- }
-
- pthread_mutex_lock (&lock);
- while (thr1_cnt < 6 || thr2_cnt < 6)
- pthread_cond_wait (&cond, &lock);
- pthread_mutex_unlock (&lock);
-
- while (sig1_cnt < 6 || sig2_cnt < 6)
- {
- ts.tv_sec = 0;
- ts.tv_nsec = 100000000;
- nanosleep (&ts, NULL);
- }
-
- pthread_mutex_lock (&lock);
-
- if (thr1_err)
- {
- puts ("*** an error occurred in thr1");
- result = 1;
- }
- else if (check_ts ("thr1", &startts, &thr1_ts, 1100000 + 4 *
200000))
- result = 1;
-
- if (thr2_err)
- {
- puts ("*** an error occurred in thr2");
- result = 1;
- }
- else if (check_ts ("thr2", &startts, &thr2_ts, 1200000 + 4 *
300000))
- result = 1;
- else if (thr2_guardsize != 0)
- {
- printf ("*** thr2 guardsize %zd != 0\n", thr2_guardsize);
- result = 1;
- }
-
- pthread_mutex_unlock (&lock);
-
- if (sig1_err)
- {
- printf ("*** errors occurred in sig1 handler %x\n", sig1_err);
- result = 1;
- }
- else if (check_ts ("sig1", &startts, &sig1_ts, 1300000 + 4 *
400000))
- result = 1;
-
- if (sig2_err)
- {
- printf ("*** errors occurred in sig2 handler %x\n", sig2_err);
- result = 1;
- }
- else if (check_ts ("sig2", &startts, &sig2_ts, 1400000 + 4 *
500000))
- result = 1;
-
- if (timer_gettime (timer_none, &it) != 0)
- {
- printf ("*** timer_gettime timer_none failed: %m\n");
- result = 1;
- }
- else if (it.it_interval.tv_sec || it.it_interval.tv_nsec != 100000000)
- {
- printf ("\
-!!! second timer_gettime timer_none returned it_interval %ld.%09ld\n",
- (long) it.it_interval.tv_sec, it.it_interval.tv_nsec);
- /* FIXME: For now disabled.
- result = 1; */
- }
-
- if (timer_delete (timer_none) != 0)
- {
- printf ("*** timer_delete for timer_none failed: %m\n");
- result = 1;
- }
-
- if (timer_delete (timer_sig1) != 0)
- {
- printf ("*** timer_delete for timer_sig1 failed: %m\n");
- result = 1;
- }
-
- if (timer_delete (timer_sig2) != 0)
- {
- printf ("*** timer_delete for timer_sig2 failed: %m\n");
- result = 1;
- }
-
- if (timer_delete (timer_thr1) != 0)
- {
- printf ("*** timer_delete for timer_thr1 failed: %m\n");
- result = 1;
- }
-
- if (timer_delete (timer_thr2) != 0)
- {
- printf ("*** timer_delete for timer_thr2 failed: %m\n");
- result = 1;
- }
- return result;
-}
-#else
-# define TEST_FUNCTION 0
-#endif
-
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-timer5.c b/test/nptl/tst-timer5.c
deleted file mode 100644
index 6466c8e..0000000
--- a/test/nptl/tst-timer5.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Timer test using the monotonic clock. */
-
-#include <time.h>
-#include <unistd.h>
-
-#if defined CLOCK_MONOTONIC && defined _POSIX_MONOTONIC_CLOCK
-
-# define TEST_CLOCK CLOCK_MONOTONIC
-# define TEST_CLOCK_MISSING(clock) \
- (setup_test () ? "CLOCK_MONOTONIC" : NULL)
-
-# include <stdio.h>
-
-static int
-setup_test (void)
-{
- if (sysconf (_SC_MONOTONIC_CLOCK) <= 0)
- return 1;
-
- /* The user-level timers implementation doesn't support CLOCK_MONOTONIC,
- even though sysconf claims it will. */
- timer_t t;
- if (timer_create (TEST_CLOCK, NULL, &t) != 0)
- {
- printf ("timer_create: %m\n");
- return 1;
- }
- timer_delete (t);
-
- return 0;
-}
-
-# include "tst-timer4.c"
-
-#else
-# define TEST_FUNCTION 0
-# include "../test-skeleton.c"
-#endif
diff --git a/test/nptl/tst-tls1.c b/test/nptl/tst-tls1.c
deleted file mode 100644
index a7cf8f4..0000000
--- a/test/nptl/tst-tls1.c
+++ /dev/null
@@ -1,121 +0,0 @@
-/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <tls.h>
-
-#if HAVE___THREAD
-struct test_s
-{
- int a;
- int b;
-};
-
-#define INIT_A 1
-#define INIT_B 42
-/* Deliberately not static. */
-__thread struct test_s s __attribute__ ((tls_model ("initial-exec"))) =
-{
- .a = INIT_A,
- .b = INIT_B
-};
-
-
-static void *
-tf (void *arg)
-{
- if (s.a != INIT_A || s.b != INIT_B)
- {
- puts ("initial value of s in child thread wrong");
- exit (1);
- }
-
- ++s.a;
-
- return NULL;
-}
-#endif
-
-
-int
-do_test (void)
-{
-#if !HAVE___THREAD
-
- puts ("No __thread support in compiler, test skipped.");
-
- return 0;
-#else
-
- if (s.a != INIT_A || s.b != INIT_B)
- {
- puts ("initial value of s in main thread wrong");
- exit (1);
- }
-
- pthread_attr_t a;
-
- if (pthread_attr_init (&a) != 0)
- {
- puts ("attr_init failed");
- exit (1);
- }
-
- if (pthread_attr_setstacksize (&a, 1 * 1024 * 1024) != 0)
- {
- puts ("attr_setstacksize failed");
- return 1;
- }
-
-#define N 10
- int i;
- for (i = 0; i < N; ++i)
- {
-#define M 10
- pthread_t th[M];
- int j;
- for (j = 0; j < M; ++j, ++s.a)
- if (pthread_create (&th[j], &a, tf, NULL) != 0)
- {
- puts ("pthread_create failed");
- exit (1);
- }
-
- for (j = 0; j < M; ++j)
- if (pthread_join (th[j], NULL) != 0)
- {
- puts ("pthread_join failed");
- exit (1);
- }
- }
-
- if (pthread_attr_destroy (&a) != 0)
- {
- puts ("attr_destroy failed");
- exit (1);
- }
-
- return 0;
-#endif
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-tls2.c b/test/nptl/tst-tls2.c
deleted file mode 100644
index f60f4a5..0000000
--- a/test/nptl/tst-tls2.c
+++ /dev/null
@@ -1,215 +0,0 @@
-/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <semaphore.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <tls.h>
-
-#if HAVE___THREAD
-
-#define N 10
-static pthread_t th[N];
-
-
-#define CB(n) \
-static void \
-cb##n (void) \
-{ \
- if (th[n] != pthread_self ()) \
- { \
- write (STDOUT_FILENO, "wrong callback\n", 15); \
- _exit (1); \
- } \
-}
-CB (0)
-CB (1)
-CB (2)
-CB (3)
-CB (4)
-CB (5)
-CB (6)
-CB (7)
-CB (8)
-CB (9)
-static void (*cbs[]) (void) =
-{
- cb0, cb1, cb2, cb3, cb4, cb5, cb6, cb7, cb8, cb9
-};
-
-
-static __thread void (*fp) (void) __attribute__ ((tls_model ("local-exec")));
-
-
-static sem_t s;
-
-
-#define THE_SIG SIGUSR1
-static void
-handler (int sig)
-{
- if (sig != THE_SIG)
- {
- write (STDOUT_FILENO, "wrong signal\n", 13);
- _exit (1);
- }
-
- fp ();
-
- if (sem_post (&s) != 0)
- {
- write (STDOUT_FILENO, "sem_post failed\n", 16);
- _exit (1);
- }
-}
-
-
-static pthread_barrier_t b;
-
-#define TOTAL_SIGS 1000
-static int nsigs;
-
-
-static void *
-tf (void *arg)
-{
- fp = arg;
-
- pthread_barrier_wait (&b);
-
- pthread_barrier_wait (&b);
-
- if (nsigs != TOTAL_SIGS)
- {
- puts ("barrier_wait prematurely returns");
- exit (1);
- }
-
- return NULL;
-}
-#endif
-
-int
-do_test (void)
-{
-#if !HAVE___THREAD
-
- puts ("No __thread support in compiler, test skipped.");
-
- return 0;
-#else
-
- if (pthread_barrier_init (&b, NULL, N + 1) != 0)
- {
- puts ("barrier_init failed");
- exit (1);
- }
-
- if (sem_init (&s, 0, 0) != 0)
- {
- puts ("sem_init failed");
- exit (1);
- }
-
- struct sigaction sa;
- sa.sa_handler = handler;
- sigemptyset (&sa.sa_mask);
- sa.sa_flags = 0;
- if (sigaction (THE_SIG, &sa, NULL) != 0)
- {
- puts ("sigaction failed");
- exit (1);
- }
-
- pthread_attr_t a;
-
- if (pthread_attr_init (&a) != 0)
- {
- puts ("attr_init failed");
- exit (1);
- }
-
- if (pthread_attr_setstacksize (&a, 1 * 1024 * 1024) != 0)
- {
- puts ("attr_setstacksize failed");
- return 1;
- }
-
- int i;
- for (i = 0; i < N; ++i)
- if (pthread_create (&th[i], &a, tf, cbs[i]) != 0)
- {
- puts ("pthread_create failed");
- exit (1);
- }
-
- if (pthread_attr_destroy (&a) != 0)
- {
- puts ("attr_destroy failed");
- exit (1);
- }
-
- pthread_barrier_wait (&b);
-
- sigset_t ss;
- sigemptyset (&ss);
- sigaddset (&ss, THE_SIG);
- if (pthread_sigmask (SIG_BLOCK, &ss, NULL) != 0)
- {
- puts ("pthread_sigmask failed");
- exit (1);
- }
-
- /* Start sending signals. */
- for (i = 0; i < TOTAL_SIGS; ++i)
- {
- if (kill (getpid (), THE_SIG) != 0)
- {
- puts ("kill failed");
- exit (1);
- }
-
- if (TEMP_FAILURE_RETRY (sem_wait (&s)) != 0)
- {
- puts ("sem_wait failed");
- exit (1);
- }
-
- ++nsigs;
- }
-
- pthread_barrier_wait (&b);
-
- for (i = 0; i < N; ++i)
- if (pthread_join (th[i], NULL) != 0)
- {
- puts ("join failed");
- exit (1);
- }
-
- return 0;
-#endif
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-tls3.c b/test/nptl/tst-tls3.c
deleted file mode 100644
index 0d4e514..0000000
--- a/test/nptl/tst-tls3.c
+++ /dev/null
@@ -1,224 +0,0 @@
-/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <dlfcn.h>
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <semaphore.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <pthreaddef.h>
-#include <tls.h>
-
-#define THE_SIG SIGUSR1
-
-
-#define N 10
-static pthread_t th[N];
-
-
-#define CB(n) \
-static void \
-cb##n (void) \
-{ \
- if (th[n] != pthread_self ()) \
- { \
- write (STDOUT_FILENO, "wrong callback\n", 15); \
- _exit (1); \
- } \
-}
-CB (0)
-CB (1)
-CB (2)
-CB (3)
-CB (4)
-CB (5)
-CB (6)
-CB (7)
-CB (8)
-CB (9)
-static void (*cbs[]) (void) =
-{
- cb0, cb1, cb2, cb3, cb4, cb5, cb6, cb7, cb8, cb9
-};
-
-
-sem_t s;
-
-
-pthread_barrier_t b;
-
-#define TOTAL_SIGS 1000
-int nsigs;
-
-
-int
-do_test (void)
-{
-#if !HAVE___THREAD
-
- puts ("No __thread support in compiler, test skipped.");
-
- return 0;
-#else
-
- if ((uintptr_t) pthread_self () & (TCB_ALIGNMENT - 1))
- {
- puts ("initial thread's struct pthread not aligned enough");
- exit (1);
- }
-
- if (pthread_barrier_init (&b, NULL, N + 1) != 0)
- {
- puts ("barrier_init failed");
- exit (1);
- }
-
- if (sem_init (&s, 0, 0) != 0)
- {
- puts ("sem_init failed");
- exit (1);
- }
-
- void *h = dlopen ("tst-tls3mod.so", RTLD_LAZY);
- if (h == NULL)
- {
- puts ("dlopen failed");
- exit (1);
- }
-
- void *(*tf) (void *) = dlsym (h, "tf");
- if (tf == NULL)
- {
- puts ("dlsym for tf failed");
- exit (1);
- }
-
- void (*setup_tf) (pthread_barrier_t*, int*, sem_t*) = dlsym(h, "setup_tf");
- if (setup_tf == NULL)
- {
- puts ("dlsym for setup_tf failed");
- exit(1);
- }
-
- setup_tf (&b, &nsigs, &s);
-
- struct sigaction sa;
- sa.sa_handler = dlsym (h, "handler");
- if (sa.sa_handler == NULL)
- {
- puts ("dlsym for handler failed");
- exit (1);
- }
- sigemptyset (&sa.sa_mask);
- sa.sa_flags = 0;
- if (sigaction (THE_SIG, &sa, NULL) != 0)
- {
- puts ("sigaction failed");
- exit (1);
- }
-
- pthread_attr_t a;
-
- if (pthread_attr_init (&a) != 0)
- {
- puts ("attr_init failed");
- exit (1);
- }
-
- if (pthread_attr_setstacksize (&a, 1 * 1024 * 1024) != 0)
- {
- puts ("attr_setstacksize failed");
- return 1;
- }
-
- int r;
- for (r = 0; r < 10; ++r)
- {
- int i;
- for (i = 0; i < N; ++i)
- if (pthread_create (&th[i], &a, tf, cbs[i]) != 0)
- {
- puts ("pthread_create failed");
- exit (1);
- }
-
- nsigs = 0;
-
- pthread_barrier_wait (&b);
-
- sigset_t ss;
- sigemptyset (&ss);
- sigaddset (&ss, THE_SIG);
- if (pthread_sigmask (SIG_BLOCK, &ss, NULL) != 0)
- {
- puts ("pthread_sigmask failed");
- exit (1);
- }
-
- /* Start sending signals. */
- for (i = 0; i < TOTAL_SIGS; ++i)
- {
- if (kill (getpid (), THE_SIG) != 0)
- {
- puts ("kill failed");
- exit (1);
- }
-
- if (TEMP_FAILURE_RETRY (sem_wait (&s)) != 0)
- {
- puts ("sem_wait failed");
- exit (1);
- }
-
- ++nsigs;
- }
-
- pthread_barrier_wait (&b);
-
- if (pthread_sigmask (SIG_UNBLOCK, &ss, NULL) != 0)
- {
- puts ("pthread_sigmask failed");
- exit (1);
- }
-
- for (i = 0; i < N; ++i)
- if (pthread_join (th[i], NULL) != 0)
- {
- puts ("join failed");
- exit (1);
- }
- }
-
- if (pthread_attr_destroy (&a) != 0)
- {
- puts ("attr_destroy failed");
- exit (1);
- }
-
- return 0;
-#endif
-}
-
-
-#define TIMEOUT 5
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-tls3mod.c b/test/nptl/tst-tls3mod.c
deleted file mode 100644
index 0fd3261..0000000
--- a/test/nptl/tst-tls3mod.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <semaphore.h>
-#include <signal.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <pthreaddef.h>
-#include <tls.h>
-
-#if HAVE___THREAD
-
-static pthread_barrier_t* b = NULL;
-
-#define TOTAL_SIGS 1000
-static int* nsigs = NULL;
-
-static sem_t* s = NULL;
-
-static __thread void (*fp) (void);
-
-
-#define THE_SIG SIGUSR1
-void
-handler (int sig)
-{
- if (sig != THE_SIG)
- {
- write (STDOUT_FILENO, "wrong signal\n", 13);
- _exit (1);
- }
-
- fp ();
-
- if (sem_post (s) != 0)
- {
- write (STDOUT_FILENO, "sem_post failed\n", 16);
- _exit (1);
- }
-}
-
-void
-setup_tf (pthread_barrier_t* t_b, int* t_nsigs, sem_t* t_s)
-{
- b = t_b;
- nsigs = t_nsigs;
- s = t_s;
-}
-
-void *
-tf (void *arg)
-{
- if (!b || !s || !nsigs)
- {
- puts ("need to call setup_tf first");
- exit (1);
- }
-
- if ((uintptr_t) pthread_self () & (TCB_ALIGNMENT - 1))
- {
- puts ("thread's struct pthread not aligned enough");
- exit (1);
- }
-
- if (fp != NULL)
- {
- printf("fp=%p\n", (void *)&fp);
- puts ("fp not initially NULL");
- exit (1);
- }
-
- fp = arg;
-
- pthread_barrier_wait (b);
-
- pthread_barrier_wait (b);
-
- if (*nsigs != TOTAL_SIGS)
- {
- puts ("barrier_wait prematurely returns");
- exit (1);
- }
-
- return NULL;
-}
-
-#endif
diff --git a/test/nptl/tst-tls4.c b/test/nptl/tst-tls4.c
deleted file mode 100644
index 378b13a..0000000
--- a/test/nptl/tst-tls4.c
+++ /dev/null
@@ -1,190 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <dlfcn.h>
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <tls.h>
-
-#if HAVE___THREAD && defined HAVE_TLS_MODEL_ATTRIBUTE
-
-#define N 3
-
-void (*test1) (void), (*test2) (void);
-
-pthread_barrier_t b2, b3;
-
-static void *
-tf (void *arg)
-{
- int i;
-
- for (i = 0; i <= (uintptr_t) arg; ++i)
- {
- int r = pthread_barrier_wait (&b3);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("tf: barrier_wait failed");
- exit (1);
- }
- }
-
- test1 ();
-
- for (i = 0; i < 3; ++i)
- {
- int r = pthread_barrier_wait (&b3);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("tf: barrier_wait failed");
- exit (1);
- }
- }
-
- test2 ();
-
- for (i = 0; i < 3 - (uintptr_t) arg; ++i)
- {
- int r = pthread_barrier_wait (&b3);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("tf: barrier_wait failed");
- exit (1);
- }
- }
-
- return NULL;
-}
-
-static void *
-tf2 (void *arg)
-{
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("tf2: barrier_wait failed");
- exit (1);
- }
-
- int i;
- for (i = 0; i < N; ++i)
- tf (arg);
- return NULL;
-}
-
-int
-do_test (void)
-{
- pthread_t th[2];
- const char *modules[N]
- = { "tst-tls4moda.so", "tst-tls4moda.so",
"tst-tls4modb.so" };
-
- if (pthread_barrier_init (&b2, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- return 1;
- }
-
- if (pthread_barrier_init (&b3, NULL, 3) != 0)
- {
- puts ("barrier_init failed");
- return 1;
- }
-
- if (pthread_create (&th[0], NULL, tf2, (void *) (uintptr_t) 1))
- {
- puts ("pthread_create failed");
- return 1;
- }
-
- int r = pthread_barrier_wait (&b2);
- if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- puts ("barrier_wait failed");
- return 1;
- }
-
- int i;
- for (i = 0; i < N; ++i)
- {
- void *h = dlopen (modules[i], RTLD_LAZY);
- if (h == NULL)
- {
- printf ("dlopen failed %s\n", dlerror ());
- return 1;
- }
-
- test1 = dlsym (h, "test1");
- if (test1 == NULL)
- {
- printf ("dlsym for test1 failed %s\n", dlerror ());
- return 1;
- }
-
- test2 = dlsym (h, "test2");
- if (test2 == NULL)
- {
- printf ("dlsym for test2 failed %s\n", dlerror ());
- return 1;
- }
-
- if (pthread_create (&th[1], NULL, tf, (void *) (uintptr_t) 2))
- {
- puts ("pthread_create failed");
- return 1;
- }
-
- tf ((void *) (uintptr_t) 0);
-
- if (pthread_join (th[1], NULL) != 0)
- {
- puts ("join failed");
- return 1;
- }
-
- if (dlclose (h))
- {
- puts ("dlclose failed");
- return 1;
- }
-
- printf ("test %d with %s succeeded\n", i, modules[i]);
- }
-
- if (pthread_join (th[0], NULL) != 0)
- {
- puts ("join failed");
- return 1;
- }
-
- return 0;
-}
-
-#define TIMEOUT 5
-#define TEST_FUNCTION do_test ()
-
-#else
-
-#define TEST_FUNCTION 0
-
-#endif
-
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-tls4moda.c b/test/nptl/tst-tls4moda.c
deleted file mode 100644
index 9a59cf7..0000000
--- a/test/nptl/tst-tls4moda.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <tls.h>
-
-#if HAVE___THREAD && defined HAVE_TLS_MODEL_ATTRIBUTE
-
-static __thread unsigned char foo [32]
- __attribute__ ((tls_model ("initial-exec"), aligned (sizeof (void *))));
-
-void
-test1 (void)
-{
- size_t s;
-
- for (s = 0; s < sizeof (foo); ++s)
- {
- if (foo [s])
- abort ();
- foo [s] = s;
- }
-}
-
-void
-test2 (void)
-{
- size_t s;
-
- for (s = 0; s < sizeof (foo); ++s)
- {
- if (foo [s] != s)
- abort ();
- foo [s] = sizeof (foo) - s;
- }
-}
-
-#endif
diff --git a/test/nptl/tst-tls4modb.c b/test/nptl/tst-tls4modb.c
deleted file mode 100644
index 66044b2..0000000
--- a/test/nptl/tst-tls4modb.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <tls.h>
-
-#if HAVE___THREAD && defined HAVE_TLS_MODEL_ATTRIBUTE
-
-static int i;
-int bar;
-
-static __thread void *foo [32 / sizeof (void *)]
- __attribute__ ((tls_model ("initial-exec"), aligned (sizeof (void *))))
- = { &i, &bar };
-
-void
-test1 (void)
-{
- size_t s;
-
- if (foo [0] != &i || foo [1] != &bar)
- abort ();
-
- foo [0] = NULL;
- foo [1] = NULL;
- for (s = 0; s < sizeof (foo) / sizeof (void *); ++s)
- {
- if (foo [s])
- abort ();
- foo [s] = &foo[s];
- }
-}
-
-void
-test2 (void)
-{
- size_t s;
-
- for (s = 0; s < sizeof (foo) / sizeof (void *); ++s)
- {
- if (foo [s] != &foo [s])
- abort ();
- foo [s] = &foo [s ^ 1];
- }
-}
-
-#endif
diff --git a/test/nptl/tst-tls5.c b/test/nptl/tst-tls5.c
deleted file mode 100644
index c8afe6a..0000000
--- a/test/nptl/tst-tls5.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* Check alignment, overlapping and layout of TLS variables. */
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <pthread.h>
-#include <sys/param.h>
-
-#include "tst-tls5.h"
-
-#ifdef TLS_REGISTER
-
-struct tls_obj tls_registry[64];
-
-static int
-tls_addr_cmp (const void *a, const void *b)
-{
- if (((struct tls_obj *)a)->addr < ((struct tls_obj *)b)->addr)
- return -1;
- if (((struct tls_obj *)a)->addr > ((struct tls_obj *)b)->addr)
- return 1;
- return 0;
-}
-
-static int
-do_test (void)
-{
- size_t cnt, i;
- int res = 0;
- uintptr_t min_addr = ~(uintptr_t) 0, max_addr = 0;
-
- for (cnt = 0; tls_registry[cnt].name; ++cnt);
- tls_registry[cnt].name = NULL;
- tls_registry[cnt].addr = (uintptr_t) pthread_self ();
- tls_registry[cnt].size = sizeof (struct pthread);
- tls_registry[cnt++].align = __alignof__ (struct pthread);
-
- qsort (tls_registry, cnt, sizeof (struct tls_obj), tls_addr_cmp);
-
- for (i = 0; i < cnt; ++i)
- {
- printf ("%s%s = %p, size %zd, align %zd",
- tls_registry[i].name ? "&" : "",
- tls_registry[i].name ?: "pthread_self ()",
- (void *) tls_registry[i].addr,
- tls_registry[i].size, tls_registry[i].align);
- if (tls_registry[i].addr & (tls_registry[i].align - 1))
- {
- fputs (", WRONG ALIGNMENT", stdout);
- res = 1;
- }
- if (i > 0
- && (tls_registry[i - 1].addr + tls_registry[i - 1].size
- > tls_registry[i].addr))
- {
- fputs (", ADDRESS OVERLAP", stdout);
- res = 1;
- }
- puts ("");
- if (tls_registry[i].name)
- {
- min_addr = MIN (tls_registry[i].addr, min_addr);
- max_addr = MAX (tls_registry[i].addr + tls_registry[i].size,
- max_addr);
- }
- }
-
- if (cnt > 1)
- {
-#if defined(TLS_TCB_AT_TP)
- if (tls_registry[cnt - 1].name)
- {
- puts ("pthread_self () not larger than all TLS addresses");
- res = 1;
- }
- else
- max_addr = MAX (tls_registry[cnt - 1].addr, max_addr);
-#elif defined(TLS_DTV_AT_TP)
- if (tls_registry[0].name)
- {
- puts ("pthread_self () not smaller than all TLS addresses");
- res = 1;
- }
-#else
- abort ();
-#endif
- printf ("Initial TLS used block size %zd\n",
- (size_t) (max_addr - min_addr));
- }
- return res;
-}
-
-#define TEST_FUNCTION do_test ()
-
-#else
-
-#define TEST_FUNCTION 0
-
-#endif
-
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-tls5.h b/test/nptl/tst-tls5.h
deleted file mode 100644
index b7c14eb..0000000
--- a/test/nptl/tst-tls5.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#include <stdint.h>
-#include <stdlib.h>
-#include <tls.h>
-
-#if USE_TLS && HAVE___THREAD
-
-struct tls_obj
-{
- const char *name;
- uintptr_t addr;
- size_t size;
- size_t align;
-};
-extern struct tls_obj tls_registry[];
-
-#define TLS_REGISTER(x) \
-static void __attribute__((constructor)) \
-tls_register_##x (void) \
-{ \
- size_t i; \
- for (i = 0; tls_registry[i].name; ++i); \
- tls_registry[i].name = #x; \
- tls_registry[i].addr = (uintptr_t) &x; \
- tls_registry[i].size = sizeof (x); \
- tls_registry[i].align = __alignof__ (x); \
-}
-
-#endif
diff --git a/test/nptl/tst-tls5mod.c b/test/nptl/tst-tls5mod.c
deleted file mode 100644
index 4616a20..0000000
--- a/test/nptl/tst-tls5mod.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "tst-tls5.h"
-
-#ifdef TLS_REGISTER
-/* Ensure tls_registry is exported from the binary. */
-void *tst_tls5mod attribute_hidden = tls_registry;
-#endif
diff --git a/test/nptl/tst-tls5moda.c b/test/nptl/tst-tls5moda.c
deleted file mode 100644
index 4644d76..0000000
--- a/test/nptl/tst-tls5moda.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "tst-tls5.h"
-
-#ifdef TLS_REGISTER
-static __thread char a [32] __attribute__ ((aligned (64)));
-TLS_REGISTER (a)
-#endif
diff --git a/test/nptl/tst-tls5modb.c b/test/nptl/tst-tls5modb.c
deleted file mode 100644
index 09b4396..0000000
--- a/test/nptl/tst-tls5modb.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "tst-tls5.h"
-
-#ifdef TLS_REGISTER
-static __thread int b;
-TLS_REGISTER (b)
-#endif
diff --git a/test/nptl/tst-tls5modc.c b/test/nptl/tst-tls5modc.c
deleted file mode 100644
index bbd8963..0000000
--- a/test/nptl/tst-tls5modc.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "tst-tls5.h"
-
-#ifdef TLS_REGISTER
-static __thread int c;
-TLS_REGISTER (c)
-#endif
diff --git a/test/nptl/tst-tls5modd.c b/test/nptl/tst-tls5modd.c
deleted file mode 100644
index 8b54d16..0000000
--- a/test/nptl/tst-tls5modd.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "tst-tls5.h"
-
-#ifdef TLS_REGISTER
-static __thread int d;
-TLS_REGISTER (d)
-#endif
diff --git a/test/nptl/tst-tls5mode.c b/test/nptl/tst-tls5mode.c
deleted file mode 100644
index d30b067..0000000
--- a/test/nptl/tst-tls5mode.c
+++ /dev/null
@@ -1,8 +0,0 @@
-#include "tst-tls5.h"
-
-#ifdef TLS_REGISTER
-static __thread int e1 = 24;
-static __thread char e2 [32] __attribute__ ((aligned (64)));
-TLS_REGISTER (e1)
-TLS_REGISTER (e2)
-#endif
diff --git a/test/nptl/tst-tls5modf.c b/test/nptl/tst-tls5modf.c
deleted file mode 100644
index 52dcb94..0000000
--- a/test/nptl/tst-tls5modf.c
+++ /dev/null
@@ -1,9 +0,0 @@
-#include "tst-tls5.h"
-
-#ifdef TLS_REGISTER
-char tst_tls5modf[60] attribute_hidden = { 26 };
-static __thread int f1 = 24;
-static __thread char f2 [32] __attribute__ ((aligned (64)));
-TLS_REGISTER (f1)
-TLS_REGISTER (f2)
-#endif
diff --git a/test/nptl/tst-tsd1.c b/test/nptl/tst-tsd1.c
deleted file mode 100644
index af46d68..0000000
--- a/test/nptl/tst-tsd1.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <string.h>
-
-
-static int
-do_test (void)
-{
- pthread_key_t key1;
- pthread_key_t key2;
- void *value;
- int result = 0;
- int err;
-
- err = pthread_key_create (&key1, NULL);
- if (err != 0)
- {
- printf ("1st key_create failed: %s\n", strerror (err));
- return 1;
- }
-
- /* Initial value must be NULL. */
- value = pthread_getspecific (key1);
- if (value != NULL)
- {
- puts ("1st getspecific != NULL");
- result = 1;
- }
-
- err = pthread_setspecific (key1, (void *) -2l);
- if (err != 0)
- {
- printf ("1st setspecific failed: %s\n", strerror (err));
- return 1;
- }
-
- value = pthread_getspecific (key1);
- if (value == NULL)
- {
- puts ("2nd getspecific == NULL\n");
- result = 1;
- }
- else if (value != (void *) -2l)
- {
- puts ("2nd getspecific != -2l\n");
- result = 1;
- }
-
- err = pthread_setspecific (key1, (void *) -3l);
- if (err != 0)
- {
- printf ("2nd setspecific failed: %s\n", strerror (err));
- return 1;
- }
-
- value = pthread_getspecific (key1);
- if (value == NULL)
- {
- puts ("3rd getspecific == NULL\n");
- result = 1;
- }
- else if (value != (void *) -3l)
- {
- puts ("3rd getspecific != -2l\n");
- result = 1;
- }
-
- err = pthread_key_delete (key1);
- if (err != 0)
- {
- printf ("key_delete failed: %s\n", strerror (err));
- result = 1;
- }
-
-
- err = pthread_key_create (&key2, NULL);
- if (err != 0)
- {
- printf ("2nd key_create failed: %s\n", strerror (err));
- return 1;
- }
-
- if (key1 != key2)
- puts ("key1 != key2; no more tests performed");
- else
- {
- value = pthread_getspecific (key2);
- if (value != NULL)
- {
- puts ("4th getspecific != NULL");
- result = 1;
- }
- }
-
- return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-tsd2.c b/test/nptl/tst-tsd2.c
deleted file mode 100644
index 71e793f..0000000
--- a/test/nptl/tst-tsd2.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <string.h>
-
-
-static int result;
-
-
-static void
-destr (void *arg)
-{
- if (arg != (void *) -2l)
- result = 2;
- else
- result = 0;
-}
-
-
-static void *
-tf (void *arg)
-{
- pthread_key_t key = (pthread_key_t) (long int) arg;
- int err;
-
- err = pthread_setspecific (key, (void *) -2l);
- if (err != 0)
- result = 3;
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- pthread_key_t key;
- pthread_t th;
- int err;
-
- err = pthread_key_create (&key, destr);
- if (err != 0)
- {
- printf ("key_create failed: %s\n", strerror (err));
- return 1;
- }
-
- result = 1;
-
- err = pthread_create (&th, NULL, tf, (void *) (long int) key);
- if (err != 0)
- {
- printf ("create failed: %s\n", strerror (err));
- return 1;
- }
-
- /* Wait for the thread to terminate. */
- err = pthread_join (th, NULL);
- if (err != 0)
- {
- printf ("join failed: %s\n", strerror (err));
- return 1;
- }
-
- if (result == 1)
- puts ("destructor not called");
- else if (result == 2)
- puts ("destructor got passed a wrong value");
- else if (result == 3)
- puts ("setspecific in child failed");
- else if (result != 0)
- puts ("result != 0");
-
- return result;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-tsd3.c b/test/nptl/tst-tsd3.c
deleted file mode 100644
index 4dc46f2..0000000
--- a/test/nptl/tst-tsd3.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <limits.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static pthread_key_t key1;
-static pthread_key_t key2;
-
-
-static int left;
-
-
-static void
-destr1 (void *arg)
-{
- if (--left > 0)
- {
- puts ("set key2");
-
- if (pthread_setspecific (key2, (void *) 1l) != 0)
- {
- puts ("destr1: setspecific failed");
- exit (1);
- }
- }
-}
-
-
-static void
-destr2 (void *arg)
-{
- if (--left > 0)
- {
- puts ("set key1");
-
- if (pthread_setspecific (key1, (void *) 1l) != 0)
- {
- puts ("destr2: setspecific failed");
- exit (1);
- }
- }
-}
-
-
-static void *
-tf (void *arg)
-{
- /* Let the destructors work. */
- left = 7;
-
- if (pthread_setspecific (key1, (void *) 1l) != 0
- || pthread_setspecific (key2, (void *) 1l) != 0)
- {
- puts ("tf: setspecific failed");
- exit (1);
- }
-
- return NULL;
-}
-
-
-static int
-do_test (void)
-{
- /* Allocate two keys, both with destructors. */
- if (pthread_key_create (&key1, destr1) != 0
- || pthread_key_create (&key2, destr2) != 0)
- {
- puts ("key_create failed");
- return 1;
- }
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("create failed");
- return 1;
- }
-
- if (pthread_join (th, NULL) != 0)
- {
- puts ("join failed");
- return 1;
- }
-
- if (left != 0)
- {
- printf ("left == %d\n", left);
- return 1;
- }
-
- if (pthread_getspecific (key1) != NULL)
- {
- puts ("key1 data != NULL");
- return 1;
- }
- if (pthread_getspecific (key2) != NULL)
- {
- puts ("key2 data != NULL");
- return 1;
- }
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-tsd4.c b/test/nptl/tst-tsd4.c
deleted file mode 100644
index cf58d85..0000000
--- a/test/nptl/tst-tsd4.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <limits.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static pthread_key_t key;
-
-
-static int rounds;
-
-
-static void
-destr (void *arg)
-{
- ++rounds;
-
- if (pthread_setspecific (key, (void *) 1l) != 0)
- {
- puts ("destr: setspecific failed");
- exit (1);
- }
-}
-
-
-static void *
-tf (void *arg)
-{
- if (pthread_setspecific (key, (void *) 1l) != 0)
- {
- puts ("tf: setspecific failed");
- exit (1);
- }
-
- return NULL;
-}
-
-
-/* This test check non-standard behavior. The standard does not
- require that the implementation has to stop calling TSD destructors
- when they are set over and over again. But NPTL does. */
-static int
-do_test (void)
-{
- /* Allocate two keys, both with destructors. */
- if (pthread_key_create (&key, destr) != 0)
- {
- puts ("key_create failed");
- return 1;
- }
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("create failed");
- return 1;
- }
-
- if (pthread_join (th, NULL) != 0)
- {
- puts ("join failed");
- return 1;
- }
-
- if (rounds < PTHREAD_DESTRUCTOR_ITERATIONS)
- {
- printf ("rounds == %d, PTHREAD_DESTRUCTOR_ITERATIONS = %d\n",
- rounds, PTHREAD_DESTRUCTOR_ITERATIONS);
- return 1;
- }
-
- if (pthread_getspecific (key) != NULL)
- {
- puts ("key data != NULL");
- return 1;
- }
-
- return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-tsd5.c b/test/nptl/tst-tsd5.c
deleted file mode 100644
index 8fc7b35..0000000
--- a/test/nptl/tst-tsd5.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* Copyright (C) 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
-
-
-static void
-cl (void *p)
-{
- pthread_mutex_unlock (&m);
-}
-
-
-static void *
-tf (void *arg)
-{
- if (pthread_mutex_lock (&m) != 0)
- {
- puts ("2nd mutex_lock failed");
- exit (1);
- }
-
- exit (0);
-}
-
-
-static int
-do_test (void)
-{
- pthread_key_t k;
- if (pthread_key_create (&k, cl) != 0)
- {
- puts ("key_create failed");
- return 1;
- }
- if (pthread_setspecific (k, (void *) 1) != 0)
- {
- puts ("setspecific failed");
- return 1;
- }
-
- if (pthread_mutex_lock (&m) != 0)
- {
- puts ("1st mutex_lock failed");
- return 1;
- }
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("create failed");
- return 1;
- }
-
- pthread_exit (NULL);
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-tsd6.c b/test/nptl/tst-tsd6.c
deleted file mode 100644
index debb1dd..0000000
--- a/test/nptl/tst-tsd6.c
+++ /dev/null
@@ -1,89 +0,0 @@
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/wait.h>
-
-#define NKEYS 100
-static pthread_key_t keys[NKEYS];
-static pthread_barrier_t b;
-
-
-static void *
-tf (void *arg)
-{
- void *res = NULL;
- for (int i = 0; i < NKEYS; ++i)
- {
- void *p = pthread_getspecific (keys[i]);
- pthread_setspecific (keys[i], (void *) 7);
- if (p != NULL)
- res = p;
- }
- if (arg != NULL)
- {
- pthread_barrier_wait (arg);
- pthread_barrier_wait (arg);
- }
- return res;
-}
-
-
-static int
-do_test (void)
-{
- pthread_barrier_init (&b, NULL, 2);
-
- for (int i = 0; i < NKEYS; ++i)
- if (pthread_key_create (&keys[i], NULL) != 0)
- {
- puts ("cannot create keys");
- return 1;
- }
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, &b) != 0)
- {
- puts ("cannot create thread in parent");
- return 1;
- }
-
- pthread_barrier_wait (&b);
-
- pid_t pid = fork ();
- if (pid == 0)
- {
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("cannot create thread in child");
- exit (1);
- }
-
- void *res;
- pthread_join (th, &res);
-
- exit (res != NULL);
- }
- else if (pid == -1)
- {
- puts ("cannot create child process");
- return 1;
- }
-
- int s;
- if (TEMP_FAILURE_RETRY (waitpid (pid, &s, 0)) != pid)
- {
- puts ("failing to wait for child process");
- return 1;
- }
-
- pthread_barrier_wait (&b);
- pthread_join (th, NULL);
-
- return !WIFEXITED (s) ? 2 : WEXITSTATUS (s);
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-typesizes.c b/test/nptl/tst-typesizes.c
deleted file mode 100644
index 59e9485..0000000
--- a/test/nptl/tst-typesizes.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/* Copyright (C) 2005, 2007, 2008 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2005.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stdio.h>
-#include <pthreadP.h>
-#include <semaphore.h>
-
-static const struct
-{
- const char *name;
- size_t expected;
- size_t is;
-} types[] =
- {
-#define T(t, c) \
- { #t, c, sizeof (t) }
- T (pthread_attr_t, __SIZEOF_PTHREAD_ATTR_T),
- T (pthread_mutex_t, __SIZEOF_PTHREAD_MUTEX_T),
- T (pthread_mutexattr_t, __SIZEOF_PTHREAD_MUTEXATTR_T),
- T (pthread_cond_t, __SIZEOF_PTHREAD_COND_T),
- T (pthread_condattr_t, __SIZEOF_PTHREAD_CONDATTR_T),
- T (pthread_rwlock_t, __SIZEOF_PTHREAD_RWLOCK_T),
- T (pthread_rwlockattr_t, __SIZEOF_PTHREAD_RWLOCKATTR_T),
- T (pthread_barrier_t, __SIZEOF_PTHREAD_BARRIER_T),
- T (pthread_barrierattr_t, __SIZEOF_PTHREAD_BARRIERATTR_T)
- };
-
-static int
-do_test (void)
-{
- int result = 0;
-
-#define TEST_TYPE(name) \
- printf ("%s: ", #name); \
- if (sizeof (name) != sizeof (((name *) 0)->__size)) \
- { \
- printf ("expected %zu, is %zu\n", \
- sizeof (((name *) 0)->__size), sizeof (name)); \
- result = 1; \
- } \
- else \
- puts ("OK")
-
- TEST_TYPE (pthread_mutex_t);
- TEST_TYPE (pthread_cond_t);
- TEST_TYPE (pthread_rwlock_t);
-
-#define TEST_TYPE2(name, internal) \
- printf ("%s: ", #name); \
- if (sizeof (((name *) 0)->__size) < sizeof (internal)) \
- { \
- printf ("expected %zu, is %zu\n", \
- sizeof (((name *) 0)->__size), sizeof (internal)); \
- result = 1; \
- } \
- else \
- puts ("OK")
-
- TEST_TYPE2 (pthread_attr_t, struct pthread_attr);
- TEST_TYPE2 (pthread_mutexattr_t, struct pthread_mutexattr);
- TEST_TYPE2 (pthread_condattr_t, struct pthread_condattr);
- TEST_TYPE2 (pthread_rwlockattr_t, struct pthread_rwlockattr);
- TEST_TYPE2 (pthread_barrier_t, struct pthread_barrier);
- TEST_TYPE2 (pthread_barrierattr_t, struct pthread_barrierattr);
- TEST_TYPE2 (sem_t, struct new_sem);
- TEST_TYPE2 (sem_t, struct old_sem);
-
- for (size_t i = 0; i < sizeof (types) / sizeof (types[0]); ++i)
- if (types[i].expected != types[i].is)
- {
- printf ("%s: expected %zu, is %zu\n",
- types[i].name, types[i].expected, types[i].is);
- result = 1;
- }
-
- return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-umask1.c b/test/nptl/tst-umask1.c
deleted file mode 100644
index 65b4df3..0000000
--- a/test/nptl/tst-umask1.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fcntl.h>
-#include <pthread.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/stat.h>
-
-
-static struct
-{
- int (*fp) (const char *, mode_t);
- const char *name;
- bool is_fd;
-} fcts[] =
-{
- { creat, "creat", true },
- { mkdir, "mkdir", false },
- { mkfifo, "mkfifo", false },
-};
-#define nfcts (sizeof (fcts) / sizeof (fcts[0]))
-
-
-static int
-work (const char *fname, int mask)
-{
- int result = 0;
- size_t i;
- for (i = 0; i < nfcts; ++i)
- {
- remove (fname);
- int fd = fcts[i].fp (fname, 0777);
- if (fd == -1)
- {
- printf ("cannot %s %s: %m\n", fcts[i].name, fname);
- exit (1);
- }
- if (fcts[i].is_fd)
- close (fd);
- struct stat st;
- if (stat (fname, &st) == -1)
- {
- printf ("cannot stat %s after %s: %m\n", fname, fcts[i].name);
- exit (1);
- }
-
- if ((st.st_mode & mask) != 0)
- {
- printf ("mask not successful after %s: %x still set\n",
- fcts[i].name, (unsigned int) (st.st_mode & mask));
- result = 1;
- }
- }
-
- return result;
-}
-
-
-static pthread_barrier_t bar;
-
-
-static void *
-tf (void *arg)
-{
- pthread_barrier_wait (&bar);
-
- int result = work (arg, 022);
-
- pthread_barrier_wait (&bar);
-
- pthread_barrier_wait (&bar);
-
- return (work (arg, 0) | result) ? (void *) -1l : NULL;
-}
-
-
-static int
-do_test (const char *fname)
-{
- int result = 0;
-
- umask (0);
- result |= work (fname, 0);
-
- pthread_barrier_init (&bar, NULL, 2);
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, (void *) fname) != 0)
- {
- puts ("cannot create thread");
- exit (1);
- }
-
- umask (022);
- result |= work (fname, 022);
-
- pthread_barrier_wait (&bar);
-
- pthread_barrier_wait (&bar);
-
- umask (0);
-
- pthread_barrier_wait (&bar);
-
- void *res;
- if (pthread_join (th, &res) != 0)
- {
- puts ("join failed");
- exit (1);
- }
-
- remove (fname);
-
- return result || res != NULL;
-}
-
-#define TEST_FUNCTION do_test (argc < 2 ? "/tmp/tst-umask.tmp" : argv[1])
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-unload.c b/test/nptl/tst-unload.c
deleted file mode 100644
index 74a714e..0000000
--- a/test/nptl/tst-unload.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Tests for non-unloading of libpthread.
- Copyright (C) 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2000.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
-
-#include <dlfcn.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-static int
-do_test (void)
-{
- void *p = dlopen ("libpthread.so.1", RTLD_LAZY);
-
- if (p == NULL)
- {
- puts ("failed to load libpthread.so.1");
- return 1;
- }
-
- if (dlclose (p) != 0)
- {
- puts ("dlclose (libpthread.so.1) failed");
- return 1;
- }
-
- puts ("seems to work");
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-vfork1.c b/test/nptl/tst-vfork1.c
deleted file mode 100644
index b3c9d20..0000000
--- a/test/nptl/tst-vfork1.c
+++ /dev/null
@@ -1,149 +0,0 @@
-/* Test for vfork functions.
- Copyright (C) 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-
-/* This test relies on non-POSIX functionality since the child
- processes call write and getpid. */
-static int
-do_test (void)
-{
- int result = 0;
- int fd[2];
-
- if (pipe (fd) == -1)
- {
- puts ("pipe failed");
- return 1;
- }
-
- /* First vfork() without previous getpid(). */
- pid_t p1;
- if ((p1 = vfork ()) == 0)
- {
- pid_t p = getpid ();
- _exit (TEMP_FAILURE_RETRY (write (fd[1], &p, sizeof (p))) != sizeof (p));
- }
- else if (p1 == -1)
- {
- puts ("1st vfork failed");
- result = 1;
- }
-
- pid_t p2 = 0;
- if (TEMP_FAILURE_RETRY (read (fd[0], &p2, sizeof (pid_t))) != sizeof (pid_t))
- {
- puts ("1st read failed");
- result = 1;
- }
- int r;
- if (TEMP_FAILURE_RETRY (waitpid (p1, &r, 0)) != p1)
- {
- puts ("1st waitpid failed");
- result = 1;
- }
- else if (r != 0)
- {
- puts ("write in 1st child failed");
- result = 1;
- }
-
- /* Main process' ID. */
- pid_t p0 = getpid ();
-
- /* vfork() again, but after a getpid() in the main process. */
- pid_t p3;
- if ((p3 = vfork ()) == 0)
- {
- pid_t p = getpid ();
- _exit (TEMP_FAILURE_RETRY (write (fd[1], &p, sizeof (p))) != sizeof (p));
- }
- else if (p1 == -1)
- {
- puts ("2nd vfork failed");
- result = 1;
- }
-
- pid_t p4;
- if (TEMP_FAILURE_RETRY (read (fd[0], &p4, sizeof (pid_t))) != sizeof (pid_t))
- {
- puts ("2nd read failed");
- result = 1;
- }
- if (TEMP_FAILURE_RETRY (waitpid (p3, &r, 0)) != p3)
- {
- puts ("2nd waitpid failed");
- result = 1;
- }
- else if (r != 0)
- {
- puts ("write in 2nd child failed");
- result = 1;
- }
-
- /* And getpid in the main process again. */
- pid_t p5 = getpid ();
-
- /* Analysis of the results. */
- if (p0 != p5)
- {
- printf ("p0(%ld) != p5(%ld)\n", (long int) p0, (long int) p5);
- result = 1;
- }
-
- if (p0 == p1)
- {
- printf ("p0(%ld) == p1(%ld)\n", (long int) p0, (long int) p1);
- result = 1;
- }
-
- if (p1 != p2)
- {
- printf ("p1(%ld) != p2(%ld)\n", (long int) p1, (long int) p2);
- result = 1;
- }
-
- if (p0 == p3)
- {
- printf ("p0(%ld) == p3(%ld)\n", (long int) p0, (long int) p3);
- result = 1;
- }
-
- if (p3 != p4)
- {
- printf ("p3(%ld) != p4(%ld)\n", (long int) p3, (long int) p4);
- result = 1;
- }
-
- close (fd[0]);
- close (fd[1]);
-
- if (result == 0)
- puts ("All OK");
-
- return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-vfork1x.c b/test/nptl/tst-vfork1x.c
deleted file mode 100644
index b3c9d20..0000000
--- a/test/nptl/tst-vfork1x.c
+++ /dev/null
@@ -1,149 +0,0 @@
-/* Test for vfork functions.
- Copyright (C) 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-
-/* This test relies on non-POSIX functionality since the child
- processes call write and getpid. */
-static int
-do_test (void)
-{
- int result = 0;
- int fd[2];
-
- if (pipe (fd) == -1)
- {
- puts ("pipe failed");
- return 1;
- }
-
- /* First vfork() without previous getpid(). */
- pid_t p1;
- if ((p1 = vfork ()) == 0)
- {
- pid_t p = getpid ();
- _exit (TEMP_FAILURE_RETRY (write (fd[1], &p, sizeof (p))) != sizeof (p));
- }
- else if (p1 == -1)
- {
- puts ("1st vfork failed");
- result = 1;
- }
-
- pid_t p2 = 0;
- if (TEMP_FAILURE_RETRY (read (fd[0], &p2, sizeof (pid_t))) != sizeof (pid_t))
- {
- puts ("1st read failed");
- result = 1;
- }
- int r;
- if (TEMP_FAILURE_RETRY (waitpid (p1, &r, 0)) != p1)
- {
- puts ("1st waitpid failed");
- result = 1;
- }
- else if (r != 0)
- {
- puts ("write in 1st child failed");
- result = 1;
- }
-
- /* Main process' ID. */
- pid_t p0 = getpid ();
-
- /* vfork() again, but after a getpid() in the main process. */
- pid_t p3;
- if ((p3 = vfork ()) == 0)
- {
- pid_t p = getpid ();
- _exit (TEMP_FAILURE_RETRY (write (fd[1], &p, sizeof (p))) != sizeof (p));
- }
- else if (p1 == -1)
- {
- puts ("2nd vfork failed");
- result = 1;
- }
-
- pid_t p4;
- if (TEMP_FAILURE_RETRY (read (fd[0], &p4, sizeof (pid_t))) != sizeof (pid_t))
- {
- puts ("2nd read failed");
- result = 1;
- }
- if (TEMP_FAILURE_RETRY (waitpid (p3, &r, 0)) != p3)
- {
- puts ("2nd waitpid failed");
- result = 1;
- }
- else if (r != 0)
- {
- puts ("write in 2nd child failed");
- result = 1;
- }
-
- /* And getpid in the main process again. */
- pid_t p5 = getpid ();
-
- /* Analysis of the results. */
- if (p0 != p5)
- {
- printf ("p0(%ld) != p5(%ld)\n", (long int) p0, (long int) p5);
- result = 1;
- }
-
- if (p0 == p1)
- {
- printf ("p0(%ld) == p1(%ld)\n", (long int) p0, (long int) p1);
- result = 1;
- }
-
- if (p1 != p2)
- {
- printf ("p1(%ld) != p2(%ld)\n", (long int) p1, (long int) p2);
- result = 1;
- }
-
- if (p0 == p3)
- {
- printf ("p0(%ld) == p3(%ld)\n", (long int) p0, (long int) p3);
- result = 1;
- }
-
- if (p3 != p4)
- {
- printf ("p3(%ld) != p4(%ld)\n", (long int) p3, (long int) p4);
- result = 1;
- }
-
- close (fd[0]);
- close (fd[1]);
-
- if (result == 0)
- puts ("All OK");
-
- return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-vfork2.c b/test/nptl/tst-vfork2.c
deleted file mode 100644
index 6b2d98b..0000000
--- a/test/nptl/tst-vfork2.c
+++ /dev/null
@@ -1,198 +0,0 @@
-/* Test for vfork functions.
- Copyright (C) 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <unistd.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-
-int raise_fail;
-
-static void
-alrm (int sig)
-{
- if (raise (SIGUSR1) < 0)
- raise_fail = 1;
-}
-
-/* This test relies on non-POSIX functionality since the child
- processes call write, nanosleep and getpid. */
-static int
-do_test (void)
-{
- int result = 0;
- int fd[2];
-
- signal (SIGUSR1, SIG_IGN);
-
- struct sigaction sa;
- sa.sa_handler = alrm;
- sigemptyset (&sa.sa_mask);
- sa.sa_flags = 0;
- if (sigaction (SIGALRM, &sa, NULL) < 0)
- {
- puts ("couldn't set up SIGALRM handler");
- return 1;
- }
-
- if (pipe (fd) == -1)
- {
- puts ("pipe failed");
- return 1;
- }
-
- struct itimerval it;
- it.it_value.tv_sec = 0;
- it.it_value.tv_usec = 200 * 1000;
- it.it_interval = it.it_value;
- if (setitimer (ITIMER_REAL, &it, NULL) < 0)
- {
- puts ("couldn't set up timer");
- return 1;
- }
-
- /* First vfork() without previous getpid(). */
- pid_t p1;
- if ((p1 = vfork ()) == 0)
- {
- pid_t p = getpid ();
-
- struct timespec ts;
- ts.tv_sec = 1;
- ts.tv_nsec = 0;
- TEMP_FAILURE_RETRY (nanosleep (&ts, &ts));
- _exit (TEMP_FAILURE_RETRY (write (fd[1], &p, sizeof (p))) != sizeof (p));
- }
- else if (p1 == -1)
- {
- puts ("1st vfork failed");
- result = 1;
- }
-
- memset (&it, 0, sizeof (it));
- setitimer (ITIMER_REAL, &it, NULL);
-
- pid_t p2 = 0;
- if (TEMP_FAILURE_RETRY (read (fd[0], &p2, sizeof (pid_t))) != sizeof (pid_t))
- {
- puts ("1st read failed");
- result = 1;
- }
- int r;
- if (TEMP_FAILURE_RETRY (waitpid (p1, &r, 0)) != p1)
- {
- puts ("1st waitpid failed");
- result = 1;
- }
- else if (r != 0)
- {
- puts ("write in 1st child failed");
- result = 1;
- }
-
- /* Main process' ID. */
- pid_t p0 = getpid ();
-
- /* vfork() again, but after a getpid() in the main process. */
- pid_t p3;
- if ((p3 = vfork ()) == 0)
- {
- pid_t p = getpid ();
- _exit (TEMP_FAILURE_RETRY (write (fd[1], &p, sizeof (p))) != sizeof (p));
- }
- else if (p1 == -1)
- {
- puts ("2nd vfork failed");
- result = 1;
- }
-
- pid_t p4;
- if (TEMP_FAILURE_RETRY (read (fd[0], &p4, sizeof (pid_t))) != sizeof (pid_t))
- {
- puts ("2nd read failed");
- result = 1;
- }
- if (TEMP_FAILURE_RETRY (waitpid (p3, &r, 0)) != p3)
- {
- puts ("2nd waitpid failed");
- result = 1;
- }
- else if (r != 0)
- {
- puts ("write in 2nd child failed");
- result = 1;
- }
-
- /* And getpid in the main process again. */
- pid_t p5 = getpid ();
-
- /* Analysis of the results. */
- if (p0 != p5)
- {
- printf ("p0(%ld) != p5(%ld)\n", (long int) p0, (long int) p5);
- result = 1;
- }
-
- if (p0 == p1)
- {
- printf ("p0(%ld) == p1(%ld)\n", (long int) p0, (long int) p1);
- result = 1;
- }
-
- if (p1 != p2)
- {
- printf ("p1(%ld) != p2(%ld)\n", (long int) p1, (long int) p2);
- result = 1;
- }
-
- if (p0 == p3)
- {
- printf ("p0(%ld) == p3(%ld)\n", (long int) p0, (long int) p3);
- result = 1;
- }
-
- if (p3 != p4)
- {
- printf ("p3(%ld) != p4(%ld)\n", (long int) p3, (long int) p4);
- result = 1;
- }
-
- close (fd[0]);
- close (fd[1]);
-
- if (raise_fail)
- {
- puts ("raise failed");
- result = 1;
- }
-
- if (result == 0)
- puts ("All OK");
-
- return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/nptl/tst-vfork2x.c b/test/nptl/tst-vfork2x.c
deleted file mode 100644
index 6b2d98b..0000000
--- a/test/nptl/tst-vfork2x.c
+++ /dev/null
@@ -1,198 +0,0 @@
-/* Test for vfork functions.
- Copyright (C) 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <unistd.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-
-int raise_fail;
-
-static void
-alrm (int sig)
-{
- if (raise (SIGUSR1) < 0)
- raise_fail = 1;
-}
-
-/* This test relies on non-POSIX functionality since the child
- processes call write, nanosleep and getpid. */
-static int
-do_test (void)
-{
- int result = 0;
- int fd[2];
-
- signal (SIGUSR1, SIG_IGN);
-
- struct sigaction sa;
- sa.sa_handler = alrm;
- sigemptyset (&sa.sa_mask);
- sa.sa_flags = 0;
- if (sigaction (SIGALRM, &sa, NULL) < 0)
- {
- puts ("couldn't set up SIGALRM handler");
- return 1;
- }
-
- if (pipe (fd) == -1)
- {
- puts ("pipe failed");
- return 1;
- }
-
- struct itimerval it;
- it.it_value.tv_sec = 0;
- it.it_value.tv_usec = 200 * 1000;
- it.it_interval = it.it_value;
- if (setitimer (ITIMER_REAL, &it, NULL) < 0)
- {
- puts ("couldn't set up timer");
- return 1;
- }
-
- /* First vfork() without previous getpid(). */
- pid_t p1;
- if ((p1 = vfork ()) == 0)
- {
- pid_t p = getpid ();
-
- struct timespec ts;
- ts.tv_sec = 1;
- ts.tv_nsec = 0;
- TEMP_FAILURE_RETRY (nanosleep (&ts, &ts));
- _exit (TEMP_FAILURE_RETRY (write (fd[1], &p, sizeof (p))) != sizeof (p));
- }
- else if (p1 == -1)
- {
- puts ("1st vfork failed");
- result = 1;
- }
-
- memset (&it, 0, sizeof (it));
- setitimer (ITIMER_REAL, &it, NULL);
-
- pid_t p2 = 0;
- if (TEMP_FAILURE_RETRY (read (fd[0], &p2, sizeof (pid_t))) != sizeof (pid_t))
- {
- puts ("1st read failed");
- result = 1;
- }
- int r;
- if (TEMP_FAILURE_RETRY (waitpid (p1, &r, 0)) != p1)
- {
- puts ("1st waitpid failed");
- result = 1;
- }
- else if (r != 0)
- {
- puts ("write in 1st child failed");
- result = 1;
- }
-
- /* Main process' ID. */
- pid_t p0 = getpid ();
-
- /* vfork() again, but after a getpid() in the main process. */
- pid_t p3;
- if ((p3 = vfork ()) == 0)
- {
- pid_t p = getpid ();
- _exit (TEMP_FAILURE_RETRY (write (fd[1], &p, sizeof (p))) != sizeof (p));
- }
- else if (p1 == -1)
- {
- puts ("2nd vfork failed");
- result = 1;
- }
-
- pid_t p4;
- if (TEMP_FAILURE_RETRY (read (fd[0], &p4, sizeof (pid_t))) != sizeof (pid_t))
- {
- puts ("2nd read failed");
- result = 1;
- }
- if (TEMP_FAILURE_RETRY (waitpid (p3, &r, 0)) != p3)
- {
- puts ("2nd waitpid failed");
- result = 1;
- }
- else if (r != 0)
- {
- puts ("write in 2nd child failed");
- result = 1;
- }
-
- /* And getpid in the main process again. */
- pid_t p5 = getpid ();
-
- /* Analysis of the results. */
- if (p0 != p5)
- {
- printf ("p0(%ld) != p5(%ld)\n", (long int) p0, (long int) p5);
- result = 1;
- }
-
- if (p0 == p1)
- {
- printf ("p0(%ld) == p1(%ld)\n", (long int) p0, (long int) p1);
- result = 1;
- }
-
- if (p1 != p2)
- {
- printf ("p1(%ld) != p2(%ld)\n", (long int) p1, (long int) p2);
- result = 1;
- }
-
- if (p0 == p3)
- {
- printf ("p0(%ld) == p3(%ld)\n", (long int) p0, (long int) p3);
- result = 1;
- }
-
- if (p3 != p4)
- {
- printf ("p3(%ld) != p4(%ld)\n", (long int) p3, (long int) p4);
- result = 1;
- }
-
- close (fd[0]);
- close (fd[1]);
-
- if (raise_fail)
- {
- puts ("raise failed");
- result = 1;
- }
-
- if (result == 0)
- puts ("All OK");
-
- return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/plt/check-plt.sh b/test/plt/check-plt.sh
deleted file mode 100755
index bedc8fd..0000000
--- a/test/plt/check-plt.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/sh
-allowed="
-calloc
-free
-malloc
-memalign
-realloc
-"
-
-${OBJDUMP:-objdump} -d ${top_builddir:-../..}/lib/libc.so.? | \
-gawk -v allowed="${allowed}" '
-BEGIN {
- COUNT = split(" " allowed, ALLOWED);
-}
-
-# Strip away the noise. The name will be like:
-# <brk>:
-# <foo@plt>
-function symstrip(name) {
- return gensub(/.*<([^>(a)]*).*/]*).*/, "\\1", "", name);
-}
-
-{
-# Match the start of the symbol disassembly
-# 00009720 <brk>:
-if ($2 ~ />:$/) {
- f = symstrip($2);
-
-} else if ($NF ~ /@plt>/) {
- rf = symstrip($NF);
- for (a in ALLOWED) {
- a = ALLOWED[a];
- if (a == rf)
- next;
- }
- print "Func " f " references " rf;
-}
-}' | sort -u
diff --git a/test/pthread/Makefile b/test/pthread/Makefile
deleted file mode 100644
index 97ebee8..0000000
--- a/test/pthread/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc pthread tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/pthread/Makefile.in b/test/pthread/Makefile.in
deleted file mode 100644
index bd6b29b..0000000
--- a/test/pthread/Makefile.in
+++ /dev/null
@@ -1,10 +0,0 @@
-# uClibc pthread tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-TESTS_DISABLED += cancellation-points
-
-EXTRA_LDFLAGS := -lpthread
-
-LDFLAGS_cancellation-points := -lrt
-
-CFLAGS_tst-c99 := -std=c99
diff --git a/test/pthread/cancellation-points.c b/test/pthread/cancellation-points.c
deleted file mode 100644
index 5453060..0000000
--- a/test/pthread/cancellation-points.c
+++ /dev/null
@@ -1,286 +0,0 @@
-/*
- * Make sure functions marked as cancellation points actually are.
- *
http://www.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_09.html#…
- */
-
-#ifndef _GNU_SOURCE
-#define _GNU_SOURCE
-#endif
-
-#include <features.h>
-#include <sys/ipc.h>
-#include <sys/mman.h>
-#include <sys/msg.h>
-#include <sys/socket.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <fcntl.h>
-#include <mqueue.h>
-#include <poll.h>
-#include <pthread.h>
-#include <semaphore.h>
-#include <signal.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <termios.h>
-#include <time.h>
-#include <unistd.h>
-
-/* take care of optional things ... */
-#define STUB(func, args) static void func args { sleep(0); }
-#if defined(__UCLIBC_AIO__)
-# include <aio.h>
-#else
-STUB(aio_suspend, (void *p, int n, const void *p2))
-#endif
-#if defined(__UCLIBC_STROPTS__)
-# include <stropts.h>
-#else
-STUB(getmsg, (int f, void *p, void *p2, void *p3))
-STUB(getpmsg, (int f, void *p, void *p2, void *p3, void *p4))
-STUB(putmsg, (int f, void *p, void *p2, void *p3))
-STUB(putpmsg, (int f, void *p, void *p2, void *p3, void *p4))
-#endif
-#if defined(__UCLIBC__)
-STUB(clock_nanosleep, (int i, int f, const void *p, void *p2))
-#endif
-
-int cnt;
-bool ready;
-
-void cancel_timeout(int sig)
-{
- ready = false;
-}
-void cancel_thread_cleanup(void *arg)
-{
- ready = false;
-}
-
-/* some funcs need some help as they wont take NULL args ... */
-const struct timespec zero_sec = { .tv_sec = 0, .tv_nsec = 0 };
-
-sem_t sem;
-void help_sem_setup(void)
-{
- if (sem_init(&sem, 0, 1) == -1) {
- perror("sem_init() failed");
- exit(-1);
- }
-}
-
-pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-pthread_mutex_t mutex;
-void help_pthread_setup(void)
-{
- pthread_mutex_init(&mutex, NULL);
- pthread_mutex_lock(&mutex);
-}
-
-/* the pthread function that will call the cancellable function over and over */
-#define _MAKE_CANCEL_THREAD_FUNC_EX(func, sysfunc, args, setup) \
-void *cancel_thread_##func(void *arg) \
-{ \
- if (pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, NULL)) { \
- perror("unable to set cancel type to deferred; something is seriously
broken"); \
- exit(-1); \
- } \
- pthread_cleanup_push(cancel_thread_cleanup, NULL); \
- setup; \
- ready = true; \
- while (ready) \
- sysfunc args; \
- pthread_cleanup_pop(1); \
- return NULL; \
-}
-#define MAKE_CANCEL_THREAD_FUNC_RE(func, sysfunc, args) _MAKE_CANCEL_THREAD_FUNC_EX(func,
sysfunc, args, (void)0)
-#define MAKE_CANCEL_THREAD_FUNC_EX(func, args, setup) _MAKE_CANCEL_THREAD_FUNC_EX(func,
func, args, setup)
-#define MAKE_CANCEL_THREAD_FUNC(func, args) _MAKE_CANCEL_THREAD_FUNC_EX(func,
func, args, (void)0)
-
-MAKE_CANCEL_THREAD_FUNC(accept, (-1, NULL, NULL))
-MAKE_CANCEL_THREAD_FUNC(aio_suspend, (NULL, 0, &zero_sec))
-MAKE_CANCEL_THREAD_FUNC(clock_nanosleep, (0, 0, NULL, NULL))
-MAKE_CANCEL_THREAD_FUNC(close, (-1))
-MAKE_CANCEL_THREAD_FUNC(connect, (-1, NULL, 0))
-MAKE_CANCEL_THREAD_FUNC(creat, ("", 0))
-MAKE_CANCEL_THREAD_FUNC(fcntl, (0, F_SETLKW, NULL))
-MAKE_CANCEL_THREAD_FUNC(fdatasync, (-1))
-MAKE_CANCEL_THREAD_FUNC(fsync, (0))
-MAKE_CANCEL_THREAD_FUNC(getmsg, (-1, NULL, NULL, NULL))
-MAKE_CANCEL_THREAD_FUNC(getpmsg, (-1, NULL, NULL, NULL, NULL))
-MAKE_CANCEL_THREAD_FUNC(lockf, (-1, F_TEST, 0))
-MAKE_CANCEL_THREAD_FUNC(mq_receive, (0, NULL, 0, NULL))
-MAKE_CANCEL_THREAD_FUNC(mq_send, (0, NULL, 0, 0))
-MAKE_CANCEL_THREAD_FUNC(mq_timedreceive, (0, NULL, 0, NULL, NULL))
-MAKE_CANCEL_THREAD_FUNC(mq_timedsend, (0, NULL, 0, 0, NULL))
-MAKE_CANCEL_THREAD_FUNC(msgrcv, (-1, NULL, 0, 0, 0))
-MAKE_CANCEL_THREAD_FUNC(msgsnd, (-1, NULL, 0, 0))
-MAKE_CANCEL_THREAD_FUNC(msync, (NULL, 0, 0))
-MAKE_CANCEL_THREAD_FUNC(nanosleep, (NULL, NULL))
-MAKE_CANCEL_THREAD_FUNC(open, ("", 0))
-MAKE_CANCEL_THREAD_FUNC(pause, ())
-MAKE_CANCEL_THREAD_FUNC(poll, (NULL, 0, 0))
-MAKE_CANCEL_THREAD_FUNC(pread, (-1, NULL, 0, 0))
-MAKE_CANCEL_THREAD_FUNC(pselect, (0, NULL, NULL, NULL, NULL, NULL))
-MAKE_CANCEL_THREAD_FUNC_EX(pthread_cond_timedwait, (&cond, &mutex,
&zero_sec), help_pthread_setup())
-MAKE_CANCEL_THREAD_FUNC_EX(pthread_cond_wait, (&cond, &mutex),
help_pthread_setup())
-/*MAKE_CANCEL_THREAD_FUNC_EX(pthread_join, (0, NULL))*/
-MAKE_CANCEL_THREAD_FUNC(pthread_testcancel, ())
-MAKE_CANCEL_THREAD_FUNC(putmsg, (-1, NULL, NULL, 0))
-MAKE_CANCEL_THREAD_FUNC(putpmsg, (-1, NULL, NULL, 0, 0))
-MAKE_CANCEL_THREAD_FUNC(pwrite, (-1, NULL, 0, 0))
-MAKE_CANCEL_THREAD_FUNC(read, (-1, NULL, 0))
-MAKE_CANCEL_THREAD_FUNC(readv, (-1, NULL, 0))
-MAKE_CANCEL_THREAD_FUNC(recv, (-1, NULL, 0, 0))
-MAKE_CANCEL_THREAD_FUNC(recvfrom, (-1, NULL, 0, 0, NULL, NULL))
-MAKE_CANCEL_THREAD_FUNC(recvmsg, (-1, NULL, 0))
-MAKE_CANCEL_THREAD_FUNC(select, (0, NULL, NULL, NULL, NULL))
-MAKE_CANCEL_THREAD_FUNC_EX(sem_timedwait, (&sem, &zero_sec), help_sem_setup())
-MAKE_CANCEL_THREAD_FUNC_EX(sem_wait, (&sem), help_sem_setup())
-MAKE_CANCEL_THREAD_FUNC(send, (-1, NULL, 0, 0))
-MAKE_CANCEL_THREAD_FUNC(sendmsg, (-1, NULL, 0))
-MAKE_CANCEL_THREAD_FUNC(sendto, (-1, NULL, 0, 0, NULL, 0))
-#ifdef __UCLIBC_SUSV4_LEGACY__
-MAKE_CANCEL_THREAD_FUNC(sigpause, (0))
-#endif
-MAKE_CANCEL_THREAD_FUNC(sigsuspend, (NULL))
-MAKE_CANCEL_THREAD_FUNC(sigtimedwait, (NULL, NULL, NULL))
-MAKE_CANCEL_THREAD_FUNC(sigwait, (NULL, NULL))
-MAKE_CANCEL_THREAD_FUNC(sigwaitinfo, (NULL, NULL))
-MAKE_CANCEL_THREAD_FUNC(sleep, (0))
-MAKE_CANCEL_THREAD_FUNC(system, (""))
-MAKE_CANCEL_THREAD_FUNC(tcdrain, (-1))
-#ifdef __UCLIBC_SUSV3_LEGACY__
-MAKE_CANCEL_THREAD_FUNC(usleep, (0))
-#endif
-MAKE_CANCEL_THREAD_FUNC(wait, (NULL))
-MAKE_CANCEL_THREAD_FUNC(waitid, (0, 0, NULL, 0))
-MAKE_CANCEL_THREAD_FUNC(waitpid, (-1, NULL, 0))
-MAKE_CANCEL_THREAD_FUNC(write, (-1, NULL, 0))
-MAKE_CANCEL_THREAD_FUNC(writev, (-1, NULL, 0))
-
-/* test a few variations that should not cancel ... */
-MAKE_CANCEL_THREAD_FUNC_RE(fcntl_another, fcntl, (0, F_GETFD))
-
-/* main test that creates thread, cancels it, etc... */
-int _test_func(const char *func_name, void *(*func)(void*), const int should_cancel)
-{
- int ret;
- pthread_t cancel_thread_id;
-
- ++cnt;
-
- printf("testing %-30s ", func_name);
-
- printf(".");
- if (signal(SIGALRM, cancel_timeout) == SIG_ERR) {
- perror("unable to bind SIGALRM");
- exit(-1);
- }
-
- printf(".");
- ready = false;
- pthread_create(&cancel_thread_id, NULL, func, NULL);
-
- printf(".");
- while (!ready)
- sched_yield();
-
- printf(".");
- if (pthread_cancel(cancel_thread_id)) {
- perror("unable to cancel thread");
- exit(-1);
- }
-
- printf(".");
- alarm(5);
- while (ready)
- sched_yield();
-
- printf(".");
- ret = (!!!alarm(0) == should_cancel);
-
- if (ret)
- printf(" failed ;(\n");
- else
- printf(" OK!\n");
-
- return ret;
-}
-#define TEST_FUNC(f) _test_func(#f, cancel_thread_##f, 1)
-#define TEST_FUNC_RE(f) _test_func(#f, cancel_thread_##f, 0)
-
-int main(int argc, char *argv[])
-{
- int ret = 0;
- setbuf(stdout, NULL);
- cnt = 0;
-
- ret += TEST_FUNC(accept);
- ret += TEST_FUNC(aio_suspend);
- ret += TEST_FUNC(clock_nanosleep);
- ret += TEST_FUNC(close);
- ret += TEST_FUNC(connect);
- ret += TEST_FUNC(creat);
- ret += TEST_FUNC(fcntl);
- ret += TEST_FUNC(fdatasync);
- ret += TEST_FUNC(fsync);
- ret += TEST_FUNC(getmsg);
- ret += TEST_FUNC(getpmsg);
- ret += TEST_FUNC(lockf);
- ret += TEST_FUNC(mq_receive);
- ret += TEST_FUNC(mq_send);
- ret += TEST_FUNC(mq_timedreceive);
- ret += TEST_FUNC(mq_timedsend);
- ret += TEST_FUNC(msgrcv);
- ret += TEST_FUNC(msgsnd);
- ret += TEST_FUNC(msync);
- ret += TEST_FUNC(nanosleep);
- ret += TEST_FUNC(open);
- ret += TEST_FUNC(pause);
- ret += TEST_FUNC(poll);
- ret += TEST_FUNC(pread);
- ret += TEST_FUNC(pselect);
- ret += TEST_FUNC(pthread_cond_timedwait);
- ret += TEST_FUNC(pthread_cond_wait);
- /*ret += TEST_FUNC(pthread_join);*/
- ret += TEST_FUNC(pthread_testcancel);
- ret += TEST_FUNC(putmsg);
- ret += TEST_FUNC(putpmsg);
- ret += TEST_FUNC(pwrite);
- ret += TEST_FUNC(read);
- ret += TEST_FUNC(readv);
- ret += TEST_FUNC(recv);
- ret += TEST_FUNC(recvfrom);
- ret += TEST_FUNC(recvmsg);
- ret += TEST_FUNC(select);
- ret += TEST_FUNC(sem_timedwait);
- ret += TEST_FUNC(sem_wait);
- ret += TEST_FUNC(send);
- ret += TEST_FUNC(sendmsg);
- ret += TEST_FUNC(sendto);
- ret += TEST_FUNC(sigpause);
- ret += TEST_FUNC(sigsuspend);
- ret += TEST_FUNC(sigtimedwait);
- ret += TEST_FUNC(sigwait);
- ret += TEST_FUNC(sigwaitinfo);
- ret += TEST_FUNC(sleep);
- ret += TEST_FUNC(system);
- ret += TEST_FUNC(tcdrain);
-#ifdef __UCLIBC_SUSV3_LEGACY__
- ret += TEST_FUNC(usleep);
-#endif
- ret += TEST_FUNC(wait);
- ret += TEST_FUNC(waitid);
- ret += TEST_FUNC(waitpid);
- ret += TEST_FUNC(write);
- ret += TEST_FUNC(writev);
-
- ret += TEST_FUNC_RE(fcntl_another);
-
- if (ret)
- printf("!!! %i / %i tests failed\n", ret, cnt);
-
- return ret;
-}
diff --git a/test/pthread/ex1.c b/test/pthread/ex1.c
deleted file mode 100644
index 4d9de03..0000000
--- a/test/pthread/ex1.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Creates two threads, one printing 10000 "a"s, the other printing
- 10000 "b"s.
- Illustrates: thread creation, thread joining. */
-
-#include <stddef.h>
-#include <stdio.h>
-#include <unistd.h>
-#include "pthread.h"
-
-static void *process(void * arg)
-{
- int i;
- printf("Starting process %s\n", (char *)arg);
- for (i = 0; i < 10000; i++)
- write(1, (char *) arg, 1);
- return NULL;
-}
-
-#define sucfail(r) (r != 0 ? "failed" : "succeeded")
-int main(void)
-{
- int pret, ret = 0;
- pthread_t th_a, th_b;
- void *retval;
-
- ret += (pret = pthread_create(&th_a, NULL, process, (void *)"a"));
- printf("create a %s %d\n", sucfail(pret), pret);
- ret += (pret = pthread_create(&th_b, NULL, process, (void *)"b"));
- printf("create b %s %d\n", sucfail(pret), pret);
- ret += (pret = pthread_join(th_a, &retval));
- printf("join a %s %d\n", sucfail(pret), pret);
- ret += (pret = pthread_join(th_b, &retval));
- printf("join b %s %d\n", sucfail(pret), pret);
- return ret;
-}
diff --git a/test/pthread/ex2.c b/test/pthread/ex2.c
deleted file mode 100644
index 98bd4b3..0000000
--- a/test/pthread/ex2.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/* The classic producer-consumer example.
- Illustrates mutexes and conditions.
- All integers between 0 and 9999 should be printed exactly twice,
- once to the right of the arrow and once to the left. */
-
-#include <stdio.h>
-#include "pthread.h"
-
-#define BUFFER_SIZE 16
-
-/* Circular buffer of integers. */
-
-struct prodcons {
- int buffer[BUFFER_SIZE]; /* the actual data */
- pthread_mutex_t lock; /* mutex ensuring exclusive access to buffer */
- int readpos, writepos; /* positions for reading and writing */
- pthread_cond_t notempty; /* signaled when buffer is not empty */
- pthread_cond_t notfull; /* signaled when buffer is not full */
-};
-
-/* Initialize a buffer */
-
-static void init(struct prodcons * b)
-{
- pthread_mutex_init(&b->lock, NULL);
- pthread_cond_init(&b->notempty, NULL);
- pthread_cond_init(&b->notfull, NULL);
- b->readpos = 0;
- b->writepos = 0;
-}
-
-/* Store an integer in the buffer */
-
-static void put(struct prodcons * b, int data)
-{
- pthread_mutex_lock(&b->lock);
- /* Wait until buffer is not full */
- while ((b->writepos + 1) % BUFFER_SIZE == b->readpos) {
- pthread_cond_wait(&b->notfull, &b->lock);
- /* pthread_cond_wait reacquired b->lock before returning */
- }
- /* Write the data and advance write pointer */
- b->buffer[b->writepos] = data;
- b->writepos++;
- if (b->writepos >= BUFFER_SIZE) b->writepos = 0;
- /* Signal that the buffer is now not empty */
- pthread_cond_signal(&b->notempty);
- pthread_mutex_unlock(&b->lock);
-}
-
-/* Read and remove an integer from the buffer */
-
-static int get(struct prodcons * b)
-{
- int data;
- pthread_mutex_lock(&b->lock);
- /* Wait until buffer is not empty */
- while (b->writepos == b->readpos) {
- pthread_cond_wait(&b->notempty, &b->lock);
- }
- /* Read the data and advance read pointer */
- data = b->buffer[b->readpos];
- b->readpos++;
- if (b->readpos >= BUFFER_SIZE) b->readpos = 0;
- /* Signal that the buffer is now not full */
- pthread_cond_signal(&b->notfull);
- pthread_mutex_unlock(&b->lock);
- return data;
-}
-
-/* A test program: one thread inserts integers from 1 to 10000,
- the other reads them and prints them. */
-
-#define OVER (-1)
-
-struct prodcons buffer;
-
-static void * producer(void * data)
-{
- int n;
- for (n = 0; n < 10000; n++) {
- printf("%d --->\n", n);
- put(&buffer, n);
- }
- put(&buffer, OVER);
- return NULL;
-}
-
-static void * consumer(void * data)
-{
- int d;
- while (1) {
- d = get(&buffer);
- if (d == OVER) break;
- printf("---> %d\n", d);
- }
- return NULL;
-}
-
-int main(void)
-{
- pthread_t th_a, th_b;
- void * retval;
-
- init(&buffer);
- /* Create the threads */
- pthread_create(&th_a, NULL, producer, 0);
- pthread_create(&th_b, NULL, consumer, 0);
- /* Wait until producer and consumer finish. */
- pthread_join(th_a, &retval);
- pthread_join(th_b, &retval);
- return 0;
-}
diff --git a/test/pthread/ex3.c b/test/pthread/ex3.c
deleted file mode 100644
index 8ef7797..0000000
--- a/test/pthread/ex3.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/* Multi-thread searching.
- Illustrates: thread cancellation, cleanup handlers. */
-
-#include <errno.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <sys/types.h>
-#include <pthread.h>
-
-/* Defines the number of searching threads */
-#define NUM_THREADS 5
-
-/* Function prototypes */
-void *search(void *);
-void print_it(void *);
-
-/* Global variables */
-pthread_t threads[NUM_THREADS];
-pthread_mutex_t lock;
-int tries;
-volatile int started;
-
-int main(int argc, char ** argv)
-{
- unsigned long i;
- unsigned long pid;
-
- /* create a number to search for */
- pid = getpid();
- printf("Searching for the number = %ld...\n", pid);
-
- /* Initialize the mutex lock */
- pthread_mutex_init(&lock, NULL);
-
- /* Create the searching threads */
- for (started=0; started<NUM_THREADS; started++)
- pthread_create(&threads[started], NULL, search, (void *)pid);
-
- /* Wait for (join) all the searching threads */
- for (i=0; i<NUM_THREADS; i++)
- pthread_join(threads[i], NULL);
-
- printf("It took %d tries to find the number.\n", tries);
-
- /* Exit the program */
- return 0;
-}
-
-/* This is the cleanup function that is called
- when the threads are cancelled */
-
-void print_it(void *arg)
-{
- int *try = (int *) arg;
- pthread_t tid;
-
- /* Get the calling thread's ID */
- tid = pthread_self();
-
- /* Print where the thread was in its search when it was cancelled */
- printf("Thread %lx was canceled on its %d try.\n", tid, *try);
-}
-
-/* This is the search routine that is executed in each thread */
-
-void *search(void *arg)
-{
- unsigned long num = (unsigned long) arg;
- unsigned long i, j, ntries;
- pthread_t tid;
-
- /* get the calling thread ID */
- tid = pthread_self();
-
- /* use the thread ID to set the seed for the random number generator */
- /* Since srand and rand are not thread-safe, serialize with lock */
-
- /* Try to lock the mutex lock --
- if locked, check to see if the thread has been cancelled
- if not locked then continue */
- while (pthread_mutex_trylock(&lock) == EBUSY)
- pthread_testcancel();
-
- srand((int)tid);
- i = rand() & 0xFFFFFF;
- pthread_mutex_unlock(&lock);
- ntries = 0;
-
- /* Set the cancellation parameters --
- - Enable thread cancellation
- - Defer the action of the cancellation */
-
- pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
- pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, NULL);
-
- while (started < NUM_THREADS)
- sched_yield ();
-
- /* Push the cleanup routine (print_it) onto the thread
- cleanup stack. This routine will be called when the
- thread is cancelled. Also note that the pthread_cleanup_push
- call must have a matching pthread_cleanup_pop call. The
- push and pop calls MUST be at the same lexical level
- within the code */
-
- /* Pass address of `ntries' since the current value of `ntries' is not
- the one we want to use in the cleanup function */
-
- pthread_cleanup_push(print_it, (void *)&ntries);
-
- /* Loop forever */
- while (1) {
- i = (i + 1) & 0xFFFFFF;
- ntries++;
-
- /* Does the random number match the target number? */
- if (num == i) {
- /* Try to lock the mutex lock --
- if locked, check to see if the thread has been cancelled
- if not locked then continue */
- while (pthread_mutex_trylock(&lock) == EBUSY)
- pthread_testcancel();
-
- /* Set the global variable for the number of tries */
- tries = ntries;
- printf("Thread %lx found the number!\n", tid);
-
- /* Cancel all the other threads */
- for (j=0; j<NUM_THREADS; j++)
- if (threads[j] != tid) pthread_cancel(threads[j]);
-
- /* Break out of the while loop */
- break;
- }
-
- /* Every 100 tries check to see if the thread has been cancelled. */
- if (ntries % 100 == 0) {
- pthread_testcancel();
- }
- }
-
- /* The only way we can get here is when the thread breaks out
- of the while loop. In this case the thread that makes it here
- has found the number we are looking for and does not need to run
- the thread cleanup function. This is why the pthread_cleanup_pop
- function is called with a 0 argument; this will pop the cleanup
- function off the stack without executing it */
-
- pthread_cleanup_pop(0);
- return((void *)0);
-}
diff --git a/test/pthread/ex4.c b/test/pthread/ex4.c
deleted file mode 100644
index cf4cf1d..0000000
--- a/test/pthread/ex4.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/* Making a library function that uses static variables thread-safe.
- Illustrates: thread-specific data, pthread_once(). */
-
-#include <stddef.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <pthread.h>
-
-/* This is a typical example of a library function that uses
- static variables to accumulate results between calls.
- Here, it just returns the concatenation of all string arguments
- that were given to it. */
-
-#if 0
-
-static char * str_accumulate(char * s)
-{
- static char accu[1024] = { 0 };
- strcat(accu, s);
- return accu;
-}
-
-#endif
-
-/* Of course, this cannot be used in a multi-threaded program
- because all threads store "accu" at the same location.
- So, we'll use thread-specific data to have a different "accu"
- for each thread. */
-
-/* Key identifying the thread-specific data */
-static pthread_key_t str_key;
-/* "Once" variable ensuring that the key for str_alloc will be allocated
- exactly once. */
-static pthread_once_t str_alloc_key_once = PTHREAD_ONCE_INIT;
-
-/* Forward functions */
-static void str_alloc_key(void);
-static void str_alloc_destroy_accu(void * accu);
-
-/* Thread-safe version of str_accumulate */
-
-static char * str_accumulate(const char * s)
-{
- char * accu;
-
- /* Make sure the key is allocated */
- pthread_once(&str_alloc_key_once, str_alloc_key);
- /* Get the thread-specific data associated with the key */
- accu = (char *) pthread_getspecific(str_key);
- /* It's initially NULL, meaning that we must allocate the buffer first. */
- if (accu == NULL) {
- accu = malloc(1024);
- if (accu == NULL) return NULL;
- accu[0] = 0;
- /* Store the buffer pointer in the thread-specific data. */
- pthread_setspecific(str_key, (void *) accu);
- printf("Thread %lx: allocating buffer at %p\n", pthread_self(), accu);
- }
- /* Now we can use accu just as in the non thread-safe code. */
- strcat(accu, s);
- return accu;
-}
-
-/* Function to allocate the key for str_alloc thread-specific data. */
-
-static void str_alloc_key(void)
-{
- pthread_key_create(&str_key, str_alloc_destroy_accu);
- printf("Thread %lx: allocated key %d\n", pthread_self(), str_key);
-}
-
-/* Function to free the buffer when the thread exits. */
-/* Called only when the thread-specific data is not NULL. */
-
-static void str_alloc_destroy_accu(void * accu)
-{
- printf("Thread %lx: freeing buffer at %p\n", pthread_self(), accu);
- free(accu);
-}
-
-/* Test program */
-
-static void * process(void * arg)
-{
- char * res;
- res = str_accumulate("Result of ");
- res = str_accumulate((char *) arg);
- res = str_accumulate(" thread");
- printf("Thread %lx: \"%s\"\n", pthread_self(), res);
- return NULL;
-}
-
-int main(int argc, char ** argv)
-{
- char * res;
- pthread_t th1, th2;
-
- res = str_accumulate("Result of ");
- pthread_create(&th1, NULL, process, (void *) "first");
- pthread_create(&th2, NULL, process, (void *) "second");
- res = str_accumulate("initial thread");
- printf("Thread %lx: \"%s\"\n", pthread_self(), res);
- pthread_join(th1, NULL);
- pthread_join(th2, NULL);
- exit(0);
-}
diff --git a/test/pthread/ex5.c b/test/pthread/ex5.c
deleted file mode 100644
index 7a293eb..0000000
--- a/test/pthread/ex5.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/* The classic producer-consumer example, implemented with semaphores.
- All integers between 0 and 9999 should be printed exactly twice,
- once to the right of the arrow and once to the left. */
-
-#include <stdio.h>
-#include "pthread.h"
-#include "semaphore.h"
-
-#define BUFFER_SIZE 16
-
-/* Circular buffer of integers. */
-
-struct prodcons {
- int buffer[BUFFER_SIZE]; /* the actual data */
- int readpos, writepos; /* positions for reading and writing */
- sem_t sem_read; /* number of elements available for reading */
- sem_t sem_write; /* number of locations available for writing */
-};
-
-/* Initialize a buffer */
-
-static void init(struct prodcons * b)
-{
- sem_init(&b->sem_write, 0, BUFFER_SIZE - 1);
- sem_init(&b->sem_read, 0, 0);
- b->readpos = 0;
- b->writepos = 0;
-}
-
-/* Store an integer in the buffer */
-
-static void put(struct prodcons * b, int data)
-{
- /* Wait until buffer is not full */
- sem_wait(&b->sem_write);
- /* Write the data and advance write pointer */
- b->buffer[b->writepos] = data;
- b->writepos++;
- if (b->writepos >= BUFFER_SIZE) b->writepos = 0;
- /* Signal that the buffer contains one more element for reading */
- sem_post(&b->sem_read);
-}
-
-/* Read and remove an integer from the buffer */
-
-static int get(struct prodcons * b)
-{
- int data;
- /* Wait until buffer is not empty */
- sem_wait(&b->sem_read);
- /* Read the data and advance read pointer */
- data = b->buffer[b->readpos];
- b->readpos++;
- if (b->readpos >= BUFFER_SIZE) b->readpos = 0;
- /* Signal that the buffer has now one more location for writing */
- sem_post(&b->sem_write);
- return data;
-}
-
-/* A test program: one thread inserts integers from 1 to 10000,
- the other reads them and prints them. */
-
-#define OVER (-1)
-
-struct prodcons buffer;
-
-static void * producer(void * data)
-{
- int n;
- for (n = 0; n < 10000; n++) {
- printf("%d --->\n", n);
- put(&buffer, n);
- }
- put(&buffer, OVER);
- return NULL;
-}
-
-static void * consumer(void * data)
-{
- int d;
- while (1) {
- d = get(&buffer);
- if (d == OVER) break;
- printf("---> %d\n", d);
- }
- return NULL;
-}
-
-int main(void)
-{
- pthread_t th_a, th_b;
- void * retval;
-
- init(&buffer);
- /* Create the threads */
- pthread_create(&th_a, NULL, producer, 0);
- pthread_create(&th_b, NULL, consumer, 0);
- /* Wait until producer and consumer finish. */
- pthread_join(th_a, &retval);
- pthread_join(th_b, &retval);
- return 0;
-}
diff --git a/test/pthread/ex6.c b/test/pthread/ex6.c
deleted file mode 100644
index ffb6287..0000000
--- a/test/pthread/ex6.c
+++ /dev/null
@@ -1,44 +0,0 @@
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <pthread.h>
-#include <time.h>
-
-static void *
-test_thread (void *v_param)
-{
- return NULL;
-}
-
-int
-main (void)
-{
- unsigned long count;
- struct timespec ts;
- ts.tv_sec = 0;
- ts.tv_nsec = 10 * 1000;
-
- setvbuf (stdout, NULL, _IONBF, 0);
-
- for (count = 0; count < 2000; ++count)
- {
- pthread_t thread;
- int status;
-
- status = pthread_create (&thread, NULL, test_thread, NULL);
- if (status != 0)
- {
- printf ("status = %d, count = %lu: %s\n", status, count,
- strerror (errno));
- return 1;
- }
- else
- {
- printf ("count = %lu\n", count);
- }
- /* pthread_detach (thread); */
- pthread_join (thread, NULL);
- nanosleep (&ts, NULL);
- }
- return 0;
-}
diff --git a/test/pthread/ex7.c b/test/pthread/ex7.c
deleted file mode 100644
index 8eeb9a2..0000000
--- a/test/pthread/ex7.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/* ex7
- *
- * Test case that illustrates a timed wait on a condition variable.
- */
-
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <pthread.h>
-#include <sys/time.h>
-#include <time.h>
-
-/* Our event variable using a condition variable contruct. */
-typedef struct {
- pthread_mutex_t mutex;
- pthread_cond_t cond;
- int flag;
-} event_t;
-
-
-/* Global event to signal main thread the timeout of the child thread. */
-event_t main_event;
-
-
-static void *
-test_thread (void *ms_param)
-{
- unsigned long status = 0;
- event_t foo;
- struct timespec timeout;
- struct timeval now;
- long ms = (long) ms_param;
-
- /* initialize cond var */
- pthread_cond_init(&foo.cond, NULL);
- pthread_mutex_init(&foo.mutex, NULL);
- foo.flag = 0;
-
- /* set the time out value */
- printf("waiting %ld ms ...\n", ms);
- gettimeofday(&now, NULL);
- timeout.tv_sec = now.tv_sec + ms/1000 + (now.tv_usec + (ms%1000)*1000)/1000000;
- timeout.tv_nsec = ((now.tv_usec + (ms%1000)*1000) % 1000000) * 1000;
-
- /* Just use this to test the time out. The cond var is never signaled. */
- pthread_mutex_lock(&foo.mutex);
- while (foo.flag == 0 && status != ETIMEDOUT) {
- status = pthread_cond_timedwait(&foo.cond, &foo.mutex, &timeout);
- }
- pthread_mutex_unlock(&foo.mutex);
-
- /* post the main event */
- pthread_mutex_lock(&main_event.mutex);
- main_event.flag = 1;
- pthread_cond_signal(&main_event.cond);
- pthread_mutex_unlock(&main_event.mutex);
-
- /* that's it, bye */
- return (void*) status;
-}
-
-int
-main (void)
-{
- unsigned long count;
- struct timespec ts;
- ts.tv_sec = 0;
- ts.tv_nsec = 10 * 1000;
-
- setvbuf (stdout, NULL, _IONBF, 0);
-
- /* initialize main event cond var */
- pthread_cond_init(&main_event.cond, NULL);
- pthread_mutex_init(&main_event.mutex, NULL);
- main_event.flag = 0;
-
- for (count = 0; count < 20; ++count)
- {
- pthread_t thread;
- int status;
-
- /* pass down the milli-second timeout in the void* param */
- status = pthread_create (&thread, NULL, test_thread, (void*) (count*100));
- if (status != 0) {
- printf ("status = %d, count = %lu: %s\n", status, count,
- strerror (errno));
- return 1;
- }
- else {
-
- /* wait for the event posted by the child thread */
- pthread_mutex_lock(&main_event.mutex);
- while (main_event.flag == 0) {
- pthread_cond_wait(&main_event.cond, &main_event.mutex);
- }
- main_event.flag = 0;
- pthread_mutex_unlock(&main_event.mutex);
-
- printf ("count = %lu\n", count);
- }
-
- nanosleep (&ts, NULL);
- }
-
- return 0;
-}
diff --git a/test/pthread/ex8-mtx-odd.c b/test/pthread/ex8-mtx-odd.c
deleted file mode 100644
index 791b2c2..0000000
--- a/test/pthread/ex8-mtx-odd.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-
-
-static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
-
-static int
-do_test (void)
-{
-
- if (pthread_mutex_lock (&lock) != 0)
- {
- puts ("mutex_lock failed");
- exit (1);
- }
-
- if (pthread_mutex_unlock (&lock) != 0)
- {
- puts ("1st mutex_unlock failed");
- exit (1);
- }
-
- if (pthread_mutex_unlock (&lock) != 0)
- {
- puts ("2nd mutex_unlock failed");
- exit (1);
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/pthread/tst-c99.c b/test/pthread/tst-c99.c
deleted file mode 100644
index 3cc91b1..0000000
--- a/test/pthread/tst-c99.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#include <pthread.h>
-int main(void) { return 0; }
diff --git a/test/pthread/tst-join2.c b/test/pthread/tst-join2.c
deleted file mode 100644
index 6d994f3..0000000
--- a/test/pthread/tst-join2.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-
-
-static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
-
-
-static void *
-tf (void *arg)
-{
- if (pthread_mutex_lock (&lock) != 0)
- {
- puts ("child: mutex_lock failed");
- return NULL;
- }
-
- return (void *) 42l;
-}
-
-
-static int
-do_test (void)
-{
- pthread_t th;
-
- if (pthread_mutex_lock (&lock) != 0)
- {
- puts ("mutex_lock failed");
- exit (1);
- }
-
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("mutex_create failed");
- exit (1);
- }
-
- void *status;
- int val = pthread_tryjoin_np (th, &status);
- if (val == 0)
- {
- puts ("1st tryjoin succeeded");
- exit (1);
- }
- else if (val != EBUSY)
- {
- puts ("1st tryjoin didn't return EBUSY");
- exit (1);
- }
-
- if (pthread_mutex_unlock (&lock) != 0)
- {
- puts ("mutex_unlock failed");
- exit (1);
- }
-
- while ((val = pthread_tryjoin_np (th, &status)) != 0)
- {
- if (val != EBUSY)
- {
- printf ("tryjoin returned %s (%d), expected only 0 or EBUSY\n",
- strerror (val), val);
- exit (1);
- }
-
- /* Delay minimally. */
- struct timespec ts = { .tv_sec = 0, .tv_nsec = 10000000 };
- nanosleep (&ts, NULL);
- }
-
- if (status != (void *) 42l)
- {
- printf ("return value %p, expected %p\n", status, (void *) 42l);
- exit (1);
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/pthread/tst-join3.c b/test/pthread/tst-join3.c
deleted file mode 100644
index 7816f4d..0000000
--- a/test/pthread/tst-join3.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/time.h>
-
-
-static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
-
-
-static void *
-tf (void *arg)
-{
- if (pthread_mutex_lock (&lock) != 0)
- {
- puts ("child: mutex_lock failed");
- return NULL;
- }
-
- return (void *) 42l;
-}
-
-
-static int
-do_test (void)
-{
- pthread_t th;
-
- if (pthread_mutex_lock (&lock) != 0)
- {
- puts ("mutex_lock failed");
- exit (1);
- }
-
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("mutex_create failed");
- exit (1);
- }
-
- void *status;
- struct timespec ts;
- struct timeval tv;
- (void) gettimeofday (&tv, NULL);
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- ts.tv_nsec += 200000000;
- if (ts.tv_nsec >= 1000000000)
- {
- ts.tv_nsec -= 1000000000;
- ++ts.tv_sec;
- }
- int val = pthread_timedjoin_np (th, &status, &ts);
- if (val == 0)
- {
- puts ("1st timedjoin succeeded");
- exit (1);
- }
- else if (val != ETIMEDOUT)
- {
- puts ("1st timedjoin didn't return ETIMEDOUT");
- exit (1);
- }
-
- if (pthread_mutex_unlock (&lock) != 0)
- {
- puts ("mutex_unlock failed");
- exit (1);
- }
-
- while (1)
- {
- (void) gettimeofday (&tv, NULL);
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- ts.tv_nsec += 200000000;
- if (ts.tv_nsec >= 1000000000)
- {
- ts.tv_nsec -= 1000000000;
- ++ts.tv_sec;
- }
-
- val = pthread_timedjoin_np (th, &status, &ts);
- if (val == 0)
- break;
-
- if (val != ETIMEDOUT)
- {
- printf ("timedjoin returned %s (%d), expected only 0 or ETIMEDOUT\n",
- strerror (val), val);
- exit (1);
- }
- }
-
- if (status != (void *) 42l)
- {
- printf ("return value %p, expected %p\n", status, (void *) 42l);
- exit (1);
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/pthread/tst-too-many-cleanups.c b/test/pthread/tst-too-many-cleanups.c
deleted file mode 100644
index 7828c50..0000000
--- a/test/pthread/tst-too-many-cleanups.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * This illustrates the bug where the cleanup function
- * of a thread may be called too many times.
- *
- * main thread:
- * - grab mutex
- * - spawn thread1
- * - go to sleep
- * thread1:
- * - register cleanup handler via pthread_cleanup_push()
- * - try to grab mutex and sleep
- * main:
- * - kill thread1
- * - go to sleep
- * thread1 cleanup handler:
- * - try to grab mutex and sleep
- * main:
- * - kill thread1
- * - go to sleep
- * thread1 cleanup handler:
- * - wrongly called again
- */
-
-#ifndef _GNU_SOURCE
-#define _GNU_SOURCE
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <pthread.h>
-#include <assert.h>
-#include <unistd.h>
-
-#define warn(fmt, args...) fprintf(stderr, "[%p] " fmt, (void*)pthread_self(),
## args)
-#define warnf(fmt, args...) warn("%s:%i: " fmt, __FUNCTION__, __LINE__, ##
args)
-
-int ok_to_kill_thread;
-
-static void thread_killed(void *arg);
-
-static void *KillMeThread(void *thread_par)
-{
- pthread_t pthread_id;
-
- warnf("Starting child thread\n");
-
- pthread_id = pthread_self();
- pthread_cleanup_push(thread_killed, (void *)pthread_id);
-
- pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
- pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
-
- /* main code */
- warnf("please kill me now\n");
- while (1) {
- ok_to_kill_thread = 1;
- sleep(1);
- }
-
- pthread_cleanup_pop(0);
-
- return 0;
-}
-
-static void thread_killed(void *arg)
-{
- static int num_times_called = 0;
-
- warnf("killing %p [cnt=%i]\n", arg, ++num_times_called);
- assert(num_times_called == 1);
-
- /* pick any cancellation endpoint, sleep() will do just fine */
- while (1) {
- warnf("sleeping in cancellation endpoint ...\n");
- sleep(1);
- }
-
- warnf("done cleaning up\n");
-}
-
-int main(int argc, char *argv[])
-{
- int count = 3;
- pthread_t app_pthread_id;
-
- /* need to tweak this test a bit to play nice with signals and LT */
- return 0;
-
- ok_to_kill_thread = 0;
-
- pthread_create(&app_pthread_id, NULL, KillMeThread, NULL);
-
- warnf("waiting for thread to prepare itself\n");
- while (!ok_to_kill_thread)
- sleep(1);
-
- while (count--) {
- warnf("killing thread\n");
- pthread_cancel(app_pthread_id);
- sleep(3);
- }
-
- return 0;
-}
diff --git a/test/pwd_grp/.indent.pro b/test/pwd_grp/.indent.pro
deleted file mode 100644
index 492ecf1..0000000
--- a/test/pwd_grp/.indent.pro
+++ /dev/null
@@ -1,33 +0,0 @@
---blank-lines-after-declarations
---blank-lines-after-procedures
---break-before-boolean-operator
---no-blank-lines-after-commas
---braces-on-if-line
---braces-on-struct-decl-line
---comment-indentation25
---declaration-comment-column25
---no-comment-delimiters-on-blank-lines
---cuddle-else
---continuation-indentation4
---case-indentation0
---else-endif-column33
---space-after-cast
---line-comments-indentation0
---declaration-indentation1
---dont-format-first-column-comments
---dont-format-comments
---honour-newlines
---indent-level4
-/* changed from 0 to 4 */
---parameter-indentation4
---line-length78 /* changed from 75 */
---continue-at-parentheses
---no-space-after-function-call-names
---dont-break-procedure-type
---dont-star-comments
---leave-optional-blank-lines
---dont-space-special-semicolon
---tab-size4
-/* additions by Mark */
---case-brace-indentation0
---leave-preprocessor-space
diff --git a/test/pwd_grp/Makefile b/test/pwd_grp/Makefile
deleted file mode 100644
index fa2aacb..0000000
--- a/test/pwd_grp/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc pwd_grp tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/pwd_grp/Makefile.in b/test/pwd_grp/Makefile.in
deleted file mode 100644
index d561f3d..0000000
--- a/test/pwd_grp/Makefile.in
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc pwd_grp tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-DODIFF_test_pwd := 1
-DODIFF_test_grp := 1
-DODIFF_pwcat := 1
-DODIFF_grcat := 1
-DODIFF_getgroups := 1
diff --git a/test/pwd_grp/getgroups.c b/test/pwd_grp/getgroups.c
deleted file mode 100644
index c343552..0000000
--- a/test/pwd_grp/getgroups.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/* This test was ripped out of GNU 'id' from coreutils-5.0
- * by Erik Andersen.
- *
- *
- * id is Copyright (C) 1989-2003 Free Software Foundation, Inc.
- * and licensed under the GPL v2 or later, and was written by
- * Arnold Robbins, with a major rewrite by David MacKenzie,
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <pwd.h>
-#include <grp.h>
-
-/* The number of errors encountered so far. */
-static int problems = 0;
-
-/* Print the name or value of group ID GID. */
-static void print_group(gid_t gid)
-{
- struct group *grp = NULL;
-
- grp = getgrgid(gid);
- if (grp == NULL) {
- fprintf(stderr, "cannot find name for group ID %u\n", gid);
- problems++;
- }
-
- if (grp == NULL)
- printf("%u", (unsigned)gid);
- else
- printf("%s", grp->gr_name);
-}
-
-static int xgetgroups(gid_t gid, int *n_groups, gid_t ** groups)
-{
- int max_n_groups;
- int ng;
- gid_t *g;
- int fail = 0;
-
- max_n_groups = getgroups(0, NULL);
-
- /* Add 1 just in case max_n_groups is zero. */
- g = (gid_t *) malloc(max_n_groups * sizeof(gid_t) + 1);
- if (g == NULL) {
- fprintf(stderr, "out of memory\n");
- exit(EXIT_FAILURE);
- }
- ng = getgroups(max_n_groups, g);
-
- if (ng < 0) {
- fprintf(stderr, "cannot get supplemental group list\n");
- ++fail;
- free(g);
- }
- if (!fail) {
- *n_groups = ng;
- *groups = g;
- }
- return fail;
-}
-
-/* Print all of the distinct groups the user is in. */
-int main(int argc, char *argv[])
-{
- struct passwd *pwd;
-
- pwd = getpwuid(getuid());
- if (pwd == NULL)
- problems++;
-
- print_group(getgid());
- if (getegid() != getgid()) {
- putchar(' ');
- print_group(getegid());
- }
-
- {
- int n_groups = 0;
- gid_t *groups;
- register int i;
-
- if (xgetgroups((pwd ? pwd->pw_gid : (gid_t) - 1),
- &n_groups, &groups)) {
- return ++problems;
- }
-
- for (i = 0; i < n_groups; i++)
- if (groups[i] != getgid() && groups[i] != getegid()) {
- putchar(' ');
- print_group(groups[i]);
- }
- free(groups);
- }
- putchar('\n');
- return (problems != 0);
-}
diff --git a/test/pwd_grp/grcat.c b/test/pwd_grp/grcat.c
deleted file mode 100644
index a896140..0000000
--- a/test/pwd_grp/grcat.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * grcat.c
- *
- * Generate a printable version of the group database
- */
-/*
- * Arnold Robbins, arnold(a)gnu.org, May 1993
- * Public Domain
- */
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <grp.h>
-
-int main(int argc, char **argv)
-{
- struct group *g;
- int i;
-
- while ((g = getgrent()) != NULL) {
- printf("%s:%s:%ld:", g->gr_name, g->gr_passwd,
- (long) g->gr_gid);
- for (i = 0; g->gr_mem[i] != NULL; i++) {
- printf("%s", g->gr_mem[i]);
- if (g->gr_mem[i+1] != NULL)
- putchar(',');
- }
- putchar('\n');
- }
- endgrent();
- return 0;
-}
diff --git a/test/pwd_grp/pwcat.c b/test/pwd_grp/pwcat.c
deleted file mode 100644
index afad8e1..0000000
--- a/test/pwd_grp/pwcat.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * pwcat.c
- *
- * Generate a printable version of the password database
- */
-/*
- * Arnold Robbins, arnold(a)gnu.org, May 1993
- * Public Domain
- */
-
-#include <stdio.h>
-#include <pwd.h>
-#include <stdlib.h>
-
-int main(int argc, char **argv)
-{
- struct passwd *p;
-
- while ((p = getpwent()) != NULL)
- printf("%s:%s:%ld:%ld:%s:%s:%s\n",
- p->pw_name, p->pw_passwd, (long) p->pw_uid,
- (long) p->pw_gid, p->pw_gecos, p->pw_dir, p->pw_shell);
-
- endpwent();
- return 0;
-}
diff --git a/test/pwd_grp/test_grp.c b/test/pwd_grp/test_grp.c
deleted file mode 100644
index 573806c..0000000
--- a/test/pwd_grp/test_grp.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * test_grp.c - This file is part of the libc-8086/grp package for ELKS,
- * Copyright (C) 1995, 1996 Nat Friedman <ndf(a)linux.mit.edu>du>.
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-#include <unistd.h>
-#include <stdio.h>
-#include <fcntl.h>
-#include <grp.h>
-
-int main(int argc, char **argv)
-{
- struct group *group;
- char **tmp_mem;
- int test_gid;
-
- fprintf(stdout, "Beginning test of libc/grp...\n");
-
- fprintf(stdout, "=> Testing setgrent(), getgrent(), endgrent()...\n");
- fprintf(stdout, "-> setgrent()...\n");
- setgrent();
- fprintf(stdout, "-> getgrent()...\n");
- printf
- ("********************************************************************************\n");
- while ((group = getgrent()) != NULL) {
- printf("gr_name\t\t: %s\n", group->gr_name);
- printf("gr_passwd\t: %s\n", group->gr_passwd);
- printf("gr_gid\t\t: %d\n", (int) group->gr_gid);
- printf("gr_mem\t\t: ");
- fflush(stdout);
- tmp_mem = group->gr_mem;
- while (*tmp_mem != NULL) {
- printf("%s, ", *tmp_mem);
- tmp_mem++;
- }
- printf
- ("\n********************************************************************************\n");
- }
- fprintf(stdout, "-> endgrent()...\n");
- endgrent();
- fprintf(stdout,
- "=> Test of setgrent(), getgrent(), endgrent() complete.\n");
- fprintf(stdout, "=> Testing getgrid(), getgrnam()...\n");
- fprintf(stdout, "-> getgrgid()...\n");
- printf
- ("********************************************************************************\n");
- for (test_gid = 0; test_gid < 100; test_gid++) {
- fprintf(stdout, "-> getgrgid(%d)...\n", test_gid);
- group = getgrgid((gid_t) test_gid);
- if (group != NULL) {
- printf("gr_name\t: %s\n", group->gr_name);
- printf("gr_passwd\t: %s\n", group->gr_passwd);
- printf("gr_gid\t: %d\n", (int) group->gr_gid);
- printf("gr_mem\t\t: ");
- fflush(stdout);
- tmp_mem = group->gr_mem;
- while (*tmp_mem != NULL) {
- printf("%s, ", *tmp_mem);
- tmp_mem++;
- }
- }
- printf
- ("\n********************************************************************************\n");
- }
- fprintf(stdout, "-> getgrnam()...\n");
- group = getgrnam("root");
- if (group == NULL) {
- printf(">NULL<\n");
- } else {
- printf("gr_name\t: %s\n", group->gr_name);
- printf("gr_passwd\t: %s\n", group->gr_passwd);
- printf("gr_gid\t: %d\n", (int) group->gr_gid);
- printf("gr_mem\t\t: ");
- fflush(stdout);
- tmp_mem = group->gr_mem;
- while (*tmp_mem != NULL) {
- printf("%s, ", *tmp_mem);
- tmp_mem++;
- }
- printf("\n");
- }
-
-
- return 0;
-}
diff --git a/test/pwd_grp/test_pwd.c b/test/pwd_grp/test_pwd.c
deleted file mode 100644
index 065864e..0000000
--- a/test/pwd_grp/test_pwd.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * test_pwd.c - This file is part of the libc-8086/pwd package for ELKS,
- * Copyright (C) 1995, 1996 Nat Friedman <ndf(a)linux.mit.edu>du>.
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-#include <unistd.h>
-#include <stdio.h>
-#include <fcntl.h>
-#include <pwd.h>
-
-int main(int argc, char **argv)
-{
- struct passwd *passwd;
- int test_uid;
-
- fprintf(stdout, "Beginning test of libc/pwd...\n");
-
- fprintf(stdout, "=> Testing setpwent(), getpwent(), endpwent()...\n");
- fprintf(stdout, "-> setpwent()...\n");
- setpwent();
- fprintf(stdout, "-> getpwent()...\n");
- printf
- ("********************************************************************************\n");
- while ((passwd = getpwent()) != NULL) {
- printf("pw_name\t\t: %s\n", passwd->pw_name);
- printf("pw_passwd\t: %s\n", passwd->pw_passwd);
- printf("pw_uid\t\t: %d\n", (int) passwd->pw_uid);
- printf("pw_gid\t\t: %d\n", (int) passwd->pw_gid);
- printf("pw_gecos\t: %s\n", passwd->pw_gecos);
- printf("pw_dir\t\t: %s\n", passwd->pw_dir);
- printf("pw_shell\t: %s\n", passwd->pw_shell);
- printf
- ("********************************************************************************\n");
- }
- fprintf(stdout, "-> endpwent()...\n");
- endpwent();
- fprintf(stdout,
- "=> Test of setpwent(), getpwent(), endpwent() complete.\n");
- fprintf(stdout, "=> Testing getpwuid(), getpwnam()...\n");
- fprintf(stdout, "-> getpwuid()...\n");
- printf
- ("********************************************************************************\n");
- for (test_uid = 0; test_uid < 1000; test_uid++) {
- fprintf(stdout, "-> getpwuid(%d)...\n", test_uid);
- passwd = getpwuid((uid_t) test_uid);
- if (passwd != NULL) {
- printf("pw_name\t\t: %s\n", passwd->pw_name);
- printf("pw_passwd\t: %s\n", passwd->pw_passwd);
- printf("pw_uid\t\t: %d\n", (int) passwd->pw_uid);
- printf("pw_gid\t\t: %d\n", (int) passwd->pw_gid);
- printf("pw_gecos\t: %s\n", passwd->pw_gecos);
- printf("pw_dir\t\t: %s\n", passwd->pw_dir);
- printf("pw_shell\t: %s\n", passwd->pw_shell);
- printf
- ("********************************************************************************\n");
- }
- }
- fprintf(stdout, "-> getpwnam()...\n");
- passwd = getpwnam("root");
- if (passwd == NULL) {
- printf(">NULL<\n");
- } else {
- printf("pw_name\t\t: %s\n", passwd->pw_name);
- printf("pw_passwd\t: %s\n", passwd->pw_passwd);
- printf("pw_uid\t\t: %d\n", (int) passwd->pw_uid);
- printf("pw_gid\t\t: %d\n", (int) passwd->pw_gid);
- printf("pw_gecos\t: %s\n", passwd->pw_gecos);
- printf("pw_dir\t\t: %s\n", passwd->pw_dir);
- printf("pw_shell\t: %s\n", passwd->pw_shell);
- }
- return 0;
-}
diff --git a/test/regex/LICENSE b/test/regex/LICENSE
deleted file mode 100644
index 2e5acb9..0000000
--- a/test/regex/LICENSE
+++ /dev/null
@@ -1,72 +0,0 @@
-From gsf(a)research.att.com Wed Mar 1 20:30:54 2006
-Return-Path: <gsf(a)research.att.com>
-X-Original-To: mps(a)bridge.intra
-Delivered-To: mps(a)bridge.intra
-Received: from localhost (localhost [127.0.0.1])
- by localhost (Postfix) with ESMTP id B8C814E4F
- for <mps(a)bridge.intra>ra>; Wed, 1 Mar 2006 20:30:53 +0100 (CET)
-Received: from mail.bridge.intra ([127.0.0.1])
- by localhost (lnx.bridge.intra [127.0.0.1]) (amavisd-new, port 10024)
- with LMTP id 05987-03 for <mps(a)bridge.intra>ra>;
- Wed, 1 Mar 2006 20:30:42 +0100 (CET)
-Received: from
pop.gmx.net (localhost [127.0.0.1])
- by mail.bridge.intra (Postfix) with ESMTP id C8C73794D
- for <mps(a)bridge.intra>ra>; Wed, 1 Mar 2006 20:30:38 +0100 (CET)
-X-Flags: 0000
-Delivered-To: GMX delivery to ps.m(a)gmx.net
-Received: (qmail invoked by alias); 01 Mar 2006 19:23:46 -0000
-Received: from
mail-red.research.att.com (EHLO
mail-white.research.att.com)
[192.20.225.110]
- by
mx0.gmx.net (mx085) with SMTP; 01 Mar 2006 20:23:46 +0100
-Received: from
raptor.research.att.com (
raptor.research.att.com [135.207.23.32])
- by
mail-blue.research.att.com (Postfix) with ESMTP id B7929147CBB
- for <ps.m(a)gmx.net>et>; Wed, 1 Mar 2006 14:23:45 -0500 (EST)
-Received: (from gsf@localhost)
- by
raptor.research.att.com (SGI-8.9.3p2/8.8.7) id OAA86112
- for ps.m(a)gmx.net; Wed, 1 Mar 2006 14:23:45 -0500 (EST)
-Date: Wed, 1 Mar 2006 14:23:45 -0500 (EST)
-From: Glenn Fowler <gsf(a)research.att.com>
-Message-Id: <200603011923.OAA86112(a)raptor.research.att.com>
-Organization: AT&T Research
-X-Mailer: mailx (AT&T/BSD) 9.9 2005-04-21
-Mime-Version: 1.0
-Content-Type: text/plain; charset=us-ascii
-Content-Transfer-Encoding: 7bit
-References: <Pine.LNX.4.44.0603012011250.6386-100000(a)lnx.bridge.intra>
-To: mps(a)bridge.intra
-Subject: Re: testregex licensing question
-X-GMX-Antivirus: -1 (not scanned, may not use virus scanner)
-X-GMX-Antispam: 0 (Mail was not recognized as spam)
-X-GMX-UID: lJF3ZO9DeSEkJ2TcbHQhaXN1IGRvb0Ca
-X-Virus-Scanned: by amavisd-new at localhost
-Status: RO
-X-Status:
-X-Keywords:
-X-UID: 44736
-
-
-you may include it directly
-retain the testregex.c header comment
-it uses a very free license to maximize distribution
-you can copy that .c comment to any test data files you use
-using # comment style to be complete
-
-let me know how it works with your libc
-also pass on any new tests you cook up
-
-On Wed, 1 Mar 2006 20:15:02 +0100 (CET) Peter S. Mazinger wrote:
-> Hello Glenn!
-
-> I would want to add testregex.c and the related *.dat files to the uClibc
-> testsuite. uClibc is licensed under LGPL v2.1. I haven't found any
-> licensing related info on testregex.
-
-> Is it allowed to use the code there, or should I accomodate the testsuite
-> to download the needed files from the original site each time it is ran?
-
-> Thanks, Peter
-
-> --
-> Peter S. Mazinger <ps dot m at gmx dot net> ID: 0xA5F059F2
-> Key fingerprint = 92A4 31E1 56BC 3D5A 2D08 BB6E C389 975E A5F0 59F2
-
-
diff --git a/test/regex/Makefile b/test/regex/Makefile
deleted file mode 100644
index eea0c49..0000000
--- a/test/regex/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc regex tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/regex/Makefile.in b/test/regex/Makefile.in
deleted file mode 100644
index 59d0c06..0000000
--- a/test/regex/Makefile.in
+++ /dev/null
@@ -1,6 +0,0 @@
-# slowsdown embedded test runs extremely and always some
-# some tests are failing
-# for lm32 triggers gcc ICE with gcc 5.3.0
-# ifeq ($(TARGET_lm32),y)
-TESTS_DISABLED := testregex
-# endif
diff --git a/test/regex/basic.dat b/test/regex/basic.dat
deleted file mode 100644
index 5c50f37..0000000
--- a/test/regex/basic.dat
+++ /dev/null
@@ -1,216 +0,0 @@
-NOTE all standard compliant implementations should pass these : 2002-05-31
-
-BE abracadabra$ abracadabracadabra (7,18)
-BE a...b abababbb (2,7)
-BE XXXXXX ..XXXXXX (2,8)
-E \) () (1,2)
-BE a] a]a (0,2)
-B } } (0,1)
-E \} } (0,1)
-BE \] ] (0,1)
-B ] ] (0,1)
-E ] ] (0,1)
-B { { (0,1)
-B } } (0,1)
-BE ^a ax (0,1)
-BE \^a a^a (1,3)
-BE a\^ a^ (0,2)
-BE a$ aa (1,2)
-BE a\$ a$ (0,2)
-BE ^$ NULL (0,0)
-E $^ NULL (0,0)
-E a($) aa (1,2)(2,2)
-E a*(^a) aa (0,1)(0,1)
-E (..)*(...)* a (0,0)
-E (..)*(...)* abcd (0,4)(2,4)
-E (ab|a)(bc|c) abc (0,3)(0,2)(2,3)
-E (ab)c|abc abc (0,3)(0,2)
-E a{0}b ab (1,2)
-E (a*)(b?)(b+)b{3} aaabbbbbbb (0,10)(0,3)(3,4)(4,7)
-E (a*)(b{0,1})(b{1,})b{3} aaabbbbbbb (0,10)(0,3)(3,4)(4,7)
-E a{9876543210} NULL BADBR
-E ((a|a)|a) a (0,1)(0,1)(0,1)
-E (a*)(a|aa) aaaa (0,4)(0,3)(3,4)
-E a*(a.|aa) aaaa (0,4)(2,4)
-E a(b)|c(d)|a(e)f aef (0,3)(?,?)(?,?)(1,2)
-E (a|b)?.* b (0,1)(0,1)
-E (a|b)c|a(b|c) ac (0,2)(0,1)
-E (a|b)c|a(b|c) ab (0,2)(?,?)(1,2)
-E (a|b)*c|(a|ab)*c abc (0,3)(1,2)
-E (a|b)*c|(a|ab)*c xc (1,2)
-E (.a|.b).*|.*(.a|.b) xa (0,2)(0,2)
-E a?(ab|ba)ab abab (0,4)(0,2)
-E a?(ac{0}b|ba)ab abab (0,4)(0,2)
-E ab|abab abbabab (0,2)
-E aba|bab|bba baaabbbaba (5,8)
-E aba|bab baaabbbaba (6,9)
-E (aa|aaa)*|(a|aaaaa) aa (0,2)(0,2)
-E (a.|.a.)*|(a|.a...) aa (0,2)(0,2)
-E ab|a xabc (1,3)
-E ab|a xxabc (2,4)
-Ei (Ab|cD)* aBcD (0,4)(2,4)
-BE [^-] --a (2,3)
-BE [a-]* --a (0,3)
-BE [a-m-]* --amoma-- (0,4)
-E :::1:::0:|:::1:1:0: :::0:::1:::1:::0: (8,17)
-E :::1:::0:|:::1:1:1: :::0:::1:::1:::0: (8,17)
-{E [[:upper:]] A (0,1) [[<element>]] not supported
-E [[:lower:]]+ `az{ (1,3)
-E [[:upper:]]+ @AZ[ (1,3)
-BE [[-]] [[-]] (2,4)
-BE [[.NIL.]] NULL ECOLLATE
-BE [[=aleph=]] NULL ECOLLATE
-}
-BE$ \n \n (0,1)
-BEn$ \n \n (0,1)
-BE$ [^a] \n (0,1)
-BE$ \na \na (0,2)
-E (a)(b)(c) abc (0,3)(0,1)(1,2)(2,3)
-BE xxx xxx (0,3)
-E1 (^|[ (,;])((([Ff]eb[^ ]* *|0*2/|\* */?)0*[6-7]))([^0-9]|$) feb 6, (0,6)
-E1 (^|[ (,;])((([Ff]eb[^ ]* *|0*2/|\* */?)0*[6-7]))([^0-9]|$) 2/7 (0,3)
-E1 (^|[ (,;])((([Ff]eb[^ ]* *|0*2/|\* */?)0*[6-7]))([^0-9]|$) feb 1,Feb 6 (5,11)
-E3 ((((((((((((((((((((((((((((((x)))))))))))))))))))))))))))))) x (0,1)(0,1)(0,1)
-E3 ((((((((((((((((((((((((((((((x))))))))))))))))))))))))))))))* xx (0,2)(1,2)(1,2)
-E a?(ab|ba)* ababababababababababababababababababababababababababababababababababababababababa (0,81)(79,81)
-E abaa|abbaa|abbbaa|abbbbaa ababbabbbabbbabbbbabbbbaa (18,25)
-E abaa|abbaa|abbbaa|abbbbaa ababbabbbabbbabbbbabaa (18,22)
-E aaac|aabc|abac|abbc|baac|babc|bbac|bbbc baaabbbabac (7,11)
-BE$ .* \x01\xff (0,2)
-E aaaa|bbbb|cccc|ddddd|eeeeee|fffffff|gggg|hhhh|iiiii|jjjjj|kkkkk|llll XaaaXbbbXcccXdddXeeeXfffXgggXhhhXiiiXjjjXkkkXlllXcbaXaaaa (53,57)
-L aaaa\nbbbb\ncccc\nddddd\neeeeee\nfffffff\ngggg\nhhhh\niiiii\njjjjj\nkkkkk\nllll XaaaXbbbXcccXdddXeeeXfffXgggXhhhXiiiXjjjXkkkXlllXcbaXaaaa NOMATCH
-E a*a*a*a*a*b aaaaaaaaab (0,10)
-BE ^ NULL (0,0)
-BE $ NULL (0,0)
-BE ^$ NULL (0,0)
-BE ^a$ a (0,1)
-BE abc abc (0,3)
-BE abc xabcy (1,4)
-BE abc ababc (2,5)
-BE ab*c abc (0,3)
-BE ab*bc abc (0,3)
-BE ab*bc abbc (0,4)
-BE ab*bc abbbbc (0,6)
-E ab+bc abbc (0,4)
-E ab+bc abbbbc (0,6)
-E ab?bc abbc (0,4)
-E ab?bc abc (0,3)
-E ab?c abc (0,3)
-BE ^abc$ abc (0,3)
-BE ^abc abcc (0,3)
-BE abc$ aabc (1,4)
-BE ^ abc (0,0)
-BE $ abc (3,3)
-BE a.c abc (0,3)
-BE a.c axc (0,3)
-BE a.*c axyzc (0,5)
-BE a[bc]d abd (0,3)
-BE a[b-d]e ace (0,3)
-BE a[b-d] aac (1,3)
-BE a[-b] a- (0,2)
-BE a[b-] a- (0,2)
-BE a] a] (0,2)
-BE a[]]b a]b (0,3)
-BE a[^bc]d aed (0,3)
-BE a[^-b]c adc (0,3)
-BE a[^]b]c adc (0,3)
-E ab|cd abc (0,2)
-E ab|cd abcd (0,2)
-E a\(b a(b (0,3)
-E a\(*b ab (0,2)
-E a\(*b a((b (0,4)
-E ((a)) abc (0,1)(0,1)(0,1)
-E (a)b(c) abc (0,3)(0,1)(2,3)
-E a+b+c aabbabc (4,7)
-E a* aaa (0,3)
-E (a*)* - (0,0)(0,0)
-E (a*)+ - (0,0)(0,0)
-E (a*|b)* - (0,0)(0,0)
-E (a+|b)* ab (0,2)(1,2)
-E (a+|b)+ ab (0,2)(1,2)
-E (a+|b)? ab (0,1)(0,1)
-BE [^ab]* cde (0,3)
-E (^)* - (0,0)(0,0)
-BE a* NULL (0,0)
-E ([abc])*d abbbcd (0,6)(4,5)
-E ([abc])*bcd abcd (0,4)(0,1)
-E a|b|c|d|e e (0,1)
-E (a|b|c|d|e)f ef (0,2)(0,1)
-E ((a*|b))* - (0,0)(0,0)(0,0)
-BE abcd*efg abcdefg (0,7)
-BE ab* xabyabbbz (1,3)
-BE ab* xayabbbz (1,2)
-E (ab|cd)e abcde (2,5)(2,4)
-BE [abhgefdc]ij hij (0,3)
-E (a|b)c*d abcd (1,4)(1,2)
-E (ab|ab*)bc abc (0,3)(0,1)
-E a([bc]*)c* abc (0,3)(1,3)
-E a([bc]*)(c*d) abcd (0,4)(1,3)(3,4)
-E a([bc]+)(c*d) abcd (0,4)(1,3)(3,4)
-E a([bc]*)(c+d) abcd (0,4)(1,2)(2,4)
-E a[bcd]*dcdcde adcdcde (0,7)
-E (ab|a)b*c abc (0,3)(0,2)
-E ((a)(b)c)(d) abcd (0,4)(0,3)(0,1)(1,2)(3,4)
-BE [A-Za-z_][A-Za-z0-9_]* alpha (0,5)
-E ^a(bc+|b[eh])g|.h$ abh (1,3)
-E (bc+d$|ef*g.|h?i(j|k)) effgz (0,5)(0,5)
-E (bc+d$|ef*g.|h?i(j|k)) ij (0,2)(0,2)(1,2)
-E (bc+d$|ef*g.|h?i(j|k)) reffgz (1,6)(1,6)
-E (((((((((a))))))))) a (0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)
-BE multiple words multiple words yeah (0,14)
-E (.*)c(.*) abcde (0,5)(0,2)(3,5)
-BE abcd abcd (0,4)
-E a(bc)d abcd (0,4)(1,3)
-E a[-]?c ac (0,3)
-E M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Muammar
Qaddafi (0,15)(?,?)(10,12)
-E M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Mo'ammar
Gadhafi (0,16)(?,?)(11,13)
-E M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Muammar
Kaddafi (0,15)(?,?)(10,12)
-E M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Muammar
Qadhafi (0,15)(?,?)(10,12)
-E M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Muammar
Gadafi (0,14)(?,?)(10,11)
-E M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Mu'ammar
Qadafi (0,15)(?,?)(11,12)
-E M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Moamar
Gaddafi (0,14)(?,?)(9,11)
-E M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Mu'ammar
Qadhdhafi (0,18)(?,?)(13,15)
-E M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Muammar
Khaddafi (0,16)(?,?)(11,13)
-E M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Muammar
Ghaddafy (0,16)(?,?)(11,13)
-E M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Muammar
Ghadafi (0,15)(?,?)(11,12)
-E M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Muammar
Ghaddafi (0,16)(?,?)(11,13)
-E M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Muamar
Kaddafi (0,14)(?,?)(9,11)
-E M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Muammar
Quathafi (0,16)(?,?)(11,13)
-E M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Muammar
Gheddafi (0,16)(?,?)(11,13)
-E M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Moammar
Khadafy (0,15)(?,?)(11,12)
-E M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Moammar
Qudhafi (0,15)(?,?)(10,12)
-E a+(b|c)*d+ aabcdd (0,6)(3,4)
-E ^.+$ vivi (0,4)
-E ^(.+)$ vivi (0,4)(0,4)
-E ^([^!.]+).att.com!(.+)$ gryphon.att.com!eby (0,19)(0,7)(16,19)
-E ^([^!]+!)?([^!]+)$ bas (0,3)(?,?)(0,3)
-E ^([^!]+!)?([^!]+)$ bar!bas (0,7)(0,4)(4,7)
-E ^([^!]+!)?([^!]+)$ foo!bas (0,7)(0,4)(4,7)
-E ^.+!([^!]+!)([^!]+)$ foo!bar!bas (0,11)(4,8)(8,11)
-E ((foo)|(bar))!bas bar!bas (0,7)(0,3)(?,?)(0,3)
-E ((foo)|(bar))!bas foo!bar!bas (4,11)(4,7)(?,?)(4,7)
-E ((foo)|(bar))!bas foo!bas (0,7)(0,3)(0,3)
-E ((foo)|bar)!bas bar!bas (0,7)(0,3)
-E ((foo)|bar)!bas foo!bar!bas (4,11)(4,7)
-E ((foo)|bar)!bas foo!bas (0,7)(0,3)(0,3)
-E (foo|(bar))!bas bar!bas (0,7)(0,3)(0,3)
-E (foo|(bar))!bas foo!bar!bas (4,11)(4,7)(4,7)
-E (foo|(bar))!bas foo!bas (0,7)(0,3)
-E (foo|bar)!bas bar!bas (0,7)(0,3)
-E (foo|bar)!bas foo!bar!bas (4,11)(4,7)
-E (foo|bar)!bas foo!bas (0,7)(0,3)
-E ^(([^!]+!)?([^!]+)|.+!([^!]+!)([^!]+))$ foo!bar!bas (0,11)(0,11)(?,?)(?,?)(4,8)(8,11)
-E ^([^!]+!)?([^!]+)$|^.+!([^!]+!)([^!]+)$ bas (0,3)(?,?)(0,3)
-E ^([^!]+!)?([^!]+)$|^.+!([^!]+!)([^!]+)$ bar!bas (0,7)(0,4)(4,7)
-E ^([^!]+!)?([^!]+)$|^.+!([^!]+!)([^!]+)$ foo!bar!bas (0,11)(?,?)(?,?)(4,8)(8,11)
-E ^([^!]+!)?([^!]+)$|^.+!([^!]+!)([^!]+)$ foo!bas (0,7)(0,4)(4,7)
-E ^(([^!]+!)?([^!]+)|.+!([^!]+!)([^!]+))$ bas (0,3)(0,3)(?,?)(0,3)
-E ^(([^!]+!)?([^!]+)|.+!([^!]+!)([^!]+))$ bar!bas (0,7)(0,7)(0,4)(4,7)
-E ^(([^!]+!)?([^!]+)|.+!([^!]+!)([^!]+))$ foo!bar!bas (0,11)(0,11)(?,?)(?,?)(4,8)(8,11)
-E ^(([^!]+!)?([^!]+)|.+!([^!]+!)([^!]+))$ foo!bas (0,7)(0,7)(0,4)(4,7)
-E .*(/XXX).* /XXX (0,4)(0,4)
-E .*(\\XXX).* \XXX (0,4)(0,4)
-E \\XXX \XXX (0,4)
-E .*(/000).* /000 (0,4)(0,4)
-E .*(\\000).* \000 (0,4)(0,4)
-E \\000 \000 (0,4)
diff --git a/test/regex/categorize.dat b/test/regex/categorize.dat
deleted file mode 100644
index d348512..0000000
--- a/test/regex/categorize.dat
+++ /dev/null
@@ -1,62 +0,0 @@
-NOTE regex implementation categorization 2004-05-31
-
-?E aa* xaxaax (1,2) POSITION=leftmost
-; POSITION=bug
-
-?E (a*)(ab)*(b*) abc (0,2)(0,1)(?,?)(1,2) ASSOCIATIVITY=right
-|E (a*)(ab)*(b*) abc (0,2)(0,0)(0,2)(2,2) ASSOCIATIVITY=left
-; ASSOCIATIVITY=bug
-
-?E ((a*)(ab)*)((b*)(a*)) aba (0,3)(0,2)(0,0)(0,2)(2,3)(2,2)(2,3) SUBEXPRESSION=precedence
-|E ((a*)(ab)*)((b*)(a*)) aba (0,3)(0,1)(0,1)(?,?)(1,3)(1,2)(2,3) SUBEXPRESSION=grouping
-; SUBEXPRESSION=bug
-
-?E (...?.?)* xxxxxx (0,6)(4,6) REPEAT_LONGEST=first
-|E (...?.?)* xxxxxx (0,6)(2,6) REPEAT_LONGEST=last
-|E (...?.?)* xxxxxx OK REPEAT_LONGEST=unknown
-; REPEAT_LONGEST=bug
-
-?E (a|ab)(bc|c) abcabc (0,3)(0,2)(2,3) EXPECTED
-|E (a|ab)(bc|c) abcabc (0,3)(0,1)(1,3) BUG=alternation-order
-; BUG=alternation-order-UNKNOWN
-
-?E (aba|a*b)(aba|a*b) ababa (0,5)(0,2)(2,5) EXPECTED
-|E (aba|a*b)(aba|a*b) ababa (0,4)(0,3)(3,4) BUG=first-match
-; BUG=unknown-match
-
-?B a\(b\)*\1 a NOMATCH EXPECTED
-|B a\(b\)*\1 a (0,1) BUG=nomatch-match
-|B a\(b\)*\1 abab (0,2)(1,2) # BUG=repeat-any
-; BUG=nomatch-match-UNKNOWN
-
-?E (a*){2} xxxxx (0,0)(0,0) EXPECTED
-|E (a*){2} xxxxx (5,5)(5,5) BUG=range-null
-; BUG=range-null-UNKNOWN
-
-?B a\(b\)*\1 abab NOMATCH EXPECTED
-|B a\(b\)*\1 abab (0,1) # BUG=nomatch-match
-|B a\(b\)*\1 abab (0,2)(1,2) BUG=repeat-any
-; BUG=repeat-any-UNKNOWN
-
-?E (a*)* a (0,1)(0,1) EXPECTED
-|E (a*)* ax (0,1)(0,1) BUG=repeat-null-unknown
-|E (a*)* a (0,1)(1,1) BUG=repeat-null
-; BUG=repeat-null-UNKNOWN
-
-?E (aba|a*b)* ababa (0,5)(2,5) EXPECTED
-|E (aba|a*b)* ababa (0,5)(3,4) BUG=repeat-short
-|E (aba|a*b)* ababa (0,4)(3,4) # LENGTH=first
-; BUG=repeat-short-UNKNOWN
-
-?E (a(b)?)+ aba (0,3)(2,3) EXPECTED
-|E (a(b)?)+ aba (0,3)(2,3)(1,2) BUG=repeat-artifact
-; BUG=repeat-artifact-UNKNOWN
-
-?B \(a\(b\)*\)*\2 abab NOMATCH EXPECTED
-|B \(a\(b\)*\)*\2 abab (0,4)(2,3)(1,2) BUG=repeat-artifact-nomatch
-; BUG=repeat-artifact-nomatch-UNKNOWN
-
-?E (a?)((ab)?)(b?)a?(ab)?b? abab (0,4)(0,1)(1,1)(?,?)(1,2)(2,4) BUG=subexpression-first
-|E .*(.*) ab (0,2)(2,2) EXPECTED
-|E .*(.*) ab (0,2)(0,2) BUG=subexpression-first
-; BUG=subexpression-first-UNKNOWN
diff --git a/test/regex/forcedassoc.dat b/test/regex/forcedassoc.dat
deleted file mode 100644
index 39f3111..0000000
--- a/test/regex/forcedassoc.dat
+++ /dev/null
@@ -1,30 +0,0 @@
-NOTE left-assoc:pass-all right-assoc:pass-all : 2002-04-29
-
-E (a|ab)(c|bcd) abcd (0,4)(0,1)(1,4)
-E (a|ab)(bcd|c) abcd (0,4)(0,1)(1,4)
-E (ab|a)(c|bcd) abcd (0,4)(0,1)(1,4)
-E (ab|a)(bcd|c) abcd (0,4)(0,1)(1,4)
-E ((a|ab)(c|bcd))(d*) abcd (0,4)(0,4)(0,1)(1,4)(4,4)
-E ((a|ab)(bcd|c))(d*) abcd (0,4)(0,4)(0,1)(1,4)(4,4)
-E ((ab|a)(c|bcd))(d*) abcd (0,4)(0,4)(0,1)(1,4)(4,4)
-E ((ab|a)(bcd|c))(d*) abcd (0,4)(0,4)(0,1)(1,4)(4,4)
-E (a|ab)((c|bcd)(d*)) abcd (0,4)(0,2)(2,4)(2,3)(3,4)
-E (a|ab)((bcd|c)(d*)) abcd (0,4)(0,2)(2,4)(2,3)(3,4)
-E (ab|a)((c|bcd)(d*)) abcd (0,4)(0,2)(2,4)(2,3)(3,4)
-E (ab|a)((bcd|c)(d*)) abcd (0,4)(0,2)(2,4)(2,3)(3,4)
-E (a*)(b|abc) abc (0,3)(0,0)(0,3)
-E (a*)(abc|b) abc (0,3)(0,0)(0,3)
-E ((a*)(b|abc))(c*) abc (0,3)(0,3)(0,0)(0,3)(3,3)
-E ((a*)(abc|b))(c*) abc (0,3)(0,3)(0,0)(0,3)(3,3)
-E (a*)((b|abc)(c*)) abc (0,3)(0,1)(1,3)(1,2)(2,3)
-E (a*)((abc|b)(c*)) abc (0,3)(0,1)(1,3)(1,2)(2,3)
-E (a*)(b|abc) abc (0,3)(0,0)(0,3)
-E (a*)(abc|b) abc (0,3)(0,0)(0,3)
-E ((a*)(b|abc))(c*) abc (0,3)(0,3)(0,0)(0,3)(3,3)
-E ((a*)(abc|b))(c*) abc (0,3)(0,3)(0,0)(0,3)(3,3)
-E (a*)((b|abc)(c*)) abc (0,3)(0,1)(1,3)(1,2)(2,3)
-E (a*)((abc|b)(c*)) abc (0,3)(0,1)(1,3)(1,2)(2,3)
-E (a|ab) ab (0,2)(0,2)
-E (ab|a) ab (0,2)(0,2)
-E (a|ab)(b*) ab (0,2)(0,2)(2,2)
-E (ab|a)(b*) ab (0,2)(0,2)(2,2)
diff --git a/test/regex/interpretation.dat b/test/regex/interpretation.dat
deleted file mode 100644
index 72e186e..0000000
--- a/test/regex/interpretation.dat
+++ /dev/null
@@ -1,93 +0,0 @@
-:RE#01:E a+ xaax (1,3)
-:RE#02:B .\(a*\). xaax (0,4)(1,3)
-:RE#03:E (a?)((ab)?) ab (0,2)(0,0)(0,2)(0,2)
-:RE#04:E (a?)((ab)?)(b?) ab (0,2)(0,1)(1,1)(?,?)(1,2)
-:RE#05:E ((a?)((ab)?))(b?) ab (0,2)(0,2)(0,0)(0,2)(0,2)(2,2)
-:RE#06:E (a?)(((ab)?)(b?)) ab (0,2)(0,1)(1,2)(1,1)(?,?)(1,2)
-:RE#07:E (.?) x (0,1)(0,1)
-:RE#08:E (.?){1} x (0,1)(0,1)
-:RE#09:E (.?)(.?) x (0,1)(0,1)(1,1)
-:RE#10:E (.?){2} x (0,1)(1,1)
-:RE#11:E (.?)* x (0,1)(0,1)
-:RE#12:E (.?.?) xxx (0,2)(0,2)
-:RE#13:E (.?.?){1} xxx (0,2)(0,2)
-:RE#14:E (.?.?)(.?.?) xxx (0,3)(0,2)(2,3)
-:RE#15:E (.?.?){2} xxx (0,3)(2,3)
-:RE#16:E (.?.?)(.?.?)(.?.?) xxx (0,3)(0,2)(2,3)(3,3)
-:RE#17:E (.?.?){3} xxx (0,3)(3,3)
-:RE#18:E (.?.?)* xxx (0,3)(2,3)
-:RE#19:E a?((ab)?)(b?) ab (0,2)(1,1)(?,?)(1,2)
-:RE#20:E (a?)((ab)?)b? ab (0,2)(0,1)(1,1)(?,?)
-:RE#21:E a?((ab)?)b? ab (0,2)(1,1)(?,?)
-:RE#22:E (a*){2} xxxxx (0,0)(0,0)
-:RE#23:E (ab?)(b?a) aba (0,3)(0,2)(2,3)
-:RE#24:E (a|ab)(ba|a) aba (0,3)(0,2)(2,3)
-:RE#25:E (a|ab|ba) aba (0,2)(0,2)
-:RE#26:E (a|ab|ba)(a|ab|ba) aba (0,3)(0,2)(2,3)
-:RE#27:E (a|ab|ba)* aba (0,3)(2,3)
-:RE#28:E (aba|a*b) ababa (0,3)(0,3)
-:RE#29:E (aba|a*b)(aba|a*b) ababa (0,5)(0,2)(2,5)
-:RE#30:E (aba|a*b)* ababa (0,5)(2,5)
-:RE#31:E (aba|ab|a) ababa (0,3)(0,3)
-:RE#32:E (aba|ab|a)(aba|ab|a) ababa (0,5)(0,2)(2,5)
-:RE#33:E (aba|ab|a)* ababa (0,5)(2,5)
-:RE#34:E (a(b)?) aba (0,2)(0,2)(1,2)
-:RE#35:E (a(b)?)(a(b)?) aba (0,3)(0,2)(1,2)(2,3)(?,?)
-:RE#36:E (a(b)?)+ aba (0,3)(2,3)(?,?)
-:RE#37:E (.*)(.*) xx (0,2)(0,2)(2,2)
-:RE#38:E .*(.*) xx (0,2)(2,2)
-:RE#39:E (a.*z|b.*y) azbazby (0,5)(0,5)
-:RE#40:E (a.*z|b.*y)(a.*z|b.*y) azbazby (0,7)(0,5)(5,7)
-:RE#41:E (a.*z|b.*y)* azbazby (0,7)(5,7)
-:RE#42:E (.|..)(.*) ab (0,2)(0,2)(2,2)
-:RE#43:E ((..)*(...)*) xxx (0,3)(0,3)(?,?)(0,3)
-:RE#44:E ((..)*(...)*)((..)*(...)*) xxx (0,3)(0,3)(?,?)(0,3)(3,3)(?,?)
-:RE#45:E ((..)*(...)*)* xxx (0,3)(0,3)(?,?)(0,3)
-:RE#46:B \(a\{0,1\}\)*b\1 ab (0,2)(1,1)
-:RE#47:B \(a*\)*b\1 ab (0,2)(1,1)
-:RE#48:B \(a*\)b\1* ab (0,2)(0,1)
-:RE#49:B \(a*\)*b\1* ab (0,2)(1,1)
-:RE#50:B \(a\{0,1\}\)*b\(\1\) ab (0,2)(1,1)(2,2)
-:RE#51:B \(a*\)*b\(\1\) ab (0,2)(1,1)(2,2)
-:RE#52:B \(a*\)b\(\1\)* ab (0,2)(0,1)(?,?)
-:RE#53:B \(a*\)*b\(\1\)* ab (0,2)(1,1)(2,2)
-:RE#54:B \(a\{0,1\}\)*b\1 aba (0,3)(0,1)
-:RE#55:B \(a*\)*b\1 aba (0,3)(0,1)
-:RE#56:B \(a*\)b\1* aba (0,3)(0,1)
-:RE#57:B \(a*\)*b\1* aba (0,3)(0,1)
-:RE#58:B \(a*\)*b\(\1\)* aba (0,3)(0,1)(2,3)
-:RE#59:B \(a\{0,1\}\)*b\1 abaa (0,3)(0,1)
-:RE#60:B \(a*\)*b\1 abaa (0,3)(0,1)
-:RE#61:B \(a*\)b\1* abaa (0,4)(0,1)
-:RE#62:B \(a*\)*b\1* abaa (0,4)(0,1)
-:RE#63:B \(a*\)*b\(\1\)* abaa (0,4)(0,1)(3,4)
-:RE#64:B \(a\{0,1\}\)*b\1 aab (0,3)(2,2)
-:RE#65:B \(a*\)*b\1 aab (0,3)(2,2)
-:RE#66:B \(a*\)b\1* aab (0,3)(0,2)
-:RE#67:B \(a*\)*b\1* aab (0,3)(2,2)
-:RE#68:B \(a*\)*b\(\1\)* aab (0,3)(2,2)(3,3)
-:RE#69:B \(a\{0,1\}\)*b\1 aaba (0,4)(1,2)
-:RE#70:B \(a*\)*b\1 aaba (0,4)(1,2)
-:RE#71:B \(a*\)b\1* aaba (0,3)(0,2)
-:RE#72:B \(a*\)*b\1* aaba (0,4)(1,2)
-:RE#73:B \(a*\)*b\(\1\)* aaba (0,4)(1,2)(3,4)
-:RE#74:B \(a\{0,1\}\)*b\1 aabaa (0,4)(1,2)
-:RE#75:B \(a*\)*b\1 aabaa (0,5)(0,2)
-:RE#76:B \(a*\)b\1* aabaa (0,5)(0,2)
-:RE#77:B \(a*\)*b\1* aabaa (0,5)(0,2)
-:RE#78:B \(a*\)*b\(\1\)* aabaa (0,5)(0,2)(3,5)
-:RE#79:B \(x\)*a\1 a NOMATCH
-:RE#80:B \(x\)*a\1* a (0,1)(?,?)
-:RE#81:B \(x\)*a\(\1\) a NOMATCH
-:RE#82:B \(x\)*a\(\1\)* a (0,1)(?,?)(?,?)
-:RE#83:E (aa(b(b))?)+ aabbaa (0,6)(4,6)(?,?)(?,?)
-:RE#84:E (a(b)?)+ aba (0,3)(2,3)(?,?)
-:RE#85:E ([ab]+)([bc]+)([cd]*) abcd (0,4)(0,2)(2,3)(3,4)
-:RE#86:B \([ab]*\)\([bc]*\)\([cd]*\)\1 abcdaa (0,5)(0,1)(1,3)(3,4)
-:RE#87:B \([ab]*\)\([bc]*\)\([cd]*\)\1 abcdab (0,6)(0,2)(2,3)(3,4)
-:RE#88:B \([ab]*\)\([bc]*\)\([cd]*\)\1* abcdaa (0,6)(0,1)(1,3)(3,4)
-:RE#89:B \([ab]*\)\([bc]*\)\([cd]*\)\1* abcdab (0,6)(0,2)(2,3)(3,4)
-:RE#90:E ^(A([^B]*))?(B(.*))? Aa (0,2)(0,2)(1,2)
-:RE#91:E ^(A([^B]*))?(B(.*))? Bb (0,2)(?,?)(?,?)(0,2)(1,2)
-:RE#92:B .*\([AB]\).*\1 ABA (0,3)(0,1)
-:RE#93:B$ [^A]*A \nA (0,2)
diff --git a/test/regex/leftassoc.dat b/test/regex/leftassoc.dat
deleted file mode 100644
index 9c068c6..0000000
--- a/test/regex/leftassoc.dat
+++ /dev/null
@@ -1,16 +0,0 @@
-NOTE left-assoc:pass-all right-assoc:pass-none : 2002-04-29
-
-E (a|ab)(c|bcd)(d*) abcd (0,4)(0,1)(1,4)(4,4)
-E (a|ab)(bcd|c)(d*) abcd (0,4)(0,1)(1,4)(4,4)
-E (ab|a)(c|bcd)(d*) abcd (0,4)(0,1)(1,4)(4,4)
-E (ab|a)(bcd|c)(d*) abcd (0,4)(0,1)(1,4)(4,4)
-
-E (a*)(b|abc)(c*) abc (0,3)(0,0)(0,3)(3,3)
-E (a*)(abc|b)(c*) abc (0,3)(0,0)(0,3)(3,3)
-E (a*)(b|abc)(c*) abc (0,3)(0,0)(0,3)(3,3)
-E (a*)(abc|b)(c*) abc (0,3)(0,0)(0,3)(3,3)
-
-E (a|ab)(c|bcd)(d|.*) abcd (0,4)(0,1)(1,4)(4,4)
-E (a|ab)(bcd|c)(d|.*) abcd (0,4)(0,1)(1,4)(4,4)
-E (ab|a)(c|bcd)(d|.*) abcd (0,4)(0,1)(1,4)(4,4)
-E (ab|a)(bcd|c)(d|.*) abcd (0,4)(0,1)(1,4)(4,4)
diff --git a/test/regex/nullsubexpr.dat b/test/regex/nullsubexpr.dat
deleted file mode 100644
index c73d8f0..0000000
--- a/test/regex/nullsubexpr.dat
+++ /dev/null
@@ -1,73 +0,0 @@
-NOTE null subexpression matches : 2002-06-06
-
-E (a*)* a (0,1)(0,1)
-E SAME x (0,0)(0,0)
-E SAME aaaaaa (0,6)(0,6)
-E SAME aaaaaax (0,6)(0,6)
-E (a*)+ a (0,1)(0,1)
-E SAME x (0,0)(0,0)
-E SAME aaaaaa (0,6)(0,6)
-E SAME aaaaaax (0,6)(0,6)
-E (a+)* a (0,1)(0,1)
-E SAME x (0,0)
-E SAME aaaaaa (0,6)(0,6)
-E SAME aaaaaax (0,6)(0,6)
-E (a+)+ a (0,1)(0,1)
-E SAME x NOMATCH
-E SAME aaaaaa (0,6)(0,6)
-E SAME aaaaaax (0,6)(0,6)
-
-E ([a]*)* a (0,1)(0,1)
-E SAME x (0,0)(0,0)
-E SAME aaaaaa (0,6)(0,6)
-E SAME aaaaaax (0,6)(0,6)
-E ([a]*)+ a (0,1)(0,1)
-E SAME x (0,0)(0,0)
-E SAME aaaaaa (0,6)(0,6)
-E SAME aaaaaax (0,6)(0,6)
-E ([^b]*)* a (0,1)(0,1)
-E SAME b (0,0)(0,0)
-E SAME aaaaaa (0,6)(0,6)
-E SAME aaaaaab (0,6)(0,6)
-E ([ab]*)* a (0,1)(0,1)
-E SAME aaaaaa (0,6)(0,6)
-E SAME ababab (0,6)(0,6)
-E SAME bababa (0,6)(0,6)
-E SAME b (0,1)(0,1)
-E SAME bbbbbb (0,6)(0,6)
-E SAME aaaabcde (0,5)(0,5)
-E ([^a]*)* b (0,1)(0,1)
-E SAME bbbbbb (0,6)(0,6)
-E SAME aaaaaa (0,0)(0,0)
-E ([^ab]*)* ccccxx (0,6)(0,6)
-E SAME ababab (0,0)(0,0)
-
-E ((z)+|a)* zabcde (0,2)(1,2)
-
-{E a+? aaaaaa (0,1) no *? +? mimimal match ops
-E (a) aaa (0,1)(0,1)
-E (a*?) aaa (0,0)(0,0)
-E (a)*? aaa (0,0)
-E (a*?)*? aaa (0,0)
-}
-
-B \(a*\)*\(x\) x (0,1)(0,0)(0,1)
-B \(a*\)*\(x\) ax (0,2)(0,1)(1,2)
-B \(a*\)*\(x\) axa (0,2)(0,1)(1,2)
-B \(a*\)*\(x\)\(\1\) x (0,1)(0,0)(0,1)(1,1)
-B \(a*\)*\(x\)\(\1\) ax (0,2)(1,1)(1,2)(2,2)
-B \(a*\)*\(x\)\(\1\) axa (0,3)(0,1)(1,2)(2,3)
-B \(a*\)*\(x\)\(\1\)\(x\) axax (0,4)(0,1)(1,2)(2,3)(3,4)
-B \(a*\)*\(x\)\(\1\)\(x\) axxa (0,3)(1,1)(1,2)(2,2)(2,3)
-
-E (a*)*(x) x (0,1)(0,0)(0,1)
-E (a*)*(x) ax (0,2)(0,1)(1,2)
-E (a*)*(x) axa (0,2)(0,1)(1,2)
-
-E (a*)+(x) x (0,1)(0,0)(0,1)
-E (a*)+(x) ax (0,2)(0,1)(1,2)
-E (a*)+(x) axa (0,2)(0,1)(1,2)
-
-E (a*){2}(x) x (0,1)(0,0)(0,1)
-E (a*){2}(x) ax (0,2)(1,1)(1,2)
-E (a*){2}(x) axa (0,2)(1,1)(1,2)
diff --git a/test/regex/repetition.dat b/test/regex/repetition.dat
deleted file mode 100644
index b54a2c6..0000000
--- a/test/regex/repetition.dat
+++ /dev/null
@@ -1,79 +0,0 @@
-NOTE implicit vs. explicit repetitions : 2002-08-01
-#
-# Glenn Fowler <gsf(a)research.att.com>
-# conforming matches (column 4) must match one of the following BREs
-# NOMATCH
-# (0,.)\((\(.\),\(.\))(?,?)(\2,\3)\)*
-# (0,.)\((\(.\),\(.\))(\2,\3)(?,?)\)*
-# i.e., each 3-tuple has two identical elements and one (?,?)
-#
-
-E ((..)|(.)) NULL NOMATCH
-E ((..)|(.))((..)|(.)) NULL NOMATCH
-E ((..)|(.))((..)|(.))((..)|(.)) NULL NOMATCH
-
-E ((..)|(.)){1} NULL NOMATCH
-E ((..)|(.)){2} NULL NOMATCH
-E ((..)|(.)){3} NULL NOMATCH
-
-E ((..)|(.))* NULL (0,0)
-
-E ((..)|(.)) a (0,1)(0,1)(?,?)(0,1)
-E ((..)|(.))((..)|(.)) a NOMATCH
-E ((..)|(.))((..)|(.))((..)|(.)) a NOMATCH
-
-E ((..)|(.)){1} a (0,1)(0,1)(?,?)(0,1)
-E ((..)|(.)){2} a NOMATCH
-E ((..)|(.)){3} a NOMATCH
-
-E ((..)|(.))* a (0,1)(0,1)(?,?)(0,1)
-
-E ((..)|(.)) aa (0,2)(0,2)(0,2)(?,?)
-E ((..)|(.))((..)|(.)) aa (0,2)(0,1)(?,?)(0,1)(1,2)(?,?)(1,2)
-E ((..)|(.))((..)|(.))((..)|(.)) aa NOMATCH
-
-E ((..)|(.)){1} aa (0,2)(0,2)(0,2)(?,?)
-E ((..)|(.)){2} aa (0,2)(1,2)(?,?)(1,2)
-E ((..)|(.)){3} aa NOMATCH
-
-E ((..)|(.))* aa (0,2)(0,2)(0,2)(?,?)
-
-E ((..)|(.)) aaa (0,2)(0,2)(0,2)(?,?)
-E ((..)|(.))((..)|(.)) aaa (0,3)(0,2)(0,2)(?,?)(2,3)(?,?)(2,3)
-E ((..)|(.))((..)|(.))((..)|(.)) aaa (0,3)(0,1)(?,?)(0,1)(1,2)(?,?)(1,2)(2,3)(?,?)(2,3)
-
-E ((..)|(.)){1} aaa (0,2)(0,2)(0,2)(?,?)
-E ((..)|(.)){2} aaa (0,3)(2,3)(?,?)(2,3)
-E ((..)|(.)){3} aaa (0,3)(2,3)(?,?)(2,3)
-
-E ((..)|(.))* aaa (0,3)(2,3)(?,?)(2,3)
-
-E ((..)|(.)) aaaa (0,2)(0,2)(0,2)(?,?)
-E ((..)|(.))((..)|(.)) aaaa (0,4)(0,2)(0,2)(?,?)(2,4)(2,4)(?,?)
-E ((..)|(.))((..)|(.))((..)|(.)) aaaa (0,4)(0,2)(0,2)(?,?)(2,3)(?,?)(2,3)(3,4)(?,?)(3,4)
-
-E ((..)|(.)){1} aaaa (0,2)(0,2)(0,2)(?,?)
-E ((..)|(.)){2} aaaa (0,4)(2,4)(2,4)(?,?)
-E ((..)|(.)){3} aaaa (0,4)(3,4)(?,?)(3,4)
-
-E ((..)|(.))* aaaa (0,4)(2,4)(2,4)(?,?)
-
-E ((..)|(.)) aaaaa (0,2)(0,2)(0,2)(?,?)
-E ((..)|(.))((..)|(.)) aaaaa (0,4)(0,2)(0,2)(?,?)(2,4)(2,4)(?,?)
-E ((..)|(.))((..)|(.))((..)|(.)) aaaaa (0,5)(0,2)(0,2)(?,?)(2,4)(2,4)(?,?)(4,5)(?,?)(4,5)
-
-E ((..)|(.)){1} aaaaa (0,2)(0,2)(0,2)(?,?)
-E ((..)|(.)){2} aaaaa (0,4)(2,4)(2,4)(?,?)
-E ((..)|(.)){3} aaaaa (0,5)(4,5)(?,?)(4,5)
-
-E ((..)|(.))* aaaaa (0,5)(4,5)(?,?)(4,5)
-
-E ((..)|(.)) aaaaaa (0,2)(0,2)(0,2)(?,?)
-E ((..)|(.))((..)|(.)) aaaaaa (0,4)(0,2)(0,2)(?,?)(2,4)(2,4)(?,?)
-E ((..)|(.))((..)|(.))((..)|(.)) aaaaaa (0,6)(0,2)(0,2)(?,?)(2,4)(2,4)(?,?)(4,6)(4,6)(?,?)
-
-E ((..)|(.)){1} aaaaaa (0,2)(0,2)(0,2)(?,?)
-E ((..)|(.)){2} aaaaaa (0,4)(2,4)(2,4)(?,?)
-E ((..)|(.)){3} aaaaaa (0,6)(4,6)(4,6)(?,?)
-
-E ((..)|(.))* aaaaaa (0,6)(4,6)(4,6)(?,?)
diff --git a/test/regex/rightassoc.dat b/test/regex/rightassoc.dat
deleted file mode 100644
index ed7f28e..0000000
--- a/test/regex/rightassoc.dat
+++ /dev/null
@@ -1,16 +0,0 @@
-NOTE left-assoc:pass-none right-assoc:pass-all : 2002-04-29
-
-E (a|ab)(c|bcd)(d*) abcd (0,4)(0,2)(2,3)(3,4)
-E (a|ab)(bcd|c)(d*) abcd (0,4)(0,2)(2,3)(3,4)
-E (ab|a)(c|bcd)(d*) abcd (0,4)(0,2)(2,3)(3,4)
-E (ab|a)(bcd|c)(d*) abcd (0,4)(0,2)(2,3)(3,4)
-
-E (a*)(b|abc)(c*) abc (0,3)(0,1)(1,2)(2,3)
-E (a*)(abc|b)(c*) abc (0,3)(0,1)(1,2)(2,3)
-E (a*)(b|abc)(c*) abc (0,3)(0,1)(1,2)(2,3)
-E (a*)(abc|b)(c*) abc (0,3)(0,1)(1,2)(2,3)
-
-E (a|ab)(c|bcd)(d|.*) abcd (0,4)(0,2)(2,3)(3,4)
-E (a|ab)(bcd|c)(d|.*) abcd (0,4)(0,2)(2,3)(3,4)
-E (ab|a)(c|bcd)(d|.*) abcd (0,4)(0,2)(2,3)(3,4)
-E (ab|a)(bcd|c)(d|.*) abcd (0,4)(0,2)(2,3)(3,4)
diff --git a/test/regex/testregex.c b/test/regex/testregex.c
deleted file mode 100644
index d18761d..0000000
--- a/test/regex/testregex.c
+++ /dev/null
@@ -1,2145 +0,0 @@
-/*
- * regex(3) test harness
- *
- * build: cc -o testregex testregex.c
- * help: testregex --man
- * note: REG_* features are detected by #ifdef; if REG_* are enums
- * then supply #define REG_foo REG_foo for each enum REG_foo
- *
- * Glenn Fowler <gsf(a)research.att.com>
- * AT&T Labs Research
- *
- * PLEASE: publish your tests so everyone can benefit
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of THIS SOFTWARE FILE (the "Software"), to deal in the Software
- * without restriction, including without limitation the rights to use,
- * copy, modify, merge, publish, distribute, and/or sell copies of the
- * Software, and to permit persons to whom the Software is furnished to do
- * so, subject to the following disclaimer:
- *
- * THIS SOFTWARE IS PROVIDED BY AT&T ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL AT&T BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-static const char id[] = "\n@(#)$Id: testregex (AT&T Research) 2005-05-20
$\0\n";
-
-#if _PACKAGE_ast
-#include <ast.h>
-#else
-#include <sys/types.h>
-#endif
-
-#include <stdio.h>
-#include <regex.h>
-#include <ctype.h>
-#include <setjmp.h>
-#include <signal.h>
-#include <string.h>
-#include <unistd.h>
-
-#ifdef __STDC__
-#include <stdlib.h>
-#include <locale.h>
-#endif
-
-#if !_PACKAGE_ast
-#undef REG_DISCIPLINE
-#endif
-
-#ifndef REG_DELIMITED
-#undef _REG_subcomp
-#endif
-
-#define TEST_ARE 0x00000001
-#define TEST_BRE 0x00000002
-#define TEST_ERE 0x00000004
-#define TEST_KRE 0x00000008
-#define TEST_LRE 0x00000010
-#define TEST_SRE 0x00000020
-
-#define TEST_EXPAND 0x00000040
-#define TEST_LENIENT 0x00000080
-
-#define TEST_QUERY 0x00000100
-#define TEST_SUB 0x00000200
-#define TEST_UNSPECIFIED 0x00000400
-#define TEST_VERIFY 0x00000800
-#define TEST_AND 0x00001000
-#define TEST_OR 0x00002000
-
-#define TEST_DELIMIT 0x00010000
-#define TEST_OK 0x00020000
-#define TEST_SAME 0x00040000
-
-#define TEST_ACTUAL 0x00100000
-#define TEST_BASELINE 0x00200000
-#define TEST_FAIL 0x00400000
-#define TEST_PASS 0x00800000
-#define TEST_SUMMARY 0x01000000
-
-#define TEST_IGNORE_ERROR 0x02000000
-#define TEST_IGNORE_OVER 0x04000000
-#define TEST_IGNORE_POSITION 0x08000000
-
-#define TEST_CATCH 0x10000000
-#define TEST_VERBOSE 0x20000000
-
-#define
TEST_GLOBAL (TEST_ACTUAL|TEST_AND|TEST_BASELINE|TEST_CATCH|TEST_FAIL|TEST_IGNORE_ERROR|TEST_IGNORE_OVER|TEST_IGNORE_POSITION|TEST_OR|TEST_PASS|TEST_SUMMARY|TEST_VERBOSE)
-
-#ifdef REG_DISCIPLINE
-
-
-#include <stk.h>
-
-typedef struct Disc_s
-{
- regdisc_t disc;
- int ordinal;
- Sfio_t* sp;
-} Disc_t;
-
-static void*
-compf(const regex_t* re, const char* xstr, size_t xlen, regdisc_t* disc)
-{
- Disc_t* dp = (Disc_t*)disc;
-
- return (void*)++dp->ordinal;
-}
-
-static int
-execf(const regex_t* re, void* data, const char* xstr, size_t xlen, const char* sstr,
size_t slen, char** snxt, regdisc_t* disc)
-{
- Disc_t* dp = (Disc_t*)disc;
-
- sfprintf(dp->sp, "{%-.*s}(%d:%d)", xlen, xstr, (int)data, slen);
- return atoi(xstr);
-}
-
-static void*
-resizef(void* handle, void* data, size_t size)
-{
- if (!size)
- return 0;
- return stkalloc((Sfio_t*)handle, size);
-}
-
-#endif
-
-#ifndef NiL
-#ifdef __STDC__
-#define NiL 0
-#else
-#define NiL (char*)0
-#endif
-#endif
-
-#define H(x) do{if(html)fprintf(stderr,x);}while(0)
-#define T(x) fprintf(stderr,x)
-
-static void
-help(int html)
-{
-H("<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML//EN\">\n");
-H("<HTML>\n");
-H("<HEAD>\n");
-H("<TITLE>testregex man document</TITLE>\n");
-H("</HEAD>\n");
-H("<BODY bgcolor=white>\n");
-H("<PRE>\n");
-T("NAME\n");
-T(" testregex - regex(3) test harness\n");
-T("\n");
-T("SYNOPSIS\n");
-T(" testregex [ options ]\n");
-T("\n");
-T("DESCRIPTION\n");
-T(" testregex reads regex(3) test specifications, one per line, from the\n");
-T(" standard input and writes one output line for each failed test. A\n");
-T(" summary line is written after all tests are done. Each successful\n");
-T(" test is run again with REG_NOSUB. Unsupported features are noted\n");
-T(" before the first test, and tests requiring these features are\n");
-T(" silently ignored.\n");
-T("\n");
-T("OPTIONS\n");
-T(" -c catch signals and non-terminating calls\n");
-T(" -e ignore error return mismatches\n");
-T(" -h list help on standard error\n");
-T(" -n do not repeat successful tests with regnexec()\n");
-T(" -o ignore match[] overrun errors\n");
-T(" -p ignore negative position mismatches\n");
-T(" -s use stack instead of malloc\n");
-T(" -x do not repeat successful tests with REG_NOSUB\n");
-T(" -v list each test line\n");
-T(" -A list failed test lines with actual answers\n");
-T(" -B list all test lines with actual answers\n");
-T(" -F list failed test lines\n");
-T(" -P list passed test lines\n");
-T(" -S output one summary line\n");
-T("\n");
-T("INPUT FORMAT\n");
-T(" Input lines may be blank, a comment beginning with #, or a test\n");
-T(" specification. A specification is five fields separated by one\n");
-T(" or more tabs. NULL denotes the empty string and NIL denotes the\n");
-T(" 0 pointer.\n");
-T("\n");
-T(" Field 1: the regex(3) flags to apply, one character per REG_feature\n");
-T(" flag. The test is skipped if REG_feature is not supported by the\n");
-T(" implementation. If the first character is not [BEASKL] then the\n");
-T(" specification is a global control line. One or more of [BEASKL] may
be\n");
-T(" specified; the test will be repeated for each mode.\n");
-T("\n");
-T(" B basic BRE (grep, ed, sed)\n");
-T(" E REG_EXTENDED ERE (egrep)\n");
-T(" A REG_AUGMENTED ARE (egrep with negation)\n");
-T(" S REG_SHELL SRE (sh glob)\n");
-T(" K REG_SHELL|REG_AUGMENTED KRE (ksh glob)\n");
-T(" L REG_LITERAL LRE (fgrep)\n");
-T("\n");
-T(" a REG_LEFT|REG_RIGHT implicit ^...$\n");
-T(" b REG_NOTBOL lhs does not match ^\n");
-T(" c REG_COMMENT ignore space and #...\\n\n");
-T(" d REG_SHELL_DOT explicit leading . match\n");
-T(" e REG_NOTEOL rhs does not match $\n");
-T(" f REG_MULTIPLE multiple \\n separated patterns\n");
-T(" g FNM_LEADING_DIR testfnmatch only -- match until /\n");
-T(" h REG_MULTIREF multiple digit backref\n");
-T(" i REG_ICASE ignore case\n");
-T(" j REG_SPAN . matches \\n\n");
-T(" k REG_ESCAPE \\ to ecape [...] delimiter\n");
-T(" l REG_LEFT implicit ^...\n");
-T(" m REG_MINIMAL minimal match\n");
-T(" n REG_NEWLINE explicit \\n match\n");
-T(" o REG_ENCLOSED (|&) magic inside [@|&](...)\n");
-T(" p REG_SHELL_PATH explicit / match\n");
-T(" q REG_DELIMITED delimited pattern\n");
-T(" r REG_RIGHT implicit ...$\n");
-T(" s REG_SHELL_ESCAPED \\ not special\n");
-T(" t REG_MUSTDELIM all delimiters must be specified\n");
-T(" u standard unspecified behavior -- errors not counted\n");
-T(" w REG_NOSUB no subexpression match array\n");
-T(" x REG_LENIENT let some errors slide\n");
-T(" y REG_LEFT regexec() implicit ^...\n");
-T(" z REG_NULL NULL subexpressions ok\n");
-T(" $ expand C \\c escapes in fields 2 and 3\n");
-T(" / field 2 is a regsubcomp() expression\n");
-T("\n");
-T(" Field 1 control lines:\n");
-T("\n");
-T(" C set LC_COLLATE and LC_CTYPE to locale in field 2\n");
-T("\n");
-T(" ?test ... output field 5 if passed and != EXPECTED, silent
otherwise\n");
-T(" &test ... output field 5 if current and previous passed\n");
-T(" |test ... output field 5 if current passed and previous failed\n");
-T(" ; ... output field 2 if previous failed\n");
-T(" {test ... skip if failed until }\n");
-T(" } end of skip\n");
-T("\n");
-T(" : comment comment copied as output NOTE\n");
-T(" :comment:test :comment: ignored\n");
-T(" N[OTE] comment comment copied as output NOTE\n");
-T(" T[EST] comment comment\n");
-T("\n");
-T(" number use number for nmatch (20 by default)\n");
-T("\n");
-T(" Field 2: the regular expression pattern; SAME uses the pattern from\n");
-T(" the previous specification.\n");
-T("\n");
-T(" Field 3: the string to match.\n");
-T("\n");
-T(" Field 4: the test outcome. This is either one of the posix error\n");
-T(" codes (with REG_ omitted) or the match array, a list of (m,n)\n");
-T(" entries with m and n being first and last+1 positions in the\n");
-T(" field 3 string, or NULL if REG_NOSUB is in effect and success\n");
-T(" is expected. BADPAT is acceptable in place of any regcomp(3)\n");
-T(" error code. The match[] array is initialized to (-2,-2) before\n");
-T(" each test. All array elements from 0 to nmatch-1 must be specified\n");
-T(" in the outcome. Unspecified endpoints (offset -1) are denoted by
?.\n");
-T(" Unset endpoints (offset -2) are denoted by X. {x}(o:n) denotes a\n");
-T(" matched (?{...}) expression, where x is the text enclosed by
{...},\n");
-T(" o is the expression ordinal counting from 1, and n is the length
of\n");
-T(" the unmatched portion of the subject string. If x starts with a\n");
-T(" number then that is the return value of re_execf(), otherwise 0 is\n");
-T(" returned.\n");
-T("\n");
-T(" Field 5: optional comment appended to the report.\n");
-T("\n");
-T("CAVEAT\n");
-T(" If a regex implementation misbehaves with memory then all bets are
off.\n");
-T("\n");
-T("CONTRIBUTORS\n");
-T(" Glenn Fowler gsf(a)research.att.com (ksh strmatch, regex
extensions)\n");
-T(" David Korn dgk(a)research.att.com (ksh glob matcher)\n");
-T(" Doug McIlroy mcilroy(a)dartmouth.edu (ast regex/testre in
C++)\n");
-T(" Tom Lord lord(a)regexps.com (rx tests)\n");
-T(" Henry Spencer henry(a)zoo.toronto.edu (original public regex)\n");
-T(" Andrew Hume andrew(a)research.att.com (gre tests)\n");
-T(" John Maddock John_Maddock(a)compuserve.com (regex++ tests)\n");
-T(" Philip Hazel ph10(a)cam.ac.uk (pcre tests)\n");
-T(" Ville Laurikari vl(a)iki.fi (libtre tests)\n");
-H("</PRE>\n");
-H("</BODY>\n");
-H("</HTML>\n");
-}
-
-#ifndef elementsof
-#define elementsof(x) (sizeof(x)/sizeof(x[0]))
-#endif
-
-#ifndef streq
-#define streq(a,b) (*(a)==*(b)&&!strcmp(a,b))
-#endif
-
-#define HUNG 5
-#define NOTEST (~0)
-
-#ifndef REG_TEST_DEFAULT
-#define REG_TEST_DEFAULT 0
-#endif
-
-#ifndef REG_EXEC_DEFAULT
-#define REG_EXEC_DEFAULT 0
-#endif
-
-static const char* unsupported[] =
-{
- "BASIC",
-#ifndef REG_EXTENDED
- "EXTENDED",
-#endif
-#ifndef REG_AUGMENTED
- "AUGMENTED",
-#endif
-#ifndef REG_SHELL
- "SHELL",
-#endif
-
-#ifndef REG_COMMENT
- "COMMENT",
-#endif
-#ifndef REG_DELIMITED
- "DELIMITED",
-#endif
-#ifndef REG_DISCIPLINE
- "DISCIPLINE",
-#endif
-#ifndef REG_ESCAPE
- "ESCAPE",
-#endif
-#ifndef REG_ICASE
- "ICASE",
-#endif
-#ifndef REG_LEFT
- "LEFT",
-#endif
-#ifndef REG_LENIENT
- "LENIENT",
-#endif
-#ifndef REG_LITERAL
- "LITERAL",
-#endif
-#ifndef REG_MINIMAL
- "MINIMAL",
-#endif
-#ifndef REG_MULTIPLE
- "MULTIPLE",
-#endif
-#ifndef REG_MULTIREF
- "MULTIREF",
-#endif
-#ifndef REG_MUSTDELIM
- "MUSTDELIM",
-#endif
-#ifndef REG_NEWLINE
- "NEWLINE",
-#endif
-#ifndef REG_NOTBOL
- "NOTBOL",
-#endif
-#ifndef REG_NOTEOL
- "NOTEOL",
-#endif
-#ifndef REG_NULL
- "NULL",
-#endif
-#ifndef REG_RIGHT
- "RIGHT",
-#endif
-#ifndef REG_SHELL_DOT
- "SHELL_DOT",
-#endif
-#ifndef REG_SHELL_ESCAPED
- "SHELL_ESCAPED",
-#endif
-#ifndef REG_SHELL_GROUP
- "SHELL_GROUP",
-#endif
-#ifndef REG_SHELL_PATH
- "SHELL_PATH",
-#endif
-#ifndef REG_SPAN
- "SPAN",
-#endif
-#if REG_NOSUB & REG_TEST_DEFAULT
- "SUBMATCH",
-#endif
-#if !_REG_nexec
- "regnexec",
-#endif
-#if !_REG_subcomp
- "regsubcomp",
-#endif
- 0
-};
-
-#ifndef REG_COMMENT
-#define REG_COMMENT NOTEST
-#endif
-#ifndef REG_DELIMITED
-#define REG_DELIMITED NOTEST
-#endif
-#ifndef REG_ESCAPE
-#define REG_ESCAPE NOTEST
-#endif
-#ifndef REG_ICASE
-#define REG_ICASE NOTEST
-#endif
-#ifndef REG_LEFT
-#define REG_LEFT NOTEST
-#endif
-#ifndef REG_LENIENT
-#define REG_LENIENT 0
-#endif
-#ifndef REG_MINIMAL
-#define REG_MINIMAL NOTEST
-#endif
-#ifndef REG_MULTIPLE
-#define REG_MULTIPLE NOTEST
-#endif
-#ifndef REG_MULTIREF
-#define REG_MULTIREF NOTEST
-#endif
-#ifndef REG_MUSTDELIM
-#define REG_MUSTDELIM NOTEST
-#endif
-#ifndef REG_NEWLINE
-#define REG_NEWLINE NOTEST
-#endif
-#ifndef REG_NOTBOL
-#define REG_NOTBOL NOTEST
-#endif
-#ifndef REG_NOTEOL
-#define REG_NOTEOL NOTEST
-#endif
-#ifndef REG_NULL
-#define REG_NULL NOTEST
-#endif
-#ifndef REG_RIGHT
-#define REG_RIGHT NOTEST
-#endif
-#ifndef REG_SHELL_DOT
-#define REG_SHELL_DOT NOTEST
-#endif
-#ifndef REG_SHELL_ESCAPED
-#define REG_SHELL_ESCAPED NOTEST
-#endif
-#ifndef REG_SHELL_GROUP
-#define REG_SHELL_GROUP NOTEST
-#endif
-#ifndef REG_SHELL_PATH
-#define REG_SHELL_PATH NOTEST
-#endif
-#ifndef REG_SPAN
-#define REG_SPAN NOTEST
-#endif
-
-#define REG_UNKNOWN (-1)
-
-#ifndef REG_ENEWLINE
-#define REG_ENEWLINE (REG_UNKNOWN-1)
-#endif
-#ifndef REG_ENULL
-#ifndef REG_EMPTY
-#define REG_ENULL (REG_UNKNOWN-2)
-#else
-#define REG_ENULL REG_EMPTY
-#endif
-#endif
-#ifndef REG_ECOUNT
-#define REG_ECOUNT (REG_UNKNOWN-3)
-#endif
-#ifndef REG_BADESC
-#define REG_BADESC (REG_UNKNOWN-4)
-#endif
-#ifndef REG_EMEM
-#define REG_EMEM (REG_UNKNOWN-5)
-#endif
-#ifndef REG_EHUNG
-#define REG_EHUNG (REG_UNKNOWN-6)
-#endif
-#ifndef REG_EBUS
-#define REG_EBUS (REG_UNKNOWN-7)
-#endif
-#ifndef REG_EFAULT
-#define REG_EFAULT (REG_UNKNOWN-8)
-#endif
-#ifndef REG_EFLAGS
-#define REG_EFLAGS (REG_UNKNOWN-9)
-#endif
-#ifndef REG_EDELIM
-#define REG_EDELIM (REG_UNKNOWN-9)
-#endif
-
-static const struct { int code; char* name; } codes[] =
-{
- {REG_UNKNOWN, "UNKNOWN"},
- {REG_NOMATCH, "NOMATCH"},
- {REG_BADPAT, "BADPAT"},
- {REG_ECOLLATE, "ECOLLATE"},
- {REG_ECTYPE, "ECTYPE"},
- {REG_EESCAPE, "EESCAPE"},
- {REG_ESUBREG, "ESUBREG"},
- {REG_EBRACK, "EBRACK"},
- {REG_EPAREN, "EPAREN"},
- {REG_EBRACE, "EBRACE"},
- {REG_BADBR, "BADBR"},
- {REG_ERANGE, "ERANGE"},
- {REG_ESPACE, "ESPACE"},
- {REG_BADRPT, "BADRPT"},
- {REG_ENEWLINE, "ENEWLINE"},
- {REG_ENULL, "ENULL"},
- {REG_ECOUNT, "ECOUNT"},
- {REG_BADESC, "BADESC"},
- {REG_EMEM, "EMEM"},
- {REG_EHUNG, "EHUNG"},
- {REG_EBUS, "EBUS"},
- {REG_EFAULT, "EFAULT"},
- {REG_EFLAGS, "EFLAGS"},
- {REG_EDELIM, "EDELIM"},
-};
-
-static struct
-{
- regmatch_t NOMATCH;
- int errors;
- int extracted;
- int ignored;
- int lineno;
- int passed;
- int signals;
- int unspecified;
- int verify;
- int warnings;
- char* file;
- char* stack;
- char* which;
- jmp_buf gotcha;
-#ifdef REG_DISCIPLINE
- Disc_t disc;
-#endif
-} state;
-
-static void
-quote(char* s, int len, unsigned long test)
-{
- unsigned char* u = (unsigned char*)s;
- unsigned char* e;
- int c;
-
- if (!u)
- printf("NIL");
- else if (!*u && len <= 1)
- printf("NULL");
- else if (test & TEST_EXPAND)
- {
- if (len < 0)
- len = strlen((char*)u);
- e = u + len;
- if (test & TEST_DELIMIT)
- printf("\"");
- while (u < e)
- switch (c = *u++)
- {
- case '\\':
- printf("\\\\");
- break;
- case '"':
- if (test & TEST_DELIMIT)
- printf("\\\"");
- else
- printf("\"");
- break;
- case '\a':
- printf("\\a");
- break;
- case '\b':
- printf("\\b");
- break;
- case 033:
- printf("\\e");
- break;
- case '\f':
- printf("\\f");
- break;
- case '\n':
- printf("\\n");
- break;
- case '\r':
- printf("\\r");
- break;
- case '\t':
- printf("\\t");
- break;
- case '\v':
- printf("\\v");
- break;
- default:
- if (!iscntrl(c) && isprint(c))
- putchar(c);
- else
- printf("\\x%02x", c);
- break;
- }
- if (test & TEST_DELIMIT)
- printf("\"");
- }
- else
- printf("%s", s);
-}
-
-static void
-report(char* comment, char* fun, char* re, char* s, int len, char* msg, int flags,
unsigned long test)
-{
- if (state.file)
- printf("%s:", state.file);
- printf("%d:", state.lineno);
- if (re)
- {
- printf(" ");
- quote(re, -1, test|TEST_DELIMIT);
- if (s)
- {
- printf(" versus ");
- quote(s, len, test|TEST_DELIMIT);
- }
- }
- if (test & TEST_UNSPECIFIED)
- {
- state.unspecified++;
- printf(" unspecified behavior");
- }
- else
- state.errors++;
- if (state.which)
- printf(" %s", state.which);
- if (flags & REG_NOSUB)
- printf(" NOSUB");
- if (fun)
- printf(" %s", fun);
- if (comment[strlen(comment)-1] == '\n')
- printf(" %s", comment);
- else
- {
- printf(" %s: ", comment);
- if (msg)
- printf("%s: ", msg);
- }
-}
-
-static void
-error(regex_t* preg, int code)
-{
- char* msg;
- char buf[256];
-
- switch (code)
- {
- case REG_EBUS:
- msg = "bus error";
- break;
- case REG_EFAULT:
- msg = "memory fault";
- break;
- case REG_EHUNG:
- msg = "did not terminate";
- break;
- default:
- regerror(code, preg, msg = buf, sizeof buf);
- break;
- }
- printf("%s\n", msg);
-}
-
-static void
-bad(char* comment, char* re, char* s, int len, unsigned long test)
-{
- printf("bad test case ");
- report(comment, NiL, re, s, len, NiL, 0, test);
- exit(1);
-}
-
-static int
-escape(char* s)
-{
- char* b;
- char* t;
- char* q;
- char* e;
- int c;
-
- for (b = t = s; (*t = *s); s++, t++)
- if (*s == '\\')
- switch (*++s)
- {
- case '\\':
- break;
- case 'a':
- *t = '\a';
- break;
- case 'b':
- *t = '\b';
- break;
- case 'c':
- if ((*t = *++s))
- *t &= 037;
- else
- s--;
- break;
- case 'e':
- case 'E':
- *t = 033;
- break;
- case 'f':
- *t = '\f';
- break;
- case 'n':
- *t = '\n';
- break;
- case 'r':
- *t = '\r';
- break;
- case 's':
- *t = ' ';
- break;
- case 't':
- *t = '\t';
- break;
- case 'v':
- *t = '\v';
- break;
- case 'u':
- case 'x':
- c = 0;
- q = c == 'u' ? (s + 5) : (char*)0;
- e = s + 1;
- while (!e || !q || s < q)
- {
- switch (*++s)
- {
- case 'a': case 'b': case 'c': case 'd': case
'e': case 'f':
- c = (c << 4) + *s - 'a' + 10;
- continue;
- case 'A': case 'B': case 'C': case 'D': case
'E': case 'F':
- c = (c << 4) + *s - 'A' + 10;
- continue;
- case '0': case '1': case '2': case '3': case
'4':
- case '5': case '6': case '7': case '8': case
'9':
- c = (c << 4) + *s - '0';
- continue;
- case '{':
- case '[':
- if (s != e)
- {
- s--;
- break;
- }
- e = 0;
- continue;
- case '}':
- case ']':
- if (e)
- s--;
- break;
- default:
- s--;
- break;
- }
- break;
- }
- *t = c;
- break;
- case '0': case '1': case '2': case '3':
- case '4': case '5': case '6': case '7':
- c = *s - '0';
- q = s + 2;
- while (s < q)
- {
- switch (*++s)
- {
- case '0': case '1': case '2': case '3':
- case '4': case '5': case '6': case '7':
- c = (c << 3) + *s - '0';
- break;
- default:
- q = --s;
- break;
- }
- }
- *t = c;
- break;
- default:
- *(s + 1) = 0;
- bad("invalid C \\ escape\n", s - 1, NiL, 0, 0);
- }
- return t - b;
-}
-
-static void
-matchoffprint(int off)
-{
- switch (off)
- {
- case -2:
- printf("X");
- break;
- case -1:
- printf("?");
- break;
- default:
- printf("%d", off);
- break;
- }
-}
-
-static void
-matchprint(regmatch_t* match, int nmatch, int nsub, char* ans, unsigned long test)
-{
- int i;
-
- for (; nmatch > nsub + 1; nmatch--)
- if ((match[nmatch-1].rm_so != -1 || match[nmatch-1].rm_eo != -1) && (!(test
& TEST_IGNORE_POSITION) || (match[nmatch-1].rm_so >= 0 &&
match[nmatch-1].rm_eo >= 0)))
- break;
- for (i = 0; i < nmatch; i++)
- {
- printf("(");
- matchoffprint(match[i].rm_so);
- printf(",");
- matchoffprint(match[i].rm_eo);
- printf(")");
- }
- if (!(test & (TEST_ACTUAL|TEST_BASELINE)))
- {
- if (ans)
- printf(" expected: %s", ans);
- printf("\n");
- }
-}
-
-static int
-matchcheck(regmatch_t* match, int nmatch, int nsub, char* ans, char* re, char* s, int
len, int flags, unsigned long test)
-{
- char* p;
- int i;
- int m;
- int n;
-
- if (streq(ans, "OK"))
- return test & (TEST_BASELINE|TEST_PASS|TEST_VERIFY);
- for (i = 0, p = ans; i < nmatch && *p; i++)
- {
- if (*p == '{')
- {
-#ifdef REG_DISCIPLINE
- char* x;
-
- x = sfstruse(state.disc.sp);
- if (strcmp(p, x))
- {
- if (test &
(TEST_ACTUAL|TEST_BASELINE|TEST_FAIL|TEST_PASS|TEST_QUERY|TEST_SUMMARY|TEST_VERIFY))
- return 0;
- report("callout failed", NiL, re, s, len, NiL, flags, test);
- quote(p, -1, test);
- printf(" expected, ");
- quote(x, -1, test);
- printf(" returned\n");
- }
-#endif
- break;
- }
- if (*p++ != '(')
- bad("improper answer\n", re, s, -1, test);
- if (*p == '?')
- {
- m = -1;
- p++;
- }
- else
- m = strtol(p, &p, 10);
- if (*p++ != ',')
- bad("improper answer\n", re, s, -1, test);
- if (*p == '?')
- {
- n = -1;
- p++;
- }
- else
- n = strtol(p, &p, 10);
- if (*p++ != ')')
- bad("improper answer\n", re, s, -1, test);
- if (m!=match[i].rm_so || n!=match[i].rm_eo)
- {
- if (!(test &
(TEST_ACTUAL|TEST_BASELINE|TEST_FAIL|TEST_PASS|TEST_QUERY|TEST_SUMMARY|TEST_VERIFY)))
- {
- report("failed: match was", NiL, re, s, len, NiL, flags, test);
- matchprint(match, nmatch, nsub, ans, test);
- }
- return 0;
- }
- }
- for (; i < nmatch; i++)
- {
- if (match[i].rm_so!=-1 || match[i].rm_eo!=-1)
- {
- if (!(test &
(TEST_ACTUAL|TEST_BASELINE|TEST_FAIL|TEST_PASS|TEST_QUERY|TEST_VERIFY)))
- {
- if ((test & TEST_IGNORE_POSITION) && (match[i].rm_so<0 ||
match[i].rm_eo<0))
- {
- state.ignored++;
- return 0;
- }
- if (!(test & TEST_SUMMARY))
- {
- report("failed: match was", NiL, re, s, len, NiL, flags, test);
- matchprint(match, nmatch, nsub, ans, test);
- }
- }
- return 0;
- }
- }
- if (!(test & TEST_IGNORE_OVER) && match[nmatch].rm_so !=
state.NOMATCH.rm_so)
- {
- if (!(test &
(TEST_ACTUAL|TEST_BASELINE|TEST_FAIL|TEST_PASS|TEST_QUERY|TEST_SUMMARY|TEST_VERIFY)))
- {
- report("failed: overran match array", NiL, re, s, len, NiL, flags, test);
- matchprint(match, nmatch + 1, nsub, NiL, test);
- }
- return 0;
- }
- return 1;
-}
-
-static void
-sigunblock(int s)
-{
-#ifdef SIG_SETMASK
- int op;
- sigset_t mask;
-
- sigemptyset(&mask);
- if (s)
- {
- sigaddset(&mask, s);
- op = SIG_UNBLOCK;
- }
- else op = SIG_SETMASK;
- sigprocmask(op, &mask, NiL);
-#else
-#ifdef sigmask
- sigsetmask(s ? (sigsetmask(0L) & ~sigmask(s)) : 0L);
-#endif
-#endif
-}
-
-static void
-gotcha(int sig)
-{
- int ret;
-
- signal(sig, gotcha);
- alarm(0);
- state.signals++;
- switch (sig)
- {
- case SIGALRM:
- ret = REG_EHUNG;
- break;
- case SIGBUS:
- ret = REG_EBUS;
- break;
- default:
- ret = REG_EFAULT;
- break;
- }
- sigunblock(sig);
- longjmp(state.gotcha, ret);
-}
-
-static char*
-my_getline(FILE* fp)
-{
- static char buf[32 * 1024];
-
- register char* s = buf;
- register char* e = &buf[sizeof(buf)];
- register char* b;
-
- for (;;)
- {
- if (!(b = fgets(s, e - s, fp)))
- return 0;
- state.lineno++;
- s += strlen(s);
- if (s == b || *--s != '\n' || s == b || *(s - 1) != '\\')
- {
- *s = 0;
- break;
- }
- s--;
- }
- return buf;
-}
-
-static unsigned long
-note(unsigned long level, char* msg, unsigned long skip, unsigned long test)
-{
- if (!(test & (TEST_ACTUAL|TEST_BASELINE|TEST_FAIL|TEST_PASS|TEST_SUMMARY))
&& !skip)
- {
- printf("NOTE\t");
- if (msg)
- printf("%s: ", msg);
- printf("skipping lines %d", state.lineno);
- }
- return skip | level;
-}
-
-#define TABS(n) &ts[7-((n)&7)]
-
-static char ts[] = "\t\t\t\t\t\t\t";
-
-static unsigned long
-extract(int* tabs, char* spec, char* re, char* s, char* ans, char* msg, char* accept,
regmatch_t* match, int nmatch, int nsub, unsigned long skip, unsigned long level, unsigned
long test)
-{
- if (test & (TEST_ACTUAL|TEST_BASELINE|TEST_FAIL|TEST_OK|TEST_PASS|TEST_SUMMARY))
- {
- state.extracted = 1;
- if (test & TEST_OK)
- {
- state.passed++;
- if ((test & TEST_VERIFY) && !(test &
(TEST_ACTUAL|TEST_BASELINE|TEST_FAIL|TEST_PASS|TEST_SUMMARY)))
- {
- if (msg && strcmp(msg, "EXPECTED"))
- printf("NOTE\t%s\n", msg);
- return skip;
- }
- test &= ~(TEST_PASS|TEST_QUERY);
- }
- if (test & (TEST_QUERY|TEST_VERIFY))
- {
- if (test & TEST_BASELINE)
- test &= ~(TEST_BASELINE|TEST_PASS);
- else
- test |= TEST_PASS;
- skip |= level;
- }
- if (!(test & TEST_OK))
- {
- if (test & TEST_UNSPECIFIED)
- state.unspecified++;
- else
- state.errors++;
- }
- if (test & (TEST_PASS|TEST_SUMMARY))
- return skip;
- test &= ~TEST_DELIMIT;
- printf("%s%s", spec, TABS(*tabs++));
- if ((test & (TEST_BASELINE|TEST_SAME)) == (TEST_BASELINE|TEST_SAME))
- printf("SAME");
- else
- quote(re, -1, test);
- printf("%s", TABS(*tabs++));
- quote(s, -1, test);
- printf("%s", TABS(*tabs++));
- if (!(test & (TEST_ACTUAL|TEST_BASELINE)) || (!accept && !match))
- printf("%s", ans);
- else if (accept)
- printf("%s", accept);
- else
- matchprint(match, nmatch, nsub, NiL, test);
- if (msg)
- printf("%s%s", TABS(*tabs++), msg);
- putchar('\n');
- }
- else if (test & TEST_QUERY)
- skip = note(level, msg, skip, test);
- else if (test & TEST_VERIFY)
- state.extracted = 1;
- return skip;
-}
-
-static int
-catchfree(regex_t* preg, int flags, int* tabs, char* spec, char* re, char* s, char* ans,
char* msg, char* accept, regmatch_t* match, int nmatch, int nsub, unsigned long skip,
unsigned long level, unsigned long test)
-{
- int eret;
-
- if (!(test & TEST_CATCH))
- {
- regfree(preg);
- eret = 0;
- }
- else if (!(eret = setjmp(state.gotcha)))
- {
- alarm(HUNG);
- regfree(preg);
- alarm(0);
- }
- else if (test &
(TEST_ACTUAL|TEST_BASELINE|TEST_FAIL|TEST_PASS|TEST_QUERY|TEST_SUMMARY|TEST_VERIFY))
- extract(tabs, spec, re, s, ans, msg, NiL, NiL, 0, 0, skip, level, test);
- else
- {
- report("failed", "regfree", re, NiL, -1, msg, flags, test);
- error(preg, eret);
- }
- return eret;
-}
-
-int
-old_main(int unused_param_argc, char** argv)
-{
- int flags;
- int cflags;
- int eflags;
- int nmatch;
- int nexec;
- int nstr;
- int cret;
- int eret;
- int nsub;
- int i;
- int j;
- int expected;
- int got;
- int locale;
- int subunitlen = 0;
- int testno;
- unsigned long level;
- unsigned long skip;
- char* p;
- char* line;
- char* spec;
- char* re;
- char* s;
- char* ans;
- char* msg;
- char* fun;
- char* ppat = NULL;
- char* subunit = NULL;
- char* version;
- char* field[6];
- char* delim[6];
- FILE* fp;
- int tabs[6];
- char unit[64];
- regmatch_t match[100];
- regex_t preg;
-
- static char pat[32 * 1024];
-
- int nonosub = REG_NOSUB == 0;
- int nonexec = 0;
-
- unsigned long test = 0;
-
- static char* filter[] = { "-", 0 };
-
- state.NOMATCH.rm_so = state.NOMATCH.rm_eo = -2;
- p = unit;
- version = (char*)id + 10;
- while (p < &unit[sizeof(unit)-1] && (*p = *version++) &&
!isspace(*p))
- p++;
- *p = 0;
- while ((p = *++argv) && *p == '-')
- for (;;)
- {
- switch (*++p)
- {
- case 0:
- break;
- case 'c':
- test |= TEST_CATCH;
- continue;
- case 'e':
- test |= TEST_IGNORE_ERROR;
- continue;
- case 'h':
- case '?':
- help(0);
- return 2;
- case '-':
- help(p[1] == 'h');
- return 2;
- case 'n':
- nonexec = 1;
- continue;
- case 'o':
- test |= TEST_IGNORE_OVER;
- continue;
- case 'p':
- test |= TEST_IGNORE_POSITION;
- continue;
- case 's':
-#ifdef REG_DISCIPLINE
- if (!(state.stack = stkalloc(stkstd, 0)))
- fprintf(stderr, "%s: out of space [stack]", unit);
- state.disc.disc.re_resizef = resizef;
- state.disc.disc.re_resizehandle = (void*)stkstd;
-#endif
- continue;
- case 'x':
- nonosub = 1;
- continue;
- case 'v':
- test |= TEST_VERBOSE;
- continue;
- case 'A':
- test |= TEST_ACTUAL;
- continue;
- case 'B':
- test |= TEST_BASELINE;
- continue;
- case 'F':
- test |= TEST_FAIL;
- continue;
- case 'P':
- test |= TEST_PASS;
- continue;
- case 'S':
- test |= TEST_SUMMARY;
- continue;
- default:
- fprintf(stderr, "%s: %c: invalid option\n", unit, *p);
- return 2;
- }
- break;
- }
- if (!*argv)
- argv = filter;
- locale = 0;
- while ((state.file = *argv++))
- {
- if (streq(state.file, "-") || streq(state.file, "/dev/stdin") ||
streq(state.file, "/dev/fd/0"))
- {
- state.file = 0;
- fp = stdin;
- }
- else if (!(fp = fopen(state.file, "r")))
- {
- fprintf(stderr, "%s: %s: cannot read\n", unit, state.file);
- return 2;
- }
- testno = state.errors = state.ignored = state.lineno = state.passed =
- state.signals = state.unspecified = state.warnings = 0;
- skip = 0;
- level = 1;
- if (!(test & (TEST_ACTUAL|TEST_BASELINE|TEST_FAIL|TEST_PASS|TEST_SUMMARY)))
- {
- printf("TEST\t%s ", unit);
- if ((s = state.file))
- {
- subunit = p = 0;
- for (;;)
- {
- switch (*s++)
- {
- case 0:
- break;
- case '/':
- subunit = s;
- continue;
- case '.':
- p = s - 1;
- continue;
- default:
- continue;
- }
- break;
- }
- if (!subunit)
- subunit = state.file;
- if (p < subunit)
- p = s - 1;
- subunitlen = p - subunit;
- printf("%-.*s ", subunitlen, subunit);
- }
- else
- subunit = 0;
- for (s = version; *s && (*s != ' ' || *(s + 1) != '$'); s++)
- putchar(*s);
- if (test & TEST_CATCH)
- printf(", catch");
- if (test & TEST_IGNORE_ERROR)
- printf(", ignore error code mismatches");
- if (test & TEST_IGNORE_POSITION)
- printf(", ignore negative position mismatches");
-#ifdef REG_DISCIPLINE
- if (state.stack)
- printf(", stack");
-#endif
- if (test & TEST_VERBOSE)
- printf(", verbose");
- printf("\n");
-#ifdef REG_VERSIONID
- if (regerror(REG_VERSIONID, NiL, pat, sizeof(pat)) > 0)
- s = pat;
- else
-#endif
-#ifdef REG_TEST_VERSION
- s = REG_TEST_VERSION;
-#else
- s = "regex";
-#endif
- printf("NOTE\t%s\n", s);
- if (elementsof(unsupported) > 1)
- {
-#if (REG_TEST_DEFAULT & (REG_AUGMENTED|REG_EXTENDED|REG_SHELL)) ||
!defined(REG_EXTENDED)
- i = 0;
-#else
- i = REG_EXTENDED != 0;
-#endif
- for (got = 0; i < elementsof(unsupported) - 1; i++)
- {
- if (!got)
- {
- got = 1;
- printf("NOTE\tunsupported: %s", unsupported[i]);
- }
- else
- printf(",%s", unsupported[i]);
- }
- if (got)
- printf("\n");
- }
- }
-#ifdef REG_DISCIPLINE
- state.disc.disc.re_version = REG_VERSION;
- state.disc.disc.re_compf = compf;
- state.disc.disc.re_execf = execf;
- if (!(state.disc.sp = sfstropen()))
- bad("out of space [discipline string stream]\n", NiL, NiL, 0, 0);
- preg.re_disc = &state.disc.disc;
-#endif
- if (test & TEST_CATCH)
- {
- signal(SIGALRM, gotcha);
- signal(SIGBUS, gotcha);
- signal(SIGSEGV, gotcha);
- }
- while ((p = my_getline(fp)))
- {
-
- /* parse: */
-
- line = p;
- if (*p == ':' && !isspace(*(p + 1)))
- {
- while (*++p && *p != ':');
- if (!*p++)
- {
- if (test & TEST_BASELINE)
- printf("%s\n", line);
- continue;
- }
- }
- while (isspace(*p))
- p++;
- if (*p == 0 || *p == '#' || *p == 'T')
- {
- if (test & TEST_BASELINE)
- printf("%s\n", line);
- continue;
- }
- if (*p == ':' || *p == 'N')
- {
- if (test & TEST_BASELINE)
- printf("%s\n", line);
- else if (!(test & (TEST_ACTUAL|TEST_FAIL|TEST_PASS|TEST_SUMMARY)))
- {
- while (*++p && !isspace(*p));
- while (isspace(*p))
- p++;
- printf("NOTE %s\n", p);
- }
- continue;
- }
- j = 0;
- i = 0;
- field[i++] = p;
- for (;;)
- {
- switch (*p++)
- {
- case 0:
- p--;
- j = 0;
- goto checkfield;
- case '\t':
- *(delim[i] = p - 1) = 0;
- j = 1;
- checkfield:
- s = field[i - 1];
- if (streq(s, "NIL"))
- field[i - 1] = 0;
- else if (streq(s, "NULL"))
- *s = 0;
- while (*p == '\t')
- {
- p++;
- j++;
- }
- tabs[i - 1] = j;
- if (!*p)
- break;
- if (i >= elementsof(field))
- bad("too many fields\n", NiL, NiL, 0, 0);
- field[i++] = p;
- /*FALLTHROUGH*/
- default:
- continue;
- }
- break;
- }
- if (!(spec = field[0]))
- bad("NIL spec\n", NiL, NiL, 0, 0);
-
- /* interpret: */
-
- cflags = REG_TEST_DEFAULT;
- eflags = REG_EXEC_DEFAULT;
- test &= TEST_GLOBAL;
- state.extracted = 0;
- nmatch = 20;
- nsub = -1;
- for (p = spec; *p; p++)
- {
- if (isdigit(*p))
- {
- nmatch = strtol(p, &p, 10);
- if (nmatch >= elementsof(match))
- bad("nmatch must be < 100\n", NiL, NiL, 0, 0);
- p--;
- continue;
- }
- switch (*p)
- {
- case 'A':
- test |= TEST_ARE;
- continue;
- case 'B':
- test |= TEST_BRE;
- continue;
- case 'C':
- if (!(test & TEST_QUERY) && !(skip & level))
- bad("locale must be nested\n", NiL, NiL, 0, 0);
- test &= ~TEST_QUERY;
- if (locale)
- bad("locale nesting not supported\n", NiL, NiL, 0, 0);
- if (i != 2)
- bad("locale field expected\n", NiL, NiL, 0, 0);
- if (!(skip & level))
- {
-#if defined(LC_COLLATE) && defined(LC_CTYPE)
- s = field[1];
- if (!s || streq(s, "POSIX"))
- s = "C";
- if (!(ans = setlocale(LC_COLLATE, s)) || streq(ans, "C") || streq(ans,
"POSIX") || !(ans = setlocale(LC_CTYPE, s)) || streq(ans, "C") ||
streq(ans, "POSIX"))
- skip = note(level, s, skip, test);
- else
- {
- if (!(test & (TEST_ACTUAL|TEST_BASELINE|TEST_FAIL|TEST_PASS|TEST_SUMMARY)))
- printf("NOTE \"%s\" locale\n", s);
- locale = level;
- }
-#else
- skip = note(level, skip, test, "locales not supported");
-#endif
- }
- cflags = NOTEST;
- continue;
- case 'E':
- test |= TEST_ERE;
- continue;
- case 'K':
- test |= TEST_KRE;
- continue;
- case 'L':
- test |= TEST_LRE;
- continue;
- case 'S':
- test |= TEST_SRE;
- continue;
-
- case 'a':
- cflags |= REG_LEFT|REG_RIGHT;
- continue;
- case 'b':
- eflags |= REG_NOTBOL;
- continue;
- case 'c':
- cflags |= REG_COMMENT;
- continue;
- case 'd':
- cflags |= REG_SHELL_DOT;
- continue;
- case 'e':
- eflags |= REG_NOTEOL;
- continue;
- case 'f':
- cflags |= REG_MULTIPLE;
- continue;
- case 'g':
- cflags |= NOTEST;
- continue;
- case 'h':
- cflags |= REG_MULTIREF;
- continue;
- case 'i':
- cflags |= REG_ICASE;
- continue;
- case 'j':
- cflags |= REG_SPAN;
- continue;
- case 'k':
- cflags |= REG_ESCAPE;
- continue;
- case 'l':
- cflags |= REG_LEFT;
- continue;
- case 'm':
- cflags |= REG_MINIMAL;
- continue;
- case 'n':
- cflags |= REG_NEWLINE;
- continue;
- case 'o':
- cflags |= REG_SHELL_GROUP;
- continue;
- case 'p':
- cflags |= REG_SHELL_PATH;
- continue;
- case 'q':
- cflags |= REG_DELIMITED;
- continue;
- case 'r':
- cflags |= REG_RIGHT;
- continue;
- case 's':
- cflags |= REG_SHELL_ESCAPED;
- continue;
- case 't':
- cflags |= REG_MUSTDELIM;
- continue;
- case 'u':
- test |= TEST_UNSPECIFIED;
- continue;
- case 'w':
- cflags |= REG_NOSUB;
- continue;
- case 'x':
- if (REG_LENIENT)
- cflags |= REG_LENIENT;
- else
- test |= TEST_LENIENT;
- continue;
- case 'y':
- eflags |= REG_LEFT;
- continue;
- case 'z':
- cflags |= REG_NULL;
- continue;
-
- case '$':
- test |= TEST_EXPAND;
- continue;
-
- case '/':
- test |= TEST_SUB;
- continue;
-
- case '?':
- test |= TEST_VERIFY;
- test &= ~(TEST_AND|TEST_OR);
- state.verify = state.passed;
- continue;
- case '&':
- test |= TEST_VERIFY|TEST_AND;
- test &= ~TEST_OR;
- continue;
- case '|':
- test |= TEST_VERIFY|TEST_OR;
- test &= ~TEST_AND;
- continue;
- case ';':
- test |= TEST_OR;
- test &= ~TEST_AND;
- continue;
-
- case '{':
- level <<= 1;
- if (skip & (level >> 1))
- {
- skip |= level;
- cflags = NOTEST;
- }
- else
- {
- skip &= ~level;
- test |= TEST_QUERY;
- }
- continue;
- case '}':
- if (level == 1)
- bad("invalid {...} nesting\n", NiL, NiL, 0, 0);
- if ((skip & level) && !(skip & (level>>1)))
- {
- if (!(test & (TEST_BASELINE|TEST_SUMMARY)))
- {
- if (test & (TEST_ACTUAL|TEST_FAIL))
- printf("}\n");
- else if (!(test & TEST_PASS))
- printf("-%d\n", state.lineno);
- }
- }
-#if defined(LC_COLLATE) && defined(LC_CTYPE)
- else if (locale & level)
- {
- locale = 0;
- if (!(skip & level))
- {
- s = "C";
- setlocale(LC_COLLATE, s);
- setlocale(LC_CTYPE, s);
- if (!(test & (TEST_ACTUAL|TEST_BASELINE|TEST_FAIL|TEST_PASS|TEST_SUMMARY)))
- printf("NOTE \"%s\" locale\n", s);
- else if (test & (TEST_ACTUAL|TEST_BASELINE|TEST_PASS))
- printf("}\n");
- }
- else if (test & (TEST_ACTUAL|TEST_BASELINE|TEST_FAIL))
- printf("}\n");
- }
-#endif
- level >>= 1;
- cflags = NOTEST;
- continue;
-
- default:
- bad("bad spec\n", spec, NiL, 0, test);
- break;
-
- }
- break;
- }
- if ((cflags|eflags) == NOTEST || ((skip & level) && (test &
TEST_BASELINE)))
- {
- if (test & TEST_BASELINE)
- {
- while (i > 1)
- *delim[--i] = '\t';
- printf("%s\n", line);
- }
- continue;
- }
- if (test & TEST_OR)
- {
- if (!(test & TEST_VERIFY))
- {
- test &= ~TEST_OR;
- if (state.passed == state.verify && i > 1)
- printf("NOTE\t%s\n", field[1]);
- continue;
- }
- else if (state.passed > state.verify)
- continue;
- }
- else if (test & TEST_AND)
- {
- if (state.passed == state.verify)
- continue;
- state.passed = state.verify;
- }
- if (i < 4)
- bad("too few fields\n", NiL, NiL, 0, test);
- while (i < elementsof(field))
- field[i++] = 0;
- if ((re = field[1]))
- {
- if (streq(re, "SAME"))
- {
- re = ppat;
- test |= TEST_SAME;
- }
- else
- {
- if (test & TEST_EXPAND)
- escape(re);
- strcpy(ppat = pat, re);
- }
- }
- else
- ppat = 0;
- nstr = -1;
- if ((s = field[2]) && (test & TEST_EXPAND))
- {
- nstr = escape(s);
-#if _REG_nexec
- if (nstr != strlen(s))
- nexec = nstr;
-#endif
- }
- if (!(ans = field[3]))
- bad("NIL answer\n", NiL, NiL, 0, test);
- msg = field[4];
- fflush(stdout);
- if (test & TEST_SUB)
-#if _REG_subcomp
- cflags |= REG_DELIMITED;
-#else
- continue;
-#endif
-
- compile:
-
- if (state.extracted || (skip & level))
- continue;
-#if !(REG_TEST_DEFAULT & (REG_AUGMENTED|REG_EXTENDED|REG_SHELL))
-#ifdef REG_EXTENDED
- if (REG_EXTENDED != 0 && (test & TEST_BRE))
-#else
- if (test & TEST_BRE)
-#endif
- {
- test &= ~TEST_BRE;
- flags = cflags;
- state.which = "BRE";
- }
- else
-#endif
-#ifdef REG_EXTENDED
- if (test & TEST_ERE)
- {
- test &= ~TEST_ERE;
- flags = cflags | REG_EXTENDED;
- state.which = "ERE";
- }
- else
-#endif
-#ifdef REG_AUGMENTED
- if (test & TEST_ARE)
- {
- test &= ~TEST_ARE;
- flags = cflags | REG_AUGMENTED;
- state.which = "ARE";
- }
- else
-#endif
-#ifdef REG_LITERAL
- if (test & TEST_LRE)
- {
- test &= ~TEST_LRE;
- flags = cflags | REG_LITERAL;
- state.which = "LRE";
- }
- else
-#endif
-#ifdef REG_SHELL
- if (test & TEST_SRE)
- {
- test &= ~TEST_SRE;
- flags = cflags | REG_SHELL;
- state.which = "SRE";
- }
- else
-#ifdef REG_AUGMENTED
- if (test & TEST_KRE)
- {
- test &= ~TEST_KRE;
- flags = cflags | REG_SHELL | REG_AUGMENTED;
- state.which = "KRE";
- }
- else
-#endif
-#endif
- {
- if (test & (TEST_BASELINE|TEST_PASS|TEST_VERIFY))
- extract(tabs, line, re, s, ans, msg, NiL, NiL, 0, 0, skip, level, test|TEST_OK);
- continue;
- }
- if ((test & (TEST_QUERY|TEST_VERBOSE|TEST_VERIFY)) == TEST_VERBOSE)
- {
- printf("test %-3d %s ", state.lineno, state.which);
- quote(re, -1, test|TEST_DELIMIT);
- printf(" ");
- quote(s, nstr, test|TEST_DELIMIT);
- printf("\n");
- }
-
- nosub:
- fun = "regcomp";
-#if _REG_nexec
- if (nstr >= 0 && nstr != strlen(s))
- nexec = nstr;
-
- else
-#endif
- nexec = -1;
- if (state.extracted || (skip & level))
- continue;
- if (!(test & TEST_QUERY))
- testno++;
-#ifdef REG_DISCIPLINE
- if (state.stack)
- stkset(stkstd, state.stack, 0);
- flags |= REG_DISCIPLINE;
- state.disc.ordinal = 0;
- sfstrseek(state.disc.sp, 0, SEEK_SET);
-#endif
- if (!(test & TEST_CATCH))
- cret = regcomp(&preg, re, flags);
- else if (!(cret = setjmp(state.gotcha)))
- {
- alarm(HUNG);
- cret = regcomp(&preg, re, flags);
- alarm(0);
- }
-#if _REG_subcomp
- if (!cret && (test & TEST_SUB))
- {
- fun = "regsubcomp";
- p = re + preg.re_npat;
- if (!(test & TEST_CATCH))
- cret = regsubcomp(&preg, p, NiL, 0, 0);
- else if (!(cret = setjmp(state.gotcha)))
- {
- alarm(HUNG);
- cret = regsubcomp(&preg, p, NiL, 0, 0);
- alarm(0);
- }
- if (!cret && *(p += preg.re_npat) && !(preg.re_sub->re_flags &
REG_SUB_LAST))
- {
- if (catchfree(&preg, flags, tabs, line, re, s, ans, msg, NiL, NiL, 0, 0, skip,
level, test))
- continue;
- cret = REG_EFLAGS;
- }
- }
-#endif
- if (!cret)
- {
- if (!(flags & REG_NOSUB) && nsub < 0 && *ans == '(')
- {
- for (p = ans; *p; p++)
- if (*p == '(')
- nsub++;
- else if (*p == '{')
- nsub--;
- if (nsub >= 0)
- {
- if (test & TEST_IGNORE_OVER)
- {
- if (nmatch > nsub)
- nmatch = nsub + 1;
- }
- else if (nsub != preg.re_nsub)
- {
- if (nsub > preg.re_nsub)
- {
- if (test &
(TEST_ACTUAL|TEST_BASELINE|TEST_FAIL|TEST_PASS|TEST_QUERY|TEST_SUMMARY|TEST_VERIFY))
- skip = extract(tabs, line, re, s, ans, msg, "OK", NiL, 0, 0, skip,
level, test|TEST_DELIMIT);
- else
- {
- report("re_nsub incorrect", fun, re, NiL, -1, msg, flags, test);
- printf("at least %d expected, %zd returned\n", nsub, preg.re_nsub);
- state.errors++;
- }
- }
- else
- nsub = preg.re_nsub;
- }
- }
- }
- if (!(test & TEST_SUB) && *ans && *ans != '(' &&
!streq(ans, "OK") && !streq(ans, "NOMATCH"))
- {
- if (test &
(TEST_ACTUAL|TEST_BASELINE|TEST_FAIL|TEST_PASS|TEST_QUERY|TEST_SUMMARY|TEST_VERIFY))
- skip = extract(tabs, line, re, s, ans, msg, "OK", NiL, 0, 0, skip, level,
test|TEST_DELIMIT);
- else if (!(test & TEST_LENIENT))
- {
- report("failed", fun, re, NiL, -1, msg, flags, test);
- printf("%s expected, OK returned\n", ans);
- }
- catchfree(&preg, flags, tabs, line, re, s, ans, msg, NiL, NiL, 0, 0, skip,
level, test);
- continue;
- }
- }
- else
- {
- if (test & TEST_LENIENT)
- /* we'll let it go this time */;
- else if (!*ans || ans[0]=='(' || (cret == REG_BADPAT && streq(ans,
"NOMATCH")))
- {
- got = 0;
- for (i = 1; i < elementsof(codes); i++)
- if (cret==codes[i].code)
- got = i;
- if (test &
(TEST_ACTUAL|TEST_BASELINE|TEST_FAIL|TEST_PASS|TEST_QUERY|TEST_SUMMARY|TEST_VERIFY))
- skip = extract(tabs, line, re, s, ans, msg, codes[got].name, NiL, 0, 0, skip,
level, test|TEST_DELIMIT);
- else
- {
- report("failed", fun, re, NiL, -1, msg, flags, test);
- printf("%s returned: ", codes[got].name);
- error(&preg, cret);
- }
- }
- else
- {
- expected = got = 0;
- for (i = 1; i < elementsof(codes); i++)
- {
- if (streq(ans, codes[i].name))
- expected = i;
- if (cret==codes[i].code)
- got = i;
- }
- if (!expected)
- {
- if (test &
(TEST_ACTUAL|TEST_BASELINE|TEST_FAIL|TEST_PASS|TEST_QUERY|TEST_SUMMARY|TEST_VERIFY))
- skip = extract(tabs, line, re, s, ans, msg, codes[got].name, NiL, 0, 0, skip,
level, test|TEST_DELIMIT);
- else
- {
- report("failed: invalid error code", NiL, re, NiL, -1, msg, flags,
test);
- printf("%s expected, %s returned\n", ans, codes[got].name);
- }
- }
- else if (cret != codes[expected].code && cret != REG_BADPAT)
- {
- if (test &
(TEST_ACTUAL|TEST_BASELINE|TEST_FAIL|TEST_PASS|TEST_QUERY|TEST_SUMMARY|TEST_VERIFY))
- skip = extract(tabs, line, re, s, ans, msg, codes[got].name, NiL, 0, 0, skip,
level, test|TEST_DELIMIT);
- else if (test & TEST_IGNORE_ERROR)
- state.ignored++;
- else
- {
- report("should fail and did", fun, re, NiL, -1, msg, flags, test);
- printf("%s expected, %s returned: ", ans, codes[got].name);
- state.errors--;
- state.warnings++;
- error(&preg, cret);
- }
- }
- }
- goto compile;
- }
-
-#if _REG_nexec
- execute:
- if (nexec >= 0)
- fun = "regnexec";
- else
-#endif
- fun = "regexec";
-
- for (i = 0; i < elementsof(match); i++)
- match[i] = state.NOMATCH;
-
-#if _REG_nexec
- if (nexec >= 0)
- {
- eret = regnexec(&preg, s, nexec, nmatch, match, eflags);
- s[nexec] = 0;
- }
- else
-#endif
- {
- if (!(test & TEST_CATCH))
- eret = regexec(&preg, s, nmatch, match, eflags);
- else if (!(eret = setjmp(state.gotcha)))
- {
- alarm(HUNG);
- eret = regexec(&preg, s, nmatch, match, eflags);
- alarm(0);
- }
- }
-#if _REG_subcomp
- if ((test & TEST_SUB) && !eret)
- {
- fun = "regsubexec";
- if (!(test & TEST_CATCH))
- eret = regsubexec(&preg, s, nmatch, match);
- else if (!(eret = setjmp(state.gotcha)))
- {
- alarm(HUNG);
- eret = regsubexec(&preg, s, nmatch, match);
- alarm(0);
- }
- }
-#endif
- if (flags & REG_NOSUB)
- {
- if (eret)
- {
- if (eret != REG_NOMATCH || !streq(ans, "NOMATCH"))
- {
- if (test &
(TEST_ACTUAL|TEST_BASELINE|TEST_FAIL|TEST_PASS|TEST_QUERY|TEST_SUMMARY|TEST_VERIFY))
- skip = extract(tabs, line, re, s, ans, msg, "NOMATCH", NiL, 0, 0, skip,
level, test|TEST_DELIMIT);
- else
- {
- report("REG_NOSUB failed", fun, re, s, nstr, msg, flags, test);
- error(&preg, eret);
- }
- }
- }
- else if (streq(ans, "NOMATCH"))
- {
- if (test &
(TEST_ACTUAL|TEST_BASELINE|TEST_FAIL|TEST_PASS|TEST_QUERY|TEST_SUMMARY|TEST_VERIFY))
- skip = extract(tabs, line, re, s, ans, msg, NiL, match, nmatch, nsub, skip, level,
test|TEST_DELIMIT);
- else
- {
- report("should fail and didn't", fun, re, s, nstr, msg, flags,
test);
- error(&preg, eret);
- }
- }
- }
- else if (eret)
- {
- if (eret != REG_NOMATCH || !streq(ans, "NOMATCH"))
- {
- if (test &
(TEST_ACTUAL|TEST_BASELINE|TEST_FAIL|TEST_PASS|TEST_QUERY|TEST_SUMMARY|TEST_VERIFY))
- skip = extract(tabs, line, re, s, ans, msg, "NOMATCH", NiL, 0, nsub,
skip, level, test|TEST_DELIMIT);
- else
- {
- report("failed", fun, re, s, nstr, msg, flags, test);
- if (eret != REG_NOMATCH)
- error(&preg, eret);
- else if (*ans)
- printf("expected: %s\n", ans);
- else
- printf("\n");
- }
- }
- }
- else if (streq(ans, "NOMATCH"))
- {
- if (test &
(TEST_ACTUAL|TEST_BASELINE|TEST_FAIL|TEST_PASS|TEST_QUERY|TEST_SUMMARY|TEST_VERIFY))
- skip = extract(tabs, line, re, s, ans, msg, NiL, match, nmatch, nsub, skip, level,
test|TEST_DELIMIT);
- else
- {
- report("should fail and didn't", fun, re, s, nstr, msg, flags, test);
- matchprint(match, nmatch, nsub, NiL, test);
- }
- }
-#if _REG_subcomp
- else if (test & TEST_SUB)
- {
- p = preg.re_sub->re_buf;
- if (strcmp(p, ans))
- {
- report("failed", fun, re, s, nstr, msg, flags, test);
- quote(ans, -1, test|TEST_DELIMIT);
- printf(" expected, ");
- quote(p, -1, test|TEST_DELIMIT);
- printf(" returned\n");
- }
- }
-#endif
- else if (!*ans)
- {
- if (match[0].rm_so != state.NOMATCH.rm_so)
- {
- if (test &
(TEST_ACTUAL|TEST_BASELINE|TEST_FAIL|TEST_PASS|TEST_QUERY|TEST_SUMMARY|TEST_VERIFY))
- skip = extract(tabs, line, re, s, ans, msg, NiL, NiL, 0, 0, skip, level, test);
- else
- {
- report("failed: no match but match array assigned", NiL, re, s, nstr,
msg, flags, test);
- matchprint(match, nmatch, nsub, NiL, test);
- }
- }
- }
- else if (matchcheck(match, nmatch, nsub, ans, re, s, nstr, flags, test))
- {
-#if _REG_nexec
- if (nexec < 0 && !nonexec)
- {
- nexec = nstr >= 0 ? nstr : strlen(s);
- s[nexec] = '\n';
- testno++;
- goto execute;
- }
-#endif
- if (!(test & (TEST_SUB|TEST_VERIFY)) && !nonosub)
- {
- if (catchfree(&preg, flags, tabs, line, re, s, ans, msg, NiL, NiL, 0, 0, skip,
level, test))
- continue;
- flags |= REG_NOSUB;
- goto nosub;
- }
- if (test & (TEST_BASELINE|TEST_PASS|TEST_VERIFY))
- skip = extract(tabs, line, re, s, ans, msg, NiL, match, nmatch, nsub, skip, level,
test|TEST_OK);
- }
- else if (test &
(TEST_ACTUAL|TEST_BASELINE|TEST_FAIL|TEST_PASS|TEST_QUERY|TEST_SUMMARY|TEST_VERIFY))
- skip = extract(tabs, line, re, s, ans, msg, NiL, match, nmatch, nsub, skip, level,
test|TEST_DELIMIT);
- if (catchfree(&preg, flags, tabs, line, re, s, ans, msg, NiL, NiL, 0, 0, skip,
level, test))
- continue;
- goto compile;
- }
- if (test & TEST_SUMMARY)
- printf("tests=%-4d errors=%-4d warnings=%-2d ignored=%-2d unspecified=%-2d
signals=%d\n", testno, state.errors, state.warnings, state.ignored,
state.unspecified, state.signals);
- else if (!(test & (TEST_ACTUAL|TEST_BASELINE|TEST_FAIL|TEST_PASS)))
- {
- printf("TEST\t%s", unit);
- if (subunit)
- printf(" %-.*s", subunitlen, subunit);
- printf(", %d test%s", testno, testno == 1 ? "" : "s");
- if (state.ignored)
- printf(", %d ignored mismatch%s", state.ignored, state.ignored == 1 ?
"" : "es");
- if (state.warnings)
- printf(", %d warning%s", state.warnings, state.warnings == 1 ? ""
: "s");
- if (state.unspecified)
- printf(", %d unspecified difference%s", state.unspecified,
state.unspecified == 1 ? "" : "s");
- if (state.signals)
- printf(", %d signal%s", state.signals, state.signals == 1 ? "" :
"s");
- printf(", %d error%s\n", state.errors, state.errors == 1 ? "" :
"s");
- }
- if (fp != stdin)
- fclose(fp);
- }
- return state.errors;
-}
-
-int main(int argc, char **argv)
-{
- static char *param[][4] = {
- { NULL, "basic.dat" , NULL },
- { NULL, "categorize.dat" , NULL },
- { NULL, "forcedassoc.dat" , NULL },
- { NULL, "-c", "interpretation.dat", NULL },
- { NULL, "leftassoc.dat" , NULL },
- { NULL, "-c", "nullsubexpr.dat" , NULL },
- { NULL, "repetition.dat" , NULL },
- { NULL, "rightassoc.dat" , NULL },
- };
- int r, i;
-
- if (argv[1])
- return old_main(argc, argv);
-
- r = 0;
- for (i = 0; i < sizeof(param) / sizeof(param[0]); i++) {
- param[i][0] = argv[0];
- printf("Testing %s\n", param[i][1][0] != '-' ? param[i][1] :
param[i][2]);
- r |= old_main(3 /* not used */, param[i]);
- }
- return r;
-}
diff --git a/test/regex/tst-regex2.c b/test/regex/tst-regex2.c
deleted file mode 100644
index bb47d64..0000000
--- a/test/regex/tst-regex2.c
+++ /dev/null
@@ -1,250 +0,0 @@
-#define _GNU_SOURCE 1
-
-#include <fcntl.h>
-#include <locale.h>
-#include <regex.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <time.h>
-#include <unistd.h>
-#include <errno.h>
-
-static int
-do_test(void)
-{
- static const char *pat[] = {
- ".?.?.?.?.?.?.?Log\\.13",
- "(.?)(.?)(.?)(.?)(.?)(.?)(.?)Log\\.13",
- "((((((((((.?))))))))))((((((((((.?))))))))))((((((((((.?))))))))))"
- "((((((((((.?))))))))))((((((((((.?))))))))))((((((((((.?))))))))))"
- "((((((((((.?))))))))))Log\\.13"
- };
- char *buf, *string;
- const char *fname = "tst-regex2.dat";
- struct stat st;
- unsigned len;
- int testno;
- int exitcode = 0;
-
- int fd = open(fname, O_RDONLY);
- if (fd < 0) {
- printf("Couldn't open %s: %s\n", fname, strerror(errno));
- return 1;
- }
- if (fstat(fd, &st) < 0) {
- printf("Couldn't fstat %s: %s\n", fname, strerror(errno));
- return 1;
- }
- len = st.st_size;
- string = buf = malloc(len + 1);
- if (buf == NULL) {
- printf("Couldn't allocate %u bytes\n", len + 1);
- return 1;
- }
- if (read(fd, buf, st.st_size) != (ssize_t) st.st_size) {
- printf("Couldn't read %s\n", fname);
- return 1;
- }
-
- close(fd);
- buf[len] = '\0';
-
-#if defined __UCLIBC_HAS_XLOCALE__ || !defined __UCLIBC__
- setlocale(LC_ALL, "de_DE.UTF-8");
-#endif
-
- for (testno = 0; testno < 2; ++testno) {
- int i;
- for (i = 0; i < sizeof(pat) / sizeof(pat[0]); ++i) {
- struct timeval start, stop;
- regex_t rbuf;
- int err;
-
- printf("test %d pattern %d '%s'\n", testno, i, pat[i]);
- gettimeofday(&start, NULL);
-
- err = regcomp(&rbuf, pat[i],
- REG_EXTENDED | (testno ? REG_NOSUB : 0));
- if (err != 0) {
- char errstr[300];
- regerror(err, &rbuf, errstr, sizeof(errstr));
- puts(errstr);
- exitcode = 1;
- goto contin1;
- }
-
- regmatch_t pmatch[71];
- err = regexec(&rbuf, string, 71, pmatch, 0);
- if (err == REG_NOMATCH) {
- puts("regexec failed");
- exitcode = 1;
- goto contin1;
- }
-
- if (testno == 0) {
- if (pmatch[0].rm_eo != pmatch[0].rm_so + 13
- || pmatch[0].rm_eo > len
- || pmatch[0].rm_so < len - 100
- || strncmp(string + pmatch[0].rm_so,
- " ChangeLog.13 for earlier changes",
- sizeof " ChangeLog.13 for earlier changes" - 1
- ) != 0
- ) {
- puts("regexec without REG_NOSUB did not find the correct match");
- exitcode = 1;
- goto contin1;
- }
-
- if (i > 0) {
- int j, k, l;
- for (j = 0, l = 1; j < 7; ++j) {
- for (k = 0; k < (i == 1 ? 1 : 10); ++k, ++l) {
- if (pmatch[l].rm_so != pmatch[0].rm_so + j
- || pmatch[l].rm_eo != pmatch[l].rm_so + 1
- ) {
- printf("pmatch[%d] incorrect\n", l);
- exitcode = 1;
- goto contin1;
- }
- }
- }
- }
- }
-
- gettimeofday(&stop, NULL);
- stop.tv_sec -= start.tv_sec;
- if (stop.tv_usec < start.tv_usec) {
- stop.tv_sec--;
- stop.tv_usec += 1000000;
- }
- stop.tv_usec -= start.tv_usec;
- printf(" %lu.%06lus\n", (unsigned long) stop.tv_sec,
- (unsigned long) stop.tv_usec);
- contin1:
- regfree(&rbuf);
- }
- }
-
- for (testno = 2; testno < 4; ++testno) {
- int i;
- for (i = 0; i < sizeof(pat) / sizeof(pat[0]); ++i) {
- struct timeval start, stop;
- struct re_pattern_buffer rpbuf;
- struct re_registers regs;
- const char *s;
- int match;
-
- printf("test %d pattern %d '%s'\n", testno, i, pat[i]);
- gettimeofday(&start, NULL);
-
- re_set_syntax(RE_SYNTAX_POSIX_EGREP
- | (testno == 3 ? RE_NO_SUB : 0));
- memset(&rpbuf, 0, sizeof(rpbuf));
- s = re_compile_pattern(pat[i], strlen(pat[i]), &rpbuf);
- if (s != NULL) {
- printf("%s\n", s);
- exitcode = 1;
- goto contin2;
- }
-
- memset(®s, 0, sizeof(regs));
- match = re_search(&rpbuf, string, len, 0, len, ®s);
- if (match < 0) {
- printf("re_search failed (err:%d)\n", match);
- exitcode = 1;
- goto contin2;
- }
- if (match + 13 > len) {
- printf("re_search: match+13 > len (%d > %d)\n", match + 13, len);
- exitcode = 1;
- goto contin2;
- }
- if (match < len - 100) {
- printf("re_search: match < len-100 (%d < %d)\n", match, len - 100);
- exitcode = 1;
- goto contin2;
- }
- if (strncmp(string + match, " ChangeLog.13 for earlier changes",
- sizeof(" ChangeLog.13 for earlier changes") - 1
- ) != 0
- ) {
- printf("re_search did not find the correct match"
- "(found '%s' instead)\n", string + match);
- exitcode = 1;
- goto contin2;
- }
-
- if (testno == 2) {
- int expected = 72;
- if (i == 0)
- expected = 2;
- if (i == 1)
- expected = 9;
- if (regs.num_regs != expected) {
- printf("incorrect num_regs %d, expected %d\n", regs.num_regs, expected);
- exitcode = 1;
- goto contin2;
- }
- if (regs.start[0] != match || regs.end[0] != match + 13) {
- printf("incorrect regs.{start,end}[0] = { %d, %d },"
- " expected { %d, %d }\n",
- regs.start[0], regs.end[0],
- match, match + 13
- );
- exitcode = 1;
- goto contin2;
- }
- if (regs.start[regs.num_regs - 1] != -1
- || regs.end[regs.num_regs - 1] != -1
- ) {
- printf("incorrect regs.{start,end}[num_regs - 1] = { %d, %d },"
- " expected { -1, -1 }\n",
- regs.start[regs.num_regs - 1], regs.end[regs.num_regs - 1]
- );
- exitcode = 1;
- goto contin2;
- }
-
- if (i > 0) {
- int j, k, l;
- for (j = 0, l = 1; j < 7; ++j) {
- for (k = 0; k < (i == 1 ? 1 : 10); ++k, ++l) {
- if (regs.start[l] != match + j
- || regs.end[l] != match + j + 1
- ) {
- printf("incorrect regs.{start,end}[%d] = { %d, %d },"
- " expected { %d, %d }\n",
- l,
- regs.start[l], regs.end[l],
- match + j, match + j + 1
- );
- exitcode = 1;
- goto contin2;
- }
- }
- }
- }
- }
-
- gettimeofday(&stop, NULL);
- stop.tv_sec -= start.tv_sec;
- if (stop.tv_usec < start.tv_usec) {
- stop.tv_sec--;
- stop.tv_usec += 1000000;
- }
- stop.tv_usec -= start.tv_usec;
- printf(" %lu.%06lus\n", (unsigned long) stop.tv_sec,
- (unsigned long) stop.tv_usec);
- contin2:
- regfree(&rpbuf);
- }
- }
- return exitcode;
-}
-
-#define TIMEOUT 100
-#define TEST_FUNCTION do_test()
-#include "../test-skeleton.c"
diff --git a/test/regex/tst-regex2.dat b/test/regex/tst-regex2.dat
deleted file mode 100644
index ace9f3b..0000000
--- a/test/regex/tst-regex2.dat
+++ /dev/null
@@ -1,2176 +0,0 @@
-2002-11-19 Ulrich Drepper <drepper(a)redhat.com>
-
- * intl/localealias.c (read_alias_file): Use only about 400 bytes
- of stack space instead of 16k.
-
-2002-11-18 Wolfram Gloger <wg(a)malloc.de>
-
- * malloc/arena.c
- (ptmalloc_lock_all, ptmalloc_unlock_all, ptmalloc_unlock_all2): Do
- nothing if not initialized. Bug report from Marcus Brinkmann
- <Marcus.Brinkmann(a)ruhr-uni-bochum.de>de>.
-
-2002-11-19 Roland McGrath <roland(a)redhat.com>
-
- * posix/Versions (libc: GLIBC_2.3.2): Add sched_getaffinity and
- sched_setaffinity.
-
- * configure.in (libc_cv_gcc_dwarf2_unwind_info check): Use libraries
- `-lgcc -lgcc_eh -lgcc', not just `-lgcc -lgcc_eh' in link commands for
- test leading to libc_cv_gcc_dwarf2_unwind_info=no_registry_needed.
- * configure: Regenerated.
-
-2002-11-19 Ulrich Drepper <drepper(a)redhat.com>
-
- * include/dlfcn.h: __libc_dlopen is now a macro calling
- __libc_dlopen_mode with the extra parameter RTLD_LAZY.
- (__libc_dlopen_mode): New prototype.
- * elf/dl-libc.c (__libc_dlopen_mode): Renamed from __libc_dlopen. Add
- new parameter. Store new parameter in mode field of structure passed
- to do_dlopen.
- (struct do_dlopen_args): Add new field mode.
- (do_dlopen): Pass mode from parameter structure to _dl_open.
-
-2002-11-11 Randolf Chung <tausq(a)debian.org>
-
- * sysdeps/unix/sysv/linux/hppa/bits/fcntl.h [__USE_FILE_OFFSET64]
- (F_GETLK, F_SETLK, F_SETLKW): Define to F_*64 versions.
- * sysdeps/unix/sysv/linux/hppa/fcntl.c: New file.
-
- * sysdeps/hppa/fpu/libm-test-ulps: New file (generated).
-
- * sysdeps/hppa/Makefile (CFLAGS-rtld.c): New variable.
- Set -mdisable-fpregs for this file.
-
-2002-11-11 Carlos O'Donell <carlos(a)baldric.uwo.ca>
-
- * sysdeps/unix/sysv/linux/configure.in:
- Make 2.4.19 minimum linux kernel for hppa, and add unwind symbols
- from gcc-3.0 era for backwards compatibility.
- * sysdeps/unix/sysv/linux/configure: Regenerate.
-
- * sysdeps/unix/sysv/linux/hppa/sys/ucontext.h:
- Define mcontext_t as a sigcontext.
-
-2002-11-18 Roland McGrath <roland(a)redhat.com>
-
- * dlfcn/dlerror.c (fini): New function, __attribute__ ((destructor)).
- Free memory in `last_result' if it was used.
-
- * resolv/nss_dns/dns-network.c (getanswer_r): In BYNAME case, search
- all aliases for one that matches the "<dotted-quad>.IN-ADDR.ARPA" form.
- Do the parsing inline instead of copying strings and calling
- inet_network, and properly skip all alias names not matching the form.
-
- * manual/pattern.texi (Variable Substitution): Fix # and ## examples.
-
-2002-11-17 Ulrich Drepper <drepper(a)redhat.com>
-
- * manual/pattern.texi (Wordexp Example): Fix sample code.
-
- * sysdeps/unix/sysv/linux/i386/clone.S: Initialize word in the
- childs stack which will be loaded into the %esi register.
-
-2002-11-14 Paul Eggert <eggert(a)twinsun.com>
-
- * resolv/nss_dns/dns-network.c (getanswer_r): Check for buffer
- overflow when skipping the question part and when unpacking aliases.
-
-2002-11-15 Roland McGrath <roland(a)redhat.com>
-
- * math/Makefile (libm-calls): Remove s_copysign, s_isinf, s_isnan,
- s_finite, s_modf, s_scalbn, s_frexp, m_ldexp, s_signbit.
- Instead add $(calls:s_%=m_%) to get m_* versions of them all.
-
-2002-11-15 Jakub Jelinek <jakub(a)redhat.com>
-
- * sysdeps/i386/dl-machine.h (elf_machine_rela): Handle R_386_COPY.
- * sysdeps/arm/dl-machine.h (elf_machine_rela): Handle R_ARM_COPY.
-
-2002-11-15 Roland McGrath <roland(a)redhat.com>
-
- * math/Makefile (libm-calls): Change s_ldexp to m_ldexp.
- * Makerules ($(+sysdir_pfx)sysd-rules): Emit pattern rules for m_%.[Sc]
- from sysdeps/.../s_%.[Sc] with commands $(+make-include-of-dep).
- (+make-include-of-dep): New canned sequence.
-
- * stdlib/canonicalize.c (__realpath): Check for malloc failure.
- From Dmitry V. Levin <ldv(a)altlinux.org>rg>.
-
-2002-11-14 Roland McGrath <roland(a)redhat.com>
-
- * sysdeps/generic/errno.c (__libc_errno): Remove alias.
- * inet/herrno.c (__libc_h_errno): Likewise.
- * resolv/res_libc.c (__libc_res): Likewise.
- [USE___THREAD]: Use this in place of [USE_TLS && HAVE___THREAD].
- (__res_state) [! USE___THREAD]: Don't define as weak.
- * csu/Versions: Revert last change.
- * resolv/Versions: Revert last change.
-
- * Makerules ($(common-objpfx)%.make): New pattern rule.
- * tls.make.c: New file.
- * Makefile (distribute): Add it.
-
- * sysdeps/generic/errno.c [! USE___THREAD]
- [HAVE_ELF && SHARED && DO_VERSIONING] (errno, _errno): Declare these
- with compat_symbol so they are not link-time visible.
- [! USE___THREAD] (__libc_errno): New alias for errno.
- * csu/Versions [!(USE_TLS && HAVE___THREAD)] (libc: GLIBC_PRIVATE):
- Add __libc_errno here.
- * inet/herrno.c [USE___THREAD]: Use this conditional
- in place of [USE_TLS && HAVE___THREAD].
- [! USE___THREAD] [HAVE_ELF && SHARED && DO_VERSIONING]
- (h_errno, _h_errno): Declare these with compat_symbol so they are not
- link-time visible.
- [! USE___THREAD] (__libc_h_errno): New alias for h_errno.
- * resolv/res_libc.c [! USE___THREAD]
- [HAVE_ELF && SHARED && DO_VERSIONING] (_res): Likewise.
- (_res): Use __attribute__ ((section (".bss"))) so we can have an alias.
- (__libc_res): Define as alias for _res.
- * resolv/Versions [!(USE_TLS && HAVE___THREAD)] (libc: GLIBC_PRIVATE):
- Add __libc_h_errno and __libc_res here.
-
-2002-11-14 Jakub Jelinek <jakub(a)redhat.com>
-
- * csu/Versions (errno): Move STT_TLS symbol to GLIBC_PRIVATE for now.
- * resolv/Versions (h_errno, _res): Likewise.
-
-2002-11-14 Roland McGrath <roland(a)redhat.com>
-
- * Makerules (%.dynsym): Remove $(objpfx) from target and dep.
- (%.symlist): Likewise.
-
-2002-11-13 Roland McGrath <roland(a)redhat.com>
-
- * scripts/abilist.awk: New file.
- * Makefile (distribute): Add it.
- * Makerules ($(objpfx)%.dynsym, $(objpfx)%.symlist): New rules.
- (tests): Depend on .symlist file for each $(install-lib.so-versioned).
- [$(subdir) = elf] (tests): Depend on libc.symlist.
- (generated, common-generated): Add those files.
-
- * aclocal.m4 (LIBC_PROG_BINUTILS): Check for objdump, set OBJDUMP.
- * configure: Regenerated.
- * config.make.in (OBJDUMP): New variable, substituted by configure.
-
- * malloc/mcheck.c (struct hdr): New members `block' and `magic2'.
- (mallochook, reallochook): Set them up.
- (checkhdr): Check HDR->magic2 value.
- (freehook): Reset HDR->magic2.
- (memalignhook): New static function.
- (old_memalign_hook): New static variable.
- (mcheck, reallochook): Set __memalign_hook to memalignhook.
-
- * sysdeps/generic/dl-tls.c (_dl_allocate_tls_storage): Zero the space
- for the new TCB.
-
-2002-11-13 Andreas Jaeger <aj(a)suse.de>
-
- * sysdeps/unix/sysv/linux/x86_64/sigaction.c: Check for visibility
- attribute.
- * sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
-
-2002-11-11 Paul Eggert <eggert(a)twinsun.com>
-
- * manual/crypt.texi (Cryptographic Functions): Mention that
- the MD5 one-way algorithm is compatible with BSD's.
-
-2002-11-11 Isamu Hasegawa <isamu(a)yamato.ibm.com>
-
- * posix/regex_internal.c (re_string_skip_chars): Also return the last
- wide character.
- (re_string_reconstruct): Calculate the context by itself when the
- offset points out of the valid range.
- (re_string_context_at): Use wide character when MB_CUR_MAX > 1.
- * posix/regex_internal.h (WIDE_NEWLINE_CHAR): New macro.
- (IS_WIDE_WORD_CHAR): New macro.
- (IS_WIDE_NEWLINE): New macro.
-
-2002-11-12 Andreas Jaeger <aj(a)suse.de>
-
- * sysdeps/x86_64/strchr.S: Don't use one register for two
- purposes, this fixes a bug noticed by test-strchr.c.
-
- * sysdeps/x86_64/strcat.S: Fix algorithm to align source pointer
- correctly.
-
-2002-11-12 Roland McGrath <roland(a)redhat.com>
-
- * libio/libioP.h [_LIBC && !SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)]
- (_G_IO_NO_BACKWARD_COMPAT): Define it.
-
- * sysdeps/ia64/dl-fptr.c [_LIBC_REENTRANT]: Include <ia64intrin.h>
- instead of <pt-machine.h>.
- [_LIBC_REENTRANT] (lock, unlock): Use __sync_lock_* macros instead of
- testandset.
- From Ian Wienand <ianw(a)gelato.unsw.edu.au>au>.
-
-2002-11-10 Roland McGrath <roland(a)redhat.com>
-
- * libio/bug-wfflush.c (do_test): Call rewind instead of fsetpos.
- Call fputs instead of fwprintf (simpler to follow in debugger).
-
- * crypt/md5-crypt.c: Doc fix.
-
- * sysdeps/unix/make-syscalls.sh: Insert $(make-target-directory) at
- the beginning of generated target commands.
-
- * csu/Makefile ($(objpfx)crti.o, $(objpfx)crtn.o): Add explicit
- dependencies for these in case implicit rule search skipped the
- nonexistent source directory.
- * sysdeps/gnu/Makefile ($(objpfx)errlist.d): Give this rule all the
- files with $(object-suffixes) as targets too.
- * Makerules [no_deps && objpfx] (before-compile): Add $(objpfx).
- and a target for it using $(make-target-directory).
-
- * Rules (before-compile): Add $(common-objpfx)bits/stdio-lim.h.
-
-2002-11-10 Roland McGrath <roland(a)frob.com>
-
- * sysdeps/unix/sysv/linux/bits/pthreadtypes.h: Moved to ...
- * sysdeps/generic/bits/pthreadtypes.h: ... here.
-
- * sysdeps/mach/hurd/fcntl.c (__libc_fcntl): Treat a struct flock with
- l_start == 0 and l_len == 1 as we do l_len == 0.
-
-2002-11-10 Ulrich Drepper <drepper(a)redhat.com>
-
- * po/da.po: Update from translation team.
-
-2002-11-10 Roland McGrath <roland(a)redhat.com>
-
- * config.make.in (includedir): New variable, substituted by configure.
- Reported missing by Jocelyn Fournier <joc(a)presence-pc.com>om>.
- * Makeconfig (includedir): Use $(prefix), not $(exec_prefix).
-
-2002-11-10 Andreas Jaeger <aj(a)suse.de>
-
- * sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h (enum): Add
- REG_OLDMASK and REG_CR2 to synch with kernel header.
- (NGREG): Increase.
-
- * nss/getXXent.c (GETFUNC_NAME): Use union type to avoid strict
- aliasing problem.
- * nss/getXXbyYY_r.c (INTERNAL): Likewise.
- * nss/getnssent_r.c (__nss_getent_r): Likewise.
- (__nss_setent): Likewise.
- (__nss_getent_r): Likewise.
- * inet/getnetgrent_r.c (innetgr): Likewise.
- (__internal_setnetgrent_reuse): Likewise.
- (internal_getnetgrent_r): Likewise.
- * inet/ether_hton.c (ether_hostton): Likewise.
- * inet/ether_ntoh.c (ether_ntohost): Likewise.
- * sunrpc/netname.c (netname2user): Likewise.
- * sunrpc/publickey.c (getpublickey): Likewise.
- (getsecretkey): Likewise.
-
-2002-11-09 Marcus Brinkmann <marcus(a)gnu.org>
-
- * sysdeps/mach/hurd/i386/ioperm.c (ioperm): Correct off by one
- error in range calculation.
-
-2002-10-09 Jakub Jelinek <jakub(a)redhat.com>
-
- * string/test-strspn.c (do_test): Ensure zero termination.
- * string/test-strpbrk.c (do_test): Likewise.
- * string/test-strncmp.c (stupid_strncmp): Use strnlen, not strlen.
- * string/test-strncpy.c (stupid_strncpy): Likewise.
- * string/test-stpncpy.c (stupid_stpncpy): Likewise.
-
-2002-10-08 Roland McGrath <roland(a)redhat.com>
-
- * string/test-string.h (test_init): Fill BUF1 and BUF2 with
- nonzero characters.
-
-2002-09-22 H.J. Lu <hjl(a)gnu.org>
-
- * sysdeps/unix/sysv/linux/mmap64.c (MMAP2_PAGE_SHIFT): Renamed
- from PAGE_SHIFT. Define if not defined. Check MMAP2_PAGE_SHIFT
- only if __NR_mmap2 is defined.
-
- * sysdeps/unix/sysv/linux/powerpc/mmap64.c: Moved to ...
- * sysdeps/unix/sysv/linux/mmap64.c: ... here.
- * sysdeps/unix/sysv/linux/hppa/mmap64.c: File removed.
- * sysdeps/unix/sysv/linux/sparc/sparc32/mmap64.c: FIle removed,
-
-2002-11-08 Jakub Jelinek <jakub(a)redhat.com>
-
- * posix/bug-regex13.c (tests): Add new test.
-
- * string/test-strchr.c (stupid_strchr): New function.
- (do_random_tests): Make sure the string is zero terminated.
- * string/test-strpbrk.c (stupid_strpbrk): New function.
- (do_random_tests): Make sure the string is zero terminated.
- * string/test-strcmp.c (stupid_strcmp): New function.
- (do_random_tests): Make sure the strings are zero terminated.
- * string/test-strspn.c (stupid_strspn): New function.
- (simple_strspn): Rename rej argument to acc.
- (do_random_tests): Make sure the string is zero terminated.
- * string/test-strcspn.c (stupid_strcspn): New function.
- * string/test-strncpy.c (stupid_strncpy): New function.
- * string/test-stpncpy.c (stupid_stpncpy): New function.
- * string/test-strncmp.c (stupid_strncmp): New function.
- (do_random_tests): Make sure the strings are zero terminated.
- * string/test-string.h (impl_t): Change test into long.
- (IMPL): Add __attribute__((aligned (sizeof (void *)))).
-
-2002-11-08 Roland McGrath <roland(a)redhat.com>
-
- * sysdeps/ia64/elf/configure.in: Add TLS check.
- From Ian Wienand <ianw(a)cse.unsw.edu.au>au>.
- * sysdeps/ia64/elf/configure: Regenerated.
-
-2002-11-07 Roland McGrath <roland(a)redhat.com>
-
- * libio/fileops.c (_IO_new_file_overflow): Use INTUSE(_IO_do_write) in
- place of _IO_new_do_write.
- [_LIBC] (_IO_do_write): Define as macro for _IO_new_do_write and
- #undef before versioned_symbol use.
-
-2002-11-07 Richard Henderson <rth(a)redhat.com>
-
- * configure.in (ASM_ALPHA_NG_SYMBOL_PREFIX): Remove test.
- * configure: Regenerated.
- * config.h.in (ASM_ALPHA_NG_SYMBOL_PREFIX): Remove #undef.
- * sysdeps/alpha/dl-machine.h (TRAMPOLINE_TEMPLATE): Use !samegp.
- (RTLD_START): Likewise. Access _dl_skip_args, _rtld_local, and
- _dl_fini via gp-relative relocations.
- * sysdeps/alpha/fpu/e_sqrt.c: Use !samegp.
-
- * elf/tls-macros.h: Add alpha versions.
- * sysdeps/alpha/dl-machine.h (elf_machine_rela): Handle TLS relocs.
- * sysdeps/unix/alpha/sysdep.S: Support USE___THREAD.
- * sysdeps/unix/alpha/sysdep.h: Likewise. Add SYSCALL_ERROR_HANDLER.
- * sysdeps/unix/sysv/linux/alpha/brk.S: Use it.
- * sysdeps/unix/sysv/linux/alpha/clone.S: Likewise.
- * sysdeps/unix/sysv/linux/alpha/getitimer.S: Likewise.
- * sysdeps/unix/sysv/linux/alpha/getrusage.S: Likewise.
- * sysdeps/unix/sysv/linux/alpha/gettimeofday.S: Likewise.
- * sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S: Likewise.
- * sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S: Likewise.
- * sysdeps/unix/sysv/linux/alpha/rt_sigaction.S: Likewise.
- * sysdeps/unix/sysv/linux/alpha/select.S: Likewise.
- * sysdeps/unix/sysv/linux/alpha/setitimer.S: Likewise.
- * sysdeps/unix/sysv/linux/alpha/settimeofday.S: Likewise.
- * sysdeps/unix/sysv/linux/alpha/sigsuspend.S: Likewise.
- * sysdeps/unix/sysv/linux/alpha/syscall.S: Likewise.
- * sysdeps/unix/sysv/linux/alpha/utimes.S: Likewise.
- * sysdeps/unix/sysv/linux/alpha/wait4.S: Likewise.
-
- * sysdeps/unix/sysv/linux/alpha/sysdep.h: Re-include protect.
- Kill argument registers across the inline syscall.
-
- * sysdeps/unix/sysv/linux/alpha/clone.S: Add user_tid and tls args.
-
- * linuxthreads/sysdeps/alpha/tls.h: New file.
- * sysdeps/alpha/dl-tls.h: New file.
-
-2002-10-29 David Mosberger <davidm(a)hpl.hp.com>
-
- * sysdeps/ia64/elf/initfini.c [HAVE_INITFINI_ARRAY]
- (gmon_initializer): New function.
- (.init prologue): If HAVE_INITFINI_ARRAY is true, don't call
- __gmon_start__ here. Call it from gmon_initializer() instead.
-
-2002-03-12 H.J. Lu <hjl(a)gnu.org>
-
- * elf/Makefile [$(have-initfini-array) = yes] (tests): Add tst-array1,
- tst-array2, and tst-array3.
- [$(have-initfini-array) = yes] (tests-static): Add tst-array3.
- [$(have-initfini-array) = yes] (modules-names): Add tst-array2dep.
- ($(objpfx)tst-array1.out): New target.
- ($(objpfx)tst-array2): Likewise.
- ($(objpfx)tst-array2.out): Likewise.
- ($(objpfx)tst-array3.out): Likewise.
- * elf/tst-array1.c: New file.
- * elf/tst-array1.exp: Likewise.
- * elf/tst-array2.c: Likewise.
- * elf/tst-array2dep.c: Likewise.
- * elf/tst-array2.exp: Likewise.
- * elf/tst-array3.c: Likewise.
-
-2002-10-28 David Mosberger <davidm(a)hpl.hp.com>
-
- * elf/dl-fini.c (_dl_fini): Invoke fini_array in _reverse_ order.
- Don't add L->l_addr to array entry values.
-
-2002-11-07 Jakub Jelinek <jakub(a)redhat.com>
-
- * string/test-string.h: New file.
- * string/test-strlen.c: New file.
- * string/test-string.h: New file.
- * string/test-strcmp.c: New file.
- * string/test-strchr.c: New file.
- * string/test-strrchr.c: New file.
- * string/test-strcpy.c: New file.
- * string/test-stpcpy.c: New file.
- * string/test-strncpy.c: New file.
- * string/test-stpncpy.c: New file.
- * string/test-strpbrk.c: New file.
- * string/test-strcspn.c: New file.
- * string/test-strspn.c: New file.
- * string/test-strcat.c: New file.
- * string/test-strncmp.c: New file.
- * string/test-memchr.c: New file.
- * string/test-memcmp.c: New file.
- * string/test-memset.c: New file.
- * string/test-memcpy.c: New file.
- * string/test-mempcpy.c: New file.
- * string/test-memmove.c: New file.
- * string/Makefile (strop-tests): New variable.
- (tests): Add strop-tests.
- (distribute): Add test-string.h.
-
-2002-11-06 Ulrich Drepper <drepper(a)redhat.com>
-
- * posix/regcomp.c: Use tabs instead of spaces.
- * posix/regexec.c: Likewise.
- * posix/regex_internal.h: Likewise.
-
- * posix/regcomp.c (re_compile_fastmap_iter): Use __wcrtomb not wctomb.
-
-2002-11-06 Jakub Jelinek <jakub(a)redhat.com>
-
- * posix/regcomp.c (re_compile_pattern): Don't set regs_allocated
- here.
- (regcomp): Don't set can_be_null here.
- (re_comp): Clear whole re_comp_buf with the exception of fastmap.
- (re_compile_internal): Clear can_be_null, set regs_allocated.
-
- * posix/regcomp.c (re_set_fastmap): New function.
- (re_compile_fastmap_iter): Use it. Remove redundant type ==
- COMPLEX_BRACKET check.
- * posix/regexec.c (re_search_internal): Optimize searching with
- fastmap. Call re_string_reconstruct even if match_first is
- smaller than raw_mbs_idx.
-
-2002-11-06 Isamu Hasegawa <isamu(a)yamato.ibm.com>
-
- * posix/regcomp (free_dfa_content): Use free_state.
- * posix/regex_internal.c (re_string_realloc_buffers): Don't edit
- pointers in case that realloc failed.
- (re_node_set_merge): Likewise.
- (register_state): Likewise.
- (create_newstate_common): Invoke memory release functions in case of
- error conditions.
- (create_ci_newstate): Likewise.
- (create_cd_newstate): Likewise.
- (free_state): New function.
- * posix/regexec.c (re_search_internal): Invoke memory release
- functions in case of error conditions.
- (sift_states_backward): Likewise.
- (merge_state_array): Likewise.
- (add_epsilon_src_nodes): Likewise.
- (sub_epsilon_src_nodes): Likewise.
- (search_subexp): Likewise.
- (sift_states_bkref): Likewise.
- (transit_state_sb): Likewise.
- (transit_state_mb): Likewise.
- (transit_state_bkref_loop): Likewise.
- (group_nodes_into_DFAstates): Likewise.
- (push_fail_stack): Don't edit pointers in case that realloc failed.
- (extend_buffers): Likewise.
- (match_ctx_add_entry): Likewise.
-
-2002-11-06 Roland McGrath <roland(a)redhat.com>
-
- * sysdeps/unix/sysv/linux/mips/configure.in: File removed.
- * sysdeps/unix/sysv/linux/mips/configure: Likewise.
-
- * configure.in: Add checks on as and ld for binutils 2.13 or later.
- * configure: Regenerated.
-
-2002-11-06 Ulrich Drepper <drepper(a)redhat.com>
-
- * posix/regcomp.c (regcomp): __re_compile_fastmap can never fail.
- If re_compile_internal failed free fastmap buffer.
- (free_dfa_content): Broken out of regfree function. Frees all dfa
- related data.
- (regfree): Add free_dfa_content.
- (re_compile_internal): If any of the called functions fails free
- all dfa related memory.
-
-2002-11-05 Ulrich Drepper <drepper(a)redhat.com>
-
- * sysdeps/unix/sysv/linux/sys/sysctl.h: Add ugly hacks to prevent
- warnings from the kernel headers.
-
-2002-11-05 Roland McGrath <roland(a)redhat.com>
-
- * sysdeps/unix/mips/sysdep.h [! __PIC__] (PSEUDO): Add nop after jump.
- From Johannes Stezenbach <js(a)convergence.de>de>.
-
- * sysdeps/unix/sysv/linux/mips/Versions (libc: GLIBC_2.0): Change
- #errlist-compat magic comment to give 123 as size.
- (libc: GLIBC_2.1): Remove this set, moving #errlist-compat magic to ...
- (libc: GLIBC_2.2): ... here.
- (libc: GLIBC_2.3): Likewise.
-
-2002-11-05 Ulrich Drepper <drepper(a)redhat.com>
-
- * elf/dl-fini.c (_dl_fini): Correct the increment of l_opencount
- which happens at the beginning so that we can unload modules in
- __libc_freeres.
-
-2002-11-06 Kaz Kojima <kkojima(a)rr.iij4u.or.jp>
-
- * sysdeps/sh/bits/setjmp.h (JB_SIZE): Define only
- under [__USE_MISC || _ASM].
-
- * elf/elf.h: Remove the obsolete SH TLS relocations.
-
-2002-11-05 Ulrich Drepper <drepper(a)redhat.com>
-
- * posix/regcomp.c (regcomp): Initialize preg->can_be_null to zero.
-
-2002-11-05 Franz Sirl <Franz.Sirl-kernel(a)lauterbach.com>
-
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h: Handle
- __NR_pread64 and __NR_pwrite64.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/pread.c: Remove __NR_pread64
- and __NR_pwrite64.
- Revert change to use INLINE_SYSCALL.
- * sysdeps/unix/sysv/linux/powerpc/pread64.c: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/pwrite.c: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/pwrite64.c: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/ftruncate64.c: Revert change to use
- INLINE_SYSCALL.
- * sysdeps/unix/sysv/linux/powerpc/truncate64.c: Likewise.
-
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h (INLINE_SYSCALL):
- Update clobber list and add a comment about the syscall ABI.
-
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list (s_pread64,
- s_pwrite64, s_ftruncate, s_truncate): Re-add.
-
-2002-11-05 Jakub Jelinek <jakub(a)redhat.com>
-
- * iconv/gconv_dl.c (free_mem): Clear loaded.
- * locale/loadarchive.c (_nl_archive_subfreeres): Call locale_data's
- cleanup if any.
-
-2002-11-05 Ulrich Drepper <drepper(a)redhat.com>
-
- * sysdeps/unix/sysv/linux/fexecve.c: Include <stdio.h>.
-
- * libio/ioseekoff.c: Remove INTDEF. Define _IO_seekoff_unlocked. Same
- as old code without locking. _IO_seekoff calls this function after
- locking the stream.
- * libio/ioseekpos.c: Likewise for _IO_seekpos.
- * libio/libioP.h: Replace _IO_seekoff_internal and _IO_seekpos_internal
- prototypes with _IO_seekoff_unlocked and _IO_seekpos_unlocked
- prototypes.
- * libio/iolibio.h (_IO_fseek): Call _IO_seekoff_unlocked instead
- of _IO_seekoff_internal.
- (_IO_rewind): Likewise.
- * libio/ioftell.c: Likewise.
- * libio/ftello.c: Likewise.
- * libio/ftello64.c: Likewise.
- * libio/iofgetpos.c: Likewise.
- * libio/iofgetpos64.c: Likewise.
- * libio/oldiofgetpos.c: Likewise.
- * libio/oldiofgetpos64.c: Likewise.
- * libio/iofsetpos.c: Call _IO_seekpos_unlocked instead of
- _IO_seekpos_internal.
- * libio/iofsetpos64.c: Likewise.
- * libio/oldiofsetpos.c: Likewise.
- * libio/oldiofsetpos64.c: Likewise.
-
-2002-11-04 Roland McGrath <roland(a)redhat.com>
-
- * sysdeps/unix/sysv/linux/powerpc/chown.c: Use INLINE_SYSCALL macro.
- * sysdeps/unix/sysv/linux/powerpc/ftruncate64.c: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/ioctl.c: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/pread.c: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/pread64.c: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/pwrite.c: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/pwrite64.c: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/tcgetattr.c: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/tcsetattr.c: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/truncate64.c: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list (s_ioctl,
- s_chown, s_ftruncate64, s_mmap2, s_pread64, s_pwrite64, s_truncate64,
- sys_fstat, sys_lstat, sys_mknod, sys_readv, sys_stat, sys_writev):
- Remove these, no longer used.
-
-2002-11-04 Franz Sirl <Franz.Sirl-kernel(a)lauterbach.com>
-
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list (s_ipc,
- s_llseek, s_readahead, s_execve, s_fcntl, s_fcntl64, s_fstat64,
- s_getcwd, s_getdents, s_getdents64, s_getpmsg, s_getpriority,
- s_getrlimit, s_lstat64, s_poll, s_ptrace, s_putpmsg, s_reboot,
- s_setrlimit, s_sigaction, s_sigpending, s_sigprocmask, s_sigsuspend,
- s_stat64, s_sysctl, s_ugetrlimit, s_ustat, s_vfork): Remove now unused
- syscall stubs.
-
- * sysdeps/unix/sysv/linux/pwrite.c: Fix typo.
- * sysdeps/unix/sysv/linux/pwrite64.c: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/pread.c: Handle both __NR_pread64
- and __NR_pread.
- * sysdeps/unix/sysv/linux/powerpc/pread64.c: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/pwrite.c: Handle both __NR_pwrite64
- and __NR_pwrite.
- * sysdeps/unix/sysv/linux/powerpc/pwrite64.c: Likewise.
-
-2002-11-03 Roland McGrath <roland(a)redhat.com>
-
- * sysdeps/generic/ldsodefs.h (struct rtld_global): New member
- `_dl_tls_static_used'.
- * sysdeps/generic/libc-tls.c (_dl_tls_static_used): New variable.
- (__libc_setup_tls): Initialize it. Let the initial value of
- _dl_tls_static_size indicate some surplus space in the computed value.
- * elf/dl-open.c (_dl_tls_static_size): New variable.
- * sysdeps/generic/dl-tls.c (_dl_determine_tlsoffset): Initialize
- _dl_tls_static_used. Add some surplus space into _dl_tls_static_size.
- * elf/dl-reloc.c [USE_TLS] (allocate_static_tls): New function.
- (CHECK_STATIC_TLS): Use it.
- * elf/dl-close.c (_dl_close): Adjust _dl_tls_static_used when the
- closed objects occupied a trailing contiguous chunk of static TLS area.
-
-2002-10-18 Bruno Haible <bruno(a)clisp.org>
-
- * charmaps/ISO_5428: Use Greek characters introduced in Unicode 3.0.
-
-2002-11-04 Ulrich Drepper <drepper(a)redhat.com>
-
- * libio/wfileops.c (_IO_wfile_seekoff): Don't modify _offset and
- _wide_data->_IO_read_end if adjustment can be made in the current
- buffer.
-
- * sysdeps/unix/sysv/linux/fexecve.c: New file.
-
- * libio/bug-wfflush.c (do_test): Using fseek is not allowed when
- wide oriented streams are used.
-
- * nss/getXXent_r.c (ENDFUNC_NAME): Don't do anything if the
- service hasn't been used [PR libc/4744].
-
- * include/features.h: Use __STDC_VERSION__ not __STDC_VERSION.
- Reported by Miloslav Trmac <mitr(a)volny.cz> [PR libc/4766].
-
- * manual/examples/dir.c: Don't include <stddef.h>.
- * manual/examples/select.c: Include <errno.h> for TEMP_FAILURE_RETRY.
- Reported by Fr�d�ric Delanoy <delanoy_f(a)yahoo.com>om>.
-
-2002-11-02 H.J. Lu <hjl(a)gnu.org>
-
- * stdio-common/reg-printf.c: Include <stddef.h>.
-
-2002-11-03 Ulrich Drepper <drepper(a)redhat.com>
-
- * sysdeps/generic/libc-tls.c: Define _dl_tls_static_used.
-
- * po/ca.po: Update from translation team.
- * po/es.po: Likewise.
-
- * sysdeps/generic/segfault.c (catch_segfault): If HAVE_PROC_SELF
- is defined write out memory map.
- * sysdeps/unix/sysv/linux/segfault.c: New file.
-
-2002-11-02 Roland McGrath <roland(a)redhat.com>
-
- * sysdeps/unix/sysv/linux/getdents.c (__GETDENTS): Use union type for
- pointers that can alias.
- Reported by Daniel Jacobowitz <drow(a)mvista.com>om>.
-
- * sysdeps/unix/bsd/bsd4.4/freebsd/bits/typesizes.h: New file.
-
-2002-11-02 Roland McGrath <roland(a)redhat.com>
-
- * manual/filesys.texi (Reading/Closing Directory): Rewrite readdir_r
- description to be clearer and to say that *RESULT is set to ENTRY.
-
-2002-10-30 Jakub Jelinek <jakub(a)redhat.com>
-
- * posix/regexec.c (build_trtable): Alloca or malloc dests_node and
- dests_ch arrays together. Alloca or malloc dest_states,
- dest_states_word and dest_states_nl arrays together. Free memory on
- error exit.
-
-2002-10-29 Daniel Jacobowitz <drow(a)mvista.com>
-
- * crypt/crypt_util.c (__init_des_r): Initialize current_salt
- and current_saltbits.
-
-2002-11-02 Roland McGrath <roland(a)redhat.com>
-
- * stdio-common/reg-printf.c: Include <stdlib.h>.
-
-2002-11-02 H.J. Lu <hjl(a)gnu.org>
-
- * sysdeps/unix/sysv/linux/mips/syscalls.list (s_execve): Set
- caller to EXTRA instead of execve.
-
-2002-11-01 Roland McGrath <roland(a)redhat.com>
-
- * sysdeps/generic/errno-loc.c [! USE___THREAD]: Use this conditional
- in place of [!(USE_TLS && HAVE___THREAD)].
- (__errno_location) [! USE___THREAD]: Define as strong, not weak.
-
-2002-10-31 Roger Sayle <roger(a)eyesopen.com>
-
- * sysdeps/i386/soft-fp/sfp-machine.h (_FP_NANFRAC_Q, _FP_NANSIGN_Q):
- New macros.
- * sysdeps/x86_64/soft-fp/sfp-machine.h: Likewise.
-
- * soft-fp/soft-fp.h: Allow sfp-machine.h to define FP_RND_NEAREST
- without defining FP_ROUNDMODE.
-
-2002-10-29 Jakub Jelinek <jakub(a)redhat.com>
-
- * sysdeps/gnu/siglist.c (PTR_SIZE_STR): Remove.
- (__old_sys_siglist, __old_sys_sigabbrev): Use strong_alias and
- declare_symbol.
- * sysdeps/mach/hurd/siglist.h (OLD_SIGLIST_SIZE_STR): Remove.
- (OLD_SIGLIST_SIZE): Define.
- * sysdeps/unix/sysv/linux/siglist.h (OLD_SIGLIST_SIZE_STR): Remove.
- (OLD_SIGLIST_SIZE): Define.
- * sysdeps/unix/sysv/linux/arm/siglist.c: Remove.
-
-2002-11-01 Jakub Jelinek <jakub(a)redhat.com>
-
- * sysdeps/ia64/strncpy.S: Fix recovery code.
-
-2002-10-30 Jakub Jelinek <jakub(a)redhat.com>
-
- * include/libc-symbols.h (__libc_freeres_fn_section, libc_freeres_fn):
- New macros.
- * elf/dl-close.c (free_mem): Use libc_freeres_fn macro, remove
- text_set_element.
- * elf/dl-libc.c (free_mem): Likewise.
- * iconv/gconv_conf.c (free_mem): Likewise.
- * iconv/gconv_db.c (free_mem): Likewise.
- * iconv/gconv_dl.c (free_mem): Likewise.
- * iconv/gconv_cache.c (free_mem): Likewise.
- * intl/finddomain.c (free_mem): Likewise.
- * intl/dcigettext.c (free_mem): Likewise.
- * locale/setlocale.c (free_mem): Likewise.
- * misc/fstab.c (fstab_free): Likewise.
- * nss/nsswitch.c (free_mem): Likewise.
- * posix/regcomp.c (free_mem): Likewise.
- * resolv/gai_misc.c (free_res): Likewise.
- * stdlib/fmtmsg.c (free_mem): Likewise.
- * sunrpc/clnt_perr.c (free_mem): Likewise.
- * sysdeps/generic/setenv.c (free_mem): Likewise.
- * sysdeps/unix/sysv/linux/shm_open.c (freeit): Likewise.
- * sysdeps/pthread/aio_misc.c (free_res): Likewise.
- * time/tzset.c (free_mem): Likewise.
- * malloc/mtrace.c (release_libc_mem): Add __libc_freeres_fn_section.
- * locale/loadarchive.c (_nl_archive_subfreeres): Likewise.
- * malloc/set-freeres.c (__libc_freeres): Likewise.
-
- * login/getutent.c: Include stdlib.h instead of stddef.h.
- (buffer): Change into pointer to utmp, add libc_freeres_ptr.
- (__getutent): Allocate buffer the first time it is run.
- * login/getutid.c: Include stdlib.h instead of stddef.h.
- (buffer): Change into pointer to utmp, add libc_freeres_ptr.
- (__getutid): Allocate buffer the first time it is run.
- * login/getutline.c: Include stdlib.h instead of stddef.h.
- (buffer): Change into pointer to utmp, add libc_freeres_ptr.
- (__getutline): Allocate buffer the first time it is run.
- * malloc/mtrace.c (malloc_trace_buffer): Change into char *.
- (mtrace): Allocate malloc_trace_buffer.
- * resolv/nsap_addr.c (inet_nsap_ntoa): Decrease size of tmpbuf.
- * resolv/ns_print.c (ns_sprintrrf): Decrease size of t.
- * string/strerror.c: Include libintl.h and errno.h.
- (buf): New variable.
- (strerror): Only allocate buffer if actually needed (unknown error).
- * time/tzfile.c (transitions): Add libc_freeres_ptr.
- (freeres): Remove.
-
-2002-10-25 Jakub Jelinek <jakub(a)redhat.com>
-
- * include/libc-symbols.h (libc_freeres_ptr): New macro.
- * malloc/set-freeres.c (__libc_freeres_ptrs): Define using
- symbol_set_define.
- (__libc_freeres): Free all pointers in that section.
- * Makerules (build-shlib): Add $(LDSEDCMD-$(@F:lib%.so=%).so) to sed
- commands when creating .lds script.
- (LDSEDCMD-c.so): New variable.
- * inet/rcmd.c (ahostbuf): Change into char *. Add libc_freeres_ptr.
- (rcmd_af): Use strdup to allocate ahostbuf.
- * inet/rexec.c (ahostbuf): Change into char *. Add libc_freeres_ptr.
- (rexec_af): Use strdup to allocate ahostbuf.
- * stdio-common/reg-printf.c (printf_funcs): Remove.
- (__printf_arginfo_table): Change into printf_arginfo_function **.
- Add libc_freeres_ptr.
- (__register_printf_function): Allocate __printf_arginfo_table
- and __printf_function_table the first time it is called.
- * stdio-common/printf-parse.h (__printf_arginfo_table): Change into
- printf_arginfo_function **.
- (parse_one_spec): Add __builtin_expect.
- * grp/fgetgrent.c (buffer): Add libc_freeres_ptr.
- (free_mem): Remove.
- * inet/getnetgrent.c (buffer): Add libc_freeres_ptr.
- (free_mem): Remove.
- * intl/localealias.c (libc_freeres_ptr): Define if !_LIBC.
- (string_space, map): Add libc_freeres_ptr.
- (free_mem): Remove.
- * misc/efgcvt.c (FCVT_BUFPTR): Add libc_freeres_ptr.
- (free_mem): Remove.
- * misc/mntent.c (getmntent_buffer): Add libc_freeres_ptr.
- (free_mem): Remove.
- * crypt/md5-crypt.c (libc_freeres_ptr): Define if !_LIBC.
- (buffer): Add libc_freeres_ptr.
- (free_mem): Remove for _LIBC.
- * nss/getXXbyYY.c (buffer): Add libc_freeres_ptr.
- (free_mem): Remove.
- * nss/getXXent.c (buffer): Add libc_freeres_ptr.
- (free_mem): Remove.
- * pwd/fgetpwent.c (buffer): Add libc_freeres_ptr.
- (free_mem): Remove.
- * resolv/res_hconf.c (ifaddrs): Add libc_freeres_ptr.
- (free_mem): Remove.
- * shadow/fgetspent.c (buffer): Add libc_freeres_ptr.
- (free_mem): Remove.
- * sysdeps/posix/ttyname.c (getttyname_name): Add libc_freeres_ptr.
- (free_mem): Remove.
- * sysdeps/unix/sysv/linux/getsysstats.c (mount_proc): Add
- libc_freeres_ptr.
- (free_mem): Remove.
- * sysdeps/unix/sysv/linux/ttyname.c (getttyname_name, ttyname_buf): Add
- libc_freeres_ptr.
- (free_mem): Remove.
-
-2002-10-30 Jakub Jelinek <jakub(a)redhat.com>
-
- * malloc/obstack.c [_LIBC] (obstack_free): Change into strong_alias
- instead of duplicating the whole function in libc.
-
-2002-10-31 Roland McGrath <roland(a)redhat.com>
-
- * sysdeps/i386/bits/byteswap.h [__GNUC__ < 2] (__bswap_32):
- Renamed from __bswap_16 (typo fix). Reported by <dens(a)stl.sarov.ru>ru>.
-
-2002-10-30 Jakub Jelinek <jakub(a)redhat.com>
-
- * sysdeps/unix/sysv/linux/Makefile (syscall-%.h): Add -D for each
- 32bit-predefine when creating .new32 list and -U for each
- 32bit-predefine when creating .new64 list.
- * sysdeps/unix/sysv/linux/x86_64/Makefile (32bit-predefine): New.
-
-2002-10-29 Andreas Schwab <schwab(a)suse.de>
-
- * sysdeps/generic/allocrtsig.c: Include <testrtsig.h>, not
- "testrtsig.h". Reported by Daniel Jacobowitz <dan(a)debian.org>rg>.
-
-2002-10-25 Roland McGrath <roland(a)redhat.com>
-
- * sysdeps/unix/sysv/linux/configure.in: Fix typo in last change.
- * sysdeps/unix/sysv/linux/configure: Regenerated.
-
- * sysdeps/generic/ldsodefs.h: Remove [! SHARED] conditional from
- _dl_starting_up decl.
-
-2002-10-20 H.J. Lu <hjl(a)gnu.org>
-
- * sysdeps/unix/sysv/linux/configure.in: Don't check
- /lib/modules/`uname -r`/build/include for kernel headers if
- cross compiling.
- * sysdeps/unix/sysv/linux/configure: Regenerated.
-
-2002-10-25 Roland McGrath <roland(a)redhat.com>
-
- * math/math.h (M_LOG2El): Correct the value.
- From Stephen L Moshier <steve(a)moshier.net>et>.
-
- * sysdeps/unix/sysv/linux/init-first.c (init): Remove [! SHARED]
- conditional from __libc_multiple_libcs access. Remove kludge for weak
- symbol access with old compilers we no longer support.
- * sysdeps/unix/sysv/aix/init-first.c (init): Likewise.
- * sysdeps/generic/libc-start.c (__libc_start_main): Likewise.
-
-2002-10-25 Roland McGrath <roland(a)redhat.com>
-
- * sysdeps/posix/sigvec.c [SA_RESETHAND]: Disable wrapper hacks and
- implement SV_RESETHAND by translating it to SA_RESETHAND.
-
-2002-10-23 Alexandre Oliva <aoliva(a)redhat.com>
-
- * elf/dl-reloc.c (_dl_reloc_bad_use): Print the full 32-bit relocation
- type on ELF64 platforms.
-
-2002-10-24 Ulrich Drepper <drepper(a)redhat.com>
-
- * elf/elf.h (R_X86_64_GOTTPOFF): Renamed from r_x86_64_GOTTPOFF.
-
- * elf/elf.h: Define ELF_NOTE_OS_FREEBSD and NT_TASKSTRUCT.
-
-2002-10-24 Jakub Jelinek <jakub(a)redhat.com>
-
- * elf/dl-misc.c: Include <sysdep.h>.
- (_dl_debug_vdprintf): Only take dl_load_lock if not _dl_starting_up.
-
- * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h (INTERNAL_SYSCALL,
- INTERNAL_SYSCALL_ERROR_P, INTERNAL_SYSCALL_ERRNO): New macros.
- (INLINE_SYSCALL): Use that.
- * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h (INTERNAL_SYSCALL,
- INTERNAL_SYSCALL_ERROR_P, INTERNAL_SYSCALL_ERRNO): New macros.
- (INLINE_SYSCALL): Use that.
- * sysdeps/unix/sysv/linux/x86_64/sysdep.h (INTERNAL_SYSCALL,
- INTERNAL_SYSCALL_ERROR_P, INTERNAL_SYSCALL_ERRNO): New macros.
- (INLINE_SYSCALL): Use that.
- * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Include
- dl-sysdep.h.
- (SYSCALL_ERROR_HANDLER): Define RTLD_PRIVATE_ERRNO variant.
- (__INTERNAL_SYSCALL_STRING): Define.
- * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Include
- dl-sysdep.h.
- (SYSCALL_ERROR_HANDLER): Define RTLD_PRIVATE_ERRNO variant.
- (__INTERNAL_SYSCALL_STRING): Define.
- * sysdeps/unix/sysv/linux/sparc/sysdep.h (INLINE_SYSCALL): Pass
- __SYSCALL_STRING to inline_syscall*.
- (INTERNAL_SYSCALL, INTERNAL_SYSCALL_ERROR_P, INTERNAL_SYSCALL_ERRNO):
- New macros.
- (inline_syscall0, inline_syscall1, inline_syscall2, inline_syscall3,
- inline_syscall4, inline_syscall5, inline_syscall6): Add string
- argument.
-
-2002-10-24 Roland McGrath <roland(a)redhat.com>
-
- * sysdeps/generic/ldsodefs.h (_dl_starting_up): Declare it here.
- * sysdeps/unix/sysv/linux/init-first.c: Not here.
- * sysdeps/powerpc/elf/libc-start.c: Or here.
- * sysdeps/unix/sysv/aix/libc-start.c: Or here.
- * sysdeps/unix/sysv/aix/start-libc.c: Or here.
- * sysdeps/unix/sysv/aix/init-first.c: Or here.
- * sysdeps/generic/libc-start.c: Or here.
- * sysdeps/unix/sysv/linux/init-first.c (init): Protect _dl_starting_up
- access with [! SHARED].
- * sysdeps/unix/sysv/aix/init-first.c (init): Likewise.
-
- * libio/bug-wfflush.c: New file.
- * libio/Makefile (tests): Add bug-wfflush.
-
-2002-10-23 Roland McGrath <roland(a)redhat.com>
-
- * stdio-common/tst-fphex.c: New file.
- * stdio-common/Makefile (tests): Add tst-fphex.
- * sysdeps/generic/printf_fphex.c (__printf_fphex): Fix initialization
- of WNUMEND. Fix counting of decimal point in WIDTH. Print '0' pad
- chars always before the value digits.
- Reported by James Antill <james.antill(a)redhat.com>om>.
-
-2002-10-24 Jakub Jelinek <jakub(a)redhat.com>
-
- * posix/regcomp.c (re_comp): Call __regfree on re_comp_buf.
- (free_mem): New function.
- * posix/Makefile (tests): Add bug-regex14. Add bug-regex14-mem
- if not cross compiling.
- (generated): Add bug-regex14-mem and bug-regex14.mtrace.
- (bug-regex14-ENV): Set.
- (bug-regex14-mem): New target.
- * posix/bug-regex14.c: New file.
-
-2002-10-23 Roland McGrath <roland(a)redhat.com>
-
- * elf/Makefile ($(objpfx)librtld.map): Use temporary file for output
- target, so we don't touch it when the link fails.
-
- * libio/ftello.c (ftello): Use _IO_off64_t for type of POS.
- Check for the result overflowing off_t and fail with EOVERFLOW.
- * libio/ioftell.c (_IO_ftell): Likewise.
- * libio/iofgetpos.c (_IO_new_fgetpos): Likewise.
-
- * login/logwtmp.c (logwtmp): If sizeof ut_tv != sizeof struct timeval,
- use a temporary timeval on the stack for gettimeofday and copy it.
- * login/logout.c (logout): Likewise.
- Reported by Steven Munroe <sjmunroe(a)us.ibm.com>om>.
-
- * sysdeps/unix/sysv/linux/bits/statfs.h (struct statfs):
- Use __SWORD_TYPE instead of int for member types.
- (struct statfs64): Likewise.
- * sysdeps/unix/sysv/linux/alpha/bits/statfs.h: New file.
- * sysdeps/unix/sysv/linux/s390/bits/statfs.h: New file.
- * sysdeps/unix/sysv/linux/ia64/bits/statfs.h: File removed.
- * sysdeps/unix/sysv/linux/sparc/bits/statfs.h: File removed.
- * sysdeps/unix/sysv/linux/x86_64/bits/statfs.h: File removed.
-
- * sysdeps/unix/sysv/linux/sparc/bits/statvfs.h: Moved to ...
- * sysdeps/unix/sysv/linux/bits/statvfs.h: ... here.
- (ST_NODIRATIME): Restore fixed value of 2048.
- * sysdeps/unix/sysv/linux/alpha/bits/statvfs.h: File removed.
- * sysdeps/unix/sysv/linux/ia64/bits/statvfs.h: File removed.
-
- Rearranged <bits/types.h> definitions to reduce duplication.
- * sysdeps/generic/bits/types.h: Rewritten, using macros from
- <bits/wordsize.h> and new header <bits/typesizes.h>.
- * posix/Makefile (headers): Add bits/typesizes.h here.
- * sysdeps/generic/bits/typesizes.h: New file.
- * sysdeps/unix/sysv/linux/alpha/bits/typesizes.h: New file.
- * sysdeps/unix/sysv/linux/sparc/bits/typesizes.h: New file.
- * sysdeps/mach/hurd/bits/typesizes.h: New file.
- * sysdeps/unix/sysv/linux/alpha/bits/types.h: File removed.
- * sysdeps/unix/sysv/linux/bits/types.h: File removed.
- * sysdeps/unix/sysv/linux/ia64/bits/types.h: File removed.
- * sysdeps/unix/sysv/linux/mips/bits/types.h: File removed.
- * sysdeps/unix/sysv/linux/s390/bits/types.h: File removed.
- * sysdeps/unix/sysv/linux/sparc/bits/types.h: File removed.
- * sysdeps/unix/sysv/linux/x86_64/bits/types.h: File removed.
- * posix/sys/types.h [__USE_POSIX199506 || __USE_UNIX98]: Include
- <bits/pthreadtypes.h> here, not in <bits/types.h>.
- * signal/signal.h: Likewise.
-
- * streams/stropts.h: Include <bits/xtitypes.h>.
- * streams/Makefile (headers): Add bits/xtitypes.h here.
- * sysdeps/generic/bits/xtitypes.h: New file.
- * sysdeps/s390/bits/xtitypes.h: New file.
- * sysdeps/ia64/bits/xtitypes.h: New file.
- * sysdeps/x86_64/bits/xtitypes.h: New file.
-
- * sysvipc/Makefile (headers): Add bits/ipctypes.h here.
- * sysdeps/generic/bits/ipctypes.h: New file.
- * sysdeps/mips/bits/ipctypes.h: New file.
- * sysdeps/gnu/bits/shm.h: Include <bits/ipctypes.h>.
- * sysdeps/gnu/bits/msq.h: Likewise.
- * sysvipc/sys/ipc.h: Likewise.
-
-2002-10-22 Ulrich Drepper <drepper(a)redhat.com>
-
- * elf/dl-load.c (struct filebuf): For buf element to have the
- alignment of ElfXX_Ehdr since this is what will be stored in it.
-
-2002-10-22 Jakub Jelinek <jakub(a)redhat.com>
-
- * locale/programs/locarchive.c (add_alias): Change locrec_offset arg
- into pointer to locrec_offset.
- (add_locale_to_archive): Adjust callers. Free normalized_name right
- before returning, not immediately after add_locale, pass it to
- add_alias if not NULL instead of name. Rename second normalized_name
- occurence to nnormalized_codeset_name.
-
- * locale/programs/locarchive.c (enlarge_archive): Make sure
- string_size is always a multiple of 4.
- Reported by Andreas Schwab <schwab(a)suse.de>de>.
-
-2002-10-21 Andreas Schwab <schwab(a)suse.de>
-
- * sysdeps/unix/sysv/linux/ia64/syscalls.list (s_execve): Set
- caller to EXTRA instead of execve, since the latter has a
- higher-priority implementation in linuxthreads.
-
-2002-10-21 Roland McGrath <roland(a)redhat.com>
-
- * sysdeps/generic/libc-tls.c (__libc_setup_tls): Initialize the static
- slotinfo list's len member to the proper size, not just 1.
- Initialize static_map.l_tls_initimage.
-
- * elf/dl-open.c (dl_open_worker): Fix loop searching for
- dtv_slotinfo_list element containing new modules' l_tls_modid.
-
- * elf/tst-tls9.c, elf/tst-tls9-static.c: New files.
- * elf/tst-tlsmod5.c, elf/tst-tlsmod6.c: New files.
- * elf/Makefile (tests): Add tst-tls9.
- (tests-static): Add tst-tls9-static.
- (tst-tls9-static-ENV): New variable.
- ($(objpfx)tst-tls9-static, $(objpfx)tst-tls9-static.out): New targets.
-
- * elf/dl-close.c (remove_slotinfo): Remove an assert; the number of
- modids used by partially loaded modules being closed can't be known.
-
-2002-10-21 Isamu Hasegawa <isamu(a)yamato.ibm.com>
-
- * posix/Makefile: Add a test case for the bug reported by Aharon
- Robbins <arnold(a)skeeve.com>om>.
- * posix/bug-regex13.c: New file.
- * posix/regcomp.c (peek_token_bracket): Skip the byte already read.
-
-2002-10-21 Ulrich Drepper <drepper(a)redhat.com>
-
- * csu/gmon-start.c: Pretty printing.
-
-2002-10-19 Art Haas <ahaas(a)neosoft.com>
-
- * configure.in: Replace AC_CONFIG_HEADER with AC_CONFIG_HEADERS,
- add AC_HELP_STRING to all AC_ARG_WITH and AC_ARG_ENABLE macros,
- add autoconf quotes to the AC_CONFIG_AUX_DIR macro.
- * configure: Regenerated.
-
-2002-10-19 Roland McGrath <roland(a)redhat.com>
-
- * configure.in: Call AC_CONFIG_SUBDIRS with empty argument
- and then set $subdirs directly, because the new Autoconf breaks
- compatibility in every way imaginable and insists on whining
- about usage that worked since the dawn of time.
- * configure: Regenerated.
-
- * configure: Regenerated (using Autoconf 2.54).
- * sysdeps/alpha/elf/configure: Likewise.
- * sysdeps/generic/configure: Likewise.
- * sysdeps/i386/elf/configure: Likewise.
- * sysdeps/ia64/elf/configure: Likewise.
- * sysdeps/mach/hurd/configure: Likewise.
- * sysdeps/mach/configure: Likewise.
- * sysdeps/unix/configure: Likewise.
- * sysdeps/unix/common/configure: Likewise.
- * sysdeps/unix/sysv/aix/configure: Likewise.
- * sysdeps/unix/sysv/linux/configure: Likewise.
- * sysdeps/unix/sysv/linux/mips/configure: Likewise.
- * sysdeps/x86_64/elf/configure: Likewise.
-
- * config.make.in: Nix completely-soft nonsense.
- * configure.in: Likewise. Under --without-fp, use nofpu subdirectory
- of machine directories instead of fpu subdirectory.
- * sysdeps/powerpc/soft-fp/Makefile: Remove cruft added in last change.
- * sysdeps/powerpc/nofpu/Makefile: Put it in this new file instead.
- * sysdeps/powerpc/soft-fp/sim-full.c: Moved to ...
- * sysdeps/powerpc/nofpu/sim-full.c: ... here.
- * sysdeps/powerpc/soft-fp/fraiseexcpt.c: Moved to ...
- * sysdeps/powerpc/nofpu/fraiseexcpt.c: ... here.
- * sysdeps/powerpc/soft-fp/fegetexcept.c: Moved to ...
- * sysdeps/powerpc/nofpu/fegetexcept.c: ... here.
- * sysdeps/powerpc/soft-fp/fclrexcpt.c: Moved to ...
- * sysdeps/powerpc/nofpu/fclrexcpt.c: ... here.
- * sysdeps/powerpc/soft-fp/ftestexcept.c: Moved to ...
- * sysdeps/powerpc/nofpu/ftestexcept.c: ... here.
- * sysdeps/powerpc/soft-fp/fgetexcptflg.c: Moved to ...
- * sysdeps/powerpc/nofpu/fgetexcptflg.c: ... here.
- * sysdeps/powerpc/soft-fp/fsetexcptflg.c: Moved to ...
- * sysdeps/powerpc/nofpu/fsetexcptflg.c: ... here.
- * sysdeps/powerpc/soft-fp/fedisblxcpt.c: Moved to ...
- * sysdeps/powerpc/nofpu/fedisblxcpt.c: ... here.
- * sysdeps/powerpc/soft-fp/feenablxcpt.c: Moved to ...
- * sysdeps/powerpc/nofpu/feenablxcpt.c: ... here.
- * sysdeps/powerpc/soft-fp/fegetenv.c: Moved to ...
- * sysdeps/powerpc/nofpu/fegetenv.c: ... here.
- * sysdeps/powerpc/soft-fp/fesetenv.c: Moved to ...
- * sysdeps/powerpc/nofpu/fesetenv.c: ... here.
- * sysdeps/powerpc/soft-fp/fegetround.c: Moved to ...
- * sysdeps/powerpc/nofpu/fegetround.c: ... here.
- * sysdeps/powerpc/soft-fp/fesetround.c: Moved to ...
- * sysdeps/powerpc/nofpu/fesetround.c: ... here.
- * sysdeps/powerpc/soft-fp/feupdateenv.c: Moved to ...
- * sysdeps/powerpc/nofpu/feupdateenv.c: ... here.
- * sysdeps/powerpc/soft-fp/feholdexcpt.c: Moved to ...
- * sysdeps/powerpc/nofpu/feholdexcpt.c: ... here.
- * sysdeps/powerpc/soft-fp/fenv_const.c: Moved to ...
- * sysdeps/powerpc/nofpu/fenv_const.c: ... here.
- * sysdeps/powerpc/soft-fp/libm-test-ulps: Moved to ...
- * sysdeps/powerpc/nofpu/libm-test-ulps: ... here.
- * sysdeps/powerpc/soft-fp/soft-supp.h: Moved to ...
- * sysdeps/powerpc/nofpu/soft-supp.h: ... here.
- * sysdeps/powerpc/soft-fp/Versions (libc: GLIBC_2.3.2): Moved to ...
- * sysdeps/powerpc/nofpu/Versions: ... here, new file.
-
-2002-10-19 Bruno Haible <bruno(a)clisp.org>
-
- * sysdeps/unix/bsd/bsd4.4/freebsd/sys/sysmacros.h: New file.
-
-2002-10-18 Roland McGrath <roland(a)redhat.com>
-
- * io/Makefile (routines): Add lchmod.
- * io/sys/stat.h [__USE_BSD] (lchmod): Declare it.
- * sysdeps/generic/lchmod.c: New file.
- * sysdeps/mach/hurd/lchmod.c: New file.
- * io/Versions (libc: GLIBC_2.3.2): New set, add lchmod.
-
-2002-10-18 Art Haas <ahaas(a)neosoft.com>
-
- * configure.in: Remove remaining AC_FD_CC macros, and replace
- AC_FD_MSG with AS_MESSAGE_FD.
-
-2002-10-18 Roland McGrath <roland(a)redhat.com>
-
- * sysdeps/powerpc/powerpc32/dl-machine.c (__process_machine_rela): Fix
- typos: VALUE -> FINALADDR.
-
- * sysdeps/unix/alpha/sysdep.h (INLINE_SYSCALL, INLINE_SYSCALL1)
- (inline_syscall_clobbers, inline_syscall0, inline_syscall1)
- (inline_syscall2, inline_syscall3, inline_syscall4, inline_syscall5)
- (inline_syscall6): Move these macros ...
- * sysdeps/unix/sysv/linux/alpha/sysdep.h: ... to here.
-
- * configure.in (libc_link_dests, libc_link_sources): Remove these
- variables and the AC_LINK_FILES call.
-
- * sysdeps/powerpc/soft-fp/Versions (libc: GLIBC_2.3.2): Fix last
- change to put new symbols here instead of in GLIBC_2.2.
- * sysdeps/powerpc/Subdirs: Move this file ...
- * sysdeps/powerpc/soft-fp/Subdirs: ... here.
-
-2002-10-07 Roland McGrath <roland(a)redhat.com>
-
- * sysdeps/generic/bits/time.h: Replaced with contents of the
- sysdeps/unix/sysv/linux/i386/bits/time.h file. All the following
- files were identical except for the absence of CLOCK_THREAD_CPUTIME_ID
- and CLOCK_PROCESS_CPUTIME_ID in .../linux/bits/time.h; adding these
- macros is ok even for architectures that don't now implement them.
- * sysdeps/mach/hurd/bits/time.h: File removed.
- * sysdeps/unix/sysv/linux/bits/time.h: File removed.
- * sysdeps/unix/sysv/linux/i386/bits/time.h: File removed.
- * sysdeps/unix/sysv/linux/ia64/bits/time.h: File removed.
- * sysdeps/unix/sysv/linux/sparc/bits/time.h: File removed.
- * sysdeps/unix/sysv/linux/x86_64/bits/time.h: File removed.
-
-2002-10-18 Jeff Bailey <jbailey(a)gnu.org>
-
- * configure.in: Replace obsolete AC_OUTPUT syntax with
- AC_CONFIG_FILES, AC_CONFIG_COMMANDS, and new-type AC_OUTPUT trio.
-
- * aclocal.m4 (GLIBC_PROVIDES): Add AC_PROVIDEs for
- _AS_PATH_SEPARATOR_PREPARE and _AS_TEST_PREPARE.
-
- * configure.in: Replace AC_FD_CC with AS_MESSAGE_LOG_FD.
- * sysdeps/alpha/elf/configure.in: Likewise.
- * sysdeps/i386/elf/configure.in: Likewise.
- * sysdeps/mach/hurd/configure.in: Likewise.
- * sysdeps/x86_64/elf/configure.in: Likewise.
-
- * configure.in: Use AC_CONFIG_SRCDIR and new AC_INIT syntax.
-
- * sysdeps/alpha/elf/configure.in: Remove unneeded sinclude statement.
- * sysdeps/generic/configure.in: Likewise.
- * sysdeps/i386/elf/configure.in: Likewise.
- * sysdeps/ia64/elf/configure.in: Likewise.
- * sysdeps/mach/configure.in: Likewise.
- * sysdeps/mach/hurd/configure.in: Likewise.
- * sysdeps/unix/configure.in: Likewise.
- * sysdeps/unix/common/configure.in: Likewise.
- * sysdeps/unix/sysv/aix/configure.in: Likewise.
- * sysdeps/unix/sysv/linux/configure.in: Likewise.
- * sysdeps/unix/sysv/linux/mips/configure.in: Likewise.
- * sysdeps/x86_64/elf/configure.in: Likewise.
-
- * aclocal.m4: Use just the bits from AS_INIT that are needed for the
- GLIBC_PROVIDES. Use plain comment instead of HEADER-COMMENT so
- that it's obvious when extra autoconf machinery is being dragged in.
-
-2002-10-18 Roland McGrath <roland(a)redhat.com>
-
- * configure.in: Remove bogus echo included in
- 2002-10-08 Aldy Hernandez <aldyh(a)redhat.com> change.
- * configure: Regenerated.
-
-2002-10-18 Jakub Jelinek <jakub(a)redhat.com>
-
- * sysdeps/unix/sysv/linux/pathconf.h (statfs_link_max): Add inline.
- (statfs_filesize_max): New function.
- * sysdeps/unix/sysv/linux/linux_fsinfo.h (JFFS_SUPER_MAGIC,
- JFFS2_SUPER_MAGIC, JFS_SUPER_MAGIC, NTFS_SUPER_MAGIC,
- ROMFS_SUPER_MAGIC, UDF_SUPER_MAGIC): Define.
- * sysdeps/unix/sysv/linux/fpathconf.c (__fpathconf): Use
- statfs_filesize_max.
- * sysdeps/unix/sysv/linux/pathconf.c (__pathconf): Likewise.
- * sysdeps/unix/sysv/linux/alpha/fpathconf.c: Removed.
- * sysdeps/unix/sysv/linux/alpha/pathconf.c: Removed.
-
-2002-10-17 Roland McGrath <roland(a)redhat.com>
-
- * configure.in (MIG): Just AC_SUBST it here.
- * configure: Regenerated.
- * sysdeps/mach/configure.in (MIG): Do the AC_CHECK_TOOL here.
- Adding final - argument to all AC_CHECK_HEADER uses for .defs files.
- * sysdeps/mach/configure: Regenerated.
-
- * aclocal.m4 (GLIBC_PROVIDES): Add AC_PROVIDE([_AS_TR_SH_PREPARE])
- and AC_PROVIDE([_AS_CR_PREPARE]).
-
- * aclocal.m4 (GLIBC_PROVIDES): Add AC_PROVIDE([_AS_ECHO_N_PREPARE]).
- Remove AC_LANG(C) call, instead just define([_AC_LANG], [C]).
-
- * elf/dl-support.c: Move _dl_tls_* variables to ...
- * sysdeps/generic/libc-tls.c: ... here.
-
- * elf/dl-close.c (remove_slotinfo): Take new argument. If false,
- allow IDX to be one past the current last slotinfo entry.
- (_dl_close): Pass IMAP->l_init_called for that parameter.
-
-2002-10-07 Andreas Schwab <schwab(a)suse.de>
-
- * aclocal.m4: Fix for autoconf 2.53.
- * configure.in: Likewise. Require autoconf 2.53.
-
-2002-10-08 Richard Henderson <rth(a)redhat.com>
-
- * soft-fp/op-4.h: Handle carry correctly in
- __FP_FRAC_ADD_3, __FP_FRAC_ADD_4, __FP_FRAC_SUB_3,
- __FP_FRAC_SUB_4, __FP_FRAC_DEC_3, __FP_FRAC_DEC_4.
- * soft-fp/op-common.h: New macros _FP_DIV_MEAT_N_loop.
-
-2002-10-08 Aldy Hernandez <aldyh(a)redhat.com>
-
- * configure.in: Compute completely-soft.
- * config.make.in: Make completely-soft available to sub-makes.
- * sysdeps/powerpc/soft-fp/Makefile: Add gcc-single-routines and
- gcc-double-routines. Add sim-full.c. Add fenv_const and
- fe_nomask to libm-support.
- * sysdeps/powerpc/soft-fp/sim-full.c: New file.
- * sysdeps/powerpc/soft-fp/fraiseexcpt.c: New file.
- * sysdeps/powerpc/soft-fp/fegetexcept.c: New file.
- * sysdeps/powerpc/soft-fp/fclrexcpt.c: New file.
- * sysdeps/powerpc/soft-fp/ftestexcept.c: New file.
- * sysdeps/powerpc/soft-fp/fgetexcptflg.c: New file.
- * sysdeps/powerpc/soft-fp/fsetexcptflg.c: New file.
- * sysdeps/powerpc/soft-fp/fedisblxcpt.c: New file.
- * sysdeps/powerpc/soft-fp/feenablxcpt.c: New file.
- * sysdeps/powerpc/soft-fp/fegetenv.c: New file.
- * sysdeps/powerpc/soft-fp/fesetenv.c: New file.
- * sysdeps/powerpc/soft-fp/fegetround.c: New file.
- * sysdeps/powerpc/soft-fp/fesetround.c: New file.
- * sysdeps/powerpc/soft-fp/feupdateenv.c: New file.
- * sysdeps/powerpc/soft-fp/feholdexcpt.c: New file.
- * sysdeps/powerpc/soft-fp/fenv_const.c: New file.
- * sysdeps/powerpc/soft-fp/libm-test-ulps: New file.
- * sysdeps/powerpc/soft-fp/soft-supp.h: New file.
- * sysdeps/powerpc/soft-fp/Versions: Add libgcc soft-float
- symbols. Add __sim_disabled_exceptions, __sim_exceptions,
- __sim_round_mode.
- * sysdeps/powerpc/soft-float/Dist: Add sim-full.c, fenv_const.c.
- * sysdeps/powerpc/soft-float/sfp-machine.h: Define
- FP_HANDLE_EXCEPTIONS.
- Define FP_ROUNDMODE.
- Redefine FP_* macros to correspond to the FE_* bit positions.
- Define FP_DIV_MEAT_S to _FP_DIV_MEAT_1_loop.
- Define externs for __sim_exceptions, __sim_disabled_exceptions,
- __sim_round_mode, __simulate_exceptions.
- * sysdeps/powerpc/fpu/bits/fenv.h: Move file from here...
- * sysdeps/powerpc/bits/fenv.h: ...to here.
-
-2002-10-06 Jakub Jelinek <jakub(a)redhat.com>
-
- * sysdeps/powerpc/powerpc32/dl-machine.c (__process_machine_rela):
- Store R_PPC_UADDR32 and R_PPC_UADDR16 one byte at a time.
- Use __builtin_expect for R_PPC_ADDR24 overflow check. Fix
- R_PPC_ADDR16, R_PPC_UADDR16 and R_PPC_ADDR14* overflow check, use
- __builtin_expect.
-
-2002-10-15 Jakub Jelinek <jakub(a)redhat.com>
-
- * include/resolv.h (__libc_res_nquery, __libc_res_nsearch,
- __libc_res_nsend): New prototypes.
- * resolv/res_query.c (QUERYSIZE): Define.
- (__libc_res_nquery): Renamed from res_nquery. Added answerp
- argument. Allocate only QUERYSIZE bytes first, if res_nmkquery
- fails use MAXPACKET buffer. Call __libc_res_nsend instead of
- res_nsend, pass answerp.
- (res_nquery): Changed into wrapper around __libc_res_nquery.
- (__libc_res_nsearch): Renamed from res_nsearch. Added answerp
- argument. Call __libc_res_nquerydomain and __libc_res_nquery
- instead of the non-__libc_ variants, pass them answerp.
- (res_nsearch): Changed into wrapper around __libc_res_nsearch.
- (__libc_res_nquerydomain): Renamed from res_nquerydomain.
- Added answerp argument. Call __libc_res_nquery instead of
- res_nquery, pass answerp.
- (res_nquerydomain): Changed into wrapper around
- __libc_res_nquerydomain.
- * resolv/res_send.c: Include sys/ioctl.h.
- (MAXPACKET): Define.
- (send_vc): Change arguments. Reallocate answer buffer if it is
- too small.
- (send_dg): Likewise.
- (__libc_res_nsend): Renamed from res_nsend. Added ansp argument.
- Reallocate answer buffer if it is too small and hooks are in use.
- Adjust calls to send_vc and send_dg.
- (res_nsend): Changed into wrapper around __libc_res_nsend.
- * resolv/nss_dns/dns-host.c (_nss_dns_gethostbyname2_r): Allocate
- just 1K answer buffer on the stack, use __libc_res_nsearch instead
- of res_nsearch.
- (_nss_dns_gethostbyaddr_r): Similarly with __libc_res_nquery.
- * resolv/nss_dns/dns-network.c (_nss_dns_getnetbyaddr_r): Likewise.
- (_nss_dns_getnetbyname_r): Similarly with __libc_res_nsearch.
- * resolv/gethnamaddr.c (gethostbyname2): Likewise.
- (gethostbyaddr): Similarly with __libc_res_nquery.
- * resolv/Versions (libresolv): Export __libc_res_nquery and
- __libc_res_nsearch at GLIBC_PRIVATE.
-
-2002-10-17 Roland McGrath <roland(a)redhat.com>
-
- * configure.in: Grok --without-__thread and disable HAVE___THREAD.
- * configure: Regenerated.
-
- * sysdeps/x86_64/dl-machine.h (elf_machine_rela): Do CHECK_STATIC_TLS
- before performing the reloc, not after.
- * sysdeps/i386/dl-machine.h (elf_machine_rel): Likewise.
-
-2002-10-17 Ulrich Drepper <drepper(a)redhat.com>
-
- * locale/programs/locale.c (write_locales): Use 'm' flag in fopen call.
- * locale/programs/linereader.c (lr_open): Likewise.
- * locale/programs/charmap-dir.c (charmap_open): Likewise.
- * locale/programs/locarchive.c (add_locale_to_archive): Likewise.
-
-2002-10-17 Isamu Hasegawa <isamu(a)yamato.ibm.com>
-
- * posix/bug-regex11.c: Add a test case for the bug reported by
- Paolo Bonzini <bonzini(a)gnu.org>rg>.
- * posix/regexec.c (sift_states_bkref): Use correct destination of
- the back reference.
-
-2002-10-17 Roland McGrath <roland(a)redhat.com>
-
- * elf/dl-load.c (_dl_map_object_from_fd): Don't check DF_STATIC_TLS.
- * elf/dl-reloc.c (_dl_relocate_object: CHECK_STATIC_TLS): New macro
- to signal error if an IE-model TLS reloc resolved to a dlopen'd module.
- * sysdeps/i386/dl-machine.h (elf_machine_rel, elf_machine_rela):
- Call it after performing TPOFF relocs.
- * sysdeps/x86_64/dl-machine.h (elf_machine_rela): Likewise.
- * sysdeps/sh/dl-machine.h (elf_machine_rela): Likewise.
- * elf/dl-conflict.c (CHECK_STATIC_TLS): New macro (no-op).
-
- * elf/dl-close.c (remove_slotinfo): Change asserts so as not to crash
- when closing a partially-initialized object.
-
- * elf/dl-load.c (_dl_map_object_from_fd) [! USE_TLS]: Call lose
- instead of _dl_fatal_printf when we see PT_TLS.
-
- * Makeconfig (CPPFLAGS): Fix last change to use $(libof-$(<F))
- instead of $(libof-$<).
-
-2002-10-16 Roland McGrath <roland(a)redhat.com>
-
- * cppflags-iterator.mk (CPPFLAGS-$(cpp-src)): Variable removed.
- instead of += to append, to be sure $(lib) gets expanded at defn time.
- (libof-$(cpp-src)): New variable, define this instead.
- * extra-lib.mk (cpp-srcs-left): Reduce duplication in include setup.
- (lib): Don't use override.
- (CPPFLAGS-$(lib)): New variable, put -D's here.
- * Makeconfig (CPPFLAGS): Use basename fn for CPPFLAGS-basename.
- Also add $(CPPFLAGS-LIB) before the file-specific flags, for each
- LIB found by $(libof-*) for basename, target, or source.
- * Makerules (CPPFLAGS-nonlib): New variable.
- * nscd/Makefile (lib): Set to nonlib when using cppflags-iterator.mk.
- * locale/Makefile (lib): Likewise.
- * sunrpc/Makefile (lib): Likewise.
-
- * sysdeps/unix/sysv/linux/fpathconf.c (LINUX_LINK_MAX): Move macro ...
- * sysdeps/unix/sysv/linux/linux_fsinfo.h (LINUX_LINK_MAX): ... here.
- * sysdeps/unix/sysv/linux/pathconf.h: New file.
- (statfs_link_max): New function, guts from fpathconf.c.
- * sysdeps/unix/sysv/linux/fpathconf.c: Rewritten using that.
- * sysdeps/unix/sysv/linux/pathconf.c (__pathconf): Likewise.
- * sysdeps/unix/sysv/linux/alpha/pathconf.c (__pathconf): Rewritten
- to use the linux/pathconf.c code by #include rather than duplication.
- * sysdeps/unix/sysv/linux/alpha/fpathconf.c (__pathconf): Likewise.
-
-2002-10-16 Jakub Jelinek <jakub(a)redhat.com>
-
- * sysdeps/unix/sysv/linux/x86_64/sysdep.h (SYSCALL_ERROR_HANDLER):
- Use __libc_errno only for libc itself.
-
-2002-10-16 Andreas Jaeger <aj(a)suse.de>
-
- * sysdeps/x86_64/_mcount.S: Fix off-by-1 error in argument access.
-
-2002-10-16 Ulrich Drepper <drepper(a)redhat.com>
-
- * sysdeps/unix/sysv/linux/i386/sysdep.h (SYSCALL_ERROR_HANDLER):
- Use __libc_errno only for libc itself.
-
-2002-10-15 Roland McGrath <roland(a)redhat.com>
- Jakub Jelinek <jakub(a)redhat.com>
-
- * sysdeps/unix/sysv/linux/Makefile
- ($(objpfx)syscall-%.h $(objpfx)syscall-%.d): Take code from
- sparc/Makefile to produce a bi-arch file as needed.
- That's now parameterized by the variable $(64bit-predefine).
- Use LC_ALL=C for `comm' commands in that rule.
- No longer conditional on [$(no_syscall_list_h)].
- * sysdeps/unix/sysv/linux/sparc/Makefile: Remove replacement rules.
- (64bit-predefine): New variable.
- * sysdeps/unix/sysv/linux/x86_64/Makefile: Likewise.
- * sysdeps/unix/sysv/linux/s390/Makefile: New file.
- * sysdeps/unix/sysv/linux/powerpc/Makefile
- (64bit-predefine): New variable.
-
-2002-10-15 Roland McGrath <roland(a)redhat.com>
-
- * sysdeps/unix/sysv/linux/Makefile
- ($(objpfx)syscall-%.h $(objpfx)syscall-%.d)
-
- * login/utmp-private.h: Declare __libc_utmp_lock.
- * sysdeps/unix/getlogin_r.c (getlogin_r): Take __libc_utmp_lock once
- and call __libc_utmp_jump_table functions directly, instead of using
- __setutent et al.
-
- * sysdeps/unix/sysv/linux/configure.in: Use case instead of if.
- * sysdeps/unix/sysv/linux/configure: Regenerated.
-
- * sysdeps/gnu/bits/utmp.h: Include <bits/wordsize.h>.
- (struct lastlog) [__WORDSIZE == 64 && __WORDSIZE_COMPAT32]:
- Use int32_t for ll_time.
- (struct utmp) [__WORDSIZE == 64 && __WORDSIZE_COMPAT32]:
- Use int32_t instead of long int for ut_session.
- Use an anonymous struct with 32-bit fields for ut_tv.
- * sysdeps/gnu/bits/utmpx.h: Include <bits/wordsize.h>.
- (struct utmpx) [__WORDSIZE == 64 && __WORDSIZE_COMPAT32]: Do the same
- here as in utmp.h for `struct utmp'.
- * sysdeps/unix/sysv/linux/powerpc/bits/utmp.h: File removed.
- * sysdeps/unix/sysv/linux/powerpc/bits/utmpx.h: File removed.
- * sysdeps/unix/sysv/linux/sparc/bits/utmp.h: File removed.
- * sysdeps/unix/sysv/linux/sparc/bits/utmpx.h: File removed.
- * sysdeps/unix/sysv/linux/x86_64/bits/utmp.h: File removed.
- * sysdeps/unix/sysv/linux/x86_64/bits/utmpx.h: File removed.
-
- * sysdeps/unix/sysv/linux/bits/resource.h: Replaced with the contents
- of the sysdeps/unix/sysv/linux/i386/bits/resource.h file.
- All the following files were identical or equivalent to it.
- * sysdeps/unix/sysv/linux/i386/bits/resource.h: File removed.
- * sysdeps/unix/sysv/linux/arm/bits/resource.h: File removed.
- * sysdeps/unix/sysv/linux/cris/bits/resource.h: File removed.
- * sysdeps/unix/sysv/linux/hppa/bits/resource.h: File removed.
- * sysdeps/unix/sysv/linux/ia64/bits/resource.h: File removed.
- * sysdeps/unix/sysv/linux/m68k/bits/resource.h: File removed.
- * sysdeps/unix/sysv/linux/powerpc/bits/resource.h: File removed.
- * sysdeps/unix/sysv/linux/s390/bits/resource.h: File removed.
- * sysdeps/unix/sysv/linux/sh/bits/resource.h: File removed.
- * sysdeps/unix/sysv/linux/x86_64/bits/resource.h: File removed.
-
- * sysdeps/unix/sysv/linux/bits/socket.h (struct msghdr): Use size_t
- instead of int for msg_iovlen, instead of socklen_t for msg_controllen.
- Other than the previously incorrect sign of msg_iovlen, this is a
- no-op on 32-bit platforms. On 64-bit platforms it makes this header
- match their layouts as well, so the following are now identical to it.
- * sysdeps/unix/sysv/linux/s390/bits/socket.h: File removed.
- * sysdeps/unix/sysv/linux/sparc/bits/socket.h: File removed.
- * sysdeps/unix/sysv/linux/x86_64/bits/socket.h: File removed.
- * sysdeps/unix/sysv/linux/ia64/bits/socket.h: File removed.
- * sysdeps/unix/sysv/linux/alpha/bits/socket.h: File removed.
-
-2002-10-15 Ulrich Drepper <drepper(a)redhat.com>
-
- * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_VFORK_SYSCALL):
- Define for 2.4+ kernels.
-
- * sysdeps/unix/sysv/linux/i386/vfork.S: Optimize for kernels which
- are known to have the vfork syscall. Don't confuse the CPUs
- branch prediction unit by jumping to the return address.
-
- * sysdeps/unix/sysv/linux/alpha/fpathconf.c (__fpathconf): Add
- support for reiserfs and xfs.
-
- * sysdeps/unix/sysv/linux/fpathconf.c (__fpathconf): Add case for
- XFS link count.
- * sysdeps/unix/sysv/linux/linux_fsinfo.h: Define XFS_SUPER_MAGIC
- and XFS_LINK_MAX.
- Patch by Eric Sandeen <sandeen(a)sgi.com> [PR libc/4706].
-
-2002-10-16 Jakub Jelinek <jakub(a)redhat.com>
-
- * include/libc-symbols.h (attribute_tls_model_ie): Define.
- * include/errno.h (errno): Define to __libc_errno in libc.so.
- Add attribute_tls_model_ie.
- * include/netdb.h (h_errno): Define to __libc_h_errno in libc.so.
- Add attribute_tls_model_ie.
- * include/resolv.h (_res): Define to __libc_res in libc.so. Add
- attribute_tls_model_ie.
- * inet/herrno.c (__libc_h_errno): Add hidden alias to h_errno.
- (h_errno): Define.
- * resolv/res_libc.c (__libc_res): Add hidden alias to _res.
- (_res): Define.
- * sysdeps/generic/bits/libc-tsd.h (__libc_tsd_define): Add
- attribute_tls_model_ie.
- * sysdeps/generic/errno-loc.c (errno): Only undefine if not using
- __thread.
- * sysdeps/generic/errno.c (__libc_errno): Add hidden alias to errno.
- * sysdeps/unix/sysv/linux/i386/sysdep.h (SYSCALL_ERROR_HANDLER): Use
- __libc_errno in USE___THREAD case.
- * sysdeps/unix/sysv/linux/x86_64/sysdep.h (SYSCALL_ERROR_HANDLER):
- Likewise.
- * configure.in (HAVE_TLS_MODEL_ATTRIBUTE): Check for
- __attribute__((tls_model (""))).
- * configure: Rebuilt.
- * config.h.in (HAVE_TLS_MODEL_ATTRIBUTE): Add.
-
-2002-10-15 Ulrich Drepper <drepper(a)redhat.com>
-
- * timezone/asia: Update from tzdata2002d.
- * timezone/australasia: Likewise.
- * timezone/iso3166.tab: Likewise.
- * timezone/southamerica: Likewise.
- * timezone/zone-tab: Likewise.
-
-2002-10-15 Roland McGrath <roland(a)redhat.com>
-
- * sysdeps/generic/dl-tls.c (_dl_deallocate_tls) [TLS_TCB_AT_TP]:
- Adjust TCB pointer before calling free, so we get the whole block.
-
-2002-10-14 Roland McGrath <roland(a)redhat.com>
-
- * sysdeps/unix/sysv/linux/x86_64/sigaction.c
- [HAVE_HIDDEN && !HAVE_BROKEN_VISIBILITY_ATTRIBUTE]: Declare restore_rt
- extern using attribute_hidden instead of static, avoids warning.
-
-2002-10-09 Jakub Jelinek <jakub(a)redhat.com>
-
- * sysdeps/unix/sysv/linux/configure.in: Use */lib64 for s390x too.
- * sysdeps/unix/sysv/linux/configure: Rebuilt.
-
-2002-10-14 Ulrich Drepper <drepper(a)redhat.com>
-
- * po/sv.po: Update from translation team.
-
-2002-10-12 H.J. Lu <hjl(a)gnu.org>
-
- * sunrpc/thrsvc.c (PROCQUIT): New.
- (struct rpc_arg): New.
- (dispatch): Call exit (0) if request->rq_proc == PROCQUIT.
- (test_one_call): Take struct rpc_arg * instead of CLIENT *c.
- (thread_wrapper): Modified for struct rpc_arg * and call PROCQUIT.
- (main): Modified for struct rpc_arg *.
-
-2002-10-14 Ulrich Drepper <drepper(a)redhat.com>
-
- * dirent/scandir.c: Rearrange code a bit to reduce binary size.
-
-2002-10-14 Jakub Jelinek <jakub(a)redhat.com>
-
- * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Include tls.h.
- (SYSCALL_ERROR_HANDLER): Use RTLD_PRIVATE_ERRNO sequence
- in ld.so even if __thread is supported.
-
-2002-10-13 Jakub Jelinek <jakub(a)redhat.com>
-
- * sysdeps/unix/sysv/linux/arm/profil-counter.h (profil_counter):
- Add hack to prevent the compiler from clobbering the signal context.
- * sysdeps/unix/sysv/linux/sh/profil-counter.h (profil_counter):
- Likewise.
- * sysdeps/unix/sysv/linux/x86_64/profil-counter.h (profil_counter):
- Likewise.
-
-2002-10-14 Andreas Jaeger <aj(a)suse.de>
-
- * sysdeps/mips/fpu/libm-test-ulps: Regenerated by
- Guido Guenther <agx(a)sigxcpu.org>rg>.
-
-2002-10-14 Ulrich Drepper <drepper(a)redhat.com>
-
- * po/sk.po: Update from translation team.
-
-2002-09-26 Roland McGrath <roland(a)redhat.com>
-
- * elf/dl-load.c (_dl_dst_count, _dl_dst_substitute): Handle $LIB
- dynamic string tag.
- * elf/Makefile ($(objpfx)trusted-dirs.st): Make the output define
- DL_DST_LIB based on $(slibdir).
-
-2002-10-13 Roland McGrath <roland(a)frob.com>
-
- * elf/rtld-Rules ($(objpfx)rtld-libc.a): Use $(verbose) in ar command.
-
- * sysdeps/mach/hurd/getresuid.c: New file.
- * sysdeps/mach/hurd/getresgid.c: New file.
- * sysdeps/mach/hurd/setresuid.c: New file.
- * sysdeps/mach/hurd/setresgid.c: New file.
-
- * posix/unistd.h [__USE_GNU] (getresuid, getresgid, setresuid,
- setresgid): Declare them.
- * NEWS: Mention it.
- * include/unistd.h
- (__getresuid, __getresgid, __setresuid, __setresgid): Declare them,
- add libc_hidden_proto.
- * posix/Versions (libc: GLIBC_2.3.2): New set. Add
- getresuid, getresgid, setresuid, setresgid here.
- * Versions.def (libc): Define GLIBC_2.3.2 set.
- * sysdeps/generic/getresuid.c (__getresuid): Fix argument types.
- Add libc_hidden_def.
- * sysdeps/generic/getresgid.c (__getresgid): Likewise.
- * sysdeps/generic/setresgid.c: New file.
- * sysdeps/generic/setresuid.c: New file.
- * sysdeps/unix/sysv/linux/Makefile [$(subdir) = misc]
- (sysdep_routines): Don't add getresuid and getresgid here.
- * sysdeps/unix/sysv/linux/arm/Makefile [$(subdir) = misc]
- (sysdep_routines): Don't add setresuid and setresgid here.
- * sysdeps/unix/sysv/linux/cris/Makefile: Likewise.
- * sysdeps/unix/sysv/linux/sh/Makefile: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/Makefile: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/Makefile: Likewise.
- * sysdeps/unix/sysv/linux/i386/Makefile: Likewise.
- * sysdeps/unix/sysv/linux/m68k/Makefile: Likewise.
- * posix/Makefile (routines): Add them all here instead.
- * sysdeps/unix/sysv/linux/i386/getresuid.c (getresuid): Renamed to
- __getresuid. Add libc_hidden_def for that, and weak alias to old name.
- * sysdeps/unix/sysv/linux/i386/getresgid.c (getresgid): Renamed to
- __getresgid. Add libc_hidden_def for that, and weak alias to old name.
- * sysdeps/unix/sysv/linux/i386/setresuid.c: Add libc_hidden_def.
- [! __NR_setresuid]: Include generic file.
- * sysdeps/unix/sysv/linux/i386/setresgid.c (setresgid): Renamed to
- __setresgid. Add libc_hidden_def for that, and weak alias to old name.
- [! __NR_setresuid]: Include generic file.
- * sysdeps/unix/sysv/linux/syscalls.list (setresuid, setresgid):
- Caller is - now, not EXTRA.
- * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list
- (setresuid, setresgid, getresuid, getresgid): Likewise.
- * sysdeps/unix/sysv/linux/syscalls.list (getresuid, getresgid):
- Add these calls here.
- * sysdeps/unix/sysv/linux/alpha/syscalls.list: Remove them here.
- * sysdeps/unix/sysv/linux/hppa/syscalls.list: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/syscalls.list: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list: Likewise.
- * sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
- * sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise.
-
- * sysdeps/unix/sysv/linux/Makefile [$(subdir) = misc]
- (sysdep_routines): Add setfsuid and setfsgid here.
- * sysdeps/unix/sysv/linux/arm/Makefile: Not here.
- * sysdeps/unix/sysv/linux/sparc/sparc32/Makefile: Likewise.
- * sysdeps/unix/sysv/linux/cris/Makefile: Likewise.
- * sysdeps/unix/sysv/linux/sh/Makefile: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/Makefile: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/Makefile: Likewise.
- * sysdeps/unix/sysv/linux/i386/Makefile: Likewise.
- * sysdeps/unix/sysv/linux/m68k/Makefile: Likewise.
-
- * hurd/errno.c: Renamed to ...
- * hurd/errno-loc.c: ... this.
- * hurd/Makefile (routines): errno -> errno-loc
-
-2002-10-13 Ulrich Drepper <drepper(a)redhat.com>
-
- * po/de.po: Update from translation team.
-
- * MakeTAGS: Add -E flag to xgettext runs.
-
-2002-10-12 Ulrich Drepper <drepper(a)redhat.com>
-
- * po/fr.po: Update from translation team.
-
- * sysdeps/posix/system.c: Remove support for old and buggy SCO systems.
- Optimize a bit for use in glibc.
-
-2002-10-12 Roland McGrath <roland(a)redhat.com>
-
- * stdio-common/tst-rndseek.c (TIMEOUT): Increase to 10 seconds.
- Some machines are slow. Guido Guenther <agx(a)sigxcpu.org> has one.
-
-2002-10-12 Ulrich Drepper <drepper(a)redhat.com>
-
- * po/sv.po: Update from translation team.
-
-2002-10-11 Isamu Hasegawa <isamu(a)yamato.ibm.com>
-
- * posix/regcomp.c (re_compile_fastmap_iter): Remove the handling
- OP_CONTEXT_NODE.
- (regfree): Likewise.
- (create_initial_state): Likewise.
- (analyze): Remove the substitutions which became useless.
- (calc_first): Likewise.
- (calc_epsdest): Use edests of OP_BACK_REF in case that it has
- epsilon destination.
- (duplicate_node_closure): New function.
- (duplicate_node): Remove the handling OP_CONTEXT_NODE.
- (calc_inveclosure): Likewise.
- (calc_eclosure): Likewise.
- (calc_eclosure_iter): Invoke duplicate_node_closure instead of
- direct invocation of duplicate_node.
- (parse): Don't use comma operator in the return to avoid compiler
- warning.
- (parse_reg_exp): Likewise.
- (parse_branch): Likewise.
- (parse_expression): Likewise.
- (parse_sub_exp): Likewise.
- (parse_dup_op): Likewise.
- * posix/regex_internal.c (re_dfa_add_node): Remove the substitutions
- which became useless.
- (create_ci_newstate): Remove the handling OP_CONTEXT_NODE.
- (create_cd_newstate): Likewise.
- * posix/regex_internal.h (re_token_type_t): Remove the obsolete type.
- (re_token_t): Likewise.
- (re_dfa_t): Likewise.
- (re_node_set_remove): New macro.
- * posix/regexec.c (check_matching): Remove the handling
- OP_CONTEXT_NODE.
- (check_halt_node_context): Likewise.
- (proceed_next_node): Likewise.
- (pop_fail_stack): Fix the memory leak.
- (set_regs): Likewise.
- (free_fail_stack_return): New function.
- (sift_states_backward): Fix the memory leak. Remove the handling
- OP_CONTEXT_NODE.
- (update_cur_sifted_state): Append some if clause to avoid redundant
- call.
- (sub_epsilon_src_nodes): Use IS_EPSILON_NODE since it might be a
- back reference.
- (check_dst_limits): Remove the handling OP_CONTEXT_NODE.
- (check_subexp_limits): Likewise.
- (search_subexp): Likewise.
- (sift_states_bkref): Likewise.
- (transit_state_mb): Likewise.
- (transit_state_bkref_loop): Likewise.
- (transit_state_bkref_loop): Likewise.
- (group_nodes_into_DFAstates): Likewise.
- (check_node_accept): Likewise.
- (sift_ctx_init): Add initializing.
-
-2002-10-12 Ulrich Drepper <drepper(a)redhat.com>
-
- * sysdeps/unix/sysv/linux/i386/sysdep.h (INLINE_SYSCALL): Use
- __builtin_expect.
-
-2002-10-11 Ulrich Drepper <drepper(a)redhat.com>
-
- * elf/dl-load.c (_dl_map_object_from_fd): Remove unnecessarily
- duplicated variable c.
-
- * sysdeps/unix/sysv/linux/sigwait.c (__sigwait): Use INTERNAL_SYSCALL
- if possible.
-
- * sysdeps/unix/sysv/linux/i386/sysdep.h
- (INTERNAL_SYSCALL_ERROR_P): New define.
- (INTERNAL_SYSCALL_ERRNO): Likewise.
-
- * sysdeps/unix/sysv/linux/i386/profil-counter.h (profil_counter):
- Add hack to prevent the compiler from clobbering the signal context.
-
-2002-10-11 Roland McGrath <roland(a)redhat.com>
-
- * sysdeps/unix/sysv/linux/x86_64/sysdep.h (SYSCALL_ERROR_HANDLER):
- Fix typos.
-
- * sysdeps/generic/dl-lookupcfg.h: Include <tls.h>.
- * sysdeps/sh/dl-lookupcfg.h: File removed.
- * sysdeps/i386/dl-lookupcfg.h: File removed.
-
- * sysdeps/unix/sysv/linux/x86_64/sysdep.h (SYSCALL_ERROR_HANDLER): Add
- missing labels and ; from last change.
-
- * stdio-common/tst-sscanf.c (val_double): Append .0 to large whole
- number literals, so they are doubles instead of ints.
-
-2002-10-09 Roland McGrath <roland(a)redhat.com>
-
- * sysdeps/generic/bits/libc-tsd.h [USE___THREAD]: Conditional
- changed from [USE_TLS && HAVE___THREAD].
-
- * sysdeps/i386/dl-machine.h (elf_machine_type_class, elf_machine_rel):
- Disable TLS relocs if [RTLD_BOOTSTRAP && !USE___THREAD].
- * sysdeps/x86_64/dl-machine.h
- (elf_machine_type_class, elf_machine_rela): Likewise.
- * sysdeps/sh/dl-machine.h (elf_machine_type_class, elf_machine_rela):
- Likewise.
-
- * include/link.h (struct link_map): Remove member l_tls_tp_initialized.
- * elf/rtld.c (_dl_start_final, dl_main): Don't use it.
- (_dl_start): Conditionalize PT_TLS check on [USE___THREAD].
-
- * sysdeps/i386/dl-tls.h (__TLS_GET_ADDR): Use ___tls_get_addr_internal
- instead of ___tls_get_addr.
- (___tls_get_addr_internal): Add attribute_hidden to decl.
-
- * sysdeps/generic/ldsodefs.h (struct rtld_global): New variable
- _dl_error_catch_tsd.
- * elf/rtld.c (startup_error_tsd): New function.
- (dl_main): Point _dl_error_catch_tsd at that.
- * elf/dl-error.c: Don't use libc-tsd.h for DL_ERROR,
- use new function pointer instead.
- * elf/dl-tsd.c: New file.
- * elf/Makefile (routines): Add it.
-
-2002-10-07 Roland McGrath <roland(a)redhat.com>
-
- * elf/dl-misc.c (_dl_debug_vdprintf): Use INTERNAL_SYSCALL macro for
- writev if it's available. Otherwise if [RTLD_PRIVATE_ERRNO] then
- take _dl_load_lock around calling __writev.
-
- * sysdeps/unix/sysv/linux/i386/sysdep.h (INTERNAL_SYSCALL): New macro.
- (INLINE_SYSCALL): Use that.
-
- * sysdeps/generic/dl-sysdep.h: New file.
- * sysdeps/mach/hurd/dl-sysdep.h: New file.
- * sysdeps/generic/ldsodefs.h: Include <dl-sysdep.h>.
- * include/errno.h [IS_IN_rtld]: Include <dl-sysdep.h> to define ...
- [RTLD_PRIVATE_ERRNO]: Use a hidden global variable for errno and
- access it directly.
- * elf/dl-minimal.c (__errno_location): Removed.
- * sysdeps/unix/i386/sysdep.S (__syscall_errno) [RTLD_PRIVATE_ERRNO]:
- Use GOTOFF access for errno.
- * sysdeps/unix/sysv/linux/i386/sysdep.h
- [RTLD_PRIVATE_ERRNO] (SYSCALL_ERROR_HANDLER): Likewise.
-
- * sysdeps/unix/x86_64/sysdep.S (__syscall_errno) [RTLD_PRIVATE_ERRNO]:
- Use PC-relative access for errno.
- * sysdeps/unix/sysv/linux/x86_64/sysdep.h
- [RTLD_PRIVATE_ERRNO] (SYSCALL_ERROR_HANDLER): Likewise.
-
- * include/tls.h: New file.
- (USE___THREAD): New macro.
- Define to 1 under [USE_TLS && HAVE___THREAD] and only when compiling
- libc or libpthread.
- * sysdeps/unix/sysv/linux/i386/sysdep.h [USE___THREAD]: Conditional
- changed from [USE_TLS && HAVE___THREAD].
- * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise.
- * sysdeps/unix/i386/sysdep.S: Likewise.
- * sysdeps/unix/x86_64/sysdep.S: Likewise.
- * include/errno.h: Likewise.
- * include/netdb.h: Likewise.
- * include/resolv.h: Likewise.
-
- * sysdeps/generic/errno.c: New file.
- * csu/Makefile (aux): New variable, list errno.
- * sysdeps/unix/sysv/linux/i386/sysdep.S (errno, _errno): Remove defns.
- * sysdeps/unix/sysv/linux/m68k/sysdep.S: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/sysdep.S: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S: Likewise.
- * sysdeps/unix/sysv/linux/arm/sysdep.S: Likewise.
- * sysdeps/unix/sysv/linux/cris/sysdep.S: Likewise.
- * sysdeps/unix/sysv/linux/hppa/sysdep.c: Likewise.
- * sysdeps/unix/sysv/linux/ia64/sysdep.S: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/sysdep.c: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sysdep.S: Likewise.
- * sysdeps/unix/sysv/linux/sh/sysdep.S: Likewise.
- * sysdeps/unix/alpha/sysdep.S: Likewise.
- * sysdeps/generic/start.c: Likewise.
- * sysdeps/unix/start.c: Likewise.
- * sysdeps/unix/arm/start.c: Likewise.
- * sysdeps/unix/bsd/ultrix4/mips/start.S: Likewise.
- * sysdeps/unix/sparc/start.c: Likewise.
- * sysdeps/unix/sysv/irix4/start.c: Likewise.
- * sysdeps/unix/sysv/linux/mips/sysdep.S: File removed.
-
- * manual/search.texi (Tree Search Function, Hash Search Function):
- Mention search.h clearly.
-
-2002-10-05 Roland McGrath <roland(a)redhat.com>
-
- * elf/dl-fxstat64.c: File removed.
- * elf/dl-xstat64.c: File removed.
- * elf/Makefile (rtld-routines): Remove them.
- * sysdeps/unix/sysv/linux/xstat64.c: Remove RTLD_STAT64 conditionals.
- Instead, use strong_alias instead of versioned_symbol in the
- !SHLIB_COMPAT case.
- * sysdeps/unix/sysv/linux/fxstat64.c: Likewise.
- * sysdeps/unix/sysv/linux/lxstat64.c: Likewise.
-
- * include/shlib-compat.h
- (SHLIB_COMPAT): Require that IS_IN_##lib be defined nonzero.
- [! NOT_IN_libc] (IS_IN_libc): Define it.
- * cppflags-iterator.mk (CPPFLAGS-$(cpp-src)): Use -Dx=1 not just -Dx.
- * elf/Makefile (CPPFLAGS-.os): Likewise.
-
- * sunrpc/rpc_main.c (main): Don't declare with noreturn attribute.
- Return the status instead of calling exit.
-
- * Makeconfig (CFLAGS): Prepend -std=gnu99.
- * Makerules (+make-deps): Use $(CFLAGS) only for .c sources.
- Remove superfluous rm command, whose @ plus make bugs hid
- all these commands from the make output.
-
- * include/stubs-prologue.h: New file. Give #error under #ifdef _LIBC.
- * Makefile ($(inst_includedir)/gnu/stubs.h): Depend on it.
- Use that file's contents instead of literal echo's for the prologue.
- * include/features.h: Include <gnu/stubs.h> unconditionally.
- * include/gnu/stubs.h: New file.
-
-2002-09-30 Roland McGrath <roland(a)redhat.com>
-
- * elf/rtld-Rules: New file.
- * elf/Makefile ($(objpfx)librtld.map, $(objpfx)librtld.mk,
- $(objpfx)rtld-libc.a): New targets.
- (generated): Add them.
- (reloc-link): Remove -o $@ from the variable.
- ($(objpfx)dl-allobjs.os): Add -o $@ after $(reloc-link).
- (distribute): Add rtld-Rules.
- (CPPFLAGS-.os): Define this instead of CFLAGS-.os.
- * Makerules ($(+sysdir_pfx)sysd-rules): Emit rules for rtld-% targets.
- (common-mostlyclean, common-clean): Clean up rtld-* files.
- * sysdeps/unix/make-syscalls.sh: Add rtld-*.os target name to rules.
-
-2003-05-20 Jakub Jelinek <jakub(a)redhat.com>
-
- * elf/dynamic-link.h (elf_get_dynamic_info): Add temp argument.
- If temp != NULL, copy dynamic entries which need relocation to temp
- array before relocating.
- (DL_RO_DYN_TEMP_CNT): Define.
- * elf/dl-load.c (_dl_map_object_from_fd): Adjust caller.
- * elf/rtld.c (_dl_start): Likewise.
- (dl_main): Likewise. Add dyn_temp static variable.
-
-2002-10-11 Roland McGrath <roland(a)redhat.com>
-
- * sysdeps/generic/dl-tls.c (__tls_get_addr): After freeing block in
- now-unused dtv slot, reset the slot to TLS_DTV_UNALLOCATED.
-
- * elf/tls-macros.h [__x86_64__] (TLS_GD): Fix the sequence with the
- proper set of no-op insn prefixes.
-
- * elf/tst-tls8.c (do_test): Use %zd format for l_tls_modid members.
-
-2002-10-11 Ulrich Drepper <drepper(a)redhat.com>
-
- * sysdeps/unix/sysv/linux/execve.c: Don't try calling
- __pthread_kill_other_threads_np.
-
- * sysdeps/generic/pselect.c: Avoid unnecessary sigprocmask calls.
-
-2002-10-08 Roland McGrath <roland(a)redhat.com>
-
- * locale/newlocale.c (__newlocale): If setting all categories to "C",
- just return &_nl_C_locobj instead of copying it.
- * locale/freelocale.c (__freelocale): Check for &_nl_C_locobj.
- * locale/duplocale.c (__duplocale): Likewise.
-
-2002-10-07 Roland McGrath <roland(a)frob.com>
-
- * config.h.in (HAVE_I386_SET_GDT): New #undef.
- * sysdeps/mach/configure.in: Define it with new check for i386_set_gdt.
- * sysdeps/mach/configure: Regenerated.
-
-2002-10-06 Franz Sirl <Franz.Sirl-kernel(a)lauterbach.com>
-
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h (INLINE_SYSCALL):
- Add all necessary register outputs for syscall-clobbered registers.
-
-2002-10-02 David Mosberger <davidm(a)hpl.hp.com>
-
- * sysdeps/ia64/bzero.S: Rewritten by Sverre Jarp to tune for
- Itanium 2 (and Itanium).
- Fix unwind directives and make it fit in 80 columns.
- * sysdeps/ia64/memset.S: Likewise.
- * sysdeps/ia64/memcpy.S: Likewise.
- Move jump table to .rodata section.
-
-2002-10-03 Roland McGrath <roland(a)frob.com>
-
- * sysdeps/mach/hurd/i386/init-first.c (_hurd_stack_setup): Add
- clobbers to asm.
-
-2002-10-10 Andreas Jaeger <aj(a)suse.de>
-
- * sysdeps/x86_64/_mcount.S: Restore correct registers.
-
-2002-10-10 Ulrich Drepper <drepper(a)redhat.com>
-
- * posix/Versions (libc) [GLIBC_PRIVATE]: Add __pselect.
-
-2002-10-09 Ulrich Drepper <drepper(a)redhat.com>
-
- * sysdeps/generic/ldsodefs.h: Remove attribute_hidden from
- _dl_allocate_tls_init. Add rtld_hidden_proto.
- * sysdeps/generic/dl-tls.c (_dl_allocate_tls_init): Add
- rtld_hidden_def.
- * elf/Versions (ld) [GLIBC_PRIVATE]: Add _dl_allocate_tls_init.
-
- * version.h (VERSION): Bump to 2.3.1.
-
- * Make-dist: Add back one of the tar invocations removed before.
-
- * stdlib/Makefile (distribute): Add allocalim.h.
-
- * sysdeps/generic/bits/libc-tsd.h [!(USE_TLS && HAVE___THREAD)]
- (__libc_tsd_address): Use correct variable name.
- Patch by Stefan Jones <stefan.jones(a)multigig.com>om>.
-
- * sysdeps/unix/sysv/linux/ia64/getcontext.S: Add missing ;;.
- Reported by edwardsg(a)sgi.com [PR libc/4678].
-
- * Versions.def (libc): Add GLIBC_2.3.1.
- (libpthread): Add GLIBC_2.3.1.
-
- * include/signal.h: Add libc_hidden_proto for __sigwait, __sigwaitinfo,
- and __sigtimedwait.
- * signal/Versions: Add __sigtimedwait, __sigwait, and __sigwaitinfo.
- * sysdeps/unix/sysv/linux/sigtimedwait.c (__sigtimedwait): Add
- libc_hidden_def.
- * sysdeps/unix/sysv/linux/sigwait.c (__sigwait): Likewise.
- * sysdeps/unix/sysv/linux/sigwaitinfo.c (__sigwaitinfo): Likewise.
-
- * include/sys/msg.h: Declare __libc_msgrcv and __libc_msgsnd.
- * sysdeps/unix/sysv/linux/msgrcv.c (__msgrcv): Rename to __libc_msgrcv
- and make old name an alias.
- * sysdeps/unix/sysv/linux/msgsnd.c (__msgsnd): Rename to __libc_msgsnd
- and make old name an alias.
- * sysvipc/Versions (libc) [GLIBC_PRIVATE]: Add __libc_msgrcv and
- __libc_msgsnd.
-
- * include/sys/uio.h: Declare __libc_readv and __libc_writev.
- * misc/Versions (libc) [GLIBC_PRIVATE]: Add __libc_readv and
- __libc_writev.
- * sysdeps/generic/readv.c (__readv): Rename to __libc_readv and make
- old name an alias.
- * sysdeps/posix/readv.c: Likewise
- * sysdeps/unix/sysv/aix/readv.c: Likewise.
- * sysdeps/unix/sysv/linux/readv.c: Likewise.
- * sysdeps/generic/writev.c (__writev): Rename to __libc_writev and make
- old name an alias.
- * sysdeps/posix/writev.c: Likewise
- * sysdeps/unix/sysv/aix/writev.c: Likewise.
- * sysdeps/unix/sysv/linux/writev.c: Likewise.
-
- * include/sys/wait.h: Declare __waitid.
- * posix/Versions (libc) [GLIBC_PRIVATE]: Add __waitid.
- * sysdeps/generic/waitid.c (waitid): Rename to __waitid and make old
- name an alias.
- * sysdeps/posix/waitid.c: Likewise.
- * sysdeps/unix/sysv/aix/waitid.c: Likewise.
-
- * sysdeps/unix/sysv/linux/syscalls.list: Add creat syscall.
-
-2002-10-07 Jakub Jelinek <jakub(a)redhat.com>
-
- * include/alloca.h (__libc_use_alloca, __libc_alloca_cutoff): New
- prototypes.
- (__MAX_ALLOCA_CUTOFF): Define.
- Include allocalim.h.
- * resolv/nss_dns/dns-host.c (_nss_dns_gethostbyname2_r,
- _nss_dns_gethostbyaddr_r): Use alloca or malloc to allocate
- host_buffer depending on __libc_use_alloca.
- * resolv/nss_dns/dns-network.c (_nss_dns_getnetbyname_r,
- _nss_dns_getnetbyaddr_r): Use alloca or malloc to allocate
- net_buffer depending on __libc_use_alloca.
- * resolv/res_query.c (res_nquery): Use alloca or malloc to allocate
- buf depending on __libc_use_alloca.
- * resolv/gethnamaddr.c (gethostbyname2, gethostbyaddr): Likewise.
- * stdio-common/vfprintf.c (vfprintf): Use __libc_use_alloca
- instead of hardcoded constants.
- Pass proper size argument to alloca and compute end for wide char
- version.
- * stdio-common/printf_fp.c (__printf_fp): Use __libc_use_alloca
- instead of hardcoded constants.
- * string/strcoll.c (strcoll): Likewise.
- * string/strxfrm.c (strxfrm): Likewise.
- * sysdeps/posix/readv.c (__readv): Likewise.
- * sysdeps/posix/writev.c (__writev): Likewise.
- * sysdeps/generic/allocalim.h: New file.
-
-2002-10-08 Roland McGrath <roland(a)redhat.com>
-
- * configure.in (aux_missing warning): Change "too old" to
- "incompatible versions", since for autoconf it's "too new" right
now.
- * configure: Regenerated.
-
- * configure.in (AUTOCONF): New check to set it. Set to "no" if the
- one found doesn't work on our configure.in.
- * configure: Regenerated.
- * config.make.in (AUTOCONF): New substituted variable.
- * Makefile (autoconf-it-cvs): New canned sequence, broken out of ...
- (autoconf-it): ... here, use that instead of defining conditionally.
- Use $(AUTOCONF) instead of literal autoconf.
- [$(AUTOCONF) != no] (configure, %/configure): Protect these rules
- with this condition.
- * Make-dist (autoconf-it, configure, %/configure): Copy those changes.
-
-2002-10-08 Ulrich Drepper <drepper(a)redhat.com>
-
- * Make-dist (dist): Cleanup a bit. We are not interested in the
- 14 char filename limit anymore. Remove intermediate files and
- symlinks.
-
-2002-10-05 Ulrich Drepper <drepper(a)redhat.com>
-
- * po/sk.po: Update from translation team.
- * po/tr.po: Likewise.
- * po/gl.po: Likewise.
-
-2002-10-05 Kaz Kojima <kkojima(a)rr.iij4u.or.jp>
-
- * elf/tls-macros.h: Fix SH version of macros so as to match ABI syntax.
-
-2002-10-03 Ulrich Drepper <drepper(a)redhat.com>
-
- * version.h (RELEASE): Change to stable.
-
-2002-10-03 Jakub Jelinek <jakub(a)redhat.com>
-
- * sysdeps/unix/sysv/linux/_exit.c (__syscall_exit,
- __syscall_exit_group): New prototypes.
-
-2002-10-03 Ulrich Drepper <drepper(a)redhat.com>
-
- * glibc 2.3 released.
-
-
-See ChangeLog.13 for earlier changes.
diff --git a/test/regex/tst-regexloc.c b/test/regex/tst-regexloc.c
deleted file mode 100644
index d862678..0000000
--- a/test/regex/tst-regexloc.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sys/types.h>
-#include <regex.h>
-#include <locale.h>
-#include <stdio.h>
-
-int
-main (int argc, char *argv[])
-{
-/* If uclibc has extended locale, or if it's a host build
- * (assuming host libc always has locale): */
-#if defined __UCLIBC_HAS_XLOCALE__ || !defined __UCLIBC__
- regex_t re;
- regmatch_t mat[1];
- int exitcode = 1;
-
- if (setlocale (LC_ALL, "de_DE.ISO-8859-1") == NULL)
- puts ("cannot set locale");
- else if (regcomp (&re, "[a-f]*", 0) != REG_NOERROR)
- puts ("cannot compile expression \"[a-f]*\"");
- else if (regexec (&re, "abcdefCDEF", 1, mat, 0) == REG_NOMATCH)
- puts ("no match");
- else
- {
- exitcode = mat[0].rm_so != 0 || mat[0].rm_eo != 6;
- printf ("match from %d to %d - %s\n",
- mat[0].rm_so, mat[0].rm_eo,
- exitcode ? "WRONG!" : "ok"
- );
- }
-
- return exitcode;
-#else
- puts("Test requires locale; skipping");
- return 0;
-#endif
-}
diff --git a/test/rpc/Makefile b/test/rpc/Makefile
deleted file mode 100644
index e098072..0000000
--- a/test/rpc/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc rpc tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/rpc/Makefile.in b/test/rpc/Makefile.in
deleted file mode 100644
index 5612ff2..0000000
--- a/test/rpc/Makefile.in
+++ /dev/null
@@ -1,11 +0,0 @@
-# uClibc rpc tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-TESTS := getrpcent
-
-ifeq ($(UCLIBC_HAS_REENTRANT_RPC),y)
-TESTS += getrpcent_r
-endif
-
-DODIFF_getrpcent := 1
-
diff --git a/test/rpc/getrpcent.c b/test/rpc/getrpcent.c
deleted file mode 100644
index e12e768..0000000
--- a/test/rpc/getrpcent.c
+++ /dev/null
@@ -1,18 +0,0 @@
-#include <netdb.h>
-#include <stdio.h>
-
-int main(int argc, char *argv[])
-{
- struct rpcent *ent;
-
- while ((ent = getrpcent()) != NULL) {
- printf("%s: %i", ent->r_name, ent->r_number);
- while (ent->r_aliases[0])
- printf(" %s", *ent->r_aliases++);
- printf("\n");
- }
-
- endrpcent();
-
- return 0;
-}
diff --git a/test/rpc/getrpcent_r.c b/test/rpc/getrpcent_r.c
deleted file mode 100644
index 65ca61c..0000000
--- a/test/rpc/getrpcent_r.c
+++ /dev/null
@@ -1,25 +0,0 @@
-#include <netdb.h>
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-
-int main(int argc, char *argv[])
-{
- int ret;
- char rpcdata[1024];
- struct rpcent rpcbuf, *ent;
-
- while ((ret = getrpcent_r(&rpcbuf, rpcdata, sizeof(rpcdata), &ent)) == 0) {
- printf("%s: %i", ent->r_name, ent->r_number);
- while (ent->r_aliases[0])
- printf(" %s", *ent->r_aliases++);
- printf("\n");
- }
-
- if (ret != ENOENT)
- printf("Test failed: %s\n", strerror(ret));
-
- endrpcent();
-
- return 0;
-}
diff --git a/test/setjmp/Makefile b/test/setjmp/Makefile
deleted file mode 100644
index 6feab59..0000000
--- a/test/setjmp/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc setjmp tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/setjmp/Makefile.in b/test/setjmp/Makefile.in
deleted file mode 100644
index e69de29..0000000
diff --git a/test/setjmp/bug269-setjmp.c b/test/setjmp/bug269-setjmp.c
deleted file mode 100644
index a9254a1..0000000
--- a/test/setjmp/bug269-setjmp.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/* Copyright (C) 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; If not, see
- <http://www.gnu.org/licenses/>. */
-
-/* Test case for Bugzilla # 269 */
-
-#include <stdio.h>
-#include <setjmp.h>
-#include <stdlib.h>
-
-jmp_buf buf1;
-jmp_buf buf2;
-int *p;
-int n_x = 6;
-
-static int g_counter = 0;
-
-static int
-f (void)
-{
- static int counter = 0;
- static int way_point1 = 3;
- static int way_point2 = 2;
- int lose = 0;
-
- if (setjmp (buf1) != 101)
- {
- int a[n_x]; /* reallocate stack space */
- g_counter++;
- p = &a[0];
- if (g_counter < 5)
- longjmp (buf1, 2);
- else if (g_counter == 5)
- longjmp (buf1, 101);
- else
- {
- _setjmp (buf2);
- _longjmp (buf1, 101);
- }
- }
-
- way_point1--;
-
- if (counter == 0)
- {
- counter++;
- {
- int a[n_x]; /* reallocate stack space */
- g_counter++;
- p = &a[0];
- if (g_counter < 5)
- longjmp (buf1, 2);
- else if (g_counter == 5)
- longjmp (buf1, 101);
- else
- {
- _setjmp (buf2);
- _longjmp (buf1, 101);
- }
- }
- }
-
- way_point2--;
-
- if (counter == 1)
- {
- counter++;
- longjmp (buf2, 2);
- }
-
- lose = !(way_point1 == 0 && way_point2 == 0
- && g_counter == 6 && counter == 2);
-
- return lose;
-}
-
-static int
-do_test (void)
-{
- int lose;
-
- lose = f ();
-
- if (lose)
- puts ("Test FAILED!");
- else
- puts ("Test succeeded!");
-
- return lose ? EXIT_FAILURE : EXIT_SUCCESS;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/setjmp/jmpbug.c b/test/setjmp/jmpbug.c
deleted file mode 100644
index da087a7..0000000
--- a/test/setjmp/jmpbug.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* setjmp vs alloca test case. Exercised bug on sparc. */
-
-#include <stdio.h>
-#include <setjmp.h>
-#include <alloca.h>
-
-int ret;
-int verbose;
-
-__attribute__ ((__noreturn__))
-static void
-sub5 (jmp_buf buf)
-{
- longjmp (buf, 1);
-}
-
-static void
-test (int x)
-{
- jmp_buf buf;
- char *foo;
- int arr[100];
-
- ++ret;
-
- arr[77] = x;
- if (setjmp (buf))
- {
- --ret;
- if (verbose)
- printf ("made it ok; %d\n", arr[77]);
- return;
- }
-
- foo = (char *) alloca (128);
- sub5 (buf);
-}
-
-int
-main (int argc, char *argv[])
-{
- int i;
-
- verbose = (argc != 1);
- ret = 0;
-
- for (i = 123; i < 345; ++i)
- test (i);
-
- return ret;
-}
diff --git a/test/setjmp/sigjmpbug.c b/test/setjmp/sigjmpbug.c
deleted file mode 100644
index 5b17181..0000000
--- a/test/setjmp/sigjmpbug.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* sigsetjmp vs alloca test case. Exercised bug on sparc. */
-
-#include <stdio.h>
-#include <setjmp.h>
-#include <alloca.h>
-
-int ret;
-int verbose;
-
-__attribute__ ((__noreturn__))
-static void
-sub5 (jmp_buf buf)
-{
- siglongjmp (buf, 1);
-}
-
-static void
-test (int x)
-{
- sigjmp_buf buf;
- char *foo;
- int arr[100];
-
- ++ret;
-
- arr[77] = x;
- if (sigsetjmp (buf, 1))
- {
- --ret;
- if (verbose)
- printf ("made it ok; %d\n", arr[77]);
- return;
- }
-
- foo = (char *) alloca (128);
- sub5 (buf);
-}
-
-int
-main (int argc, char *argv[])
-{
- int i;
-
- verbose = (argc != 1);
- ret = 0;
-
- for (i = 123; i < 345; ++i)
- test (i);
-
- return ret;
-}
diff --git a/test/setjmp/tst-setjmp.c b/test/setjmp/tst-setjmp.c
deleted file mode 100644
index ea1c29a..0000000
--- a/test/setjmp/tst-setjmp.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/* Copyright (C) 1991, 1992, 1997, 1998, 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stdio.h>
-#include <setjmp.h>
-#include <stdlib.h>
-
-static jmp_buf env;
-static int last_value = -1, lose = 0;
-
-__attribute__ ((__noreturn__))
-static void
-jump (int val)
-{
- longjmp (env, val);
-}
-
-int
-main (void)
-{
- int value;
-
- value = setjmp (env);
- if (value != last_value + 1)
- {
- fputs("Shouldn't have ", stdout);
- lose = 1;
- }
- last_value = value;
- switch (value)
- {
- case 0:
- puts("Saved environment.");
- jump (0);
- default:
- printf ("Jumped to %d.\n", value);
- if (value < 10)
- jump (value + 1);
- }
-
- if (!lose && value == 10)
- {
- /* Do a second test, this time without `setjmp' being a macro.
- This is not required by ISO C but we have this for compatibility. */
-#undef setjmp
- extern int setjmp (jmp_buf);
-
- last_value = -1;
- lose = 0;
-
- value = setjmp (env);
- if (value != last_value + 1)
- {
- fputs("Shouldn't have ", stdout);
- lose = 1;
- }
- last_value = value;
- switch (value)
- {
- case 0:
- puts("Saved environment.");
- jump (0);
- default:
- printf ("Jumped to %d.\n", value);
- if (value < 10)
- jump (value + 1);
- }
- }
-
- if (!lose && value == 10)
- {
- /* And again for the `_setjmp' function. */
-#ifndef _setjmp
- extern int _setjmp (jmp_buf);
-#endif
- last_value = -1;
- lose = 0;
-
- value = _setjmp (env);
- if (value != last_value + 1)
- {
- fputs("Shouldn't have ", stdout);
- lose = 1;
- }
- last_value = value;
- switch (value)
- {
- case 0:
- puts("Saved environment.");
- jump (0);
- default:
- printf ("Jumped to %d.\n", value);
- if (value < 10)
- jump (value + 1);
- }
- }
-
- if (lose || value != 10)
- puts ("Test FAILED!");
- else
- puts ("Test succeeded!");
-
- return lose ? EXIT_FAILURE : EXIT_SUCCESS;
-}
diff --git a/test/setjmp/tst-vfork-longjmp.c b/test/setjmp/tst-vfork-longjmp.c
deleted file mode 100644
index 2784424..0000000
--- a/test/setjmp/tst-vfork-longjmp.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/* make sure we can vfork/exec across setjmp/longjmp's
- * and make sure signal block masks don't get corrupted
- * in the process.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <assert.h>
-#include <unistd.h>
-#include <errno.h>
-#include <setjmp.h>
-#include <signal.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <string.h>
-
-int verbose = 0;
-
-static int execute_child(const char *prog)
-{
- int status;
- pid_t child;
- child = vfork();
- if (child == 0) {
- execlp(prog, prog, NULL);
- perror("Could not execute specified prog");
- _exit(1);
- } else if (child == 1)
- return 1;
- wait(&status);
- return WEXITSTATUS(status);
-}
-
-sigset_t orig_mask;
-
-static int check_sig_mask(void)
-{
- int status;
- pid_t child;
-
- child = vfork();
- if (child == 0) {
- int ret;
- sigset_t child_mask;
- memset(&child_mask, 0x00, sizeof(child_mask));
- ret = sigprocmask(SIG_BLOCK, NULL, &child_mask);
- if (ret != 0) {
- perror("could not get child sig block mask");
- _exit(1);
- }
- ret = memcmp(&orig_mask, &child_mask, sizeof(orig_mask));
- if (verbose) {
- printf("sigmsk: %08lx%08lx ", child_mask.__val[1], child_mask.__val[0]);
- printf("sigmsk: %08lx%08lx ", orig_mask.__val[1], orig_mask.__val[0]);
- printf("%i\n", ret);
- }
- _exit(ret);
- } else if (child == 1)
- return 1;
- wait(&status);
- return WEXITSTATUS(status);
-}
-
-int main(int argc, char *argv[])
-{
- const char *prog;
- jmp_buf env;
- sigjmp_buf sigenv;
- int max;
- /* values modified between setjmp/longjmp cannot be local to this func */
- static int cnt, ret;
-
- memset(&orig_mask, 0x00, sizeof(orig_mask));
- ret = sigprocmask(SIG_BLOCK, NULL, &orig_mask);
- if (ret != 0) {
- perror("could not get orig sig block mask");
- return 1;
- }
-
- prog = (argc > 1 ? argv[1] : "true");
- ret = 0;
- verbose = 0;
- max = 10;
-
- /* test vfork()/exec() inside of sigsetjmp/siglongjmp */
- cnt = 0;
- sigsetjmp(sigenv, 1);
- ++cnt;
- if (verbose)
- printf("sigsetjmp loop %i\n", cnt);
- ret |= check_sig_mask();
- ret |= execute_child(prog);
- if (cnt < max)
- siglongjmp(sigenv, 0);
-
- /* test vfork()/sigprocmask() inside of setjmp/longjmp */
- cnt = 0;
- setjmp(env);
- ++cnt;
- if (verbose)
- printf("setjmp loop %i\n", cnt);
- ret |= check_sig_mask();
- ret |= execute_child(prog);
- if (cnt < max)
- longjmp(env, 0);
-
- return ret;
-}
diff --git a/test/signal/.indent.pro b/test/signal/.indent.pro
deleted file mode 100644
index 492ecf1..0000000
--- a/test/signal/.indent.pro
+++ /dev/null
@@ -1,33 +0,0 @@
---blank-lines-after-declarations
---blank-lines-after-procedures
---break-before-boolean-operator
---no-blank-lines-after-commas
---braces-on-if-line
---braces-on-struct-decl-line
---comment-indentation25
---declaration-comment-column25
---no-comment-delimiters-on-blank-lines
---cuddle-else
---continuation-indentation4
---case-indentation0
---else-endif-column33
---space-after-cast
---line-comments-indentation0
---declaration-indentation1
---dont-format-first-column-comments
---dont-format-comments
---honour-newlines
---indent-level4
-/* changed from 0 to 4 */
---parameter-indentation4
---line-length78 /* changed from 75 */
---continue-at-parentheses
---no-space-after-function-call-names
---dont-break-procedure-type
---dont-star-comments
---leave-optional-blank-lines
---dont-space-special-semicolon
---tab-size4
-/* additions by Mark */
---case-brace-indentation0
---leave-preprocessor-space
diff --git a/test/signal/Makefile b/test/signal/Makefile
deleted file mode 100644
index c2afb5f..0000000
--- a/test/signal/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc signal tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/signal/Makefile.in b/test/signal/Makefile.in
deleted file mode 100644
index c8e2545..0000000
--- a/test/signal/Makefile.in
+++ /dev/null
@@ -1,6 +0,0 @@
-# uClibc signal tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-ifeq ($(UCLIBC_HAS_OBSOLETE_BSD_SIGNAL),)
-TESTS_DISABLED := tst-sigsimple
-endif
diff --git a/test/signal/sigchld.c b/test/signal/sigchld.c
deleted file mode 100644
index 22febac..0000000
--- a/test/signal/sigchld.c
+++ /dev/null
@@ -1,68 +0,0 @@
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-#include <stdio.h>
-#include <sys/signal.h>
-#include <sys/wait.h>
-#include <unistd.h>
-
-
-#ifdef __ARCH_USE_MMU__
-
-static void test_handler(int signo)
-{
- write(1, "caught SIGCHLD\n", 15);
- return;
-}
-
-int main(void)
-{
- pid_t mypid;
- struct sigaction siga;
- static sigset_t set;
-
- /* Set up sighandling */
- sigfillset(&set);
- siga.sa_handler = test_handler;
- siga.sa_mask = set;
- siga.sa_flags = 0;
- if (sigaction(SIGCHLD, &siga, (struct sigaction *)NULL) != 0) {
- fprintf(stderr, "sigaction choked: %s!", strerror(errno));
- exit(EXIT_FAILURE);
- }
-
- /* Setup a child process to exercise the sig handling for us */
- mypid = getpid();
- if (fork() == 0) {
- int i;
-
- for (i=0; i < 3; i++) {
- sleep(2);
- kill(mypid, SIGCHLD);
- }
- _exit(EXIT_SUCCESS);
- }
-
-
- /* Wait for signals */
- write(1, "waiting for a SIGCHLD\n",22);
- for(;;) {
- sleep(10);
- if (waitpid(-1, NULL, WNOHANG | WUNTRACED) > 0)
- break;
- write(1, "after sleep\n", 12);
- }
-
- printf("Bye-bye! All done!\n");
- return 0;
-}
-
-#else
-
-int main(void)
-{
- printf("Skipping test on non-mmu host!\n");
- return 0;
-}
-
-#endif
diff --git a/test/signal/signal.c b/test/signal/signal.c
deleted file mode 100644
index 01d1a78..0000000
--- a/test/signal/signal.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/* vi: set sw=4 ts=4: */
-/*
- * signal testing function for uClibc
- * Copyright (C) 2000-2006 by Erik Andersen <andersen(a)uclibc.org>
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-#ifndef _GNU_SOURCE
-# define _GNU_SOURCE
-#endif
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <strings.h>
-#include <fcntl.h>
-#include <signal.h>
-
-
-/* -------------------------------------------------*/
-/* This stuff is common to all the testing routines */
-/* -------------------------------------------------*/
-const char *it = "<UNSET>"; /* Routine name for message routines. */
-size_t errors = 0;
-
-static void check(int thing, int number)
-{
- if (!thing) {
- printf("%s: flunked test %d\n", it, number);
- ++errors;
- }
-}
-
-#if 0
-static void equal(const char *a, const char *b, int number)
-{
- check(a != NULL && b != NULL && (strcmp(a, b) == 0), number);
-}
-#endif
-
-
-/* -------------------------------------------------*/
-/* Let the tests begin.... */
-/* -------------------------------------------------*/
-
-int global_int = 0;
-
-static void set_global_int_to_one(int signum)
-{
- printf ("Received signal %d (%s).\n", signum, strsignal(signum));
- global_int = 1;
- return;
-}
-
-static void signal_test_1(void)
-{
- global_int = 0;
-
- it = "global variable set from signal handler";
- if (signal(SIGUSR1, set_global_int_to_one) == SIG_ERR) {
- perror("signal(SIGUSR1) failed");
- exit(-1);
- }
- raise(SIGUSR1);
-
- /* This should already have jumped to the signal handler */
- check((global_int == 1), 1);
-
- global_int = 0;
- if (signal(SIGUSR1, SIG_IGN) == SIG_ERR) {
- perror("signal(SIGUSR1) failed");
- exit(-1);
- }
- raise(SIGUSR1);
- /* This should not go to the signal handler this time since we */
- check((global_int == 0), 1);
-}
-
-
-int main(void)
-{
- int status;
-
- signal_test_1();
-
- if (errors == 0) {
- status = EXIT_SUCCESS;
- printf("No errors.\n");
- } else {
- status = EXIT_FAILURE;
- printf("%lu errors.\n", (unsigned long)errors);
- }
- exit(status);
-}
diff --git a/test/signal/tst-raise.c b/test/signal/tst-raise.c
deleted file mode 100644
index 534ae71..0000000
--- a/test/signal/tst-raise.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <string.h>
-#include <error.h>
-#include <signal.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-volatile int count;
-
-static void
-sh (int sig)
-{
- ++count;
-}
-
-int
-main (void)
-{
- struct sigaction sa;
- sa.sa_handler = sh;
- sigemptyset (&sa.sa_mask);
- sa.sa_flags = 0;
- if (sigaction (SIGUSR1, &sa, NULL) < 0)
- {
- printf ("sigaction failed: %s\n", strerror(errno));
- exit (1);
- }
- if (raise (SIGUSR1) < 0)
- {
- printf ("first raise failed: %s\n", strerror(errno));
- exit (1);
- }
- if (raise (SIGUSR1) < 0)
- {
- printf ("second raise failed: %s\n", strerror(errno));
- exit (1);
- }
- if (count != 2)
- {
- printf ("signal handler not called 2 times\n");
- exit (1);
- }
- exit (0);
-}
diff --git a/test/signal/tst-signal.c b/test/signal/tst-signal.c
deleted file mode 100644
index 6d31787..0000000
--- a/test/signal/tst-signal.c
+++ /dev/null
@@ -1,44 +0,0 @@
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-int win = 0;
-
-static void
-handler (int sig)
-{
- printf ("Received signal %d (%s).\n", sig, strsignal(sig));
- win = 1;
-}
-
-int
-main (void)
-{
- if (signal (SIGTERM, handler) == SIG_ERR)
- {
- perror ("signal: SIGTERM");
- exit (EXIT_FAILURE);
- }
-
- puts ("Set handler.");
-
- printf ("Sending myself signal %d.\n", SIGTERM);
- fflush (stdout);
-
- if (raise (SIGTERM) < 0)
- {
- perror ("raise: SIGTERM");
- exit (EXIT_FAILURE);
- }
-
- if (!win)
- {
- puts ("Didn't get any signal. Test FAILED!");
- exit (EXIT_FAILURE);
- }
-
- puts ("Got a signal. Test succeeded.");
-
- return EXIT_SUCCESS;
-}
diff --git a/test/signal/tst-signalfd.c b/test/signal/tst-signalfd.c
deleted file mode 100644
index 1fbb748..0000000
--- a/test/signal/tst-signalfd.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/* vi: set sw=4 ts=4 sts=4: */
-/*
- * signalfd test for uClibc
- * Copyright (C) 2012 by Kevin Cernekee <cernekee(a)gmail.com>
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <errno.h>
-#include <error.h>
-#include <signal.h>
-#include <sys/signalfd.h>
-#include <sys/fcntl.h>
-
-static int
-do_test(void)
-{
- int fd, ret, result = 0;
- struct signalfd_siginfo ssi;
- sigset_t mask;
-
- sigemptyset(&mask);
- sigaddset(&mask, SIGUSR1);
- sigprocmask(SIG_BLOCK, &mask, NULL);
-
- fd = signalfd(-1, &mask, SFD_NONBLOCK);
- if (fd < 0) {
- printf("signalfd() failed: %s\n", strerror(errno));
- result = 1;
- }
-
- /* this should return immediately with EAGAIN due to SFD_NONBLOCK */
- memset(&ssi, 0, sizeof(ssi));
- ret = read(fd, &ssi, sizeof(ssi));
- if (ret != -1 || errno != EAGAIN) {
- error(0, 0, "first read() returned %d", ret);
- result = 1;
- }
-
- kill(getpid(), SIGUSR1);
-
- /* this should return a struct ssi indicating receipt of SIGUSR1 */
- ret = read(fd, &ssi, sizeof(ssi));
- if (ret != sizeof(ssi)) {
- error(0, 0, "second read() returned %d", ret);
- result = 1;
- }
-
- if (ssi.ssi_signo != SIGUSR1) {
- error(0, 0, "ssi contains bogus signo");
- result = 1;
- }
-
- return result;
-}
-
-#define TIMEOUT 5
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/signal/tst-sigset.c b/test/signal/tst-sigset.c
deleted file mode 100644
index bc1b057..0000000
--- a/test/signal/tst-sigset.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Test sig*set functions. */
-
-#include <signal.h>
-#include <string.h>
-#include <errno.h>
-#include <stdio.h>
-
-#define TEST_FUNCTION do_test ()
-static int
-do_test (void)
-{
- int result = 0;
- int sig = -1;
-
-#define TRY(call) \
- if (call) \
- { \
- printf ("%s (sig = %d): %s\n", #call, sig, strerror(errno)); \
- result = 1; \
- } \
- else
-
-
- sigset_t set;
- TRY (sigemptyset (&set) != 0);
-
-#ifdef SIGRTMAX
- int max_sig = SIGRTMAX;
-#else
- int max_sig = NSIG - 1;
-#endif
-
- for (sig = 1; sig <= max_sig; ++sig)
- {
- TRY (sigismember (&set, sig) != 0);
- TRY (sigaddset (&set, sig) != 0);
- TRY (sigismember (&set, sig) == 0);
- TRY (sigdelset (&set, sig) != 0);
- TRY (sigismember (&set, sig) != 0);
- }
-
- return result;
-}
-
-#include "../test-skeleton.c"
diff --git a/test/signal/tst-sigsimple.c b/test/signal/tst-sigsimple.c
deleted file mode 100644
index 80220ee..0000000
--- a/test/signal/tst-sigsimple.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <signal.h>
-#include <stdio.h>
-#include <string.h>
-
-
-static int
-do_test (void)
-{
- int result = 0;
- int e;
-
-#define RUN(test) \
- errno = 0; \
- e = test; \
- if (e != -1) \
- { \
- printf ("%s returned %d\n", #test, e); \
- result = 1; \
- } \
- else if (errno != EINVAL) \
- { \
- printf ("%s didn't set errno to EINVAL (%s instead)\n", \
- #test, strerror (errno)); \
- result = 1; \
- }
-
- RUN (sighold (-1));
- RUN (sighold (_NSIG + 100));
-
- RUN (sigrelse (-1));
- RUN (sigrelse (_NSIG + 100));
-
- return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/silly/Makefile b/test/silly/Makefile
deleted file mode 100644
index 54f4bd0..0000000
--- a/test/silly/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc silly tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/silly/Makefile.in b/test/silly/Makefile.in
deleted file mode 100644
index 6092c80..0000000
--- a/test/silly/Makefile.in
+++ /dev/null
@@ -1,24 +0,0 @@
-# uClibc silly tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-RET_hello := 42
-RET_tiny := 42
-
-ifeq ($(TARGET_ARCH),ia64)
-TESTS_DISABLED += tst-atomic tst-atomic-long
-endif
-
-ifeq ($(TARGET_ARCH),mips)
-TESTS_DISABLED += tst-atomic tst-atomic-long
-endif
-
-ifeq ($(TARGET_ARCH),sparc)
-TESTS_DISABLED += tst-atomic tst-atomic-long
-endif
-
-atomic_headers := -I$(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH) \
- -I$(top_srcdir)libc/sysdeps/linux \
- -I$(top_builddir)include
-
-CFLAGS_tst-atomic = $(atomic_headers)
-CFLAGS_tst-atomic-long = $(atomic_headers)
diff --git a/test/silly/hello.c b/test/silly/hello.c
deleted file mode 100644
index d330597..0000000
--- a/test/silly/hello.c
+++ /dev/null
@@ -1,8 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-
-int main(void)
-{
- printf("hello world\n");
- exit(42);
-}
diff --git a/test/silly/tiny.c b/test/silly/tiny.c
deleted file mode 100644
index e54c0ff..0000000
--- a/test/silly/tiny.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <unistd.h>
-
-int main(void)
-{
- _exit(42);
-}
diff --git a/test/silly/tst-atomic-long.c b/test/silly/tst-atomic-long.c
deleted file mode 100644
index d13fb07..0000000
--- a/test/silly/tst-atomic-long.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Tests for atomic.h macros.
- Copyright (C) 2003-2015 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <bits/wordsize.h>
-
-#define atomic_t long
-#if __WORDSIZE == 64
-# define TEST_ATOMIC64 1
-#endif
-
-#include "tst-atomic.c"
diff --git a/test/silly/tst-atomic.c b/test/silly/tst-atomic.c
deleted file mode 100644
index fc773b2..0000000
--- a/test/silly/tst-atomic.c
+++ /dev/null
@@ -1,573 +0,0 @@
-/* Tests for atomic.h macros.
- Copyright (C) 2003-2015 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub(a)redhat.com>om>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stdio.h>
-#include <atomic.h>
-
-#ifndef atomic_t
-# define atomic_t int
-#endif
-
-#define CHK2(f,a1,a2,rv,new_mem) \
- retval = f(&mem, a1, a2); \
- if (retval != rv) { \
- printf("%s(mem, %lu, %lu): retval %lu != expected %lu\n", \
- #f, a1, a2, retval, rv); \
- ret = 1; \
- } \
- if (mem != new_mem) { \
- printf("%s(mem, %lu, %lu): mem %lu != expected %lu\n", \
- #f, a1, a2, mem, new_mem); \
- ret = 1; \
- }
-#define CHK1(f,a1,rv,new_mem) \
- retval = f(&mem, a1); \
- if (retval != rv) { \
- printf("%s(mem, %lu): retval %lu != expected %lu\n", \
- #f, a1, retval, rv); \
- ret = 1; \
- } \
- if (mem != new_mem) { \
- printf("%s(mem, %lu): mem %lu != expected %lu\n", \
- #f, a1, mem, new_mem); \
- ret = 1; \
- }
-#define CHK0(f,rv,new_mem) \
- retval = f(&mem); \
- if (retval != rv) { \
- printf("%s(mem): retval %lu != expected %lu\n", \
- #f, retval, rv); \
- ret = 1; \
- } \
- if (mem != new_mem) { \
- printf("%s(mem): mem %lu != expected %lu\n", \
- #f, mem, new_mem); \
- ret = 1; \
- }
-
-/* Test various atomic.h macros. */
-static int
-do_test (void)
-{
- atomic_t mem, expected, retval;
- int ret = 0;
-
-#ifdef atomic_compare_and_exchange_val_acq
- mem = 24;
- CHK2(atomic_compare_and_exchange_val_acq, 35, 24, 24, 35);
- mem = 12;
- CHK2(atomic_compare_and_exchange_val_acq, 10, 15, 12, 12);
- mem = -15;
- CHK2(atomic_compare_and_exchange_val_acq, -56, -15, -15, -56);
- mem = -1;
- CHK2(atomic_compare_and_exchange_val_acq, 17, 0, -1, -1);
-#endif
-
- mem = 24;
- CHK2(atomic_compare_and_exchange_bool_acq, 35, 24, 0, 35);
- mem = 12;
- CHK2(atomic_compare_and_exchange_bool_acq, 10, 15, 1, 12);
- mem = -15;
- CHK2(atomic_compare_and_exchange_bool_acq, -56, -15, 0, -56);
- mem = -1;
- CHK2(atomic_compare_and_exchange_bool_acq, 17, 0, 1, -1);
-
- mem = 64;
- CHK1(atomic_exchange_acq, 31, 64, 31);
- mem = 2;
- CHK1(atomic_exchange_and_add, 11, 2, 13);
- mem = 2;
- CHK1(atomic_exchange_and_add_acq, 11, 2, 13);
- mem = 2;
- CHK1(atomic_exchange_and_add_rel, 11, 2, 13);
-
- mem = -21;
- atomic_add (&mem, 22);
- if (mem != 1)
- {
- printf ("atomic_add(mem, 22): mem %lu != expected 1\n", mem);
- ret = 1;
- }
-
- mem = -1;
- atomic_increment (&mem);
- if (mem != 0)
- {
- printf ("atomic_increment(mem): mem %lu != expected 0\n", mem);
- ret = 1;
- }
-
- mem = 2;
- if ((retval = atomic_increment_val (&mem)) != 3)
- {
- printf ("atomic_increment_val(mem): retval %lu != expected 3\n",
retval);
- ret = 1;
- }
-
- mem = 0;
- CHK0(atomic_increment_and_test, 0, 1);
- mem = 35;
- CHK0(atomic_increment_and_test, 0, 36);
- mem = -1;
- CHK0(atomic_increment_and_test, 1, 0);
- mem = 17;
- atomic_decrement (&mem);
- if (mem != 16)
- {
- printf ("atomic_increment(mem): mem %lu != expected 16\n", mem);
- ret = 1;
- }
-
- if ((retval = atomic_decrement_val (&mem)) != 15)
- {
- printf ("atomic_decrement_val(mem): retval %lu != expected 15\n",
retval);
- ret = 1;
- }
-
- mem = 0;
- CHK0(atomic_decrement_and_test, 0, -1);
-
- mem = 15;
- CHK0(atomic_decrement_and_test, 0, 14);
- mem = 1;
- CHK0(atomic_decrement_and_test, 1, 0);
- mem = 1;
- if (atomic_decrement_if_positive (&mem) != 1
- || mem != 0)
- {
- puts ("atomic_decrement_if_positive test 1 failed");
- ret = 1;
- }
-
- mem = 0;
- if (atomic_decrement_if_positive (&mem) != 0
- || mem != 0)
- {
- puts ("atomic_decrement_if_positive test 2 failed");
- ret = 1;
- }
-
- mem = -1;
- if (atomic_decrement_if_positive (&mem) != -1
- || mem != -1)
- {
- puts ("atomic_decrement_if_positive test 3 failed");
- ret = 1;
- }
-
- mem = -12;
- if (! atomic_add_negative (&mem, 10)
- || mem != -2)
- {
- puts ("atomic_add_negative test 1 failed");
- ret = 1;
- }
-
- mem = 0;
- if (atomic_add_negative (&mem, 100)
- || mem != 100)
- {
- puts ("atomic_add_negative test 2 failed");
- ret = 1;
- }
-
- mem = 15;
- if (atomic_add_negative (&mem, -10)
- || mem != 5)
- {
- puts ("atomic_add_negative test 3 failed");
- ret = 1;
- }
-
- mem = -12;
- if (atomic_add_negative (&mem, 14)
- || mem != 2)
- {
- puts ("atomic_add_negative test 4 failed");
- ret = 1;
- }
-
- mem = 0;
- if (! atomic_add_negative (&mem, -1)
- || mem != -1)
- {
- puts ("atomic_add_negative test 5 failed");
- ret = 1;
- }
-
- mem = -31;
- if (atomic_add_negative (&mem, 31)
- || mem != 0)
- {
- puts ("atomic_add_negative test 6 failed");
- ret = 1;
- }
-
- mem = -34;
- if (atomic_add_zero (&mem, 31)
- || mem != -3)
- {
- puts ("atomic_add_zero test 1 failed");
- ret = 1;
- }
-
- mem = -36;
- if (! atomic_add_zero (&mem, 36)
- || mem != 0)
- {
- puts ("atomic_add_zero test 2 failed");
- ret = 1;
- }
-
- mem = 113;
- if (atomic_add_zero (&mem, -13)
- || mem != 100)
- {
- puts ("atomic_add_zero test 3 failed");
- ret = 1;
- }
-
- mem = -18;
- if (atomic_add_zero (&mem, 20)
- || mem != 2)
- {
- puts ("atomic_add_zero test 4 failed");
- ret = 1;
- }
-
- mem = 10;
- if (atomic_add_zero (&mem, -20)
- || mem != -10)
- {
- puts ("atomic_add_zero test 5 failed");
- ret = 1;
- }
-
- mem = 10;
- if (! atomic_add_zero (&mem, -10)
- || mem != 0)
- {
- puts ("atomic_add_zero test 6 failed");
- ret = 1;
- }
-
- mem = 0;
- atomic_bit_set (&mem, 1);
- if (mem != 2)
- {
- puts ("atomic_bit_set test 1 failed");
- ret = 1;
- }
-
- mem = 8;
- atomic_bit_set (&mem, 3);
- if (mem != 8)
- {
- puts ("atomic_bit_set test 2 failed");
- ret = 1;
- }
-
-#ifdef TEST_ATOMIC64
- mem = 16;
- atomic_bit_set (&mem, 35);
- if (mem != 0x800000010LL)
- {
- puts ("atomic_bit_set test 3 failed");
- ret = 1;
- }
-#endif
-
- mem = 0;
- if (atomic_bit_test_set (&mem, 1)
- || mem != 2)
- {
- puts ("atomic_bit_test_set test 1 failed");
- ret = 1;
- }
-
- mem = 8;
- if (! atomic_bit_test_set (&mem, 3)
- || mem != 8)
- {
- puts ("atomic_bit_test_set test 2 failed");
- ret = 1;
- }
-
-#ifdef TEST_ATOMIC64
- mem = 16;
- if (atomic_bit_test_set (&mem, 35)
- || mem != 0x800000010LL)
- {
- puts ("atomic_bit_test_set test 3 failed");
- ret = 1;
- }
-
- mem = 0x100000000LL;
- if (! atomic_bit_test_set (&mem, 32)
- || mem != 0x100000000LL)
- {
- puts ("atomic_bit_test_set test 4 failed");
- ret = 1;
- }
-#endif
-
-#ifdef catomic_compare_and_exchange_val_acq
- mem = 24;
- if (catomic_compare_and_exchange_val_acq (&mem, 35, 24) != 24
- || mem != 35)
- {
- puts ("catomic_compare_and_exchange_val_acq test 1 failed");
- ret = 1;
- }
-
- mem = 12;
- if (catomic_compare_and_exchange_val_acq (&mem, 10, 15) != 12
- || mem != 12)
- {
- puts ("catomic_compare_and_exchange_val_acq test 2 failed");
- ret = 1;
- }
-
- mem = -15;
- if (catomic_compare_and_exchange_val_acq (&mem, -56, -15) != -15
- || mem != -56)
- {
- puts ("catomic_compare_and_exchange_val_acq test 3 failed");
- ret = 1;
- }
-
- mem = -1;
- if (catomic_compare_and_exchange_val_acq (&mem, 17, 0) != -1
- || mem != -1)
- {
- puts ("catomic_compare_and_exchange_val_acq test 4 failed");
- ret = 1;
- }
-#endif
-
- mem = 24;
- if (catomic_compare_and_exchange_bool_acq (&mem, 35, 24)
- || mem != 35)
- {
- puts ("catomic_compare_and_exchange_bool_acq test 1 failed");
- ret = 1;
- }
-
- mem = 12;
- if (! catomic_compare_and_exchange_bool_acq (&mem, 10, 15)
- || mem != 12)
- {
- puts ("catomic_compare_and_exchange_bool_acq test 2 failed");
- ret = 1;
- }
-
- mem = -15;
- if (catomic_compare_and_exchange_bool_acq (&mem, -56, -15)
- || mem != -56)
- {
- puts ("catomic_compare_and_exchange_bool_acq test 3 failed");
- ret = 1;
- }
-
- mem = -1;
- if (! catomic_compare_and_exchange_bool_acq (&mem, 17, 0)
- || mem != -1)
- {
- puts ("catomic_compare_and_exchange_bool_acq test 4 failed");
- ret = 1;
- }
-
- mem = 2;
- if (catomic_exchange_and_add (&mem, 11) != 2
- || mem != 13)
- {
- puts ("catomic_exchange_and_add test failed");
- ret = 1;
- }
-
- mem = -21;
- catomic_add (&mem, 22);
- if (mem != 1)
- {
- puts ("catomic_add test failed");
- ret = 1;
- }
-
- mem = -1;
- catomic_increment (&mem);
- if (mem != 0)
- {
- puts ("catomic_increment test failed");
- ret = 1;
- }
-
- mem = 2;
- if (catomic_increment_val (&mem) != 3)
- {
- puts ("catomic_increment_val test failed");
- ret = 1;
- }
-
- mem = 17;
- catomic_decrement (&mem);
- if (mem != 16)
- {
- puts ("catomic_decrement test failed");
- ret = 1;
- }
-
- if (catomic_decrement_val (&mem) != 15)
- {
- puts ("catomic_decrement_val test failed");
- ret = 1;
- }
-
- /* Tests for C11-like atomics. */
- mem = 11;
- if (atomic_load_relaxed (&mem) != 11 || atomic_load_acquire (&mem) != 11)
- {
- puts ("atomic_load_{relaxed,acquire} test failed");
- ret = 1;
- }
-
- atomic_store_relaxed (&mem, 12);
- if (mem != 12)
- {
- puts ("atomic_store_relaxed test failed");
- ret = 1;
- }
- atomic_store_release (&mem, 13);
- if (mem != 13)
- {
- puts ("atomic_store_release test failed");
- ret = 1;
- }
-
- mem = 14;
- expected = 14;
- if (!atomic_compare_exchange_weak_relaxed (&mem, &expected, 25)
- || mem != 25 || expected != 14)
- {
- puts ("atomic_compare_exchange_weak_relaxed test 1 failed");
- ret = 1;
- }
- if (atomic_compare_exchange_weak_relaxed (&mem, &expected, 14)
- || mem != 25 || expected != 25)
- {
- puts ("atomic_compare_exchange_weak_relaxed test 2 failed");
- ret = 1;
- }
- mem = 14;
- expected = 14;
- if (!atomic_compare_exchange_weak_acquire (&mem, &expected, 25)
- || mem != 25 || expected != 14)
- {
- puts ("atomic_compare_exchange_weak_acquire test 1 failed");
- ret = 1;
- }
- if (atomic_compare_exchange_weak_acquire (&mem, &expected, 14)
- || mem != 25 || expected != 25)
- {
- puts ("atomic_compare_exchange_weak_acquire test 2 failed");
- ret = 1;
- }
- mem = 14;
- expected = 14;
- if (!atomic_compare_exchange_weak_release (&mem, &expected, 25)
- || mem != 25 || expected != 14)
- {
- puts ("atomic_compare_exchange_weak_release test 1 failed");
- ret = 1;
- }
- if (atomic_compare_exchange_weak_release (&mem, &expected, 14)
- || mem != 25 || expected != 25)
- {
- puts ("atomic_compare_exchange_weak_release test 2 failed");
- ret = 1;
- }
-
- mem = 23;
- if (atomic_exchange_acquire (&mem, 42) != 23 || mem != 42)
- {
- puts ("atomic_exchange_acquire test failed");
- ret = 1;
- }
- mem = 23;
- if (atomic_exchange_release (&mem, 42) != 23 || mem != 42)
- {
- puts ("atomic_exchange_release test failed");
- ret = 1;
- }
-
- mem = 23;
- if (atomic_fetch_add_relaxed (&mem, 1) != 23 || mem != 24)
- {
- puts ("atomic_fetch_add_relaxed test failed");
- ret = 1;
- }
- mem = 23;
- if (atomic_fetch_add_acquire (&mem, 1) != 23 || mem != 24)
- {
- puts ("atomic_fetch_add_acquire test failed");
- ret = 1;
- }
- mem = 23;
- if (atomic_fetch_add_release (&mem, 1) != 23 || mem != 24)
- {
- puts ("atomic_fetch_add_release test failed");
- ret = 1;
- }
- mem = 23;
- if (atomic_fetch_add_acq_rel (&mem, 1) != 23 || mem != 24)
- {
- puts ("atomic_fetch_add_acq_rel test failed");
- ret = 1;
- }
-
- mem = 3;
- if (atomic_fetch_and_acquire (&mem, 2) != 3 || mem != 2)
- {
- puts ("atomic_fetch_and_acquire test failed");
- ret = 1;
- }
-
- mem = 4;
- if (atomic_fetch_or_relaxed (&mem, 2) != 4 || mem != 6)
- {
- puts ("atomic_fetch_or_relaxed test failed");
- ret = 1;
- }
- mem = 4;
- if (atomic_fetch_or_acquire (&mem, 2) != 4 || mem != 6)
- {
- puts ("atomic_fetch_or_acquire test failed");
- ret = 1;
- }
-
- /* This is a single-threaded test, so we can't test the effects of the
- fences. */
- atomic_thread_fence_acquire ();
- atomic_thread_fence_release ();
- atomic_thread_fence_seq_cst ();
-
- return ret;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/stat/Makefile b/test/stat/Makefile
deleted file mode 100644
index 03fdb96..0000000
--- a/test/stat/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc stat tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/stat/Makefile.in b/test/stat/Makefile.in
deleted file mode 100644
index 9c06ded..0000000
--- a/test/stat/Makefile.in
+++ /dev/null
@@ -1,13 +0,0 @@
-# uClibc stat tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-ifeq ($(UCLIBC_HAS_LFS),)
-TESTS_DISABLED := stat64
-endif
-CFLAGS_stat64 := -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
-
-DODIFF_stat := 1
-DODIFF_stat64 := 1
-
-OPTS_stat := Makefile
-OPTS_stat64 := Makefile
diff --git a/test/stat/memcmp-stat.c b/test/stat/memcmp-stat.c
deleted file mode 100644
index 254c754..0000000
--- a/test/stat/memcmp-stat.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/* Distilled from issue found with tar and symlinks.
- * Make sure that the whole stat struct between runs
- * is agreeable.
- */
-
-#ifndef _GNU_SOURCE
-# define _GNU_SOURCE
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <assert.h>
-#include <time.h>
-
-static void show_stat(struct stat *st)
-{
- printf(
- "------------------\n"
- "st_dev = %li\n"
- "st_ino = %li\n"
- "st_mode = %li\n"
- "st_nlink = %li\n"
- "st_uid = %li\n"
- "st_gid = %li\n"
- "st_rdev = %li\n"
- "st_size = %li\n"
- "st_blksize = %li\n"
- "st_blocks = %li\n"
- "st_atime = %li\n"
- "st_ansec = %li\n"
- "st_mtime = %li\n"
- "st_mnsec = %li\n"
- "st_ctime = %li\n"
- "st_cnsec = %li\n",
- (long int)st->st_dev,
- (long int)st->st_ino,
- (long int)st->st_mode,
- (long int)st->st_nlink,
- (long int)st->st_uid,
- (long int)st->st_gid,
- (long int)st->st_rdev,
- (long int)st->st_size,
- (long int)st->st_blksize,
- (long int)st->st_blocks,
-#if !defined(__UCLIBC__) || defined(__USE_MISC)
- (long int)st->st_atime,
- (long int)st->st_atim.tv_nsec,
- (long int)st->st_mtime,
- (long int)st->st_mtim.tv_nsec,
- (long int)st->st_ctime,
- (long int)st->st_ctim.tv_nsec
-#else
- (long int)st->st_atime,
- (long int)st->st_atimensec,
- (long int)st->st_mtime,
- (long int)st->st_mtimensec,
- (long int)st->st_ctime,
- (long int)st->st_ctimensec
-#endif
- );
-}
-
-int main(void)
-{
- int ret;
- int fd;
- struct stat fst, st;
-
- memset(&fst, 0xAA, sizeof(fst));
- memset(&st, 0x55, sizeof(st));
-
- unlink(".testfile");
- fd = open(".testfile", O_WRONLY | O_CREAT | O_EXCL, 0);
- if (fd < 0) {
- perror("open(.testfile) failed");
- return 1;
- }
- ret = fstat(fd, &fst);
- if (ret != 0) {
- perror("fstat(.testfile) failed");
- return 1;
- }
- close(fd);
-
- ret = stat(".testfile", &st);
- if (ret != 0) {
- perror("stat(.testfile) failed");
- return 1;
- }
-
- ret = memcmp(&fst, &st, sizeof(fst));
- if (ret != 0) {
- printf("FAILED: memcmp() = %i\n", ret);
- show_stat(&fst);
- show_stat(&st);
- }
-
- unlink(".testfile");
-
- return ret;
-}
diff --git a/test/stat/stat-loop256.c b/test/stat/stat-loop256.c
deleted file mode 100644
index 14284c1..0000000
--- a/test/stat/stat-loop256.c
+++ /dev/null
@@ -1,32 +0,0 @@
-#include <stdio.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <sys/stat.h>
-int main()
-{
- struct stat statbuf;
- int ret = 0;
- char* loop255 = "/dev/loop255";
- char* loop256 = "/dev/loop256";
- mode_t mode = 0660;
- mknod(loop255, mode, 0x7ff);
- mknod(loop256, mode, 0x100700);
- ret = stat(loop255, &statbuf);
- if(ret < 0) {
- printf("stat: Cant stat %s\n",loop255);
- unlink(loop255);
- exit(1);
- }
- ret = stat(loop256, &statbuf);
- if(ret < 0) {
- printf("stat: Cant stat %s\n",loop256);
- unlink(loop255);
- unlink(loop256);
- exit(1);
- }
-
- unlink(loop255);
- unlink(loop256);
- exit(0);
-}
-
diff --git a/test/stat/stat.c b/test/stat/stat.c
deleted file mode 100644
index 4980cdd..0000000
--- a/test/stat/stat.c
+++ /dev/null
@@ -1,71 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <stdlib.h>
-
-static void print_struct_stat(char *msg, struct stat *s)
-{
- printf("%s\n", msg);
- /* The casts are because glibc thinks it's cool */
- printf("device : 0x%llx\n",(long long)s->st_dev);
- printf("inode : %lld\n", (long long)s->st_ino);
- printf("mode : 0x%llx\n",(long long)s->st_mode);
- printf("nlink : %lld\n", (long long)s->st_nlink);
- printf("uid : %lld\n", (long long)s->st_uid);
- printf("gid : %lld\n", (long long)s->st_gid);
- printf("rdev : 0x%llx\n",(long long)s->st_rdev);
- printf("size : %lld\n", (long long)s->st_size);
- printf("blksize : %lld\n", (long long)s->st_blksize);
- printf("blocks : %lld\n", (long long)s->st_blocks);
- printf("atime : %lld\n", (long long)s->st_atime);
- printf("mtime : %lld\n", (long long)s->st_mtime);
- printf("ctime : %lld\n", (long long)s->st_ctime);
-}
-
-int main(int argc,char **argv)
-{
- int fd, ret;
- char *file;
- struct stat s;
-
- if (argc < 2) {
- fprintf(stderr, "Usage: stat FILE\n");
- exit(1);
- }
- file = argv[1];
-
- memset(&s, 0, sizeof(struct stat));
- ret = stat(file, &s);
- if(ret<0){
- perror("stat");
- exit(1);
- }
- print_struct_stat("\nTesting stat:", &s);
-
- memset(&s, 0, sizeof(struct stat));
- ret = lstat(file, &s);
- if(ret<0){
- perror("lstat");
- exit(1);
- }
- print_struct_stat("\nTesting lstat:", &s);
-
-
- fd = open(file, O_RDONLY);
- if(fd<0){
- perror("open");
- exit(1);
- }
- memset(&s, 0, sizeof(struct stat));
- ret = fstat(fd,&s);
- if(ret<0){
- perror("fstat");
- exit(1);
- }
- print_struct_stat("\nTesting fstat:", &s);
-
- exit(0);
-}
-
diff --git a/test/stat/stat64.c b/test/stat/stat64.c
deleted file mode 100644
index a074251..0000000
--- a/test/stat/stat64.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "stat.c"
diff --git a/test/stdio/64bit.c b/test/stdio/64bit.c
deleted file mode 100644
index 9b94dd8..0000000
--- a/test/stdio/64bit.c
+++ /dev/null
@@ -1,12 +0,0 @@
-#include <stdio.h>
-
-int main(void)
-{
- unsigned long long val = -1;
- void *ptr = (void *)-1;
- printf("%p\n", ptr);
-
- sscanf("123456789", "%Lx", &val);
- printf("val = %Lx\n", val);
- return 0;
-}
diff --git a/test/stdio/Makefile b/test/stdio/Makefile
deleted file mode 100644
index 95b930b..0000000
--- a/test/stdio/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc stdio tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/stdio/Makefile.in b/test/stdio/Makefile.in
deleted file mode 100644
index 14b5f19..0000000
--- a/test/stdio/Makefile.in
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc stdio tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-DODIFF_64bit := 1
-
-ifeq ($(UCLIBC_HAS_GLIBC_CUSTOM_STREAMS),)
-TESTS_DISABLED += tst-fmemopen
-endif
diff --git a/test/stdio/fclose-loop.c b/test/stdio/fclose-loop.c
deleted file mode 100644
index fc0cc42..0000000
--- a/test/stdio/fclose-loop.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/* From: Denis Vlasenko <vda.linux(a)googlemail.com>
- * With certain combination of .config options fclose() does not
- * remove FILE* pointer from _stdio_openlist. As a result, subsequent
- * fopen() may allocate new FILE structure exactly in place of one
- * freed by previous fclose(), which then makes _stdio_openlist
- * circularlt looped. The following program will enter infinite loop
- * trying to walk _stdio_openlist in exit():
- */
-
-#include <stdlib.h>
-#include <stdio.h>
-
-int main(int argc, char *argv[])
-{
- FILE* fp;
- fp = fopen("/dev/null", "r");
- fclose(fp);
- fp = fopen("/dev/zero", "r");
- fclose(fp);
- return 0;
-}
diff --git a/test/stdio/lseek_no_lfs.c b/test/stdio/lseek_no_lfs.c
deleted file mode 100644
index 54daf6b..0000000
--- a/test/stdio/lseek_no_lfs.c
+++ /dev/null
@@ -1,22 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-
-int main(int argc, char *argv[])
-{
- FILE * f = fopen(argv[0], "rb");
- if (!f)
- {
- printf("Error: Can't open %s, reason: %s\n", argv[0], strerror(errno));
- return 1;
- }
-
- if (fseek(f, (unsigned)4096, (int)SEEK_SET) == -1)
- {
- printf("Test failed, fseek return fail code. errno=%u (%s)\n", errno,
strerror(errno));
- return 1;
- }
-
- fclose(f);
- return 0;
-}
diff --git a/test/stdio/scanf_m.c b/test/stdio/scanf_m.c
deleted file mode 100644
index e1dde27..0000000
--- a/test/stdio/scanf_m.c
+++ /dev/null
@@ -1,27 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-int main(void)
-{
- const char *buf = "hello world";
- char *ps = NULL, *pc = NULL, *ps2 = NULL;
- char s[6], c, s2[5];
-
- /* Check that %[...]/%c/%s work. */
- sscanf(buf, "%[a-z] %c %s", s, &c, s2);
- /* Check that %m[...]/%mc/%ms work. */
- sscanf(buf, "%m[a-z] %mc %ms", &ps, &pc, &ps2);
-
- if (strcmp(ps, "hello") != 0 || *pc != 'w' ||
- strcmp(ps2, "orld") != 0 ||
- strcmp(s, "hello") != 0 || c != 'w' ||
- strcmp(s2, "orld") != 0)
- return 1;
-
- free(ps);
- free(pc);
- free(ps2);
-
- return 0;
-}
diff --git a/test/stdio/tst-fmemopen.c b/test/stdio/tst-fmemopen.c
deleted file mode 100644
index 384faa1..0000000
--- a/test/stdio/tst-fmemopen.c
+++ /dev/null
@@ -1,53 +0,0 @@
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-static char *text_input = "1 23 43";
-
-static const char *good_answer = "1 529 1849 ";
-
-
-static int
-do_test (void)
-{
- FILE *out, *in;
- int v, s;
- size_t size;
- char *ptr;
-
- in = fmemopen(text_input, strlen(text_input), "r");
- if (in == NULL) {
- perror("fmemopen");
- return 1;
- }
-
- out = open_memstream(&ptr, &size);
- if (out == NULL) {
- perror("open_memstream");
- return 1;
- }
-
- for (;;) {
- s = fscanf(in, "%d", &v);
- if (s <= 0)
- break;
-
- s = fprintf(out, "%d ", v * v);
- if (s == -1) {
- puts("fprintf failed");
- exit(1);
- }
- }
- fclose(in);
- fclose(out);
-
- if (size != strlen(good_answer) || strcmp(good_answer, ptr) != 0) {
- printf("failed: size=%zu; ptr=%s\n", size, ptr);
- exit(1);
- }
- free(ptr);
- exit(0);
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/stdlib/Makefile b/test/stdlib/Makefile
deleted file mode 100644
index 567e0e3..0000000
--- a/test/stdlib/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc stdlib tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/stdlib/Makefile.in b/test/stdlib/Makefile.in
deleted file mode 100644
index f39941d..0000000
--- a/test/stdlib/Makefile.in
+++ /dev/null
@@ -1,15 +0,0 @@
-# uClibc stdlib tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-DODIFF_qsort := 1
-DODIFF_testatexit := 1
-DODIFF_teston_exit := 1
-DODIFF_teststrtol := 1
-
-TESTS_DISABLED :=
-ifeq ($(UCLIBC_HAS_PTY),)
-TESTS_DISABLED += ptytest
-endif
-ifeq ($(UCLIBC_HAS_ARC4RANDOM),)
-TESTS_DISABLED += testarc4random
-endif
diff --git a/test/stdlib/ptytest.c b/test/stdlib/ptytest.c
deleted file mode 100644
index a795638..0000000
--- a/test/stdlib/ptytest.c
+++ /dev/null
@@ -1,20 +0,0 @@
-#define _XOPEN_SOURCE
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-int main(int argc, char **argv)
-{
- int fd;
- char *cp;
-
- fd=open("/dev/ptmx",O_NOCTTY|O_RDWR);
- cp=ptsname(fd);
- if (cp==NULL)
- return EXIT_FAILURE;
- printf("ptsname %s\n",cp);
- return EXIT_SUCCESS;
-}
-
diff --git a/test/stdlib/qsort.c b/test/stdlib/qsort.c
deleted file mode 100644
index 74f9331..0000000
--- a/test/stdlib/qsort.c
+++ /dev/null
@@ -1,53 +0,0 @@
-#include <stdio.h>
-#include <dirent.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-static int select_files(const struct dirent *dirbuf)
-{
- if (dirbuf->d_name[0] == '.')
- return 0;
- else
- return 1;
-}
-
-int main(void)
-{
- struct dirent **array;
- struct dirent *dirbuf;
-
- int i, numdir;
-
- chdir("/");
- numdir = scandir(".", &array, select_files, NULL);
- printf("\nGot %d entries from scandir().\n", numdir);
- for (i = 0; i < numdir; ++i) {
- dirbuf = array[i];
- printf("[%d] %s\n", i, dirbuf->d_name);
- free(array[i]);
- }
- free(array);
- numdir = scandir(".", &array, select_files, alphasort);
- printf("\nGot %d entries from scandir() using alphasort().\n", numdir);
- for (i = 0; i < numdir; ++i) {
- dirbuf = array[i];
- printf("[%d] %s\n", i, dirbuf->d_name);
- }
- printf("\nCalling qsort()\n");
- /* Even though some manpages say that alphasort should be
- * int alphasort(const void *a, const void *b),
- * in reality glibc and uclibc have const struct dirent**
- * instead of const void*.
- * Therefore we get a warning here unless we use a cast,
- * which makes people think that alphasort prototype
- * needs to be fixed in uclibc headers.
- */
- qsort(array, numdir, sizeof(struct dirent *), (void*) alphasort);
- for (i = 0; i < numdir; ++i) {
- dirbuf = array[i];
- printf("[%d] %s\n", i, dirbuf->d_name);
- free(array[i]);
- }
- free(array);
- return (0);
-}
diff --git a/test/stdlib/test-canon.c b/test/stdlib/test-canon.c
deleted file mode 100644
index 1b43ded..0000000
--- a/test/stdlib/test-canon.c
+++ /dev/null
@@ -1,251 +0,0 @@
-/* Test program for returning the canonical absolute name of a given file.
- Copyright (C) 1996,1997,2000,2002,2004,2005,2006
- Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by David Mosberger <davidm(a)azstarnet.com>om>.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* This file must be run from within a directory called "stdlib". */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/param.h>
-#include <sys/stat.h>
-
-/* Prototype for our test function. */
-extern int do_test (int argc, char *argv[]);
-#include "../test-skeleton.c"
-
-#ifndef PATH_MAX
-# define PATH_MAX 4096
-#endif
-static char cwd[PATH_MAX];
-static size_t cwd_len;
-
-struct {
- const char * name;
- const char * value;
-} symlinks[] = {
- {"SYMLINK_LOOP", "SYMLINK_LOOP"},
- {"SYMLINK_1", "."},
- {"SYMLINK_2", "//////./../../etc"},
- {"SYMLINK_3", "SYMLINK_1"},
- {"SYMLINK_4", "SYMLINK_2"},
- {"SYMLINK_5", "doesNotExist"},
-};
-
-struct {
- const char * in;
- const char * retval; /* what realpath should return */
- const char * retbuf; /* what realpath should store in buf */
- /* if both of the above are NULL, we won't check for result,
- * it's undefined */
- int error; /* expected errno value */
-} tests[] = {
- /* 0 */
- {"/", "/"},
- {"/////////////////////////////////", "/"},
- {"/.././.././.././..///", "/"},
- {"/etc", "/etc"},
- {"/etc/../etc", "/etc"},
- /* 5 */
- {"/doesNotExist/../etc", 0, "/doesNotExist", ENOENT},
- {"./././././././././.", "."},
- {"/etc/.//doesNotExist", 0, "/etc/doesNotExist", ENOENT},
- {"./doesExist", "./doesExist"},
- {"./doesExist/", "./doesExist"},
- /* 10 */
- {"./doesExist/../doesExist", "./doesExist"},
- {"foobar", 0, "./foobar", ENOENT},
- {".", "."},
- {"./foobar", 0, "./foobar", ENOENT},
- {"SYMLINK_LOOP", 0, 0, ELOOP},
- /* 15 */
- {"./SYMLINK_LOOP", 0, 0, ELOOP},
- {"SYMLINK_1", "."},
- {"SYMLINK_1/foobar", 0, "./foobar", ENOENT},
- {"SYMLINK_2", "/etc"},
- {"SYMLINK_3", "."},
- /* 20 */
- {"SYMLINK_4", "/etc"},
- {"../stdlib/SYMLINK_1", "."},
- {"../stdlib/SYMLINK_2", "/etc"},
- {"../stdlib/SYMLINK_3", "."},
- {"../stdlib/SYMLINK_4", "/etc"},
- /* 25 */
- {"./SYMLINK_5", 0, "./doesNotExist", ENOENT},
- {"SYMLINK_5", 0, "./doesNotExist", ENOENT},
- {"SYMLINK_5/foobar", 0, "./doesNotExist", ENOENT},
- {"doesExist/../../stdlib/doesExist", "./doesExist"},
- {"doesExist/.././../stdlib/.", "."},
-#ifndef __UCLIBC__
- /* we dont check for ENOTDIR in readlink() which causes failures to
- * propogate up to realpath() ... so disable for now ... */
- /* 30 */
- {"./doesExist/someFile/", 0, "./doesExist/someFile", ENOTDIR},
- {"./doesExist/someFile/..", 0, "./doesExist/someFile", ENOTDIR},
-#endif
-};
-
-
-static int
-check_path (const char * result, const char * expected)
-{
- int good;
-
- if (!result)
- return (expected == NULL);
-
- if (!expected)
- return 0;
-
- if (expected[0] == '.' && (expected[1] == '/' || expected[1] ==
'\0'))
- good = (strncmp (result, cwd, cwd_len) == 0
- && strcmp (result + cwd_len, expected + 1) == 0);
- else
- good = (strcmp (expected, result) == 0);
-
- return good;
-}
-
-
-int
-do_test (int argc, char ** argv)
-{
- char * result;
- int i, errors = 0;
- char buf[PATH_MAX];
-
- getcwd (cwd, sizeof(buf));
- cwd_len = strlen (cwd);
-
-#ifndef __UCLIBC__
- /* we choose to crash in uClibc when given a NULL */
- errno = 0;
- if (realpath (NULL, buf) != NULL || errno != EINVAL)
- {
- printf ("%s: expected return value NULL and errno set to EINVAL"
- " for realpath(NULL,...)\n", argv[0]);
- ++errors;
- }
-#endif
-
-#if 0
- /* This is now allowed. The test is invalid. */
- errno = 0;
- if (realpath ("/", NULL) != NULL || errno != EINVAL)
- {
- printf ("%s: expected return value NULL and errno set to EINVAL"
- " for realpath(...,NULL)\n", argv[0]);
- ++errors;
- }
-#endif
-
- errno = 0;
- if (realpath ("", buf) != NULL || errno != ENOENT)
- {
- printf ("%s: expected return value NULL and set errno to ENOENT"
- " for realpath(\"\",...)\n", argv[0]);
- ++errors;
- }
-
- for (i = 0; i < (int) (sizeof (symlinks) / sizeof (symlinks[0])); ++i)
- symlink (symlinks[i].value, symlinks[i].name);
-
- int has_dir = mkdir ("doesExist", 0777) == 0;
-
- int fd = has_dir ? creat ("doesExist/someFile", 0777) : -1;
-
- for (i = 0; i < (int) (sizeof (tests) / sizeof (tests[0])); ++i)
- {
- buf[0] = '\0';
- errno = 0;
- result = realpath (tests[i].in, buf);
-
- if (!check_path (result, tests[i].retval))
- {
- printf ("%s: flunked test %d (expected `%s', got `%s')\n",
- argv[0], i, tests[i].retval ? tests[i].retval : "NULL",
- result ? result : "NULL");
- ++errors;
- continue;
- }
-
- if (result && !check_path (buf, tests[i].retval ? tests[i].retval :
tests[i].retbuf))
- {
- printf ("%s: flunked test %d (expected resolved `%s', got `%s')\n",
- argv[0], i, tests[i].retval ? tests[i].retval : tests[i].retbuf,
- buf);
- ++errors;
- continue;
- }
-
- if (errno != tests[i].error)
- {
- printf ("%s: flunked test %d (expected errno %d, got %d)\n",
- argv[0], i, tests[i].error, errno);
- ++errors;
- continue;
- }
-
-#ifndef __UCLIBC__
- /* we choose to crash in uClibc when given a NULL */
- char *result2 = realpath (tests[i].in, NULL);
- if ((result2 == NULL && result != NULL)
- || (result2 != NULL && strcmp (result, result2) != 0))
- {
- printf ("\
-%s: realpath(..., NULL) produced different result than realpath(..., buf): '%s'
vs '%s'\n",
- argv[0], result2, result);
- ++errors;
- }
- free (result2);
-#endif
- }
-
- getcwd (buf, sizeof(buf));
- if (strcmp (buf, cwd))
- {
- printf ("%s: current working directory changed from %s to %s\n",
- argv[0], cwd, buf);
- ++errors;
- }
-
- if (fd >= 0)
- {
- close (fd);
- unlink ("doesExist/someFile");
- }
-
- if (has_dir)
- rmdir ("doesExist");
-
- for (i = 0; i < (int) (sizeof (symlinks) / sizeof (symlinks[0])); ++i)
- unlink (symlinks[i].name);
-
- if (errors != 0)
- {
- printf ("%d errors.\n", errors);
- return EXIT_FAILURE;
- }
-
- puts ("No errors.");
- return EXIT_SUCCESS;
-}
diff --git a/test/stdlib/test-canon2.c b/test/stdlib/test-canon2.c
deleted file mode 100644
index 4a03b2d..0000000
--- a/test/stdlib/test-canon2.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/* Test for realpath/canonicalize function.
- Copyright (C) 1998 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)cygnus.com>om>, 1998.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <string.h>
-
-
-/* Prototype for our test function. */
-extern void do_prepare (int argc, char *argv[]);
-extern int do_test (int argc, char *argv[]);
-
-/* We have a preparation function. */
-#define PREPARE do_prepare
-
-#include <test-skeleton.c>
-
-/* Name of the temporary files we create. */
-char *name1;
-char *name2;
-
-/* Preparation. */
-void
-do_prepare (int argc, char *argv[])
-{
- size_t test_dir_len;
- int tfd;
-
- test_dir_len = strlen (test_dir);
-
- /* Generate the circular symlinks. */
- name1 = malloc (test_dir_len + sizeof ("/canonXXXXXX"));
- mempcpy (mempcpy (name1, test_dir, test_dir_len),
- "/canonXXXXXX", sizeof ("/canonXXXXXX"));
- name2 = strdup (name1);
- tfd = mkstemp(name1);
- if (tfd < 0) {
- printf("%s: cannot generate temp file name\n", __FUNCTION__);
- exit(1);
- }
- close(tfd);
- add_temp_file (name1);
- tfd = mkstemp(name2);
- if (tfd < 0) {
- printf("%s: cannot generate temp file name\n", __FUNCTION__);
- exit(1);
- }
- close(tfd);
- add_temp_file (name2);
-}
-
-
-/* Run the test. */
-int
-do_test (int argc, char *argv[])
-{
- char *canon;
-
- printf ("create symlinks from %s to %s and vice versa\n", name1, name2);
- if (symlink (name1, name2) == -1
- || symlink (name2, name1) == -1)
- /* We cannot test this. */
- return 0;
-
- /* Call the function. This is equivalent the using `realpath' but the
- function allocates the room for the result. */
- errno = 0;
- canon = canonicalize_file_name (name1);
-
- return canon != NULL || errno != ELOOP;
-}
diff --git a/test/stdlib/test-mkostemp-O_CLOEXEC.c
b/test/stdlib/test-mkostemp-O_CLOEXEC.c
deleted file mode 100644
index 9ff229a..0000000
--- a/test/stdlib/test-mkostemp-O_CLOEXEC.c
+++ /dev/null
@@ -1,45 +0,0 @@
-#define _XOPEN_SOURCE_EXTENDED
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <sys/wait.h>
-#include <errno.h>
-
-#if !defined __ARCH_USE_MMU__
-# define fork vfork
-#endif
-
-int main(int argc, char *argv[]) {
- int fd, status;
- char buff[5];
- char template[] = "/tmp/test-mkostemp.XXXXXX";
-
- fd = mkostemp(template, O_CLOEXEC);
- unlink(template);
-
- snprintf(buff, 5, "%d", fd);
-
- if(!fork())
- if(execl("./test-mkostemp-child", "test-mkostemp-child",
buff, NULL) == -1)
- exit(EXIT_FAILURE);
-
- wait(&status);
-
- memset(buff, 0, 5);
- lseek(fd, 0, SEEK_SET);
- errno = 0;
- if(read(fd, buff, 5) == -1)
- exit(EXIT_FAILURE);
-
- if(!strncmp(buff, "test", 5))
- exit(EXIT_FAILURE);
- else
- exit(EXIT_SUCCESS);
-
- close(fd);
- exit(EXIT_SUCCESS);
-}
diff --git a/test/stdlib/test-mkostemp-child.c b/test/stdlib/test-mkostemp-child.c
deleted file mode 100644
index 708bd80..0000000
--- a/test/stdlib/test-mkostemp-child.c
+++ /dev/null
@@ -1,22 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-int main(int argc, char *argv[]) {
- int fd;
-
- /* This file gets built and run as a test, but its
- * really just a helper for test-mkostemp-O_CLOEXEC.c.
- * So, we'll always return succcess.
- */
- if(argc != 2)
- exit(EXIT_SUCCESS);
-
- sscanf(argv[1], "%d", &fd);
-
- if(write(fd, "test\0", 5) == -1)
- ; /* Don't Panic! Failure is okay here. */
-
- close(fd);
- exit(EXIT_SUCCESS);
-}
diff --git a/test/stdlib/testarc4random.c b/test/stdlib/testarc4random.c
deleted file mode 100644
index 14ff1cc..0000000
--- a/test/stdlib/testarc4random.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <stdlib.h>
-#include <stdio.h>
-
-int main(void)
-{
- int random_number;
- random_number = arc4random() % 65536;
- printf("%d\n", random_number);
- return 0;
-}
diff --git a/test/stdlib/testatexit.c b/test/stdlib/testatexit.c
deleted file mode 100644
index 01874fd..0000000
--- a/test/stdlib/testatexit.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * This test program will register the maximum number of exit functions
- * with atexit(). When this program exits, each exit function should get
- * called in the reverse order in which it was registered. (If the system
- * supports more than 25 exit functions, the function names will loop, but
- * the effect will be the same. Feel free to add more functions if desired)
- */
-#include <stdio.h>
-#include <stdlib.h>
-
-typedef void (*vfuncp) (void);
-
-/* All functions call exit(), in order to test that exit functions can call
- * exit() without screwing everything up. :)
- */
-#define make_exitfunc(num) \
-__attribute__ ((__noreturn__)) static \
-void exitfunc##num(void) \
-{ \
- printf("Executing exitfunc"#num".\n"); \
- exit(0); \
-}
-make_exitfunc(0)
-make_exitfunc(1)
-make_exitfunc(2)
-make_exitfunc(3)
-make_exitfunc(4)
-make_exitfunc(5)
-make_exitfunc(6)
-make_exitfunc(7)
-make_exitfunc(8)
-make_exitfunc(9)
-make_exitfunc(10)
-make_exitfunc(11)
-make_exitfunc(12)
-make_exitfunc(13)
-make_exitfunc(14)
-make_exitfunc(15)
-make_exitfunc(16)
-make_exitfunc(17)
-make_exitfunc(18)
-make_exitfunc(19)
-make_exitfunc(20)
-make_exitfunc(21)
-make_exitfunc(22)
-make_exitfunc(23)
-make_exitfunc(24)
-
-static vfuncp func_table[] =
- {
- exitfunc0, exitfunc1, exitfunc2, exitfunc3, exitfunc4,
- exitfunc5, exitfunc6, exitfunc7, exitfunc8, exitfunc9,
- exitfunc10, exitfunc11, exitfunc12, exitfunc13, exitfunc14,
- exitfunc15, exitfunc16, exitfunc17, exitfunc18, exitfunc19,
- exitfunc20, exitfunc21, exitfunc22, exitfunc23, exitfunc24
- };
-
-/* glibc dynamically adds exit functions, so it will keep adding until
- * it runs out of memory! So this will limit the number of exit functions
- * we add in the loop below. uClibc has a set limit (currently 20), so the
- * loop will go until it can't add any more (so it should not hit this limit).
- */
-#define ATEXIT_LIMIT 20
-
-int
-main ( void )
-{
- int i = 0;
- int count = 0;
- int numfuncs = sizeof(func_table)/sizeof(vfuncp);
-
- /* loop until no more can be added */
- while(count < ATEXIT_LIMIT && atexit(func_table[i]) >= 0) {
- printf("Registered exitfunc%d with atexit()\n", i);
- count++;
- i = (i+1) % numfuncs;
- }
- printf("%d functions registered with atexit.\n", count);
-
- return 0;
-}
diff --git a/test/stdlib/teston_exit.c b/test/stdlib/teston_exit.c
deleted file mode 100644
index f7e8fd0..0000000
--- a/test/stdlib/teston_exit.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * This test program will register the maximum number of exit functions
- * with on_exit(). When this program exits, each exit function should get
- * called in the reverse order in which it was registered. (If the system
- * supports more than 25 exit functions, the function names will loop, but
- * the effect will be the same. Feel free to add more functions if desired)
- */
-#include <stdio.h>
-#include <stdlib.h>
-
-typedef void (*efuncp) (int, void *);
-
-/* All functions call exit(), in order to test that exit functions can call
- * exit() without screwing everything up. The value passed in through arg gets
- * used as the next exit status.
- */
-#define make_exitfunc(num) \
-__attribute__ ((__noreturn__)) static \
-void exitfunc##num(int status, void *arg) \
-{ \
- printf("Executing exitfunc"#num" (status=%d, arg=%lu)\n", status,
(unsigned long)arg); \
- exit((unsigned long)arg); \
-}
-make_exitfunc(0)
-make_exitfunc(1)
-make_exitfunc(2)
-make_exitfunc(3)
-make_exitfunc(4)
-make_exitfunc(5)
-make_exitfunc(6)
-make_exitfunc(7)
-make_exitfunc(8)
-make_exitfunc(9)
-make_exitfunc(10)
-make_exitfunc(11)
-make_exitfunc(12)
-make_exitfunc(13)
-make_exitfunc(14)
-make_exitfunc(15)
-make_exitfunc(16)
-make_exitfunc(17)
-make_exitfunc(18)
-make_exitfunc(19)
-make_exitfunc(20)
-make_exitfunc(21)
-make_exitfunc(22)
-make_exitfunc(23)
-make_exitfunc(24)
-
-static efuncp func_table[] =
- {
- exitfunc0, exitfunc1, exitfunc2, exitfunc3, exitfunc4,
- exitfunc5, exitfunc6, exitfunc7, exitfunc8, exitfunc9,
- exitfunc10, exitfunc11, exitfunc12, exitfunc13, exitfunc14,
- exitfunc15, exitfunc16, exitfunc17, exitfunc18, exitfunc19,
- exitfunc20, exitfunc21, exitfunc22, exitfunc23, exitfunc24
- };
-
-/* glibc dynamically adds exit functions, so it will keep adding until
- * it runs out of memory! So this will limit the number of exit functions
- * we add in the loop below. uClibc has a set limit (currently 20), so the
- * loop will go until it can't add any more (so it should not hit this limit).
- */
-#define ON_EXIT_LIMIT 20
-
-int
-main ( void )
-{
- int i = 0;
- unsigned long count = 0;
- int numfuncs = sizeof(func_table)/sizeof(efuncp);
-
- /* loop until no more can be added */
- while(count < ON_EXIT_LIMIT && on_exit(func_table[i], (void *)count) >= 0)
{
- count++;
- printf("Registered exitfunc%d with on_exit()\n", i);
- i = (i+1) % numfuncs;
- }
- printf("%lu functions registered with on_exit.\n", count);
- exit(count);
-}
-
diff --git a/test/stdlib/teststrtol.c b/test/stdlib/teststrtol.c
deleted file mode 100644
index 5b43a9b..0000000
--- a/test/stdlib/teststrtol.c
+++ /dev/null
@@ -1,109 +0,0 @@
-
-#include <stdlib.h>
-#include <stdio.h>
-
-
-const char *strings[]={
- /* some simple stuff */
- "0", "1", "10",
- "100", "1000", "10000", "100000",
"1000000",
- "10000000", "100000000", "1000000000",
-
- /* negative */
- "-0", "-1", "-10",
- "-100", "-1000", "-10000", "-100000",
"-1000000",
- "-10000000", "-100000000", "-1000000000",
-
- /* test base>10 */
- "a", "b", "f", "g", "z",
-
- /* test hex */
- "0x0", "0x1", "0xa", "0xf", "0x10",
-
- /* test octal */
- "00", "01", "07", "08", "0a",
"010",
-
- /* other */
- "0x8000000",
-
- /* check overflow cases: (for 32 bit) */
- "2147483645",
- "2147483646",
- "2147483647",
- "2147483648",
- "2147483649",
- "-2147483645",
- "-2147483646",
- "-2147483647",
- "-2147483648",
- "-2147483649",
- "4294967293",
- "4294967294",
- "4294967295",
- "4294967296",
- "4294967297",
- "-4294967293",
- "-4294967294",
- "-4294967295",
- "-4294967296",
- "-4294967297",
-
- /* bad input tests */
- "",
- "00",
- "0x",
- "0x0",
- "-",
- "+",
- " ",
- " -",
- " - 0",
-};
-int n_tests=sizeof(strings)/sizeof(strings[0]);
-
-void do_test(int base);
-void do_utest(int base);
-
-int main(int argc,char *argv[])
-{
- do_test(0);
- do_test(8);
- do_test(10);
- do_test(16);
- do_test(36);
-
- do_utest(0);
- do_utest(8);
- do_utest(10);
- do_utest(16);
- do_utest(36);
-
- return 0;
-}
-
-void do_test(int base)
-{
- int i;
- long n;
- char *endptr;
-
- for(i=0;i<n_tests;i++){
- n=strtol(strings[i],&endptr,base);
- printf("strtol(\"%s\",%d) len=%lu res=%ld\n",
- strings[i],base,(unsigned long)(endptr-strings[i]),n);
- }
-}
-
-void do_utest(int base)
-{
- int i;
- unsigned long n;
- char *endptr;
-
- for(i=0;i<n_tests;i++){
- n=strtoul(strings[i],&endptr,base);
- printf("strtoul(\"%s\",%d) len=%lu res=%lu\n",
- strings[i],base,(unsigned long)(endptr-strings[i]),n);
- }
-}
-
diff --git a/test/stdlib/teststrtoq.c b/test/stdlib/teststrtoq.c
deleted file mode 100644
index 6e1a4cb..0000000
--- a/test/stdlib/teststrtoq.c
+++ /dev/null
@@ -1,89 +0,0 @@
-
-#include <stdlib.h>
-#include <stdio.h>
-
-
-const char *strings[]={
- /* some simple stuff */
- "0", "1", "10",
- "100", "1000", "10000", "100000",
"1000000",
- "10000000", "100000000", "1000000000",
-
- /* negative */
- "-0", "-1", "-10",
- "-100", "-1000", "-10000", "-100000",
"-1000000",
- "-10000000", "-100000000", "-1000000000",
-
- /* test base>10 */
- "a", "b", "f", "g", "z",
-
- /* test hex */
- "0x0", "0x1", "0xa", "0xf", "0x10",
-
- /* test octal */
- "00", "01", "07", "08", "0a",
"010",
-
- /* other */
- "0x8000000",
-
- /* check overflow cases: (for 32 bit) */
- "2147483645",
- "2147483646",
- "2147483647",
- "2147483648",
- "2147483649",
- "-2147483645",
- "-2147483646",
- "-2147483647",
- "-2147483648",
- "-2147483649",
- "4294967293",
- "4294967294",
- "4294967295",
- "4294967296",
- "4294967297",
- "-4294967293",
- "-4294967294",
- "-4294967295",
- "-4294967296",
- "-4294967297",
-
- /* bad input tests */
- "",
- "00",
- "0x",
- "0x0",
- "-",
- "+",
- " ",
- " -",
- " - 0",
-};
-int n_tests=sizeof(strings)/sizeof(strings[0]);
-
-
-
-void do_test(int base);
-void do_test(int base)
-{
- int i;
- quad_t n;
- char *endptr;
-
- for(i=0;i<n_tests;i++){
- n=strtoq(strings[i],&endptr,base);
- printf("strtoq(\"%s\",%d) len=%lu res=%qd\n",
- strings[i],base,(unsigned long)(endptr-strings[i]),n);
- }
-}
-
-int main(int argc,char *argv[])
-{
- do_test(0);
- do_test(8);
- do_test(10);
- do_test(16);
- do_test(36);
-
- return 0;
-}
diff --git a/test/string/Makefile b/test/string/Makefile
deleted file mode 100644
index 8948a50..0000000
--- a/test/string/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc string tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/string/Makefile.in b/test/string/Makefile.in
deleted file mode 100644
index 39fb912..0000000
--- a/test/string/Makefile.in
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc string tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-EXTRA_CFLAGS := -fno-builtin
-
-ifeq ($(TARGET_ARCH),h8300)
-TESTS_DISABLED += stratcliff
-endif
diff --git a/test/string/bug-strcoll1.c b/test/string/bug-strcoll1.c
deleted file mode 100644
index b6510d9..0000000
--- a/test/string/bug-strcoll1.c
+++ /dev/null
@@ -1,24 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include <locale.h>
-
-int
-main (void)
-{
- const char t1[] = "0-0-0-0-0-0-0-0-0-0.COM";
- const char t2[] = "00000-00000.COM";
- int res1;
- int res2;
-
- setlocale (LC_ALL, "en_US.ISO-8859-1");
-
- res1 = strcoll (t1, t2);
- printf ("strcoll (\"%s\", \"%s\") = %d\n", t1, t2,
res1);
- res2 = strcoll (t2, t1);
- printf ("strcoll (\"%s\", \"%s\") = %d\n", t2, t1,
res2);
-
- return ((res1 == 0 && res2 != 0)
- || (res1 != 0 && res2 == 0)
- || (res1 < 0 && res2 < 0)
- || (res1 > 0 && res2 > 0));
-}
diff --git a/test/string/bug-strncat1.c b/test/string/bug-strncat1.c
deleted file mode 100644
index f1b5c37..0000000
--- a/test/string/bug-strncat1.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Test case by Joseph S. Myers <jsm28(a)cam.ac.uk>uk>. */
-#undef __USE_STRING_INLINES
-#define __USE_STRING_INLINES
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-char d[3] = "\0\1\2";
-
-int
-main (void)
-{
- strncat (d, "\5\6", 1);
- if (d[0] != '\5')
- {
- puts ("d[0] != '\\5'");
- exit (1);
- }
- if (d[1] != '\0')
- {
- puts ("d[1] != '\\0'");
- exit (1);
- }
- if (d[2] != '\2')
- {
- puts ("d[2] != '\\2'");
- exit (1);
- }
-
- return 0;
-}
diff --git a/test/string/bug-strpbrk1.c b/test/string/bug-strpbrk1.c
deleted file mode 100644
index 28238b0..0000000
--- a/test/string/bug-strpbrk1.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Test case by Joseph S. Myers <jsm28(a)cam.ac.uk>uk>. */
-#undef __USE_STRING_INLINES
-#define __USE_STRING_INLINES
-#include <string.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-int
-main (void)
-{
- const char *a = "abc";
- const char *b = a;
-
- strpbrk (b++, "");
- if (b != a + 1)
- return 1;
-
- return 0;
-}
diff --git a/test/string/bug-strspn1.c b/test/string/bug-strspn1.c
deleted file mode 100644
index a657baf..0000000
--- a/test/string/bug-strspn1.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Test case by Joseph S. Myers <jsm28(a)cam.ac.uk>uk>. */
-#undef __USE_STRING_INLINES
-#define __USE_STRING_INLINES
-#include <string.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-int
-main (void)
-{
- const char *a = "abc";
- const char *b = a;
-
- strspn (b++, "");
- if (b != a + 1)
- return 1;
-
- return 0;
-}
diff --git a/test/string/stratcliff.c b/test/string/stratcliff.c
deleted file mode 100644
index b45be4b..0000000
--- a/test/string/stratcliff.c
+++ /dev/null
@@ -1,348 +0,0 @@
-/* Test for string function add boundaries of usable memory.
- Copyright (C) 1996,1997,1999-2002,2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)cygnus.com>om>, 1996.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#define _GNU_SOURCE 1
-
-/* Make sure we don't test the optimized inline functions if we want to
- test the real implementation. */
-#undef __USE_STRING_INLINES
-
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/param.h>
-
-#ifndef MAX
-#define MAX(a, b) ((a) > (b) ? (a) : (b))
-#endif
-
-int
-main (int argc, char *argv[])
-{
- int size = sysconf (_SC_PAGESIZE);
- char *adr, *dest;
- int result = 0;
-
- adr = (char *) mmap (NULL, 3 * size, PROT_READ | PROT_WRITE,
- MAP_PRIVATE | MAP_ANON, -1, 0);
- dest = (char *) mmap (NULL, 3 * size, PROT_READ | PROT_WRITE,
- MAP_PRIVATE | MAP_ANON, -1, 0);
- if (adr == MAP_FAILED || dest == MAP_FAILED)
- {
- if (errno == ENOSYS)
- puts ("No test, mmap not available.");
- else
- {
- printf ("mmap failed: %s", strerror(errno));
- result = 1;
- }
- }
- else
- {
- int inner, middle, outer;
-
- mprotect(adr, size, PROT_NONE);
- mprotect(adr + 2 * size, size, PROT_NONE);
- adr += size;
-
- mprotect(dest, size, PROT_NONE);
- mprotect(dest + 2 * size, size, PROT_NONE);
- dest += size;
-
- memset (adr, 'T', size);
-
- /* strlen test */
- for (outer = size - 1; outer >= MAX (0, size - 128); --outer)
- {
- for (inner = MAX (outer, size - 64); inner < size; ++inner)
- {
- adr[inner] = '\0';
-
- if (strlen (&adr[outer]) != (size_t) (inner - outer))
- {
- printf ("strlen flunked for outer = %d, inner = %d\n",
- outer, inner);
- result = 1;
- }
-
- adr[inner] = 'T';
- }
- }
-
- /* strchr test */
- for (outer = size - 1; outer >= MAX (0, size - 128); --outer)
- {
- for (middle = MAX (outer, size - 64); middle < size; ++middle)
- {
- for (inner = middle; inner < size; ++inner)
- {
- char *cp;
- adr[middle] = 'V';
- adr[inner] = '\0';
-
- cp = strchr (&adr[outer], 'V');
-
- if ((inner == middle && cp != NULL)
- || (inner != middle
- && (cp - &adr[outer]) != middle - outer))
- {
- printf ("strchr flunked for outer = %d, middle = %d, "
- "inner = %d\n", outer, middle, inner);
- result = 1;
- }
-
- adr[inner] = 'T';
- adr[middle] = 'T';
- }
- }
- }
-
- /* Special test. */
- adr[size - 1] = '\0';
- if (strchr (&adr[size - 1], '\n') != NULL)
- {
- puts ("strchr flunked for test of empty string at end of page");
- result = 1;
- }
-
- /* strrchr test */
- for (outer = size - 1; outer >= MAX (0, size - 128); --outer)
- {
- for (middle = MAX (outer, size - 64); middle < size; ++middle)
- {
- for (inner = middle; inner < size; ++inner)
- {
- char *cp;
- adr[middle] = 'V';
- adr[inner] = '\0';
-
- cp = strrchr (&adr[outer], 'V');
-
- if ((inner == middle && cp != NULL)
- || (inner != middle
- && (cp - &adr[outer]) != middle - outer))
- {
- printf ("strrchr flunked for outer = %d, middle = %d, "
- "inner = %d\n", outer, middle, inner);
- result = 1;
- }
-
- adr[inner] = 'T';
- adr[middle] = 'T';
- }
- }
- }
-
- /* rawmemchr test */
- for (outer = size - 1; outer >= MAX (0, size - 128); --outer)
- {
- for (middle = MAX (outer, size - 64); middle < size; ++middle)
- {
- char *cp;
- adr[middle] = 'V';
-
- cp = rawmemchr (&adr[outer], 'V');
-
- if (cp - &adr[outer] != middle - outer)
- {
- printf ("rawmemchr flunked for outer = %d, middle = %d\n",
- outer, middle);
- result = 1;
- }
-
- adr[middle] = 'T';
- }
- }
-
- /* strcpy test */
- for (outer = size - 1; outer >= MAX (0, size - 128); --outer)
- {
- for (inner = MAX (outer, size - 64); inner < size; ++inner)
- {
- adr[inner] = '\0';
-
- if (strcpy (dest, &adr[outer]) != dest
- || strlen (dest) != (size_t) (inner - outer))
- {
- printf ("strcpy flunked for outer = %d, inner = %d\n",
- outer, inner);
- result = 1;
- }
-
- adr[inner] = 'T';
- }
- }
-
- /* strncpy tests */
- adr[size-1] = 'T';
- for (outer = size - 1; outer >= MAX (0, size - 128); --outer)
- {
- size_t len;
-
- for (len = 0; len < size - outer; ++len)
- {
- if (strncpy (dest, &adr[outer], len) != dest
- || memcmp (dest, &adr[outer], len) != 0)
- {
- printf ("outer strncpy flunked for outer = %d, len = %Zd\n",
- outer, len);
- result = 1;
- }
- }
- }
- adr[size-1] = '\0';
-
- for (outer = size - 1; outer >= MAX (0, size - 128); --outer)
- {
- for (inner = MAX (outer, size - 64); inner < size; ++inner)
- {
- size_t len;
-
- adr[inner] = '\0';
-
- for (len = 0; len < size - outer + 64; ++len)
- {
- if (strncpy (dest, &adr[outer], len) != dest
- || memcmp (dest, &adr[outer],
- MIN (inner - outer, len)) != 0
- || (inner - outer < len
- && strlen (dest) != (inner - outer)))
- {
- printf ("strncpy flunked for outer = %d, inner = %d, len = %Zd\n",
- outer, inner, len);
- result = 1;
- }
- if (strncpy (dest + 1, &adr[outer], len) != dest + 1
- || memcmp (dest + 1, &adr[outer],
- MIN (inner - outer, len)) != 0
- || (inner - outer < len
- && strlen (dest + 1) != (inner - outer)))
- {
- printf ("strncpy+1 flunked for outer = %d, inner = %d, len = %Zd\n",
- outer, inner, len);
- result = 1;
- }
- }
-
- adr[inner] = 'T';
- }
- }
-
- /* stpcpy test */
- for (outer = size - 1; outer >= MAX (0, size - 128); --outer)
- {
- for (inner = MAX (outer, size - 64); inner < size; ++inner)
- {
- adr[inner] = '\0';
-
- if ((stpcpy (dest, &adr[outer]) - dest) != inner - outer)
- {
- printf ("stpcpy flunked for outer = %d, inner = %d\n",
- outer, inner);
- result = 1;
- }
-
- adr[inner] = 'T';
- }
- }
-
- /* stpncpy test */
- for (outer = size - 1; outer >= MAX (0, size - 128); --outer)
- {
- for (middle = MAX (outer, size - 64); middle < size; ++middle)
- {
- adr[middle] = '\0';
-
- for (inner = 0; inner < size - outer; ++ inner)
- {
- if ((stpncpy (dest, &adr[outer], inner) - dest)
- != MIN (inner, middle - outer))
- {
- printf ("stpncpy flunked for outer = %d, middle = %d, "
- "inner = %d\n", outer, middle, inner);
- result = 1;
- }
- }
-
- adr[middle] = 'T';
- }
- }
-
- /* memcpy test */
- for (outer = size - 1; outer >= MAX (0, size - 128); --outer)
- for (inner = 0; inner < size - outer; ++inner)
- if (memcpy (dest, &adr[outer], inner) != dest)
- {
- printf ("memcpy flunked for outer = %d, inner = %d\n",
- outer, inner);
- result = 1;
- }
-
- /* mempcpy test */
- for (outer = size - 1; outer >= MAX (0, size - 128); --outer)
- for (inner = 0; inner < size - outer; ++inner)
- if (mempcpy (dest, &adr[outer], inner) != dest + inner)
- {
- printf ("mempcpy flunked for outer = %d, inner = %d\n",
- outer, inner);
- result = 1;
- }
-
- /* memccpy test */
- memset (adr, '\0', size);
- for (outer = size - 1; outer >= MAX (0, size - 128); --outer)
- for (inner = 0; inner < size - outer; ++inner)
- if (memccpy (dest, &adr[outer], '\1', inner) != NULL)
- {
- printf ("memccpy flunked full copy for outer = %d, inner = %d\n",
- outer, inner);
- result = 1;
- }
- for (outer = size - 1; outer >= MAX (0, size - 128); --outer)
- for (middle = 0; middle < size - outer; ++middle)
- {
- memset (dest, '\2', middle + 1);
- for (inner = 0; inner < middle; ++inner)
- {
- adr[outer + inner] = '\1';
-
- if (memccpy (dest, &adr[outer], '\1', middle + 128)
- != dest + inner + 1)
- {
- printf ("\
-memccpy flunked partial copy for outer = %d, middle = %d, inner = %d\n",
- outer, middle, inner);
- result = 1;
- }
- else if (dest[inner + 1] != '\2')
- {
- printf ("\
-memccpy copied too much for outer = %d, middle = %d, inner = %d\n",
- outer, middle, inner);
- result = 1;
- }
- adr[outer + inner] = '\0';
- }
- }
- }
-
- return result;
-}
diff --git a/test/string/test-ffs.c b/test/string/test-ffs.c
deleted file mode 100644
index e43f123..0000000
--- a/test/string/test-ffs.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Copyright (C) 1994, 1997, 2000, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Joel Sherrill (jsherril(a)redstone-emh2.army.mil),
- On-Line Applications Research Corporation.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-int
-main (void)
-{
- int failures = 0;
- int i;
-
- auto void try (const char *name, long long int param, int value,
- int expected);
-
- void try (const char *name, long long int param, int value, int expected)
- {
- if (value != expected)
- {
- printf ("%s(%#llx) expected %d got %d\n",
- name, param, expected, value);
- ++failures;
- }
- else
- printf ("%s(%#llx) as expected %d\n", name, param, value);
- }
-
-#define TEST(fct, type) \
- try (#fct, 0, fct ((type) 0), 0); \
- for (i=0 ; i < 8 * sizeof (type); i++) \
- try (#fct, 1ll << i, fct (((type) 1) << i), i + 1); \
- for (i=0 ; i < 8 * sizeof (type) ; i++) \
- try (#fct, (~((type) 0) >> i) << i, fct ((~((type) 0) >> i)
<< i), i + 1);\
- try (#fct, 0x80008000, fct ((type) 0x80008000), 16)
-
- TEST (ffs, int);
-/* Not implemented in uClibc (yet?)
- TEST (ffsl, long int);
- TEST (ffsll, long long int);
-*/
-
- if (failures)
- printf ("Test FAILED! %d failure%s.\n", failures,
&"s"[failures == 1]);
- else
- puts ("Test succeeded.");
-
- return failures;
-}
diff --git a/test/string/testcopy.c b/test/string/testcopy.c
deleted file mode 100644
index 51c47a1..0000000
--- a/test/string/testcopy.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/* Copyright (C) 1990, 1991, 1992, 1997 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Torbjorn Granlund (tege(a)sics.se).
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <malloc.h>
-
-int
-main (void)
-{
- char *mem, *memp;
- char *rand_mem;
- char *lo_around, *hi_around;
- int size, max_size;
- int src_off, dst_off;
- int i;
- int space_around = 10;
-
- max_size = 256;
-
- mem = malloc (max_size + 2 * max_size + 2 * space_around);
- rand_mem = malloc (max_size);
- lo_around = malloc (space_around);
- hi_around = malloc (space_around);
- memp = mem + space_around;
-
- /* Fill RAND_MEM with random bytes, each non-zero. */
- for (i = 0; i < max_size; i++)
- {
- int x;
- do
- x = random ();
- while (x == 0);
- rand_mem[i] = x;
- }
-
- for (size = 0; size < max_size; size++)
- {
- printf("phase %d\n", size);
- for (src_off = 0; src_off <= 16; src_off++)
- {
- for (dst_off = 0; dst_off <= 16; dst_off++)
- {
- /* Put zero around the intended destination, to check
- that it's not clobbered. */
- for (i = 1; i < space_around; i++)
- {
- memp[dst_off - i] = 0;
- memp[dst_off + size - 1 + i] = 0;
- }
-
- /* Fill the source area with known contents. */
- for (i = 0; i < size; i++)
- memp[src_off + i] = rand_mem[i];
-
- /* Remember the contents around the destination area.
- (It might not be what we wrote some lines above, since
- the src area and the dst area overlap.) */
- for (i = 1; i < space_around; i++)
- {
- lo_around[i] = memp[dst_off - i];
- hi_around[i] = memp[dst_off + size - 1 + i];
- }
-
- memmove (memp + dst_off, memp + src_off, size);
-
- /* Check that the destination area has the same
- contents we wrote to the source area. */
- for (i = 0; i < size; i++)
- {
- if (memp[dst_off + i] != rand_mem[i])
- abort ();
- }
-
- /* Check that the area around the destination is not
- clobbered. */
- for (i = 1; i < space_around; i++)
- {
- if (memp[dst_off - i] != lo_around[i])
- abort ();
- if (memp[dst_off + size - 1 + i] != hi_around[i])
- abort ();
- }
- }
- }
- }
-
- puts ("Test succeeded.");
-
- return 0;
-}
diff --git a/test/string/tester.c b/test/string/tester.c
deleted file mode 100644
index 7f3ff28..0000000
--- a/test/string/tester.c
+++ /dev/null
@@ -1,1646 +0,0 @@
-/* Tester for string functions.
- Copyright (C) 1995-2001, 2003, 2005 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _GNU_SOURCE
-#define _GNU_SOURCE
-#endif
-
-/* Make sure we don't test the optimized inline functions if we want to
- test the real implementation. */
-#if !defined DO_STRING_INLINES
-#undef __USE_STRING_INLINES
-#endif
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <strings.h>
-#include <fcntl.h>
-
-#ifdef __UCLIBC__
-# define __TEST_BSD_FUNCS__
-#else
-# undef __TEST_BSD_FUNCS__
-#endif
-
-#if defined(__UCLIBC_SUSV3_LEGACY__) || defined(__UCLIBC_SUSV3_LEGACY_MACROS__)
-# define __TEST_SUSV3_LEGACY__
-#else
-# undef __TEST_SUSV3_LEGACY__
-#endif
-
-#define STREQ(a, b) (strcmp((a), (b)) == 0)
-
-const char *it = "<UNSET>"; /* Routine name for message routines. */
-size_t errors = 0;
-
-/* Complain if condition is not true. */
-static void
-check (int thing, int number)
-{
- if (!thing)
- {
- printf("%s flunked test %d\n", it, number);
- ++errors;
- }
-}
-
-/* Complain if first two args don't strcmp as equal. */
-static void
-equal (const char *a, const char *b, int number)
-{
- check(a != NULL && b != NULL && STREQ (a, b), number);
-}
-
-char one[50];
-char two[50];
-char *cp;
-
-static void
-test_strcmp (void)
-{
- it = "strcmp";
- check (strcmp ("", "") == 0, 1); /* Trivial case. */
- check (strcmp ("a", "a") == 0, 2); /* Identity. */
- check (strcmp ("abc", "abc") == 0, 3); /* Multicharacter. */
- check (strcmp ("abc", "abcd") < 0, 4); /* Length mismatches. */
- check (strcmp ("abcd", "abc") > 0, 5);
- check (strcmp ("abcd", "abce") < 0, 6); /* Honest miscompares.
*/
- check (strcmp ("abce", "abcd") > 0, 7);
- check (strcmp ("a\203", "a") > 0, 8); /* Tricky if char signed.
*/
- check (strcmp ("a\203", "a\003") > 0, 9);
-
- {
- char buf1[0x40], buf2[0x40];
- int i, j;
- for (i=0; i < 0x10; i++)
- for (j = 0; j < 0x10; j++)
- {
- int k;
- for (k = 0; k < 0x3f; k++)
- {
- buf1[k] = '0' ^ (k & 4);
- buf2[k] = '4' ^ (k & 4);
- }
- buf1[i] = buf1[0x3f] = 0;
- buf2[j] = buf2[0x3f] = 0;
- for (k = 0; k < 0xf; k++)
- {
- int cnum = 0x10+0x10*k+0x100*j+0x1000*i;
- check (strcmp (buf1+i,buf2+j) == 0, cnum);
- buf1[i+k] = 'A' + i + k;
- buf1[i+k+1] = 0;
- check (strcmp (buf1+i,buf2+j) > 0, cnum+1);
- check (strcmp (buf2+j,buf1+i) < 0, cnum+2);
- buf2[j+k] = 'B' + i + k;
- buf2[j+k+1] = 0;
- check (strcmp (buf1+i,buf2+j) < 0, cnum+3);
- check (strcmp (buf2+j,buf1+i) > 0, cnum+4);
- buf2[j+k] = 'A' + i + k;
- buf1[i] = 'A' + i + 0x80;
- check (strcmp (buf1+i,buf2+j) > 0, cnum+5);
- check (strcmp (buf2+j,buf1+i) < 0, cnum+6);
- buf1[i] = 'A' + i;
- }
- }
- }
-}
-
-#define SIMPLE_COPY(fn, n, str, ntest) \
- do { \
- int __n; \
- char *cp; \
- for (__n = 0; __n < (int) sizeof (one); ++__n) \
- one[__n] = 'Z'; \
- fn (one, str); \
- for (cp = one, __n = 0; __n < n; ++__n, ++cp) \
- check (*cp == '0' + (n % 10), ntest); \
- check (*cp == '\0', ntest); \
- } while (0)
-
-static void
-test_strcpy (void)
-{
- int i;
- it = "strcpy";
- check (strcpy (one, "abcd") == one, 1); /* Returned value. */
- equal (one, "abcd", 2); /* Basic test. */
-
- (void) strcpy (one, "x");
- equal (one, "x", 3); /* Writeover. */
- equal (one+2, "cd", 4); /* Wrote too much? */
-
- (void) strcpy (two, "hi there");
- (void) strcpy (one, two);
- equal (one, "hi there", 5); /* Basic test encore. */
- equal (two, "hi there", 6); /* Stomped on source? */
-
- (void) strcpy (one, "");
- equal (one, "", 7); /* Boundary condition. */
-
- for (i = 0; i < 16; i++)
- {
- (void) strcpy (one + i, "hi there"); /* Unaligned destination. */
- equal (one + i, "hi there", 8 + (i * 2));
- (void) strcpy (two, one + i); /* Unaligned source. */
- equal (two, "hi there", 9 + (i * 2));
- }
-
- SIMPLE_COPY(strcpy, 0, "", 41);
- SIMPLE_COPY(strcpy, 1, "1", 42);
- SIMPLE_COPY(strcpy, 2, "22", 43);
- SIMPLE_COPY(strcpy, 3, "333", 44);
- SIMPLE_COPY(strcpy, 4, "4444", 45);
- SIMPLE_COPY(strcpy, 5, "55555", 46);
- SIMPLE_COPY(strcpy, 6, "666666", 47);
- SIMPLE_COPY(strcpy, 7, "7777777", 48);
- SIMPLE_COPY(strcpy, 8, "88888888", 49);
- SIMPLE_COPY(strcpy, 9, "999999999", 50);
- SIMPLE_COPY(strcpy, 10, "0000000000", 51);
- SIMPLE_COPY(strcpy, 11, "11111111111", 52);
- SIMPLE_COPY(strcpy, 12, "222222222222", 53);
- SIMPLE_COPY(strcpy, 13, "3333333333333", 54);
- SIMPLE_COPY(strcpy, 14, "44444444444444", 55);
- SIMPLE_COPY(strcpy, 15, "555555555555555", 56);
- SIMPLE_COPY(strcpy, 16, "6666666666666666", 57);
-
- /* Simple test using implicitly coerced `void *' arguments. */
- const void *src = "frobozz";
- void *dst = one;
- check (strcpy (dst, src) == dst, 1);
- equal (dst, "frobozz", 2);
-}
-
-static void
-test_stpcpy (void)
-{
- it = "stpcpy";
- check ((stpcpy (one, "a") - one) == 1, 1);
- equal (one, "a", 2);
-
- check ((stpcpy (one, "ab") - one) == 2, 3);
- equal (one, "ab", 4);
-
- check ((stpcpy (one, "abc") - one) == 3, 5);
- equal (one, "abc", 6);
-
- check ((stpcpy (one, "abcd") - one) == 4, 7);
- equal (one, "abcd", 8);
-
- check ((stpcpy (one, "abcde") - one) == 5, 9);
- equal (one, "abcde", 10);
-
- check ((stpcpy (one, "abcdef") - one) == 6, 11);
- equal (one, "abcdef", 12);
-
- check ((stpcpy (one, "abcdefg") - one) == 7, 13);
- equal (one, "abcdefg", 14);
-
- check ((stpcpy (one, "abcdefgh") - one) == 8, 15);
- equal (one, "abcdefgh", 16);
-
- check ((stpcpy (one, "abcdefghi") - one) == 9, 17);
- equal (one, "abcdefghi", 18);
-
- check ((stpcpy (one, "x") - one) == 1, 19);
- equal (one, "x", 20); /* Writeover. */
- equal (one+2, "cdefghi", 21); /* Wrote too much? */
-
- check ((stpcpy (one, "xx") - one) == 2, 22);
- equal (one, "xx", 23); /* Writeover. */
- equal (one+3, "defghi", 24); /* Wrote too much? */
-
- check ((stpcpy (one, "xxx") - one) == 3, 25);
- equal (one, "xxx", 26); /* Writeover. */
- equal (one+4, "efghi", 27); /* Wrote too much? */
-
- check ((stpcpy (one, "xxxx") - one) == 4, 28);
- equal (one, "xxxx", 29); /* Writeover. */
- equal (one+5, "fghi", 30); /* Wrote too much? */
-
- check ((stpcpy (one, "xxxxx") - one) == 5, 31);
- equal (one, "xxxxx", 32); /* Writeover. */
- equal (one+6, "ghi", 33); /* Wrote too much? */
-
- check ((stpcpy (one, "xxxxxx") - one) == 6, 34);
- equal (one, "xxxxxx", 35); /* Writeover. */
- equal (one+7, "hi", 36); /* Wrote too much? */
-
- check ((stpcpy (one, "xxxxxxx") - one) == 7, 37);
- equal (one, "xxxxxxx", 38); /* Writeover. */
- equal (one+8, "i", 39); /* Wrote too much? */
-
- check ((stpcpy (stpcpy (stpcpy (one, "a"), "b"), "c") -
one) == 3, 40);
- equal (one, "abc", 41);
- equal (one + 4, "xxx", 42);
-
- SIMPLE_COPY(stpcpy, 0, "", 43);
- SIMPLE_COPY(stpcpy, 1, "1", 44);
- SIMPLE_COPY(stpcpy, 2, "22", 45);
- SIMPLE_COPY(stpcpy, 3, "333", 46);
- SIMPLE_COPY(stpcpy, 4, "4444", 47);
- SIMPLE_COPY(stpcpy, 5, "55555", 48);
- SIMPLE_COPY(stpcpy, 6, "666666", 49);
- SIMPLE_COPY(stpcpy, 7, "7777777", 50);
- SIMPLE_COPY(stpcpy, 8, "88888888", 51);
- SIMPLE_COPY(stpcpy, 9, "999999999", 52);
- SIMPLE_COPY(stpcpy, 10, "0000000000", 53);
- SIMPLE_COPY(stpcpy, 11, "11111111111", 54);
- SIMPLE_COPY(stpcpy, 12, "222222222222", 55);
- SIMPLE_COPY(stpcpy, 13, "3333333333333", 56);
- SIMPLE_COPY(stpcpy, 14, "44444444444444", 57);
- SIMPLE_COPY(stpcpy, 15, "555555555555555", 58);
- SIMPLE_COPY(stpcpy, 16, "6666666666666666", 59);
-}
-
-static void
-test_stpncpy (void)
-{
- it = "stpncpy";
- memset (one, 'x', sizeof (one));
- check (stpncpy (one, "abc", 2) == one + 2, 1);
- check (stpncpy (one, "abc", 3) == one + 3, 2);
- check (stpncpy (one, "abc", 4) == one + 3, 3);
- check (one[3] == '\0' && one[4] == 'x', 4);
- check (stpncpy (one, "abcd", 5) == one + 4, 5);
- check (one[4] == '\0' && one[5] == 'x', 6);
- check (stpncpy (one, "abcd", 6) == one + 4, 7);
- check (one[4] == '\0' && one[5] == '\0' && one[6] ==
'x', 8);
-}
-
-static void
-test_strcat (void)
-{
- it = "strcat";
- (void) strcpy (one, "ijk");
- check (strcat (one, "lmn") == one, 1); /* Returned value. */
- equal (one, "ijklmn", 2); /* Basic test. */
-
- (void) strcpy (one, "x");
- (void) strcat (one, "yz");
- equal (one, "xyz", 3); /* Writeover. */
- equal (one+4, "mn", 4); /* Wrote too much? */
-
- (void) strcpy (one, "gh");
- (void) strcpy (two, "ef");
- (void) strcat (one, two);
- equal (one, "ghef", 5); /* Basic test encore. */
- equal (two, "ef", 6); /* Stomped on source? */
-
- (void) strcpy (one, "");
- (void) strcat (one, "");
- equal (one, "", 7); /* Boundary conditions. */
- (void) strcpy (one, "ab");
- (void) strcat (one, "");
- equal (one, "ab", 8);
- (void) strcpy (one, "");
- (void) strcat (one, "cd");
- equal (one, "cd", 9);
-}
-
-static void
-test_strncat (void)
-{
- /* First test it as strcat, with big counts, then test the count
- mechanism. */
- it = "strncat";
- (void) strcpy (one, "ijk");
- check (strncat (one, "lmn", 99) == one, 1); /* Returned value. */
- equal (one, "ijklmn", 2); /* Basic test. */
-
- (void) strcpy (one, "x");
- (void) strncat (one, "yz", 99);
- equal (one, "xyz", 3); /* Writeover. */
- equal (one+4, "mn", 4); /* Wrote too much? */
-
- (void) strcpy (one, "gh");
- (void) strcpy (two, "ef");
- (void) strncat (one, two, 99);
- equal (one, "ghef", 5); /* Basic test encore. */
- equal (two, "ef", 6); /* Stomped on source? */
-
- (void) strcpy (one, "");
- (void) strncat (one, "", 99);
- equal (one, "", 7); /* Boundary conditions. */
- (void) strcpy (one, "ab");
- (void) strncat (one, "", 99);
- equal (one, "ab", 8);
- (void) strcpy (one, "");
- (void) strncat (one, "cd", 99);
- equal (one, "cd", 9);
-
- (void) strcpy (one, "ab");
- (void) strncat (one, "cdef", 2);
- equal (one, "abcd", 10); /* Count-limited. */
-
- (void) strncat (one, "gh", 0);
- equal (one, "abcd", 11); /* Zero count. */
-
- (void) strncat (one, "gh", 2);
- equal (one, "abcdgh", 12); /* Count and length equal. */
-
- (void) strncat (one, "ij", (size_t)-1); /* set sign bit in count */
- equal (one, "abcdghij", 13);
-}
-
-static void
-test_strlcat (void)
-{
-#ifdef __TEST_BSD_FUNCS__
- /* First test it as strcat, with big counts, then test the count
- mechanism. */
- it = "strlcat";
- (void) strcpy (one, "ijk");
- check (strlcat (one, "lmn", 99) == 6, 1); /* Returned value. */
- equal (one, "ijklmn", 2); /* Basic test. */
-
- (void) strcpy (one, "x");
- (void) strlcat (one, "yz", 99);
- equal (one, "xyz", 3); /* Writeover. */
- equal (one+4, "mn", 4); /* Wrote too much? */
-
- (void) strcpy (one, "gh");
- (void) strcpy (two, "ef");
- (void) strlcat (one, two, 99);
- equal (one, "ghef", 5); /* Basic test encore. */
- equal (two, "ef", 6); /* Stomped on source? */
-
- (void) strcpy (one, "");
- (void) strlcat (one, "", 99);
- equal (one, "", 7); /* Boundary conditions. */
- (void) strcpy (one, "ab");
- (void) strlcat (one, "", 99);
- equal (one, "ab", 8);
- (void) strcpy (one, "");
- (void) strlcat (one, "cd", 99);
- equal (one, "cd", 9);
-
- (void) strcpy (one, "ab");
- (void) strlcat (one, "cdef", 2);
- equal (one, "ab", 10); /* Count-limited. */
-
- (void) strlcat (one, "gh", 0);
- equal (one, "ab", 11); /* Zero count. */
-
- (void) strlcat (one, "gh", 4);
- equal (one, "abg", 12); /* Count and length equal. */
-
- (void) strlcat (one, "ij", (size_t)-1); /* set sign bit in count */
- equal (one, "abgij", 13);
-#endif
-}
-
-static void
-test_strncmp (void)
-{
- /* First test as strcmp with big counts, then test count code. */
- it = "strncmp";
- check (strncmp ("", "", 99) == 0, 1); /* Trivial case. */
- check (strncmp ("a", "a", 99) == 0, 2); /* Identity. */
- check (strncmp ("abc", "abc", 99) == 0, 3); /* Multicharacter. */
- check (strncmp ("abc", "abcd", 99) < 0, 4); /* Length unequal.
*/
- check (strncmp ("abcd", "abc", 99) > 0, 5);
- check (strncmp ("abcd", "abce", 99) < 0, 6); /* Honestly
unequal. */
- check (strncmp ("abce", "abcd", 99) > 0, 7);
- check (strncmp ("a\203", "a", 2) > 0, 8); /* Tricky if
'\203' < 0 */
- check (strncmp ("a\203", "a\003", 2) > 0, 9);
- check (strncmp ("abce", "abcd", 3) == 0, 10); /* Count limited. */
- check (strncmp ("abce", "abc", 3) == 0, 11); /* Count == length.
*/
- check (strncmp ("abcd", "abce", 4) < 0, 12); /* Nudging limit.
*/
- check (strncmp ("abc", "def", 0) == 0, 13); /* Zero count. */
- check (strncmp ("abc", "", (size_t)-1) > 0, 14); /* set sign bit
in count */
- check (strncmp ("abc", "abc", (size_t)-2) == 0, 15);
- check (strncmp ("aa", "ab", (size_t)-1) < 0, 16);
-}
-
-static void
-test_strncpy (void)
-{
- /* Testing is a bit different because of odd semantics. */
- it = "strncpy";
- check (strncpy (one, "abc", 4) == one, 1); /* Returned value. */
- equal (one, "abc", 2); /* Did the copy go right? */
-
- (void) strcpy (one, "abcdefgh");
- (void) strncpy (one, "xyz", 2);
- equal (one, "xycdefgh", 3); /* Copy cut by count. */
-
- (void) strcpy (one, "abcdefgh");
- (void) strncpy (one, "xyz", 3); /* Copy cut just before NUL. */
- equal (one, "xyzdefgh", 4);
-
- (void) strcpy (one, "abcdefgh");
- (void) strncpy (one, "xyz", 4); /* Copy just includes NUL. */
- equal (one, "xyz", 5);
- equal (one+4, "efgh", 6); /* Wrote too much? */
-
- (void) strcpy (one, "abcdefgh");
- (void) strncpy (one, "xyz", 5); /* Copy includes padding. */
- equal (one, "xyz", 7);
- equal (one+4, "", 8);
- equal (one+5, "fgh", 9);
-
- (void) strcpy (one, "abc");
- (void) strncpy (one, "xyz", 0); /* Zero-length copy. */
- equal (one, "abc", 10);
-
- (void) strncpy (one, "", 2); /* Zero-length source. */
- equal (one, "", 11);
- equal (one+1, "", 12);
- equal (one+2, "c", 13);
-
- (void) strcpy (one, "hi there");
- (void) strncpy (two, one, 9);
- equal (two, "hi there", 14); /* Just paranoia. */
- equal (one, "hi there", 15); /* Stomped on source? */
-}
-
-static void
-test_strlcpy (void)
-{
-#ifdef __TEST_BSD_FUNCS__
- /* Testing is a bit different because of odd semantics. */
- it = "strlcpy";
- check (strlcpy (one, "abc", sizeof(one)) == 3, 1); /* Returned value. */
- equal (one, "abc", 2); /* Did the copy go right? */
-
- (void) strcpy (one, "abcdefgh");
- (void) strlcpy (one, "xyz", 2);
- equal (one, "x\0cdefgh", 3); /* Copy cut by count. */
-
- (void) strcpy (one, "abcdefgh");
- (void) strlcpy (one, "xyz", 3); /* Copy cut just before NUL. */
- equal (one, "xy\0defgh", 4);
-
- (void) strcpy (one, "abcdefgh");
- (void) strlcpy (one, "xyz", 4); /* Copy just includes NUL. */
- equal (one, "xyz", 5);
- equal (one+4, "efgh", 6); /* Wrote too much? */
-
- (void) strcpy (one, "abcdefgh");
- (void) strlcpy (one, "xyz", 5); /* Copy includes padding. */
- equal (one, "xyz", 7);
- equal (one+3, "", 8);
- equal (one+4, "efgh", 9);
-
- (void) strcpy (one, "abc");
- (void) strlcpy (one, "xyz", 0); /* Zero-length copy. */
- equal (one, "abc", 10);
-
- (void) strlcpy (one, "", 2); /* Zero-length source. */
- equal (one, "", 11);
- equal (one+1, "bc", 12);
- equal (one+2, "c", 13);
-
- (void) strcpy (one, "hi there");
- (void) strlcpy (two, one, 9);
- equal (two, "hi there", 14); /* Just paranoia. */
- equal (one, "hi there", 15); /* Stomped on source? */
-#endif
-}
-
-static void
-test_strlen (void)
-{
- it = "strlen";
- check (strlen ("") == 0, 1); /* Empty. */
- check (strlen ("a") == 1, 2); /* Single char. */
- check (strlen ("abcd") == 4, 3); /* Multiple chars. */
- {
- char buf[4096];
- int i;
- char *p;
- for (i=0; i < 0x100; i++)
- {
- p = (char *) ((unsigned long int)(buf + 0xff) & ~0xff) + i;
- strcpy (p, "OK");
- strcpy (p+3, "BAD/WRONG");
- check (strlen (p) == 2, 4+i);
- }
- }
-}
-
-static void
-test_strnlen (void)
-{
- it = "strnlen";
- check (strnlen ("", 10) == 0, 1); /* Empty. */
- check (strnlen ("a", 10) == 1, 2); /* Single char. */
- check (strnlen ("abcd", 10) == 4, 3); /* Multiple chars. */
- check (strnlen ("foo", (size_t)-1) == 3, 4); /* limits of n. */
-
- {
- char buf[4096];
- int i;
- char *p;
- for (i=0; i < 0x100; i++)
- {
- p = (char *) ((unsigned long int)(buf + 0xff) & ~0xff) + i;
- strcpy (p, "OK");
- strcpy (p+3, "BAD/WRONG");
- check (strnlen (p, 100) == 2, 5+i);
- }
- }
-}
-
-static void
-test_strchr (void)
-{
- it = "strchr";
- check (strchr ("abcd", 'z') == NULL, 1); /* Not found. */
- (void) strcpy (one, "abcd");
- check (strchr (one, 'c') == one+2, 2); /* Basic test. */
- check (strchr (one, 'd') == one+3, 3); /* End of string. */
- check (strchr (one, 'a') == one, 4); /* Beginning. */
- check (strchr (one, '\0') == one+4, 5); /* Finding NUL. */
- (void) strcpy (one, "ababa");
- check (strchr (one, 'b') == one+1, 6); /* Finding first. */
- (void) strcpy (one, "");
- check (strchr (one, 'b') == NULL, 7); /* Empty string. */
- check (strchr (one, '\0') == one, 8); /* NUL in empty string. */
- {
- char buf[4096];
- int i;
- char *p;
- for (i=0; i < 0x100; i++)
- {
- p = (char *) ((unsigned long int) (buf + 0xff) & ~0xff) + i;
- strcpy (p, "OK");
- strcpy (p+3, "BAD/WRONG");
- check (strchr (p, '/') == NULL, 9+i);
- }
- }
-}
-
-static void
-test_strchrnul (void)
-{
- const char *os;
- it = "strchrnul";
- cp = strchrnul ((os = "abcd"), 'z');
- check (*cp == '\0', 1); /* Not found. */
- check (cp == os + 4, 2);
- (void) strcpy (one, "abcd");
- check (strchrnul (one, 'c') == one+2, 3); /* Basic test. */
- check (strchrnul (one, 'd') == one+3, 4); /* End of string. */
- check (strchrnul (one, 'a') == one, 5); /* Beginning. */
- check (strchrnul (one, '\0') == one+4, 6); /* Finding NUL. */
- (void) strcpy (one, "ababa");
- check (strchrnul (one, 'b') == one+1, 7); /* Finding first. */
- (void) strcpy (one, "");
- check (strchrnul (one, 'b') == one, 8); /* Empty string. */
- check (strchrnul (one, '\0') == one, 9); /* NUL in empty string. */
- {
- char buf[4096];
- int i;
- char *p;
- for (i=0; i < 0x100; i++)
- {
- p = (char *) ((unsigned long int) (buf + 0xff) & ~0xff) + i;
- strcpy (p, "OK");
- strcpy (p+3, "BAD/WRONG");
- cp = strchrnul (p, '/');
- check (*cp == '\0', 9+2*i);
- check (cp == p+2, 10+2*i);
- }
- }
-}
-
-static void
-test_rawmemchr (void)
-{
- it = "rawmemchr";
- (void) strcpy (one, "abcd");
- check (rawmemchr (one, 'c') == one+2, 1); /* Basic test. */
- check (rawmemchr (one, 'd') == one+3, 2); /* End of string. */
- check (rawmemchr (one, 'a') == one, 3); /* Beginning. */
- check (rawmemchr (one, '\0') == one+4, 4); /* Finding NUL. */
- (void) strcpy (one, "ababa");
- check (rawmemchr (one, 'b') == one+1, 5); /* Finding first. */
- (void) strcpy (one, "");
- check (rawmemchr (one, '\0') == one, 6); /* NUL in empty string. */
- {
- char buf[4096];
- int i;
- char *p;
- for (i=0; i < 0x100; i++)
- {
- p = (char *) ((unsigned long int) (buf + 0xff) & ~0xff) + i;
- strcpy (p, "OK");
- strcpy (p+3, "BAD/WRONG");
- check (rawmemchr (p, 'R') == p+8, 6+i);
- }
- }
-}
-
-static void
-test_index (void)
-{
-#ifdef __TEST_SUSV3_LEGACY__
- it = "index";
- check (index ("abcd", 'z') == NULL, 1); /* Not found. */
- (void) strcpy (one, "abcd");
- check (index (one, 'c') == one+2, 2); /* Basic test. */
- check (index (one, 'd') == one+3, 3); /* End of string. */
- check (index (one, 'a') == one, 4); /* Beginning. */
- check (index (one, '\0') == one+4, 5); /* Finding NUL. */
- (void) strcpy (one, "ababa");
- check (index (one, 'b') == one+1, 6); /* Finding first. */
- (void) strcpy (one, "");
- check (index (one, 'b') == NULL, 7); /* Empty string. */
- check (index (one, '\0') == one, 8); /* NUL in empty string. */
-#endif
-}
-
-static void
-test_strrchr (void)
-{
- it = "strrchr";
- check (strrchr ("abcd", 'z') == NULL, 1); /* Not found. */
- (void) strcpy (one, "abcd");
- check (strrchr (one, 'c') == one+2, 2); /* Basic test. */
- check (strrchr (one, 'd') == one+3, 3); /* End of string. */
- check (strrchr (one, 'a') == one, 4); /* Beginning. */
- check (strrchr (one, '\0') == one+4, 5); /* Finding NUL. */
- (void) strcpy (one, "ababa");
- check (strrchr (one, 'b') == one+3, 6); /* Finding last. */
- (void) strcpy (one, "");
- check (strrchr (one, 'b') == NULL, 7); /* Empty string. */
- check (strrchr (one, '\0') == one, 8); /* NUL in empty string. */
- {
- char buf[4096];
- int i;
- char *p;
- for (i=0; i < 0x100; i++)
- {
- p = (char *) ((unsigned long int) (buf + 0xff) & ~0xff) + i;
- strcpy (p, "OK");
- strcpy (p+3, "BAD/WRONG");
- check (strrchr (p, '/') == NULL, 9+i);
- }
- }
-}
-
-static void
-test_memrchr (void)
-{
- size_t l;
- it = "memrchr";
- check (memrchr ("abcd", 'z', 5) == NULL, 1); /* Not found. */
- (void) strcpy (one, "abcd");
- l = strlen (one) + 1;
- check (memrchr (one, 'c', l) == one+2, 2); /* Basic test. */
- check (memrchr (one, 'd', l) == one+3, 3); /* End of string. */
- check (memrchr (one, 'a', l) == one, 4); /* Beginning. */
- check (memrchr (one, '\0', l) == one+4, 5); /* Finding NUL. */
- (void) strcpy (one, "ababa");
- l = strlen (one) + 1;
- check (memrchr (one, 'b', l) == one+3, 6); /* Finding last. */
- (void) strcpy (one, "");
- l = strlen (one) + 1;
- check (memrchr (one, 'b', l) == NULL, 7); /* Empty string. */
- check (memrchr (one, '\0', l) == one, 8); /* NUL in empty string. */
-
- /* now test all possible alignment and length combinations to catch
- bugs due to unrolled loops (assuming unrolling is limited to no
- more than 128 byte chunks: */
- {
- char buf[128 + sizeof(long)];
- long align, len, i, pos;
-
- for (align = 0; align < (long) sizeof(long); ++align) {
- for (len = 0; len < (long) (sizeof(buf) - align); ++len) {
- for (i = 0; i < len; ++i)
- buf[align + i] = 'x'; /* don't depend on memset... */
-
- for (pos = len - 1; pos >= 0; --pos) {
-#if 0
- printf("align %d, len %d, pos %d\n", align, len, pos);
-#endif
- check(memrchr(buf + align, 'x', len) == buf + align + pos, 9);
- check(memrchr(buf + align + pos + 1, 'x', len - (pos + 1)) == NULL,
- 10);
- buf[align + pos] = '-';
- }
- }
- }
- }
-}
-
-static void
-test_rindex (void)
-{
-#ifdef __TEST_SUSV3_LEGACY__
- it = "rindex";
- check (rindex ("abcd", 'z') == NULL, 1); /* Not found. */
- (void) strcpy (one, "abcd");
- check (rindex (one, 'c') == one+2, 2); /* Basic test. */
- check (rindex (one, 'd') == one+3, 3); /* End of string. */
- check (rindex (one, 'a') == one, 4); /* Beginning. */
- check (rindex (one, '\0') == one+4, 5); /* Finding NUL. */
- (void) strcpy (one, "ababa");
- check (rindex (one, 'b') == one+3, 6); /* Finding last. */
- (void) strcpy (one, "");
- check (rindex (one, 'b') == NULL, 7); /* Empty string. */
- check (rindex (one, '\0') == one, 8); /* NUL in empty string. */
-#endif
-}
-
-static void
-test_strpbrk (void)
-{
- it = "strpbrk";
- check(strpbrk("abcd", "z") == NULL, 1); /* Not found. */
- (void) strcpy(one, "abcd");
- check(strpbrk(one, "c") == one+2, 2); /* Basic test. */
- check(strpbrk(one, "d") == one+3, 3); /* End of string. */
- check(strpbrk(one, "a") == one, 4); /* Beginning. */
- check(strpbrk(one, "") == NULL, 5); /* Empty search list. */
- check(strpbrk(one, "cb") == one+1, 6); /* Multiple search. */
- (void) strcpy(one, "abcabdea");
- check(strpbrk(one, "b") == one+1, 7); /* Finding first. */
- check(strpbrk(one, "cb") == one+1, 8); /* With multiple search. */
- check(strpbrk(one, "db") == one+1, 9); /* Another variant. */
- (void) strcpy(one, "");
- check(strpbrk(one, "bc") == NULL, 10); /* Empty string. */
- (void) strcpy(one, "");
- check(strpbrk(one, "bcd") == NULL, 11); /* Empty string. */
- (void) strcpy(one, "");
- check(strpbrk(one, "bcde") == NULL, 12); /* Empty string. */
- check(strpbrk(one, "") == NULL, 13); /* Both strings empty. */
- (void) strcpy(one, "abcabdea");
- check(strpbrk(one, "befg") == one+1, 14); /* Finding first. */
- check(strpbrk(one, "cbr") == one+1, 15); /* With multiple search. */
- check(strpbrk(one, "db") == one+1, 16); /* Another variant. */
- check(strpbrk(one, "efgh") == one+6, 17); /* And yet another. */
-}
-
-static void
-test_strstr (void)
-{
- it = "strstr";
- check(strstr("abcd", "z") == NULL, 1); /* Not found. */
- check(strstr("abcd", "abx") == NULL, 2); /* Dead end. */
- (void) strcpy(one, "abcd");
- check(strstr(one, "c") == one+2, 3); /* Basic test. */
- check(strstr(one, "bc") == one+1, 4); /* Multichar. */
- check(strstr(one, "d") == one+3, 5); /* End of string. */
- check(strstr(one, "cd") == one+2, 6); /* Tail of string. */
- check(strstr(one, "abc") == one, 7); /* Beginning. */
- check(strstr(one, "abcd") == one, 8); /* Exact match. */
- check(strstr(one, "abcde") == NULL, 9); /* Too long. */
- check(strstr(one, "de") == NULL, 10); /* Past end. */
- check(strstr(one, "") == one, 11); /* Finding empty. */
- (void) strcpy(one, "ababa");
- check(strstr(one, "ba") == one+1, 12); /* Finding first. */
- (void) strcpy(one, "");
- check(strstr(one, "b") == NULL, 13); /* Empty string. */
- check(strstr(one, "") == one, 14); /* Empty in empty string. */
- (void) strcpy(one, "bcbca");
- check(strstr(one, "bca") == one+2, 15); /* False start. */
- (void) strcpy(one, "bbbcabbca");
- check(strstr(one, "bbca") == one+1, 16); /* With overlap. */
-}
-
-static void
-test_strspn (void)
-{
- it = "strspn";
- check(strspn("abcba", "abc") == 5, 1); /* Whole string. */
- check(strspn("abcba", "ab") == 2, 2); /* Partial. */
- check(strspn("abc", "qx") == 0, 3); /* None. */
- check(strspn("", "ab") == 0, 4); /* Null string. */
- check(strspn("abc", "") == 0, 5); /* Null search list. */
-}
-
-static void
-test_strcspn (void)
-{
- it = "strcspn";
- check(strcspn("abcba", "qx") == 5, 1); /* Whole string. */
- check(strcspn("abcba", "cx") == 2, 2); /* Partial. */
- check(strcspn("abc", "abc") == 0, 3); /* None. */
- check(strcspn("", "ab") == 0, 4); /* Null string. */
- check(strcspn("abc", "") == 3, 5); /* Null search list. */
-}
-
-static void
-test_strtok (void)
-{
- it = "strtok";
- (void) strcpy(one, "first, second, third");
- equal(strtok(one, ", "), "first", 1); /* Basic test. */
- equal(one, "first", 2);
- equal(strtok((char *)NULL, ", "), "second", 3);
- equal(strtok((char *)NULL, ", "), "third", 4);
- check(strtok((char *)NULL, ", ") == NULL, 5);
- (void) strcpy(one, ", first, ");
- equal(strtok(one, ", "), "first", 6); /* Extra delims, 1 tok. */
- check(strtok((char *)NULL, ", ") == NULL, 7);
- (void) strcpy(one, "1a, 1b; 2a, 2b");
- equal(strtok(one, ", "), "1a", 8); /* Changing delim lists. */
- equal(strtok((char *)NULL, "; "), "1b", 9);
- equal(strtok((char *)NULL, ", "), "2a", 10);
- (void) strcpy(two, "x-y");
- equal(strtok(two, "-"), "x", 11); /* New string before done. */
- equal(strtok((char *)NULL, "-"), "y", 12);
- check(strtok((char *)NULL, "-") == NULL, 13);
- (void) strcpy(one, "a,b, c,, ,d");
- equal(strtok(one, ", "), "a", 14); /* Different separators. */
- equal(strtok((char *)NULL, ", "), "b", 15);
- equal(strtok((char *)NULL, " ,"), "c", 16); /* Permute list too.
*/
- equal(strtok((char *)NULL, " ,"), "d", 17);
- check(strtok((char *)NULL, ", ") == NULL, 18);
- check(strtok((char *)NULL, ", ") == NULL, 19); /* Persistence. */
- (void) strcpy(one, ", ");
- check(strtok(one, ", ") == NULL, 20); /* No tokens. */
- (void) strcpy(one, "");
- check(strtok(one, ", ") == NULL, 21); /* Empty string. */
- (void) strcpy(one, "abc");
- equal(strtok(one, ", "), "abc", 22); /* No delimiters. */
- check(strtok((char *)NULL, ", ") == NULL, 23);
- (void) strcpy(one, "abc");
- equal(strtok(one, ""), "abc", 24); /* Empty delimiter list. */
- check(strtok((char *)NULL, "") == NULL, 25);
- (void) strcpy(one, "abcdefgh");
- (void) strcpy(one, "a,b,c");
- equal(strtok(one, ","), "a", 26); /* Basics again... */
- equal(strtok((char *)NULL, ","), "b", 27);
- equal(strtok((char *)NULL, ","), "c", 28);
- check(strtok((char *)NULL, ",") == NULL, 29);
- equal(one+6, "gh", 30); /* Stomped past end? */
- equal(one, "a", 31); /* Stomped old tokens? */
- equal(one+2, "b", 32);
- equal(one+4, "c", 33);
-}
-
-static void
-test_strtok_r (void)
-{
- it = "strtok_r";
- (void) strcpy(one, "first, second, third");
- cp = NULL; /* Always initialize cp to make sure it doesn't point to some old data.
*/
- equal(strtok_r(one, ", ", &cp), "first", 1); /* Basic test. */
- equal(one, "first", 2);
- equal(strtok_r((char *)NULL, ", ", &cp), "second", 3);
- equal(strtok_r((char *)NULL, ", ", &cp), "third", 4);
- check(strtok_r((char *)NULL, ", ", &cp) == NULL, 5);
- (void) strcpy(one, ", first, ");
- cp = NULL;
- equal(strtok_r(one, ", ", &cp), "first", 6); /* Extra delims, 1
tok. */
- check(strtok_r((char *)NULL, ", ", &cp) == NULL, 7);
- (void) strcpy(one, "1a, 1b; 2a, 2b");
- cp = NULL;
- equal(strtok_r(one, ", ", &cp), "1a", 8); /* Changing delim
lists. */
- equal(strtok_r((char *)NULL, "; ", &cp), "1b", 9);
- equal(strtok_r((char *)NULL, ", ", &cp), "2a", 10);
- (void) strcpy(two, "x-y");
- cp = NULL;
- equal(strtok_r(two, "-", &cp), "x", 11); /* New string before
done. */
- equal(strtok_r((char *)NULL, "-", &cp), "y", 12);
- check(strtok_r((char *)NULL, "-", &cp) == NULL, 13);
- (void) strcpy(one, "a,b, c,, ,d");
- cp = NULL;
- equal(strtok_r(one, ", ", &cp), "a", 14); /* Different
separators. */
- equal(strtok_r((char *)NULL, ", ", &cp), "b", 15);
- equal(strtok_r((char *)NULL, " ,", &cp), "c", 16); /* Permute
list too. */
- equal(strtok_r((char *)NULL, " ,", &cp), "d", 17);
- check(strtok_r((char *)NULL, ", ", &cp) == NULL, 18);
- check(strtok_r((char *)NULL, ", ", &cp) == NULL, 19); /* Persistence. */
- (void) strcpy(one, ", ");
- cp = NULL;
- check(strtok_r(one, ", ", &cp) == NULL, 20); /* No tokens. */
- (void) strcpy(one, "");
- cp = NULL;
- check(strtok_r(one, ", ", &cp) == NULL, 21); /* Empty string. */
- check(strtok_r((char *)NULL, ", ", &cp) == NULL, 22); /* Persistence. */
- (void) strcpy(one, "abc");
- cp = NULL;
- equal(strtok_r(one, ", ", &cp), "abc", 23); /* No delimiters.
*/
- check(strtok_r((char *)NULL, ", ", &cp) == NULL, 24);
- (void) strcpy(one, "abc");
- cp = NULL;
- equal(strtok_r(one, "", &cp), "abc", 25); /* Empty delimiter
list. */
- check(strtok_r((char *)NULL, "", &cp) == NULL, 26);
- (void) strcpy(one, "abcdefgh");
- (void) strcpy(one, "a,b,c");
- cp = NULL;
- equal(strtok_r(one, ",", &cp), "a", 27); /* Basics again... */
- equal(strtok_r((char *)NULL, ",", &cp), "b", 28);
- equal(strtok_r((char *)NULL, ",", &cp), "c", 29);
- check(strtok_r((char *)NULL, ",", &cp) == NULL, 30);
- equal(one+6, "gh", 31); /* Stomped past end? */
- equal(one, "a", 32); /* Stomped old tokens? */
- equal(one+2, "b", 33);
- equal(one+4, "c", 34);
-}
-
-static void
-test_strsep (void)
-{
- char *ptr;
- it = "strsep";
- cp = strcpy(one, "first, second, third");
- equal(strsep(&cp, ", "), "first", 1); /* Basic test. */
- equal(one, "first", 2);
- equal(strsep(&cp, ", "), "", 3);
- equal(strsep(&cp, ", "), "second", 4);
- equal(strsep(&cp, ", "), "", 5);
- equal(strsep(&cp, ", "), "third", 6);
- check(strsep(&cp, ", ") == NULL, 7);
- cp = strcpy(one, ", first, ");
- equal(strsep(&cp, ", "), "", 8);
- equal(strsep(&cp, ", "), "", 9);
- equal(strsep(&cp, ", "), "first", 10); /* Extra delims, 1 tok.
*/
- equal(strsep(&cp, ", "), "", 11);
- equal(strsep(&cp, ", "), "", 12);
- check(strsep(&cp, ", ") == NULL, 13);
- cp = strcpy(one, "1a, 1b; 2a, 2b");
- equal(strsep(&cp, ", "), "1a", 14); /* Changing delim lists.
*/
- equal(strsep(&cp, ", "), "", 15);
- equal(strsep(&cp, "; "), "1b", 16);
- equal(strsep(&cp, ", "), "", 17);
- equal(strsep(&cp, ", "), "2a", 18);
- cp = strcpy(two, "x-y");
- equal(strsep(&cp, "-"), "x", 19); /* New string before done.
*/
- equal(strsep(&cp, "-"), "y", 20);
- check(strsep(&cp, "-") == NULL, 21);
- cp = strcpy(one, "a,b, c,, ,d ");
- equal(strsep(&cp, ", "), "a", 22); /* Different separators. */
- equal(strsep(&cp, ", "), "b", 23);
- equal(strsep(&cp, " ,"), "", 24);
- equal(strsep(&cp, " ,"), "c", 25); /* Permute list too. */
- equal(strsep(&cp, " ,"), "", 26);
- equal(strsep(&cp, " ,"), "", 27);
- equal(strsep(&cp, " ,"), "", 28);
- equal(strsep(&cp, " ,"), "d", 29);
- equal(strsep(&cp, " ,"), "", 30);
- check(strsep(&cp, ", ") == NULL, 31);
- check(strsep(&cp, ", ") == NULL, 32); /* Persistence. */
- cp = strcpy(one, ", ");
- equal(strsep(&cp, ", "), "", 33);
- equal(strsep(&cp, ", "), "", 34);
- equal(strsep(&cp, ", "), "", 35);
- check(strsep(&cp, ", ") == NULL, 36); /* No tokens. */
- cp = strcpy(one, "");
- equal(strsep(&cp, ", "), "", 37);
- check(strsep(&cp, ", ") == NULL, 38); /* Empty string. */
- cp = strcpy(one, "abc");
- equal(strsep(&cp, ", "), "abc", 39); /* No delimiters. */
- check(strsep(&cp, ", ") == NULL, 40);
- cp = strcpy(one, "abc");
- equal(strsep(&cp, ""), "abc", 41); /* Empty delimiter list. */
- check(strsep(&cp, "") == NULL, 42);
- (void) strcpy(one, "abcdefgh");
- cp = strcpy(one, "a,b,c");
- equal(strsep(&cp, ","), "a", 43); /* Basics again... */
- equal(strsep(&cp, ","), "b", 44);
- equal(strsep(&cp, ","), "c", 45);
- check(strsep(&cp, ",") == NULL, 46);
- equal(one+6, "gh", 47); /* Stomped past end? */
- equal(one, "a", 48); /* Stomped old tokens? */
- equal(one+2, "b", 49);
- equal(one+4, "c", 50);
-
- {
- char text[] = "This,is,a,test";
- char *list = strdupa (text);
- equal (strsep (&list, ","), "This", 51);
- equal (strsep (&list, ","), "is", 52);
- equal (strsep (&list, ","), "a", 53);
- equal (strsep (&list, ","), "test", 54);
- check (strsep (&list, ",") == NULL, 55);
- }
-
- cp = strcpy(one, "a,b, c,, ,d,");
- equal(strsep(&cp, ","), "a", 56); /* Different separators. */
- equal(strsep(&cp, ","), "b", 57);
- equal(strsep(&cp, ","), " c", 58); /* Permute list too. */
- equal(strsep(&cp, ","), "", 59);
- equal(strsep(&cp, ","), " ", 60);
- equal(strsep(&cp, ","), "d", 61);
- equal(strsep(&cp, ","), "", 62);
- check(strsep(&cp, ",") == NULL, 63);
- check(strsep(&cp, ",") == NULL, 64); /* Persistence. */
-
- cp = strcpy(one, "a,b, c,, ,d,");
- equal(strsep(&cp, "xy,"), "a", 65); /* Different separators.
*/
- equal(strsep(&cp, "x,y"), "b", 66);
- equal(strsep(&cp, ",xy"), " c", 67); /* Permute list too. */
- equal(strsep(&cp, "xy,"), "", 68);
- equal(strsep(&cp, "x,y"), " ", 69);
- equal(strsep(&cp, ",xy"), "d", 70);
- equal(strsep(&cp, "xy,"), "", 71);
- check(strsep(&cp, "x,y") == NULL, 72);
- check(strsep(&cp, ",xy") == NULL, 73); /* Persistence. */
-
- cp = strcpy(one, "ABC");
- one[4] = ':';
- equal(strsep(&cp, "C"), "AB", 74); /* Access beyond NUL. */
- ptr = strsep(&cp, ":");
- equal(ptr, "", 75);
- check(ptr == one + 3, 76);
- check(cp == NULL, 77);
-
- cp = strcpy(one, "ABC");
- one[4] = ':';
- equal(strsep(&cp, "CD"), "AB", 78); /* Access beyond NUL. */
- ptr = strsep(&cp, ":.");
- equal(ptr, "", 79);
- check(ptr == one + 3, 80);
-
- cp = strcpy(one, "ABC"); /* No token in string. */
- equal(strsep(&cp, ","), "ABC", 81);
- check(cp == NULL, 82);
-
- *one = '\0'; /* Empty string. */
- cp = one;
- ptr = strsep(&cp, ",");
- equal(ptr, "", 83);
- check(ptr == one, 84);
- check(cp == NULL, 85);
-
- *one = '\0'; /* Empty string and no token. */
- cp = one;
- ptr = strsep(&cp, "");
- equal(ptr, "", 86);
- check(ptr == one , 87);
- check(cp == NULL, 88);
-}
-
-static void
-test_memcmp (void)
-{
- int i, cnt = 1;
- char one[21], two[21];
-
- it = "memcmp";
- check(memcmp("a", "a", 1) == 0, cnt++); /* Identity. */
- check(memcmp("abc", "abc", 3) == 0, cnt++); /* Multicharacter. */
- check(memcmp("abcd", "abcf", 4) < 0, cnt++); /* Honestly
unequal. */
- check(memcmp("abcf", "abcd", 4) > 0, cnt++);
- check(memcmp("alph", "cold", 4) < 0, cnt++);
- check(memcmp("a\203", "a\003", 2) > 0, cnt++);
- check(memcmp("a\003", "a\203", 2) < 0, cnt++);
- check(memcmp("a\003bc", "a\203bc", 2) < 0, cnt++);
- check(memcmp("abc\203", "abc\003", 4) > 0, cnt++);
- check(memcmp("abc\003", "abc\203", 4) < 0, cnt++);
- check(memcmp("abcf", "abcd", 3) == 0, cnt++); /* Count limited. */
- check(memcmp("abc", "def", 0) == 0, cnt++); /* Zero count. */
- /* Comparisons with shifting 4-byte boundaries. */
- for (i=0; i<4; i++)
- {
- char *a = one + i, *b = two + i;
- strncpy( a, "--------11112222", 16);
- strncpy( b, "--------33334444", 16);
- check( memcmp(b, a, 16) > 0, cnt++);
- check( memcmp(a, b, 16) < 0, cnt++);
- }
-}
-
-static void
-test_memchr (void)
-{
- it = "memchr";
- check(memchr("abcd", 'z', 4) == NULL, 1); /* Not found. */
- (void) strcpy(one, "abcd");
- check(memchr(one, 'c', 4) == one+2, 2); /* Basic test. */
- check(memchr(one, ~0xff|'c', 4) == one+2, 2); /* ignore highorder bits. */
- check(memchr(one, 'd', 4) == one+3, 3); /* End of string. */
- check(memchr(one, 'a', 4) == one, 4); /* Beginning. */
- check(memchr(one, '\0', 5) == one+4, 5); /* Finding NUL. */
- (void) strcpy(one, "ababa");
- check(memchr(one, 'b', 5) == one+1, 6); /* Finding first. */
- check(memchr(one, 'b', 0) == NULL, 7); /* Zero count. */
- check(memchr(one, 'a', 1) == one, 8); /* Singleton case. */
- (void) strcpy(one, "a\203b");
- check(memchr(one, 0203, 3) == one+1, 9); /* Unsignedness. */
-
- /* now test all possible alignment and length combinations to catch
- bugs due to unrolled loops (assuming unrolling is limited to no
- more than 128 byte chunks: */
- {
- char buf[128 + sizeof(long)];
- long align, len, i, pos;
-
- for (align = 0; align < (long) sizeof(long); ++align) {
- for (len = 0; len < (long) (sizeof(buf) - align); ++len) {
- for (i = 0; i < len; ++i) {
- buf[align + i] = 'x'; /* don't depend on memset... */
- }
- for (pos = 0; pos < len; ++pos) {
-#if 0
- printf("align %d, len %d, pos %d\n", align, len, pos);
-#endif
- check(memchr(buf + align, 'x', len) == buf + align + pos, 10);
- check(memchr(buf + align, 'x', pos) == NULL, 11);
- buf[align + pos] = '-';
- }
- }
- }
- }
-}
-
-static void
-test_memcpy (void)
-{
- int i;
- it = "memcpy";
- check(memcpy(one, "abc", 4) == one, 1); /* Returned value. */
- equal(one, "abc", 2); /* Did the copy go right? */
-
- (void) strcpy(one, "abcdefgh");
- (void) memcpy(one+1, "xyz", 2);
- equal(one, "axydefgh", 3); /* Basic test. */
-
- (void) strcpy(one, "abc");
- (void) memcpy(one, "xyz", 0);
- equal(one, "abc", 4); /* Zero-length copy. */
-
- (void) strcpy(one, "hi there");
- (void) strcpy(two, "foo");
- (void) memcpy(two, one, 9);
- equal(two, "hi there", 5); /* Just paranoia. */
- equal(one, "hi there", 6); /* Stomped on source? */
-
- for (i = 0; i < 16; i++)
- {
- const char *x = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
- strcpy (one, x);
- check (memcpy (one + i, "hi there", 9) == one + i,
- 7 + (i * 6)); /* Unaligned destination. */
- check (memcmp (one, x, i) == 0, 8 + (i * 6)); /* Wrote under? */
- equal (one + i, "hi there", 9 + (i * 6));
- check (one[i + 9] == 'x', 10 + (i * 6)); /* Wrote over? */
- check (memcpy (two, one + i, 9) == two,
- 11 + (i * 6)); /* Unaligned source. */
- equal (two, "hi there", 12 + (i * 6));
- }
-}
-
-static void
-test_mempcpy (void)
-{
- int i;
- it = "mempcpy";
- check(mempcpy(one, "abc", 4) == one + 4, 1); /* Returned value. */
- equal(one, "abc", 2); /* Did the copy go right? */
-
- (void) strcpy(one, "abcdefgh");
- (void) mempcpy(one+1, "xyz", 2);
- equal(one, "axydefgh", 3); /* Basic test. */
-
- (void) strcpy(one, "abc");
- (void) mempcpy(one, "xyz", 0);
- equal(one, "abc", 4); /* Zero-length copy. */
-
- (void) strcpy(one, "hi there");
- (void) strcpy(two, "foo");
- (void) mempcpy(two, one, 9);
- equal(two, "hi there", 5); /* Just paranoia. */
- equal(one, "hi there", 6); /* Stomped on source? */
-
- for (i = 0; i < 16; i++)
- {
- const char *x = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
- strcpy (one, x);
- check (mempcpy (one + i, "hi there", 9) == one + i + 9,
- 7 + (i * 6)); /* Unaligned destination. */
- check (memcmp (one, x, i) == 0, 8 + (i * 6)); /* Wrote under? */
- equal (one + i, "hi there", 9 + (i * 6));
- check (one[i + 9] == 'x', 10 + (i * 6)); /* Wrote over? */
- check (mempcpy (two, one + i, 9) == two + 9,
- 11 + (i * 6)); /* Unaligned source. */
- equal (two, "hi there", 12 + (i * 6));
- }
-}
-
-static void
-test_memmove (void)
-{
- it = "memmove";
- check(memmove(one, "abc", 4) == one, 1); /* Returned value. */
- equal(one, "abc", 2); /* Did the copy go right? */
-
- (void) strcpy(one, "abcdefgh");
- (void) memmove(one+1, "xyz", 2);
- equal(one, "axydefgh", 3); /* Basic test. */
-
- (void) strcpy(one, "abc");
- (void) memmove(one, "xyz", 0);
- equal(one, "abc", 4); /* Zero-length copy. */
-
- (void) strcpy(one, "hi there");
- (void) strcpy(two, "foo");
- (void) memmove(two, one, 9);
- equal(two, "hi there", 5); /* Just paranoia. */
- equal(one, "hi there", 6); /* Stomped on source? */
-
- (void) strcpy(one, "abcdefgh");
- (void) memmove(one+1, one, 9);
- equal(one, "aabcdefgh", 7); /* Overlap, right-to-left. */
-
- (void) strcpy(one, "abcdefgh");
- (void) memmove(one+1, one+2, 7);
- equal(one, "acdefgh", 8); /* Overlap, left-to-right. */
-
- (void) strcpy(one, "abcdefgh");
- (void) memmove(one, one, 9);
- equal(one, "abcdefgh", 9); /* 100% overlap. */
-}
-
-static void
-test_memccpy (void)
-{
- /* First test like memcpy, then the search part The SVID, the only
- place where memccpy is mentioned, says overlap might fail, so we
- don't try it. Besides, it's hard to see the rationale for a
- non-left-to-right memccpy. */
- it = "memccpy";
- check(memccpy(one, "abc", 'q', 4) == NULL, 1); /* Returned value. */
- equal(one, "abc", 2); /* Did the copy go right? */
-
- (void) strcpy(one, "abcdefgh");
- (void) memccpy(one+1, "xyz", 'q', 2);
- equal(one, "axydefgh", 3); /* Basic test. */
-
- (void) strcpy(one, "abc");
- (void) memccpy(one, "xyz", 'q', 0);
- equal(one, "abc", 4); /* Zero-length copy. */
-
- (void) strcpy(one, "hi there");
- (void) strcpy(two, "foo");
- (void) memccpy(two, one, 'q', 9);
- equal(two, "hi there", 5); /* Just paranoia. */
- equal(one, "hi there", 6); /* Stomped on source? */
-
- (void) strcpy(one, "abcdefgh");
- (void) strcpy(two, "horsefeathers");
- check(memccpy(two, one, 'f', 9) == two+6, 7); /* Returned value. */
- equal(one, "abcdefgh", 8); /* Source intact? */
- equal(two, "abcdefeathers", 9); /* Copy correct? */
-
- (void) strcpy(one, "abcd");
- (void) strcpy(two, "bumblebee");
- check(memccpy(two, one, 'a', 4) == two+1, 10); /* First char. */
- equal(two, "aumblebee", 11);
- check(memccpy(two, one, 'd', 4) == two+4, 12); /* Last char. */
- equal(two, "abcdlebee", 13);
- (void) strcpy(one, "xyz");
- check(memccpy(two, one, 'x', 1) == two+1, 14); /* Singleton. */
- equal(two, "xbcdlebee", 15);
-}
-
-static void
-test_memset (void)
-{
- int i;
-
- it = "memset";
- (void) strcpy(one, "abcdefgh");
- check(memset(one+1, 'x', 3) == one+1, 1); /* Return value. */
- equal(one, "axxxefgh", 2); /* Basic test. */
-
- (void) memset(one+2, 'y', 0);
- equal(one, "axxxefgh", 3); /* Zero-length set. */
-
- (void) memset(one+5, 0, 1);
- equal(one, "axxxe", 4); /* Zero fill. */
- equal(one+6, "gh", 5); /* And the leftover. */
-
- (void) memset(one+2, 010045, 1);
- equal(one, "ax\045xe", 6); /* Unsigned char convert. */
-
- /* Non-8bit fill character. */
- memset (one, 0x101, sizeof (one));
- for (i = 0; i < (int) sizeof (one); ++i)
- check (one[i] == '\01', 7);
-
- /* Test for more complex versions of memset, for all alignments and
- lengths up to 256. This test takes a little while, perhaps it should
- be made weaker? */
- {
- char data[512];
- int j;
- int k;
- int c;
-
- for (i = 0; i < 512; i++)
- data[i] = 'x';
- for (c = 0; c <= 'y'; c += 'y') /* check for memset(,0,) and
- memset(,'y',) */
- for (j = 0; j < 256; j++)
- for (i = 0; i < 256; i++)
- {
- memset (data + i, c, j);
- for (k = 0; k < i; k++)
- if (data[k] != 'x')
- goto fail;
- for (k = i; k < i+j; k++)
- {
- if (data[k] != c)
- goto fail;
- data[k] = 'x';
- }
- for (k = i+j; k < 512; k++)
- if (data[k] != 'x')
- goto fail;
- continue;
-
- fail:
- check (0, 8 + i + j * 256 + (c != 0) * 256 * 256);
- }
- }
-}
-
-static void
-test_bcopy (void)
-{
-#ifdef __TEST_SUSV3_LEGACY__
- /* Much like memcpy. Berklix manual is silent about overlap, so
- don't test it. */
- it = "bcopy";
- (void) bcopy("abc", one, 4);
- equal(one, "abc", 1); /* Simple copy. */
-
- (void) strcpy(one, "abcdefgh");
- (void) bcopy("xyz", one+1, 2);
- equal(one, "axydefgh", 2); /* Basic test. */
-
- (void) strcpy(one, "abc");
- (void) bcopy("xyz", one, 0);
- equal(one, "abc", 3); /* Zero-length copy. */
-
- (void) strcpy(one, "hi there");
- (void) strcpy(two, "foo");
- (void) bcopy(one, two, 9);
- equal(two, "hi there", 4); /* Just paranoia. */
- equal(one, "hi there", 5); /* Stomped on source? */
-#endif
-}
-
-static void
-test_bzero (void)
-{
-#ifdef __TEST_SUSV3_LEGACY__
- it = "bzero";
- (void) strcpy(one, "abcdef");
- bzero(one+2, 2);
- equal(one, "ab", 1); /* Basic test. */
- equal(one+3, "", 2);
- equal(one+4, "ef", 3);
-
- (void) strcpy(one, "abcdef");
- bzero(one+2, 0);
- equal(one, "abcdef", 4); /* Zero-length copy. */
-#endif
-}
-
-static void
-test_strndup (void)
-{
- char *p, *q;
- it = "strndup";
- p = strndup("abcdef", 12);
- check(p != NULL, 1);
- if (p != NULL)
- {
- equal(p, "abcdef", 2);
- q = strndup(p + 1, 2);
- check(q != NULL, 3);
- if (q != NULL)
- equal(q, "bc", 4);
- free (q);
- }
- free (p);
- p = strndup("abc def", 3);
- check(p != NULL, 5);
- if (p != NULL)
- equal(p, "abc", 6);
- free (p);
-}
-
-static void
-test_bcmp (void)
-{
-#ifdef __TEST_SUSV3_LEGACY__
- it = "bcmp";
- check(bcmp("a", "a", 1) == 0, 1); /* Identity. */
- check(bcmp("abc", "abc", 3) == 0, 2); /* Multicharacter. */
- check(bcmp("abcd", "abce", 4) != 0, 3); /* Honestly unequal. */
- check(bcmp("abce", "abcd", 4) != 0, 4);
- check(bcmp("alph", "beta", 4) != 0, 5);
- check(bcmp("abce", "abcd", 3) == 0, 6); /* Count limited. */
- check(bcmp("abc", "def", 0) == 0, 8); /* Zero count. */
-#endif
-}
-
-static void
-test_strerror (void)
-{
- it = "strerror";
- check(strerror(EDOM) != 0, 1);
- check(strerror(ERANGE) != 0, 2);
- 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)
-{
- int status;
-
- /* Test strcmp first because we use it to test other things. */
- test_strcmp ();
-
- /* Test strcpy next because we need it to set up other tests. */
- test_strcpy ();
-
- /* A closely related function is stpcpy. */
- test_stpcpy ();
-
- /* stpncpy. */
- test_stpncpy ();
-
- /* strcat. */
- test_strcat ();
-
- /* strncat. */
- test_strncat ();
-
- /* strlcat. */
- test_strlcat ();
-
- /* strncmp. */
- test_strncmp ();
-
- /* strncpy. */
- test_strncpy ();
-
- /* strlcpy. */
- test_strlcpy ();
-
- /* strlen. */
- test_strlen ();
-
- /* strnlen. */
- test_strnlen ();
-
- /* strchr. */
- test_strchr ();
-
- /* strchrnul. */
- test_strchrnul ();
-
- /* rawmemchr. */
- test_rawmemchr ();
-
- /* index - just like strchr. */
- test_index ();
-
- /* strrchr. */
- test_strrchr ();
-
- /* memrchr. */
- test_memrchr ();
-
- /* rindex - just like strrchr. */
- test_rindex ();
-
- /* strpbrk - somewhat like strchr. */
- test_strpbrk ();
-
- /* strstr - somewhat like strchr. */
- test_strstr ();
-
- /* strspn. */
- test_strspn ();
-
- /* strcspn. */
- test_strcspn ();
-
- /* strtok - the hard one. */
- test_strtok ();
-
- /* strtok_r. */
- test_strtok_r ();
-
- /* strsep. */
- test_strsep ();
-
- /* memcmp. */
- test_memcmp ();
-
- /* memchr. */
- test_memchr ();
-
- /* memcpy - need not work for overlap. */
- test_memcpy ();
-
- /* memmove - must work on overlap. */
- test_memmove ();
-
- /* mempcpy */
- test_mempcpy ();
-
- /* memccpy. */
- test_memccpy ();
-
- /* memset. */
- test_memset ();
-
- /* bcopy. */
- test_bcopy ();
-
- /* bzero. */
- test_bzero ();
-
- /* bcmp - somewhat like memcmp. */
- test_bcmp ();
-
- /* strndup. */
- test_strndup ();
-
- /* strerror - VERY system-dependent. */
- test_strerror ();
-
- /* strcasecmp. Without locale dependencies. */
- test_strcasecmp ();
-
- /* strncasecmp. Without locale dependencies. */
- test_strncasecmp ();
-
- if (errors == 0)
- {
- status = EXIT_SUCCESS;
- puts("No errors.");
- }
- else
- {
- status = EXIT_FAILURE;
- printf("%Zd errors.\n", errors);
- }
-
- return status;
-}
diff --git a/test/string/tst-bswap.c b/test/string/tst-bswap.c
deleted file mode 100644
index 52a2718..0000000
--- a/test/string/tst-bswap.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)cygnus.com>om>.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <byteswap.h>
-#include <stdio.h>
-
-extern unsigned long long int wash (unsigned long long int a);
-
-int
-main (void)
-{
- int result = 0;
-
- /* Test the functions with constant arguments. */
- if (bswap_16 (0x1234) != 0x3412)
- {
- puts ("bswap_16 (constant) flunked");
- result = 1;
- }
- if (bswap_32 (0x12345678) != 0x78563412)
- {
- puts ("bswap_32 (constant) flunked");
- result = 1;
- }
- if (bswap_64 (0x1234567890abcdefULL) != 0xefcdab9078563412ULL)
- {
- puts ("bswap_64 (constant) flunked");
- result = 1;
- }
-
- /* Test the functions with non-constant arguments. */
- if (bswap_16 (wash (0x1234)) != 0x3412)
- {
- puts ("bswap_16 (non-constant) flunked");
- result = 1;
- }
- if (bswap_32 (wash (0x12345678)) != 0x78563412)
- {
- puts ("bswap_32 (non-constant) flunked");
- result = 1;
- }
- if (bswap_64 (wash (0x1234567890abcdefULL)) != 0xefcdab9078563412ULL)
- {
- puts ("bswap_64 (non-constant) flunked");
- result = 1;
- }
-
- return result;
-}
-
-
-unsigned long long int
-wash (unsigned long long int a)
-{
- /* Do nothing. This function simply exists to avoid that the compiler
- regards the argument to the bswap_*() functions as constant. */
- return a + 0;
-}
diff --git a/test/string/tst-inlcall.c b/test/string/tst-inlcall.c
deleted file mode 100644
index 7e2eba3..0000000
--- a/test/string/tst-inlcall.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/* Tester for calling inline string functions.
- Copyright (C) 1998, 2000, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _GNU_SOURCE
-#define _GNU_SOURCE
-#endif
-
-/* Make sure we test the optimized inline functions. */
-#define __USE_STRING_INLINES 1
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <strings.h>
-#include <fcntl.h>
-
-
-int
-main (void)
-{
- int status;
- int errors = 0;
- char buf1[1000];
- char *cp;
- char ch;
-
- cp = strcpy (buf1, "hello world");
- if (strcmp ("hello world", cp++) != 0)
- {
- puts ("strcmp test 1 failed");
- ++errors;
- }
-
- cp = buf1;
- if (strcmp (cp++, "hello world") != 0)
- {
- puts ("strcmp test 2 failed");
- ++errors;
- }
-
- ch = 'h';
- if (strchr ("hello world", ch++) == NULL)
- {
- puts ("strchr test 1 failed");
- ++errors;
- }
-
- const char * const hw = "hello world";
- if (strpbrk (hw, "o") - hw != 4)
- {
- puts ("strpbrk test 1 failed");
- ++errors;
- }
-
- if (errors == 0)
- {
- status = EXIT_SUCCESS;
- puts ("No errors.");
- }
- else
- {
- status = EXIT_FAILURE;
- printf ("%d errors.\n", errors);
- }
- return status;
-}
diff --git a/test/string/tst-memmove.c b/test/string/tst-memmove.c
deleted file mode 100644
index 2adc527..0000000
--- a/test/string/tst-memmove.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2016 Rene Nielsen <rene.nielsen(a)microsemi.com>
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-#include <string.h>
-#include <stdio.h>
-
-#define LEN 1024
-
-int main(int argc, char *argv[])
-{
- unsigned char a[LEN], exp;
- int i, move_len, move_src, err = 0;
-
- // Fill the array with increasing values from 0 to LEN - 1 (wrap is fine)
- for (i = 0; i < LEN; i++) {
- a[i] = i;
- }
-
- // move_src is the index into the array to move from.
- // move_len is the number of indices to move. Here, we take the remainder.
- move_src = LEN / 64;
- move_len = LEN - move_src;
-
- printf("Moving %d entries from index %d to 0\n", move_len, move_src);
- memmove(a, &a[move_src], sizeof(a[0]) * move_len);
-
- // Check that the memmove went well
- for (i = 0; i < LEN; i++) {
- // Expect that the first #move_len entries contain increasing values
- // starting at #move_src and the last #move_src entries are untouched.
- exp = i >= move_len ? i : i + move_src;
- if (a[i] != exp) {
- printf("Error: memmove() failed. Expected a[%d] = %u, got %u\n", i,
exp, a[i]);
- err = 1;
- }
- }
-
- if (!err) {
- printf("memmove() succeeded\n");
- }
-
- return err;
-}
-
diff --git a/test/string/tst-strlen.c b/test/string/tst-strlen.c
deleted file mode 100644
index a1e1159..0000000
--- a/test/string/tst-strlen.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Make sure we don't test the optimized inline functions if we want to
- test the real implementation. */
-#undef __USE_STRING_INLINES
-
-#include <stdio.h>
-#include <string.h>
-
-int
-main(int argc, char *argv[])
-{
- static const size_t lens[] = { 0, 1, 0, 2, 0, 1, 0, 3,
- 0, 1, 0, 2, 0, 1, 0, 4 };
- char basebuf[24 + 32];
- size_t base;
-
- for (base = 0; base < 32; ++base)
- {
- char *buf = basebuf + base;
- size_t words;
-
- for (words = 0; words < 4; ++words)
- {
- size_t last;
- memset (buf, 'a', words * 4);
-
- for (last = 0; last < 16; ++last)
- {
- buf[words * 4 + 0] = (last & 1) != 0 ? 'b' : '\0';
- buf[words * 4 + 1] = (last & 2) != 0 ? 'c' : '\0';
- buf[words * 4 + 2] = (last & 4) != 0 ? 'd' : '\0';
- buf[words * 4 + 3] = (last & 8) != 0 ? 'e' : '\0';
- buf[words * 4 + 4] = '\0';
-
- if (strlen (buf) != words * 4 + lens[last]
- || strnlen (buf, -1) != words * 4 + lens[last])
- {
- printf ("failed for base=%Zu, words=%Zu, and last=%Zu\n",
- base, words, last);
- return 1;
- }
- }
- }
- }
- return 0;
-}
diff --git a/test/string/tst-strtok.c b/test/string/tst-strtok.c
deleted file mode 100644
index 7e34aee..0000000
--- a/test/string/tst-strtok.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Testcase for strtok reported by Andrew Church <achurch(a)achurch.org>rg>. */
-#include <stdio.h>
-#include <string.h>
-
-int
-main (void)
-{
- char buf[1] = { 0 };
- int result = 0;
-
- if (strtok (buf, " ") != NULL)
- {
- puts ("first strtok call did not return NULL");
- result = 1;
- }
- else if (strtok (NULL, " ") != NULL)
- {
- puts ("second strtok call did not return NULL");
- result = 1;
- }
-
- return result;
-}
diff --git a/test/string/tst-strxfrm.c b/test/string/tst-strxfrm.c
deleted file mode 100644
index ff1b396..0000000
--- a/test/string/tst-strxfrm.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* Based on a test case by Paul Eggert. */
-#include <features.h>
-#ifdef __UCLIBC_HAS_XLOCALE__
-#include <locale.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-char const string[] = "";
-
-
-static int
-test (const char *locale)
-{
- size_t bufsize;
- size_t r;
- size_t l;
- char *buf;
- locale_t loc;
- int result = 0;
-
- if (setlocale (LC_COLLATE, locale) == NULL)
- {
- printf ("cannot set locale \"%s\"\n", locale);
- return 1;
- }
- bufsize = strxfrm (NULL, string, 0) + 1;
- buf = malloc (bufsize);
- if (buf == NULL)
- {
- printf ("cannot allocate %zd bytes\n", bufsize);
- return 1;
- }
- r = strxfrm (buf, string, bufsize);
- l = strlen (buf);
- if (r != l)
- {
- printf ("locale \"%s\": strxfrm returned %zu, strlen returned
%zu\n",
- locale, r, l);
- result = 1;
- }
-
- loc = newlocale (1 << LC_ALL, locale, NULL);
-
- r = strxfrm_l (buf, string, bufsize, loc);
- l = strlen (buf);
- if (r != l)
- {
- printf ("locale \"%s\": strxfrm_l returned %zu, strlen returned
%zu\n",
- locale, r, l);
- result = 1;
- }
-
- freelocale (loc);
-
- free (buf);
-
- return result;
-}
-
-
-int
-main (void)
-{
- int result = 0;
-
- result |= test ("C");
- result |= test ("en_US.ISO-8859-1");
- result |= test ("de_DE.UTF-8");
-
- return result;
-}
-
-#else
-int main(void)
-{
- return 0;
-}
-#endif
diff --git a/test/termios/Makefile b/test/termios/Makefile
deleted file mode 100644
index 098cca6..0000000
--- a/test/termios/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc termios tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/termios/termios.c b/test/termios/termios.c
deleted file mode 100644
index 5fbc344..0000000
--- a/test/termios/termios.c
+++ /dev/null
@@ -1,25 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <termios.h>
-#include <unistd.h>
-#include <asm/ioctls.h>
-#include <sys/ioctl.h>
-
-int main(int argc,char *argv[])
-{
- struct termios t;
- int ret;
-
- printf("TCGETS = 0x%08x\n",TCGETS);
- printf("sizeof(struct termios) = %ld\n",(long)sizeof(struct termios));
-
- ret = ioctl(fileno(stdout),TCGETS,&t);
-
- if(ret<0){
- perror("ioctl");
- }else{
- printf("ioctl returned %d\n",ret);
- }
-
- return 0;
-}
diff --git a/test/test-skeleton.c b/test/test-skeleton.c
deleted file mode 100644
index cf136ac..0000000
--- a/test/test-skeleton.c
+++ /dev/null
@@ -1,419 +0,0 @@
-/* Skeleton for test programs.
- Copyright (C) 1998,2000-2004, 2005 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)cygnus.com>om>, 1998.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <assert.h>
-#include <errno.h>
-#include <getopt.h>
-#include <malloc.h>
-#include <search.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/resource.h>
-#include <sys/wait.h>
-#include <sys/param.h>
-#include <time.h>
-#include <features.h>
-
-/* The test function is normally called `do_test' and it is called
- with argc and argv as the arguments. We nevertheless provide the
- possibility to overwrite this name. */
-#ifndef TEST_FUNCTION
-# define TEST_FUNCTION do_test (argc, argv)
-#endif
-
-#ifndef TEST_DATA_LIMIT
-# define TEST_DATA_LIMIT (64 << 20) /* Data limit (bytes) to run with. */
-#endif
-
-/* PID of the test itself. */
-static pid_t pid;
-
-/* Directory to place temporary files in. */
-static const char *test_dir;
-
-/* List of temporary files. */
-struct temp_name_list
-{
- struct qelem q;
- char *name;
-} *temp_name_list;
-
-/* Add temporary files in list. */
-static void
-__attribute__ ((unused))
-add_temp_file (const char *name)
-{
- struct temp_name_list *newp
- = (struct temp_name_list *) calloc (sizeof (*newp), 1);
- char *newname = strdup (name);
- if (newp != NULL && newname != NULL)
- {
- newp->name = newname;
- if (temp_name_list == NULL)
- temp_name_list = (struct temp_name_list *) &newp->q;
- else
- insque (newp, temp_name_list);
- }
- else
- free (newp);
-}
-
-/* Delete all temporary files. */
-static void
-delete_temp_files (void)
-{
- while (temp_name_list != NULL)
- {
- remove (temp_name_list->name);
- free (temp_name_list->name);
-
- struct temp_name_list *next
- = (struct temp_name_list *) temp_name_list->q.q_forw;
- free (temp_name_list);
- temp_name_list = next;
- }
-}
-
-/* Create a temporary file. Return the opened file descriptor on
- success, or -1 on failure. Write the file name to *FILENAME if
- FILENAME is not NULL. In this case, the caller is expected to free
- *FILENAME. */
-static int
-__attribute__ ((unused))
-create_temp_file (const char *base, char **filename)
-{
- char *fname;
- int _fd;
-
- fname = (char *) malloc (strlen (test_dir) + 1 + strlen (base)
- + sizeof ("XXXXXX"));
- if (fname == NULL)
- {
- puts ("out of memory");
- return -1;
- }
- strcpy (stpcpy (stpcpy (stpcpy (fname, test_dir), "/"), base),
"XXXXXX");
-
- _fd = mkstemp (fname);
- if (_fd == -1)
- {
- printf ("cannot open temporary file '%s': %s\n", fname,
strerror(errno));
- free (fname);
- return -1;
- }
-
- add_temp_file (fname);
- if (filename != NULL)
- *filename = fname;
- else
- free (fname);
-
- return _fd;
-}
-
-/* Timeout handler. We kill the child and exit with an error. */
-static void
-__attribute__ ((noreturn))
-signal_handler (int sig __attribute__ ((unused)))
-{
- int killed = 0;
- int status;
- int i;
-
- assert (pid > 1);
- /* Kill the whole process group. */
- kill (-pid, SIGKILL);
- /* In case setpgid failed in the child, kill it individually too. */
- kill (pid, SIGKILL);
-
- /* Wait for it to terminate. */
- for (i = 0; i < 5; ++i)
- {
-#ifdef __UCLIBC_HAS_REALTIME__
- struct timespec ts;
-#endif
- killed = waitpid (pid, &status, WNOHANG|WUNTRACED);
- if (killed != 0)
- break;
-
- /* Delay, give the system time to process the kill. If the
- nanosleep() call return prematurely, all the better. We
- won't restart it since this probably means the child process
- finally died. */
-#ifdef __UCLIBC_HAS_REALTIME__
- ts.tv_sec = 0;
- ts.tv_nsec = 100000000;
- nanosleep (&ts, NULL);
-#else
- /* No nanosleep, just sleep 1s instead of 0.1s */
- sleep(1);
-#endif
- }
- if (killed != 0 && killed != pid)
- {
- perror ("Failed to kill test process");
- exit (1);
- }
-
-#ifdef CLEANUP_HANDLER
- CLEANUP_HANDLER;
-#endif
-
- if (sig == SIGINT)
- {
- signal (sig, SIG_DFL);
- raise (sig);
- }
-
- /* If we expected this signal: good! */
-#ifdef EXPECTED_SIGNAL
- if (EXPECTED_SIGNAL == SIGALRM)
- exit (0);
-#endif
-
- if (killed == 0 || (WIFSIGNALED (status) && WTERMSIG (status) == SIGKILL))
- fputs ("Timed out: killed the child process\n", stderr);
- else if (WIFSTOPPED (status))
- fprintf (stderr, "Timed out: the child process was %s\n",
- strsignal (WSTOPSIG (status)));
- else if (WIFSIGNALED (status))
- fprintf (stderr, "Timed out: the child process got signal %s\n",
- strsignal (WTERMSIG (status)));
- else
- fprintf (stderr, "Timed out: killed the child process but it exited %d\n",
- WEXITSTATUS (status));
-
- /* Exit with an error. */
- exit (1);
-}
-
-#ifdef __XXX_HANDLE_CTRL_C
-static void
-__attribute__ ((noreturn))
-handler_killpid(int sig)
-{
- kill(pid, SIGKILL); /* kill test */
- signal(sig, SIG_DFL);
- raise(sig); /* kill ourself */
- _exit(128 + sig); /* paranoia */
-}
-#endif
-
-/* We provide the entry point here. */
-int
-main (int argc, char *argv[])
-{
-#ifdef __ARCH_USE_MMU__
- int direct = 0; /* Directly call the test function? */
-#else
- int direct = 1;
-#endif
- int status;
- int opt;
- unsigned int timeoutfactor = 1;
- pid_t termpid;
- char *envstr_timeoutfactor;
-
- /* Make uses of freed and uninitialized memory known. */
-#ifdef __MALLOC_STANDARD__
-#ifndef M_PERTURB
-# define M_PERTURB -6
-#endif
- mallopt (M_PERTURB, 42);
-#endif
-
-#ifdef STDOUT_UNBUFFERED
- setbuf (stdout, NULL);
-#endif
-
-# ifndef CMDLINE_OPTIONS
-# define CMDLINE_OPTIONS ""
-# endif
- while ((opt = getopt (argc, argv, "+dt:" CMDLINE_OPTIONS)) >= 0)
- switch (opt)
- {
- case '?':
- exit (1);
- case 'd':
- direct = 1;
- break;
- case 't':
- test_dir = optarg;
- break;
-#ifdef CMDLINE_PROCESS
- CMDLINE_PROCESS
-#endif
- }
-
- /* If set, read the test TIMEOUTFACTOR value from the environment.
- This value is used to scale the default test timeout values. */
- envstr_timeoutfactor = getenv ("TIMEOUTFACTOR");
- if (envstr_timeoutfactor != NULL)
- {
- char *envstr_conv = envstr_timeoutfactor;
- unsigned long int env_fact;
-
- env_fact = strtoul (envstr_timeoutfactor, &envstr_conv, 0);
- if (*envstr_conv == '\0' && envstr_conv != envstr_timeoutfactor)
- timeoutfactor = MAX (env_fact, 1);
- }
-
- /* Set TMPDIR to specified test directory. */
- if (test_dir != NULL)
- {
- setenv ("TMPDIR", test_dir, 1);
-
- if (chdir (test_dir) < 0)
- {
- perror ("chdir");
- exit (1);
- }
- }
- else
- {
- test_dir = getenv ("TMPDIR");
- if (test_dir == NULL || test_dir[0] == '\0')
- test_dir = "/tmp";
- }
-
- /* Make sure we see all message, even those on stdout. */
- setvbuf (stdout, NULL, _IONBF, 0);
-
- /* make sure temporary files are deleted. */
- atexit (delete_temp_files);
-
- /* Correct for the possible parameters. */
- argv[optind - 1] = argv[0];
- argv += optind - 1;
- argc -= optind - 1;
-
- /* Call the initializing function, if one is available. */
-#ifdef PREPARE
- PREPARE (argc, argv);
-#endif
-
- /* If we are not expected to fork run the function immediately. */
- if (direct)
- return TEST_FUNCTION;
-
- /* Set up the test environment:
- - prevent core dumps
- - set up the timer
- - fork and execute the function. */
-
-#if defined __ARCH_USE_MMU__ || ! defined __UCLIBC__
- pid = fork ();
- if (pid == 0)
- {
- /* This is the child. */
-#ifdef RLIMIT_CORE
- /* Try to avoid dumping core. */
- struct rlimit core_limit;
- core_limit.rlim_cur = 0;
- core_limit.rlim_max = 0;
- setrlimit (RLIMIT_CORE, &core_limit);
-#endif
-
- /* We put the test process in its own pgrp so that if it bogusly
- generates any job control signals, they won't hit the whole build. */
- if (setpgid (0, 0) != 0)
- printf ("Failed to set the process group ID: %m\n");
-
- /* Execute the test function and exit with the return value. */
- exit (TEST_FUNCTION);
- }
- else if (pid < 0)
-#endif
- {
- perror ("Cannot fork test program");
- exit (1);
- }
-
-#ifdef __XXX_HANDLE_CTRL_C
- signal (SIGTERM, handler_killpid);
- signal (SIGINT, handler_killpid);
- signal (SIGQUIT, handler_killpid);
-#endif
-
- /* Set timeout. */
-#ifndef TIMEOUT
- /* Default timeout is two seconds. */
-# define TIMEOUT 2
-#endif
- signal (SIGALRM, signal_handler);
- alarm (TIMEOUT * timeoutfactor);
-
- /* Make sure we clean up if the wrapper gets interrupted. */
- signal (SIGINT, signal_handler);
-
- /* Wait for the regular termination. */
- termpid = TEMP_FAILURE_RETRY (waitpid (pid, &status, 0));
- if (termpid == -1)
- {
- printf ("Waiting for test program failed: %s\n", strerror(errno));
- exit (1);
- }
- if (termpid != pid)
- {
- printf ("Oops, wrong test program terminated: expected %ld, got %ld\n",
- (long int) pid, (long int) termpid);
- exit (1);
- }
-
-#ifndef EXPECTED_SIGNAL
- /* We don't expect any signal. */
-# define EXPECTED_SIGNAL 0
-#endif
- if (WTERMSIG (status) != EXPECTED_SIGNAL)
- {
- if (EXPECTED_SIGNAL != 0)
- {
- if (WTERMSIG (status) == 0)
- fprintf (stderr,
- "Expected signal '%s' from child, got none\n",
- strsignal (EXPECTED_SIGNAL));
- else
- fprintf (stderr,
- "Incorrect signal from child: got `%s', need `%s'\n",
- strsignal (WTERMSIG (status)),
- strsignal (EXPECTED_SIGNAL));
- }
- else
- fprintf (stderr, "Didn't expect signal from child: got `%s'\n",
- strsignal (WTERMSIG (status)));
- exit (1);
- }
-
- /* Simply exit with the return value of the test. */
-#ifndef EXPECTED_STATUS
- return WEXITSTATUS (status);
-#else
- if (WEXITSTATUS (status) != EXPECTED_STATUS)
- {
- fprintf (stderr, "Expected status %d, got %d\n",
- EXPECTED_STATUS, WEXITSTATUS (status));
- exit (1);
- }
-
- return 0;
-#endif
-}
diff --git a/test/testsuite.h b/test/testsuite.h
deleted file mode 100644
index 84c7815..0000000
--- a/test/testsuite.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/* vi: set sw=4 ts=4: */
-/*
- * Some simple macros for use in test applications.
- * Copyright (C) 2000-2006 by Erik Andersen <andersen(a)uclibc.org>
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-#ifndef TESTSUITE_H
-#define TESTSUITE_H
-
-#ifdef __NO_TESTCODE__
-extern size_t test_number;
-#endif
-
-extern void init_testsuite(const char* testname);
-extern void done_testing(void) __attribute__((noreturn));
-extern void success_msg(int result, const char* command);
-extern void error_msg(int result, int line, const char* file, const char* command);
-
-#ifndef __NO_TESTCODE__
-
-size_t test_number = 0;
-static int failures = 0;
-
-void error_msg(int result, int line, const char* file, const char* command)
-{
- failures++;
-
- printf("\nFAILED TEST %lu: \n\t%s\nResult: %d",
- (unsigned long)test_number, command, result);
- printf("AT LINE: %d, FILE: %s\n\n", line, file);
-}
-
-void success_msg(int result __attribute__((unused)), const char* command
__attribute__((unused)))
-{
-#if 0
- printf("passed test: %s == 0\n", command);
-#endif
-}
-
-void done_testing(void)
-{
- if (0 < failures) {
- printf("Failed %d tests\n", failures);
- exit(EXIT_FAILURE);
- } else {
- printf("All functions tested sucessfully\n");
- exit(EXIT_SUCCESS);
- }
-}
-
-void init_testsuite(const char* testname)
-{
- printf("%s", testname);
- test_number = 0;
- failures = 0;
-#if !defined(__UCLIBC__) || defined(__UCLIBC_DYNAMIC_ATEXIT__)
- atexit(done_testing);
-#endif
-}
-
-#endif /* __NO_TESTCODE__ */
-
-
-#define TEST_STRING_OUTPUT(command, expected_result) \
- do { \
- int result = strcmp(command, expected_result); \
- test_number++; \
- if (result == expected_result) { \
- success_msg(result, "command"); \
- } else { \
- error_msg(result, __LINE__, __FILE__, command); \
- }; \
- } while (0)
-
-#define TEST_NUMERIC(command, expected_result) \
- do { \
- int result = (command); \
- test_number++; \
- if (result == expected_result) { \
- success_msg(result, # command); \
- } else { \
- error_msg(result, __LINE__, __FILE__, # command); \
- }; \
- } while (0)
-
-#define TEST(command) \
- do { \
- int result = (command); \
- test_number++; \
- if (result == 1) { \
- success_msg(result, # command); \
- } else { \
- error_msg(result, __LINE__, __FILE__, # command); \
- }; \
- } while (0)
-
-#define STR_CMD(cmd) cmd
-
-#endif /* TESTSUITE_H */
diff --git a/test/time/Makefile b/test/time/Makefile
deleted file mode 100644
index fed4569..0000000
--- a/test/time/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc time tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/time/Makefile.in b/test/time/Makefile.in
deleted file mode 100644
index 4eeb741..0000000
--- a/test/time/Makefile.in
+++ /dev/null
@@ -1,22 +0,0 @@
-# uClibc time tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-TESTS_DISABLED := bug-asctime bug-asctime_r time tst-mktime2 tst-posixtz \
- tst-strftime tst-strptime tst-timezone
-
-ifeq ($(TARGET_avr32),y)
-TESTS_DISABLED += tst-timerfd
-endif
-
-ifneq ($(UCLIBC_HAS_XLOCALE),y)
-TESTS_DISABLED += tst-ftime_l
-endif
-
-ifneq ($(UCLIBC_HAS_WCHAR)$(UCLIBC_HAS_LOCALE),yy)
-TESTS_DISABLED += tst_wcsftime
-endif
-
-CFLAGS_tst-strptime2 := -std=c99
-
-DODIFF_futimens1 := 1
-DODIFF_tst_wcsftime := 1
diff --git a/test/time/bug-asctime.c b/test/time/bug-asctime.c
deleted file mode 100644
index 149e4e0..0000000
--- a/test/time/bug-asctime.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Note: we disable this on uClibc because we dont bother
- * verifying if the year is sane ... we just return ????
- * for the year value ...
- */
-
-#include <errno.h>
-#include <limits.h>
-#include <stdio.h>
-#include <time.h>
-
-
-static int
-do_test (void)
-{
- int result = 0;
- time_t t = time (NULL);
- struct tm *tp = localtime (&t);
- tp->tm_year = INT_MAX;
- errno = 0;
- char *s = asctime (tp);
- if (s != NULL || errno != EOVERFLOW)
- {
- printf ("asctime did not fail correctly: s=%p, wanted %p; errno=%i, wanted
%i\n",
- s, NULL, errno, EOVERFLOW);
- result = 1;
- }
- char buf[1000];
- errno = 0;
- s = asctime_r (tp, buf);
- if (s != NULL || errno != EOVERFLOW)
- {
- printf ("asctime_r did not fail correctly: s=%p, wanted %p; errno=%i, wanted
%i\n",
- s, NULL, errno, EOVERFLOW);
- result = 1;
- }
- return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/time/bug-asctime_r.c b/test/time/bug-asctime_r.c
deleted file mode 100644
index 1fcc465..0000000
--- a/test/time/bug-asctime_r.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Note: we disable this on uClibc because we dont bother
- * verifying if the year is sane ... we just return ????
- * for the year value ...
- */
-
-#include <errno.h>
-#include <limits.h>
-#include <stdio.h>
-#include <time.h>
-
-
-static int
-do_test (void)
-{
- int result = 0;
- time_t t = time (NULL);
- struct tm *tp = localtime (&t);
- tp->tm_year = 10000 - 1900;
- char buf[1000];
- errno = 0;
- buf[26] = '\xff';
- char *s = asctime_r (tp, buf);
- if (s != NULL || errno != EOVERFLOW)
- {
- puts ("asctime_r did not fail correctly");
- result = 1;
- }
- if (buf[26] != '\xff')
- {
- puts ("asctime_r overwrote 27th byte in buffer");
- result = 1;
- }
- return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/time/clocktest.c b/test/time/clocktest.c
deleted file mode 100644
index a5b2c09..0000000
--- a/test/time/clocktest.c
+++ /dev/null
@@ -1,36 +0,0 @@
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include <unistd.h>
-
-volatile int gotit = 0;
-
-static void
-alarm_handler (int signum)
-{
- gotit = 1;
-}
-
-
-int
-main (int argc, char ** argv)
-{
- clock_t start, stop;
-
- if (signal(SIGALRM, alarm_handler) == SIG_ERR)
- {
- perror ("signal");
- exit (1);
- }
- alarm(1);
- start = clock ();
- while (!gotit);
- stop = clock ();
-
- printf ("%ld clock ticks per second (start=%ld,stop=%ld)\n",
- stop - start, start, stop);
- printf ("CLOCKS_PER_SEC=%ld, sysconf(_SC_CLK_TCK)=%ld\n",
- CLOCKS_PER_SEC, sysconf(_SC_CLK_TCK));
- return 0;
-}
diff --git a/test/time/test_time.c b/test/time/test_time.c
deleted file mode 100644
index ab29318..0000000
--- a/test/time/test_time.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/* Copyright (C) 1991, 1992, 1994, 1997 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-
-
-int
-main (int argc, char **argv)
-{
- time_t t;
- register struct tm *tp;
- struct tm tbuf;
- int lose = 0;
-
- --argc;
- ++argv;
-
- do
- {
- char buf[BUFSIZ];
- if (argc > 0)
- {
- static char tzenvbuf[BUFSIZ];
- sprintf(tzenvbuf, "TZ=%s", *argv);
- if (putenv(tzenvbuf))
- {
- puts("putenv failed.");
- lose = 1;
- }
- else
- puts (tzenvbuf);
- }
- tzset();
- tbuf.tm_year = 72;
- tbuf.tm_mon = 0;
- tbuf.tm_mday = 31;
- tbuf.tm_hour = 6;
- tbuf.tm_min = 14;
- tbuf.tm_sec = 50;
- tbuf.tm_isdst = -1;
- doit:;
- t = mktime(&tbuf);
- if (t == (time_t) -1)
- {
- puts("mktime() failed?");
- lose = 1;
- }
- tp = localtime(&t);
- if (tp == NULL)
- {
- puts("localtime() failed.");
- lose = 1;
- }
- else if (strftime(buf, sizeof(buf), "%a %b %d %X %Z %Y", tp) == 0)
- {
- puts("strftime() failed.");
- lose = 1;
- }
- else
- puts(buf);
- if (tbuf.tm_year == 101)
- {
- tbuf.tm_year = 97;
- tbuf.tm_mon = 0;
- goto doit;
- }
- ++argv;
- } while (--argc > 0);
-
- {
-#define SIZE 256
- char buffer[SIZE];
- time_t curtime;
- struct tm *loctime;
-
- curtime = time (NULL);
-
- loctime = localtime (&curtime);
-
- fputs (asctime (loctime), stdout);
-
- strftime (buffer, SIZE, "Today is %A, %B %d.\n", loctime);
- fputs (buffer, stdout);
- strftime (buffer, SIZE, "The time is %I:%M %p.\n", loctime);
- fputs (buffer, stdout);
-
- loctime->tm_year = 72;
- loctime->tm_mon = 8;
- loctime->tm_mday = 12;
- loctime->tm_hour = 20;
- loctime->tm_min = 49;
- loctime->tm_sec = 05;
- curtime = mktime (loctime);
- strftime (buffer, SIZE, "%D %T was %w the %jth.\n", loctime);
- fputs (buffer, stdout);
- }
-
- return (lose ? EXIT_FAILURE : EXIT_SUCCESS);
-}
diff --git a/test/time/time.c b/test/time/time.c
deleted file mode 100644
index a4d68d5..0000000
--- a/test/time/time.c
+++ /dev/null
@@ -1,76 +0,0 @@
-#include <stdlib.h>
-#include <stdio.h>
-#include <time.h>
-
-/* We use this instead of memcmp because some broken C libraries
- * add additional nonstandard fields to struct tm... */
-
-int tm_cmp(struct tm tm1, struct tm tm2)
-{
- return tm1.tm_sec != tm2.tm_sec ||
- tm1.tm_min != tm2.tm_min ||
- tm1.tm_hour != tm2.tm_hour ||
- tm1.tm_mday != tm2.tm_mday ||
- tm1.tm_mon != tm2.tm_mon ||
- tm1.tm_year != tm2.tm_year ||
- tm1.tm_wday != tm2.tm_wday ||
- tm1.tm_yday != tm2.tm_yday ||
- tm1.tm_isdst!= tm2.tm_isdst;
-}
-
-char *tm_str(struct tm tm)
-{
- static int i;
- static char b[4][64];
- i = (i+1)%4;
- snprintf(b[i], sizeof b[i],
- "s=%.2d m=%.2d h=%.2d mday=%.2d mon=%.2d year=%.4d wday=%d yday=%d
isdst=%d",
- tm.tm_sec, tm.tm_min, tm.tm_hour,
- tm.tm_mday, tm.tm_mon, tm.tm_year,
- tm.tm_wday, tm.tm_yday, tm.tm_isdst);
- return b[i];
-}
-
-#define TM(ss,mm,hh,md,mo,yr,wd,yd,dst) (struct tm){ \
- .tm_sec = ss, .tm_min = mm, .tm_hour = hh, \
- .tm_mday = md, .tm_mon = mo, .tm_year = yr, \
- .tm_wday = wd, .tm_yday = yd, .tm_isdst = dst }
-
-#define TM_EPOCH TM(0,0,0,1,0,70,4,0,0)
-#define TM_Y2038_1S TM(7,14,3,19,0,138,2,18,0)
-#define TM_Y2038 TM(8,14,3,19,0,138,2,18,0)
-
-#define TEST_TM(r,x,m) (!tm_cmp((r),(x)) || \
-(printf(__FILE__ ":%d: %s failed:\n\tresult: %s\n\texpect: %s\n", __LINE__, \
-m, tm_str((r)), tm_str((x))), err++, 0) )
-
-#define TEST(r, f, x, m) ( \
-((r) = (f)) == (x) || \
-(printf(__FILE__ ":%d: %s failed (" m ")\n", __LINE__, #f, r, x),
err++, 0) )
-
-int main(void)
-{
- struct tm tm, *tm_p;
- time_t t;
- int err=0;
-
- putenv("TZ=GMT");
- tzset();
-
- t=0; tm_p = gmtime(&t);
- TEST_TM(*tm_p, TM_EPOCH, "gmtime(0)");
-
- tm = TM_Y2038_1S;
- t = mktime(&tm);
- tm = *(gmtime(&t));
- TEST_TM(*tm_p, TM_Y2038_1S, "mktime/gmtime(Y2038-1)");
-
- tm = TM_Y2038;
- t = mktime(&tm);
- tm = *(gmtime(&t));
- TEST_TM(*tm_p, TM_Y2038, "mktime/gmtime(Y2038)");
-
- /* FIXME: set a TZ var and check DST boundary conditions */
-
- return err;
-}
diff --git a/test/time/tst-ctime.c b/test/time/tst-ctime.c
deleted file mode 100644
index 91d827a..0000000
--- a/test/time/tst-ctime.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* vi: set sw=4 ts=4: */
-/* testcase for ctime(3) with large time
- * Copyright (C) 2010 David A Ramos <daramos(a)gustav.stanford.edu>
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-
-#define MAX_POSITIVE(type) (~0 & ~((type) 1 << (sizeof(type)*8 - 1)))
-
-int do_test(int argc, char **argv) {
- char *correct = 0, *s;
- int status;
-
- /* need a very high positive number (e.g., max - 1024) */
- time_t test = MAX_POSITIVE(time_t) - 1024;
-
- s = asctime(localtime(&test));
-
- if (s) {
- // copy static buffer to heap
- correct = malloc(strlen(s)+1);
- strcpy(correct, s);
- }
-
- s = ctime(&test);
-
- printf("ANSI:\t%suClibc:\t%s", correct, s);
-
- if (s != correct && strcmp(correct, s))
- status = EXIT_FAILURE;
- else
- status = EXIT_SUCCESS;
-
- if (correct)
- free(correct);
-
- return status;
-}
-
-#include <test-skeleton.c>
diff --git a/test/time/tst-ftime_l.c b/test/time/tst-ftime_l.c
deleted file mode 100644
index 95017f1..0000000
--- a/test/time/tst-ftime_l.c
+++ /dev/null
@@ -1,136 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <features.h>
-#ifdef __UCLIBC_HAS_XLOCALE__
-#include <locale.h>
-#include <wchar.h>
-
-
-int
-main (void)
-{
- locale_t l;
- locale_t old;
- struct tm tm;
- char buf[1000];
- wchar_t wbuf[1000];
- int result = 0;
- size_t n;
-
- l = newlocale (LC_ALL_MASK, "de_DE.ISO-8859-1", NULL);
- if (l == NULL)
- {
- puts ("newlocale failed");
- exit (1);
- }
-
- memset (&tm, '\0', sizeof (tm));
-
- tm.tm_year = 102;
- tm.tm_mon = 2;
- tm.tm_mday = 1;
-
- if (strftime (buf, sizeof (buf), "%e %^B %Y", &tm) == 0)
- {
- puts ("initial strftime failed");
- exit (1);
- }
- if (strcmp (buf, " 1 MARCH 2002") != 0)
- {
- printf ("initial strftime: expected \"%s\", got
\"%s\"\n",
- " 1 MARCH 2002", buf);
- result = 1;
- }
- else
- printf ("got \"%s\"\n", buf);
-
- /* Now using the extended locale model. */
- if (strftime_l (buf, sizeof (buf), "%e %^B %Y", &tm, l) == 0)
- {
- puts ("strftime_l failed");
- result = 1;
- }
- else if (strcmp (buf, " 1 M\xc4RZ 2002") != 0)
- {
- printf ("strftime_l: expected \"%s\", got \"%s\"\n",
- " 1 M\xc4RZ 2002", buf);
- result = 1;
- }
- else
- {
- setlocale (LC_ALL, "de_DE.ISO-8859-1");
- printf ("got \"%s\"\n", buf);
- setlocale (LC_ALL, "C");
- }
-
- /* And the wide character version. */
- if (wcsftime_l (wbuf, sizeof (wbuf) / sizeof (wbuf[0]), L"%e %^B %Y",
&tm, l)
- == 0)
- {
- puts ("wcsftime_l failed");
- result = 1;
- }
- else if (wcscmp (wbuf, L" 1 M\x00c4RZ 2002") != 0)
- {
- printf ("wcsftime_l: expected \"%ls\", got
\"%ls\"\n",
- L" 1 M\x00c4RZ 2002", wbuf);
- result = 1;
- }
- else
- {
- setlocale (LC_ALL, "de_DE.ISO-8859-1");
- printf ("got \"%ls\"\n", wbuf);
- setlocale (LC_ALL, "C");
- }
-
- old = uselocale (l);
-
- n = strftime (buf, sizeof (buf), "%e %^B %Y", &tm);
-
- /* Switch back. */
- (void) uselocale (old);
-
- if (n == 0)
- {
- puts ("strftime after first uselocale failed");
- result = 1;
- }
- else if (strcmp (buf, " 1 M\xc4RZ 2002") != 0)
- {
- printf ("strftime in non-C locale: expected \"%s\", got
\"%s\"\n",
- " 1 M\xc4RZ 2002", buf);
- result = 1;
- }
- else
- {
- setlocale (LC_ALL, "de_DE.ISO-8859-1");
- printf ("got \"%s\"\n", buf);
- setlocale (LC_ALL, "C");
- }
-
- if (strftime (buf, sizeof (buf), "%e %^B %Y", &tm) == 0)
- {
- puts ("strftime after second uselocale failed");
- result = 1;
- }
- else if (strcmp (buf, " 1 MARCH 2002") != 0)
- {
- printf ("initial strftime: expected \"%s\", got
\"%s\"\n",
- " 1 MARCH 2002", buf);
- result = 1;
- }
- else
- printf ("got \"%s\"\n", buf);
-
- return result;
-}
-
-#else
-int main(void)
-{
- puts("Test requires WCHAR support; skipping");
- return 0;
-}
-#endif
diff --git a/test/time/tst-futimens1.c b/test/time/tst-futimens1.c
deleted file mode 100644
index 2c25bd4..0000000
--- a/test/time/tst-futimens1.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/* vi: set sw=4 ts=4: */
-/* testcase for futimens(2)
- * Copyright (C) 2009 Bernhard Reutner-Fischer <uClibc(a)uClibc.org>
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <unistd.h>
-
-struct
-{
- char *name; /* name of file to open */
- int flags; /* flags for file descriptor */
- const struct timespec ts[2];
- int err; /* expected errno */
-} tests [] =
-{
- {"futimens.tst", (O_CREAT|O_TRUNC), {{0,0},{0,0}}, 0},
- {"futimens.tst", (O_CREAT|O_TRUNC), {{99,0},{0,0}}, 0},
- {"futimens.tst", (O_CREAT|O_TRUNC), {{0,99},{0,0}}, 0},
- {"futimens.tst", (O_CREAT|O_TRUNC), {{0,0},{99,0}}, 0},
- {"futimens.tst", (O_CREAT|O_TRUNC), {{0,0},{0,99}}, 0},
- {"futimens.tst", (O_CREAT|O_TRUNC), {{11,2},{3,4}}, 0},
-};
-int do_test(int argc, char **argv) {
- char *name;
- int i, errors;
- errors = argc - argc + 0;
- unsigned has_stat_nsec = 0;
- {
- struct stat probe;
- /* Let's attempt an educated guess if this filesystem supports
- * nanosecond mtime. */
- if ((!stat(".", &probe)) && probe.st_mtim.tv_nsec)
- has_stat_nsec = 1;
- else if ((!stat(argv[0], &probe)) && probe.st_mtim.tv_nsec)
- has_stat_nsec = 1;
- }
- for (i=0; i < (int) (sizeof(tests)/sizeof(tests[0])); ++i) {
- int err, fd;
- struct stat sb;
- name = tests[i].name;
- if (*name != '.')
- unlink(name);
- fd = open(name, tests[i].flags, 0660);
- if (fd < 0)
- abort();
- errno = 0;
- err = futimens(fd, tests[i].ts);
- if ((errno && !err) || (!errno && err)) {
- err = errno;
- printf("FAILED test %d (errno and return value disagree)\n", i);
- ++errors;
- } else
- err = errno;
- if (err != tests[i].err) {
- printf("FAILED test %d (expected errno %d, got %d)\n",
- i, tests[i].err, err);
- ++errors;
- continue;
- }
- if (stat(name, &sb) < 0) {
- printf("FAILED test %d (verification)\n", i);
- ++errors;
- continue;
- } else {
- unsigned wrong = tests[i].ts[0].tv_sec != sb.st_atim.tv_sec ||
- tests[i].ts[0].tv_nsec != sb.st_atim.tv_nsec ||
- tests[i].ts[1].tv_sec != sb.st_mtim.tv_sec ||
- tests[i].ts[1].tv_nsec != sb.st_mtim.tv_nsec;
- if (wrong) {
- if (tests[i].ts[0].tv_sec != sb.st_atim.tv_sec) {
- printf("FAILED test %d (access time, sec: expected %ld, got %ld)\n",
- i, tests[i].ts[0].tv_sec, sb.st_atim.tv_sec);
- ++errors;
- }
- if (tests[i].ts[0].tv_nsec != sb.st_atim.tv_nsec) {
- printf("FAILED test %d (access time, nsec: expected %ld, got %ld)\n",
- i, tests[i].ts[0].tv_nsec, sb.st_atim.tv_nsec);
- errors += has_stat_nsec;
- }
-
- if (tests[i].ts[1].tv_sec != sb.st_mtim.tv_sec) {
- printf("FAILED test %d (modification time, sec: expected %ld, got
%ld)\n",
- i, tests[i].ts[1].tv_sec, sb.st_mtim.tv_sec);
- ++errors;
- }
- if (tests[i].ts[1].tv_nsec != sb.st_mtim.tv_nsec) {
- printf("FAILED test %d (modification time, nsec: expected %ld, got
%ld)\n",
- i, tests[i].ts[1].tv_nsec, sb.st_mtim.tv_nsec);
- errors += has_stat_nsec;
- }
- }
- }
- }
- if (*name != '.')
- unlink(name);
- printf("%d errors.\n", errors);
- return (!errors) ? EXIT_SUCCESS : EXIT_FAILURE;
-}
-#include <test-skeleton.c>
diff --git a/test/time/tst-mktime.c b/test/time/tst-mktime.c
deleted file mode 100644
index 416a856..0000000
--- a/test/time/tst-mktime.c
+++ /dev/null
@@ -1,70 +0,0 @@
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <time.h>
-
-int
-main (void)
-{
- struct tm time_str, *tm;
- time_t t;
- char daybuf[20];
- int result;
-
- time_str.tm_year = 2001 - 1900;
- time_str.tm_mon = 7 - 1;
- time_str.tm_mday = 4;
- time_str.tm_hour = 0;
- time_str.tm_min = 0;
- time_str.tm_sec = 1;
- time_str.tm_isdst = -1;
-
- if (mktime (&time_str) == -1)
- {
- (void) puts ("-unknown-");
- result = 1;
- }
- else
- {
- (void) strftime (daybuf, sizeof (daybuf), "%A", &time_str);
- (void) puts (daybuf);
- result = strcmp (daybuf, "Wednesday") != 0;
- }
-
- setenv ("TZ", "EST+5", 1);
-#define EVENING69 1 * 60 * 60 + 2 * 60 + 29
- t = EVENING69;
- tm = localtime (&t);
- if (tm == NULL)
- {
- (void) puts ("localtime returned NULL");
- result = 1;
- }
- else
- {
- time_str = *tm;
- t = mktime (&time_str);
- if (t != EVENING69)
- {
- printf ("mktime returned %ld, expected %d\n",
- (long) t, EVENING69);
- result = 1;
- }
- else
- (void) puts ("Dec 31 1969 EST test passed");
-
- setenv ("TZ", "CET-1", 1);
- t = mktime (&time_str);
-#define EVENING69_CET (EVENING69 - (5 - -1) * 60 * 60)
- if (t != EVENING69_CET)
- {
- printf ("mktime returned %ld, expected %ld\n",
- (long) t, (long) EVENING69_CET);
- result = 1;
- }
- else
- (void) puts ("Dec 31 1969 CET test passed");
- }
-
- return result;
-}
diff --git a/test/time/tst-mktime2.c b/test/time/tst-mktime2.c
deleted file mode 100644
index 6279218..0000000
--- a/test/time/tst-mktime2.c
+++ /dev/null
@@ -1,141 +0,0 @@
-/* Test program from Paul Eggert and Tony Leneis. */
-#include <time.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-static time_t time_t_max;
-static time_t time_t_min;
-
-/* Values we'll use to set the TZ environment variable. */
-static const char *tz_strings[] =
- {
- (const char *) 0, "GMT0", "JST-9",
- "EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00"
- };
-#define N_STRINGS ((int) (sizeof (tz_strings) / sizeof (tz_strings[0])))
-
-/* Fail if mktime fails to convert a date in the spring-forward gap.
- Based on a problem report from Andreas Jaeger. */
-static void
-spring_forward_gap (void)
-{
- /* glibc (up to about 1998-10-07) failed this test. */
- struct tm tm;
-
- /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0"
- instead of "TZ=America/Vancouver" in order to detect the bug even
- on systems that don't support the Olson extension, or don't have the
- full zoneinfo tables installed. */
- setenv ("TZ", "PST8PDT,M4.1.0,M10.5.0", 1);
-
- tm.tm_year = 98;
- tm.tm_mon = 3;
- tm.tm_mday = 5;
- tm.tm_hour = 2;
- tm.tm_min = 0;
- tm.tm_sec = 0;
- tm.tm_isdst = -1;
- if (mktime (&tm) == (time_t)-1)
- exit (1);
-}
-
-static void
-mktime_test1 (time_t now)
-{
- struct tm *lt = localtime (&now);
- if (lt && mktime (lt) != now)
- exit (2);
-}
-
-static void
-mktime_test (time_t now)
-{
- mktime_test1 (now);
- mktime_test1 ((time_t) (time_t_max - now));
- mktime_test1 ((time_t) (time_t_min + now));
-}
-
-static void
-irix_6_4_bug (void)
-{
- /* Based on code from Ariel Faigon. */
- struct tm tm;
- tm.tm_year = 96;
- tm.tm_mon = 3;
- tm.tm_mday = 0;
- tm.tm_hour = 0;
- tm.tm_min = 0;
- tm.tm_sec = 0;
- tm.tm_isdst = -1;
- mktime (&tm);
- if (tm.tm_mon != 2 || tm.tm_mday != 31)
- exit (3);
-}
-
-static void
-bigtime_test (int j)
-{
- struct tm tm;
- time_t now;
- tm.tm_year = tm.tm_mon = tm.tm_mday = tm.tm_hour = tm.tm_min = tm.tm_sec = j;
- tm.tm_isdst = -1;
- now = mktime (&tm);
- if (now != (time_t) -1)
- {
- struct tm *lt = localtime (&now);
- if (! (lt
- && lt->tm_year == tm.tm_year
- && lt->tm_mon == tm.tm_mon
- && lt->tm_mday == tm.tm_mday
- && lt->tm_hour == tm.tm_hour
- && lt->tm_min == tm.tm_min
- && lt->tm_sec == tm.tm_sec
- && lt->tm_yday == tm.tm_yday
- && lt->tm_wday == tm.tm_wday
- && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst)
- == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst))))
- exit (4);
- }
-}
-
-static int
-do_test (void)
-{
- time_t t, delta;
- int i, j;
-
- setenv ("TZ", "America/Sao_Paulo", 1);
- /* This test makes some buggy mktime implementations loop.
- Give up after 60 seconds; a mktime slower than that
- isn't worth using anyway. */
- alarm (60);
-
- for (time_t_max = 1; 0 < time_t_max; time_t_max *= 2)
- continue;
- time_t_max--;
- if ((time_t) -1 < 0)
- for (time_t_min = -1; (time_t) (time_t_min * 2) < 0; time_t_min *= 2)
- continue;
- delta = time_t_max / 997; /* a suitable prime number */
- for (i = 0; i < N_STRINGS; i++)
- {
- if (tz_strings[i])
- setenv ("TZ", tz_strings[i], 1);
-
- for (t = 0; t <= time_t_max - delta; t += delta)
- mktime_test (t);
- mktime_test ((time_t) 1);
- mktime_test ((time_t) (60 * 60));
- mktime_test ((time_t) (60 * 60 * 24));
-
- for (j = 1; 0 < j; j *= 2)
- bigtime_test (j);
- bigtime_test (j - 1);
- }
- irix_6_4_bug ();
- spring_forward_gap ();
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/time/tst-mktime3.c b/test/time/tst-mktime3.c
deleted file mode 100644
index 60d0e0b..0000000
--- a/test/time/tst-mktime3.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Test program for mktime bugs with out-of-range tm_sec values. */
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <time.h>
-
-struct tm tests[] =
-{
- { .tm_sec = -1, .tm_mday = 1, .tm_year = 104 },
- { .tm_sec = 65, .tm_min = 59, .tm_hour = 23, .tm_mday = 31,
- .tm_mon = 11, .tm_year = 101 }
-};
-struct tm expected[] =
-{
- { .tm_sec = 59, .tm_min = 59, .tm_hour = 23, .tm_mday = 31,
- .tm_mon = 11, .tm_year = 103, .tm_wday = 3, .tm_yday = 364 },
- { .tm_sec = 5, .tm_mday = 1, .tm_year = 102, .tm_wday = 2 }
-};
-
-int
-main (void)
-{
- setenv ("TZ", "UTC", 1);
- int i;
- for (i = 0; i < sizeof (tests) / sizeof (tests[0]); ++i)
- {
- if (mktime (&tests[i]) < 0)
- {
- printf ("mktime %d failed\n", i);
- return 1;
- }
-#define CHECK(name) \
- if (tests[i].name != expected[i].name) \
- { \
- printf ("test %d " #name " got %d expected %d\n", \
- i, tests[i].name, expected[i].name); \
- return 1; \
- }
- CHECK (tm_sec)
- CHECK (tm_min)
- CHECK (tm_hour)
- CHECK (tm_mday)
- CHECK (tm_mon)
- CHECK (tm_year)
- CHECK (tm_wday)
- CHECK (tm_yday)
- CHECK (tm_isdst)
- }
- return 0;
-}
diff --git a/test/time/tst-posixtz.c b/test/time/tst-posixtz.c
deleted file mode 100644
index ccba63e..0000000
--- a/test/time/tst-posixtz.c
+++ /dev/null
@@ -1,88 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-
-struct
-{
- time_t when;
- const char *tz;
- const char *result;
-} tests[] =
-{
- { 909312849L, "AEST-10AEDST-11,M10.5.0,M3.5.0",
- "1998/10/25 21:54:09 dst=1 zone=AEDST" },
- { 924864849L, "AEST-10AEDST-11,M10.5.0,M3.5.0",
- "1999/04/23 20:54:09 dst=0 zone=AEST" },
- { 919973892L, "AEST-10AEDST-11,M10.5.0,M3.5.0",
- "1999/02/26 07:18:12 dst=1 zone=AEDST" },
- { 909312849L, "EST+5EDT,M4.1.0/2,M10.5.0/2",
- "1998/10/25 05:54:09 dst=0 zone=EST" },
- { 924864849L, "EST+5EDT,M4.1.0/2,M10.5.0/2",
- "1999/04/23 06:54:09 dst=1 zone=EDT" },
- { 919973892L, "EST+5EDT,M4.1.0/2,M10.5.0/2",
- "1999/02/25 15:18:12 dst=0 zone=EST" },
-};
-
-int
-main (void)
-{
- int result = 0;
- size_t cnt;
-
- for (cnt = 0; cnt < sizeof (tests) / sizeof (tests[0]); ++cnt)
- {
- char buf[100];
- struct tm *tmp;
-
- printf ("TZ = \"%s\", time = %ld => ", tests[cnt].tz,
tests[cnt].when);
- fflush (stdout);
-
- setenv ("TZ", tests[cnt].tz, 1);
-
- tmp = localtime (&tests[cnt].when);
-
- snprintf (buf, sizeof (buf),
- "%04d/%02d/%02d %02d:%02d:%02d dst=%d zone=%s",
- tmp->tm_year + 1900, tmp->tm_mon + 1, tmp->tm_mday,
- tmp->tm_hour, tmp->tm_min, tmp->tm_sec, tmp->tm_isdst,
- tzname[tmp->tm_isdst ? 1 : 0]);
-
- fputs (buf, stdout);
-
- if (strcmp (buf, tests[cnt].result) == 0)
- puts (", OK");
- else
- {
- result = 1;
- puts (", FAIL");
- }
- }
-
- setenv ("TZ", "Universal", 1);
- localtime (&tests[0].when);
- printf ("TZ = \"Universal\" daylight %d tzname = { \"%s\",
\"%s\" }",
- daylight, tzname[0], tzname[1]);
- if (! daylight)
- puts (", OK");
- else
- {
- result = 1;
- puts (", FAIL");
- }
-
- setenv ("TZ", "AEST-10AEDST-11,M10.5.0,M3.5.0", 1);
- tzset ();
- printf ("TZ = \"AEST-10AEDST-11,M10.5.0,M3.5.0\" daylight %d"
- " tzname = { \"%s\", \"%s\" }", daylight, tzname[0],
tzname[1]);
- if (daylight
- && strcmp (tzname[0], "AEST") == 0 && strcmp (tzname[1],
"AEDST") == 0)
- puts (", OK");
- else
- {
- result = 1;
- puts (", FAIL");
- }
-
- return result;
-}
diff --git a/test/time/tst-strftime.c b/test/time/tst-strftime.c
deleted file mode 100644
index 374fba4..0000000
--- a/test/time/tst-strftime.c
+++ /dev/null
@@ -1,111 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-
-
-static struct
-{
- const char *fmt;
- size_t min;
- size_t max;
-} tests[] =
- {
- { "%2000Y", 2000, 4000 },
- { "%02000Y", 2000, 4000 },
- { "%_2000Y", 2000, 4000 },
- { "%-2000Y", 2000, 4000 },
- };
-#define ntests (sizeof (tests) / sizeof (tests[0]))
-
-
-static int
-do_test (void)
-{
- size_t cnt;
- int result = 0;
-
- time_t tnow = time (NULL);
- struct tm *now = localtime (&tnow);
-
- for (cnt = 0; cnt < ntests; ++cnt)
- {
- size_t size = 0;
- int res;
- char *buf = NULL;
-
- do
- {
- size += 500;
- buf = (char *) realloc (buf, size);
- if (buf == NULL)
- {
- puts ("out of memory");
- exit (1);
- }
-
- res = strftime (buf, size, tests[cnt].fmt, now);
- if (res != 0)
- break;
- }
- while (size < tests[cnt].max);
-
- if (res == 0)
- {
- printf ("%Zu: %s: res == 0 despite size == %Zu\n",
- cnt, tests[cnt].fmt, size);
- result = 1;
- }
- else if (size < tests[cnt].min)
- {
- printf ("%Zu: %s: size == %Zu was enough\n",
- cnt, tests[cnt].fmt, size);
- result = 1;
- }
- else
- printf ("%Zu: %s: size == %Zu: OK\n", cnt, tests[cnt].fmt, size);
-
- free (buf);
- }
-
- struct tm ttm =
- {
- /* Initialize the fields which are needed in the tests. */
- .tm_mday = 1,
- .tm_hour = 2
- };
- const struct
- {
- const char *fmt;
- const char *exp;
- size_t n;
- } ftests[] =
- {
- { "%-e", "1", 1 },
- { "%-k", "2", 1 },
- { "%-l", "2", 1 },
- };
-#define nftests (sizeof (ftests) / sizeof (ftests[0]))
- for (cnt = 0; cnt < nftests; ++cnt)
- {
- char buf[100];
- size_t r = strftime (buf, sizeof (buf), ftests[cnt].fmt, &ttm);
- if (r != ftests[cnt].n)
- {
- printf ("strftime(\"%s\") returned %zu not %zu\n",
- ftests[cnt].fmt, r, ftests[cnt].n);
- result = 1;
- }
- if (strcmp (buf, ftests[cnt].exp) != 0)
- {
- printf ("strftime(\"%s\") produced \"%s\" not
\"%s\"\n",
- ftests[cnt].fmt, buf, ftests[cnt].exp);
- result = 1;
- }
- }
-
- return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/time/tst-strptime.c b/test/time/tst-strptime.c
deleted file mode 100644
index 32001d4..0000000
--- a/test/time/tst-strptime.c
+++ /dev/null
@@ -1,192 +0,0 @@
-/* Test for strptime.
- Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)cygnus.com>om>, 1998.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <locale.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-
-
-static const struct
-{
- const char *locale;
- const char *input;
- const char *format;
- int wday;
- int yday;
- int mon;
- int mday;
-} day_tests[] =
-{
- { "C", "2000-01-01", "%Y-%m-%d", 6, 0, 0, 1 },
- { "C", "03/03/00", "%D", 5, 62, 2, 3 },
- { "C", "9/9/99", "%x", 4, 251, 8, 9 },
- { "C", "19990502123412", "%Y%m%d%H%M%S", 0, 121, 4, 2 },
- { "C", "2001 20 Mon", "%Y %U %a", 1, 140, 4, 21 },
- { "C", "2001 21 Mon", "%Y %W %a", 1, 140, 4, 21 },
- { "ja_JP.EUC-JP", "2000-01-01 08:12:21 AM", "%Y-%m-%d %I:%M:%S
%p",
- 6, 0, 0, 1 },
- { "en_US.ISO-8859-1", "2000-01-01 08:12:21 PM", "%Y-%m-%d
%I:%M:%S %p",
- 6, 0, 0, 1 },
- { "ja_JP.EUC-JP", "2001 20 \xb7\xee", "%Y %U %a", 1, 140,
4, 21 },
- { "ja_JP.EUC-JP", "2001 21 \xb7\xee", "%Y %W %a", 1, 140,
4, 21 },
-};
-
-
-static const struct
-{
- const char *input;
- const char *format;
- const char *output;
- int wday;
- int yday;
-} tm_tests [] =
-{
- {"17410105012000", "%H%M%S%d%m%Y", "2000-01-05 17:41:01",
3, 4}
-};
-
-
-
-static int
-test_tm (void)
-{
- struct tm tm;
- size_t i;
- int result = 0;
- char buf[100];
-
- for (i = 0; i < sizeof (tm_tests) / sizeof (tm_tests[0]); ++i)
- {
- memset (&tm, '\0', sizeof (tm));
-
- char *ret = strptime (tm_tests[i].input, tm_tests[i].format, &tm);
- if (ret == NULL)
- {
- printf ("strptime returned NULL for `%s'\n", tm_tests[i].input);
- result = 1;
- continue;
- }
- else if (*ret != '\0')
- {
- printf ("not all of `%s' read\n", tm_tests[i].input);
- result = 1;
- }
- strftime (buf, sizeof (buf), "%F %T", &tm);
- printf ("strptime (\"%s\", \"%s\", ...)\n"
- "\tshould be: %s, wday = %d, yday = %3d\n"
- "\t is: %s, wday = %d, yday = %3d\n",
- tm_tests[i].input, tm_tests[i].format,
- tm_tests[i].output,
- tm_tests[i].wday, tm_tests[i].yday,
- buf, tm.tm_wday, tm.tm_yday);
-
- if (strcmp (buf, tm_tests[i].output) != 0)
- {
- printf ("Time and date are not correct.\n");
- result = 1;
- }
- if (tm.tm_wday != tm_tests[i].wday)
- {
- printf ("weekday for `%s' incorrect: %d instead of %d\n",
- tm_tests[i].input, tm.tm_wday, tm_tests[i].wday);
- result = 1;
- }
- if (tm.tm_yday != tm_tests[i].yday)
- {
- printf ("yearday for `%s' incorrect: %d instead of %d\n",
- tm_tests[i].input, tm.tm_yday, tm_tests[i].yday);
- result = 1;
- }
- }
-
- return result;
-}
-
-
-int
-main (int argc, char *argv[])
-{
- struct tm tm;
- size_t i;
- int result = 0;
-
- for (i = 0; i < sizeof (day_tests) / sizeof (day_tests[0]); ++i)
- {
- memset (&tm, '\0', sizeof (tm));
-
- if (setlocale (LC_ALL, day_tests[i].locale) == NULL)
- {
- printf ("cannot set locale %s: %m\n", day_tests[i].locale);
- exit (EXIT_FAILURE);
- }
-
- char *ret = strptime (day_tests[i].input, day_tests[i].format, &tm);
- if (ret == NULL)
- {
- printf ("strptime returned NULL for `%s'\n", day_tests[i].input);
- result = 1;
- continue;
- }
- else if (*ret != '\0')
- {
- printf ("not all of `%s' read\n", day_tests[i].input);
- result = 1;
- }
-
- printf ("strptime (\"%s\", \"%s\", ...)\n"
- "\tshould be: wday = %d, yday = %3d, mon = %2d, mday = %2d\n"
- "\t is: wday = %d, yday = %3d, mon = %2d, mday = %2d\n",
- day_tests[i].input, day_tests[i].format,
- day_tests[i].wday, day_tests[i].yday,
- day_tests[i].mon, day_tests[i].mday,
- tm.tm_wday, tm.tm_yday, tm.tm_mon, tm.tm_mday);
-
- if (tm.tm_wday != day_tests[i].wday)
- {
- printf ("weekday for `%s' incorrect: %d instead of %d\n",
- day_tests[i].input, tm.tm_wday, day_tests[i].wday);
- result = 1;
- }
- if (tm.tm_yday != day_tests[i].yday)
- {
- printf ("yearday for `%s' incorrect: %d instead of %d\n",
- day_tests[i].input, tm.tm_yday, day_tests[i].yday);
- result = 1;
- }
- if (tm.tm_mon != day_tests[i].mon)
- {
- printf ("month for `%s' incorrect: %d instead of %d\n",
- day_tests[i].input, tm.tm_mon, day_tests[i].mon);
- result = 1;
- }
- if (tm.tm_mday != day_tests[i].mday)
- {
- printf ("monthday for `%s' incorrect: %d instead of %d\n",
- day_tests[i].input, tm.tm_mday, day_tests[i].mday);
- result = 1;
- }
- }
-
- setlocale (LC_ALL, "C");
-
- result |= test_tm ();
-
- return result;
-}
diff --git a/test/time/tst-strptime2.c b/test/time/tst-strptime2.c
deleted file mode 100644
index 73552bb..0000000
--- a/test/time/tst-strptime2.c
+++ /dev/null
@@ -1,59 +0,0 @@
-#include <limits.h>
-#include <stdio.h>
-#include <time.h>
-
-
-static const struct
-{
- const char *fmt;
- long int gmtoff;
-} tests[] =
- {
- { "1113472456 +1000", 36000 },
- { "1113472456 -1000", -36000 },
- { "1113472456 +10", 36000 },
- { "1113472456 -10", -36000 },
- { "1113472456 +1030", 37800 },
- { "1113472456 -1030", -37800 },
- { "1113472456 +0030", 1800 },
- { "1113472456 -0030", -1800 },
- { "1113472456 -1330", LONG_MAX },
- { "1113472456 +1330", LONG_MAX },
- { "1113472456 -1060", LONG_MAX },
- { "1113472456 +1060", LONG_MAX },
- { "1113472456 1030", LONG_MAX },
- };
-#define ntests (sizeof (tests) / sizeof (tests[0]))
-
-
-int
-main (void)
-{
- int result = 0;
-
- for (int i = 0; i < ntests; ++i)
- {
- struct tm tm;
-
- if (strptime (tests[i].fmt, "%s %z", &tm) == NULL)
- {
- if (tests[i].gmtoff != LONG_MAX)
- {
- printf ("round %d: strptime unexpectedly failed\n", i);
- result = 1;
- }
- continue;
- }
-
- if (tm.tm_gmtoff != tests[i].gmtoff)
- {
- printf ("round %d: tm_gmtoff is %ld\n", i, (long int) tm.tm_gmtoff);
- result = 1;
- }
- }
-
- if (result == 0)
- puts ("all OK");
-
- return 0;
-}
diff --git a/test/time/tst-timerfd.c b/test/time/tst-timerfd.c
deleted file mode 100644
index 5562ed7..0000000
--- a/test/time/tst-timerfd.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* vi: set sw=4 ts=4 sts=4: */
-/*
- * timerfd test for uClibc
- * Copyright (C) 2012 by Kevin Cernekee <cernekee(a)gmail.com>
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <errno.h>
-#include <error.h>
-#include <signal.h>
-#include <stdint.h>
-#include <inttypes.h>
-#include <time.h>
-#include <sys/timerfd.h>
-#include <sys/fcntl.h>
-
-static int
-do_test(void)
-{
- int fd, ret, result = 0;
- struct itimerspec s;
- uint64_t val;
- time_t start, now;
-
- fd = timerfd_create(CLOCK_MONOTONIC, TFD_NONBLOCK);
- if (fd < 0) {
- perror("timerfd() failed");
- result = 1;
- }
- s.it_value.tv_sec = 1;
- s.it_value.tv_nsec = 0;
- s.it_interval.tv_sec = 0;
- s.it_interval.tv_nsec = 0;
- timerfd_settime(fd, 0, &s, NULL);
- start = time(NULL);
-
- /* this should return immediately with EAGAIN due to TFD_NONBLOCK */
- ret = read(fd, &val, sizeof(val));
- if (ret != -1 || errno != EAGAIN) {
- error(0, 0, "first read() returned %d", ret);
- result = 1;
- }
-
- /* let the timer expire, then check it again */
- do {
- now = time(NULL);
- } while (now - start < 2);
-
- ret = read(fd, &val, sizeof(val));
- if (ret != sizeof(val)) {
- error(0, 0, "second read() returned %d", ret);
- result = 1;
- }
-
- /* we are expecting a single expiration, since it_interval is 0 */
- if (val != 1) {
- error(0, 0, "wrong number of expirations: %" PRIx64, val);
- result = 1;
- }
-
- return result;
-}
-
-#define TIMEOUT 5
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/time/tst-timezone.c b/test/time/tst-timezone.c
deleted file mode 100644
index e89be0b..0000000
--- a/test/time/tst-timezone.c
+++ /dev/null
@@ -1,169 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000, 2005 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Andreas Jaeger <aj(a)suse.de>de>, 1998.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <time.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-int failed = 0;
-
-struct test_times
-{
- const char *name;
- int daylight;
- int timezone;
- const char *tzname[2];
-};
-
-static const struct test_times tests[] =
-{
- { "Europe/Amsterdam", 1, -3600, { "CET", "CEST" }},
- { "Europe/Berlin", 1, -3600, { "CET", "CEST" }},
- { "Europe/London", 1, 0, { "GMT", "BST" }},
- { "Universal", 0, 0, {"UTC", "UTC" }},
- { "Australia/Melbourne", 1, -36000, { "EST", "EST" }},
- { "America/Sao_Paulo", 1, 10800, {"BRT", "BRST" }},
- { "America/Chicago", 1, 21600, {"CST", "CDT" }},
- { "America/Indiana/Indianapolis", 1, 18000, {"EST", "EDT"
}},
- { "America/Los_Angeles", 1, 28800, {"PST", "PDT" }},
- { "Asia/Tokyo", 1, -32400, {"JST", "JDT" }},
- { "Pacific/Auckland", 1, -43200, { "NZST", "NZDT" }},
- { NULL, 0, 0 }
-};
-
-/* This string will be used for `putenv' calls. */
-char envstring[100];
-
-static void
-print_tzvars (void)
-{
- printf ("tzname[0]: %s\n", tzname[0]);
- printf ("tzname[1]: %s\n", tzname[1]);
- printf ("daylight: %d\n", daylight);
- printf ("timezone: %ld\n", timezone);
-}
-
-
-static void
-check_tzvars (const char *name, int dayl, int timez, const char *const tznam[])
-{
- int i;
-
- if (daylight != dayl)
- {
- printf ("*** Timezone: %s, daylight is: %d but should be: %d\n",
- name, daylight, dayl);
- ++failed;
- }
- if (timezone != timez)
- {
- printf ("*** Timezone: %s, timezone is: %ld but should be: %d\n",
- name, timezone, timez);
- ++failed;
- }
- for (i = 0; i <= 1; ++i)
- if (strcmp (tzname[i], tznam[i]) != 0)
- {
- printf ("*** Timezone: %s, tzname[%d] is: %s but should be: %s\n",
- name, i, tzname[i], tznam[i]);
- ++failed;
- }
-}
-
-
-int
-main (int argc, char ** argv)
-{
- time_t t;
- const struct test_times *pt;
- char buf[BUFSIZ];
-
- /* This should be: Fri May 15 01:02:16 1998 (UTC). */
- t = 895194136;
- printf ("We use this date: %s\n", asctime (gmtime (&t)));
-
- for (pt = tests; pt->name != NULL; ++pt)
- {
- /* Start with a known state */
- printf ("Checking timezone %s\n", pt->name);
- sprintf (buf, "TZ=%s", pt->name);
- if (putenv (buf))
- {
- puts ("putenv failed.");
- failed = 1;
- }
- tzset ();
- print_tzvars ();
- check_tzvars (pt->name, pt->daylight, pt->timezone, pt->tzname);
-
- /* calling localtime shouldn't make a difference */
- localtime (&t);
- print_tzvars ();
- check_tzvars (pt->name, pt->daylight, pt->timezone, pt->tzname);
- }
-
- /* From a post of Scott Harrington <seh4(a)ix.netcom.com> to the timezone
- mailing list. */
- {
- struct tm tmBuf = {0, 0, 0, 10, 3, 98, 0, 0, -1};
- char buf[200];
- strcpy (envstring, "TZ=Europe/London");
- putenv (envstring);
- t = mktime (&tmBuf);
- snprintf (buf, sizeof (buf), "TZ=%s %ld %d %d %d %d %d %d %d %d %d",
- getenv ("TZ"), t,
- tmBuf.tm_sec, tmBuf.tm_min, tmBuf.tm_hour,
- tmBuf.tm_mday, tmBuf.tm_mon, tmBuf.tm_year,
- tmBuf.tm_wday, tmBuf.tm_yday, tmBuf.tm_isdst);
- fputs (buf, stdout);
- puts (" should be");
- puts ("TZ=Europe/London 892162800 0 0 0 10 3 98 5 99 1");
- if (strcmp (buf, "TZ=Europe/London 892162800 0 0 0 10 3 98 5 99 1") != 0)
- {
- failed = 1;
- fputs (" FAILED ***", stdout);
- }
- }
-
- printf("\n");
-
- {
- struct tm tmBuf = {0, 0, 0, 10, 3, 98, 0, 0, -1};
- char buf[200];
- strcpy (envstring, "TZ=GMT");
- /* No putenv call needed! */
- t = mktime (&tmBuf);
- snprintf (buf, sizeof (buf), "TZ=%s %ld %d %d %d %d %d %d %d %d %d",
- getenv ("TZ"), t,
- tmBuf.tm_sec, tmBuf.tm_min, tmBuf.tm_hour,
- tmBuf.tm_mday, tmBuf.tm_mon, tmBuf.tm_year,
- tmBuf.tm_wday, tmBuf.tm_yday, tmBuf.tm_isdst);
- fputs (buf, stdout);
- puts (" should be");
- puts ("TZ=GMT 892166400 0 0 0 10 3 98 5 99 0");
- if (strcmp (buf, "TZ=GMT 892166400 0 0 0 10 3 98 5 99 0") != 0)
- {
- failed = 1;
- fputs (" FAILED ***", stdout);
- }
- }
-
- return failed ? EXIT_FAILURE : EXIT_SUCCESS;
-}
diff --git a/test/time/tst_wcsftime.c b/test/time/tst_wcsftime.c
deleted file mode 100644
index 5631d95..0000000
--- a/test/time/tst_wcsftime.c
+++ /dev/null
@@ -1,65 +0,0 @@
-#include <stdio.h>
-#include <time.h>
-#include <features.h>
-#include <wchar.h>
-#include <locale.h>
-
-#define NUM_OF_DATES 7
-#define NUM_OF_LOCALES 3
-#define BUF_SIZE 256
-
-int
-main (void)
-{
- wchar_t buf[BUF_SIZE];
- struct tm *tp;
- time_t time_list[NUM_OF_DATES] = {
- 500, 68200000, 694223999,
- 694224000, 704900000, 705000000,
- 705900000
- };
- char *locale_list[NUM_OF_LOCALES] = {
- "C",
- "fr_FR.ISO-8859-1",
- "ja_JP.UTF-8"
- };
- int result = 0, ddd, lll;
- size_t n;
-
- for (lll = 0; lll < NUM_OF_LOCALES; lll++) {
- printf ("\nUsing locale: %s\n", locale_list[lll]);
- char* set = setlocale(LC_ALL, locale_list[lll]);
- if (set == NULL) {
- printf ("FAILED!\n\n");
- continue;
- } else
- printf ("\n");
- for (ddd = 0; ddd < NUM_OF_DATES; ddd++) {
- tp = localtime(&time_list[ddd]);
- printf ("%ld corresponds to ", time_list[ddd]);
-
- n = wcsftime (buf, sizeof (buf) / sizeof (buf[0]),
- L"%H:%M:%S %Y-%m-%d%n", tp);
- if (n != 21) {
- result = 1;
- printf ("FAILED!\n");
- }
-
- printf ("%ls", buf);
-
- wcsftime (buf, sizeof (buf) / sizeof (buf[0]),
- L"%tor, as %%D %%T: %D %T%n", tp);
- printf ("%ls", buf);
-
- wcsftime (buf, sizeof (buf) / sizeof (buf[0]), L"%A (%a)%n", tp);
- printf ("The weekday was %ls", buf);
-
- wcsftime (buf, sizeof (buf) / sizeof (buf[0]), L"%B (%b) %Y%n", tp);
- /* glibc bug? forgets aigu from french february février
- * See s/printf (/wprintf (L/g */
- //wprintf (L"Month was %ls", buf);
- printf ("Month was %ls", buf);
- }
- }
- return result;
-}
diff --git a/test/tls/Makefile b/test/tls/Makefile
deleted file mode 100644
index 607fec2..0000000
--- a/test/tls/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc TLS tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/tls/Makefile.in b/test/tls/Makefile.in
deleted file mode 100644
index 9f10378..0000000
--- a/test/tls/Makefile.in
+++ /dev/null
@@ -1,161 +0,0 @@
-# uClibc TLS tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-TESTS := tst-tls1 tst-tls2 tst-tls3 tst-tls4 tst-tls5 tst-tls6 tst-tls7 \
- tst-tls8 tst-tls9 tst-tls10 tst-tls11 tst-tls12 tst-tls13 \
- tst-tls14 tst-tls15 tst-tls16 tst-tls17 tst-tls18 tst-tls-at-ctor \
- tst-tls1-static tst-tls2-static tst-tls9-static
-TESTS_DISABLED := tst-tls1-static tst-tls2-static tst-tls9-static
-
-# test always fails for every architecture,
-# guessing some unimplemented check or feature
-TESTS_DISABLED += tst-tls16
-
-#all these tests require shared libraries
-ifeq ($(HAVE_SHARED),)
-TESTS_DISABLED := $(TESTS)
-endif
-
-# All these tests need tls.h, which is not installed with glibc
-GLIBC_TESTS_DISABLED := $(addsuffix _glibc,$(filter-out $(TESTS_DISABLED),$(TESTS)))
-
-
-PTDIR := $(top_builddir)libpthread/nptl
-SYSDEPS_DIR := $(top_srcdir)libc/sysdeps
-
-EXTRA_CFLAGS := -DNOT_IN_libc=1 \
- -std=gnu99 -I. \
- -I$(SYSDEPS_DIR)/linux \
- -I$(SYSDEPS_DIR)/linux/$(TARGET_ARCH) \
- -I$(PTDIR) \
- -I$(PTDIR)/sysdeps/unix/sysv/linux/$(TARGET_ARCH) \
- -I$(PTDIR)/sysdeps/$(TARGET_ARCH) \
- -I$(PTDIR)/sysdeps/unix/sysv/linux \
- -I$(PTDIR)/sysdeps/pthread \
- -I$(PTDIR)/sysdeps/pthread/bits \
- -I$(PTDIR)/sysdeps/generic \
- -I$(top_builddir)ldso/include \
- -I$(top_builddir)ldso/ldso/$(TARGET_ARCH) \
- -I$(top_builddir)include \
- -include $(top_builddir)include/libc-symbols.h
-
-tlsmod17a-suffixes := 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
-tlsmod18a-suffixes := 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
-CFLAGS_tst-tlsmod1.so := -fPIC -DSHARED -shared
-CFLAGS_tst-tlsmod2.so := -fPIC -DSHARED -shared
-CFLAGS_tst-tlsmod3.so := -fPIC -DSHARED -shared
-CFLAGS_tst-tlsmod4.so := -fPIC -DSHARED -shared
-CFLAGS_tst-tlsmod5.so := -fPIC -DSHARED -shared
-CFLAGS_tst-tlsmod6.so := -fPIC -DSHARED -shared
-CFLAGS_tst-tlsmod7.so := -fPIC -DSHARED -shared
-CFLAGS_tst-tlsmod8.so := -fPIC -DSHARED -shared
-CFLAGS_tst-tlsmod9.so := -fPIC -DSHARED -shared
-CFLAGS_tst-tlsmod10.so := -fPIC -DSHARED -shared
-CFLAGS_tst-tlsmod11.so := -fPIC -DSHARED -shared
-CFLAGS_tst-tlsmod12.so := -fPIC -DSHARED -shared
-CFLAGS_tst-tlsmod13.so := -fPIC -DSHARED -shared
-CFLAGS_tst-tlsmod13a.so := -fPIC -DSHARED -shared
-CFLAGS_tst-tlsmod14a.so := -fPIC -DSHARED -shared
-CFLAGS_tst-tlsmod14b.so := -fPIC -DSHARED -shared
-CFLAGS_tst-tlsmod15a.so := -fPIC -DSHARED -shared
-CFLAGS_tst-tlsmod15b.so := -fPIC -DSHARED -shared
-CFLAGS_tst-tlsmod16a.so := -fPIC -DSHARED -shared
-CFLAGS_tst-tlsmod16b.so := -fPIC -DSHARED -shared
-CFLAGS_tst-tlsmod17a.so := -fPIC -DSHARED -shared
-CFLAGS_tst-tlsmod17b.so := -fPIC -DSHARED -shared
-CFLAGS_tst-tlsmod18a.so := -fPIC -DSHARED -shared
-CFLAGS_tst-tlsmod-at-ctor.so := -fPIC -DSHARED -shared
-
-LDFLAGS_tst-tlsmod1.so := -shared -static-libgcc -L$(top_builddir)lib
-LDFLAGS_tst-tlsmod2.so := -shared -static-libgcc -L$(top_builddir)lib
-LDFLAGS_tst-tlsmod3.so := -shared -static-libgcc -L$(top_builddir)lib \
- tst-tlsmod2.so
-LDFLAGS_tst-tlsmod4.so := -shared -static-libgcc -L$(top_builddir)lib
-LDFLAGS_tst-tlsmod5.so := -shared -static-libgcc -L$(top_builddir)lib
-LDFLAGS_tst-tlsmod6.so := -shared -static-libgcc -L$(top_builddir)lib
-LDFLAGS_tst-tlsmod7.so := -shared -static-libgcc -L$(top_builddir)lib
-LDFLAGS_tst-tlsmod8.so := -shared -static-libgcc -L$(top_builddir)lib \
- tst-tlsmod7.so
-LDFLAGS_tst-tlsmod9.so := -shared -static-libgcc -L$(top_builddir)lib \
- tst-tlsmod8.so
-LDFLAGS_tst-tlsmod10.so := -shared -static-libgcc -L$(top_builddir)lib \
- tst-tlsmod9.so
-LDFLAGS_tst-tlsmod11.so := -shared -static-libgcc -L$(top_builddir)lib
-LDFLAGS_tst-tlsmod12.so := -shared -static-libgcc -L$(top_builddir)lib \
- tst-tlsmod11.so
-LDFLAGS_tst-tlsmod13.so := -shared -static-libgcc -L$(top_builddir)lib
-LDFLAGS_tst-tlsmod13a.so := -shared -static-libgcc -L$(top_builddir)lib \
- tst-tlsmod13.so
-LDFLAGS_tst-tlsmod14a.so := -shared -static-libgcc -L$(top_builddir)lib
-LDFLAGS_tst-tlsmod14b.so := -shared -static-libgcc -L$(top_builddir)lib
-LDFLAGS_tst-tlsmod15a.so := -shared -static-libgcc -L$(top_builddir)lib
-LDFLAGS_tst-tlsmod15b.so := -shared -static-libgcc -L$(top_builddir)lib
-LDFLAGS_tst-tlsmod16a.so := -shared -static-libgcc -L$(top_builddir)lib
-LDFLAGS_tst-tlsmod16b.so := -shared -static-libgcc -L$(top_builddir)lib
-LDFLAGS_tst-tlsmod17a.so := -shared -static-libgcc -L$(top_builddir)lib
-LDFLAGS_tst-tlsmod17b.so := -shared -static-libgcc -L$(top_builddir)lib \
- $(patsubst %,tst-tlsmod17a%.so,$(tlsmod17a-suffixes))
-LDFLAGS_tst-tlsmod18a.so := -shared -static-libgcc -L$(top_builddir)lib
-LDFLAGS_tst-tlsmod-at-ctor.so := -shared -static-libgcc -L$(top_builddir)lib
-
-LDFLAGS_tst-tls3 := tst-tlsmod1.so tst-tlsmod4.so
-LDFLAGS_tst-tls4 := -ldl
-LDFLAGS_tst-tls5 := -ldl
-LDFLAGS_tst-tls6 := -ldl
-LDFLAGS_tst-tls7 := -ldl
-LDFLAGS_tst-tls8 := -ldl
-LDFLAGS_tst-tls9 := -ldl
-LDFLAGS_tst-tls10 := -Wl,-rpath-link=. tst-tlsmod8.so tst-tlsmod7.so
-LDFLAGS_tst-tls11 := -Wl,-rpath-link=. tst-tlsmod9.so tst-tlsmod10.so
-LDFLAGS_tst-tls12 := -Wl,-rpath-link=. tst-tlsmod11.so tst-tlsmod12.so
-LDFLAGS_tst-tls13 := -ldl -Wl,-rpath-link=.
-LDFLAGS_tst-tls14 := -ldl -Wl,-rpath-link=. tst-tlsmod14a.so
-LDFLAGS_tst-tls15 := -ldl -Wl,-rpath-link=.
-LDFLAGS_tst-tls16 := -ldl -Wl,-rpath-link=.
-LDFLAGS_tst-tls17 := -ldl -Wl,-rpath-link=.
-LDFLAGS_tst-tls18 := -ldl -Wl,-rpath-link=.
-LDFLAGS_tst-tls-at-ctor := tst-tlsmod-at-ctor.so
-
-tst-tlsmod3.so: tst-tlsmod2.so
-tst-tlsmod4.so: tst-tlsmod3.so
-tst-tlsmod6.so: tst-tlsmod5.so
-tst-tlsmod8.so: tst-tlsmod7.so
-tst-tlsmod9.so: tst-tlsmod8.so
-tst-tlsmod10.so: tst-tlsmod9.so
-tst-tlsmod12.so: tst-tlsmod11.so
-tst-tlsmod13a.so: tst-tlsmod13.so
-tst-tlsmod14b.so: tst-tlsmod14a.so
-tst-tlsmod16b.so: tst-tlsmod16a.so
-
-tst-tls3: tst-tlsmod1.so tst-tlsmod4.so
-tst-tls4: tst-tlsmod2.so
-tst-tls5: tst-tlsmod2.so
-tst-tls6: tst-tlsmod2.so
-tst-tls7: tst-tlsmod2.so tst-tlsmod3.so
-tst-tls8: tst-tlsmod2.so tst-tlsmod3.so tst-tlsmod4.so
-tst-tls9: tst-tlsmod5.so tst-tlsmod6.so
-tst-tls10: tst-tlsmod7.so tst-tlsmod8.so
-tst-tls11: tst-tlsmod9.so tst-tlsmod10.so
-tst-tls12: tst-tlsmod11.so tst-tlsmod12.so
-tst-tls13: tst-tlsmod13.so tst-tlsmod13a.so
-tst-tls14: tst-tlsmod14a.so tst-tlsmod14b.so
-tst-tls15: tst-tlsmod15b.so
-tst-tls16: tst-tlsmod16a.so tst-tlsmod16b.so
-tst-tls17: tst-tlsmod17b.so
-tst-tlsmod17b.so: $(patsubst %,tst-tlsmod17a%.so,$(tlsmod17a-suffixes))
-tst-tlsmod17a%.so: tst-tlsmod17a.c
- $(Q)$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_tst-tlsmod17a.so) $< -o $@ \
- -DN=$* -Wl,-soname,$@ $(LDFLAGS) $(EXTRA_LIBS) \
- $(LDFLAGS_tst-tlsmod17a.so)
-tst-tls18: $(patsubst %,tst-tlsmod18a%.so,$(tlsmod18a-suffixes))
-tst-tlsmod18a%.so: tst-tlsmod18a.c
- $(Q)$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_tst-tlsmod18a.so) $< -o $@ \
- -DN=$* -Wl,-soname,$@ $(LDFLAGS) $(EXTRA_LIBS) \
- $(LDFLAGS_tst-tlsmod18a.so)
-tst-tls-at-ctor: tst-tlsmod-at-ctor.so
-
-ifeq ($(TARGET_ARCH),mips)
-RET_tst-tls15 := 1
-endif
-
-WRAPPER := env LD_LIBRARY_PATH="$$PWD:.:$(LD_LIBRARY_PATH)"
diff --git a/test/tls/README b/test/tls/README
deleted file mode 100644
index 06c9eb7..0000000
--- a/test/tls/README
+++ /dev/null
@@ -1,8 +0,0 @@
-These tests were imported from 'glibc/elf' and are responsible for testing
-the TLS functionality of the dynamic loader. The file 'tls-macros-mips.h'
-is a copy of 'glibc/sysdeps/mips/tls-macros.h'. Dependency and link orders
-are critical and should NOT be changed. Even if you think you know what
-you are doing, do not touch the Makefile without posting to the uClibc
-development mailing list.
-
--Steve <sjhill(a)uclibc.org>
diff --git a/test/tls/tls-macros-alpha.h b/test/tls/tls-macros-alpha.h
deleted file mode 100644
index 78820ec..0000000
--- a/test/tls/tls-macros-alpha.h
+++ /dev/null
@@ -1,25 +0,0 @@
-register void *__gp __asm__("$29");
-
-# define TLS_LE(x) \
- ({ int *__l; \
- __asm__ ("call_pal 158\n\tlda $0," #x "($0)\t\t!tprel" :
"=v"(__l)); \
- __l; })
-
-# define TLS_IE(x) \
- ({ char *__tp; unsigned long __o; \
- __asm__ ("call_pal 158\n\tldq %1," #x "($gp)\t\t!gottprel"
\
- : "=v"(__tp), "=r"(__o) : "r"(__gp)); \
- (int *)(__tp + __o); })
-
-# define TLS_LD(x) \
- ({ extern void *__tls_get_addr(void *); int *__l; void *__i; \
- __asm__ ("lda %0," #x "($gp)\t\t!tlsldm" : "=r" (__i)
: "r"(__gp)); \
- __i = __tls_get_addr(__i); \
- __asm__ ("lda %0, " #x "(%1)\t\t!dtprel" : "=r"(__l) :
"r"(__i)); \
- __l; })
-
-# define TLS_GD(x) \
- ({ extern void *__tls_get_addr(void *); void *__i; \
- __asm__ ("lda %0," #x "($gp)\t\t!tlsgd" : "=r" (__i) :
"r"(__gp)); \
- (int *) __tls_get_addr(__i); })
-
diff --git a/test/tls/tls-macros-arc.h b/test/tls/tls-macros-arc.h
deleted file mode 100644
index 4b2d6f8..0000000
--- a/test/tls/tls-macros-arc.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* For now */
-#define TLS_LD(x) TLS_IE(x)
-
-#define TLS_GD(x) \
- ({ int *__result; \
- __asm__ ("add r0, pcl, @" #x "@tlsgd \n" \
- ".tls_gd_ld " #x "`bl __tls_get_addr@plt \n" \
- "mov %0, r0 \n" \
- : "=&r" (__result) \
-
::"r0","r1","r2","r3","r4","r5","r6","r7", \
- "r8","r9","r10","r11","r12"); \
- __result; })
-
-#define TLS_LE(x) \
- ({ int *__result; \
- void *tp = __builtin_thread_pointer(); \
- __asm__ ("add %0, %1, @" #x "@tpoff \n" \
- : "=r" (__result) : "r"(tp)); \
- __result; })
-
-#define TLS_IE(x) \
- ({ int *__result; \
- void *tp = __builtin_thread_pointer(); \
- __asm__ ("ld %0, [pcl, @" #x "@tlsie] \n" \
- "add %0, %1, %0 \n" \
- : "=&r" (__result) : "r" (tp)); \
- __result; })
-
diff --git a/test/tls/tls-macros-arm.h b/test/tls/tls-macros-arm.h
deleted file mode 100644
index 13d0f97..0000000
--- a/test/tls/tls-macros-arm.h
+++ /dev/null
@@ -1,51 +0,0 @@
-#define TLS_LE(x) \
- ({ int *__result; \
- void *tp = __builtin_thread_pointer (); \
- __asm__ ("ldr %0, 1f; " \
- "add %0, %1, %0; " \
- "b 2f; " \
- "1: .word " #x "(tpoff); " \
- "2: " \
- : "=&r" (__result) : "r" (tp)); \
- __result; })
-
-#define TLS_IE(x) \
- ({ int *__result; \
- void *tp = __builtin_thread_pointer (); \
- __asm__ ("ldr %0, 1f; " \
- "3: ldr %0, [pc, %0];" \
- "add %0, %1, %0; " \
- "b 2f; " \
- "1: .word " #x "(gottpoff) + (. - 3b - 8); " \
- "2: " \
- : "=&r" (__result) : "r" (tp)); \
- __result; })
-
-#define TLS_LD(x) \
- ({ char *__result; \
- int __offset; \
- extern void *__tls_get_addr (void *); \
- __asm__ ("ldr %0, 2f; " \
- "1: add %0, pc, %0; " \
- "b 3f; " \
- "2: .word " #x "(tlsldm) + (. - 1b - 8); " \
- "3: " \
- : "=r" (__result)); \
- __result = (char *)__tls_get_addr (__result); \
- __asm__ ("ldr %0, 1f; " \
- "b 2f; " \
- "1: .word " #x "(tlsldo); " \
- "2: " \
- : "=r" (__offset)); \
- (int *) (__result + __offset); })
-
-#define TLS_GD(x) \
- ({ int *__result; \
- extern void *__tls_get_addr (void *); \
- __asm__ ("ldr %0, 2f; " \
- "1: add %0, pc, %0; " \
- "b 3f; " \
- "2: .word " #x "(tlsgd) + (. - 1b - 8); " \
- "3: " \
- : "=r" (__result)); \
- (int *)__tls_get_addr (__result); })
diff --git a/test/tls/tls-macros-i386.h b/test/tls/tls-macros-i386.h
deleted file mode 100644
index 6690753..0000000
--- a/test/tls/tls-macros-i386.h
+++ /dev/null
@@ -1,76 +0,0 @@
-#define TLS_LE(x) \
- ({ int *__l; \
- __asm__ ("movl %%gs:0,%0\n\t" \
- "subl $" #x "@tpoff,%0" \
- : "=r" (__l)); \
- __l; })
-
-#ifdef __PIC__
-# define TLS_IE(x) \
- ({ int *__l; \
- __asm__ ("movl %%gs:0,%0\n\t" \
- "subl " #x "@gottpoff(%%ebx),%0" \
- : "=r" (__l)); \
- __l; })
-#else
-# define TLS_IE(x) \
- ({ int *__l; \
- __asm__ ("call 1f\n\t" \
- ".subsection 1\n" \
- "1:\tmovl (%%esp), %%ebx\n\t" \
- "ret\n\t" \
- ".previous\n\t" \
- "addl $_GLOBAL_OFFSET_TABLE_, %%ebx\n\t" \
- "movl %%gs:0,%0\n\t" \
- "subl " #x "@gottpoff(%%ebx),%0" \
- : "=r" (__l)); \
- __l; })
-#endif
-
-#ifdef __PIC__
-# define TLS_LD(x) \
- ({ int *__l, __c, __d; \
- __asm__ ("leal " #x "@tlsldm(%%ebx),%%eax\n\t" \
- "call ___tls_get_addr@plt\n\t" \
- "leal " #x "@dtpoff(%%eax), %%eax" \
- : "=a" (__l), "=&c" (__c), "=&d" (__d));
\
- __l; })
-#else
-# define TLS_LD(x) \
- ({ int *__l, __b, __c, __d; \
- __asm__ ("call 1f\n\t" \
- ".subsection 1\n" \
- "1:\tmovl (%%esp), %%ebx\n\t" \
- "ret\n\t" \
- ".previous\n\t" \
- "addl $_GLOBAL_OFFSET_TABLE_, %%ebx\n\t" \
- "leal " #x "@tlsldm(%%ebx),%%eax\n\t" \
- "call ___tls_get_addr@plt\n\t" \
- "leal " #x "@dtpoff(%%eax), %%eax" \
- : "=a" (__l), "=&b" (__b), "=&c" (__c),
"=&d" (__d)); \
- __l; })
-#endif
-
-#ifdef __PIC__
-# define TLS_GD(x) \
- ({ int *__l, __c, __d; \
- __asm__ ("leal " #x "@tlsgd(%%ebx),%%eax\n\t" \
- "call ___tls_get_addr@plt\n\t" \
- "nop" \
- : "=a" (__l), "=&c" (__c), "=&d" (__d));
\
- __l; })
-#else
-# define TLS_GD(x) \
- ({ int *__l, __c, __d; \
- __asm__ ("call 1f\n\t" \
- ".subsection 1\n" \
- "1:\tmovl (%%esp), %%ebx\n\t" \
- "ret\n\t" \
- ".previous\n\t" \
- "addl $_GLOBAL_OFFSET_TABLE_, %%ebx\n\t" \
- "leal " #x "@tlsgd(%%ebx),%%eax\n\t" \
- "call ___tls_get_addr@plt\n\t" \
- "nop" \
- : "=a" (__l), "=&c" (__c), "=&d" (__d));
\
- __l; })
-#endif
diff --git a/test/tls/tls-macros-ia64.h b/test/tls/tls-macros-ia64.h
deleted file mode 100644
index 2584020..0000000
--- a/test/tls/tls-macros-ia64.h
+++ /dev/null
@@ -1,63 +0,0 @@
-#define TLS_LE(x) \
- ({ void *__l; \
- __asm__ ("mov r2=r13\n\t" \
- ";;\n\t" \
- "addl %0=@tprel(" #x "),r2\n\t" \
- : "=r" (__l) : : "r2" ); __l; })
-
-#define TLS_IE(x) \
- ({ void *__l; \
- register long __gp __asm__ ("gp"); \
- __asm__ (";;\n\t" \
- "addl r16=@ltoff(@tprel(" #x ")),gp\n\t" \
- ";;\n\t" \
- "ld8 r17=[r16]\n\t" \
- ";;\n\t" \
- "add %0=r13,r17\n\t" \
- ";;\n\t" \
- : "=r" (__l) : "r" (__gp) : "r16", "r17"
); __l; })
-
-#define __TLS_CALL_CLOBBERS \
- "r2", "r3", "r8", "r9", "r10",
"r11", "r14", "r15", "r16", "r17",
\
- "r18", "r19", "r20", "r21", "r22",
"r23", "r24", "r25", "r26", \
- "r27", "r28", "r29", "r30",
"r31", \
- "p6", "p7", "p8", "p9", "p10",
"p11", "p12", "p13", "p14", "p15",
\
- "f6", "f7", "f8", "f9", "f10",
"f11", "f12", "f13", "f14", "f15",
\
- "b6", "b7", \
- "out0", "out1", "out2", "out3",
"out4", "out5", "out6", "out7"
-
-#define TLS_LD(x) \
- ({ void *__l; \
- register long __gp __asm__ ("gp"); \
- __asm__ (";;\n\t" \
- "mov loc0=gp\n\t" \
- "addl r16=@ltoff(@dtpmod(" #x ")),gp\n\t" \
- "addl out1=@dtprel(" #x "),r0\n\t" \
- ";;\n\t" \
- "ld8 out0=[r16]\n\t" \
- "br.call.sptk.many b0=__tls_get_addr" \
- ";;\n\t" \
- "mov gp=loc0\n\t" \
- "mov %0=r8\n\t" \
- ";;\n\t" \
- : "=r" (__l) : "r" (__gp) : "loc0",
__TLS_CALL_CLOBBERS); \
- __l; })
-
-#define TLS_GD(x) \
- ({ void *__l; \
- register long __gp __asm__ ("gp"); \
- __asm__ (";;\n\t" \
- "mov loc0=gp\n\t" \
- "addl r16=@ltoff(@dtpmod(" #x ")),gp\n\t" \
- "addl r17=@ltoff(@dtprel(" #x ")),gp\n\t" \
- ";;\n\t" \
- "ld8 out0=[r16]\n\t" \
- "ld8 out1=[r17]\n\t" \
- "br.call.sptk.many b0=__tls_get_addr" \
- ";;\n\t" \
- "mov gp=loc0\n\t" \
- "mov %0=r8\n\t" \
- ";;\n\t" \
- : "=r" (__l) : "r" (__gp) : "loc0",
__TLS_CALL_CLOBBERS); \
- __l; })
-
diff --git a/test/tls/tls-macros-metag.h b/test/tls/tls-macros-metag.h
deleted file mode 100644
index 5533ecd..0000000
--- a/test/tls/tls-macros-metag.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#define TLS_GD(x) \
- ({ void *__result; \
- extern void *__tls_get_addr (void *); \
- __asm__ ("MOV %0, A1LbP\n\t" \
- "ADD %0, %0, #(" #x "@TLSGD)" \
- : "=d" (__result)); \
- (int *)__tls_get_addr (__result); })
-
-#define TLS_LD(x) \
- ({ void *__result; \
- extern void *__tls_get_addr (void *); \
- __asm__ ("MOV %0, A1LbP\n\t" \
- "ADD %0, %0, #(" #x "@TLSLDM)" \
- : "=d" (__result)); \
- __result = __tls_get_addr (__result); \
- __asm__ ("ADDT %0,%0,#HI(" #x "@TLSLDO)\n\t" \
- "ADD %0,%0,#LO(" #x "@TLSLDO)" \
- : "+d" (__result)); \
- __result; })
-
-#define TLS_IE(x) \
- ({ void *__result; \
- unsigned long __rel; \
- extern void *__metag_load_tp (void); \
- __asm__ ("GETD %0,[A1LbP+#(" #x "@TLSIE)]" \
- : "=d" (__rel)); \
- __result = __metag_load_tp(); \
- __result + __rel; })
-
-#define TLS_LE(x) \
- ({ void *__result; \
- extern void *__metag_load_tp (void); \
- __result = __metag_load_tp(); \
- __asm__ ("ADDT %0,%0,#HI(" #x "@TLSLE)\n\t" \
- "ADD %0,%0,#LO(" #x "@TLSLE)" \
- : "+d" (__result)); \
- __result; })
-
diff --git a/test/tls/tls-macros-mips.h b/test/tls/tls-macros-mips.h
deleted file mode 100644
index eed0938..0000000
--- a/test/tls/tls-macros-mips.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Macros to support TLS testing in times of missing compiler support. */
-
-#include <sys/cdefs.h>
-#include <sys/asm.h>
-
-#define __STRING2(X) __STRING(X)
-#define ADDU __STRING2(PTR_ADDU)
-#define ADDIU __STRING2(PTR_ADDIU)
-#define LW __STRING2(PTR_L)
-
-/* Load the GOT pointer, which may not be in $28 in a non-PIC
- (abicalls pic0) function. */
-#ifndef __PIC__
-# if _MIPS_SIM != _ABI64
-# define LOAD_GP "move %[tmp], $28\n\tla $28, __gnu_local_gp\n\t"
-# else
-# define LOAD_GP "move %[tmp], $28\n\tdla $28, __gnu_local_gp\n\t"
-# endif
-# define UNLOAD_GP "\n\tmove $28, %[tmp]"
-#else
-# define LOAD_GP
-# define UNLOAD_GP
-#endif
-
-# define TLS_GD(x) \
- ({ void *__result, *__tmp; \
- extern void *__tls_get_addr (void *); \
- __asm__ (LOAD_GP ADDIU " %0, $28, %%tlsgd(" #x ")" \
- UNLOAD_GP \
- : "=r" (__result), [tmp] "=&r" (__tmp)); \
- (int *)__tls_get_addr (__result); })
-# define TLS_LD(x) \
- ({ void *__result, *__tmp; \
- extern void *__tls_get_addr (void *); \
- __asm__ (LOAD_GP ADDIU " %0, $28, %%tlsldm(" #x ")" \
- UNLOAD_GP \
- : "=r" (__result), [tmp] "=&r" (__tmp)); \
- __result = __tls_get_addr (__result); \
- __asm__ ("lui $3,%%dtprel_hi(" #x ")\n\t" \
- "addiu $3,$3,%%dtprel_lo(" #x ")\n\t" \
- ADDU " %0,%0,$3" \
- : "+r" (__result) : : "$3"); \
- __result; })
-# define TLS_IE(x) \
- ({ void *__result, *__tmp; \
- __asm__ (".set push\n\t.set mips32r2\n\t" \
- "rdhwr\t%0,$29\n\t.set pop" \
- : "=v" (__result)); \
- __asm__ (LOAD_GP LW " $3,%%gottprel(" #x ")($28)\n\t" \
- ADDU " %0,%0,$3" \
- UNLOAD_GP \
- : "+r" (__result), [tmp] "=&r" (__tmp) \
- : : "$3"); \
- __result; })
-# define TLS_LE(x) \
- ({ void *__result; \
- __asm__ (".set push\n\t.set mips32r2\n\t" \
- "rdhwr\t%0,$29\n\t.set pop" \
- : "=v" (__result)); \
- __asm__ ("lui $3,%%tprel_hi(" #x ")\n\t" \
- "addiu $3,$3,%%tprel_lo(" #x ")\n\t" \
- ADDU " %0,%0,$3" \
- : "+r" (__result) : : "$3"); \
- __result; })
diff --git a/test/tls/tls-macros-powerpc.h b/test/tls/tls-macros-powerpc.h
deleted file mode 100644
index ef293bb..0000000
--- a/test/tls/tls-macros-powerpc.h
+++ /dev/null
@@ -1,87 +0,0 @@
-#define __TLS_CALL_CLOBBERS \
- "0", "3", "4", "5", "6",
"7", "8", "9", "10", "11",
"12", \
- "lr", "ctr", "cr0", "cr1", "cr5",
"cr6", "cr7"
-
-/* PowerPC32 Local Exec TLS access. */
-#define TLS_LE(x) \
- ({ int *__result; \
- __asm__ ("addi %0,2," #x "@tprel" \
- : "=r" (__result)); \
- __result; })
-
-/* PowerPC32 Initial Exec TLS access. */
-#ifdef HAVE_ASM_PPC_REL16
-# define TLS_IE(x) \
- ({ int *__result; \
- __asm__ ("bcl 20,31,1f\n1:\t" \
- "mflr %0\n\t" \
- "addis %0,%0,_GLOBAL_OFFSET_TABLE_-1b@ha\n\t" \
- "addi %0,%0,_GLOBAL_OFFSET_TABLE_-1b@l\n\t" \
- "lwz %0," #x "@got@tprel(%0)\n\t" \
- "add %0,%0," #x "@tls" \
- : "=b" (__result) : \
- : "lr"); \
- __result; })
-#else
-# define TLS_IE(x) \
- ({ int *__result; \
- __asm__ ("bl _GLOBAL_OFFSET_TABLE_@local-4\n\t" \
- "mflr %0\n\t" \
- "lwz %0," #x "@got@tprel(%0)\n\t" \
- "add %0,%0," #x "@tls" \
- : "=b" (__result) : \
- : "lr"); \
- __result; })
-#endif
-
-/* PowerPC32 Local Dynamic TLS access. */
-#ifdef HAVE_ASM_PPC_REL16
-# define TLS_LD(x) \
- ({ int *__result; \
- __asm__ ("bcl 20,31,1f\n1:\t" \
- "mflr 3\n\t" \
- "addis 3,3,_GLOBAL_OFFSET_TABLE_-1b@ha\n\t" \
- "addi 3,3,_GLOBAL_OFFSET_TABLE_-1b@l\n\t" \
- "addi 3,3," #x "@got@tlsld\n\t" \
- "bl __tls_get_addr@plt\n\t" \
- "addi %0,3," #x "@dtprel" \
- : "=r" (__result) : \
- : __TLS_CALL_CLOBBERS); \
- __result; })
-#else
-# define TLS_LD(x) \
- ({ int *__result; \
- __asm__ ("bl _GLOBAL_OFFSET_TABLE_@local-4\n\t" \
- "mflr 3\n\t" \
- "addi 3,3," #x "@got@tlsld\n\t" \
- "bl __tls_get_addr@plt\n\t" \
- "addi %0,3," #x "@dtprel" \
- : "=r" (__result) : \
- : __TLS_CALL_CLOBBERS); \
- __result; })
-#endif
-
-/* PowerPC32 General Dynamic TLS access. */
-#ifdef HAVE_ASM_PPC_REL16
-# define TLS_GD(x) \
- ({ register int *__result __asm__ ("r3"); \
- __asm__ ("bcl 20,31,1f\n1:\t" \
- "mflr 3\n\t" \
- "addis 3,3,_GLOBAL_OFFSET_TABLE_-1b@ha\n\t" \
- "addi 3,3,_GLOBAL_OFFSET_TABLE_-1b@l\n\t" \
- "addi 3,3," #x "@got@tlsgd\n\t" \
- "bl __tls_get_addr@plt" \
- : : \
- : __TLS_CALL_CLOBBERS); \
- __result; })
-#else
-# define TLS_GD(x) \
- ({ register int *__result __asm__ ("r3"); \
- __asm__ ("bl _GLOBAL_OFFSET_TABLE_@local-4\n\t" \
- "mflr 3\n\t" \
- "addi 3,3," #x "@got@tlsgd\n\t" \
- "bl __tls_get_addr@plt" \
- : : \
- : __TLS_CALL_CLOBBERS); \
- __result; })
-#endif
diff --git a/test/tls/tls-macros-sh.h b/test/tls/tls-macros-sh.h
deleted file mode 100644
index f84399c..0000000
--- a/test/tls/tls-macros-sh.h
+++ /dev/null
@@ -1,143 +0,0 @@
-#define TLS_LE(x) \
- ({ int *__l; void *__tp; \
- __asm__ ("stc gbr,%1\n\t" \
- "mov.l 1f,%0\n\t" \
- "bra 2f\n\t" \
- " add %1,%0\n\t" \
- ".align 2\n\t" \
- "1: .long " #x "@tpoff\n\t" \
- "2:" \
- : "=r" (__l), "=r" (__tp)); \
- __l; })
-
-#ifdef __PIC__
-# define TLS_IE(x) \
- ({ int *__l; void *__tp; \
- register void *__gp __asm__("r12"); \
- __asm__ ("mov.l 1f,r0\n\t" \
- "stc gbr,%1\n\t" \
- "mov.l @(r0,r12),%0\n\t" \
- "bra 2f\n\t" \
- " add %1,%0\n\t" \
- ".align 2\n\t" \
- "1: .long " #x "@gottpoff\n\t" \
- "2:" \
- : "=r" (__l), "=r" (__tp) : "r" (__gp) :
"r0"); \
- __l; })
-#else
-# define TLS_IE(x) \
- ({ int *__l; void *__tp; \
- __asm__ ("mov.l r12,@-r15\n\t" \
- "mova 0f,r0\n\t" \
- "mov.l 0f,r12\n\t" \
- "add r0,r12\n\t" \
- "mov.l 1f,r0\n\t" \
- "stc gbr,%1\n\t" \
- "mov.l @(r0,r12),%0\n\t" \
- "bra 2f\n\t" \
- " add %1,%0\n\t" \
- ".align 2\n\t" \
- "1: .long " #x "@gottpoff\n\t" \
- "0: .long _GLOBAL_OFFSET_TABLE_\n\t" \
- "2: mov.l @r15+,r12" \
- : "=r" (__l), "=r" (__tp) : : "r0"); \
- __l; })
-#endif
-
-#ifdef __PIC__
-# define TLS_LD(x) \
- ({ int *__l; \
- register void *__gp __asm__("r12"); \
- __asm__ ("mov.l 1f,r4\n\t" \
- "mova 2f,r0\n\t" \
- "mov.l 2f,r1\n\t" \
- "add r0,r1\n\t" \
- "jsr @r1\n\t" \
- " add r12,r4\n\t" \
- "bra 4f\n\t" \
- " nop\n\t" \
- ".align 2\n\t" \
- "1: .long " #x "@tlsldm\n\t" \
- "2: .long __tls_get_addr@plt\n\t" \
- "4: mov.l 3f,%0\n\t" \
- "bra 5f\n\t" \
- " add r0,%0\n\t" \
- ".align 2\n\t" \
- "3: .long " #x "@dtpoff\n\t" \
- "5:" \
- : "=r" (__l) : "r" (__gp) : "r0", "r1",
"r2", "r3", "r4", "r5", \
- "r6", "r7", "pr", "t"); \
- __l; })
-#else
-# define TLS_LD(x) \
- ({ int *__l; \
- __asm__ ("mov.l r12,@-r15\n\t" \
- "mova 0f,r0\n\t" \
- "mov.l 0f,r12\n\t" \
- "add r0,r12\n\t" \
- "mov.l 1f,r4\n\t" \
- "mova 2f,r0\n\t" \
- "mov.l 2f,r1\n\t" \
- "add r0,r1\n\t" \
- "jsr @r1\n\t" \
- " add r12,r4\n\t" \
- "bra 4f\n\t" \
- " nop\n\t" \
- ".align 2\n\t" \
- "1: .long " #x "@tlsldm\n\t" \
- "2: .long __tls_get_addr@plt\n\t" \
- "0: .long _GLOBAL_OFFSET_TABLE_\n\t" \
- "4: mov.l 3f,%0\n\t" \
- "bra 5f\n\t" \
- " add r0,%0\n\t" \
- ".align 2\n\t" \
- "3: .long " #x "@dtpoff\n\t" \
- "5: mov.l @r15+,r12" \
- : "=r" (__l) : : "r0", "r1", "r2",
"r3", "r4", "r5", "r6", "r7", \
- "pr", "t"); \
- __l; })
-#endif
-
-#ifdef __PIC__
-# define TLS_GD(x) \
- ({ int *__l; \
- register void *__gp __asm__("r12"); \
- __asm__ ("mov.l 1f,r4\n\t" \
- "mova 2f,r0\n\t" \
- "mov.l 2f,r1\n\t" \
- "add r0,r1\n\t" \
- "jsr @r1\n\t" \
- " add r12,r4\n\t" \
- "bra 3f\n\t" \
- " mov r0,%0\n\t" \
- ".align 2\n\t" \
- "1: .long " #x "@tlsgd\n\t" \
- "2: .long __tls_get_addr@plt\n\t" \
- "3:" \
- : "=r" (__l) : "r" (__gp) : "r0", "r1",
"r2", "r3", "r4", "r5", \
- "r6", "r7", "pr", "t"); \
- __l; })
-#else
-# define TLS_GD(x) \
- ({ int *__l; \
- __asm__ ("mov.l r12,@-r15\n\t" \
- "mova 0f,r0\n\t" \
- "mov.l 0f,r12\n\t" \
- "add r0,r12\n\t" \
- "mov.l 1f,r4\n\t" \
- "mova 2f,r0\n\t" \
- "mov.l 2f,r1\n\t" \
- "add r0,r1\n\t" \
- "jsr @r1\n\t" \
- " add r12,r4\n\t" \
- "bra 3f\n\t" \
- " mov r0,%0\n\t" \
- ".align 2\n\t" \
- "1: .long " #x "@tlsgd\n\t" \
- "2: .long __tls_get_addr@plt\n\t" \
- "0: .long _GLOBAL_OFFSET_TABLE_\n\t" \
- "3: mov.l @r15+,r12" \
- : "=r" (__l) : : "r0", "r1", "r2",
"r3", "r4", "r5", "r6", "r7", \
- "pr", "t"); \
- __l; })
-#endif
diff --git a/test/tls/tls-macros-sparc.h b/test/tls/tls-macros-sparc.h
deleted file mode 100644
index 710ced1..0000000
--- a/test/tls/tls-macros-sparc.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#define TLS_LE(x) \
- ({ int *__l; \
- __asm__ ("sethi %%tle_hix22(" #x "), %0" : "=r"
(__l)); \
- __asm__ ("xor %1, %%tle_lox10(" #x "), %0" : "=r"
(__l) : "r" (__l)); \
- __asm__ ("add %%g7, %1, %0" : "=r" (__l) : "r"
(__l)); \
- __l; })
-
-#ifdef __PIC__
-# define TLS_LOAD_PIC \
- ({ register long pc __asm__ ("%o7"); \
- long got; \
- __asm__ ("sethi %%hi(_GLOBAL_OFFSET_TABLE_-4), %1\n\t" \
- "call .+8\n\t" \
- "add %1, %%lo(_GLOBAL_OFFSET_TABLE_+4), %1\n\t" \
- "add %1, %0, %1\n\t" \
- : "=r" (pc), "=r" (got)); \
- got; })
-#else
-# define TLS_LOAD_PIC \
- ({ long got; \
- __asm__ (".hidden _GLOBAL_OFFSET_TABLE_\n\t" \
- "sethi %%hi(_GLOBAL_OFFSET_TABLE_), %0\n\t" \
- "or %0, %%lo(_GLOBAL_OFFSET_TABLE_), %0" \
- : "=r" (got)); \
- got; })
-#endif
-
-#define TLS_IE(x) \
- ({ int *__l; \
- __asm__ ("sethi %%tie_hi22(" #x "), %0" : "=r"
(__l)); \
- __asm__ ("add %1, %%tie_lo10(" #x "), %0" : "=r" (__l)
: "r" (__l)); \
- __asm__ ("ld [%1 + %2], %0, %%tie_ld(" #x ")" \
- : "=r" (__l) : "r" (TLS_LOAD_PIC), "r" (__l)); \
- __asm__ ("add %%g7, %1, %0, %%tie_add(" #x ")" : "=r"
(__l) : "r" (__l)); \
- __l; })
-
-#define TLS_LD(x) \
- ({ int *__l; register void *__o0 __asm__ ("%o0"); \
- long __o; \
- __asm__ ("sethi %%tldm_hi22(" #x "), %0" : "=r"
(__l)); \
- __asm__ ("add %1, %%tldm_lo10(" #x "), %0" : "=r"
(__l) : "r" (__l)); \
- __asm__ ("add %1, %2, %0, %%tldm_add(" #x ")" \
- : "=r" (__o0) : "r" (TLS_LOAD_PIC), "r" (__l));
\
- __asm__ ("call __tls_get_addr, %%tgd_call(" #x ")\n\t"
\
- " nop" \
- : "=r" (__o0) : "0" (__o0) \
- : "g1", "g2", "g3", "g4", "g5",
"g6", "o1", "o2", "o3", "o4", \
- "o5", "o7", "cc"); \
- __asm__ ("sethi %%tldo_hix22(" #x "), %0" : "=r"
(__o)); \
- __asm__ ("xor %1, %%tldo_lox10(" #x "), %0" : "=r"
(__o) : "r" (__o)); \
- __asm__ ("add %1, %2, %0, %%tldo_add(" #x ")" : "=r"
(__l) \
- : "r" (__o0), "r" (__o)); \
- __l; })
-
-#define TLS_GD(x) \
- ({ int *__l; register void *__o0 __asm__ ("%o0"); \
- __asm__ ("sethi %%tgd_hi22(" #x "), %0" : "=r"
(__l)); \
- __asm__ ("add %1, %%tgd_lo10(" #x "), %0" : "=r" (__l)
: "r" (__l)); \
- __asm__ ("add %1, %2, %0, %%tgd_add(" #x ")" \
- : "=r" (__o0) : "r" (TLS_LOAD_PIC), "r" (__l));
\
- __asm__ ("call __tls_get_addr, %%tgd_call(" #x ")\n\t"
\
- " nop" \
- : "=r" (__o0) : "0" (__o0) \
- : "g1", "g2", "g3", "g4", "g5",
"g6", "o1", "o2", "o3", "o4", \
- "o5", "o7", "cc"); \
- __o0; })
-
diff --git a/test/tls/tls-macros-thumb.h b/test/tls/tls-macros-thumb.h
deleted file mode 100644
index dfa6582..0000000
--- a/test/tls/tls-macros-thumb.h
+++ /dev/null
@@ -1,57 +0,0 @@
-#define TLS_LE(x) \
- ({ int *__result; \
- void *tp = __builtin_thread_pointer (); \
- __asm__ ("ldr %0, 1f; " \
- "add %0, %1, %0; " \
- "b 2f; " \
- ".align 2; " \
- "1: .word " #x "(tpoff); " \
- "2: " \
- : "=&r" (__result) : "r" (tp)); \
- __result; })
-
-#define TLS_IE(x) \
- ({ int *__result; \
- int tmp; \
- void *tp = __builtin_thread_pointer (); \
- __asm__ ("ldr %0, 1f; " \
- "adr %1, 1f; " \
- "ldr %0, [%1, %0]; " \
- "add %0, %2, %0; " \
- "b 2f; " \
- ".align 2; " \
- "1: .word " #x "(gottpoff); " \
- "2: " \
- : "=&r" (__result), "=&r"(tmp) : "r" (tp)); \
- __result; })
-
-#define TLS_LD(x) \
- ({ char *__result; \
- int __offset; \
- extern void *__tls_get_addr (void *); \
- __asm__ ("ldr %0, 2f; " \
- ".align 2; " \
- "1: add %0, pc, %0; " \
- "b 3f; " \
- "2: .word " #x "(tlsldm) + (. - 1b - 4); " \
- "3: " \
- : "=r" (__result)); \
- __result = (char *)__tls_get_addr (__result); \
- __asm__ ("ldr %0, 1f; " \
- "b 2f; " \
- "1: .word " #x "(tlsldo); " \
- "2: " \
- : "=r" (__offset)); \
- (int *) (__result + __offset); })
-
-#define TLS_GD(x) \
- ({ int *__result; \
- extern void *__tls_get_addr (void *); \
- __asm__ ("ldr %0, 2f; " \
- ".align 2; " \
- "1: add %0, pc, %0; " \
- "b 3f; " \
- "2: .word " #x "(tlsgd) + (. - 1b - 4); " \
- "3: " \
- : "=r" (__result)); \
- (int *)__tls_get_addr (__result); })
diff --git a/test/tls/tls-macros-x86_64.h b/test/tls/tls-macros-x86_64.h
deleted file mode 100644
index b8a8b71..0000000
--- a/test/tls/tls-macros-x86_64.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#define TLS_LE(x) \
- ({ int *__l; \
- __asm__ ("mov %%fs:0,%0\n\t" \
- "lea " #x "@tpoff(%0), %0" \
- : "=r" (__l)); \
- __l; })
-
-#define TLS_IE(x) \
- ({ int *__l; \
- __asm__ ("mov %%fs:0,%0\n\t" \
- "add " #x "@gottpoff(%%rip),%0" \
- : "=r" (__l)); \
- __l; })
-
-#define TLS_LD(x) \
- ({ int *__l, __c, __d; \
- __asm__ ("leaq " #x "@tlsld(%%rip),%%rdi\n\t" \
- "call __tls_get_addr@plt\n\t" \
- "leaq " #x "@dtpoff(%%rax), %%rax" \
- : "=a" (__l), "=&c" (__c), "=&d" (__d)
\
- : : "rdi", "rsi", "r8", "r9", "r10",
"r11"); \
- __l; })
-
-#ifdef __ILP32__
-# define TLS_GD_PREFIX
-#else
-# define TLS_GD_PREFIX ".byte 0x66\n\t"
-#endif
-
-#define TLS_GD(x) \
- ({ int *__l, __c, __d; \
- __asm__ (TLS_GD_PREFIX \
- "leaq " #x "@tlsgd(%%rip),%%rdi\n\t" \
- ".word 0x6666\n\t" \
- "rex64\n\t" \
- "call __tls_get_addr@plt" \
- : "=a" (__l), "=&c" (__c), "=&d" (__d)
\
- : : "rdi", "rsi", "r8", "r9", "r10",
"r11"); \
- __l; })
-
diff --git a/test/tls/tls-macros-xtensa.h b/test/tls/tls-macros-xtensa.h
deleted file mode 100644
index 179dc5e..0000000
--- a/test/tls/tls-macros-xtensa.h
+++ /dev/null
@@ -1,61 +0,0 @@
-#if defined(__XTENSA_WINDOWED_ABI__)
-#define TLS_GD(x) \
- ({ int *__l; \
- __asm__ ("movi a8, " #x "@TLSFUNC\n\t" \
- "movi a10, " #x "@TLSARG\n\t" \
- "callx8.tls a8, " #x "@TLSCALL\n\t" \
- "mov %0, a10\n\t" \
- : "=r" (__l) \
- : \
- : "a8", "a9", "a10", "a11", "a12",
"a13", "a14", "a15"); \
- __l; })
-
-#define TLS_LD(x) \
- ({ int *__l; \
- __asm__ ("movi a8, _TLS_MODULE_BASE_@TLSFUNC\n\t" \
- "movi a10, _TLS_MODULE_BASE_@TLSARG\n\t" \
- "callx8.tls a8, _TLS_MODULE_BASE_@TLSCALL\n\t" \
- "movi %0, " #x "@TPOFF\n\t" \
- "add %0, %0, a10\n\t" \
- : "=r" (__l) \
- : \
- : "a8", "a9", "a10", "a11", "a12",
"a13", "a14", "a15"); \
- __l; })
-#elif defined(__XTENSA_CALL0_ABI__)
-#define TLS_GD(x) \
- ({ int *__l; \
- __asm__ ("movi a0, " #x "@TLSFUNC\n\t" \
- "movi a2, " #x "@TLSARG\n\t" \
- "callx0.tls a0, " #x "@TLSCALL\n\t" \
- "mov %0, a2\n\t" \
- : "=r" (__l) \
- : \
- : "a2", "a3", "a4", "a5", "a6",
"a7", "a8", "a9", "a10", "a11");\
- __l; })
-
-#define TLS_LD(x) \
- ({ int *__l; \
- __asm__ ("movi a0, _TLS_MODULE_BASE_@TLSFUNC\n\t" \
- "movi a2, _TLS_MODULE_BASE_@TLSARG\n\t" \
- "callx0.tls a0, _TLS_MODULE_BASE_@TLSCALL\n\t" \
- "movi %0, " #x "@TPOFF\n\t" \
- "add %0, %0, a2\n\t" \
- : "=r" (__l) \
- : \
- : "a2", "a3", "a4", "a5", "a6",
"a7", "a8", "a9", "a10", "a11");\
- __l; })
-#else
-#error Unsupported Xtensa ABI
-#endif
-
-#define TLS_IE(x) TLS_LE(x)
-
-#define TLS_LE(x) \
- ({ int *__l; \
- int __t; \
- __asm__ ("rur %0, threadptr\n\t" \
- "movi %1, " #x "@TPOFF\n\t" \
- "add %0, %0, %1\n\t" \
- : "=r" (__l), "=r" (__t) ); \
- __l; }); \
-
diff --git a/test/tls/tls-macros.h b/test/tls/tls-macros.h
deleted file mode 100644
index 0300dba..0000000
--- a/test/tls/tls-macros.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/* Macros to support TLS testing in times of missing compiler support. */
-
-#define COMMON_INT_DEF(x) \
- __asm__ (".tls_common " #x ",4,4")
-/* XXX Until we get compiler support we don't need declarations. */
-#define COMMON_INT_DECL(x)
-
-/* XXX This definition will probably be machine specific, too. */
-#define VAR_INT_DEF(x) \
- __asm__ (".section .tdata\n\t" \
- ".globl " #x "\n" \
- ".balign 4\n" \
- #x ":\t.long 0\n\t" \
- ".size " #x ",4\n\t" \
- ".previous")
-/* XXX Until we get compiler support we don't need declarations. */
-#define VAR_INT_DECL(x)
-
-#ifdef __alpha__
-#include <tls-macros-alpha.h>
-#endif
-
-#ifdef __arc__
-#include <tls-macros-arc.h>
-#endif
-
-#ifdef __arm__
-#ifdef __thumb__
-#include <tls-macros-thumb.h>
-#else
-#include <tls-macros-arm.h>
-#endif
-#endif
-
-#ifdef __i386__
-#include <tls-macros-i386.h>
-#endif
-
-#ifdef __ia64__
-#include <tls-macros-ia64.h>
-#endif
-
-#ifdef __metag__
-#include <tls-macros-metag.h>
-#endif
-
-#ifdef __mips__
-#include <tls-macros-mips.h>
-#endif
-
-#ifdef __powerpc__
-#include <tls-macros-powerpc.h>
-#endif
-
-#ifdef __sh__
-#include <tls-macros-sh.h>
-#endif
-
-#ifdef __sparc__
-#include <tls-macros-sparc.h>
-#endif
-
-#ifdef __x86_64__
-#include <tls-macros-x86_64.h>
-#endif
-
-#ifdef __xtensa__
-#include <tls-macros-xtensa.h>
-#endif
-
-#if !defined TLS_LE || !defined TLS_IE \
- || !defined TLS_LD || !defined TLS_GD
-# error "No support for this architecture so far."
-#endif
diff --git a/test/tls/tst-tls-at-ctor.c b/test/tls/tst-tls-at-ctor.c
deleted file mode 100644
index 53aece1..0000000
--- a/test/tls/tst-tls-at-ctor.c
+++ /dev/null
@@ -1,21 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <tls.h>
-
-#define TLS_VAR_INIT_VALUE 99
-
-#ifdef USE_TLS
-extern __thread int tls_var;
-#endif
-
-int main(void)
-{
- int ret = EXIT_SUCCESS;
-#ifdef USE_TLS
- if (tls_var != TLS_VAR_INIT_VALUE) {
- printf("tls_var = %d - Expected value = %d\n", tls_var, TLS_VAR_INIT_VALUE);
- ret = EXIT_FAILURE;
- }
-#endif
- return ret;
-}
diff --git a/test/tls/tst-tls1-static.c b/test/tls/tst-tls1-static.c
deleted file mode 100644
index a010080..0000000
--- a/test/tls/tst-tls1-static.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-tls1.c"
diff --git a/test/tls/tst-tls1.c b/test/tls/tst-tls1.c
deleted file mode 100644
index f5ac6d2..0000000
--- a/test/tls/tst-tls1.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/* glibc test for TLS in ld.so. */
-#undef _LIBC
-#include <stdio.h>
-
-#include <tls.h>
-
-#ifdef USE_TLS
-# include "tls-macros.h"
-
-
-/* Two common 'int' variables in TLS. */
-COMMON_INT_DEF(foo);
-COMMON_INT_DEF(bar);
-#endif
-
-
-#define TEST_FUNCTION do_test ()
-static int
-do_test (void)
-{
-#ifdef USE_TLS
- int result = 0;
- int *ap, *bp;
-
-
- /* Set the variable using the local exec model. */
- puts ("set bar to 1 (LE)");
- ap = TLS_LE (bar);
- *ap = 1;
-
-
- /* Get variables using initial exec model. */
- fputs ("get sum of foo and bar (IE)", stdout);
- ap = TLS_IE (foo);
- bp = TLS_IE (bar);
- printf (" = %d\n", *ap + *bp);
- result |= *ap + *bp != 1;
- if (*ap != 0)
- {
- printf ("foo = %d\n", *ap);
- result = 1;
- }
- if (*bp != 1)
- {
- printf ("bar = %d\n", *bp);
- result = 1;
- }
-
-
- /* Get variables using local dynamic model. */
- fputs ("get sum of foo and bar (LD)", stdout);
- ap = TLS_LD (foo);
- bp = TLS_LD (bar);
- printf (" = %d\n", *ap + *bp);
- result |= *ap + *bp != 1;
- if (*ap != 0)
- {
- printf ("foo = %d\n", *ap);
- result = 1;
- }
- if (*bp != 1)
- {
- printf ("bar = %d\n", *bp);
- result = 1;
- }
-
-
- /* Get variables using generic dynamic model. */
- fputs ("get sum of foo and bar (GD)", stdout);
- ap = TLS_GD (foo);
- bp = TLS_GD (bar);
- printf (" = %d\n", *ap + *bp);
- result |= *ap + *bp != 1;
- if (*ap != 0)
- {
- printf ("foo = %d\n", *ap);
- result = 1;
- }
- if (*bp != 1)
- {
- printf ("bar = %d\n", *bp);
- result = 1;
- }
-
- return result;
-#else
- return 0;
-#endif
-}
-
-
-#include "../test-skeleton.c"
diff --git a/test/tls/tst-tls10.c b/test/tls/tst-tls10.c
deleted file mode 100644
index fc06770..0000000
--- a/test/tls/tst-tls10.c
+++ /dev/null
@@ -1,40 +0,0 @@
-#include "tst-tls10.h"
-
-#ifdef USE_TLS__THREAD
-__thread int dummy __attribute__((visibility ("hidden"))) = 12;
-__thread struct A local = { 1, 2, 3 };
-#endif
-
-#define CHECK(N, S) \
- p = f##N##a (); \
- if (p->a != S || p->b != S + 1 || p->c != S + 2) \
- abort ()
-
-int
-main (void)
-{
- struct A *p;
- if (local.a != 1 || local.b != 2 || local.c != 3)
- abort ();
-#ifdef USE_TLS__THREAD
- if (a1.a != 4 || a1.b != 5 || a1.c != 6)
- abort ();
- if (a2.a != 22 || a2.b != 23 || a2.c != 24)
- abort ();
- if (a3.a != 10 || a3.b != 11 || a3.c != 12)
- abort ();
- if (a4.a != 25 || a4.b != 26 || a4.c != 27)
- abort ();
- check1 ();
- check2 ();
- if (f1a () != &a1 || f2a () != &a2 || f3a () != &a3 || f4a () != &a4)
- abort ();
- CHECK (5, 16);
- CHECK (6, 19);
- if (f7a () != &a2 || f8a () != &a4)
- abort ();
- CHECK (9, 28);
- CHECK (10, 31);
-#endif
- exit (0);
-}
diff --git a/test/tls/tst-tls10.h b/test/tls/tst-tls10.h
deleted file mode 100644
index 1be6adc..0000000
--- a/test/tls/tst-tls10.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#include <tls.h>
-#include <stdlib.h>
-
-#if defined USE_TLS && defined HAVE___THREAD \
- && defined HAVE_TLS_MODEL_ATTRIBUTE
-# define USE_TLS__THREAD
-
-struct A
-{
- char a;
- int b;
- long long c;
-};
-
-extern __thread struct A a1, a2, a3, a4;
-extern struct A *f1a (void);
-extern struct A *f2a (void);
-extern struct A *f3a (void);
-extern struct A *f4a (void);
-extern struct A *f5a (void);
-extern struct A *f6a (void);
-extern struct A *f7a (void);
-extern struct A *f8a (void);
-extern struct A *f9a (void);
-extern struct A *f10a (void);
-extern int f1b (void);
-extern int f2b (void);
-extern int f3b (void);
-extern int f4b (void);
-extern int f5b (void);
-extern int f6b (void);
-extern int f7b (void);
-extern int f8b (void);
-extern int f9b (void);
-extern int f10b (void);
-extern void check1 (void);
-extern void check2 (void);
-#endif
diff --git a/test/tls/tst-tls11.c b/test/tls/tst-tls11.c
deleted file mode 100644
index 816cf5c..0000000
--- a/test/tls/tst-tls11.c
+++ /dev/null
@@ -1,27 +0,0 @@
-#include "tst-tls10.h"
-
-#define CHECK(N, S) \
- p = f##N##a (); \
- if (p->a != S || p->b != S + 1 || p->c != S + 2) \
- abort ()
-
-int
-main (void)
-{
-#ifdef USE_TLS__THREAD
- struct A *p;
- check1 ();
- check2 ();
- CHECK (1, 4);
- CHECK (2, 22);
- CHECK (3, 10);
- CHECK (4, 25);
- CHECK (5, 16);
- CHECK (6, 19);
- CHECK (7, 22);
- CHECK (8, 25);
- CHECK (9, 28);
- CHECK (10, 31);
-#endif
- exit (0);
-}
diff --git a/test/tls/tst-tls12.c b/test/tls/tst-tls12.c
deleted file mode 100644
index 84aa7d3..0000000
--- a/test/tls/tst-tls12.c
+++ /dev/null
@@ -1,18 +0,0 @@
-#include "tst-tls10.h"
-
-#define CHECK(N, S) \
- p = &a##N; \
- if (p->a != S || p->b != S + 1 || p->c != S + 2) \
- abort ()
-
-int
-main (void)
-{
-#ifdef USE_TLS__THREAD
- struct A *p;
- check1 ();
- CHECK (1, 4);
- CHECK (2, 7);
-#endif
- exit (0);
-}
diff --git a/test/tls/tst-tls13.c b/test/tls/tst-tls13.c
deleted file mode 100644
index 4cb74e7..0000000
--- a/test/tls/tst-tls13.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Check unloading modules with data in static TLS block. */
-#include <dlfcn.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static int
-do_test (void)
-{
- int i;
- for (i = 0; i < 1000;)
- {
- printf ("round %d\n",++i);
-
- void *h = dlopen ("tst-tlsmod13a.so", RTLD_LAZY);
- if (h == NULL)
- {
- printf ("cannot load: %s\n", dlerror ());
- exit (1);
- }
-
- dlclose (h);
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#define TIMEOUT 50
-#include "../test-skeleton.c"
diff --git a/test/tls/tst-tls14.c b/test/tls/tst-tls14.c
deleted file mode 100644
index 428fd52..0000000
--- a/test/tls/tst-tls14.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Check alignment of TLS variable. */
-#include <dlfcn.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <tls.h>
-
-#if USE_TLS && HAVE___THREAD
-
-#define AL 4096
-struct foo
-{
- int i;
-} __attribute ((aligned (AL)));
-
-static __thread struct foo f;
-static struct foo g;
-
-
-extern int in_dso1 (void);
-
-
-static int
-do_test (void)
-{
- int result = 0;
-
- int fail = (((uintptr_t) &f) & (AL - 1)) != 0;
- printf ("&f = %p %s\n", &f, fail ? "FAIL" :
"OK");
- result |= fail;
-
- fail = (((uintptr_t) &g) & (AL - 1)) != 0;
- printf ("&g = %p %s\n", &g, fail ? "FAIL" :
"OK");
- result |= fail;
-
- result |= in_dso1 ();
-
- void *h = dlopen ("tst-tlsmod14b.so", RTLD_LAZY);
- if (h == NULL)
- {
- printf ("cannot open tst-tlsmod14b.so: %m\n");
- exit (1);
- }
-
- int (*fp) (void) = (int (*) (void)) dlsym (h, "in_dso2");
- if (fp == NULL)
- {
- puts ("cannot find in_dso2");
- exit (1);
- }
-
- result |= fp ();
-
- return result;
-}
-
-#define TEST_FUNCTION do_test ()
-
-#else
-
-#define TEST_FUNCTION 0
-
-#endif
-
-#include "../test-skeleton.c"
diff --git a/test/tls/tst-tls15.c b/test/tls/tst-tls15.c
deleted file mode 100644
index 2c2df25..0000000
--- a/test/tls/tst-tls15.c
+++ /dev/null
@@ -1,33 +0,0 @@
-#include <dlfcn.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-static int
-do_test (void)
-{
- void *h = dlopen ("tst-tlsmod15a.so", RTLD_NOW);
- if (h != NULL)
- {
- puts ("unexpectedly succeeded to open tst-tlsmod15a.so");
- exit (1);
- }
-
- h = dlopen ("tst-tlsmod15b.so", RTLD_NOW);
- if (h == NULL)
- {
- puts ("failed to open tst-tlsmod15b.so");
- exit (1);
- }
-
- int (*fp) (void) = (int (*) (void)) dlsym (h, "in_dso");
- if (fp == NULL)
- {
- puts ("cannot find in_dso");
- exit (1);
- }
-
- return fp ();
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/tls/tst-tls16.c b/test/tls/tst-tls16.c
deleted file mode 100644
index 17912dc..0000000
--- a/test/tls/tst-tls16.c
+++ /dev/null
@@ -1,53 +0,0 @@
-#include <dlfcn.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-static int
-do_test (void)
-{
- void *h = dlopen ("tst-tlsmod16a.so", RTLD_LAZY | RTLD_GLOBAL);
- if (h == NULL)
- {
- puts ("unexpectedly failed to open tst-tlsmod16a.so");
- exit (1);
- }
-
- void *p = dlsym (h, "tlsvar");
-
- /* This dlopen should indeed fail, because tlsvar was assigned to
- dynamic TLS, and the new module requests it to be in static TLS.
- However, there's a possibility that dlopen succeeds if the
- variable is, for whatever reason, assigned to static TLS, or if
- the module fails to require static TLS, or even if TLS is not
- supported. */
- h = dlopen ("tst-tlsmod16b.so", RTLD_NOW | RTLD_GLOBAL);
- if (h == NULL)
- {
- return 0;
- }
-
- puts ("unexpectedly succeeded to open tst-tlsmod16b.so");
-
-
- void *(*fp) (void) = (void *(*) (void)) dlsym (h, "in_dso");
- if (fp == NULL)
- {
- puts ("cannot find in_dso");
- exit (1);
- }
-
- /* If the dlopen passes, at least make sure the address returned by
- dlsym is the same as that returned by the initial-exec access.
- If the variable was assigned to dynamic TLS during dlsym, this
- portion will fail. */
- if (fp () != p)
- {
- puts ("returned values do not match");
- exit (1);
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/tls/tst-tls17.c b/test/tls/tst-tls17.c
deleted file mode 100644
index c1bc7d8..0000000
--- a/test/tls/tst-tls17.c
+++ /dev/null
@@ -1,29 +0,0 @@
-#include <dlfcn.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-static int
-do_test (void)
-{
- void *h = dlopen ("tst-tlsmod17b.so", RTLD_LAZY);
- if (h == NULL)
- {
- puts ("unexpectedly failed to open tst-tlsmod17b.so");
- exit (1);
- }
-
- int (*fp) (void) = (int (*) (void)) dlsym (h, "tlsmod17b");
- if (fp == NULL)
- {
- puts ("cannot find tlsmod17b");
- exit (1);
- }
-
- if (fp ())
- exit (1);
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/tls/tst-tls18.c b/test/tls/tst-tls18.c
deleted file mode 100644
index 00dcdff..0000000
--- a/test/tls/tst-tls18.c
+++ /dev/null
@@ -1,38 +0,0 @@
-#include <dlfcn.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-static int
-do_test (void)
-{
- char modname[sizeof "tst-tlsmod18aXX.so"];
- void *h[20];
- for (int i = 0; i < 20; i++)
- {
- snprintf (modname, sizeof modname, "tst-tlsmod18a%d.so", i);
- h[i] = dlopen (modname, RTLD_LAZY);
- if (h[i] == NULL)
- {
- printf ("unexpectedly failed to open %s", modname);
- exit (1);
- }
- }
-
- for (int i = 0; i < 20; i++)
- {
- int (*fp) (void) = (int (*) (void)) dlsym (h[i], "test");
- if (fp == NULL)
- {
- printf ("cannot find test in tst-tlsmod18a%d.so", i);
- exit (1);
- }
-
- if (fp ())
- exit (1);
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/tls/tst-tls2-static.c b/test/tls/tst-tls2-static.c
deleted file mode 100644
index 55ffa57..0000000
--- a/test/tls/tst-tls2-static.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-tls2.c"
diff --git a/test/tls/tst-tls2.c b/test/tls/tst-tls2.c
deleted file mode 100644
index 4174899..0000000
--- a/test/tls/tst-tls2.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/* glibc test for TLS in ld.so. */
-#include <stdio.h>
-
-#include <tls.h>
-
-#ifdef USE_TLS
-# include "tls-macros.h"
-
-
-/* Two 'int' variables in TLS. */
-VAR_INT_DEF(foo);
-VAR_INT_DEF(bar);
-#endif
-
-
-#define TEST_FUNCTION do_test ()
-static int
-do_test (void)
-{
-#ifdef USE_TLS
- int result = 0;
- int *ap, *bp;
-
-
- /* Set the variable using the local exec model. */
- puts ("set bar to 1 (LE)");
- ap = TLS_LE (bar);
- *ap = 1;
-
-
- /* Get variables using initial exec model. */
- fputs ("get sum of foo and bar (IE)", stdout);
- ap = TLS_IE (foo);
- bp = TLS_IE (bar);
- printf (" = %d\n", *ap + *bp);
- result |= *ap + *bp != 1;
- if (*ap != 0)
- {
- printf ("foo = %d\n", *ap);
- result = 1;
- }
- if (*bp != 1)
- {
- printf ("bar = %d\n", *bp);
- result = 1;
- }
-
-
- /* Get variables using local dynamic model. */
- fputs ("get sum of foo and bar (LD)", stdout);
- ap = TLS_LD (foo);
- bp = TLS_LD (bar);
- printf (" = %d\n", *ap + *bp);
- result |= *ap + *bp != 1;
- if (*ap != 0)
- {
- printf ("foo = %d\n", *ap);
- result = 1;
- }
- if (*bp != 1)
- {
- printf ("bar = %d\n", *bp);
- result = 1;
- }
-
-
- /* Get variables using generic dynamic model. */
- fputs ("get sum of foo and bar (GD)", stdout);
- ap = TLS_GD (foo);
- bp = TLS_GD (bar);
- printf (" = %d\n", *ap + *bp);
- result |= *ap + *bp != 1;
- if (*ap != 0)
- {
- printf ("foo = %d\n", *ap);
- result = 1;
- }
- if (*bp != 1)
- {
- printf ("bar = %d\n", *bp);
- result = 1;
- }
-
- return result;
-#else
- return 0;
-#endif
-}
-
-
-#include "../test-skeleton.c"
diff --git a/test/tls/tst-tls3.c b/test/tls/tst-tls3.c
deleted file mode 100644
index 84be435..0000000
--- a/test/tls/tst-tls3.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* glibc test for TLS in ld.so. */
-#include <stdio.h>
-
-#include <tls.h>
-
-#ifdef USE_TLS
-# include "tls-macros.h"
-
-
-/* One define int variable, two externs. */
-COMMON_INT_DECL(foo);
-VAR_INT_DECL(bar);
-VAR_INT_DEF(baz);
-#endif
-
-
-extern int in_dso (void);
-
-
-#define TEST_FUNCTION do_test ()
-static int
-do_test (void)
-{
-#ifdef USE_TLS
- int result = 0;
- int *ap, *bp, *cp;
-
-
- /* Set the variable using the local exec model. */
- puts ("set baz to 3 (LE)");
- ap = TLS_LE (baz);
- *ap = 3;
-
-
- /* Get variables using initial exec model. */
- puts ("set variables foo and bar (IE)");
- ap = TLS_IE (foo);
- *ap = 1;
- bp = TLS_IE (bar);
- *bp = 2;
-
-
- /* Get variables using local dynamic model. */
- fputs ("get sum of foo, bar (GD) and baz (LD)", stdout);
- ap = TLS_GD (foo);
- bp = TLS_GD (bar);
- cp = TLS_LD (baz);
- printf (" = %d\n", *ap + *bp + *cp);
- result |= *ap + *bp + *cp != 6;
- if (*ap != 1)
- {
- printf ("foo = %d\n", *ap);
- result = 1;
- }
- if (*bp != 2)
- {
- printf ("bar = %d\n", *bp);
- result = 1;
- }
- if (*cp != 3)
- {
- printf ("baz = %d\n", *cp);
- result = 1;
- }
-
-
- result |= in_dso ();
-
- return result;
-#else
- return 0;
-#endif
-}
-
-
-#include "../test-skeleton.c"
diff --git a/test/tls/tst-tls4.c b/test/tls/tst-tls4.c
deleted file mode 100644
index f92ee53..0000000
--- a/test/tls/tst-tls4.c
+++ /dev/null
@@ -1,56 +0,0 @@
-#include <dlfcn.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <tls.h>
-
-
-#define TEST_FUNCTION do_test ()
-static int
-do_test (void)
-{
-#ifdef USE_TLS
- static const char modname[] = "tst-tlsmod2.so";
- int result = 0;
- int *foop;
- int (*fp) (int, int *);
- void *h;
-
- h = dlopen (modname, RTLD_LAZY);
- if (h == NULL)
- {
- printf ("cannot open '%s': %s\n", modname, dlerror ());
- exit (1);
- }
-
- fp = dlsym (h, "in_dso");
- if (fp == NULL)
- {
- printf ("cannot get symbol 'in_dso': %s\n", dlerror ());
- exit (1);
- }
-
- result |= fp (0, NULL);
-
- foop = dlsym (h, "foo");
- if (foop == NULL)
- {
- printf ("cannot get symbol 'foo' the second time: %s\n", dlerror
());
- exit (1);
- }
- if (*foop != 16)
- {
- puts ("foo != 16");
- result = 1;
- }
-
- dlclose (h);
-
- return result;
-#else
- return 0;
-#endif
-}
-
-
-#include "../test-skeleton.c"
diff --git a/test/tls/tst-tls5.c b/test/tls/tst-tls5.c
deleted file mode 100644
index a571d2c..0000000
--- a/test/tls/tst-tls5.c
+++ /dev/null
@@ -1,72 +0,0 @@
-#include <dlfcn.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <tls.h>
-
-
-#define TEST_FUNCTION do_test ()
-static int
-do_test (void)
-{
-#ifdef USE_TLS
- static const char modname[] = "tst-tlsmod2.so";
- int result = 0;
- int *foop;
- int *foop2;
- int (*fp) (int, int *);
- void *h;
-
- h = dlopen (modname, RTLD_LAZY);
- if (h == NULL)
- {
- printf ("cannot open '%s': %s\n", modname, dlerror ());
- exit (1);
- }
-
- foop = dlsym (h, "foo");
- if (foop == NULL)
- {
- printf ("cannot get symbol 'foo': %s\n", dlerror ());
- exit (1);
- }
-
- *foop = 42;
-
- fp = dlsym (h, "in_dso");
- if (fp == NULL)
- {
- printf ("cannot get symbol 'in_dso': %s\n", dlerror ());
- exit (1);
- }
-
- result |= fp (42, foop);
-
- foop2 = dlsym (h, "foo");
- if (foop2 == NULL)
- {
- printf ("cannot get symbol 'foo' the second time: %s\n", dlerror
());
- exit (1);
- }
-
- if (foop != foop2)
- {
- puts ("address of 'foo' different the second time");
- result = 1;
- }
- else if (*foop != 16)
- {
- puts ("foo != 16");
- result = 1;
- }
-
- dlclose (h);
-
- return result;
-#else
- return 0;
-#endif
-}
-
-
-#include "../test-skeleton.c"
diff --git a/test/tls/tst-tls6.c b/test/tls/tst-tls6.c
deleted file mode 100644
index 0ebc507..0000000
--- a/test/tls/tst-tls6.c
+++ /dev/null
@@ -1,107 +0,0 @@
-#include <dlfcn.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <tls.h>
-#include <link.h>
-#ifdef __UCLIBC__
-#include "dl-elf.h"
-#include "dl-hash.h"
-#endif
-
-
-#define TEST_FUNCTION do_test ()
-static int
-do_test (void)
-{
-#ifdef USE_TLS
- static const char modname[] = "tst-tlsmod2.so";
- int result = 0;
- int *foop;
- int *foop2;
- int (*fp) (int, int *);
- void *h;
- int i;
- int modid = -1;
-
- for (i = 0; i < 10; ++i)
- {
- h = dlopen (modname, RTLD_LAZY);
- if (h == NULL)
- {
- printf ("cannot open '%s': %s\n", modname, dlerror ());
- exit (1);
- }
-
- /* Dirty test code here: we peek into a private data structure.
- We make sure that the module gets assigned the same ID every
- time. The value of the first round is used. */
-#ifdef __UCLIBC__
- if (modid == -1)
- modid = ((struct dyn_elf *) h)->dyn->l_tls_modid;
- else if (((struct dyn_elf *)h)->dyn->l_tls_modid != (size_t) modid)
- {
- printf ("round %d: modid now %zu, initially %d\n",
- i,
- ((struct dyn_elf *)h)->dyn->l_tls_modid,
- modid);
- result = 1;
- }
-#else
- if (modid == -1)
- modid = ((struct link_map *) h)->l_tls_modid;
- else if (((struct link_map *) h)->l_tls_modid != modid)
- {
- printf ("round %d: modid now %zd, initially %d\n",
- i, ((struct link_map *) h)->l_tls_modid, modid);
- result = 1;
- }
-#endif
-
- foop = dlsym (h, "foo");
- if (foop == NULL)
- {
- printf ("cannot get symbol 'foo': %s\n", dlerror ());
- exit (1);
- }
-
- *foop = 42 + i;
-
- fp = dlsym (h, "in_dso");
- if (fp == NULL)
- {
- printf ("cannot get symbol 'in_dso': %s\n", dlerror ());
- exit (1);
- }
-
- result |= fp (42 + i, foop);
-
- foop2 = dlsym (h, "foo");
- if (foop2 == NULL)
- {
- printf ("cannot get symbol 'foo' the second time: %s\n", dlerror
());
- exit (1);
- }
-
- if (foop != foop2)
- {
- puts ("address of 'foo' different the second time");
- result = 1;
- }
- else if (*foop != 16)
- {
- puts ("foo != 16");
- result = 1;
- }
-
- dlclose (h);
- }
-
- return result;
-#else
- return 0;
-#endif
-}
-
-
-#include "../test-skeleton.c"
diff --git a/test/tls/tst-tls7.c b/test/tls/tst-tls7.c
deleted file mode 100644
index 2dde9af..0000000
--- a/test/tls/tst-tls7.c
+++ /dev/null
@@ -1,78 +0,0 @@
-#include <dlfcn.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <tls.h>
-#include <link.h>
-#ifdef __UCLIBC__
-#include "dl-elf.h"
-#include "dl-hash.h"
-#endif
-
-
-#define TEST_FUNCTION do_test ()
-static int
-do_test (void)
-{
-#ifdef USE_TLS
- static const char modname[] = "tst-tlsmod3.so";
- int result = 0;
- int (*fp) (void);
- void *h;
- int i;
- int modid = -1;
-
- for (i = 0; i < 10; ++i)
- {
- h = dlopen (modname, RTLD_LAZY);
- if (h == NULL)
- {
- printf ("cannot open '%s': %s\n", modname, dlerror ());
- exit (1);
- }
-
- /* Dirty test code here: we peek into a private data structure.
- We make sure that the module gets assigned the same ID every
- time. The value of the first round is used. */
-#ifdef __UCLIBC__
- if (modid == -1)
- modid = ((struct dyn_elf *) h)->dyn->l_tls_modid;
- else if (((struct dyn_elf *)h)->dyn->l_tls_modid != (size_t) modid)
- {
- printf ("round %d: modid now %zu, initially %d\n",
- i,
- ((struct dyn_elf *)h)->dyn->l_tls_modid,
- modid);
- result = 1;
- }
-#else
- if (modid == -1)
- modid = ((struct link_map *) h)->l_tls_modid;
- else if (((struct link_map *) h)->l_tls_modid != (size_t) modid)
- {
- printf ("round %d: modid now %zu, initially %d\n",
- i, ((struct link_map *) h)->l_tls_modid, modid);
- result = 1;
- }
-#endif
-
- fp = dlsym (h, "in_dso2");
- if (fp == NULL)
- {
- printf ("cannot get symbol 'in_dso2': %s\n", dlerror ());
- exit (1);
- }
-
- result |= fp ();
-
- dlclose (h);
- }
-
- return result;
-#else
- return 0;
-#endif
-}
-
-
-#include "../test-skeleton.c"
diff --git a/test/tls/tst-tls8.c b/test/tls/tst-tls8.c
deleted file mode 100644
index 140de43..0000000
--- a/test/tls/tst-tls8.c
+++ /dev/null
@@ -1,229 +0,0 @@
-#include <dlfcn.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <tls.h>
-#include <link.h>
-#ifdef __UCLIBC__
-#include "dl-elf.h"
-#include "dl-hash.h"
-#endif
-
-
-#define TEST_FUNCTION do_test ()
-static int
-do_test (void)
-{
-#ifdef USE_TLS
- static const char modname1[] = "tst-tlsmod3.so";
- static const char modname2[] = "tst-tlsmod4.so";
- int result = 0;
- int (*fp1) (void);
- int (*fp2) (int, int *);
- void *h1;
- void *h2;
- int i;
- size_t modid1 = (size_t) -1;
- size_t modid2 = (size_t) -1;
- int *bazp;
-
- for (i = 0; i < 10; ++i)
- {
- h1 = dlopen (modname1, RTLD_LAZY);
- if (h1 == NULL)
- {
- printf ("cannot open '%s': %s\n", modname1, dlerror ());
- exit (1);
- }
-
- /* Dirty test code here: we peek into a private data structure.
- We make sure that the module gets assigned the same ID every
- time. The value of the first round is used. */
-#ifdef __UCLIBC__
- if (modid1 == (size_t) -1)
- modid1 = ((struct dyn_elf *) h1)->dyn->l_tls_modid;
- else if (((struct dyn_elf *)h1)->dyn->l_tls_modid != (size_t) modid1)
- {
- printf ("round %d: modid now %zd, initially %zd\n",
- i,
- ((struct dyn_elf *)h1)->dyn->l_tls_modid,
- modid1);
- result = 1;
- }
-#else
- if (modid1 == (size_t) -1)
- modid1 = ((struct link_map *) h1)->l_tls_modid;
- else if (((struct link_map *) h1)->l_tls_modid != modid1)
- {
- printf ("round %d: modid now %zd, initially %zd\n",
- i, ((struct link_map *) h1)->l_tls_modid, modid1);
- result = 1;
- }
-#endif
-
- fp1 = dlsym (h1, "in_dso2");
- if (fp1 == NULL)
- {
- printf ("cannot get symbol 'in_dso2' in %s\n", modname1);
- exit (1);
- }
-
- result |= fp1 ();
-
-
-
- h2 = dlopen (modname2, RTLD_LAZY);
- if (h2 == NULL)
- {
- printf ("cannot open '%s': %s\n", modname2, dlerror ());
- exit (1);
- }
-
- /* Dirty test code here: we peek into a private data structure.
- We make sure that the module gets assigned the same ID every
- time. The value of the first round is used. */
-#ifdef __UCLIBC__
- if (modid2 == (size_t) -1)
- modid2 = ((struct dyn_elf *)h2)->dyn->l_tls_modid;
- else if (((struct dyn_elf *)h2)->dyn->l_tls_modid
- != (size_t) modid2)
- {
- printf ("round %d: modid now %zd, initially %zd\n",
- i,
- ((struct dyn_elf *)h2)->dyn->l_tls_modid,
- modid2);
- result = 1;
- }
-#else
- if (modid2 == (size_t) -1)
- modid2 = ((struct link_map *) h2)->l_tls_modid;
- else if (((struct link_map *) h2)->l_tls_modid != modid2)
- {
- printf ("round %d: modid now %zd, initially %zd\n",
- i, ((struct link_map *) h2)->l_tls_modid, modid2);
- result = 1;
- }
-#endif
-
- bazp = dlsym (h2, "baz");
- if (bazp == NULL)
- {
- printf ("cannot get symbol 'baz' in %s\n", modname2);
- exit (1);
- }
-
- *bazp = 42 + i;
-
- fp2 = dlsym (h2, "in_dso");
- if (fp2 == NULL)
- {
- printf ("cannot get symbol 'in_dso' in %s\n", modname2);
- exit (1);
- }
-
- result |= fp2 (42 + i, bazp);
-
- dlclose (h1);
- dlclose (h2);
-
-
- h1 = dlopen (modname1, RTLD_LAZY);
- if (h1 == NULL)
- {
- printf ("cannot open '%s': %s\n", modname1, dlerror ());
- exit (1);
- }
-
- /* Dirty test code here: we peek into a private data structure.
- We make sure that the module gets assigned the same ID every
- time. The value of the first round is used. */
-#ifdef __UCLIBC__
- if (((struct dyn_elf *)h1)->dyn->l_tls_modid
- != modid1)
- {
- printf ("round %d: modid now %zd, initially %zd\n",
- i,
- ((struct dyn_elf *)h1)->dyn->l_tls_modid,
- modid1);
- result = 1;
- }
-#else
- if (((struct link_map *) h1)->l_tls_modid != modid1)
- {
- printf ("round %d: modid now %zd, initially %zd\n",
- i, ((struct link_map *) h1)->l_tls_modid, modid1);
- result = 1;
- }
-#endif
-
- fp1 = dlsym (h1, "in_dso2");
- if (fp1 == NULL)
- {
- printf ("cannot get symbol 'in_dso2' in %s\n", modname1);
- exit (1);
- }
-
- result |= fp1 ();
-
-
-
- h2 = dlopen (modname2, RTLD_LAZY);
- if (h2 == NULL)
- {
- printf ("cannot open '%s': %s\n", modname2, dlerror ());
- exit (1);
- }
-
- /* Dirty test code here: we peek into a private data structure.
- We make sure that the module gets assigned the same ID every
- time. The value of the first round is used. */
-#ifdef __UCLIBC__
- if (((struct dyn_elf *)h2)->dyn->l_tls_modid
- != modid2)
- {
- printf ("round %d: modid now %zd, initially %zd\n",
- i,
- ((struct dyn_elf *)h2)->dyn->l_tls_modid,
- modid2);
- result = 1;
- }
-#else
- if (((struct link_map *) h2)->l_tls_modid != modid2)
- {
- printf ("round %d: modid now %zd, initially %zd\n",
- i, ((struct link_map *) h2)->l_tls_modid, modid2);
- result = 1;
- }
-#endif
-
- bazp = dlsym (h2, "baz");
- if (bazp == NULL)
- {
- printf ("cannot get symbol 'baz' in %s\n", modname2);
- exit (1);
- }
-
- *bazp = 62 + i;
-
- fp2 = dlsym (h2, "in_dso");
- if (fp2 == NULL)
- {
- printf ("cannot get symbol 'in_dso' in %s\n", modname2);
- exit (1);
- }
-
- result |= fp2 (62 + i, bazp);
-
- /* This time the dlclose calls are in reverse order. */
- dlclose (h2);
- dlclose (h1);
- }
-
- return result;
-#else
- return 0;
-#endif
-}
-
-
-#include "../test-skeleton.c"
diff --git a/test/tls/tst-tls9-static.c b/test/tls/tst-tls9-static.c
deleted file mode 100644
index 51812cc..0000000
--- a/test/tls/tst-tls9-static.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-tls9.c"
diff --git a/test/tls/tst-tls9.c b/test/tls/tst-tls9.c
deleted file mode 100644
index e317696..0000000
--- a/test/tls/tst-tls9.c
+++ /dev/null
@@ -1,42 +0,0 @@
-#include <dlfcn.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <link.h>
-#include <tls.h>
-
-#define TEST_FUNCTION do_test ()
-static int
-do_test (void)
-{
-#ifdef USE_TLS
- static const char modname1[] = "tst-tlsmod5.so";
- static const char modname2[] = "tst-tlsmod6.so";
- int result = 0;
-
- void *h1 = dlopen (modname1, RTLD_LAZY);
- if (h1 == NULL)
- {
- printf ("cannot open '%s': %s\n", modname1, dlerror ());
- result = 1;
- }
- void *h2 = dlopen (modname2, RTLD_LAZY);
- if (h2 == NULL)
- {
- printf ("cannot open '%s': %s\n", modname2, dlerror ());
- result = 1;
- }
-
- if (h1 != NULL)
- dlclose (h1);
- if (h2 != NULL)
- dlclose (h2);
-
- return result;
-#else
- return 0;
-#endif
-}
-
-
-#include "../test-skeleton.c"
diff --git a/test/tls/tst-tlsmod-at-ctor.c b/test/tls/tst-tlsmod-at-ctor.c
deleted file mode 100644
index bd04b50..0000000
--- a/test/tls/tst-tlsmod-at-ctor.c
+++ /dev/null
@@ -1,25 +0,0 @@
-#include <stdio.h>
-#include <tls.h>
-
-#define TLS_VAR_INIT_VALUE 99
-
-#ifdef USE_TLS
-__thread int tls_var __attribute__((tls_model("global-dynamic")));
-static __thread int local_tls_var __attribute__((tls_model("local-dynamic")));
-#endif
-
-void __attribute__((constructor)) libtls_ctor(void);
-void libtls_ctor(void)
-{
- printf("libtls: constructor!\n");
-#ifdef USE_TLS
- local_tls_var = TLS_VAR_INIT_VALUE;
- tls_var = local_tls_var;
-#endif
-}
-
-void __attribute__((destructor)) libtls_dtor(void);
-void libtls_dtor(void)
-{
- printf("libtls: destructor!\n");
-}
diff --git a/test/tls/tst-tlsmod1.c b/test/tls/tst-tlsmod1.c
deleted file mode 100644
index b4954ca..0000000
--- a/test/tls/tst-tlsmod1.c
+++ /dev/null
@@ -1,68 +0,0 @@
-#include <stdio.h>
-
-#include <tls.h>
-
-#ifdef USE_TLS
-#include "tls-macros.h"
-
-
-/* One define int variable, two externs. */
-COMMON_INT_DEF(foo);
-VAR_INT_DEF(bar);
-VAR_INT_DECL(baz);
-#endif
-
-extern int in_dso (void);
-
-int
-in_dso (void)
-{
- int result = 0;
-#ifdef USE_TLS
- int *ap, *bp, *cp;
-
- /* Get variables using initial exec model. */
- fputs ("get sum of foo and bar (IE)", stdout);
- __asm__ ("" ::: "memory");
- ap = TLS_IE (foo);
- bp = TLS_IE (bar);
- printf (" = %d\n", *ap + *bp);
- result |= *ap + *bp != 3;
- if (*ap != 1)
- {
- printf ("foo = %d\n", *ap);
- result = 1;
- }
- if (*bp != 2)
- {
- printf ("bar = %d\n", *bp);
- result = 1;
- }
-
-
- /* Get variables using generic dynamic model. */
- fputs ("get sum of foo and bar and baz (GD)", stdout);
- ap = TLS_GD (foo);
- bp = TLS_GD (bar);
- cp = TLS_GD (baz);
- printf (" = %d\n", *ap + *bp + *cp);
- result |= *ap + *bp + *cp != 6;
- if (*ap != 1)
- {
- printf ("foo = %d\n", *ap);
- result = 1;
- }
- if (*bp != 2)
- {
- printf ("bar = %d\n", *bp);
- result = 1;
- }
- if (*cp != 3)
- {
- printf ("baz = %d\n", *cp);
- result = 1;
- }
-#endif
-
- return result;
-}
diff --git a/test/tls/tst-tlsmod10.c b/test/tls/tst-tlsmod10.c
deleted file mode 100644
index 32e54f3..0000000
--- a/test/tls/tst-tlsmod10.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-tlsmod8.c"
diff --git a/test/tls/tst-tlsmod11.c b/test/tls/tst-tlsmod11.c
deleted file mode 100644
index 9938b57..0000000
--- a/test/tls/tst-tlsmod11.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "tst-tls10.h"
-
-#ifdef USE_TLS__THREAD
-__thread struct A a1 = { 4, 5, 6 };
-__thread struct A a2 = { 7, 8, 9 };
-#endif
diff --git a/test/tls/tst-tlsmod12.c b/test/tls/tst-tlsmod12.c
deleted file mode 100644
index 4602709..0000000
--- a/test/tls/tst-tlsmod12.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include "tst-tls10.h"
-
-#ifdef USE_TLS__THREAD
-extern __thread struct A a2 __attribute__((tls_model("initial-exec")));
-
-void
-check1 (void)
-{
- if (a1.a != 4 || a1.b != 5 || a1.c != 6)
- abort ();
- if (a2.a != 7 || a2.b != 8 || a2.c != 9)
- abort ();
-}
-#endif
diff --git a/test/tls/tst-tlsmod13.c b/test/tls/tst-tlsmod13.c
deleted file mode 100644
index beca89f..0000000
--- a/test/tls/tst-tlsmod13.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include <tls.h>
-
-#if defined USE_TLS && defined HAVE___THREAD \
- && defined HAVE_TLS_MODEL_ATTRIBUTE
-__thread int a[2] __attribute__ ((tls_model ("initial-exec")));
-#else
-int a[2];
-#endif
-
-int
-foo (void)
-{
- return a[0];
-}
diff --git a/test/tls/tst-tlsmod13a.c b/test/tls/tst-tlsmod13a.c
deleted file mode 100644
index 14b12b0..0000000
--- a/test/tls/tst-tlsmod13a.c
+++ /dev/null
@@ -1,16 +0,0 @@
-#include <tls.h>
-
-#if defined USE_TLS && defined HAVE___THREAD \
- && defined HAVE_TLS_MODEL_ATTRIBUTE
-__thread int b[2] __attribute__ ((tls_model ("initial-exec")));
-#else
-int b[2];
-#endif
-
-extern int foo (void);
-
-int
-bar (void)
-{
- return foo () + b[0];
-}
diff --git a/test/tls/tst-tlsmod14a.c b/test/tls/tst-tlsmod14a.c
deleted file mode 100644
index 0bb393d..0000000
--- a/test/tls/tst-tlsmod14a.c
+++ /dev/null
@@ -1,41 +0,0 @@
-#include <stdint.h>
-#include <stdio.h>
-
-#include <tls.h>
-
-#if USE_TLS && HAVE___THREAD
-
-#define AL 4096
-struct foo
-{
- int i;
-} __attribute ((aligned (AL)));
-
-static __thread struct foo f;
-static struct foo g;
-
-
-#ifndef FCT
-# define FCT in_dso1
-#endif
-
-
-int
-FCT (void)
-{
- puts (__func__);
-
- int result = 0;
-
- int fail = (((uintptr_t) &f) & (AL - 1)) != 0;
- printf ("&f = %p %s\n", &f, fail ? "FAIL" :
"OK");
- result |= fail;
-
- fail = (((uintptr_t) &g) & (AL - 1)) != 0;
- printf ("&g = %p %s\n", &g, fail ? "FAIL" :
"OK");
- result |= fail;
-
- return result;
-}
-
-#endif
diff --git a/test/tls/tst-tlsmod14b.c b/test/tls/tst-tlsmod14b.c
deleted file mode 100644
index 24d9cea..0000000
--- a/test/tls/tst-tlsmod14b.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define FCT in_dso2
-#include "tst-tlsmod14a.c"
diff --git a/test/tls/tst-tlsmod15a.c b/test/tls/tst-tlsmod15a.c
deleted file mode 100644
index 66c7071..0000000
--- a/test/tls/tst-tlsmod15a.c
+++ /dev/null
@@ -1,6 +0,0 @@
-extern int nonexistent_dummy_var;
-int *
-foo (void)
-{
- return &nonexistent_dummy_var;
-}
diff --git a/test/tls/tst-tlsmod15b.c b/test/tls/tst-tlsmod15b.c
deleted file mode 100644
index 4f63eab..0000000
--- a/test/tls/tst-tlsmod15b.c
+++ /dev/null
@@ -1,17 +0,0 @@
-#include "tst-tls10.h"
-
-#ifdef USE_TLS__THREAD
-__thread int mod15b_var __attribute__((tls_model("initial-exec")));
-
-int
-in_dso (void)
-{
- return mod15b_var;
-}
-#else
-int
-in_dso (void)
-{
- return 0;
-}
-#endif
diff --git a/test/tls/tst-tlsmod16a.c b/test/tls/tst-tlsmod16a.c
deleted file mode 100644
index 847c809..0000000
--- a/test/tls/tst-tlsmod16a.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <tls.h>
-
-#if defined HAVE___THREAD && defined HAVE_TLS_MODEL_ATTRIBUTE
-int __thread tlsvar;
-#else
-int tlsvar;
-#endif
diff --git a/test/tls/tst-tlsmod16b.c b/test/tls/tst-tlsmod16b.c
deleted file mode 100644
index 308e6ba..0000000
--- a/test/tls/tst-tlsmod16b.c
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <tls.h>
-
-#if defined HAVE___THREAD && defined HAVE_TLS_MODEL_ATTRIBUTE
-extern __thread int tlsvar __attribute__((tls_model("initial-exec")));
-#else
-extern int tlsvar;
-#endif
-
-void *
-in_dso (void)
-{
- return &tlsvar;
-}
diff --git a/test/tls/tst-tlsmod17a.c b/test/tls/tst-tlsmod17a.c
deleted file mode 100644
index 4d39650..0000000
--- a/test/tls/tst-tlsmod17a.c
+++ /dev/null
@@ -1,23 +0,0 @@
-#include <stdio.h>
-
-#ifndef N
-#define N 0
-#endif
-#define CONCAT1(s, n) s##n
-#define CONCAT(s, n) CONCAT1(s, n)
-
-__thread int CONCAT (v, N) = 4;
-
-int
-CONCAT (tlsmod17a, N) (void)
-{
- int *p = &CONCAT (v, N);
- /* GCC assumes &var is never NULL, add optimization barrier. */
- __asm__ __volatile__ ("" : "+r" (p));
- if (p == NULL || *p != 4)
- {
- printf ("fail %d %p\n", N, p);
- return 1;
- }
- return 0;
-}
diff --git a/test/tls/tst-tlsmod17b.c b/test/tls/tst-tlsmod17b.c
deleted file mode 100644
index 6178828..0000000
--- a/test/tls/tst-tlsmod17b.c
+++ /dev/null
@@ -1,15 +0,0 @@
-#define P(N) extern int tlsmod17a##N (void);
-#define PS P(0) P(1) P(2) P(3) P(4) P(5) P(6) P(7) P(8) P(9) \
- P(10) P(12) P(13) P(14) P(15) P(16) P(17) P(18) P(19)
-PS
-#undef P
-
-int
-tlsmod17b (void)
-{
- int res = 0;
-#define P(N) res |= tlsmod17a##N ();
- PS
-#undef P
- return res;
-}
diff --git a/test/tls/tst-tlsmod18a.c b/test/tls/tst-tlsmod18a.c
deleted file mode 100644
index e0ae65a..0000000
--- a/test/tls/tst-tlsmod18a.c
+++ /dev/null
@@ -1,21 +0,0 @@
-#include <stdio.h>
-
-#ifndef N
-# define N 0
-#endif
-
-static __thread int var = 4;
-
-int
-test (void)
-{
- int *p = &var;
- /* GCC assumes &var is never NULL, add optimization barrier. */
- __asm__ __volatile__ ("" : "+r" (p));
- if (p == NULL || *p != 4)
- {
- printf ("fail %d %p\n", N, p);
- return 1;
- }
- return 0;
-}
diff --git a/test/tls/tst-tlsmod2.c b/test/tls/tst-tlsmod2.c
deleted file mode 100644
index 4547c97..0000000
--- a/test/tls/tst-tlsmod2.c
+++ /dev/null
@@ -1,38 +0,0 @@
-#include <stdio.h>
-
-#include <tls.h>
-
-#ifdef USE_TLS
-#include "tls-macros.h"
-
-
-COMMON_INT_DEF(foo);
-
-
-int
-in_dso (int n, int *caller_foop)
-{
- int *foop;
- int result = 0;
-
- puts ("foo"); /* Make sure PLT is used before macros. */
- __asm__ ("" ::: "memory");
-
- foop = TLS_GD (foo);
-
- if (caller_foop != NULL && foop != caller_foop)
- {
- printf ("callers address of foo differs: %p vs %p\n", caller_foop,
foop);
- result = 1;
- }
- else if (*foop != n)
- {
- printf ("foo != %d\n", n);
- result = 1;
- }
-
- *foop = 16;
-
- return result;
-}
-#endif
diff --git a/test/tls/tst-tlsmod3.c b/test/tls/tst-tlsmod3.c
deleted file mode 100644
index 12505f6..0000000
--- a/test/tls/tst-tlsmod3.c
+++ /dev/null
@@ -1,41 +0,0 @@
-#include <stdio.h>
-
-#include <tls.h>
-
-#ifdef USE_TLS
-# include "tls-macros.h"
-
-extern int in_dso (int n, int *caller_foop);
-
-COMMON_INT_DEF(comm_n);
-
-
-
-
-int
-in_dso2 (void)
-{
- int *foop;
- int result = 0;
- static int n;
- int *np;
-
- puts ("foo"); /* Make sure PLT is used before macros. */
- __asm__ ("" ::: "memory");
-
- foop = TLS_GD (foo);
- np = TLS_GD (comm_n);
-
- if (n != *np)
- {
- printf ("n = %d != comm_n = %d\n", n, *np);
- result = 1;
- }
-
- result |= in_dso (*foop = 42 + n++, foop);
-
- *foop = 16;
-
- return result;
-}
-#endif
diff --git a/test/tls/tst-tlsmod4.c b/test/tls/tst-tlsmod4.c
deleted file mode 100644
index 4893cda..0000000
--- a/test/tls/tst-tlsmod4.c
+++ /dev/null
@@ -1,38 +0,0 @@
-#include <stdio.h>
-
-#include <tls.h>
-
-#ifdef USE_TLS
-# include "tls-macros.h"
-
-
-COMMON_INT_DEF(baz);
-
-
-int
-in_dso (int n, int *caller_bazp)
-{
- int *bazp;
- int result = 0;
-
- puts ("foo"); /* Make sure PLT is used before macros. */
- __asm__ ("" ::: "memory");
-
- bazp = TLS_GD (baz);
-
- if (caller_bazp != NULL && bazp != caller_bazp)
- {
- printf ("callers address of baz differs: %p vs %p\n", caller_bazp,
bazp);
- result = 1;
- }
- else if (*bazp != n)
- {
- printf ("baz != %d\n", n);
- result = 1;
- }
-
- *bazp = 16;
-
- return result;
-}
-#endif
diff --git a/test/tls/tst-tlsmod5.c b/test/tls/tst-tlsmod5.c
deleted file mode 100644
index 2ec69e1..0000000
--- a/test/tls/tst-tlsmod5.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <tls.h>
-
-#ifdef USE_TLS
-#include "tls-macros.h"
-
-COMMON_INT_DEF(foo);
-#endif
diff --git a/test/tls/tst-tlsmod6.c b/test/tls/tst-tlsmod6.c
deleted file mode 100644
index 0fda51b..0000000
--- a/test/tls/tst-tlsmod6.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <tls.h>
-
-#ifdef USE_TLS
-#include "tls-macros.h"
-
-COMMON_INT_DEF(bar);
-#endif
diff --git a/test/tls/tst-tlsmod7.c b/test/tls/tst-tlsmod7.c
deleted file mode 100644
index 944b97f..0000000
--- a/test/tls/tst-tlsmod7.c
+++ /dev/null
@@ -1,103 +0,0 @@
-#include "tst-tls10.h"
-
-#ifdef USE_TLS__THREAD
-__thread int dummy __attribute__((visibility ("hidden"))) = 12;
-__thread struct A a1 = { 4, 5, 6 };
-__thread struct A a2 = { 7, 8, 9 };
-__thread struct A a3 __attribute__((tls_model("initial-exec")))
- = { 10, 11, 12 };
-__thread struct A a4 __attribute__((tls_model("initial-exec")))
- = { 13, 14, 15 };
-static __thread struct A local1 = { 16, 17, 18 };
-static __thread struct A local2 __attribute__((tls_model("initial-exec")))
- = { 19, 20, 21 };
-
-void
-check1 (void)
-{
- if (a1.a != 4 || a1.b != 5 || a1.c != 6)
- abort ();
- if (a2.a != 22 || a2.b != 23 || a2.c != 24)
- abort ();
- if (a3.a != 10 || a3.b != 11 || a3.c != 12)
- abort ();
- if (a4.a != 25 || a4.b != 26 || a4.c != 27)
- abort ();
- if (local1.a != 16 || local1.b != 17 || local1.c != 18)
- abort ();
- if (local2.a != 19 || local2.b != 20 || local2.c != 21)
- abort ();
-}
-
-struct A *
-f1a (void)
-{
- return &a1;
-}
-
-struct A *
-f2a (void)
-{
- return &a2;
-}
-
-struct A *
-f3a (void)
-{
- return &a3;
-}
-
-struct A *
-f4a (void)
-{
- return &a4;
-}
-
-struct A *
-f5a (void)
-{
- return &local1;
-}
-
-struct A *
-f6a (void)
-{
- return &local2;
-}
-
-int
-f1b (void)
-{
- return a1.a;
-}
-
-int
-f2b (void)
-{
- return a2.b;
-}
-
-int
-f3b (void)
-{
- return a3.c;
-}
-
-int
-f4b (void)
-{
- return a4.a;
-}
-
-int
-f5b (void)
-{
- return local1.b;
-}
-
-int
-f6b (void)
-{
- return local2.c;
-}
-#endif
diff --git a/test/tls/tst-tlsmod8.c b/test/tls/tst-tlsmod8.c
deleted file mode 100644
index c1822fc..0000000
--- a/test/tls/tst-tlsmod8.c
+++ /dev/null
@@ -1,72 +0,0 @@
-#include "tst-tls10.h"
-
-#ifdef USE_TLS__THREAD
-__thread long long dummy __attribute__((visibility ("hidden"))) = 12;
-__thread struct A a2 = { 22, 23, 24 };
-__thread struct A a4 __attribute__((tls_model("initial-exec")))
- = { 25, 26, 27 };
-static __thread struct A local1 = { 28, 29, 30 };
-static __thread struct A local2 __attribute__((tls_model("initial-exec")))
- = { 31, 32, 33 };
-
-void
-check2 (void)
-{
- if (a2.a != 22 || a2.b != 23 || a2.c != 24)
- abort ();
- if (a4.a != 25 || a4.b != 26 || a4.c != 27)
- abort ();
- if (local1.a != 28 || local1.b != 29 || local1.c != 30)
- abort ();
- if (local2.a != 31 || local2.b != 32 || local2.c != 33)
- abort ();
-}
-
-struct A *
-f7a (void)
-{
- return &a2;
-}
-
-struct A *
-f8a (void)
-{
- return &a4;
-}
-
-struct A *
-f9a (void)
-{
- return &local1;
-}
-
-struct A *
-f10a (void)
-{
- return &local2;
-}
-
-int
-f7b (void)
-{
- return a2.b;
-}
-
-int
-f8b (void)
-{
- return a4.a;
-}
-
-int
-f9b (void)
-{
- return local1.b;
-}
-
-int
-f10b (void)
-{
- return local2.c;
-}
-#endif
diff --git a/test/tls/tst-tlsmod9.c b/test/tls/tst-tlsmod9.c
deleted file mode 100644
index e124144..0000000
--- a/test/tls/tst-tlsmod9.c
+++ /dev/null
@@ -1,101 +0,0 @@
-#include "tst-tls10.h"
-
-#ifdef USE_TLS__THREAD
-__thread int dummy __attribute__((visibility ("hidden"))) = 12;
-__thread struct A a1 = { 4, 5, 6 };
-__thread struct A a3 __attribute__((tls_model("initial-exec")))
- = { 10, 11, 12 };
-extern __thread struct A a4 __attribute__((tls_model("initial-exec")));
-static __thread struct A local1 = { 16, 17, 18 };
-static __thread struct A local2 __attribute__((tls_model("initial-exec")))
- = { 19, 20, 21 };
-
-void
-check1 (void)
-{
- if (a1.a != 4 || a1.b != 5 || a1.c != 6)
- abort ();
- if (a2.a != 22 || a2.b != 23 || a2.c != 24)
- abort ();
- if (a3.a != 10 || a3.b != 11 || a3.c != 12)
- abort ();
- if (a4.a != 25 || a4.b != 26 || a4.c != 27)
- abort ();
- if (local1.a != 16 || local1.b != 17 || local1.c != 18)
- abort ();
- if (local2.a != 19 || local2.b != 20 || local2.c != 21)
- abort ();
-}
-
-struct A *
-f1a (void)
-{
- return &a1;
-}
-
-struct A *
-f2a (void)
-{
- return &a2;
-}
-
-struct A *
-f3a (void)
-{
- return &a3;
-}
-
-struct A *
-f4a (void)
-{
- return &a4;
-}
-
-struct A *
-f5a (void)
-{
- return &local1;
-}
-
-struct A *
-f6a (void)
-{
- return &local2;
-}
-
-int
-f1b (void)
-{
- return a1.a;
-}
-
-int
-f2b (void)
-{
- return a2.b;
-}
-
-int
-f3b (void)
-{
- return a3.c;
-}
-
-int
-f4b (void)
-{
- return a4.a;
-}
-
-int
-f5b (void)
-{
- return local1.b;
-}
-
-int
-f6b (void)
-{
- return local2.c;
-}
-#endif
diff --git a/test/uclibcng-testrunner.sh b/test/uclibcng-testrunner.sh
deleted file mode 100644
index 943c950..0000000
--- a/test/uclibcng-testrunner.sh
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/bin/sh
-#-
-# Copyright (c) 2015
-# Thorsten "mirabilos" Glaser <tg(a)mirbsd.org>
-#
-# Provided that these terms and disclaimer and all copyright notices
-# are retained or reproduced in an accompanying document, permission
-# is granted to deal in this work without restriction, including un-
-# limited rights to use, publicly perform, distribute, sell, modify,
-# merge, give away, or sublicence.
-#
-# This work is provided "AS IS" and WITHOUT WARRANTY of any kind, to
-# the utmost extent permitted by applicable law, neither express nor
-# implied; without malicious intent or gross negligence. In no event
-# may a licensor, author or contributor be held liable for indirect,
-# direct, other damage, loss, or other issues arising in any way out
-# of dealing in the work, even if advised of the possibility of such
-# damage or existence of a defect, except proven that it results out
-# of said person's immediate fault when using the work as intended.
-#-
-# Testsuite runner
-
-die() {
- echo >&2 E: "$*"
- exit 1
-}
-
-test -s uclibcng-testrunner.in || die uclibcng-testrunner.in not found
-
-nfail=0
-npass=0
-while read expected_ret tst_src_name binary_name subdir cmd; do
- printf '.... %s\r' "$binary_name"
- (cd $subdir && eval "$cmd" >$binary_name.out 2>&1)
</dev/null
- ret=$?
- test $ret = "$expected_ret" || {
- echo "FAIL $binary_name got $ret expected $expected_ret"
- nfail=`expr $nfail + 1`
- sed 's/^/ /' <$subdir/$binary_name.out
- continue
- }
- for x in $binary_name.out $test_src_name.out -; do
- if test x"$x" = x"-"; then
- echo "PASS $binary_name"
- npass=`expr $npass + 1`
- break
- fi
- test -e "$subdir/$x.good" || continue
- if d=`diff -u "$subdir/$binary_name.out" "$subdir/$x.good"`; then
- echo "PASS $binary_name"
- npass=`expr $npass + 1`
- else
- echo "FAIL $binary_name expected output differs"
- nfail=`expr $nfail + 1`
- echo "$d" | sed 's/^/ /'
- fi
- break
- done
-done <uclibcng-testrunner.in
-echo Total failed: $nfail
-echo Total passed: $npass
-test $nfail = 0
diff --git a/test/unistd/Makefile b/test/unistd/Makefile
deleted file mode 100644
index 796d7cc..0000000
--- a/test/unistd/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc unistd tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/unistd/Makefile.in b/test/unistd/Makefile.in
deleted file mode 100644
index 5b65c13..0000000
--- a/test/unistd/Makefile.in
+++ /dev/null
@@ -1,44 +0,0 @@
-# uClibc unistd tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-TESTS_DISABLED :=
-# If LFS is not set, get rid of all *64 tests up front
-ifeq ($(UCLIBC_HAS_LFS),)
-TESTS_DISABLED += tst-preadwrite64
-endif
-
-# If we don't have LINUX_SPECIFIC, then get rid of tst-fallocate
-ifeq ($(UCLIBC_LINUX_SPECIFIC),)
-TESTS_DISABLED += tst-fallocate
-endif
-
-ifeq ($(TARGET_avr32),y)
-TESTS_DISABLED += tst-fallocate tst-posix_fallocate tst-fallocate64
-endif
-
-# The logic is similar for HAS_ADVANCED_REALTIME and
-# tst-posix_fallocate/tst-posix_fallocate64
-ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),)
-TESTS_DISABLED += tst-posix_fallocate
-endif
-
-OPTS_getopt := -abcXXX -9
-OPTS_getopt_long := --add XXX --delete YYY --verbose
-ifeq ($(UCLIBC_HAS_GNU_GETOPT),y)
-OPTS_tstgetopt := -a -b -cfoobar --required foobar --optional=bazbug --none random
--col --color --colour
-else
-# reordering is not supported, behaves as if POSIXLY_CORRECT would be set
-OPTS_tstgetopt := -a -b -cfoobar --required foobar --optional=bazbug --none --colou
--color --colour random
-endif
-
-# for embedded systems 4 GB disk space is not available
-TESTS_DISABLED += tst-posix_fallocate64 tst-fallocate64
-
-# getconf.c lives in utils/
-# Testsuite cannot currently be built with O= anyway, so hardcode path here
-getconf.c:
- $(LN_S) ../../utils/$(@F) .
-EXTRA_CLEAN += getconf.c
-TESTS_DISABLED += getconf
-CFLAGS_getconf = -DGETCONF_DIR='"$(CURDIR)"'
-shell_tst-getconf: getconf getconf_glibc
diff --git a/test/unistd/clone.c b/test/unistd/clone.c
deleted file mode 100644
index ea7e6ac..0000000
--- a/test/unistd/clone.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/* vi: set sw=4 ts=4: */
-/*
- * clone test for uClibc
- * Copyright (C) 2000-2006 by Erik Andersen <andersen(a)uclibc.org>
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <signal.h>
-#include <sched.h>
-#include <sys/wait.h>
-#include "clone_cruft.h"
-
-#define GOT1 (1 << 1)
-#define GOT2 (1 << 2)
-#define GOT3 (1 << 3)
-#define ALLGOT (GOT1|GOT2|GOT3)
-
-static void child_handler(int sig)
-{
- printf("I got a SIGCHLD\n");
-}
-
-static int clone_main(void *arg)
-{
- unsigned long input = (unsigned long)arg;
- int secs = (input / 10) * 4;
- printf("Clone got %lu, sleeping for %i secs\n", input, secs);
- sleep(secs);
- return input + 20;
-}
-
-int main(void)
-{
- int clone1, clone2, clone3;
- char clone1_stack[8192], clone2_stack[8192], clone3_stack[8192];
- int status, nostatus, result, wpid;
-
- signal(SIGCHLD, child_handler);
-
- if ((clone1 = do_clone(clone_main, clone1_stack, 0, (void*)11)) == -1) {
- perror("Clone 1 failed");
- exit(-1);
- }
- if ((clone2 = do_clone(clone_main, clone2_stack, 0, (void*)22)) == -1) {
- perror("Clone 2 failed");
- exit(-2);
- }
- if ((clone3 = do_clone(clone_main, clone3_stack, 0, (void*)33)) == -1) {
- perror("Clone 3 failed");
- exit(-3);
- }
-
- sleep(1);
- printf("Parent: waiting for the clones to die.\n");
- nostatus = status = 0;
- while (1) {
- if ((wpid = waitpid(clone1, &result, WNOHANG|__WCLONE)) == -1)
- nostatus |= GOT1;
- if (wpid == clone1) {
- status |= GOT1;
- printf("Clone1 gave back %i\n", WEXITSTATUS(result));
- }
-
- if ((wpid = waitpid(clone2, &result, WNOHANG|__WCLONE)) == -1)
- nostatus |= GOT2;
- if (wpid == clone2) {
- status |= GOT2;
- printf("Clone2 gave back %i\n", WEXITSTATUS(result));
- }
-
- if ((wpid = waitpid(clone3, &result, WNOHANG|__WCLONE)) == -1)
- nostatus |= GOT3;
- if (wpid == clone3) {
- status |= GOT3;
- printf("Clone3 gave back %i\n", WEXITSTATUS(result));
- }
-
- if (status == ALLGOT || nostatus == ALLGOT)
- break;
- }
-
- if (status == ALLGOT) {
- printf("Clones exited.\nGoodbye.\n");
- return EXIT_SUCCESS;
- } else {
- perror("Waiting for clones failed");
- return EXIT_FAILURE;
- }
-}
-
-/*
-Local Variables:
-c-file-style: "linux"
-c-basic-offset: 4
-tab-width: 4
-End:
-*/
diff --git a/test/unistd/clone_cruft.h b/test/unistd/clone_cruft.h
deleted file mode 100644
index b6a395d..0000000
--- a/test/unistd/clone_cruft.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* because people like to make things difficult */
-
-#undef do_clone
-
-#define crappy_sizeof(s) (s == NULL ? 0 : sizeof(s))
-
-#if defined __ia64__
-
-extern int __clone2 (int (*__fn) (void *__arg), void *__child_stack_base,
- size_t __child_stack_size, int __flags, void *__arg, ...);
-# define do_clone(fn, stack, flags, arg) \
- __clone2(fn, stack, crappy_sizeof(stack), flags, arg, NULL, NULL, NULL)
-
-#elif defined __hppa__
-
-# define do_clone(fn, stack, flags, arg) \
- clone(fn, stack, flags, arg)
-
-#else
-
-# define do_clone(fn, stack, flags, arg) \
- clone(fn, stack+crappy_sizeof(stack), flags, arg)
-
-#endif
diff --git a/test/unistd/errno.c b/test/unistd/errno.c
deleted file mode 100644
index 5d4fc72..0000000
--- a/test/unistd/errno.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* based originally on one the clone tests in the LTP */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <sched.h>
-#include "clone_cruft.h"
-
-__attribute__ ((__noreturn__))
-static int child_fn(void *arg)
-{
- fprintf(stderr, "in child_fn\n");
- exit(1);
-}
-
-int main(void)
-{
- int r_clone, ret_errno;
-
- r_clone = do_clone(child_fn, NULL, 0, NULL);
- ret_errno = errno;
- if (ret_errno != EINVAL || r_clone != -1) {
- fprintf(stderr, "clone: res=%d (wanted -1) errno=%d (wanted %d)\n",
- r_clone, errno, EINVAL);
- return 1;
- }
-
- return 0;
-}
diff --git a/test/unistd/exec-null.c b/test/unistd/exec-null.c
deleted file mode 100644
index 3df99f3..0000000
--- a/test/unistd/exec-null.c
+++ /dev/null
@@ -1,13 +0,0 @@
-/* make sure we handle argv[0] == NULL */
-
-#include <unistd.h>
-
-int main(int argc, char *argv[])
-{
- if (argc == 0)
- return 0;
-
- char *exec_argv[1], *exec_envp[1];
- exec_argv[0] = exec_envp[0] = NULL;
- return execve("./exec-null", exec_argv, exec_envp);
-}
diff --git a/test/unistd/fork.c b/test/unistd/fork.c
deleted file mode 100644
index 6d132d6..0000000
--- a/test/unistd/fork.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/* vi: set sw=4 ts=4: */
-/*
- * fork test for uClibc
- * Copyright (C) 2000-2006 by Erik Andersen <andersen(a)uclibc.org>
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <signal.h>
-#include <sys/wait.h>
-
-#define GOT1 (1 << 1)
-#define GOT2 (1 << 2)
-#define GOT3 (1 << 3)
-
-#ifdef __ARCH_USE_MMU__
-
-static void child_handler(int sig)
-{
- fprintf(stderr, "I got a SIGCHLD\n");
-}
-
-int main(void)
-{
- pid_t pid1, pid2, pid3;
- int status, result, wpid;
-
- signal(SIGCHLD, child_handler);
-
- if ((pid1 = fork()) == 0) {
- fprintf(stderr, "The child process sleeps 2 seconds...\n");
- sleep(4);
- fprintf(stderr, "Child exiting.\n");
- exit(-1);
- }
- if ((pid2 = fork()) == 0) {
- fprintf(stderr, "The child process sleeps 3 seconds...\n");
- sleep(3);
- fprintf(stderr, "Child exiting.\n");
- exit(-1);
- }
- if ((pid3 = fork()) == 0) {
- fprintf(stderr, "The child process sleeps 4 seconds...\n");
- sleep(2);
- fprintf(stderr, "Child exiting.\n");
- exit(-1);
- }
-
- fprintf(stderr, "Parent: waiting for the child to die.\n");
- status = 0;
- while (1) {
- wpid = waitpid(pid1, &result, WNOHANG);
- if (wpid == pid1)
- status |= GOT1;
-
- wpid = waitpid(pid2, &result, WNOHANG);
- if (wpid == pid2)
- status |= GOT2;
-
- wpid = waitpid(pid3, &result, WNOHANG);
- if (wpid == pid3)
- status |= GOT3;
-
- if (status == (GOT1 | GOT2 | GOT3))
- break;
- }
-
- fprintf(stderr, "Child process exited.\nGoodbye.\n");
- return EXIT_SUCCESS;
-}
-
-#else
-
-int main(void)
-{
- printf("Skipping test on non-mmu host!\n");
- return EXIT_SUCCESS;
-}
-
-#endif
-
-/*
-Local Variables:
-c-file-style: "linux"
-c-basic-offset: 4
-tab-width: 4
-End:
-*/
diff --git a/test/unistd/getcwd.c b/test/unistd/getcwd.c
deleted file mode 100644
index bcecec7..0000000
--- a/test/unistd/getcwd.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* vi: set sw=4 ts=4: */
-/*
- * fork test for uClibc
- * Copyright (C) 2000-2006 by Erik Andersen <andersen(a)uclibc.org>
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-int main(void)
-{
- char *foo;
- char junk[12];
- char crap[100];
- foo = getcwd(NULL, 0);
- printf("getcwd(NULL, 0)='%s'\n", foo);
- if (foo) { free(foo); }
- foo = getcwd(NULL, 100);
- printf("\ngetcwd(NULL, 100)='%s'\n", foo);
- if (foo) { free(foo); }
- foo = getcwd(junk, sizeof(junk));
- printf("\nchar junk[12];\n");
- printf("getcwd(junk, sizeof(junk))='%s'\n", foo);
- foo = getcwd(crap, sizeof(crap));
- printf("\nchar crap[100];\n");
- printf("getcwd(crap, sizeof(crap))='%s'\n", foo);
- return EXIT_SUCCESS;
-}
-
-/*
-Local Variables:
-c-file-style: "linux"
-c-basic-offset: 4
-tab-width: 4
-End:
-*/
diff --git a/test/unistd/getopt.c b/test/unistd/getopt.c
deleted file mode 100644
index 401765c..0000000
--- a/test/unistd/getopt.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Getopt tests */
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <getopt.h>
-
-
-int main (int argc, char **argv)
-{
- int c;
- int digit_optind = 0;
-
- while (1)
- {
- int this_option_optind = optind ? optind : 1;
-
- c = getopt (argc, argv, "abc:d:0123456789");
- if (c == EOF)
- break;
-
- switch (c)
- {
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- if (digit_optind != 0 && digit_optind != this_option_optind)
- printf ("digits occur in two different argv-elements.\n");
- digit_optind = this_option_optind;
- printf ("option %c\n", c);
- break;
-
- case 'a':
- printf ("option a\n");
- break;
-
- case 'b':
- printf ("option b\n");
- break;
-
- case 'c':
- printf ("option c with value `%s'\n", optarg);
- break;
-
- case '?':
- break;
-
- default:
- printf ("?? getopt returned character code 0%o ??\n", c);
- }
- }
-
- if (optind < argc)
- {
- printf ("non-option ARGV-elements: ");
- while (optind < argc)
- printf ("%s ", argv[optind++]);
- printf ("\n");
- }
- exit (0);
-}
-
diff --git a/test/unistd/getopt_long.c b/test/unistd/getopt_long.c
deleted file mode 100644
index 4064e22..0000000
--- a/test/unistd/getopt_long.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/* Getopt tests */
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <getopt.h>
-
-
-int main (int argc, char **argv)
-{
- int c;
- int digit_optind = 0;
-
- while (1)
- {
- int this_option_optind = optind ? optind : 1;
- int option_index = 0;
- static struct option long_options[] =
- {
- {"add", 1, 0, 0},
- {"append", 0, 0, 0},
- {"delete", 1, 0, 0},
- {"verbose", 0, 0, 0},
- {"create", 0, 0, 0},
- {"file", 1, 0, 0},
- {0, 0, 0, 0}
- };
-
- c = getopt_long (argc, argv, "abc:d:0123456789",
- long_options, &option_index);
- if (c == EOF)
- break;
-
- switch (c)
- {
- case 0:
- printf ("option %s", long_options[option_index].name);
- if (optarg)
- printf (" with arg %s", optarg);
- printf ("\n");
- break;
-
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- if (digit_optind != 0 && digit_optind != this_option_optind)
- printf ("digits occur in two different argv-elements.\n");
- digit_optind = this_option_optind;
- printf ("option %c\n", c);
- break;
-
- case 'a':
- printf ("option a\n");
- break;
-
- case 'b':
- printf ("option b\n");
- break;
-
- case 'c':
- printf ("option c with value `%s'\n", optarg);
- break;
-
- case 'd':
- printf ("option d with value `%s'\n", optarg);
- break;
-
- case '?':
- break;
-
- default:
- printf ("?? getopt returned character code 0%o ??\n", c);
- }
- }
-
- if (optind < argc)
- {
- printf ("non-option ARGV-elements: ");
- while (optind < argc)
- printf ("%s ", argv[optind++]);
- printf ("\n");
- }
-
- exit (0);
-}
-
diff --git a/test/unistd/tst-fallocate.c b/test/unistd/tst-fallocate.c
deleted file mode 100644
index fc81781..0000000
--- a/test/unistd/tst-fallocate.c
+++ /dev/null
@@ -1,166 +0,0 @@
-#include <fcntl.h>
-#include <sys/stat.h>
-
-#ifndef TST_FALLOCATE64
-# define stat64 stat
-# define fstat64 fstat
-# else
-# ifndef O_LARGEFILE
-# error no O_LARGEFILE but you want to test with LFS enabled
-# endif
-#endif
-
-static void do_prepare(void);
-static int do_test(void);
-#define PREPARE(argc, argv) do_prepare ()
-#define TEST_FUNCTION do_test ()
-#include <test-skeleton.c>
-
-static int fd;
-static void
-do_prepare (void)
-{
- fd = create_temp_file ("tst-fallocate.", NULL);
- if (fd == -1)
- {
- printf ("cannot create temporary file: %m\n");
- exit (1);
- }
-}
-
-
-static int
-do_test (void)
-{
- struct stat64 st;
- int c;
- char garbage[4096];
- blkcnt_t blksb4;
-
- if (fstat64 (fd, &st) != 0)
- {
- puts ("1st fstat failed");
- return 1;
- }
-
- if (st.st_size != 0)
- {
- puts ("file not created with size 0");
- return 1;
- }
-
- /* This is the default mode which is identical to posix_fallocate().
- Note: we need a few extra blocks for FALLOC_FL_PUNCH_HOLE below.
- While block sizes vary, we'll assume eight 4K blocks for good measure. */
- if (fallocate (fd, 0, 8 * 4096, 128) != 0)
- {
- puts ("1st fallocate call failed");
- return 1;
- }
-
- if (fstat64 (fd, &st) != 0)
- {
- puts ("2nd fstat failed");
- return 1;
- }
-
- if (st.st_size != 8 * 4096 + 128)
- {
- printf ("file size after 1st fallocate call is %llu, expected %u\n",
- (unsigned long long int) st.st_size, 8u * 4096u + 128u);
- return 1;
- }
-
- /* Without FALLOC_FL_KEEP_SIZE, this would increaste the size of the file. */
- if (fallocate (fd, FALLOC_FL_KEEP_SIZE, 0, 16 * 4096) != 0)
- {
- puts ("2nd fallocate call failed");
- return 1;
- }
-
- if (fstat64 (fd, &st) != 0)
- {
- puts ("3rd fstat failed");
- return 1;
- }
-
- if (st.st_size != 8 * 4096 + 128)
- {
- printf ("file size changed in 2nd fallocate call to %llu, expected
%u\n",
- (unsigned long long int) st.st_size, 8u * 4096u + 128u);
- return 1;
- }
-
- /* Let's fill up the first eight 4k blocks with 'x' to force some
allocations. */
-
- memset(garbage, 'x', 4096);
- for(c=0; c < 8; c++)
- if(write(fd, garbage, 4096) == -1)
- {
- puts ("write failed");
- return 1;
- }
-
- if (fstat64 (fd, &st) != 0)
- {
- puts ("4th fstat failed");
- return 1;
- }
-
- blksb4 = st.st_blocks;
-
- /* Let's punch a hole in the entire file, turning it effectively into a sparse
file. */
- if (fallocate (fd, FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE, 0, 8 * 4096 + 128) !=
0)
- {
- puts ("3rd fallocate call failed");
- return 1;
- }
-
- if (fstat64 (fd, &st) != 0)
- {
- puts ("5th fstat failed");
- return 1;
- }
-
- if (st.st_size != 8 * 4096 + 128)
- {
- printf ("file size after 3rd fallocate call is %llu, expected %u\n",
- (unsigned long long int) st.st_size, 8u * 4096u + 128u);
- return 1;
- }
-
- /* The number of allocated blocks should decrease. I hope this works on
- all filesystems! */
- if (st.st_blocks >= blksb4)
- {
- printf ("number of blocks after 3rd fallocate call is %lu, expected less than
%lu\n",
- (unsigned long int) st.st_blocks, blksb4);
- return 1;
- }
-
-#ifdef TST_FALLOCATE64
- /* We'll just do a mode = 0 test for fallocate64() */
- if (fallocate64 (fd, 0, 4097ULL, 4294967295ULL + 2ULL) != 0)
- {
- puts ("1st fallocate64 call failed");
- return 1;
- }
-
- if (fstat64 (fd, &st) != 0)
- {
- puts ("6th fstat failed");
- return 1;
- }
-
- if (st.st_size != 4097ULL + 4294967295ULL + 2ULL)
- {
- printf ("file size after 1st fallocate64 call is %llu, expected %llu\n",
- (unsigned long long int) st.st_size, 4097ULL + 4294967295ULL + 2ULL);
- return 1;
- }
-#endif
- close (fd);
-
- return 0;
-}
-
diff --git a/test/unistd/tst-fallocate64.c b/test/unistd/tst-fallocate64.c
deleted file mode 100644
index 720428f..0000000
--- a/test/unistd/tst-fallocate64.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define TST_FALLOCATE64
-#include "tst-fallocate.c"
diff --git a/test/unistd/tst-getconf.sh b/test/unistd/tst-getconf.sh
deleted file mode 100755
index 3a2aa4e..0000000
--- a/test/unistd/tst-getconf.sh
+++ /dev/null
@@ -1,240 +0,0 @@
-#! /bin/sh
-
-basedir="."
-
-# make sure to use the same locale everywhere.
-LC_ALL=C
-export LC_ALL
-LANG=C
-export LANG
-
-for suffix in _glibc ''
-do
-binary=$basedir/getconf$suffix
-logfile=$basedir/tst-getconf$suffix.out
-rm -f $logfile
-
-result=0
-while read name; do
- case "$name" in
- "#"*) continue;;
- esac
- echo -n "getconf $name: " >> $logfile
- $binary "$name" 2>> $logfile >> $logfile
- if test $? -ne 0; then
- echo "*** $name FAILED" >> $logfile
- result=1
- fi
-done <<EOF
-AIO_LISTIO_MAX
-AIO_MAX
-AIO_PRIO_DELTA_MAX
-ARG_MAX
-ATEXIT_MAX
-BC_BASE_MAX
-BC_DIM_MAX
-BC_SCALE_MAX
-BC_STRING_MAX
-CHILD_MAX
-COLL_WEIGHTS_MAX
-DELAYTIMER_MAX
-EXPR_NEST_MAX
-HOST_NAME_MAX
-IOV_MAX
-LINE_MAX
-LOGIN_NAME_MAX
-NGROUPS_MAX
-MQ_OPEN_MAX
-MQ_PRIO_MAX
-OPEN_MAX
-_POSIX_ADVISORY_INFO
-_POSIX_BARRIERS
-_POSIX_ASYNCHRONOUS_IO
-_POSIX_BASE
-_POSIX_C_LANG_SUPPORT
-_POSIX_C_LANG_SUPPORT_R
-_POSIX_CLOCK_SELECTION
-_POSIX_CPUTIME
-_POSIX_DEVICE_IO
-_POSIX_DEVICE_SPECIFIC
-_POSIX_DEVICE_SPECIFIC_R
-_POSIX_FD_MGMT
-_POSIX_FIFO
-_POSIX_FILE_ATTRIBUTES
-_POSIX_FILE_LOCKING
-_POSIX_FILE_SYSTEM
-_POSIX_FSYNC
-_POSIX_JOB_CONTROL
-_POSIX_MAPPED_FILES
-_POSIX_MEMLOCK
-_POSIX_MEMLOCK_RANGE
-_POSIX_MEMORY_PROTECTION
-_POSIX_MESSAGE_PASSING
-_POSIX_MONOTONIC_CLOCK
-_POSIX_MULTI_PROCESS
-_POSIX_NETWORKING
-_POSIX_PIPE
-_POSIX_PRIORITIZED_IO
-_POSIX_PRIORITY_SCHEDULING
-_POSIX_READER_WRITER_LOCKS
-_POSIX_REALTIME_SIGNALS
-_POSIX_REGEXP
-_POSIX_SAVED_IDS
-_POSIX_SEMAPHORES
-_POSIX_SHARED_MEMORY_OBJECTS
-_POSIX_SHELL
-_POSIX_SIGNALS
-_POSIX_SINGLE_PROCESS
-_POSIX_SPAWN
-_POSIX_SPIN_LOCKS
-_POSIX_SPORADIC_SERVER
-_POSIX_SYNCHRONIZED_IO
-_POSIX_SYSTEM_DATABASE
-_POSIX_SYSTEM_DATABASE_R
-_POSIX_THREAD_ATTR_STACKADDR
-_POSIX_THREAD_ATTR_STACKSIZE
-_POSIX_THREAD_CPUTIME
-_POSIX_THREAD_PRIO_INHERIT
-_POSIX_THREAD_PRIO_PROTECT
-_POSIX_THREAD_PRIORITY_SCHEDULING
-_POSIX_THREAD_PROCESS_SHARED
-_POSIX_THREAD_SAFE_FUNCTIONS
-_POSIX_THREAD_SPORADIC_SERVER
-_POSIX_THREADS
-_POSIX_TIMEOUTS
-_POSIX_TIMERS
-_POSIX_TRACE
-_POSIX_TRACE_EVENT_FILTER
-_POSIX_TRACE_INHERIT
-_POSIX_TRACE_LOG
-_POSIX_TYPED_MEMORY_OBJECTS
-_POSIX_USER_GROUPS
-_POSIX_USER_GROUPS_R
-_POSIX_VERSION
-_POSIX_V7_ILP32_OFF32
-_POSIX_V7_ILP32_OFFBIG
-_POSIX_V7_LP64_OFF64
-_POSIX_V7_LPBIG_OFFBIG
-#_POSIX_V7_WIDTH_RESTRICTED_ENVS
-POSIX2_C_BIND
-POSIX2_C_DEV
-POSIX2_C_VERSION
-POSIX2_CHAR_TERM
-POSIX2_FORT_DEV
-POSIX2_FORT_RUN
-POSIX2_LOCALEDEF
-POSIX2_PBS
-POSIX2_PBS_ACCOUNTING
-POSIX2_PBS_LOCATE
-POSIX2_PBS_MESSAGE
-POSIX2_PBS_TRACK
-POSIX2_SW_DEV
-POSIX2_UPE
-POSIX2_VERSION
-_REGEX_VERSION
-PAGE_SIZE
-PAGESIZE
-PTHREAD_DESTRUCTOR_ITERATIONS
-PTHREAD_KEYS_MAX
-PTHREAD_STACK_MIN
-PTHREAD_THREADS_MAX
-RE_DUP_MAX
-RTSIG_MAX
-SEM_NSEMS_MAX
-SEM_VALUE_MAX
-SIGQUEUE_MAX
-STREAM_MAX
-SYMLOOP_MAX
-TIMER_MAX
-TTY_NAME_MAX
-TZNAME_MAX
-#_XBS5_ILP32_OFF32
-#_XBS5_ILP32_OFFBIG
-#_XBS5_LP64_OFF64
-#_XBS5_LPBIG_OFFBIG
-_XOPEN_CRYPT
-_XOPEN_ENH_I18N
-_XOPEN_LEGACY
-_XOPEN_REALTIME
-_XOPEN_REALTIME_THREADS
-_XOPEN_SHM
-_XOPEN_UNIX
-_XOPEN_VERSION
-_XOPEN_XCU_VERSION
-PATH
-#POSIX_V7_ILP32_OFF32_CFLAGS
-#POSIX_V7_ILP32_OFF32_LDFLAGS
-#POSIX_V7_ILP32_OFF32_LIBS
-#POSIX_V7_ILP32_OFF32_LINTFLAGS
-#POSIX_V7_ILP32_OFFBIG_CFLAGS
-#POSIX_V7_ILP32_OFFBIG_LDFLAGS
-#POSIX_V7_ILP32_OFFBIG_LIBS
-#POSIX_V7_ILP32_OFFBIG_LINTFLAGS
-#POSIX_V7_LP64_OFF64_CFLAGS
-#POSIX_V7_LP64_OFF64_LDFLAGS
-#POSIX_V7_LP64_OFF64_LIBS
-#POSIX_V7_LP64_OFF64_LINTFLAGS
-#POSIX_V7_LPBIG_OFFBIG_CFLAGS
-#POSIX_V7_LPBIG_OFFBIG_LDFLAGS
-#POSIX_V7_LPBIG_OFFBIG_LIBS
-#POSIX_V7_LPBIG_OFFBIG_LINTFLAGS
-#XBS5_ILP32_OFF32_CFLAGS
-#XBS5_ILP32_OFF32_LDFLAGS
-#XBS5_ILP32_OFF32_LIBS
-#XBS5_ILP32_OFF32_LINTFLAGS
-#XBS5_ILP32_OFFBIG_CFLAGS
-#XBS5_ILP32_OFFBIG_LDFLAGS
-#XBS5_ILP32_OFFBIG_LIBS
-#XBS5_ILP32_OFFBIG_LINTFLAGS
-#XBS5_LP64_OFF64_CFLAGS
-#XBS5_LP64_OFF64_LDFLAGS
-#XBS5_LP64_OFF64_LIBS
-#XBS5_LP64_OFF64_LINTFLAGS
-#XBS5_LPBIG_OFFBIG_CFLAGS
-#XBS5_LPBIG_OFFBIG_LDFLAGS
-#XBS5_LPBIG_OFFBIG_LIBS
-#XBS5_LPBIG_OFFBIG_LINTFLAGS
-_NPROCESSORS_ONLN
-_NPROCESSORS_CONF
-EOF
-
-while read name; do
- echo -n "getconf $name /: " >> $logfile
- $binary "$name" / 2>> $logfile >> $logfile
- if test $? -ne 0; then
- echo "*** $name FAILED" >> $logfile
- result=1
- fi
-done <<EOF
-FILESIZEBITS
-LINK_MAX
-MAX_CANON
-MAX_INPUT
-NAME_MAX
-PATH_MAX
-PIPE_BUF
-POSIX_ALLOC_SIZE_MIN
-POSIX_REC_INCR_XFER_SIZE
-POSIX_REC_MAX_XFER_SIZE
-POSIX_REC_MIN_XFER_SIZE
-POSIX_REC_XFER_ALIGN
-SYMLINK_MAX
-_POSIX_CHOWN_RESTRICTED
-_POSIX_NO_TRUNC
-_POSIX_VDISABLE
-_POSIX_ASYNC_IO
-_POSIX_PRIO_IO
-_POSIX_SYNC_IO
-EOF
-
-done
-exit $result
-
-# Preserve executable bits for this shell script.
-Local Variables:
-eval:(defun frobme () (set-file-modes buffer-file-name file-mode))
-eval:(make-local-variable 'file-mode)
-eval:(setq file-mode (file-modes (buffer-file-name)))
-eval:(make-local-variable 'after-save-hook)
-eval:(add-hook 'after-save-hook 'frobme)
-End:
diff --git a/test/unistd/tst-posix_fallocate.c b/test/unistd/tst-posix_fallocate.c
deleted file mode 100644
index d41c604..0000000
--- a/test/unistd/tst-posix_fallocate.c
+++ /dev/null
@@ -1,127 +0,0 @@
-#include <fcntl.h>
-#include <sys/stat.h>
-
-#ifndef TST_POSIX_FALLOCATE64
-# define stat64 stat
-# define fstat64 fstat
-# else
-# ifndef O_LARGEFILE
-# error no O_LARGEFILE but you want to test with LFS enabled
-# endif
-#endif
-
-static void do_prepare (void);
-#define PREPARE(argc, argv) do_prepare ()
-static int do_test (void);
-#define TEST_FUNCTION do_test ()
-#include <test-skeleton.c>
-
-static int fd;
-static void
-do_prepare (void)
-{
- fd = create_temp_file ("tst-posix_fallocate.", NULL);
- if (fd == -1)
- {
- printf ("cannot create temporary file: %m\n");
- exit (1);
- }
-}
-
-
-static int
-do_test (void)
-{
- struct stat64 st;
-
- if (fstat64 (fd, &st) != 0)
- {
- puts ("1st fstat failed");
- return 1;
- }
-
- if (st.st_size != 0)
- {
- puts ("file not created with size 0");
- return 1;
- }
-
- if (posix_fallocate (fd, 512, 768) != 0)
- {
- puts ("1st posix_fallocate call failed");
- return 1;
- }
-
- if (fstat64 (fd, &st) != 0)
- {
- puts ("2nd fstat failed");
- return 1;
- }
-
- if (st.st_size != 512 + 768)
- {
- printf ("file size after 1st posix_fallocate call is %llu, expected
%u\n",
- (unsigned long long int) st.st_size, 512u + 768u);
- return 1;
- }
-
- if (posix_fallocate (fd, 0, 1024) != 0)
- {
- puts ("2nd posix_fallocate call failed");
- return 1;
- }
-
- if (fstat64 (fd, &st) != 0)
- {
- puts ("3rd fstat failed");
- return 1;
- }
-
- if (st.st_size != 512 + 768)
- {
- puts ("file size changed in 2nd posix_fallocate");
- return 1;
- }
-
- if (posix_fallocate (fd, 2048, 64) != 0)
- {
- puts ("3rd posix_fallocate call failed");
- return 1;
- }
-
- if (fstat64 (fd, &st) != 0)
- {
- puts ("4th fstat failed");
- return 1;
- }
-
- if (st.st_size != 2048 + 64)
- {
- printf ("file size after 3rd posix_fallocate call is %llu, expected
%u\n",
- (unsigned long long int) st.st_size, 2048u + 64u);
- return 1;
- }
-#ifdef TST_POSIX_FALLOCATE64
- if (posix_fallocate64 (fd, 4097ULL, 4294967295ULL + 2ULL) != 0)
- {
- puts ("4th posix_fallocate call failed");
- return 1;
- }
-
- if (fstat64 (fd, &st) != 0)
- {
- puts ("5th fstat failed");
- return 1;
- }
-
- if (st.st_size != 4097ULL + 4294967295ULL + 2ULL)
- {
- printf ("file size after 4th posix_fallocate call is %llu, expected
%llu\n",
- (unsigned long long int) st.st_size, 4097ULL + 4294967295ULL + 2ULL);
- return 1;
- }
-#endif
- close (fd);
-
- return 0;
-}
diff --git a/test/unistd/tst-posix_fallocate64.c b/test/unistd/tst-posix_fallocate64.c
deleted file mode 100644
index b1ee0ff..0000000
--- a/test/unistd/tst-posix_fallocate64.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define TST_POSIX_FALLOCATE64
-#include "tst-posix_fallocate.c"
diff --git a/test/unistd/tst-preadwrite.c b/test/unistd/tst-preadwrite.c
deleted file mode 100644
index 66a1c0a..0000000
--- a/test/unistd/tst-preadwrite.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/* Tests for pread and pwrite.
- Copyright (C) 1998, 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)cygnus.com>om>, 1998.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <error.h>
-#include <string.h>
-#include <unistd.h>
-
-
-/* Allow testing of the 64-bit versions as well. */
-#ifndef PREAD
-# define PREAD pread
-# define PWRITE pwrite
-#endif
-
-#define STRINGIFY(s) STRINGIFY2 (s)
-#define STRINGIFY2(s) #s
-
-/* Prototype for our test function. */
-extern void do_prepare (int argc, char *argv[]);
-extern int do_test (int argc, char *argv[]);
-
-/* We have a preparation function. */
-#define PREPARE do_prepare
-
-/* We might need a bit longer timeout. */
-#define TIMEOUT 20 /* sec */
-
-/* This defines the `main' function and some more. */
-#include "../test-skeleton.c"
-
-/* These are for the temporary file we generate. */
-char *name;
-int fd;
-
-void
-do_prepare (int argc, char *argv[])
-{
- char name_len;
-
-#define FNAME FNAME2(TRUNCATE)
-#define FNAME2(s) "/" STRINGIFY(s) "XXXXXX"
-
- name_len = strlen (test_dir);
- name = malloc (name_len + sizeof (FNAME));
- if (name == NULL)
- error (EXIT_FAILURE, errno, "cannot allocate file name");
- mempcpy (mempcpy (name, test_dir, name_len), FNAME, sizeof (FNAME));
- add_temp_file (name);
-
- /* Open our test file. */
- fd = mkstemp (name);
- if (fd == -1)
- error (EXIT_FAILURE, errno, "cannot open test file `%s'", name);
-}
-
-
-int
-do_test (int argc, char *argv[])
-{
- char buf[1000];
- char res[1000];
- int i;
-
- memset (buf, '\0', sizeof (buf));
- memset (res, '\xff', sizeof (res));
-
- if (write (fd, buf, sizeof (buf)) != sizeof (buf))
- error (EXIT_FAILURE, errno, "during write");
-
- for (i = 100; i < 200; ++i)
- buf[i] = i;
- if (PWRITE (fd, buf + 100, 100, 100) != 100)
- error (EXIT_FAILURE, errno, "during %s", STRINGIFY (PWRITE));
-
- for (i = 450; i < 600; ++i)
- buf[i] = i;
- if (PWRITE (fd, buf + 450, 150, 450) != 150)
- error (EXIT_FAILURE, errno, "during %s", STRINGIFY (PWRITE));
-
- if (PREAD (fd, res, sizeof (buf) - 50, 50) != sizeof (buf) - 50)
- error (EXIT_FAILURE, errno, "during %s", STRINGIFY (PREAD));
-
- close (fd);
- unlink (name);
-
- return memcmp (buf + 50, res, sizeof (buf) - 50);
-}
diff --git a/test/unistd/tst-preadwrite64.c b/test/unistd/tst-preadwrite64.c
deleted file mode 100644
index a0ec021..0000000
--- a/test/unistd/tst-preadwrite64.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Tests for pread64 and pwrite64.
- Copyright (C) 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)cygnus.com>om>, 1998.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#define PREAD pread64
-#define PWRITE pwrite64
-
-#include "tst-preadwrite.c"
diff --git a/test/unistd/tst-pselect.c b/test/unistd/tst-pselect.c
deleted file mode 100644
index cab9451..0000000
--- a/test/unistd/tst-pselect.c
+++ /dev/null
@@ -1,51 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <errno.h>
-#include <signal.h>
-#include <sys/types.h>
-#include <sys/select.h>
-
-// our SIGALRM handler
-void handler(int signum) {
- (void)signum;
- puts("got signal\n");
-}
-
-static int
-do_test (void)
-{
- int rc;
- sigset_t wait_mask, mask_sigchld;
- struct sigaction act;
-
- // block SIGALRM. We want to handle it only when we're ready
- sigemptyset(&mask_sigchld);
- sigaddset(&mask_sigchld, SIGALRM);
- sigprocmask(SIG_BLOCK, &mask_sigchld, &wait_mask);
- sigdelset(&wait_mask, SIGALRM);
-
- // register a signal handler so we can see when the signal arrives
- memset(&act, 0, sizeof(act));
- sigemptyset(&act.sa_mask); // just in case an empty set isn't all 0's (total
paranoia)
- act.sa_handler = handler;
- sigaction(SIGALRM, &act, NULL);
-
- // send ourselves a SIGARLM. It will pend until we unblock that signal in pselect()
- printf("sending ourselves a signal\n");
- kill(getpid(), SIGALRM);
-
- printf("signal is pending; calling pselect()\n");
- rc = pselect(0, NULL, NULL, NULL, NULL, &wait_mask);
- if (rc != -1 || errno != EINTR) {
- int e = errno;
- printf("pselect() returned %d, errno %d (%s)\n", rc, e, strerror(e));
- exit(1);
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include <test-skeleton.c>
diff --git a/test/unistd/tstgetopt.c b/test/unistd/tstgetopt.c
deleted file mode 100644
index 1c1263e..0000000
--- a/test/unistd/tstgetopt.c
+++ /dev/null
@@ -1,76 +0,0 @@
-#include <getopt.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-
-int
-main (int argc, char **argv)
-{
- static const struct option options[] =
- {
- {"required", required_argument, NULL, 'r'},
- {"optional", optional_argument, NULL, 'o'},
- {"none", no_argument, NULL, 'n'},
- {"color", no_argument, NULL, 'C'},
- {"colour", no_argument, NULL, 'C'},
- {NULL, 0, NULL, 0 }
- };
-
- int aflag = 0;
- int bflag = 0;
- char *cvalue = NULL;
- int Cflag = 0;
- int nflag = 0;
- int idx;
- int c;
- int result = 0;
-
- while ((c = getopt_long (argc, argv, "abc:", options, NULL)) >= 0)
- switch (c)
- {
- case 'a':
- aflag = 1;
- break;
- case 'b':
- bflag = 1;
- break;
- case 'c':
- cvalue = optarg;
- break;
- case 'C':
- ++Cflag;
- break;
- case '?':
- fputs ("Unknown option.\n", stderr);
- return 1;
- default:
- fprintf (stderr, "This should never happen!\n");
- return 1;
-
- case 'r':
- printf ("--required %s\n", optarg);
- result |= strcmp (optarg, "foobar") != 0;
- break;
- case 'o':
- printf ("--optional %s\n", optarg);
- result |= optarg == NULL || strcmp (optarg, "bazbug") != 0;
- break;
- case 'n':
- puts ("--none");
- nflag = 1;
- break;
- }
-
- printf ("aflag = %d, bflag = %d, cvalue = %s, Cflags = %d, nflag = %d\n",
- aflag, bflag, cvalue, Cflag, nflag);
-
- result |= (aflag != 1 || bflag != 1 || cvalue == NULL
- || strcmp (cvalue, "foobar") != 0 || Cflag != 3 || nflag != 1);
-
- for (idx = optind; idx < argc; idx++)
- printf ("Non-option argument %s\n", argv[idx]);
-
- result |= optind + 1 != argc || strcmp (argv[optind], "random") != 0;
-
- return result;
-}
diff --git a/test/unistd/vfork.c b/test/unistd/vfork.c
deleted file mode 100644
index 2955839..0000000
--- a/test/unistd/vfork.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* vi: set sw=4 ts=4: */
-/*
- * vfork test for uClibc
- * Copyright (C) 2000-2006 by Erik Andersen <andersen(a)uclibc.org>
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/wait.h>
-#include <sys/types.h>
-
-
-int main(void)
-{
- pid_t pid;
- int status, wpid;
- char *argv[] = {
- "/bin/ls",
- "-laF",
- NULL,
- };
-
- clearenv();
- if ((pid = vfork()) == 0) {
- printf("Hi. I'm the child process...\n");
- execvp(argv[0], argv);
- _exit(0);
- }
-
- printf("Hello. I'm the parent process.\n");
- while (1) {
- wpid = wait(&status);
- if (wpid > 0 && wpid != pid) {
- continue;
- }
- if (wpid == pid)
- break;
- }
-
- printf("Child process exited.\nGoodbye.\n");
- return EXIT_SUCCESS;
-}
-
-/*
-Local Variables:
-c-file-style: "linux"
-c-basic-offset: 4
-tab-width: 4
-End:
-*/
hooks/post-receive
--
uClibc-ng - small C library for embedded systems