tests


Log

Author Commit Date CI Message
Pedro Alves c907efdb 2016-11-14T23:08:21 snippet/c++defs: fix real-floating arg functions in C++ mode Also, define isfinite, isinf, isnan, signbit in the gnulib namespace instead of in the global namespace. * build-aux/snippet/c++defs.h (_GL_BEGIN_NAMESPACE) (_GL_END_NAMESPACE): New. * lib/math.in.h (_GL_MATH_CXX_REAL_FLOATING_DECL_2): Use them. (isfinite, isinf, isnan, signbit) [__cplusplus && GNULIB_NAMESPACE]: Define them in the GNULIB_NAMESPACE namespace instead of in the global namespace. * tests/test-math-c++.cc: Check that the isfinite, isinf, isnan, signbit overloads exist in the GNULIB_NAMESPACE namespace, instead of in the global namespace.
Pádraig Brady 2f8b355a 2016-10-19T14:46:14 strftime,strptime: support %q to represent the quarter * lib/strftime.c (strftime_case_): Add %q case. * lib/strptime.c (__strptime_internal): Likewise. * tests/test-strftime.c (quarter_test): A new test case.
John David Anglin 3c722722 2016-10-26T17:16:01 getprogname: port to HP-UX See Bug#24805. * lib/getprogname.c (getprogname) [__hpux]: Port. * tests/test-getprogname.c (STREQ) [__hpux]: Special-case for HP-UX limitations on program name length.
Bruno Haible 0edeb1be 2016-10-17T02:16:57 system-quote tests: Avoid compiler warning on AIX. * tests/test-system-quote-child.c (fopen): Redefine like the system's <stdio.h> does.
Bruno Haible 5f680f24 2016-10-16T16:59:45 Fix some "gcc -Wall" warnings. * tests/test-ffsl.c (main): Use variable x, not i. * tests/test-posix_spawn3.c (parent_main): Consider the return value of freopen. * tests/test-sethostname1.c (main): Explicitly ignore the return value of sethostname.
Paul Eggert 57adc478 2016-10-20T15:35:02 quotearg-tests: pacify gcc -Wall Problem reported by Bruno Haible in: http://lists.gnu.org/archive/html/bug-gnulib/2016-10/msg00066.html * tests/test-quotearg-simple.c (use_quote_double_quotes): Move here ... * tests/test-quotearg.h: ... from here.
Pádraig Brady 8c70d237 2016-10-18T13:00:07 quotearg: never write beyond the returned length * lib/quotearg.c (quotearg_buffer_restyled): Switch to a read-only scan of the string when we initially encounter a single quote when shell quoting, so that if we then switch to a more concise quoting method we will not have written beyond that returned length. This is significant for sh-quote, which has separate routines to determine the length and do the actual quoting. * tests/test-quotearg.h: Reinstate the buffer bounds checking now that we never write more than the returned length.
Bruno Haible f4d66852 2016-10-19T00:33:01 getprogname tests: Avoid failure in packages that use libtool. * tests/test-getprogname.c (main): Strip "lt-" prefix. Based on a patch by Jim Meyering.
Bruno Haible 7082adff 2016-10-16T13:53:18 getprogname: Fix test failure on Cygwin. Comments. * lib/getprogname.h: Add comments. * lib/getprogname.c: Add comments. Fix #elif indentation. * tests/test-getprogname.c (main): On Cygwin, expect a result without ".exe" suffix.
Bruno Haible ab97e40c 2016-10-18T14:10:01 sh-quote, system-quote: revert regression of unit test. * tests/test-sh-quote.c (check_one): Do detect buffer overruns. * tests/test-system-quote-main.c (check_one): Likewise.
Pádraig Brady 59aa69fd 2016-10-16T22:51:30 quotearg: fix stale tests * tests/test-quotearg.c [locale_results]: Add the missing str7 entries to the expected results. tests/test-system-quote-main.c (check_one): Don't enforce that we don't write beyond the returned length, since that's no longer the case if we switch to a more concise quoting style. * tests/test-sh-quote.c (check_one): Likewise. (main): Adjust for the new more concise quoting style. Reported by Bruno Haible.
Bruno Haible 9578dfee 2016-10-16T20:09:16 Fix a test crash. * tests/test-duplocale.c (main): Skip the test if the 'newlocale' call fails.
Pádraig Brady 79c69b24 2016-10-15T23:29:16 test-limits-h: suppress -Woverlength-strings * tests/test-limits-h.c [__GNUC__]: Ignore -Woverlength-strings.
Jim Meyering d487c185 2016-10-12T12:30:07 test-stdint: use _GL_VERIFY rather than "verify" for some tests * tests/test-stdint.c (verify_width): Implement with _GL_VERIFY and an abbreviated diagnostic rather than verify with the full one, because the full-length strings would evoke warnings from gcc with -Woverlength-strings.
Pádraig Brady 2ed5c11d 2016-09-26T15:13:34 quotearg: minimize shell quoting using double quotes I.E. 'it'\''s awkward like this'; "it's better like this" * lib/quotearg.c (quotearg_buffer_restyled): If an ASCII single quote in encountered then use double quotes (c style quoting) when possible, as it simplifies the quoting. * tests/test-quotearg-simple.c: Add test cases. * tests/test-quotearg.h (use_quotearg_buffer): Adjust to account for the fact we now may write beyond the returned length.
Paul Eggert fce9b3f0 2016-09-24T20:13:43 tests/init.sh: port Alpine fix to AIX 7.1 * tests/init.sh (compare_): When attempting to use diff -U3, prefer diff -u to -U3 to -c to plain diff. Do not insist on
Paul Eggert b81c53b7 2016-09-15T11:34:52 stdint: support new _WIDTH macros * doc/posix-headers/stdint.texi: Document this. * lib/stdint.in.h: Add support for INTMAX_WIDTH. etc. * m4/stdint.m4 (gl_STDINT_H): Require gl_LIMITS_H. Check for support for INTMAX_WIDTH, etc. as well as for support for just C99. * modules/stdint (Depends-on): Add limits-h. (Makefile.am): Substitute HAVE_C99_STDINT_H. * modules/stdint-tests (Depends-on): Add extensions, so that INTMAX_MAX etc. are defined. * tests/test-stdint.c: Verify the new macros.
Paul Eggert 0d12d16a 2016-09-15T11:34:52 limits-h: new module This adds ISO/IEC TS 18661-1:2014 support to limits.h. * MODULES.html.sh: Add limits-h,and move size_max to stdint section. * doc/posix-headers/limits.texi: Document new module. * lib/limits.in.h, m4/limits-h.m4, modules/limits-h: * modules/limit-h-tests, tests/test-limits-h.c: New files.
Paul Eggert 04b939c3 2016-09-11T16:13:11 dfa: port to Solaris 9 Problems reported by Tom G. Christensen in: http://lists.gnu.org/archive/html/bug-gnulib/2016-09/msg00031.html * modules/dfa (Depends-on): Add isblank. * modules/dfa-tests (dfa_match_aux_LDADD): Rename from test_stat_LDADD, to fix typo. * tests/dfa-match.sh: Don't require 'timeout'; use it if available.
Jim Meyering 28672037 2016-08-16T15:00:43 dfa: new module, importing grep's DFA matcher Since grep's DFA matcher is now being used by two gnulib-enabled projects, grep and sed, it makes sense to version-control its sources and unit tests in one place: here. * modules/dfa: New module. * modules/dfa-tests: New file. * lib/dfa.c: New file, from grep. * lib/dfa.h: Likewise. * lib/localeinfo.c: Likewise. * lib/localeinfo.h: Likewise. * tests/dfa-match-aux.c: Likewise. * tests/dfa-invalid-char-class.sh: Likewise. * tests/dfa-match.sh: Likewise, with minor changes. * MODULES.html.sh (Misc): Add "dfa" to this list.
Jim Meyering 5e537e5f 2016-09-07T11:03:03 getprogname-tests: work also when EXEEXT is nonempty * modules/getprogname-tests (Makefile.am): Define EXEEXT. * tests/test-getprogname.c (main): Use it. Suggested by Gisle Vanem.
Jim Meyering 320679aa 2016-09-07T07:57:47 getprogname: port to systems with __argv (mingw, msvc) * lib/getprogname.c (getprogname): Include "dirname.h" and use last_component: more general than open coding it with hard-coded "/". * lib/getprogname.h (getprogname): Prefer "char const *" consistently. * modules/getprogname (Depends-on): Add dirname-lgpl. (configure.ac): Check for __argv in <stdlib.h>. * modules/getprogname-tests: New file. * tests/test-getprogname.c: New file. Suggested by Gisle Vanem in https://lists.gnu.org/archive/html/bug-gnulib/2016-09/msg00014.html
Pino Toscano f7bf2e44 2016-08-18T15:18:24 Port tests away from progname Modules that need the program name already depend on getprogname. * modules/acl-tests (Depends-on): Remove progname. * modules/argmatch (Depends-on): Likewise. * modules/argmatch-tests (Depends-on): Likewise. * modules/argp-tests (Depends-on): Likewise. * modules/argp-version-etc-tests (Depends-on): Likewise. * modules/array-list-tests (Depends-on): Likewise. * modules/array-oset-tests (Depends-on): Likewise. * modules/avltree-list-tests (Depends-on): Likewise. * modules/avltree-oset-tests (Depends-on): Likewise. * modules/avltreehash-list-tests (Depends-on): Likewise. * modules/carray-list-tests (Depends-on): Likewise. * modules/copy-file-tests (Depends-on): Likewise. * modules/exclude-tests (Depends-on): Likewise. * modules/fchownat-tests (Depends-on): Likewise. * modules/fdopendir-tests (Depends-on): Likewise. * modules/filenamecat-tests (Depends-on): Likewise. * modules/fstatat-tests (Depends-on): Likewise. * modules/fstrcmp-tests (Depends-on): Likewise. * modules/linked-list-tests (Depends-on): Likewise. * modules/linkedhash-list-tests (Depends-on): Likewise. * modules/mkdirat-tests (Depends-on): Likewise. * modules/nonblocking-pipe-tests (Depends-on): Likewise. * modules/nonblocking-socket-tests (Depends-on): Likewise. * modules/obstack-printf-tests (Depends-on): Likewise. * modules/openat-tests (Depends-on): Likewise. * modules/parse-datetime-tests (Depends-on): Likewise. * modules/pipe-filter-gi-tests (Depends-on): Likewise. * modules/pipe-filter-ii-tests (Depends-on): Likewise. * modules/quotearg-simple-tests (Depends-on): Likewise. * modules/quotearg-tests (Depends-on): Likewise. * modules/rbtree-list-tests (Depends-on): Likewise. * modules/rbtree-oset-tests (Depends-on): Likewise. * modules/rbtreehash-list-tests (Depends-on): Likewise. * modules/spawn-pipe-tests (Depends-on): Likewise. * modules/system-quote-tests (Depends-on): Likewise. * modules/uniname/uniname-tests (Depends-on): Likewise. * modules/uninorm/nfc-tests (Depends-on): Likewise. * modules/uninorm/nfd-tests (Depends-on): Likewise. * modules/uninorm/nfkc-tests (Depends-on): Likewise. * modules/uninorm/nfkd-tests (Depends-on): Likewise. * modules/unistdio/u16-vsnprintf-tests (Depends-on): Likewise. * modules/unistdio/u16-vsprintf-tests (Depends-on): Likewise. * modules/unistdio/u32-vsnprintf-tests (Depends-on): Likewise. * modules/unistdio/u32-vsprintf-tests (Depends-on): Likewise. * modules/unistdio/u8-vsnprintf-tests (Depends-on): Likewise. * modules/unistdio/u8-vsprintf-tests (Depends-on): Likewise. * modules/unistdio/ulc-vsnprintf-tests (Depends-on): Likewise. * modules/unistdio/ulc-vsprintf-tests (Depends-on): Likewise. * modules/unlinkat-tests (Depends-on): Likewise. * modules/version-etc-tests (Depends-on): Likewise. * modules/xalloc-die-tests (Depends-on): Likewise. * modules/xmemdup0-tests (Depends-on): Likewise. * modules/xprintf-posix-tests (Depends-on): Likewise. * modules/xvasprintf-tests (Depends-on): Likewise. * tests/test-argmatch.c: Do not include progname.h. (main) Stop calling set_program_name. * tests/test-argp-version-etc.c: Likewise. * tests/test-argp.c: Likewise. * tests/test-argv-iter.c: Likewise. * tests/test-array_list.c: Likewise. * tests/test-array_oset.c: Likewise. * tests/test-avltree_list.c: Likewise. * tests/test-avltree_oset.c: Likewise. * tests/test-avltreehash_list.c: Likewise. * tests/test-carray_list.c: Likewise. * tests/test-copy-acl.c: Likewise. * tests/test-copy-file.c: Likewise. * tests/test-exclude.c: Likewise. * tests/test-fchownat.c: Likewise. * tests/test-fdopendir.c: Likewise. * tests/test-filenamecat.c: Likewise. * tests/test-fstatat.c: Likewise. * tests/test-fstrcmp.c: Likewise. * tests/test-linked_list.c: Likewise. * tests/test-linkedhash_list.c: Likewise. * tests/test-mkdirat.c: Likewise. * tests/test-nonblocking-pipe-main.c: Likewise. * tests/test-nonblocking-socket-main.c: Likewise. * tests/test-obstack-printf.c: Likewise. * tests/test-openat.c: Likewise. * tests/test-parse-datetime.c: Likewise. * tests/test-pipe-filter-gi1.c: Likewise. * tests/test-pipe-filter-gi2-main.c: Likewise. * tests/test-pipe-filter-ii1.c: Likewise. * tests/test-pipe-filter-ii2-main.c: Likewise. * tests/test-quotearg-simple.c: Likewise. * tests/test-quotearg.c: Likewise. * tests/test-rbtree_list.c: Likewise. * tests/test-rbtree_oset.c: Likewise. * tests/test-rbtreehash_list.c: Likewise. * tests/test-sameacls.c: Likewise. * tests/test-set-mode-acl.c: Likewise. * tests/test-spawn-pipe-main.c: Likewise. * tests/test-system-quote-main.c: Likewise. * tests/test-unlinkat.c: Likewise. * tests/test-version-etc.c: Likewise. * tests/test-xalloc-die.c: Likewise. * tests/test-xfprintf-posix.c: Likewise. * tests/test-xmemdup0.c: Likewise. * tests/test-xprintf-posix.c: Likewise. * tests/test-xvasprintf.c: Likewise. * tests/uniname/test-uninames.c: Likewise. * tests/uninorm/test-u32-nfc-big.c: Likewise. * tests/uninorm/test-u32-nfd-big.c: Likewise. * tests/uninorm/test-u32-nfkc-big.c: Likewise. * tests/uninorm/test-u32-nfkd-big.c: Likewise. * tests/unistdio/test-u16-vsnprintf1.c: Likewise. * tests/unistdio/test-u16-vsprintf1.c: Likewise. * tests/unistdio/test-u32-vsnprintf1.c: Likewise. * tests/unistdio/test-u32-vsprintf1.c: Likewise. * tests/unistdio/test-u8-vsnprintf1.c: Likewise. * tests/unistdio/test-u8-vsprintf1.c: Likewise. * tests/unistdio/test-ulc-vsnprintf1.c: Likewise. * tests/unistdio/test-ulc-vsprintf1.c: Likewise. * tests/test-c-stack.c: (program_name): Do not define. (main): Do not set program_name. * tests/test-closein.c: Likewise. * tests/test-xstrtol.c: Likewise. * tests/test-yesno.c: Likewise.
Paul Eggert 5d856f70 2016-08-30T08:23:44 strverscmp: sync with glibc Although this doesn't exactly synchronize with glibc byte-for-byte, it makes the code behave the same as glibc. * lib/strverscmp.c (S_I, S_F, S_Z): Now masks, not powers of 2. (ISDIGIT): Remove, as glibc is sticking with isdigit, and the difference shouldn't matter in practical use. All uses changed back to isdigit. (__strverscmp, strverscmp): Use new glibc method for weak aliases. (next_state): Now unsigned char array; redo elements. (result_type): Now signed char array; redo elements. (__strverscmp): Fix glibc bug 9913 by using new states. * tests/test-strverscmp.c (main): Test glibc bug 9913.
Daniel Richard G 6e296621 2016-08-19T12:24:03 c-strcase-tests: port to EBCDIC * tests/test-c-strncasecmp.c: Allow two c_strncasecmp calls which assume ASCII encoding semantics to run only in ASCII mode, as they fail in EBCDIC.
Daniel Richard G d05a8869 2016-08-19T12:22:13 sigpipe-tests: fix typo * tests/test-sigpipe.sh: C, not B.
Daniel Richard G e6921e98 2016-08-17T16:57:35 maint: port tests to z/OS errno behavior * tests/test-nonblocking-reader.h: * tests/test-nonblocking-writer.h: Accommodate z/OS errno code preferences. (I believe this should still be within spec; IBM is good at following the letter if not the spirit of such things.)
Daniel Richard G 74e641c2 2016-08-17T16:55:13 maint: preprocessor changes to support z/OS * lib/alloca.in.h, lib/fnmatch.c, lib/get-rusage-as.c: * lib/glob.c, lib/math.in.h, lib/ptsname_r.c: * tests/infinity.h, tests/nan.h, tests/test-canonicalize-lgpl.c: * tests/test-nonblocking-pipe.h:
Daniel Richard G 9015588a 2016-08-17T16:05:02 iconv_open-utf-tests, iconv-tests: port to EBCDIC * tests/test-iconv-utf.c, tests/test-iconv.c: Added appropriately conditional #pragmas so that the test strings in test-iconv-utf.c are correctly interpreted in ASCII instead of EBCDIC (i.e. 'J' == 0x4A and not 0xD1). This issue could be addressed in a more portable way by simply rewriting all the ASCII literal characters as octal escapes, but then you would lose the partial readability that the strings have now. Also, iconv_open() on z/OS does not recognize "ISO-8859-1", but "ISO8859-1" works.
Daniel Richard G b21115ee 2016-08-17T15:58:01 c-strcase-tests, wcwidth-tests: port to EBCDIC * tests/test-c-strcasecmp.c: Include c-ctype.h. (main) [!C_CTYPE_ASCII]: Skip tests that assume ASCII. * tests/test-wcwidth.c: Likewise.
Jim Meyering 42354a8c 2016-08-01T09:37:15 tests/init.sh: exclude dash with bad "local" semantics * tests/init.sh (gl_shell_test_script_): Add a function to eliminate a shell like "dash" (unlike bash, zsh) that has surprising/risky "local var='...'" semantics. Inspired by the problem and discussion in https://bugs.gnu.org/24116#11.
Paul Eggert 5050ee05 2016-06-23T14:51:02 intprops-test: port to GCC 6 * tests/test-intprops.c: Ignore -Woverflow if any GCC version, since the bug is not fixed in GCC 6.1.
Paul Eggert 6ed53f13 2016-04-27T12:10:54 xstrtol: prohibit monstrosities like "1bB" Problem reported by Young Mo Kang in: http://bugs.gnu.org/23388 * lib/xstrtol.c (__xstrtol): Allow trailing second suffixes like "B" only if the first suffix needs a base. * tests/test-xstrtol.sh: Test this.
Paul Eggert a4910b94 2016-04-13T00:06:36 intprops, mktime, strtol: assume two's complement These macros were not portable to every conforming C11 ones' complement platform. It's not worth the hassle of porting to some platforms that use ones' complement or signed magnitude, as such platforms are almost purely theoretical nowadays and porting even to some of them makes the code harder to review for little practical benefit. Problem reported by Florian Weimer in: https://sourceware.org/ml/libc-alpha/2016-04/msg00295.html * lib/intprops.h (TYPE_TWOS_COMPLEMENT, TYPE_ONES_COMPLEMENT) (TYPE_SIGNED_MAGNITUDE, _GL_INT_TWOS_COMPLEMENT): * lib/mktime.c (TYPE_TWOS_COMPLEMENT): * lib/strtol.c (TYPE_TWOS_COMPLEMENT, TYPE_ONES_COMPLEMENT) (TYPE_SIGNED_MAGNITUDE): Remove. All uses rewritten to assume two's complement, which is all we can reasonably test nowadays anyway. * top/maint.mk (_intprops_names): Remove the removed macros.
Paul Eggert b7bc3c1a 2016-04-09T01:28:36 mbrtowc: work around glibc bug#19932 Fix mbrtowc so that it never returns -1 in the C locale, as this conflicts with a future version of POSIX http://austingroupbugs.net/view.php?id=663#c2738 and causes problems with GNU grep: http://bugs.gnu.org/23234 See glibc bug 19932: https://sourceware.org/bugzilla/show_bug.cgi?id=19932 * doc/posix-functions/mbrlen.texi (mbrlen): * doc/posix-functions/mbrtowc.texi (mbrtowc): Document the glibc bug. * lib/mbrtowc.c [C_LOCALE_MAYBE_EILSEQ]: Include hard-locale.h, locale.h. (rpl_mbrtowc): Work around the C_LOCALE_MAYBE_EILSEQ bug, if the bug is possible. * m4/mbrtowc.m4 (gl_MBRTOWC_C_LOCALE): New macro. (gl_FUNC_MBRTOWC): Use it, and define C_LOCALE_MAYBE_EILSEQ as needed. * modules/hard-locale (License): Now LGPLv2+, for mbrtowc. * modules/mbrtowc (Depends-on): Add hard-locale. * modules/mbrtowc-tests (Files, TESTS): Add tests/test-mbrtowc5.sh. * tests/test-mbrtowc.c (main): Test for bug fix if arg is '5'. * tests/test-mbrtowc5.sh: New file.
Paul Eggert 14a58253 2016-04-03T16:37:13 argp: merge changes from glibc Among other things, this should fix problems found by a Coverity scan and reported by Andrei Borzenkov: http://lists.gnu.org/archive/html/bug-gnulib/2016-01/msg00015.html http://lists.gnu.org/archive/html/bug-gnulib/2016-01/msg00016.html * lib/argp-ba.c, lib/argp-fmtstream.c, lib/argp-fmtstream.h: * lib/argp-fs-xinl.c, lib/argp-help.c, lib/argp-namefrob.h: * lib/argp-parse.c, lib/argp-pv.c, lib/argp-pvh.c, lib/argp-xinl.c: * lib/argp.h: Merge changes from glibc. * tests/test-argp-2.sh: Adjust to match new behavior.
Paul Eggert e91c0d4f 2016-03-25T12:25:37 test-framework-sh: minor cleanups * tests/init.sh (testdir_prefix_): Output a trailing newline, since strictly speaking POSIX requires this. (setup_): Do not use the variable 'fail', as that makes the trace output harder to read ('fail' is typically used by tests to mean the test failed). Treat // portably. Check that new directory is not merely a sibling of the tmp dir. Avoid unnecessary invocation of tr.
Paul Eggert 4515da0d 2016-03-25T12:00:35 test-framework-sh: revert port to NetBSD 7.0 It was a false alarm; I misinterpreted Assaf Gordon's report. * tests/init.sh (testdir_prefix_, pfx_, template_length_): Restore. (test_dir_): Adjust to mktempd_ change. (mktempd_): Restore 2nd arg. Use -t again. (base_template_, template_, nx_): Resurrect old code.
Paul Eggert 7347cbf5 2016-03-25T00:04:02 Port better to Alpine Linux Its diff implementation does not support -c, but does support -U3. Problem reported by Assaf Gordon in: http://bugs.gnu.org/23107#13 * tests/init.sh (diff_opt_): New var. (compare_): Prefer diff -U3 to diff -c to plain diff.
Paul Eggert d2400002 2016-03-25T00:00:14 test-framework-sh: port to NetBSD 7.0 Problem reported by Assaf Gordon in: http://bugs.gnu.org/23107#13 * tests/init.sh (testdir_prefix_, pfx_, template_length_): Remove. All uses removed. (test_dir_): Adjust to mktempd_ change. (mktempd_): Omit 2nd arg. Stop using -t, as it is not portable. (base_template_, template_, nx_): Simplify by hardcoding.
Jim Meyering d78ae117 2016-03-17T10:35:08 test-userspec.c: do not trigger gcc's new -Wmisleading-indentation * tests/test-userspec.c (main): Remove unnecessary braces and fix misleading indentation. Here is the diagnostic gcc-6.0-to-be issued: test-userspec.c:176:9: error: statement is indented as if it were \ guarded by... [-Werror=misleading-indentation] { ^ test-userspec.c:173:7: note: ...this 'if' clause, but it is not if (!diag && !T[i].result) ^~
Paul Eggert 77313df9 2016-03-13T22:44:58 localename-tests: memory allocation fixes * tests/test-localename.c (test_locale_name) (test_locale_name_thread): Don't call freelocale on a locale that was the base of a successful newlocale, as that results in a double free. Problem reported by Assaf Gordon. (test_locale_name_thread): Free saved names after use, to pacify gcc -fsanitize=address.
Paul Eggert 54615b95 2016-02-06T18:11:48 misc: port better to gcc -fsanitize=address Without these patches, ./configure CFLAGS='-fsanitize=address' would compute incorrect values. This patch fixes some (but not all) test failures with recent glibc, with this configuration. * m4/acl.m4 (gl_ACL_GET_FILE): * m4/calloc.m4 (_AC_FUNC_CALLOC_IF): * m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): * m4/d-ino.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_INO): * m4/duplocale.m4 (gl_FUNC_DUPLOCALE): * m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): * m4/getdelim.m4 (gl_FUNC_GETDELIM): * m4/getgroups.m4 (gl_FUNC_GETGROUPS): * m4/getline.m4 (gl_FUNC_GETLINE): * m4/malloc.m4 (_AC_FUNC_MALLOC_IF): * m4/realloc.m4 (_AC_FUNC_REALLOC_IF): * m4/regex.m4 (gl_REGEX): * m4/strndup.m4 (gl_FUNC_STRNDUP): * tests/test-calloc-gnu.c (main): * tests/test-duplocale.c (main): * tests/test-getgroups.c (main): * tests/test-getline.c (main): * tests/test-inttostr.c (main): * tests/test-localename.c (test_locale_name) (test_locale_name_thread, test_locale_name_environ) (test_locale_name_default): * tests/test-regex.c (main): * tests/test-setlocale1.c (main): * tests/test-stat.h (test_stat_func): Free heap-allocated storage before exiting. * m4/asm-underscore.m4 (gl_ASM_SYMBOL_PREFIX): Don't match *_foo symbols inserted by AddressSanitizer. * tests/test-regex.c, tests/test-stat.c: Include stdlib.h, for 'free'.
Paul Eggert 8c4223e2 2016-01-12T15:20:39 Port "$@" to OpenIndiana ksh93 In http://lists.gnu.org/archive/html/bug-autoconf/2015-12/msg00000.html Pavel Raiskup reports that ${1+"$@"} runs afoul of a bug in /bin/sh (derived from ksh 93t+ 2010-03-05). ${1+"$@"} works around an ancient bug long-dead shells, so remove the workaround. * build-aux/announce-gen, build-aux/do-release-commit-and-tag: * build-aux/gitlog-to-changelog, build-aux/gnu-web-doc-update: * build-aux/prefix-gnulib-mk, build-aux/update-copyright: * build-aux/useless-if-before-free, tests/test-update-copyright.sh: Use "$@" instead of ${1+"$@"}.
Paul Eggert 6118065a 2016-01-12T09:29:40 Port Universal Time settings to strict POSIX * build-aux/announce-gen, build-aux/bootstrap: * build-aux/do-release-commit-and-tag, build-aux/git-version-gen: * build-aux/gitlog-to-changelog, build-aux/gnu-web-doc-update: * build-aux/gnupload, build-aux/mkinstalldirs: * build-aux/move-if-change, build-aux/prefix-gnulib-mk: * build-aux/update-copyright, build-aux/useless-if-before-free: * build-aux/vc-list-files, tests/test-strftime.c: Use TZ="UTC0", not TZ="UTC". Either works on GNU platforms, but POSIX says the behavior of TZ="UTC" is undefined.
Pádraig Brady 9b3899a9 2015-11-25T14:26:59 tests: for compare_(), use cmp -s where available * tests/init.sh (compare_): Only fall back to cmp without the POSIX defined -s option, where this is not available.
Paul Eggert 71090a2a 2016-01-01T00:56:19 version-etc: new year * build-aux/gendocs.sh (version): * doc/gendocs_template: * doc/gendocs_template_min: * doc/gnulib.texi: * lib/version-etc.c (COPYRIGHT_YEAR): Update copyright dates by hand in templates and the like. * all files: Run 'make update-copyright'.
Pádraig Brady 81d0a264 2015-12-22T15:45:56 strftime-tests: avoid false failure on OS X * tests/test-strftime.c (struct localtime_rz_test): Add an ahistorical member which is used to warn rather than fail when tm_isdst isn't set for such entries. This is the case for "1970-01-01 13:00:00 +1300 (NZDT)" on Darwin 13/14 at least.
Paul Eggert 111ca669 2015-12-17T12:56:55 intprops-test: work around GCC bug 68971 Problem reported by Pádraig Brady in: http://lists.gnu.org/archive/html/bug-gnulib/2015-12/msg00011.html * tests/test-intprops.c: Ignore -Woverflow in GCC 6 and earlier. (main): Add a case that better tests 64-bit long in this area.
Paul Eggert 36d982f3 2015-11-05T18:32:03 test-timespec: fix typo in previous change * tests/test-timespec.c (main): Fix typo that reduced test quality.
Paul Eggert 051613c2 2015-11-05T17:41:43 timespec-sub: fix overflow bug; add tests * lib/timespec-add.c (timespec_add): * lib/timespec-sub.c (timespec_sub): Work even if time_t is narrower than int (a theoretical possibility). Redo code for a bit more clarity. * lib/timespec-sub.c (timespec_sub): Fix off-by-2 bug if a.tv_sec == TYPE_MINIMUM (time_t) and 0 < b.tv_sec. * modules/timespec-tests, tests/test-timespec.c: New files.
Paul Eggert ca648747 2015-11-05T07:46:32 intprops-test: suppress -Woverlength-strings Problem reported by Pádraig Brady in: http://lists.gnu.org/archive/html/bug-gnulib/2015-11/msg00008.html It is not worth the hassle to port this test to compilers that cannot handle long strings in diagnostics. * tests/test-intprops.c [__GNUC__]: Ignore -Woverlength-strings.
Paul Eggert 8780c178 2015-11-04T08:27:57 intprops: revise _WRAPV macros, revert _OVERFLOW The incompatible changes to the _OVERFLOW macros were too much of a hassle in practice, so revert them. Instead, change the new _WRAPV macros to make them closer in behavior to GCC 5's new builtin_add_overflow etc. functions. No other software was using these newly-added macros yet, so this should be OK. * NEWS: Revert previous change, since the incompatible change has been reverted, and nobody used the incompatible version. * doc/intprops.texi (Wraparound Arithmetic, Integer Type Overflow): Document revised behavior. (Integer Range Overflow): Adjust example to match above revisions. * lib/intprops.h (INT_ADD_OVERFLOW, INT_SUBTRACT_OVERFLOW) (INT_MULTIPLY_OVERFLOW): Revert previous change, so that these can be used in integer constant expressions again. (INT_CONST_ADD_OVERFLOW, INT_CONST_SUBTRACT_OVERFLOW) (INT_CONST_MULTIPLY_OVERFLOW): Remove, as these are no longer needed. (INT_CONST_ADD_WRAPV, INT_CONST_SUBTRACT_WRAPV) (INT_NEGATE_WRAPV, INT_CONST_MULTIPLY_WRAPV, INT_DIVIDE_WRAPV) (INT_REMAINDER_WRAPV, INT_LEFT_SHIFT_WRAPV): Remove, as they did not seem that useful. (INT_ADD_WRAPV, INT_SUBTRACT_WRAPV, INT_MULTIPLY_WRAPV) (_GL_INT_OP_WRAPV, _GL_INT_OP_WRAPV_LONGISH) (_GL_INT_OP_WRAPV_VIA_UNSIGNED): Support new semantics. (__has_builtin): New macro, if not alreay defined. (_GL__GENERIC_BOGUS, _GL_INT_OP_CALC, _GL_INT_OP_CALC1): New macros. * tests/test-intprops.c (INT_CONST_DIVIDE_OVERFLOW) (INT_CONST_REMAINDER_OVERFLOW, INT_CONST_LEFT_SHIFT_OVERFLOW) (INT_CONST_DIVIDE_WRAPV, INT_CONST_REMAINDER_WRAPV) (INT_CONST_LEFT_SHIFT_WRAPV): Remove. (CHECK_SBINOP, CHECK_SSUM, CHECK_SUM1, CHECK_SSUM1) (CHECK_SDIFFERENCE, CHECK_SPRODUCT, CHECK_PRODUCT1, CHECK_SPRODUCT1): New macros. (CHECK_BINOP, CHECK_UNOP, main, CHECK_SUM): Test new behavior.
Pádraig Brady df3cd268 2015-10-30T22:49:16 quotearg: add support for $'' shell escaping * lib/quotearg.h: Add "shell-escape" and "shell-escape-always" items and descriptions. * lib/quotearg.c (quotearg_buffer_restyled): Add support for the above types by quoting like "shell", but using $'...' syntax for non printable characters, which should provide unambiguous printable output for any input. * tests/test-quotearg-simple.c: Update accordingly.
Paul Eggert 86b1f082 2015-10-30T13:45:26 intprops: add WRAPV and const flavors for GCC 5 If available, use GCC 5's builtin functions for efficient integer overflow checking. Also, add macros like INT_ADD_WRAPV that efficently and safely compute the low-order bits of the correct answer. A downside of these efficient functions is that they cannot be used in constant expressions, so add macros like INT_CONST_ADD_OVERFLOW and INT_CONST_ADD_WRAPV that can be used even in constant expressions. * NEWS: Document the incompatible changes to INT_ADD_OVERFLOW etc. * doc/intprops.texi (Integer Properties, Integer Type Overflow): Document the changes. (Wraparound Arithmetic): New section. (Integer Range Overflow): Put this subsection last, since it's least useful. * lib/intprops.h (INT_CONST_ADD_OVERFLOW) (INT_CONST_SUBTRACT_OVERFLOW, INT_CONST_MULTIPLY_OVERFLOW): New macros, with the meaning that INT_ADD_OVERFLOW etc. used to have. (INT_CONST_ADD_WRAPV, INT_CONST_SUBTRACT_WRAPV) (INT_NEGATE_WRAPV, INT_CONST_MULTIPLY_WRAPV, INT_DIVIDE_WRAPV) (INT_REMAINDER_WRAPV, _GL_INT_OP_WRAPV, _GL_EXPR_CAST) (_GL_INT_OP_WRAPV_LONGISH, INT_ADD_WRAPV, INT_SUBTRACT_WRAPV) (INT_MULTIPLY_WRAPV, _GL_OP_OVERFLOW, _GL_OP_WRAPV, _GL_OP_WRAPV_GENSYM): New macros. (INT_ADD_OVERFLOW, INT_SUBTRACT_OVERFLOW, INT_MULTIPLY_OVERFLOW): Generate calls to GCC builtins if available, for speed. * tests/test-intprops.c (INT_CONST_DIVIDE_OVERFLOW) (INT_CONST_REMAINDER_OVERFLOW, INT_CONST_LEFT_SHIFT_OVERFLOW) (INT_CONST_DIVIDE_WRAPV, INT_CONST_REMAINDER_WRAPV) (INT_CONST_LEFT_SHIFT_WRAPV): New macros. (main, CHECK_BINOP, CHECK_UNOP, CHECK_SUM, CHECK_PRODUCT) (CHECK_QUOTIENT, CHECK_REMAINDER): Test WRAPV and CONST flavors (when available) too.
Dmitry Smirnov 5a4906aa 2015-10-16T21:29:41 safe-alloc-tests: fix typo in license header * tests/test-safe-alloc.c: Mention LGPL 2.1, not 3.1
Pino Toscano f982bc8d 2015-10-12T12:27:10 accept4-tests: fix to avoid non portable flags * tests/test-accept4.c (main): Pass only SOCK_* flags to accept4(), as they are the only documented ones, and passing others may trigger EINVAL (seen on FreeBSD 10.1-RELEASE). * doc/glibc-functions/accept4.texi: Mention that we don't provide the SOCK_CLOEXEC or SOCK_NONBLOCK defines.
Daiki Ueno b3239907 2015-10-02T11:27:40 uniname/uniname-tests: avoid compiler warnings * tests/uniname/test-uninames.c (fill_names, fill_aliases): Remove unused local variables. (test_alias_lookup): Fix alias name display in failure cases.
Paul Eggert d2de2a91 2015-09-26T23:55:07 c-ctype: do not worry about EBCDIC + char signed Drop support for EBCDIC with char being signed, as this breaks too many programs. Problem reported by Ben Pfaff in: http://lists.gnu.org/archive/html/bug-gnulib/2015-09/msg00053.html * lib/c-ctype.h: Verify that we are not using EBCDIC with char being signed. (_C_CTYPE_LOWER_A_THRU_F_N): New macro. (_C_CTYPE_LOWER_N, _C_CTYPE_A_THRU_F): Use it. (_C_CTYPE_DIGIT, _C_CTYPE_LOWER, _C_CTYPE_PUNCT, _C_CTYPE_UPPER): (c_isascii, c_isgraph, c_isprint, c_ispunct, c_tolower, c_toupper): * tests/test-c-ctype.c (test_all): Simplify by assuming standard char values cannot be negative. * tests/test-c-ctype.c (NCHARS, to_char): Remove; all uses removed.
Paul Eggert ff1ef114 2015-09-25T19:45:59 c-ctype: port better to z/OS EBCDIC Problems reported by Daniel Richard G. in: http://lists.gnu.org/archive/html/bug-gnulib/2015-09/msg00050.html * lib/c-ctype.h (_C_CTYPE_CNTRL): Rewrite in terms of the C standard escapes and _C_CTYPE_OTHER_CNTRL. (_C_CTYPE_OTHER_CNTRL): New macro. * tests/test-c-ctype.c (test_all): Test from CHAR_MIN, not from SCHAR_MIN, as the functions are defined only from values promoted from char or from unsigned char, not necessarily from signed char.
Paul Eggert 43a090ce 2015-09-25T00:01:10 c-ctype: rewrite to use inline functions This simplifies maintenance, since it makes for just one implementation of each function, letting the compiler have the fun of optimization. In practice this works well nowadays with GCC. E.g., c_isascii might need only three instructions even though the source code lists every ASCII character individually in a large switch statement. Also, fix some z/OS porting bugs reported by Daniel Richard G. in: http://lists.gnu.org/archive/html/bug-gnulib/2015-09/msg00037.html * NEWS: Document the API change. * lib/c-ctype.c: Drastically simplify, since this now just expands inline functions. * lib/c-ctype.h: Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END. (C_CTYPE_INLINE): New macro. (C_CTYPE_CONSECUTIVE_DIGITS, C_CTYPE_CONSECUTIVE_LOWERCASE) (C_CTYPE_CONSECUTIVE_UPPERCASE): Remove. Verify that either ASCII or EBCDIC is being used. (_C_CTYPE_SIGNED_EBCDIC, _C_CTYPE_CNTRL, _C_CTYPE_A_THRU_F_N) (_C_CTYPE_DIGIT_N, _C_CTYPE_LOWER_N, _C_CTYPE_UPPER_N) (_C_CTYPE_CASES, _C_CTYPE_A_THRU_F, _C_CTYPE_DIGIT, _C_CTYPE_LOWER) (_C_CTYPE_UPPER, _C_CTYPE_PUNCT_PLAIN): New private macros. (_C_CTYPE_CNTRL): In EBCDIC, '\x07' is a control, not '\xff'. (c_isalnum, c_isalpha, c_isascii, c_isblank, c_iscntrl, c_isdigit) (c_isgraph, c_islower, c_isprint, c_ispunct, c_isspace, c_isupper) (c_isxdigit, c_tolower, c_toupper): Now inline functions. (c_tolower, c_toupper): When converting, return the unsigned char, as that is what z/OS does. * lib/c-strcaseeq.h (CASEEQ): Simplify in the light of the removal of some c-ctype.h macros. * modules/c-ctype (Depends-on): Add extern-inline; remove verify. * tests/test-c-ctype.c (test_all): Fix test for c_toupper and c_tolower promotion to be compatible with z/OS.
Paul Eggert a406de9c 2015-09-23T12:26:38 Test that c_iscntrl agrees with iscntrl, etc. Suggested by Daniel Richard G. in: http://lists.gnu.org/archive/html/bug-gnulib/2015-09/msg00034.html * modules/c-ctype-tests (Depends-on): Add ctype. * tests/test-c-ctype.c: Include <ctype.h>. (NCHARS): New constant. (test_agree_with_C_locale): New function. (main): Use it. (test_all): Use named constants.
Paul Eggert 5b09f8c0 2015-09-23T12:02:35 c-ctype: improve c_isascii testing * tests/test-c-ctype.c (test_all): Port c_isascii test to EBCDIC. Add a test to count the number of ASCII characters.
Paul Eggert 7e2a8ea2 2015-09-22T12:17:06 c-ctype: port better to EBCDIC Problems reported by Daniel Richard G. in http://lists.gnu.org/archive/html/bug-gnulib/2015-09/msg00020.html * lib/c-ctype.c: Include <limits.h>, for CHAR_MIN and CHAR_MAX. Include "verify.h". (C_CTYPE_ASCII, C_CTYPE_CONSECUTIVE_DIGITS) (C_CTYPE_CONSECUTIVE_LOWERCASE, C_CTYPE_CONSECUTIVE_UPPERCASE): Define as enum constants with value false, if not defined, so that code can use 'if' instead of 'ifdef'. Using 'if' helps make the code more portable, as both branches of the 'if' are compiled on all platforms. (C_CTYPE_EBCDIC): New constant. (to_char): New static function. (c_isalnum, c_isalpha, c_isdigit, c_islower, c_isgraph, c_isprint) (c_ispunct, c_isupper, c_isxdigit, c_tolower, c_toupper): Rewrite to use 'if' instead of 'ifdef'. Use to_char if non-ASCII. Prefer <= to >=. Prefer true and false to 1 and 0, for booleans. (c_iscntrl): Use 'if', not 'ifdef'. Special case for EBCDIC. Verify that the character set is either ASCII or EBCDIC. * tests/test-c-ctype.c: Include <limits.h>, for CHAR_MIN (to_char): New function. (test_all): Port to EBCDIC. Add some more tests, e.g., for c_ispunct.
Paul Eggert c1340b3d 2015-07-25T15:20:57 test-strftime: test for Solaris bug * modules/strftime-tests (Depends-on): Add strerror. * tests/test-strftime.c: Include <errno.h>. (posixtm_test): New function, containing the old 'main'. (struct tzalloc_test, struct localtime_rz_test): New types. (TZ, LT): New static vars. (tzalloc_test): New function. (main): Rewrite in terms of posixtm_test and tzalloc_test.
Paul Eggert a89e3449 2015-07-23T18:28:13 fprintftime, strftime: use timezone_t args * NEWS: Document the change. * lib/fprintftime.h (fprintftime): * lib/strftime.c (extra_args) [my_strftime]: * lib/strftime.h (nstrftime): Time zone arg is now of type timezone_t, not int. * lib/strftime.c (mktime_z) [_LIBC]: New macro. (__gmtime_r, __localtime_r) [!HAVE_TM_GMTOFF]: Remove; no longer used. (my_strftime) [emacs && !my_strftime]: (emacs_strftimeu) [emacs && !FPRINTFTIME]: Remove; Emacs doesn't need this any more. (HAVE_TZSET) [my_strftime]: Unset, since we no longer want fprintftime and nstrftime to call tzset. (ut) [!my_strftime]: Remove, replacing with ... (tz) [!my_stftime]: ... this new macro. All uses changed. (strftime_case_): Use localtime_rz and mktime_z instead of localtime_r and mktime. * modules/fprintftime (Depends-on): Add time_rz. * modules/strftime (Depends-on): Add time_rz. Remove time_r. * tests/test-strftime.c (main): Adjust to new nstrftime API.
Daiki Ueno b3b5ecd0 2015-07-07T15:12:52 unistr/uN-strtok-tests: avoid a trivial leak * tests/unistr/test-u-strtok.h (test_u_strtok): Untabify. Free input and delim after the multibyte delimiter tests.
Pádraig Brady d03962a9 2015-07-03T14:52:47 tests: restrict shells to those that support 'local' The local keyword is very widely supported and used in tests in coreutils and grep at least. Therefore restrict to testing with shells that support it. This mainly excludes /bin/sh on Solaris. Note standard ksh also doesn't support this keyword, but that wasn't in the list of considered shells anyway. For discussion on adding 'local' to POSIX, see: http://thread.gmane.org/gmane.linux.debian.devel.bugs.general/122267/focus=3271 * tests/init.sh (gl_shell_test_script_): Add a test for 'local'.
Seiya Kawashima 2c554339 2015-07-03T11:42:43 unistr/uN-strtok: handle multibyte delimiters Previously, uN_strtok moved PTR to the next unit to the token end. When DELIM contained a multibyte character, the new position could be a middle of a multibyte character. * lib/unistr/u-strtok.h (FUNC): Place PTR at the next character after the token. * lib/unistr/u8-strtok.c (U_STRMBLEN): New macro. * lib/unistr/u16-strtok.c (U_STRMBLEN): New macro. * lib/unistr/u32-strtok.c (U_STRMBLEN): New macro. * modules/unistr/u8-strtok (Depends-on): Depend on unistr/u8-strmblen. * modules/unistr/u16-strtok (Depends-on): Depend on unistr/u16-strmblen. * modules/unistr/u32-strtok (Depends-on): Depend on unistr/u32-strmblen. * tests/unistr/test-u-strtok.h: New file. * tests/unistr/test-u8-strtok.c: New file. * tests/unistr/test-u16-strtok.c: New file. * tests/unistr/test-u32-strtok.c: New file. * modules/unistr/u8-strtok-tests: New file. * modules/unistr/u32-strtok-tests: New file. * modules/unistr/u16-strtok-tests: New file. Copyright-paperwork-exempt: yes Co-authored-by: Daiki Ueno <ueno@gnu.org>
Daiki Ueno ea309033 2015-07-02T16:48:24 u{16,32}-strstr-tests: relax timeout condition On slower platforms (e.g., Solaris 10/SPARC), u{16,32}-strstr tests can take longer than 5 seconds to complete. Reported by Dagobert Michelsen in: https://lists.gnu.org/archive/html/bug-libunistring/2015-06/msg00006.html * tests/unistr/test-u16-strstr.c (main): Increase timeout from 5 seconds to 10 seconds. * tests/unistr/test-u32-strstr.c (main): Likewise.
Pavel Fedin 9ba6a008 2015-07-01T10:18:11 fix pty related tests issues on Windows * lib/grantpt.c (grantpt): grantpt.c seems to be never used on Windows, however it's still present in tests/ subdirectory of the final project. Therefore avoid it to pass `make check`. * tests/test-openpty.c (main): Windows has no PTYs and gnulib's openpty() will just return -ENOSYS, so avoid this non applicable test allowing the build to proceed.
Daiki Ueno 447c6753 2015-06-20T15:33:07 uniname/uniname-tests: use pristine data files For copyright and maintenance reasons, use the data files from UCD without modification. * tests/uniname/test-uninames.c (FIELDLEN): Remove. (getfield): Remove. (aliases_count): New global variable. (fill_names): Skip comments and empty lines in the input. Don't use getfield. (fill_aliases): Likewise. (main): Change the expected command line arguments to: NAMES... ["--" ALIASES...]. * tests/uniname/test-uninames.sh: Adjust to the change in test-uninames.c. * tests/uniname/UnicodeDataNames.txt: Remove. * tests/uniname/UnicodeData.txt: New file, from Unicode 8.0.0. * tests/uniname/NameAliases.txt: Use the pristine copy of the data file from Unicode 8.0.0.
Daiki Ueno 1b23c219 2015-06-18T18:03:53 uniname/uniname: update to Unicode 8.0.0 * lib/uniname/uninames.h: Regenerate. * tests/uniname/NameAliases.txt: Update from Unicode 8.0.0. * tests/uniname/UnicodeDataNames.txt: Update from Unicode 8.0.0.
Daiki Ueno 705f4efc 2015-06-18T17:34:54 libunistring: update to Unicode 8.0.0 * lib/gen-uni-tables.c (SIZEOF): New macro. (output_numeric): Increase the maximum number of fractions from 128 to 160. Increase the level3 value width from 7 bits to 8 bits. Use SIZEOF instead of a hard-coded integer. (output_blocks): Decrease the cut-off threshold from 0x30000 to 0x28000. (fill_blocks): Increase the maximum number of blocks from 256 to 384. Use SIZEOF instead of a hard-coded integer. (get_lbp): Adjust to new characters added in Unicode 8.0.0. * lib/unictype/numeric.c (uc_numeric_value): Adjust the level3 value width. * lib/unilbrk/lbrktables.c (unilbrk_table): Implement LBP21b and a new case added to LBP22. * lib/uniwidth/width.c (nonspacing_table_data): Add U+08E3, U+A69E, U+FE2E..U+FE2F, U+111CA..U+111CC, U+11300, U+115DC..U+115DD, U+1171D..U+1171F, U+11722..U+11725, U+11727..U+1172B, U+1DA00..U+1DA36, U+1DA3B..U+1DA6C, U+1DA75, U+1DA84, U+1DA9B..U+1DA9F, and U+1DAA1..U+1DAAF. * tests/uniwidth/test-uc_width2.sh: Same updates as in lib/uniwidth/width.c. * all generated files under lib/uni* and tests/uni*: Regenerate.
Paul Eggert 2aea2c72 2015-04-27T01:23:29 tests: pacify GCC 5.1's stricter printf checking * tests/test-dirname.c (main): * tests/test-getaddrinfo.c (simple): * tests/test-getlogin.c (main): * tests/test-getndelim2.c (main): * tests/test-inttostr.c (CK): * tests/test-md5.c (main): * tests/test-read-file.c (main): * tests/test-sha1.c (main): Fix mismatches between printf format and value signedness. * tests/test-inttostr.c (FMT, CAST_VAL, V_min, V_max): Remove, as CAST_VAL always returned a value of type uintmax_t.
Daiki Ueno e830fc25 2015-04-07T11:09:23 uniname/uniname-tests: fix failure due to alias Reported by Jack Howarth in: <https://lists.gnu.org/archive/html/bug-libunistring/2015-04/msg00000.html>. * tests/uniname/test-uninames.c (name_has_alias): New function. (test_inverse_lookup): Exclude character name with valid alias, from randomly generated character names. (main): Fill unicode_aliases before calling test functions.
Paul Eggert e2e66692 2015-04-02T10:35:53 stddef: port to pre-C11 GCC on x86 On this platform, max_align_t should have an alignment of 8 even though the storage alignments of double, long, etc. max out at 4. Inspired by a comment of Andreas Schwab's here: https://sourceware.org/ml/libc-alpha/2015-04/msg00017.html * lib/stddef.in.h (_GL_STDDEF_ALIGNAS) [!HAVE_MAX_ALIGN_T]: New macro. (max_align_t) [!HAVE_MAX_ALIGN_T]: Use it. * tests/test-stddef.c: Test __alignof__ too, if available.
Tobias Stoeckmann 386315b3 2015-03-24T12:15:27 yesno: make EOL optional in ENABLE_NLS case also yesno behaves differently in a corner case depending on ENABLE_NLS. With an input of "y" followed by an EOF the input is considered to be "no", because the last character is replaced with '\0'. It was assumed that there is a newline, which doesn't have to be true. If ENABLE_NLS is not set, getchar() reads y and accepts it as "yes", looping through more getchar() calls until reaching newline or EOF. * lib/yesno.c (yesno): Check for EOL before replacing. * tests/test-yesno.sh: Add a test case (test along with gettext).
Paul Eggert d164bf67 2015-03-22T19:47:24 fdopendir-tests: test it does not close its arg * tests/test-fdopendir.c (main): Test that fdopendir does not close its argument. From a suggestion by David Grayson in: http://lists.gnu.org/archive/html/bug-gnulib/2015-03/msg00039.html
Pádraig Brady 0d302454 2015-02-16T17:20:39 tests: support stderr verification with returns_() * tests/init.sh (returns_): Disable tracing for this wrapper function, so that stderr of the wrapped command is unchanged, allowing for verification of the contents.
Paul Eggert ee3e3ec9 2015-02-23T15:52:58 uniwbrk/u32-wordbreaks-tests: fix copyright * tests/uniwbrk/test-uc-wordbreaks.c: Fix copyright date.
Paul Eggert 61922366 2015-02-21T00:43:33 vasnprintf-posix-tests: use consistent test * tests/test-vasnprintf-posix.c (test_function): Use "<" in assert instead of "<=", for consistency with other tests.
Paul Eggert bd38edc8 2015-02-20T18:09:47 printf, isinf, etc.: noncanonical != NaN Do not require that isinf, printf, etc. treat noncanonical values as NaNs. Instead, require only that they do not crash. Problem reported by Joseph Myers in: https://sourceware.org/ml/libc-alpha/2015-02/msg00244.html * doc/posix-functions/dprintf.texi (dprintf): * doc/posix-functions/fprintf.texi (fprintf): * doc/posix-functions/isfinite.texi (isfinite): * doc/posix-functions/isinf.texi (isinf): * doc/posix-functions/isnan.texi (isnan): * doc/posix-functions/printf.texi (printf): * doc/posix-functions/snprintf.texi (snprintf): * doc/posix-functions/sprintf.texi (sprintf): * doc/posix-functions/vdprintf.texi (vdprintf): * doc/posix-functions/vfprintf.texi (vfprintf): * doc/posix-functions/vprintf.texi (vprintf): * doc/posix-functions/vsnprintf.texi (vsnprintf): * doc/posix-functions/vsprintf.texi (vsprintf): Document this. * m4/isfinite.m4 (gl_ISFINITEL_WORKS): * m4/isinf.m4 (gl_ISINFL_WORKS): * m4/isnanl.m4 (gl_FUNC_ISNANL_WORKS): * m4/printf.m4 (gl_PRINTF_INFINITE_LONG_DOUBLE): * tests/test-isfinite.c (test_isfinitel): * tests/test-isinf.c (test_isinfl): * tests/test-isnan.c (test_long_double): * tests/test-isnanl.h (main): * tests/test-snprintf-posix.h (test_function): * tests/test-sprintf-posix.h (test_function): * tests/test-vasnprintf-posix.c (test_function): * tests/test-vasprintf-posix.c (test_function): o Test only that noncanonical values do not cause crashes, not that they are treated as NaNs. In some cases this means a larger output buffer is needed.
Paul Eggert d42461c3 2015-02-20T10:37:49 poll: fixes for large fds * lib/poll.c (poll): Don't check directly for NFD too large. Don't rely on undefined behavior in FD_SET when an arg exceeds FD_SETSIZE. Always set revents afterwards, even if to zero. * tests/test-poll.c (poll1): Set revents to -1 instead of 0, as that makes the test a bit stricter.
Daiki Ueno 784023c9 2015-02-16T15:44:14 uniname/uniname: support character alias * lib/uniname/gen-uninames.lisp (main): New argument ALIASFILE. Generate one-way mapping from aliases to codepoints in the generated tables. Special case variation selectors to reduce table size. * lib/uniname/uniname.c (unicode_character_name): Special case variation selectors. (unicode_name_character): Special case variation selectors and their aliases. * lib/uniname/uninames.h: Regenerate. * tests/uniname/NameAliases.txt: New file, taken from UCD 7.0.0. * modules/uniname/uniname-tests (Files): Add tests/uniname/NameAliases.txt. * tests/uniname/test-uninames.c: Mark as static. (ALIASLEN): Define. (struct unicode_alias): New struct. (unicode_aliases): New variable. (fill_aliases): New function. (test_alias_lookup): New test function. (main): Run the 'test_alias_lookup' test if the second argument is given. * tests/uniname/test-uninames.sh: Supply NameAliases.txt as the second argument.
Kevin Cernekee 52f74ee1 2015-02-11T15:22:58 duplocale: Fix Android build of duplocale-tests * modules/duplocale-tests (Depends-on): Add langinfo, as the header is included by test-duplocale.c (but not by duplocale.c). * modules/duplocale-tests (configure.ac): Check for monetary.h. * tests/test-duplocale.c: Skip test if monetary.h is absent. * doc/posix-headers/monetary.texi: Add Android to the list of platforms missing monetary.h.
Pádraig Brady 6e0e31c3 2015-02-11T03:52:57 tests: avoid recent -Werror=unused-variable regression in test-locale * tests/test-locale.c (main): Reference the variable to avoid the "unused variable" warning.
Pádraig Brady c61e31c4 2015-02-11T00:16:55 tests: provide returns_() to simplify exit status checking * tests/init.sh (returns_): A new function for use in tests, to allow for easier checking of return values, where you expect a command to exit with failure status. By checking for a particular exit code, you don't hide any crashes for example.
Alexander Pyhalov dfe49c94 2015-01-29T16:35:24 locale: fix tests on illumos * tests/test-locale.c: LC_GLOBAL_LOCALE is a function call on illumos, so move from global scope to main().
Daiki Ueno 7585eb3f 2015-01-15T12:44:00 libunistring: update to Unicode 7.0.0 * lib/unictype/joininggroup_byname.gperf: Add Straight Waw and Manichaean names. * lib/unictype/joininggroup_name.h: Likewise. * lib/unictype.in.h (UC_JOINING_GROUP_STRAIGHT_WAW) (UC_JOINING_GROUP_MANICHAEAN_ALEPH): New enumeration values. * lib/gen-uni-tables.c (UC_JOINING_GROUP_STRAIGHT_WAW) (UC_JOINING_GROUP_MANICHAEAN_*): New enumeration values. (fill_arabicshaping, joining_group_as_c_identifier): Support those enum values. (is_property_alphabetic): Accept newly added characters to cuneiform numeric signs. (is_property_default_ignorable_code_point): Reject U+0605. (FIELDLEN): Increase from 120 to 160. * lib/uniwidth/width.c (nonspacing_table_data): Add U+0605, U+08FF, U+0C00, U+0C81, U+0D01, U+1AB0..U+1ABE, U+1BAC..U+1BAD, U+1CF8..U+1CF9, U+1DE7..U+1DF5, U+A9E5, U+AA7C, U+FE27..U+FE2D, U+102E0, U+10376..U+1037A, U+10AE5..U+10AE6, U+1107F, U+11173, U+1122F..U+11231, U+11234, U+11236..U+11237, U+112DF, U+112E3..U+112EA, U+11301, U+1133C, U+11340, U+11366..U+1136C, U+11370..U+11374, U+114B3..U+114B8, U+114BA, U+114BF..U+114C0, U+114C2..U+114C3, U+115B2..U+115B5, U+115BC..U+115C0, U+11633..U+1163A, U+1163D, U+1163F..U+11640, U+16AF0..U+16AF4, U+16B30..U+16B36, U+1BC9D..U+1BC9E, U+1BCA0..U+1BCA3, and U+1E8D0..U+1E8D6. (uc_width): Adjust nonspacing_table_ind boundary from 240 to 248. * tests/uniwidth/test-uc_width2.sh: Same updates as in lib/uniwidth/width.c. * all generated files under lib/uni* and tests/uni*: Regenerate.
Daiki Ueno 0d1916cb 2015-01-15T12:16:53 libunistring: update to Unicode 6.3.0 * lib/uniwbrk.in.h (WBP_DQ, WBP_SQ, WBP_HL): New enumeration values. * lib/uniwbrk/u-wordbreaks.h (FUNC): Support WB7a, WB7b, and WB7c. Update WB5, WB6, WB7, WB9, WB11, WB12, WB13a, and WB13b. * lib/uniwbrk/wbrktable.h (uniwbrk_table): Adjust table size. * lib/uniwbrk/wbrktable.c (uniwbrk_table): Support rule WB7a. Update WB5, WB9, WB10, WB13a, and WB13b. * tests/uniwbrk/test-uc-wordbreaks.c (wordbreakproperty_to_string): Support WBP_DQ, WBP_SQ, and WBP_HL. * lib/gen-uni-tables.c (UC_BIDI_LRI, UC_BIDI_RLI, UC_BIDI_FSI) (UC_BIDI_PDI): New enumeration values. (bidi_category_byname): Support those enum values. (is_WBP_MIDNUMLET): Exclude 0x0027 (SINGLE QUOTE), which is now a dedicated property assigned. (is_property_case_ignorable): Check 0x0027. (WBP_DQ, WBP_SQ, WBP_HL): New enumeration values. (get_wbp, debug_output_wbp, fill_org_wbp, debug_output_org_wbp) (output_wbp): Support those enum values. * lib/unictype.in.h (UC_BIDI_LRI, UC_BIDI_RLI, UC_BIDI_FSI) (UC_BIDI_PDI): New enumeration values. * lib/unictype/bidi_byname.gperf: Add those property names. * lib/uniwidth/width.c (nonspacing_table_data): Add U+061C, U+180E, U+1A1B, and U+2066..U+2069. * tests/uniwidth/test-uc_width2.sh: Same updates as in lib/uniwidth/width.c. * all generated files under lib/uni* and tests/uni*: Regenerate.
Daiki Ueno 794132ff 2015-01-15T12:14:14 libunistring: update to Unicode 6.2.0 * lib/unilbrk/lbrktables.h (LBP_RI): New enumeration value. (unilbrk_table): Adjust table size. * lib/unilbrk/lbrktables.c (unilbrk_table): Add a row and column for LBP_RI. * lib/uniwbrk.in.h (WBP_RI): New enumeration value. * lib/uniwbrk/u-wordbreaks.h (FUNC): Support rule WB13c. Normalize table index skipping ignored properties. * lib/uniwbrk/wbrktable.c (uniwbrk_table): Support WBP_RI. Remove WBP_EXTEND and WBP_FORMAT, which are now computed without using the table. * lib/uniwbrk/wbrktable.h: Adjust table size. * lib/unigbrk.in.h (GBP_RI): New enumeration value. * lib/unigbrk/uc-is-grapheme-break.c (UC_IS_GRAPHEME_BREAK): Support rule GB8a. (UC_GRAPHEME_BREAKS_FOR, gb_table): Support GBP_RI. * tests/unigbrk/test-uc-is-grapheme-break.c (graphemebreakproperty_to_string): Support GBP_RI. * lib/gen-uni-tables.c (LBP_RI): New enumeration value. (get_lbp, debug_output_lbp, fill_org_lbp, debug_output_org_lbp) (output_lbp): Support LBP_RI. Adjust some characters changed from LBP_AL to LBP_ID. (output_lbp): Support LBP_RI. (WBP_RI): New enumeration value. (debug_output_wbp, fill_org_wbp, debug_output_org_wbp) (output_wbp): Support WBP_RI. (GBP_RI): New enumeration value. (output_gbp_test, fill_org_gbp): Support GBP_RI. * all generated files under lib/uni* and tests/uni*: Regenerate.
Daiki Ueno 4b6bc42e 2015-01-15T12:08:17 libunistring: update to Unicode 6.1.0 * lib/gen-uni-tables.c (output_joining_group): Switch to 3-level table to accommodate joining groups defined with higher codepoint value. Since there are only 88 groups defined in Unicode 7.0.0, use 7-bit packed format for level3 entries. (get_lbp): Update for Unicode 6.1.0. * lib/unictype/joininggroup_of.c (uc_joining_group): Adjust to use 3-level table. * lib/unictype/joininggroup_byname.gperf: Add Rohingya Yeh joining group name. * lib/unictype/joininggroup_name.h: Likewise. * lib/unilbrk/lbrktables.h (LBP_HL): New enumeration value. (unilbrk_table): Adjust table size. * lib/unilbrk/lbrktables.c (unilbrk_table): Add a row and column for LBP_HL. * lib/uniwidth/width.c (nonspacing_table_data): Add U+0604, U+08E4..U+08FE, U+1BAB, U+1CF4, U+A674..U+A67B, U+A69F, U+AAEC..U+AAED, U+AAF6, U+11100..U+11102, U+11127..U+1112B, U+1112D..U+11134, U+11180..U+11181, U+111B6..U+111BE, U+116AB, U+116AD, U+116B0..U+116B5, U+116B7, U+16F8F..U+16F92. Remove U+302E..U+302F. * tests/uniwidth/test-uc_width2.sh: Same updates as in lib/uniwidth/width.c. * all generated files under lib/uni* and tests/uni*: Regenerate. * modules/uni*/* (configure.ac): Bump minimum version to 0.9.5.
Daiki Ueno 803c77de 2015-01-15T12:06:30 uniwbrk/u32-wordbreaks-tests: add conformance test * modules/uniwbrk/u32-wordbreaks-tests (Files): Add tests/uniwbrk/test-uc-wordbreaks.c, tests/uniwbrk/test-uc-wordbreaks.sh, and tests/uniwbrk/WordBreakTest.txt. (Makefile.am): Add uniwbrk/test-uc-wordbreaks.sh to $(TESTS), add test-uc-wordbreaks to $(check_PROGRAMS), and define test_uc_wordbreaks_SOURCES and test_uc_wordbreaks_LDADD. * tests/uniwbrk/test-uc-wordbreaks.sh: New file. * tests/uniwbrk/test-uc-wordbreaks.c: New file.
Jim Meyering 769f1ff8 2015-01-11T16:47:11 test-strstr.c: avoid a trivial leak * tests/test-strstr.c (main): Free haystack.
Daiki Ueno 257752a1 2015-01-06T18:53:40 uniname/uniname: update to Unicode 7.0.0 To accommodate new characters added since Unicode 5.1.0, this changes the internal representation of codepoint ranges. Previously, we grouped codepoint ranges by manually assigned 4-bit tag, which only allowed 16 groups. This removes the limitation by switching to binary search on a table. For the detail rationale and the benchmark results, see: https://lists.gnu.org/archive/html/bug-libunistring/2014-06/msg00001.html * lib/uniname/gen-uninames.lisp (unicode-char): Rename CODE member to INDEX, as it no longer represents a codepoint. (range): New struct. (main): Switch to intervals list from a bit-pattern based classification. * lib/uniname/uninames.h: Regenerate. * tests/uniname/UnicodeDataNames.txt: Update to Unicode 7.0.0. * modules/uniname/base (configure.ac): Bump minimum version to 0.9.5. * modules/uniname/uniname (configure.ac): Bump minimum version to 0.9.5.
Paul Eggert b9bfe784 2015-01-01T01:38:23 version-etc: new year * doc/gnulib.texi: * lib/version-etc.c (COPYRIGHT_YEAR): Update copyright date. * all files: Run 'make update-copyright'.
Pádraig Brady 4f3dc0be 2014-12-16T02:35:19 getcwd: fix test failure on OS X 10.9 * m4/getcwd-path-max.m4: Avoid the replacement if it won't be effective due to the PATH_MAX limitation of lstat(). (gl_cv_func_getcwd_path_max): Adjust to indicate this case. * m4/getcwd.m4 (gl_FUNC_GETCWD): Define HAVE_GETCWD_SHORTER for this case for use in tests, and also exclude this case when setting REPLACE_GETCWD. * tests/test-getcwd.c (test_long_name): Restrict the tested path length so that lstat() will not be passed a path greater than PATH_MAX. Also key a test condition on HAVE_OPENAT_SUPPORT rather than AT_FDCWD, since the latter is set unconditionally since Sep 2009 in commit 52c658e9.
Daiki Ueno e45661b4 2014-12-12T09:20:59 unicase/locale-language-tests: fix LOCALE_FR test * tests/unicase/test-locale-language.sh: Really use $LOCALE_FR for a French locale with traditional encoding. Reported by umerqayam in: http://lists.gnu.org/archive/html/bug-libunistring/2014-12/msg00000.html
Paul Eggert 3ae2441d 2014-12-12T11:27:45 stddef: support C11's max_align_t * doc/posix-headers/stddef.texi (stddef.h): Document max_align_t. * lib/stddef.in.h (_@GUARD_PREFIX@_STDDEF_H) [__need_wint_t]: Do not undef, as that might cause max_align_t to be defined twice. Instead, change use to check for _GL_STDDEF_WINT_T too. (max_align_t) [!HAVE_MAX_ALIGN_T]: New decl. * m4/stddef_h.m4 (gl_STDDEF_H, gl_STDDEF_H_DEFAULTS): Check for max_align_t. * modules/stddef (stddef.h): Substitute HAVE_MAX_ALIGN_T. * modules/stddef-tests (Depends-on): Add stdalign. * tests/test-stddef.c: Test max_align_t.