The tests test-xstrtol.sh, test-xstrtoimax.sh, test-xstrtoumax.sh, for two
reasons:
  1) The test wants to filter out the program name from the error message,
     but this does not work on mingw: when the error message is
       c:\work space\gltests\test-xstrtol.exe: invalid X argument
     it is no easy to determine where the file name end and where the error
     message begins. In particular, searching for the first colon does not work.
  2) The output has CRLFs, but is compared against expected output with only 
NLs.

This fixes it.


2008-04-21  Bruno Haible  <[EMAIL PROTECTED]>

        Fix test failures on mingw.
        * tests/test-xstrtol.c (print_no_progname): New function.
        (main): Install it in error_print_progname hook.
        * tests/test-xstrtol.sh: Convert CR/LF to NL in output.
        * tests/test-xstrtoimax.sh: Likewise.
        * tests/test-xstrtoumax.sh: Likewise.

*** tests/test-xstrtol.c.orig   2008-04-22 00:41:25.000000000 +0200
--- tests/test-xstrtol.c        2008-04-22 00:25:31.000000000 +0200
***************
*** 1,6 ****
  /* Test of xstrtol module.
     Copyright (C) 1995, 1996, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
!    2006, 2007 Free Software Foundation, Inc.
  
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
--- 1,6 ----
  /* Test of xstrtol module.
     Copyright (C) 1995, 1996, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
!    2006, 2007, 2008 Free Software Foundation, Inc.
  
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
***************
*** 32,37 ****
--- 32,43 ----
  
  char *program_name;
  
+ /* Don't show the program name in error messages.  */
+ static void
+ print_no_progname (void)
+ {
+ }
+ 
  int
  main (int argc, char **argv)
  {
***************
*** 39,44 ****
--- 45,52 ----
    int i;
  
    program_name = argv[0];
+   error_print_progname = print_no_progname;
+ 
    for (i = 1; i < argc; i++)
      {
        char *p;
*** tests/test-xstrtoimax.sh.orig       2008-04-22 00:41:25.000000000 +0200
--- tests/test-xstrtoimax.sh    2008-04-22 00:39:23.000000000 +0200
***************
*** 20,26 ****
  ./test-xstrtoimax${EXEEXT} MiB >> t-xstrtoimax.tmp 2>&1 || result=1
  
  # normalize output
! sed -e 's/^[^:]*: //' < t-xstrtoimax.tmp > t-xstrtoimax.xo
  mv t-xstrtoimax.xo t-xstrtoimax.tmp
  
  # compare expected output
--- 20,26 ----
  ./test-xstrtoimax${EXEEXT} MiB >> t-xstrtoimax.tmp 2>&1 || result=1
  
  # normalize output
! LC_ALL=C tr -d '\r' < t-xstrtoimax.tmp > t-xstrtoimax.xo
  mv t-xstrtoimax.xo t-xstrtoimax.tmp
  
  # compare expected output
*** tests/test-xstrtol.sh.orig  2008-04-22 00:41:25.000000000 +0200
--- tests/test-xstrtol.sh       2008-04-22 00:38:41.000000000 +0200
***************
*** 32,38 ****
  ./test-xstrtoul${EXEEXT} MiB >> t-xstrtol.tmp 2>&1 || result=1
  
  # normalize output
! sed -e 's/^[^:]*: //' < t-xstrtol.tmp > t-xstrtol.xo
  mv t-xstrtol.xo t-xstrtol.tmp
  
  # compare expected output
--- 32,38 ----
  ./test-xstrtoul${EXEEXT} MiB >> t-xstrtol.tmp 2>&1 || result=1
  
  # normalize output
! LC_ALL=C tr -d '\r' < t-xstrtol.tmp > t-xstrtol.xo
  mv t-xstrtol.xo t-xstrtol.tmp
  
  # compare expected output
*** tests/test-xstrtoumax.sh.orig       2008-04-22 00:41:25.000000000 +0200
--- tests/test-xstrtoumax.sh    2008-04-22 00:39:02.000000000 +0200
***************
*** 20,26 ****
  ./test-xstrtoumax${EXEEXT} MiB >> t-xstrtoumax.tmp 2>&1 || result=1
  
  # normalize output
! sed -e 's/^[^:]*: //' < t-xstrtoumax.tmp > t-xstrtoumax.xo
  mv t-xstrtoumax.xo t-xstrtoumax.tmp
  
  # compare expected output
--- 20,26 ----
  ./test-xstrtoumax${EXEEXT} MiB >> t-xstrtoumax.tmp 2>&1 || result=1
  
  # normalize output
! LC_ALL=C tr -d '\r' < t-xstrtoumax.tmp > t-xstrtoumax.xo
  mv t-xstrtoumax.xo t-xstrtoumax.tmp
  
  # compare expected output



Reply via email to