bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: dfa tests: Fix test failure on mingw


From: Bruno Haible
Subject: Re: dfa tests: Fix test failure on mingw
Date: Sat, 22 Apr 2023 13:48:32 +0200

I wrote:
> > Is there some way we can instead compile or run MinGW apps so that they 
> > instead follow the POSIX LF convention?
> 
> Sure. Instead of the change above, I can alternatively add a
>   set_binary_mode (STDOUT_FILENO, O_BINARY);
> call to the C program.

Done:


2023-04-22  Bruno Haible  <bruno@clisp.org>

        dfa tests: Fix test failure on mingw differently.
        Suggested by Paul Eggert.
        * tests/test-dfa-invalid-char-class.sh: Revert last change.
        * tests/test-dfa-match-aux.c: Include binary-io.h.
        (main): Put stdout into binary mode.
        * modules/dfa-tests (Depends-on): Add binary-io.

diff --git a/modules/dfa-tests b/modules/dfa-tests
index afa317acdf..c4585fdf45 100644
--- a/modules/dfa-tests
+++ b/modules/dfa-tests
@@ -5,6 +5,7 @@ tests/test-dfa-invalid-char-class.sh
 tests/test-dfa-invalid-merge.sh
 
 Depends-on:
+binary-io
 stdio
 stdlib
 string
diff --git a/tests/test-dfa-invalid-char-class.sh 
b/tests/test-dfa-invalid-char-class.sh
index b9b18980b6..1428d7966a 100755
--- a/tests/test-dfa-invalid-char-class.sh
+++ b/tests/test-dfa-invalid-char-class.sh
@@ -24,8 +24,7 @@ path_prepend_ .
 fail=0
 
 echo 'dfaerror: invalid character class' > exp
-LC_ALL=C ${CHECKER} test-dfa-match-aux '[[:foo:]]' a > tmp 2>&1
-LC_ALL=C tr -d '\r' < tmp > out
+LC_ALL=C ${CHECKER} test-dfa-match-aux '[[:foo:]]' a > out 2>&1
 compare exp out || fail=1
 
 Exit $fail
diff --git a/tests/test-dfa-match-aux.c b/tests/test-dfa-match-aux.c
index b39bb6da86..cef29e6a83 100644
--- a/tests/test-dfa-match-aux.c
+++ b/tests/test-dfa-match-aux.c
@@ -26,6 +26,8 @@
 #include <dfa.h>
 #include <localeinfo.h>
 
+#include "binary-io.h"
+
 _Noreturn void
 dfaerror (char const *mesg)
 {
@@ -53,6 +55,11 @@ main (int argc, char **argv)
   if (argc < 3)
     exit (EXIT_FAILURE);
 
+  /* This test's fixture needs to compare this program's output with an 
expected
+     output.  On native Windows, the CR-LF newlines would cause this comparison
+     to fail.  But we don't want to postprocess this program's output.  */
+  set_binary_mode (STDOUT_FILENO, O_BINARY);
+
   setlocale (LC_ALL, "");
   init_localeinfo (&localeinfo);
 






reply via email to

[Prev in Thread] Current Thread [Next in Thread]