I'm building iconv+gettext for Windows with Cygwin and MinGW-w64 in a GitHub Action [1].
When running make check for gettext-tools, we have two failing tests [2]. In the test-suite.log file we have: FAIL: test-getopt-gnu ===================== ../../../gettext-tools/gnulib-tests/test-getopt_long.h:1850: assertion 'strcmp (argv[1], "donald") == 0' failed FAIL test-getopt-gnu.exe (exit status: 3) FAIL: test-getopt-posix ======================= ../../../gettext-tools/gnulib-tests/test-getopt.h:772: assertion 'strcmp (argv[1], "-p") == 0' failed FAIL test-getopt-posix.exe (exit status: 3) That occurs *always*. I also noticed that *sometimes* [3] the test-asyncsafe-spin2 test fails too: FAIL: test-asyncsafe-spin2 ========================== Starting test_asyncsafe_spin ...FAIL test-asyncsafe-spin2.exe (exit status: 3) I tried checking gnulib in a similar environment [4], and there we have these failures: FAIL: test-nonblocking-socket.sh ================================ ../../gltests/test-nonblocking-reader.h:111: assertion 'spent_time < 0.5' failed test-nonblocking-socket-main.exe: ./test-nonblocking-socket-child.exe subprocess got fatal signal 15 ../../gltests/test-nonblocking-socket-main.c:119: assertion 'err == 0' failed FAIL test-nonblocking-socket.sh (exit status: 1) FAIL: test-string-buffer ======================== ../../gltests/test-string-buffer.c:159: assertion 'ret < 0' failed FAIL test-string-buffer.exe (exit status: 3) FAIL: test-u16-casecoll ======================= ../../gltests/unicase/test-casecmp.h:34: assertion 'my_casecmp (input, SIZEOF (input), NULL, 0, NULL, nf, &cmp) == 0' failed FAIL test-u16-casecoll.exe (exit status: 3) FAIL: test-u32-casecoll ======================= ../../gltests/unicase/test-casecmp.h:34: assertion 'my_casecmp (input, SIZEOF (input), NULL, 0, NULL, nf, &cmp) == 0' failed FAIL test-u32-casecoll.exe (exit status: 3) FAIL: test-u8-casecoll ====================== ../../gltests/unicase/test-casecmp.h:34: assertion 'my_casecmp (input, SIZEOF (input), NULL, 0, NULL, nf, &cmp) == 0' failed FAIL test-u8-casecoll.exe (exit status: 3) FAIL: unicase/test-ulc-casecmp1.sh ================================== ../../gltests/unicase/test-casecmp.h:34: assertion 'my_casecmp (input, SIZEOF (input), NULL, 0, NULL, nf, &cmp) == 0' failed FAIL unicase/test-ulc-casecmp1.sh (exit status: 3) FAIL: unicase/test-ulc-casecoll1.sh =================================== ../../gltests/unicase/test-casecmp.h:34: assertion 'my_casecmp (input, SIZEOF (input), NULL, 0, NULL, nf, &cmp) == 0' failed FAIL unicase/test-ulc-casecoll1.sh (exit status: 3) FAIL: test-u16-normcoll ======================= ../../gltests/uninorm/test-u16-normcmp.h:34: assertion 'my_normcmp (input, SIZEOF (input), NULL, 0, nf, &cmp) == 0' failed FAIL test-u16-normcoll.exe (exit status: 3) FAIL: test-u32-normcoll ======================= ../../gltests/uninorm/test-u32-normcmp.h:34: assertion 'my_normcmp (input, SIZEOF (input), NULL, 0, nf, &cmp) == 0' failed FAIL test-u32-normcoll.exe (exit status: 3) FAIL: test-u8-normcoll ====================== ../../gltests/uninorm/test-u8-normcmp.h:34: assertion 'my_normcmp (input, SIZEOF (input), NULL, 0, nf, &cmp) == 0' failed FAIL test-u8-normcoll.exe (exit status: 3) FAIL: test-u16-vasnprintf1 ========================== ../../gltests/unistdio/test-u16-printf1.h:332: assertion 'result != NULL' failed FAIL test-u16-vasnprintf1.exe (exit status: 3) FAIL: unistdio/test-u16-vasnprintf2.sh ====================================== ../../gltests/unistdio/test-u16-printf1.h:332: assertion 'result != NULL' failed FAIL unistdio/test-u16-vasnprintf2.sh (exit status: 1) FAIL: test-u16-vasprintf1 ========================= ../../gltests/unistdio/test-u16-printf1.h:332: assertion 'result != NULL' failed FAIL test-u16-vasprintf1.exe (exit status: 3) FAIL: test-u16-vsnprintf1 ========================= ../../gltests/unistdio/test-u16-printf1.h:332: assertion 'result != NULL' failed FAIL test-u16-vsnprintf1.exe (exit status: 3) FAIL: test-u16-vsprintf1 ======================== ../../gltests/unistdio/test-u16-printf1.h:332: assertion 'result != NULL' failed FAIL test-u16-vsprintf1.exe (exit status: 3) FAIL: test-u32-vasnprintf1 ========================== ../../gltests/unistdio/test-u32-printf1.h:332: assertion 'result != NULL' failed FAIL test-u32-vasnprintf1.exe (exit status: 3) FAIL: unistdio/test-u32-vasnprintf2.sh ====================================== ../../gltests/unistdio/test-u32-printf1.h:332: assertion 'result != NULL' failed FAIL unistdio/test-u32-vasnprintf2.sh (exit status: 1) FAIL: test-u32-vasprintf1 ========================= ../../gltests/unistdio/test-u32-printf1.h:332: assertion 'result != NULL' failed FAIL test-u32-vasprintf1.exe (exit status: 3) FAIL: test-u32-vsnprintf1 ========================= ../../gltests/unistdio/test-u32-printf1.h:332: assertion 'result != NULL' failed FAIL test-u32-vsnprintf1.exe (exit status: 3) FAIL: test-u32-vsprintf1 ======================== ../../gltests/unistdio/test-u32-printf1.h:332: assertion 'result != NULL' failed FAIL test-u32-vsprintf1.exe (exit status: 3) FAIL: test-u8-vasnprintf1 ========================= ../../gltests/unistdio/test-u8-printf1.h:288: assertion 'result != NULL' failed FAIL test-u8-vasnprintf1.exe (exit status: 3) FAIL: unistdio/test-u8-vasnprintf2.sh ===================================== ../../gltests/unistdio/test-u8-printf1.h:288: assertion 'result != NULL' failed FAIL unistdio/test-u8-vasnprintf2.sh (exit status: 1) FAIL: test-u8-vasprintf1 ======================== ../../gltests/unistdio/test-u8-printf1.h:288: assertion 'result != NULL' failed FAIL test-u8-vasprintf1.exe (exit status: 3) FAIL: test-u8-vsnprintf1 ======================== ../../gltests/unistdio/test-u8-printf1.h:288: assertion 'result != NULL' failed FAIL test-u8-vsnprintf1.exe (exit status: 3) FAIL: test-u8-vsprintf1 ======================= ../../gltests/unistdio/test-u8-printf1.h:288: assertion 'result != NULL' failed FAIL test-u8-vsprintf1.exe (exit status: 3) FAIL: test-ulc-vasnprintf1 ========================== ../../gltests/unistdio/test-ulc-printf1.h:63: assertion 'result != NULL' failed FAIL test-ulc-vasnprintf1.exe (exit status: 3) FAIL: unistdio/test-ulc-vasnprintf2.sh ====================================== ../../gltests/unistdio/test-ulc-printf1.h:63: assertion 'result != NULL' failed FAIL unistdio/test-ulc-vasnprintf2.sh (exit status: 1) FAIL: test-ulc-vasprintf1 ========================= ../../gltests/unistdio/test-ulc-printf1.h:63: assertion 'result != NULL' failed FAIL test-ulc-vasprintf1.exe (exit status: 3) FAIL: test-ulc-vsnprintf1 ========================= ../../gltests/unistdio/test-ulc-printf1.h:63: assertion 'result != NULL' failed FAIL test-ulc-vsnprintf1.exe (exit status: 3) FAIL: test-ulc-vsprintf1 ======================== ../../gltests/unistdio/test-ulc-printf1.h:63: assertion 'result != NULL' failed FAIL test-ulc-vsprintf1.exe (exit status: 3) **BUT** test-getopt-gnu and test-getopt-posix are successful. Why? Please remark that in both cases I use VPATH builds, with this configure commands: ../configure \ CC=i686-w64-mingw32-gcc \ CXX=i686-w64-mingw32-g++ \ LD=i686-w64-mingw32-ld \ CPPFLAGS='-I/usr/i686-w64-mingw32/sys-root/mingw/include' \ LDFLAGS='-L/usr/i686-w64-mingw32/sys-root/mingw/lib' \ --host=i686-w64-mingw32 \ --enable-relocatable \ --config-cache \ --disable-dependency-tracking \ --enable-nls \ --disable-rpath \ --disable-acl \ --enable-threads=windows \ --prefix=/installed The only differences between the two environments are: - when buiilding gettext, CPPFLAGS includes '-g0 -O2' and CPPFLAGS and LDFLAGS also point to the location where libiconv is installed - I install these cygwin packages: make,mingw64-i686-gcc-core,mingw64-i686-gcc-g++,mingw64-i686-headers,mingw64-i686-runtime - when building gettext, I also install: unzip,perl - when building gnulib, I also install: autoconf,automake,autotools,bison,gettext-devel,gperf,libiconv-devel,libtool,patch,python3 Ciao, Michele [1] https://github.com/mlocati/gettext-iconv-windows [2] https://github.com/mlocati/gettext-iconv-windows/pull/17 [3] https://github.com/mlocati/gettext-iconv-windows/actions/runs/11034296949 [4] https://github.com/mlocati/gnulib-cygwin-tests