Fix test failures on Solaris 10.
authorBruno Haible <bruno@clisp.org>
Sun, 16 Aug 2009 20:40:51 +0000 (22:40 +0200)
committerBruno Haible <bruno@clisp.org>
Sun, 16 Aug 2009 20:40:51 +0000 (22:40 +0200)
ChangeLog
tests/test-pipe-filter-gi1.c
tests/test-pipe-filter-gi1.sh
tests/test-pipe-filter-ii1.c
tests/test-pipe-filter-ii1.sh

index 109d72c..18db412 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2009-08-16  Bruno Haible  <bruno@clisp.org>
+
+       Fix test failures on Solaris 10.
+       * tests/test-pipe-filter-ii1.sh: Determine the filename of a working
+       'tr' program and pass it as first argument.
+       * tests/test-pipe-filter-gi1.sh: Likewise.
+       * tests/test-pipe-filter-ii1.c (main): Except the filename of a 'tr'
+       program as first argument.
+       * tests/test-pipe-filter-gi1.c (main): Likewise.
+
 2009-08-16  Eric Blake  <ebb9@byu.net>
 
        fpurge: fix previous commits
index 95b9aa0..00cbb06 100644 (file)
@@ -83,16 +83,19 @@ done_read (void *data_read, size_t num_bytes_read, void *private_data)
 int
 main (int argc, char *argv[])
 {
+  const char *tr_program;
   const char *input_filename;
   size_t input_size;
   char *input;
 
   set_program_name (argv[0]);
 
-  ASSERT (argc == 2);
+  ASSERT (argc == 3);
+
+  tr_program = argv[1];
 
   /* Read some text from a file.  */
-  input_filename = argv[1];
+  input_filename = argv[2];
   input = read_binary_file (input_filename, &input_size);
   ASSERT (input != NULL);
 
@@ -106,12 +109,12 @@ main (int argc, char *argv[])
     l.input = input;
     l.nread = 0;
 
-    argv[0] = "tr";
+    argv[0] = tr_program;
     argv[1] = "a-z";
     argv[2] = "A-Z";
     argv[3] = NULL;
 
-    f = pipe_filter_gi_create ("tr", "tr", argv, false, true,
+    f = pipe_filter_gi_create ("tr", tr_program, argv, false, true,
                               prepare_read, done_read, &l);
     ASSERT (f != NULL);
     result = pipe_filter_gi_write (f, input, input_size);
index dfd3eee..a657980 100755 (executable)
@@ -1,7 +1,16 @@
 #!/bin/sh
+
+# Find a 'tr' program that supports character ranges in the POSIX syntax.
+# Solaris /usr/bin/tr does not.
+if test -f /usr/xpg4/bin/tr; then
+  TR=/usr/xpg4/bin/tr
+else
+  TR=tr
+fi
+
 # A small file.
-./test-pipe-filter-gi1${EXEEXT} "${srcdir}/test-pipe-filter-gi1.sh" || exit 1
+./test-pipe-filter-gi1${EXEEXT} ${TR} "${srcdir}/test-pipe-filter-gi1.sh" || exit 1
 # A medium-sized file.
-./test-pipe-filter-gi1${EXEEXT} "${srcdir}/test-pipe-filter-gi1.c" || exit 1
+./test-pipe-filter-gi1${EXEEXT} ${TR} "${srcdir}/test-pipe-filter-gi1.c" || exit 1
 # A large file.
-./test-pipe-filter-gi1${EXEEXT} "${srcdir}/test-vasnprintf-posix.c" || exit 1
+./test-pipe-filter-gi1${EXEEXT} ${TR} "${srcdir}/test-vasnprintf-posix.c" || exit 1
index a782afc..016c042 100644 (file)
@@ -105,16 +105,19 @@ done_read (void *data_read, size_t num_bytes_read, void *private_data)
 int
 main (int argc, char *argv[])
 {
+  const char *tr_program;
   const char *input_filename;
   size_t input_size;
   char *input;
 
   set_program_name (argv[0]);
 
-  ASSERT (argc == 2);
+  ASSERT (argc == 3);
+
+  tr_program = argv[1];
 
   /* Read some text from a file.  */
-  input_filename = argv[1];
+  input_filename = argv[2];
   input = read_binary_file (input_filename, &input_size);
   ASSERT (input != NULL);
 
@@ -129,12 +132,12 @@ main (int argc, char *argv[])
     l.nwritten = 0;
     l.nread = 0;
 
-    argv[0] = "tr";
+    argv[0] = tr_program;
     argv[1] = "a-z";
     argv[2] = "A-Z";
     argv[3] = NULL;
 
-    result = pipe_filter_ii_execute ("tr", "tr", argv, false, true,
+    result = pipe_filter_ii_execute ("tr", tr_program, argv, false, true,
                                     prepare_write, done_write,
                                     prepare_read, done_read,
                                     &l);
index e301b5d..55f4b1e 100755 (executable)
@@ -1,7 +1,16 @@
 #!/bin/sh
+
+# Find a 'tr' program that supports character ranges in the POSIX syntax.
+# Solaris /usr/bin/tr does not.
+if test -f /usr/xpg4/bin/tr; then
+  TR=/usr/xpg4/bin/tr
+else
+  TR=tr
+fi
+
 # A small file.
-./test-pipe-filter-ii1${EXEEXT} "${srcdir}/test-pipe-filter-ii1.sh" || exit 1
+./test-pipe-filter-ii1${EXEEXT} ${TR} "${srcdir}/test-pipe-filter-ii1.sh" || exit 1
 # A medium-sized file.
-./test-pipe-filter-ii1${EXEEXT} "${srcdir}/test-pipe-filter-ii1.c" || exit 1
+./test-pipe-filter-ii1${EXEEXT} ${TR} "${srcdir}/test-pipe-filter-ii1.c" || exit 1
 # A large file.
-./test-pipe-filter-ii1${EXEEXT} "${srcdir}/test-vasnprintf-posix.c" || exit 1
+./test-pipe-filter-ii1${EXEEXT} ${TR} "${srcdir}/test-vasnprintf-posix.c" || exit 1