bug-gnulib
[Top][All Lists]
Advanced

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

tests: prepare for using valgrind


From: Bruno Haible
Subject: tests: prepare for using valgrind
Date: Sun, 10 Mar 2019 11:41:51 +0100
User-agent: KMail/5.1.3 (Linux/4.4.0-141-generic; KDE/5.18.0; x86_64; ; )

When running a gnulib testdir with "gcc -fsanitize=leak", I'm getting
short stack traces, like this:

ERROR: LeakSanitizer: detected memory leaks

Direct leak of 80 byte(s) in 1 object(s) allocated from:
    #0 0x7f874eea8858 in __interceptor_malloc 
../../../../gcc-8.2.0/libsanitizer/lsan/lsan_interceptors.cc:52
    #1 0x401aee in hash_initialize ../../gllib/hash.c:605

Direct leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x7f874eea8858 in __interceptor_malloc 
../../../../gcc-8.2.0/libsanitizer/lsan/lsan_interceptors.cc:52
    #1 0x40259e in ino_map_insert ../../gllib/ino-map.c:133

Indirect leak of 20432 byte(s) in 1 object(s) allocated from:
    #0 0x7f874eea9404 in __interceptor_calloc 
../../../../gcc-8.2.0/libsanitizer/lsan/lsan_interceptors.cc:74
    #1 0x401b59 in hash_initialize ../../gllib/hash.c:626

Indirect leak of 32 byte(s) in 2 object(s) allocated from:
    #0 0x7f874eea8858 in __interceptor_malloc 
../../../../gcc-8.2.0/libsanitizer/lsan/lsan_interceptors.cc:52
    #1 0x40259e in ino_map_insert ../../gllib/ino-map.c:133

I much prefer valgrind's output with a longer stack trace. So we need to make
it possible to run at least a single unit test with valgrind.

The way to do so is documented in
https://www.gnu.org/software/gnulib/manual/html_node/Valgrind-and-shell-scripts.html.
Namely, one needs to add an environment variable reference before every
invocation of a program to be tested.

I'm using the variable named 'CHECKER', not 'VALGRIND', because other tools
beyond valgrind can be used in the same place.

With this patch, a single unit test can be run through
  CHECKER="valgrind --tool=memcheck --num-callers=20 --leak-check=yes 
--leak-resolution=high --show-reachable=yes" \
  make check TESTS=test-foo.sh


2019-03-10  Bruno Haible  <address@hidden>

        tests: Prepare for using valgrind.
        tests/*.sh: Invoke all test programs through ${CHECKER}.
        tests/*/*.sh: Likewise.

diff --git a/tests/dfa-invalid-char-class.sh b/tests/dfa-invalid-char-class.sh
index 6962161..2652af5 100755
--- a/tests/dfa-invalid-char-class.sh
+++ b/tests/dfa-invalid-char-class.sh
@@ -24,7 +24,7 @@ path_prepend_ .
 fail=0
 
 echo 'dfaerror: invalid character class' > exp
-LC_ALL=C dfa-match-aux '[[:foo:]]' a > out 2>&1
+LC_ALL=C ${CHECKER} dfa-match-aux '[[:foo:]]' a > out 2>&1
 compare exp out || fail=1
 
 Exit $fail
diff --git a/tests/dfa-match.sh b/tests/dfa-match.sh
index 184f349..c9594c6 100755
--- a/tests/dfa-match.sh
+++ b/tests/dfa-match.sh
@@ -33,11 +33,11 @@ fi
 
 fail=0
 
-dfa-match-aux a ba 0 > out || fail=1
+${CHECKER} dfa-match-aux a ba 0 > out || fail=1
 compare /dev/null out || fail=1
 
 in=$(printf "bb\nbb")
-$timeout_10 dfa-match-aux a "$in" 1 > out || fail=1
+$timeout_10 ${CHECKER} dfa-match-aux a "$in" 1 > out || fail=1
 compare /dev/null out || fail=1
 
 Exit $fail
diff --git a/tests/test-_Exit.sh b/tests/test-_Exit.sh
index a706d8b..768f644 100755
--- a/tests/test-_Exit.sh
+++ b/tests/test-_Exit.sh
@@ -1,4 +1,4 @@
 #!/bin/sh
 
-./test-_Exit${EXEEXT}
+${CHECKER} ./test-_Exit${EXEEXT}
 test $? = 81
diff --git a/tests/test-argp-2.sh b/tests/test-argp-2.sh
index 0b9d617..53cc7b3 100755
--- a/tests/test-argp-2.sh
+++ b/tests/test-argp-2.sh
@@ -39,7 +39,7 @@ Usage: test-argp [-tvCSOlp?V] [-f FILE] [-r FILE] [-o[ARG]] 
[--test]
             [--limerick] [--poem] [--help] [--usage] [--version] ARGS...
 EOT
 
-./test-argp$EXEEXT --usage | func_compare || ERR=1
+${CHECKER} ./test-argp${EXEEXT} --usage | func_compare || ERR=1
 
 ####
 # Test working usage-indent format
@@ -51,7 +51,7 @@ Usage: test-argp [-tvCSOlp?V] [-f FILE] [-r FILE] [-o[ARG]] 
[--test]
 [--help] [--usage] [--version] ARGS...
 EOT
 
-ARGP_HELP_FMT='usage-indent=0' ./test-argp$EXEEXT --usage | func_compare || 
ERR=1
+ARGP_HELP_FMT='usage-indent=0' ${CHECKER} ./test-argp${EXEEXT} --usage | 
func_compare || ERR=1
 
 ####
 # Test --help output
@@ -96,17 +96,17 @@ Report bugs to <>.
 EOT
 
 # Compare --help output, but filter out any bug-reporting email address.
-./test-argp$EXEEXT --help \
+${CHECKER} ./test-argp${EXEEXT} --help \
     | sed 's/^\(Report bugs to \)<[^>]*>.$/\1<>./' | func_compare || ERR=1
 
 ####
 # Test ambiguous option handling
 
-./test-argp$EXEEXT --optio 2>/dev/null && ERR=1
+${CHECKER} ./test-argp${EXEEXT} --optio 2>/dev/null && ERR=1
 
 ####
 # Run built-in tests
-./test-argp$EXEEXT || ERR=1
+${CHECKER} ./test-argp${EXEEXT} || ERR=1
 
 rm $TMP
 
diff --git a/tests/test-argp-version-etc-1.sh b/tests/test-argp-version-etc-1.sh
index 9555601..6d2e249 100755
--- a/tests/test-argp-version-etc-1.sh
+++ b/tests/test-argp-version-etc-1.sh
@@ -31,7 +31,7 @@ There is NO WARRANTY, to the extent permitted by law.
 Written by Sergey Poznyakoff.
 EOT
 
-./test-argp-version-etc${EXEEXT} --version |
+${CHECKER} ./test-argp-version-etc${EXEEXT} --version |
  sed '1s/test-argp-version-etc (.*) .*/test-argp-version-etc (PROJECT) VERSION/
       /^Packaged by/d
       2,3 s/Copyright (C) [0-9]\{4,4\}/COPYRIGHT/' |
diff --git a/tests/test-atexit.sh b/tests/test-atexit.sh
index 643a72f..d2d0489 100755
--- a/tests/test-atexit.sh
+++ b/tests/test-atexit.sh
@@ -4,7 +4,7 @@
 
 # Check that an atexit handler is called when main() returns normally.
 echo > t-atexit.tmp
-test-atexit
+${CHECKER} test-atexit
 if test -f t-atexit.tmp; then
   Exit 1
 fi
@@ -12,7 +12,7 @@ fi
 # Check that an atexit handler is called when the program is left
 # through exit(0).
 echo > t-atexit.tmp
-test-atexit 0
+${CHECKER} test-atexit 0
 if test -f t-atexit.tmp; then
   Exit 1
 fi
@@ -20,7 +20,7 @@ fi
 # Check that an atexit handler is called when the program is left
 # through exit(1).
 echo > t-atexit.tmp
-test-atexit 1
+${CHECKER} test-atexit 1
 if test -f t-atexit.tmp; then
   Exit 1
 fi
diff --git a/tests/test-binary-io.sh b/tests/test-binary-io.sh
index 38af099..a177d94 100755
--- a/tests/test-binary-io.sh
+++ b/tests/test-binary-io.sh
@@ -4,7 +4,7 @@ tmpfiles=""
 trap 'rm -fr $tmpfiles' 1 2 3 15
 
 tmpfiles="$tmpfiles t-bin-out0.tmp t-bin-out1.tmp"
-./test-binary-io${EXEEXT} 1 > t-bin-out1.tmp || exit 1
+${CHECKER} ./test-binary-io${EXEEXT} 1 > t-bin-out1.tmp || exit 1
 cmp t-bin-out0.tmp t-bin-out1.tmp > /dev/null || exit 1
 
 rm -fr $tmpfiles
diff --git a/tests/test-btowc1.sh b/tests/test-btowc1.sh
index aaef48d..ab4b287 100755
--- a/tests/test-btowc1.sh
+++ b/tests/test-btowc1.sh
@@ -12,4 +12,4 @@ if test $LOCALE_FR = none; then
 fi
 
 LC_ALL=$LOCALE_FR \
-./test-btowc${EXEEXT} 1
+${CHECKER} ./test-btowc${EXEEXT} 1
diff --git a/tests/test-btowc2.sh b/tests/test-btowc2.sh
index 2e06038..d7d4d9c 100755
--- a/tests/test-btowc2.sh
+++ b/tests/test-btowc2.sh
@@ -12,4 +12,4 @@ if test $LOCALE_FR_UTF8 = none; then
 fi
 
 LC_ALL=$LOCALE_FR_UTF8 \
-./test-btowc${EXEEXT} 2
+${CHECKER} ./test-btowc${EXEEXT} 2
diff --git a/tests/test-c-snprintf.sh b/tests/test-c-snprintf.sh
index 83051fc..732911c 100755
--- a/tests/test-c-snprintf.sh
+++ b/tests/test-c-snprintf.sh
@@ -12,4 +12,4 @@ if test $LOCALE_FR = none; then
 fi
 
 LC_ALL=$LOCALE_FR \
-./test-c-snprintf${EXEEXT} 1
+${CHECKER} ./test-c-snprintf${EXEEXT} 1
diff --git a/tests/test-c-stack.sh b/tests/test-c-stack.sh
index f979065..54009d3 100755
--- a/tests/test-c-stack.sh
+++ b/tests/test-c-stack.sh
@@ -4,7 +4,7 @@ tmpfiles=""
 trap 'rm -fr $tmpfiles' 1 2 3 15
 
 tmpfiles="t-c-stack.tmp"
-./test-c-stack${EXEEXT} 2> t-c-stack.tmp
+${CHECKER} ./test-c-stack${EXEEXT} 2> t-c-stack.tmp
 case $? in
   77) cat t-c-stack.tmp >&2; (exit 77); exit 77 ;;
   1) ;;
diff --git a/tests/test-c-stack2.sh b/tests/test-c-stack2.sh
index 0cd49c9..2944ff5 100755
--- a/tests/test-c-stack2.sh
+++ b/tests/test-c-stack2.sh
@@ -7,7 +7,7 @@ tmpfiles="t-c-stack2.tmp"
 
 # Sanitize exit status within a subshell, since some shells fail to
 # redirect stderr on their message about death due to signal.
-(./test-c-stack${EXEEXT} 1; exit $?) 2> t-c-stack2.tmp
+(${CHECKER} ./test-c-stack${EXEEXT} 1; exit $?) 2> t-c-stack2.tmp
 
 case $? in
   77) if grep 'stack overflow' t-c-stack2.tmp >/dev/null ; then
diff --git a/tests/test-c-strcase.sh b/tests/test-c-strcase.sh
index 5fcf906..14bdfb2 100755
--- a/tests/test-c-strcase.sh
+++ b/tests/test-c-strcase.sh
@@ -1,21 +1,21 @@
 #!/bin/sh
 
 # Test in the C locale.
-./test-c-strcasecmp${EXEEXT} || exit 1
-./test-c-strncasecmp${EXEEXT} || exit 1
+${CHECKER} ./test-c-strcasecmp${EXEEXT} || exit 1
+${CHECKER} ./test-c-strncasecmp${EXEEXT} || exit 1
 
 # Test in an ISO-8859-1 or ISO-8859-15 locale.
 : ${LOCALE_FR=fr_FR}
 if test $LOCALE_FR != none; then
-  LC_ALL=$LOCALE_FR ./test-c-strcasecmp${EXEEXT} locale || exit 1
-  LC_ALL=$LOCALE_FR ./test-c-strncasecmp${EXEEXT} locale || exit 1
+  LC_ALL=$LOCALE_FR ${CHECKER} ./test-c-strcasecmp${EXEEXT} locale || exit 1
+  LC_ALL=$LOCALE_FR ${CHECKER} ./test-c-strncasecmp${EXEEXT} locale || exit 1
 fi
 
 # Test in a Turkish UTF-8 locale.
 : ${LOCALE_TR_UTF8=tr_TR.UTF-8}
 if test $LOCALE_TR_UTF8 != none; then
-  LC_ALL=$LOCALE_TR_UTF8 ./test-c-strcasecmp${EXEEXT} locale || exit 1
-  LC_ALL=$LOCALE_TR_UTF8 ./test-c-strncasecmp${EXEEXT} locale || exit 1
+  LC_ALL=$LOCALE_TR_UTF8 ${CHECKER} ./test-c-strcasecmp${EXEEXT} locale || 
exit 1
+  LC_ALL=$LOCALE_TR_UTF8 ${CHECKER} ./test-c-strncasecmp${EXEEXT} locale || 
exit 1
 fi
 
 exit 0
diff --git a/tests/test-c-vasprintf.sh b/tests/test-c-vasprintf.sh
index 525c0ef..3f6579a 100755
--- a/tests/test-c-vasprintf.sh
+++ b/tests/test-c-vasprintf.sh
@@ -12,4 +12,4 @@ if test $LOCALE_FR = none; then
 fi
 
 LC_ALL=$LOCALE_FR \
-./test-c-vasprintf${EXEEXT} 1
+${CHECKER} ./test-c-vasprintf${EXEEXT} 1
diff --git a/tests/test-c-vsnprintf.sh b/tests/test-c-vsnprintf.sh
index b173a38..5c06aa0 100755
--- a/tests/test-c-vsnprintf.sh
+++ b/tests/test-c-vsnprintf.sh
@@ -12,4 +12,4 @@ if test $LOCALE_FR = none; then
 fi
 
 LC_ALL=$LOCALE_FR \
-./test-c-vsnprintf${EXEEXT} 1
+${CHECKER} ./test-c-vsnprintf${EXEEXT} 1
diff --git a/tests/test-c-xvasprintf.sh b/tests/test-c-xvasprintf.sh
index 1ec5e35..ba32418 100755
--- a/tests/test-c-xvasprintf.sh
+++ b/tests/test-c-xvasprintf.sh
@@ -12,4 +12,4 @@ if test $LOCALE_FR = none; then
 fi
 
 LC_ALL=$LOCALE_FR \
-./test-c-xvasprintf${EXEEXT} 1
+${CHECKER} ./test-c-xvasprintf${EXEEXT} 1
diff --git a/tests/test-closein.sh b/tests/test-closein.sh
index 9c5e851..d6359f9 100755
--- a/tests/test-closein.sh
+++ b/tests/test-closein.sh
@@ -7,26 +7,26 @@ echo world > xout.tmp
 
 fail=0
 # Test with seekable stdin; follow-on process must see remaining data
-(test-closein; cat) < in.tmp > out1.tmp || fail=1
+(${CHECKER} test-closein; cat) < in.tmp > out1.tmp || fail=1
 cmp out1.tmp in.tmp || fail=1
 
-(test-closein consume; cat) < in.tmp > out2.tmp || fail=1
+(${CHECKER} test-closein consume; cat) < in.tmp > out2.tmp || fail=1
 cmp out2.tmp xout.tmp || fail=1
 
 # Test for lack of error on pipe.  Ignore any EPIPE failures from cat.
-cat in.tmp 2>/dev/null | test-closein || fail=1
+cat in.tmp 2>/dev/null | ${CHECKER} test-closein || fail=1
 
-cat in.tmp 2>/dev/null | test-closein consume || fail=1
+cat in.tmp 2>/dev/null | ${CHECKER} test-closein consume || fail=1
 
 # Test for lack of error when nothing is read
-test-closein </dev/null || fail=1
+${CHECKER} test-closein </dev/null || fail=1
 
-test-closein <&- || fail=1
+${CHECKER} test-closein <&- || fail=1
 
 # Test for no error when EOF is read early
-test-closein consume </dev/null || fail=1
+${CHECKER} test-closein consume </dev/null || fail=1
 
 # Test for error when read fails because no file available
-test-closein consume close <&- 2>/dev/null && fail=1
+${CHECKER} test-closein consume close <&- 2>/dev/null && fail=1
 
 Exit $fail
diff --git a/tests/test-copy-acl.sh b/tests/test-copy-acl.sh
index a0a105d..9f69d14 100755
--- a/tests/test-copy-acl.sh
+++ b/tests/test-copy-acl.sh
@@ -209,9 +209,9 @@ cd "$builddir" ||
   {
     echo "Simple contents" > "$2"
     chmod 600 "$2"
-    "$builddir"/test-copy-acl${EXEEXT} "$1" "$2" || exit 1
-    "$builddir"/test-sameacls${EXEEXT} "$1" "$2" || exit 1
-    func_test_same_acls                "$1" "$2" || exit 1
+    ${CHECKER} "$builddir"/test-copy-acl${EXEEXT} "$1" "$2" || exit 1
+    ${CHECKER} "$builddir"/test-sameacls${EXEEXT} "$1" "$2" || exit 1
+    func_test_same_acls                           "$1" "$2" || exit 1
   }
 
   func_test_copy tmpfile0 tmpfile1
diff --git a/tests/test-copy-file.sh b/tests/test-copy-file.sh
index cd2868d..f58a66e 100755
--- a/tests/test-copy-file.sh
+++ b/tests/test-copy-file.sh
@@ -201,10 +201,10 @@ cd "$builddir" ||
   # on both.
   func_test_copy ()
   {
-    "$builddir"/test-copy-file${EXEEXT} "$1" "$2" || exit 1
+    ${CHECKER} "$builddir"/test-copy-file${EXEEXT} "$1" "$2" || exit 1
     if test "$USE_ACL" != 0; then
-      "$builddir"/test-sameacls${EXEEXT} "$1" "$2" || exit 1
-      func_test_same_acls                "$1" "$2" || exit 1
+      ${CHECKER} "$builddir"/test-sameacls${EXEEXT} "$1" "$2" || exit 1
+      func_test_same_acls                           "$1" "$2" || exit 1
     fi
   }
 
diff --git a/tests/test-dprintf-posix.sh b/tests/test-dprintf-posix.sh
index 75c3593..7353713 100755
--- a/tests/test-dprintf-posix.sh
+++ b/tests/test-dprintf-posix.sh
@@ -4,7 +4,7 @@ tmpfiles=""
 trap 'rm -fr $tmpfiles' 1 2 3 15
 
 tmpfiles="$tmpfiles t-dprintf-posix.tmp t-dprintf-posix.out"
-./test-dprintf-posix${EXEEXT} > t-dprintf-posix.tmp || exit 1
+${CHECKER} ./test-dprintf-posix${EXEEXT} > t-dprintf-posix.tmp || exit 1
 LC_ALL=C tr -d '\r' < t-dprintf-posix.tmp > t-dprintf-posix.out || exit 1
 
 : ${DIFF=diff}
diff --git a/tests/test-dprintf-posix2.sh b/tests/test-dprintf-posix2.sh
index fdaef9a..0fb3859 100755
--- a/tests/test-dprintf-posix2.sh
+++ b/tests/test-dprintf-posix2.sh
@@ -2,7 +2,7 @@
 
 # Test against a memory leak.
 
-(./test-dprintf-posix2${EXEEXT} 0
+(${CHECKER} ./test-dprintf-posix2${EXEEXT} 0
  result=$?
  if test $result != 77 && test $result != 78; then result=1; fi
  exit $result
@@ -13,7 +13,7 @@ if test $malloc_result = 77; then
   exit 77
 fi
 
-./test-dprintf-posix2${EXEEXT} 1 > /dev/null
+${CHECKER} ./test-dprintf-posix2${EXEEXT} 1 > /dev/null
 result=$?
 if test $result = 77; then
   echo "Skipping test: no way to determine address space size"
diff --git a/tests/test-exclude1.sh b/tests/test-exclude1.sh
index 2059e1c..1b391bf 100755
--- a/tests/test-exclude1.sh
+++ b/tests/test-exclude1.sh
@@ -36,7 +36,7 @@ baz: 0
 bar/qux: 0
 EOT
 
-test-exclude in -- foo 'foo*' bar foobar baz bar/qux > out || exit $?
+${CHECKER} test-exclude in -- foo 'foo*' bar foobar baz bar/qux > out || exit 
$?
 
 # Find out how to remove carriage returns from output. Solaris /usr/ucb/tr
 # does not understand '\r'.
diff --git a/tests/test-exclude2.sh b/tests/test-exclude2.sh
index a17364f..b21a7f0 100755
--- a/tests/test-exclude2.sh
+++ b/tests/test-exclude2.sh
@@ -36,7 +36,7 @@ baz: 1
 bar/qux: 0
 EOT
 
-test-exclude -casefold in -- foo 'foo*' bar foobar baz bar/qux > out || exit $?
+${CHECKER} test-exclude -casefold in -- foo 'foo*' bar foobar baz bar/qux > 
out || exit $?
 
 # Find out how to remove carriage returns from output. Solaris /usr/ucb/tr
 # does not understand '\r'.
diff --git a/tests/test-exclude3.sh b/tests/test-exclude3.sh
index 355ee87..0c2c19c 100755
--- a/tests/test-exclude3.sh
+++ b/tests/test-exclude3.sh
@@ -36,7 +36,7 @@ baz: 1
 bar/qux: 1
 EOT
 
-test-exclude -include in -- foo 'foo*' bar foobar baz bar/qux > out || exit $?
+${CHECKER} test-exclude -include in -- foo 'foo*' bar foobar baz bar/qux > out 
|| exit $?
 
 # Find out how to remove carriage returns from output. Solaris /usr/ucb/tr
 # does not understand '\r'.
diff --git a/tests/test-exclude4.sh b/tests/test-exclude4.sh
index 78bfaee..1711d3d 100755
--- a/tests/test-exclude4.sh
+++ b/tests/test-exclude4.sh
@@ -31,7 +31,7 @@ cat > expected <<EOT
 foobar: 1
 EOT
 
-test-exclude -wildcards in -- foobar > out || exit $?
+${CHECKER} test-exclude -wildcards in -- foobar > out || exit $?
 
 # Find out how to remove carriage returns from output. Solaris /usr/ucb/tr
 # does not understand '\r'.
diff --git a/tests/test-exclude5.sh b/tests/test-exclude5.sh
index 598abbd..34c2a0e 100755
--- a/tests/test-exclude5.sh
+++ b/tests/test-exclude5.sh
@@ -34,7 +34,7 @@ barz: 0
 foo/bar: 1
 EOT
 
-test-exclude -leading_dir in -- bar bar/qux barz foo/bar > out || exit $?
+${CHECKER} test-exclude -leading_dir in -- bar bar/qux barz foo/bar > out || 
exit $?
 
 # Find out how to remove carriage returns from output. Solaris /usr/ucb/tr
 # does not understand '\r'.
diff --git a/tests/test-exclude6.sh b/tests/test-exclude6.sh
index 18aae94..3aced42 100755
--- a/tests/test-exclude6.sh
+++ b/tests/test-exclude6.sh
@@ -32,7 +32,7 @@ bar: 1
 foo/bar: 0
 EOT
 
-test-exclude -anchored in -- bar foo/bar > out || exit $?
+${CHECKER} test-exclude -anchored in -- bar foo/bar > out || exit $?
 
 # Find out how to remove carriage returns from output. Solaris /usr/ucb/tr
 # does not understand '\r'.
diff --git a/tests/test-exclude7.sh b/tests/test-exclude7.sh
index 7e355fa..efa6773 100755
--- a/tests/test-exclude7.sh
+++ b/tests/test-exclude7.sh
@@ -32,8 +32,8 @@ bar: 0
 bar: 1
 EOT
 
-test-exclude in -include in -- bar > out || exit $?
-test-exclude -include in -no-include in -- bar >> out || exit $?
+${CHECKER} test-exclude in -include in -- bar > out || exit $?
+${CHECKER} test-exclude -include in -no-include in -- bar >> out || exit $?
 
 # Find out how to remove carriage returns from output. Solaris /usr/ucb/tr
 # does not understand '\r'.
diff --git a/tests/test-exclude8.sh b/tests/test-exclude8.sh
index 5769109..db7382c 100755
--- a/tests/test-exclude8.sh
+++ b/tests/test-exclude8.sh
@@ -32,7 +32,7 @@ file: 0
 bar: 1
 EOT
 
-test-exclude -wildcards in -- 'f*e' 'file' 'bar' > out || exit $?
+${CHECKER} test-exclude -wildcards in -- 'f*e' 'file' 'bar' > out || exit $?
 
 # Find out how to remove carriage returns from output. Solaris /usr/ucb/tr
 # does not understand '\r'.
diff --git a/tests/test-fflush2.sh b/tests/test-fflush2.sh
index ef77fa4..0d8859d 100755
--- a/tests/test-fflush2.sh
+++ b/tests/test-fflush2.sh
@@ -2,8 +2,8 @@
 
 # Execute the test only with seekable input stream.
 # The behaviour of fflush() on a non-seekable input stream is undefined.
-./test-fflush2${EXEEXT} 1 < "$srcdir/test-fflush2.sh" || exit $?
-./test-fflush2${EXEEXT} 2 < "$srcdir/test-fflush2.sh" || exit $?
-#cat "$srcdir/test-fflush2.sh" | ./test-fflush2${EXEEXT} || exit $?
+${CHECKER} ./test-fflush2${EXEEXT} 1 < "$srcdir/test-fflush2.sh" || exit $?
+${CHECKER} ./test-fflush2${EXEEXT} 2 < "$srcdir/test-fflush2.sh" || exit $?
+#cat "$srcdir/test-fflush2.sh" | ${CHECKER} ./test-fflush2${EXEEXT} || exit $?
 
 exit 0
diff --git a/tests/test-file-has-acl.sh b/tests/test-file-has-acl.sh
index a2fa9c3..09d18da 100755
--- a/tests/test-file-has-acl.sh
+++ b/tests/test-file-has-acl.sh
@@ -134,7 +134,7 @@ cd "$builddir" ||
   # matches the expected value.
   func_test_file_has_acl ()
   {
-    res=`"$builddir"/test-file-has-acl${EXEEXT} "$1"`
+    res=`${CHECKER} "$builddir"/test-file-has-acl${EXEEXT} "$1"`
     test "$res" = "$2" || {
       echo "file_has_acl(\"$1\") returned $res, expected $2" 1>&2
       exit 1
diff --git a/tests/test-fpending.sh b/tests/test-fpending.sh
index 636af25..abe7d83 100755
--- a/tests/test-fpending.sh
+++ b/tests/test-fpending.sh
@@ -5,7 +5,7 @@ trap 'rm -fr $tmpfile' 1 2 3 15
 
 tmpfile=test-fpending.t
 
-./test-fpending${EXEEXT} > $tmpfile || exit 1
+${CHECKER} ./test-fpending${EXEEXT} > $tmpfile || exit 1
 
 rm -fr $tmpfile
 
diff --git a/tests/test-fprintf-posix.sh b/tests/test-fprintf-posix.sh
index f9acf1f..2a49c87 100755
--- a/tests/test-fprintf-posix.sh
+++ b/tests/test-fprintf-posix.sh
@@ -4,7 +4,7 @@ tmpfiles=""
 trap 'rm -fr $tmpfiles' 1 2 3 15
 
 tmpfiles="$tmpfiles t-fprintf-posix.tmp t-fprintf-posix.out"
-./test-fprintf-posix${EXEEXT} > t-fprintf-posix.tmp || exit 1
+${CHECKER} ./test-fprintf-posix${EXEEXT} > t-fprintf-posix.tmp || exit 1
 LC_ALL=C tr -d '\r' < t-fprintf-posix.tmp > t-fprintf-posix.out || exit 1
 
 : ${DIFF=diff}
diff --git a/tests/test-fprintf-posix2.sh b/tests/test-fprintf-posix2.sh
index 79d92af..37ebe7d 100755
--- a/tests/test-fprintf-posix2.sh
+++ b/tests/test-fprintf-posix2.sh
@@ -2,7 +2,7 @@
 
 # Test out-of-memory handling.
 
-(./test-fprintf-posix2${EXEEXT} 0
+(${CHECKER} ./test-fprintf-posix2${EXEEXT} 0
  result=$?
  if test $result != 77 && test $result != 78; then result=1; fi
  exit $result
@@ -15,7 +15,7 @@ fi
 
 for arg in 1 2 3 4 5 6
 do
-  ./test-fprintf-posix2${EXEEXT} $arg > /dev/null
+  ${CHECKER} ./test-fprintf-posix2${EXEEXT} $arg > /dev/null
   result=$?
   if test $result = 77; then
     echo "Skipping test: getrlimit and setrlimit don't work"
diff --git a/tests/test-fprintf-posix3.sh b/tests/test-fprintf-posix3.sh
index d9cbce9..351d375 100755
--- a/tests/test-fprintf-posix3.sh
+++ b/tests/test-fprintf-posix3.sh
@@ -2,7 +2,7 @@
 
 # Test against a memory leak.
 
-(./test-fprintf-posix3${EXEEXT} 0
+(${CHECKER} ./test-fprintf-posix3${EXEEXT} 0
  result=$?
  if test $result != 77 && test $result != 78; then result=1; fi
  exit $result
@@ -13,7 +13,7 @@ if test $malloc_result = 77; then
   exit 77
 fi
 
-./test-fprintf-posix3${EXEEXT} 1 > /dev/null
+${CHECKER} ./test-fprintf-posix3${EXEEXT} 1 > /dev/null
 result=$?
 if test $result = 77; then
   echo "Skipping test: no way to determine address space size"
diff --git a/tests/test-freadahead.sh b/tests/test-freadahead.sh
index 27cf550..f420000 100755
--- a/tests/test-freadahead.sh
+++ b/tests/test-freadahead.sh
@@ -1,5 +1,5 @@
 #!/bin/sh
 
-./test-freadahead${EXEEXT} 0 < "$srcdir/test-freadahead.sh" || exit 1
-./test-freadahead${EXEEXT} 5 < "$srcdir/test-freadahead.sh" || exit 1
+${CHECKER} ./test-freadahead${EXEEXT} 0 < "$srcdir/test-freadahead.sh" || exit 
1
+${CHECKER} ./test-freadahead${EXEEXT} 5 < "$srcdir/test-freadahead.sh" || exit 
1
 exit 0
diff --git a/tests/test-freadptr.sh b/tests/test-freadptr.sh
index 97819b2..0917fa3 100755
--- a/tests/test-freadptr.sh
+++ b/tests/test-freadptr.sh
@@ -1,5 +1,5 @@
 #!/bin/sh
 
-./test-freadptr${EXEEXT} 5 < "$srcdir/test-freadptr.sh" || exit 1
-cat "$srcdir/test-freadptr.sh" | ./test-freadptr${EXEEXT} 5 || exit 1
+${CHECKER} ./test-freadptr${EXEEXT} 5 < "$srcdir/test-freadptr.sh" || exit 1
+cat "$srcdir/test-freadptr.sh" | ${CHECKER} ./test-freadptr${EXEEXT} 5 || exit 
1
 exit 0
diff --git a/tests/test-freadptr2.sh b/tests/test-freadptr2.sh
index 7634d85..f429f38 100755
--- a/tests/test-freadptr2.sh
+++ b/tests/test-freadptr2.sh
@@ -1,5 +1,5 @@
 #!/bin/sh
 
-./test-freadptr2${EXEEXT} 0 < "$srcdir/test-freadptr2.sh" || exit 1
-./test-freadptr2${EXEEXT} 5 < "$srcdir/test-freadptr2.sh" || exit 1
+${CHECKER} ./test-freadptr2${EXEEXT} 0 < "$srcdir/test-freadptr2.sh" || exit 1
+${CHECKER} ./test-freadptr2${EXEEXT} 5 < "$srcdir/test-freadptr2.sh" || exit 1
 exit 0
diff --git a/tests/test-freadseek.sh b/tests/test-freadseek.sh
index 453cadf..8925204 100755
--- a/tests/test-freadseek.sh
+++ b/tests/test-freadseek.sh
@@ -1,5 +1,5 @@
 #!/bin/sh
 
-./test-freadseek${EXEEXT} 5 19 6 7 18 9 19 < "$srcdir/test-freadseek.sh" || 
exit 1
-cat "$srcdir/test-freadseek.sh" | ./test-freadseek${EXEEXT} 5 19 6 7 18 9 19 
|| exit 1
+${CHECKER} ./test-freadseek${EXEEXT} 5 19 6 7 18 9 19 < 
"$srcdir/test-freadseek.sh" || exit 1
+cat "$srcdir/test-freadseek.sh" | ${CHECKER} ./test-freadseek${EXEEXT} 5 19 6 
7 18 9 19 || exit 1
 exit 0
diff --git a/tests/test-fseek.sh b/tests/test-fseek.sh
index bad6c08..4ad3fda 100755
--- a/tests/test-fseek.sh
+++ b/tests/test-fseek.sh
@@ -1,5 +1,5 @@
 #!/bin/sh
 
-./test-fseek${EXEEXT} 1 < "$srcdir/test-fseek.sh" || exit 1
-echo hi | ./test-fseek${EXEEXT} || exit 1
+${CHECKER} ./test-fseek${EXEEXT} 1 < "$srcdir/test-fseek.sh" || exit 1
+echo hi | ${CHECKER} ./test-fseek${EXEEXT} || exit 1
 exit 0
diff --git a/tests/test-fseek2.sh b/tests/test-fseek2.sh
index a4c9cb7..beadc98 100755
--- a/tests/test-fseek2.sh
+++ b/tests/test-fseek2.sh
@@ -1,3 +1,3 @@
 #!/bin/sh
 
-exec ./test-fseek${EXEEXT} 1 2 < "$srcdir/test-fseek2.sh"
+exec ${CHECKER} ./test-fseek${EXEEXT} 1 2 < "$srcdir/test-fseek2.sh"
diff --git a/tests/test-fseeko.sh b/tests/test-fseeko.sh
index 5c55827..c7b675e 100755
--- a/tests/test-fseeko.sh
+++ b/tests/test-fseeko.sh
@@ -1,5 +1,5 @@
 #!/bin/sh
 
-./test-fseeko${EXEEXT} 1 < "$srcdir/test-fseeko.sh" || exit 1
-echo hi | ./test-fseeko${EXEEXT} || exit 1
+${CHECKER} ./test-fseeko${EXEEXT} 1 < "$srcdir/test-fseeko.sh" || exit 1
+echo hi | ${CHECKER} ./test-fseeko${EXEEXT} || exit 1
 exit 0
diff --git a/tests/test-fseeko2.sh b/tests/test-fseeko2.sh
index 6e1130c..7bf315e 100755
--- a/tests/test-fseeko2.sh
+++ b/tests/test-fseeko2.sh
@@ -1,3 +1,3 @@
 #!/bin/sh
 
-exec ./test-fseeko${EXEEXT} 1 2 < "$srcdir/test-fseeko2.sh"
+exec ${CHECKER} ./test-fseeko${EXEEXT} 1 2 < "$srcdir/test-fseeko2.sh"
diff --git a/tests/test-fseeko3.sh b/tests/test-fseeko3.sh
index c50b4a2..254d0cb 100755
--- a/tests/test-fseeko3.sh
+++ b/tests/test-fseeko3.sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 
-./test-fseeko3${EXEEXT} 0 "$srcdir/test-fseeko3.sh" || exit 1
+${CHECKER} ./test-fseeko3${EXEEXT} 0 "$srcdir/test-fseeko3.sh" || exit 1
 
-./test-fseeko3${EXEEXT} 1 "$srcdir/test-fseeko3.sh" || exit 1
+${CHECKER} ./test-fseeko3${EXEEXT} 1 "$srcdir/test-fseeko3.sh" || exit 1
 
 exit 0
diff --git a/tests/test-fseeko4.sh b/tests/test-fseeko4.sh
index e6464ae..7a4d352 100755
--- a/tests/test-fseeko4.sh
+++ b/tests/test-fseeko4.sh
@@ -1,5 +1,5 @@
 #!/bin/sh
 
-./test-fseeko4${EXEEXT} "$srcdir/test-fseeko4.sh" || exit 1
+${CHECKER} ./test-fseeko4${EXEEXT} "$srcdir/test-fseeko4.sh" || exit 1
 
 exit 0
diff --git a/tests/test-ftell.sh b/tests/test-ftell.sh
index bf55d2e..5c27808 100755
--- a/tests/test-ftell.sh
+++ b/tests/test-ftell.sh
@@ -1,5 +1,5 @@
 #!/bin/sh
 
-./test-ftell${EXEEXT} 1 < "$srcdir/test-ftell.sh" || exit 1
-echo hi | ./test-ftell${EXEEXT} || exit 1
+${CHECKER} ./test-ftell${EXEEXT} 1 < "$srcdir/test-ftell.sh" || exit 1
+echo hi | ${CHECKER} ./test-ftell${EXEEXT} || exit 1
 exit 0
diff --git a/tests/test-ftell2.sh b/tests/test-ftell2.sh
index 3b645b8..7d116d2 100755
--- a/tests/test-ftell2.sh
+++ b/tests/test-ftell2.sh
@@ -1,3 +1,3 @@
 #!/bin/sh
 
-exec ./test-ftell${EXEEXT} 1 2 < "$srcdir/test-ftell2.sh"
+exec ${CHECKER} ./test-ftell${EXEEXT} 1 2 < "$srcdir/test-ftell2.sh"
diff --git a/tests/test-ftello.sh b/tests/test-ftello.sh
index 33d2e83..e8db061 100755
--- a/tests/test-ftello.sh
+++ b/tests/test-ftello.sh
@@ -1,5 +1,5 @@
 #!/bin/sh
 
-./test-ftello${EXEEXT} 1 < "$srcdir/test-ftello.sh" || exit 1
-echo hi | ./test-ftello${EXEEXT} || exit 1
+${CHECKER} ./test-ftello${EXEEXT} 1 < "$srcdir/test-ftello.sh" || exit 1
+echo hi | ${CHECKER} ./test-ftello${EXEEXT} || exit 1
 exit 0
diff --git a/tests/test-ftello2.sh b/tests/test-ftello2.sh
index ba750b0..63a222c 100755
--- a/tests/test-ftello2.sh
+++ b/tests/test-ftello2.sh
@@ -1,3 +1,3 @@
 #!/bin/sh
 
-exec ./test-ftello${EXEEXT} 1 2 < "$srcdir/test-ftello2.sh"
+exec ${CHECKER} ./test-ftello${EXEEXT} 1 2 < "$srcdir/test-ftello2.sh"
diff --git a/tests/test-ftello4.sh b/tests/test-ftello4.sh
index e3702bb..f7ff149 100755
--- a/tests/test-ftello4.sh
+++ b/tests/test-ftello4.sh
@@ -1,5 +1,5 @@
 #!/bin/sh
 
-./test-ftello4${EXEEXT} "$srcdir/test-ftello4.sh" || exit 1
+${CHECKER} ./test-ftello4${EXEEXT} "$srcdir/test-ftello4.sh" || exit 1
 
 exit 0
diff --git a/tests/test-ftruncate.sh b/tests/test-ftruncate.sh
index d7394d2..203e07b 100755
--- a/tests/test-ftruncate.sh
+++ b/tests/test-ftruncate.sh
@@ -1,3 +1,3 @@
 #!/bin/sh
 
-exec ./test-ftruncate${EXEEXT} "$srcdir/test-ftruncate.sh"
+exec ${CHECKER} ./test-ftruncate${EXEEXT} "$srcdir/test-ftruncate.sh"
diff --git a/tests/test-getcwd.sh b/tests/test-getcwd.sh
index a886b6e..64a3c7c 100755
--- a/tests/test-getcwd.sh
+++ b/tests/test-getcwd.sh
@@ -2,6 +2,6 @@
 
 . "${srcdir=.}/init.sh"; path_prepend_ .
 
-test-getcwd
+${CHECKER} test-getcwd
 
 Exit $?
diff --git a/tests/test-idpriv-drop.su.sh b/tests/test-idpriv-drop.su.sh
index 0203c51..7dcbf57 100755
--- a/tests/test-idpriv-drop.su.sh
+++ b/tests/test-idpriv-drop.su.sh
@@ -16,7 +16,7 @@ if test `$ID -u` != 0; then
   exit 77
 fi
 
-./test-idpriv-drop${EXEEXT} || exit 13          # normal
+${CHECKER} ./test-idpriv-drop${EXEEXT} || exit 13          # normal
 
 chown root:root test-idpriv-drop${EXEEXT} 2>/dev/null || \
 chown root:wheel test-idpriv-drop${EXEEXT} 2>/dev/null || \
diff --git a/tests/test-idpriv-droptemp.su.sh b/tests/test-idpriv-droptemp.su.sh
index 74358f8..3c77e51 100755
--- a/tests/test-idpriv-droptemp.su.sh
+++ b/tests/test-idpriv-droptemp.su.sh
@@ -16,7 +16,7 @@ if test `$ID -u` != 0; then
   exit 77
 fi
 
-./test-idpriv-droptemp${EXEEXT} || exit 13      # normal
+${CHECKER} ./test-idpriv-droptemp${EXEEXT} || exit 13      # normal
 
 chown root:root test-idpriv-droptemp${EXEEXT} 2>/dev/null || \
 chown root:wheel test-idpriv-droptemp${EXEEXT} 2>/dev/null || \
diff --git a/tests/test-lseek.sh b/tests/test-lseek.sh
index 47237b5..ff206c6 100755
--- a/tests/test-lseek.sh
+++ b/tests/test-lseek.sh
@@ -5,14 +5,14 @@ trap 'rm -fr $tmpfiles' 1 2 3 15
 
 tmpfiles=t-lseek.tmp
 # seekable files
-./test-lseek${EXEEXT} 0 < "$srcdir/test-lseek.sh" > t-lseek.tmp || exit 1
+${CHECKER} ./test-lseek${EXEEXT} 0 < "$srcdir/test-lseek.sh" > t-lseek.tmp || 
exit 1
 
 # pipes
-echo hi | { ./test-lseek${EXEEXT} 1; echo $? > t-lseek.tmp; cat > /dev/null; } 
| cat
+echo hi | { ${CHECKER} ./test-lseek${EXEEXT} 1; echo $? > t-lseek.tmp; cat > 
/dev/null; } | cat
 test "`cat t-lseek.tmp`" = "0" || exit 1
 
 # closed descriptors
-./test-lseek${EXEEXT} 2 <&- >&- || exit 1
+${CHECKER} ./test-lseek${EXEEXT} 2 <&- >&- || exit 1
 
 rm -rf $tmpfiles
 exit 0
diff --git a/tests/test-mbmemcasecmp1.sh b/tests/test-mbmemcasecmp1.sh
index 414d958..0eeb980 100755
--- a/tests/test-mbmemcasecmp1.sh
+++ b/tests/test-mbmemcasecmp1.sh
@@ -12,4 +12,4 @@ if test $LOCALE_FR = none; then
 fi
 
 LC_ALL=$LOCALE_FR \
-./test-mbmemcasecmp${EXEEXT} 1
+${CHECKER} ./test-mbmemcasecmp${EXEEXT} 1
diff --git a/tests/test-mbmemcasecmp2.sh b/tests/test-mbmemcasecmp2.sh
index 7806220..be03caa 100755
--- a/tests/test-mbmemcasecmp2.sh
+++ b/tests/test-mbmemcasecmp2.sh
@@ -12,4 +12,4 @@ if test $LOCALE_FR_UTF8 = none; then
 fi
 
 LC_ALL=$LOCALE_FR_UTF8 \
-./test-mbmemcasecmp${EXEEXT} 2
+${CHECKER} ./test-mbmemcasecmp${EXEEXT} 2
diff --git a/tests/test-mbmemcasecmp3.sh b/tests/test-mbmemcasecmp3.sh
index b834c0a..4adafe6 100755
--- a/tests/test-mbmemcasecmp3.sh
+++ b/tests/test-mbmemcasecmp3.sh
@@ -12,4 +12,4 @@ if test $LOCALE_TR_UTF8 = none; then
 fi
 
 LC_ALL=$LOCALE_TR_UTF8 \
-./test-mbmemcasecmp${EXEEXT} 3
+${CHECKER} ./test-mbmemcasecmp${EXEEXT} 3
diff --git a/tests/test-mbmemcasecoll1.sh b/tests/test-mbmemcasecoll1.sh
index d7a0e69..12dd3cf 100755
--- a/tests/test-mbmemcasecoll1.sh
+++ b/tests/test-mbmemcasecoll1.sh
@@ -12,4 +12,4 @@ if test $LOCALE_FR = none; then
 fi
 
 LC_ALL=$LOCALE_FR \
-./test-mbmemcasecoll${EXEEXT} 1
+${CHECKER} ./test-mbmemcasecoll${EXEEXT} 1
diff --git a/tests/test-mbmemcasecoll2.sh b/tests/test-mbmemcasecoll2.sh
index 1f7b48b..f3fef3d 100755
--- a/tests/test-mbmemcasecoll2.sh
+++ b/tests/test-mbmemcasecoll2.sh
@@ -12,4 +12,4 @@ if test $LOCALE_FR_UTF8 = none; then
 fi
 
 LC_ALL=$LOCALE_FR_UTF8 \
-./test-mbmemcasecoll${EXEEXT} 2
+${CHECKER} ./test-mbmemcasecoll${EXEEXT} 2
diff --git a/tests/test-mbmemcasecoll3.sh b/tests/test-mbmemcasecoll3.sh
index 95b2733..7578752 100755
--- a/tests/test-mbmemcasecoll3.sh
+++ b/tests/test-mbmemcasecoll3.sh
@@ -12,4 +12,4 @@ if test $LOCALE_TR_UTF8 = none; then
 fi
 
 LC_ALL=$LOCALE_TR_UTF8 \
-./test-mbmemcasecoll${EXEEXT} 3
+${CHECKER} ./test-mbmemcasecoll${EXEEXT} 3
diff --git a/tests/test-mbrtowc-w32-1.sh b/tests/test-mbrtowc-w32-1.sh
index 3f12e44..fec9ead 100755
--- a/tests/test-mbrtowc-w32-1.sh
+++ b/tests/test-mbrtowc-w32-1.sh
@@ -1,4 +1,4 @@
 #!/bin/sh
 
 # Test a CP1252 locale.
-./test-mbrtowc-w32${EXEEXT} French_France 1252
+${CHECKER} ./test-mbrtowc-w32${EXEEXT} French_France 1252
diff --git a/tests/test-mbrtowc-w32-2.sh b/tests/test-mbrtowc-w32-2.sh
index 9e1a765..c55a0ec 100755
--- a/tests/test-mbrtowc-w32-2.sh
+++ b/tests/test-mbrtowc-w32-2.sh
@@ -1,4 +1,4 @@
 #!/bin/sh
 
 # Test a CP1256 locale.
-./test-mbrtowc-w32${EXEEXT} "Arabic_Saudi Arabia" 1256
+${CHECKER} ./test-mbrtowc-w32${EXEEXT} "Arabic_Saudi Arabia" 1256
diff --git a/tests/test-mbrtowc-w32-3.sh b/tests/test-mbrtowc-w32-3.sh
index 782c2d0..c49f4bd 100755
--- a/tests/test-mbrtowc-w32-3.sh
+++ b/tests/test-mbrtowc-w32-3.sh
@@ -1,4 +1,4 @@
 #!/bin/sh
 
 # Test a CP932 locale.
-./test-mbrtowc-w32${EXEEXT} Japanese_Japan 932
+${CHECKER} ./test-mbrtowc-w32${EXEEXT} Japanese_Japan 932
diff --git a/tests/test-mbrtowc-w32-4.sh b/tests/test-mbrtowc-w32-4.sh
index 0630f30..3e78615 100755
--- a/tests/test-mbrtowc-w32-4.sh
+++ b/tests/test-mbrtowc-w32-4.sh
@@ -1,4 +1,4 @@
 #!/bin/sh
 
 # Test a CP950 locale.
-./test-mbrtowc-w32${EXEEXT} Chinese_Taiwan 950
+${CHECKER} ./test-mbrtowc-w32${EXEEXT} Chinese_Taiwan 950
diff --git a/tests/test-mbrtowc-w32-5.sh b/tests/test-mbrtowc-w32-5.sh
index 7d7faa9..c6ba222 100755
--- a/tests/test-mbrtowc-w32-5.sh
+++ b/tests/test-mbrtowc-w32-5.sh
@@ -1,4 +1,4 @@
 #!/bin/sh
 
 # Test a CP936 locale.
-./test-mbrtowc-w32${EXEEXT} Chinese_China 936
+${CHECKER} ./test-mbrtowc-w32${EXEEXT} Chinese_China 936
diff --git a/tests/test-mbrtowc-w32-6.sh b/tests/test-mbrtowc-w32-6.sh
index 945ebb6..e608233 100755
--- a/tests/test-mbrtowc-w32-6.sh
+++ b/tests/test-mbrtowc-w32-6.sh
@@ -4,4 +4,4 @@
 # will likely never support locales with MB_CUR_MAX > 2.
 
 # Test a GB18030 locale.
-./test-mbrtowc-w32${EXEEXT} Chinese_China 54936
+${CHECKER} ./test-mbrtowc-w32${EXEEXT} Chinese_China 54936
diff --git a/tests/test-mbrtowc-w32-7.sh b/tests/test-mbrtowc-w32-7.sh
index 26fc7b3..0a3eb8f 100755
--- a/tests/test-mbrtowc-w32-7.sh
+++ b/tests/test-mbrtowc-w32-7.sh
@@ -4,4 +4,4 @@
 # will likely never support locales with MB_CUR_MAX > 2.
 
 # Test some UTF-8 locales.
-./test-mbrtowc-w32${EXEEXT} French_France Japanese_Japan Chinese_Taiwan 
Chinese_China 65001
+${CHECKER} ./test-mbrtowc-w32${EXEEXT} French_France Japanese_Japan 
Chinese_Taiwan Chinese_China 65001
diff --git a/tests/test-mbrtowc1.sh b/tests/test-mbrtowc1.sh
index 3becba3..00b108b 100755
--- a/tests/test-mbrtowc1.sh
+++ b/tests/test-mbrtowc1.sh
@@ -12,4 +12,4 @@ if test $LOCALE_FR = none; then
 fi
 
 LC_ALL=$LOCALE_FR \
-./test-mbrtowc${EXEEXT} 1
+${CHECKER} ./test-mbrtowc${EXEEXT} 1
diff --git a/tests/test-mbrtowc2.sh b/tests/test-mbrtowc2.sh
index 0405aba..5036930 100755
--- a/tests/test-mbrtowc2.sh
+++ b/tests/test-mbrtowc2.sh
@@ -12,4 +12,4 @@ if test $LOCALE_FR_UTF8 = none; then
 fi
 
 LC_ALL=$LOCALE_FR_UTF8 \
-./test-mbrtowc${EXEEXT} 2
+${CHECKER} ./test-mbrtowc${EXEEXT} 2
diff --git a/tests/test-mbrtowc3.sh b/tests/test-mbrtowc3.sh
index 63a89a2..2773fa7 100755
--- a/tests/test-mbrtowc3.sh
+++ b/tests/test-mbrtowc3.sh
@@ -12,4 +12,4 @@ if test $LOCALE_JA = none; then
 fi
 
 LC_ALL=$LOCALE_JA \
-./test-mbrtowc${EXEEXT} 3
+${CHECKER} ./test-mbrtowc${EXEEXT} 3
diff --git a/tests/test-mbrtowc4.sh b/tests/test-mbrtowc4.sh
index b299a2c..92f641c 100755
--- a/tests/test-mbrtowc4.sh
+++ b/tests/test-mbrtowc4.sh
@@ -12,4 +12,4 @@ if test $LOCALE_ZH_CN = none; then
 fi
 
 LC_ALL=$LOCALE_ZH_CN \
-./test-mbrtowc${EXEEXT} 4
+${CHECKER} ./test-mbrtowc${EXEEXT} 4
diff --git a/tests/test-mbrtowc5.sh b/tests/test-mbrtowc5.sh
index c10b228..490496d 100755
--- a/tests/test-mbrtowc5.sh
+++ b/tests/test-mbrtowc5.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 # Test whether the POSIX locale has encoding errors.
 LC_ALL=C \
-./test-mbrtowc${EXEEXT} 5 || exit
+${CHECKER} ./test-mbrtowc${EXEEXT} 5 || exit
 LC_ALL=POSIX \
-./test-mbrtowc${EXEEXT} 5
+${CHECKER} ./test-mbrtowc${EXEEXT} 5
diff --git a/tests/test-mbscasecmp.sh b/tests/test-mbscasecmp.sh
index 1ec7d5e..5201951 100755
--- a/tests/test-mbscasecmp.sh
+++ b/tests/test-mbscasecmp.sh
@@ -12,4 +12,4 @@ if test $LOCALE_TR_UTF8 = none; then
 fi
 
 LC_ALL=$LOCALE_TR_UTF8 \
-./test-mbscasecmp${EXEEXT}
+${CHECKER} ./test-mbscasecmp${EXEEXT}
diff --git a/tests/test-mbscasestr2.sh b/tests/test-mbscasestr2.sh
index bcb3ecd..a09258b 100755
--- a/tests/test-mbscasestr2.sh
+++ b/tests/test-mbscasestr2.sh
@@ -12,4 +12,4 @@ if test $LOCALE_FR_UTF8 = none; then
 fi
 
 LC_ALL=$LOCALE_FR_UTF8 \
-./test-mbscasestr2${EXEEXT}
+${CHECKER} ./test-mbscasestr2${EXEEXT}
diff --git a/tests/test-mbscasestr3.sh b/tests/test-mbscasestr3.sh
index 6e45a7e..b0cd31d 100755
--- a/tests/test-mbscasestr3.sh
+++ b/tests/test-mbscasestr3.sh
@@ -12,4 +12,4 @@ if test $LOCALE_ZH_CN = none; then
 fi
 
 LC_ALL=$LOCALE_ZH_CN \
-./test-mbscasestr3${EXEEXT}
+${CHECKER} ./test-mbscasestr3${EXEEXT}
diff --git a/tests/test-mbscasestr4.sh b/tests/test-mbscasestr4.sh
index 6c37280..bbec0b2 100755
--- a/tests/test-mbscasestr4.sh
+++ b/tests/test-mbscasestr4.sh
@@ -12,4 +12,4 @@ if test $LOCALE_TR_UTF8 = none; then
 fi
 
 LC_ALL=$LOCALE_TR_UTF8 \
-./test-mbscasestr4${EXEEXT}
+${CHECKER} ./test-mbscasestr4${EXEEXT}
diff --git a/tests/test-mbschr.sh b/tests/test-mbschr.sh
index 9795578..7b04fe3 100755
--- a/tests/test-mbschr.sh
+++ b/tests/test-mbschr.sh
@@ -12,4 +12,4 @@ if test $LOCALE_ZH_CN = none; then
 fi
 
 LC_ALL=$LOCALE_ZH_CN \
-./test-mbschr${EXEEXT}
+${CHECKER} ./test-mbschr${EXEEXT}
diff --git a/tests/test-mbscspn.sh b/tests/test-mbscspn.sh
index f39aa7a..230fd59 100755
--- a/tests/test-mbscspn.sh
+++ b/tests/test-mbscspn.sh
@@ -12,4 +12,4 @@ if test $LOCALE_FR_UTF8 = none; then
 fi
 
 LC_ALL=$LOCALE_FR_UTF8 \
-./test-mbscspn${EXEEXT}
+${CHECKER} ./test-mbscspn${EXEEXT}
diff --git a/tests/test-mbsinit.sh b/tests/test-mbsinit.sh
index bbda48d..7308714 100755
--- a/tests/test-mbsinit.sh
+++ b/tests/test-mbsinit.sh
@@ -12,4 +12,4 @@ if test $LOCALE_FR_UTF8 = none; then
 fi
 
 LC_ALL=$LOCALE_FR_UTF8 \
-./test-mbsinit${EXEEXT}
+${CHECKER} ./test-mbsinit${EXEEXT}
diff --git a/tests/test-mbsncasecmp.sh b/tests/test-mbsncasecmp.sh
index fdb4ad2..2863616 100755
--- a/tests/test-mbsncasecmp.sh
+++ b/tests/test-mbsncasecmp.sh
@@ -12,4 +12,4 @@ if test $LOCALE_TR_UTF8 = none; then
 fi
 
 LC_ALL=$LOCALE_TR_UTF8 \
-./test-mbsncasecmp${EXEEXT}
+${CHECKER} ./test-mbsncasecmp${EXEEXT}
diff --git a/tests/test-mbsnrtowcs1.sh b/tests/test-mbsnrtowcs1.sh
index f0873a3..960e67e 100755
--- a/tests/test-mbsnrtowcs1.sh
+++ b/tests/test-mbsnrtowcs1.sh
@@ -12,4 +12,4 @@ if test $LOCALE_FR = none; then
 fi
 
 LC_ALL=$LOCALE_FR \
-./test-mbsnrtowcs${EXEEXT} 1
+${CHECKER} ./test-mbsnrtowcs${EXEEXT} 1
diff --git a/tests/test-mbsnrtowcs2.sh b/tests/test-mbsnrtowcs2.sh
index 41c9a95..7c01a59 100755
--- a/tests/test-mbsnrtowcs2.sh
+++ b/tests/test-mbsnrtowcs2.sh
@@ -12,4 +12,4 @@ if test $LOCALE_FR_UTF8 = none; then
 fi
 
 LC_ALL=$LOCALE_FR_UTF8 \
-./test-mbsnrtowcs${EXEEXT} 2
+${CHECKER} ./test-mbsnrtowcs${EXEEXT} 2
diff --git a/tests/test-mbsnrtowcs3.sh b/tests/test-mbsnrtowcs3.sh
index 4d9ee16..669157e 100755
--- a/tests/test-mbsnrtowcs3.sh
+++ b/tests/test-mbsnrtowcs3.sh
@@ -12,4 +12,4 @@ if test $LOCALE_JA = none; then
 fi
 
 LC_ALL=$LOCALE_JA \
-./test-mbsnrtowcs${EXEEXT} 3
+${CHECKER} ./test-mbsnrtowcs${EXEEXT} 3
diff --git a/tests/test-mbsnrtowcs4.sh b/tests/test-mbsnrtowcs4.sh
index e43a6a3..25f0575 100755
--- a/tests/test-mbsnrtowcs4.sh
+++ b/tests/test-mbsnrtowcs4.sh
@@ -12,4 +12,4 @@ if test $LOCALE_ZH_CN = none; then
 fi
 
 LC_ALL=$LOCALE_ZH_CN \
-./test-mbsnrtowcs${EXEEXT} 4
+${CHECKER} ./test-mbsnrtowcs${EXEEXT} 4
diff --git a/tests/test-mbspbrk.sh b/tests/test-mbspbrk.sh
index 5136489..a992316 100755
--- a/tests/test-mbspbrk.sh
+++ b/tests/test-mbspbrk.sh
@@ -12,4 +12,4 @@ if test $LOCALE_FR_UTF8 = none; then
 fi
 
 LC_ALL=$LOCALE_FR_UTF8 \
-./test-mbspbrk${EXEEXT}
+${CHECKER} ./test-mbspbrk${EXEEXT}
diff --git a/tests/test-mbspcasecmp.sh b/tests/test-mbspcasecmp.sh
index d3a618d..d9ae094 100755
--- a/tests/test-mbspcasecmp.sh
+++ b/tests/test-mbspcasecmp.sh
@@ -12,4 +12,4 @@ if test $LOCALE_TR_UTF8 = none; then
 fi
 
 LC_ALL=$LOCALE_TR_UTF8 \
-./test-mbspcasecmp${EXEEXT}
+${CHECKER} ./test-mbspcasecmp${EXEEXT}
diff --git a/tests/test-mbsrchr.sh b/tests/test-mbsrchr.sh
index 7bcb29b..4970ded 100755
--- a/tests/test-mbsrchr.sh
+++ b/tests/test-mbsrchr.sh
@@ -12,4 +12,4 @@ if test $LOCALE_ZH_CN = none; then
 fi
 
 LC_ALL=$LOCALE_ZH_CN \
-./test-mbsrchr${EXEEXT}
+${CHECKER} ./test-mbsrchr${EXEEXT}
diff --git a/tests/test-mbsrtowcs1.sh b/tests/test-mbsrtowcs1.sh
index 01916e7..66ba231 100755
--- a/tests/test-mbsrtowcs1.sh
+++ b/tests/test-mbsrtowcs1.sh
@@ -12,4 +12,4 @@ if test $LOCALE_FR = none; then
 fi
 
 LC_ALL=$LOCALE_FR \
-./test-mbsrtowcs${EXEEXT} 1
+${CHECKER} ./test-mbsrtowcs${EXEEXT} 1
diff --git a/tests/test-mbsrtowcs2.sh b/tests/test-mbsrtowcs2.sh
index f72ceb6..6786efd 100755
--- a/tests/test-mbsrtowcs2.sh
+++ b/tests/test-mbsrtowcs2.sh
@@ -12,4 +12,4 @@ if test $LOCALE_FR_UTF8 = none; then
 fi
 
 LC_ALL=$LOCALE_FR_UTF8 \
-./test-mbsrtowcs${EXEEXT} 2
+${CHECKER} ./test-mbsrtowcs${EXEEXT} 2
diff --git a/tests/test-mbsrtowcs3.sh b/tests/test-mbsrtowcs3.sh
index b3c01d4..54e9832 100755
--- a/tests/test-mbsrtowcs3.sh
+++ b/tests/test-mbsrtowcs3.sh
@@ -12,4 +12,4 @@ if test $LOCALE_JA = none; then
 fi
 
 LC_ALL=$LOCALE_JA \
-./test-mbsrtowcs${EXEEXT} 3
+${CHECKER} ./test-mbsrtowcs${EXEEXT} 3
diff --git a/tests/test-mbsrtowcs4.sh b/tests/test-mbsrtowcs4.sh
index 226d6ff..8acda08 100755
--- a/tests/test-mbsrtowcs4.sh
+++ b/tests/test-mbsrtowcs4.sh
@@ -12,4 +12,4 @@ if test $LOCALE_ZH_CN = none; then
 fi
 
 LC_ALL=$LOCALE_ZH_CN \
-./test-mbsrtowcs${EXEEXT} 4
+${CHECKER} ./test-mbsrtowcs${EXEEXT} 4
diff --git a/tests/test-mbsspn.sh b/tests/test-mbsspn.sh
index 9a1a0a9..aa7c97d 100755
--- a/tests/test-mbsspn.sh
+++ b/tests/test-mbsspn.sh
@@ -12,4 +12,4 @@ if test $LOCALE_FR_UTF8 = none; then
 fi
 
 LC_ALL=$LOCALE_FR_UTF8 \
-./test-mbsspn${EXEEXT}
+${CHECKER} ./test-mbsspn${EXEEXT}
diff --git a/tests/test-mbsstr2.sh b/tests/test-mbsstr2.sh
index 79d06df..5ef7139 100755
--- a/tests/test-mbsstr2.sh
+++ b/tests/test-mbsstr2.sh
@@ -12,4 +12,4 @@ if test $LOCALE_FR_UTF8 = none; then
 fi
 
 LC_ALL=$LOCALE_FR_UTF8 \
-./test-mbsstr2${EXEEXT}
+${CHECKER} ./test-mbsstr2${EXEEXT}
diff --git a/tests/test-mbsstr3.sh b/tests/test-mbsstr3.sh
index 732c01f..539f9c0 100755
--- a/tests/test-mbsstr3.sh
+++ b/tests/test-mbsstr3.sh
@@ -12,4 +12,4 @@ if test $LOCALE_ZH_CN = none; then
 fi
 
 LC_ALL=$LOCALE_ZH_CN \
-./test-mbsstr3${EXEEXT}
+${CHECKER} ./test-mbsstr3${EXEEXT}
diff --git a/tests/test-nl_langinfo.sh b/tests/test-nl_langinfo.sh
index 3168f42..b1ce46c 100755
--- a/tests/test-nl_langinfo.sh
+++ b/tests/test-nl_langinfo.sh
@@ -1,17 +1,17 @@
 #!/bin/sh
 
-LC_ALL=C ./test-nl_langinfo${EXEEXT} 0 || exit 1
+LC_ALL=C ${CHECKER} ./test-nl_langinfo${EXEEXT} 0 || exit 1
 
 # Test whether a specific traditional locale is installed.
 : ${LOCALE_FR=fr_FR}
 if test $LOCALE_FR != none; then
-  LC_ALL=$LOCALE_FR ./test-nl_langinfo${EXEEXT} 1 || exit 1
+  LC_ALL=$LOCALE_FR ${CHECKER} ./test-nl_langinfo${EXEEXT} 1 || exit 1
 fi
 
 # Test whether a specific UTF-8 locale is installed.
 : ${LOCALE_FR_UTF8=fr_FR.UTF-8}
 if test $LOCALE_FR_UTF8 != none; then
-  LC_ALL=$LOCALE_FR_UTF8 ./test-nl_langinfo${EXEEXT} 2 || exit 1
+  LC_ALL=$LOCALE_FR_UTF8 ${CHECKER} ./test-nl_langinfo${EXEEXT} 2 || exit 1
 fi
 
 exit 0
diff --git a/tests/test-nonblocking-pipe.sh b/tests/test-nonblocking-pipe.sh
index dd692be..f86e134 100755
--- a/tests/test-nonblocking-pipe.sh
+++ b/tests/test-nonblocking-pipe.sh
@@ -5,13 +5,13 @@
 
 # Test blocking write() with blocking read().
 # Commented out because this test succeeds on all platforms anyway.
-#./test-nonblocking-pipe-main${EXEEXT} ./test-nonblocking-pipe-child${EXEEXT} 
0 || exit 1
+#${CHECKER} ./test-nonblocking-pipe-main${EXEEXT} 
./test-nonblocking-pipe-child${EXEEXT} 0 || exit 1
 
 # Test non-blocking write() with blocking read().
-./test-nonblocking-pipe-main${EXEEXT} ./test-nonblocking-pipe-child${EXEEXT} 1 
|| exit 1
+${CHECKER} ./test-nonblocking-pipe-main${EXEEXT} 
./test-nonblocking-pipe-child${EXEEXT} 1 || exit 1
 
 # Test blocking write() with non-blocking read().
-./test-nonblocking-pipe-main${EXEEXT} ./test-nonblocking-pipe-child${EXEEXT} 2 
|| exit 1
+${CHECKER} ./test-nonblocking-pipe-main${EXEEXT} 
./test-nonblocking-pipe-child${EXEEXT} 2 || exit 1
 
 # Test non-blocking write() with non-blocking read().
-./test-nonblocking-pipe-main${EXEEXT} ./test-nonblocking-pipe-child${EXEEXT} 3 
|| exit 1
+${CHECKER} ./test-nonblocking-pipe-main${EXEEXT} 
./test-nonblocking-pipe-child${EXEEXT} 3 || exit 1
diff --git a/tests/test-nonblocking-socket.sh b/tests/test-nonblocking-socket.sh
index 3818c93..a0ee036 100755
--- a/tests/test-nonblocking-socket.sh
+++ b/tests/test-nonblocking-socket.sh
@@ -1,13 +1,13 @@
 #!/bin/sh
 
 # Test blocking write() with blocking read().
-./test-nonblocking-socket-main${EXEEXT} 
./test-nonblocking-socket-child${EXEEXT} 0 || exit 1
+${CHECKER} ./test-nonblocking-socket-main${EXEEXT} 
./test-nonblocking-socket-child${EXEEXT} 0 || exit 1
 
 # Test non-blocking write() with blocking read().
-./test-nonblocking-socket-main${EXEEXT} 
./test-nonblocking-socket-child${EXEEXT} 1 || exit 1
+${CHECKER} ./test-nonblocking-socket-main${EXEEXT} 
./test-nonblocking-socket-child${EXEEXT} 1 || exit 1
 
 # Test blocking write() with non-blocking read().
-./test-nonblocking-socket-main${EXEEXT} 
./test-nonblocking-socket-child${EXEEXT} 2 || exit 1
+${CHECKER} ./test-nonblocking-socket-main${EXEEXT} 
./test-nonblocking-socket-child${EXEEXT} 2 || exit 1
 
 # Test non-blocking write() with non-blocking read().
-./test-nonblocking-socket-main${EXEEXT} 
./test-nonblocking-socket-child${EXEEXT} 3 || exit 1
+${CHECKER} ./test-nonblocking-socket-main${EXEEXT} 
./test-nonblocking-socket-child${EXEEXT} 3 || exit 1
diff --git a/tests/test-parse-duration.sh b/tests/test-parse-duration.sh
index 6aeb225..9f0d0fe 100755
--- a/tests/test-parse-duration.sh
+++ b/tests/test-parse-duration.sh
@@ -62,7 +62,7 @@ cat > "${tmpf}" <<- _EOF_
 exec 3< "${tmpf}"
 while read line <&3
 do
-    v=`${exe} "${line}"` || { ls -l "${tmpf}"; die "Failed: ${exe} '${line}'"; 
}
+    v=`${CHECKER} ${exe} "${line}"` || { ls -l "${tmpf}"; die "Failed: ${exe} 
'${line}'"; }
     test $v -eq 38898367 || die $v is not 38898367
 done
 exec 3>&-
diff --git a/tests/test-perror.sh b/tests/test-perror.sh
index 40a3034..e776609 100755
--- a/tests/test-perror.sh
+++ b/tests/test-perror.sh
@@ -5,22 +5,22 @@
 # Test NULL prefix. Result should not contain a number, except in lines that
 # start with 'EDC' (IBM z/OS libc produces an error identifier before the
 # error message).
-test-perror 2>&1 >/dev/null | LC_ALL=C tr -d '\r' > t-perror.tmp
+${CHECKER} test-perror 2>&1 >/dev/null | LC_ALL=C tr -d '\r' > t-perror.tmp
 grep -v '^EDC' t-perror.tmp | grep '[0-9]' > /dev/null \
   && fail_ "result should not contain a number"
 
 # Test empty prefix. Result should be the same.
-test-perror '' 2>&1 >/dev/null | LC_ALL=C tr -d '\r' > t-perror1.tmp
+${CHECKER} test-perror '' 2>&1 >/dev/null | LC_ALL=C tr -d '\r' > t-perror1.tmp
 diff t-perror.tmp t-perror1.tmp \
   || fail_ "empty prefix should behave like NULL argument"
 
 # Test non-empty prefix.
-test-perror foo 2>&1 >/dev/null | LC_ALL=C tr -d '\r' > t-perror3.tmp
+${CHECKER} test-perror foo 2>&1 >/dev/null | LC_ALL=C tr -d '\r' > 
t-perror3.tmp
 sed -e 's/^/foo: /' < t-perror.tmp > t-perror2.tmp
 diff t-perror2.tmp t-perror3.tmp || fail_ "prefix applied incorrectly"
 
 # Test exit status.
-test-perror >out 2>/dev/null || fail_ "unexpected exit status"
+${CHECKER} test-perror >out 2>/dev/null || fail_ "unexpected exit status"
 test -s out && fail_ "unexpected output"
 
 Exit 0
diff --git a/tests/test-pipe-filter-gi1.sh b/tests/test-pipe-filter-gi1.sh
index 8840470..1b4af6e 100755
--- a/tests/test-pipe-filter-gi1.sh
+++ b/tests/test-pipe-filter-gi1.sh
@@ -13,8 +13,8 @@ else
 fi
 
 # A small file.
-./test-pipe-filter-gi1${EXEEXT} ${TR} "${srcdir}/test-pipe-filter-gi1.sh" || 
exit 1
+${CHECKER} ./test-pipe-filter-gi1${EXEEXT} ${TR} 
"${srcdir}/test-pipe-filter-gi1.sh" || exit 1
 # A medium-sized file.
-./test-pipe-filter-gi1${EXEEXT} ${TR} "${srcdir}/test-pipe-filter-gi1.c" || 
exit 1
+${CHECKER} ./test-pipe-filter-gi1${EXEEXT} ${TR} 
"${srcdir}/test-pipe-filter-gi1.c" || exit 1
 # A large file.
-./test-pipe-filter-gi1${EXEEXT} ${TR} "${srcdir}/test-vasnprintf-posix.c" || 
exit 1
+${CHECKER} ./test-pipe-filter-gi1${EXEEXT} ${TR} 
"${srcdir}/test-vasnprintf-posix.c" || exit 1
diff --git a/tests/test-pipe-filter-gi2.sh b/tests/test-pipe-filter-gi2.sh
index cd158b9..4306024 100755
--- a/tests/test-pipe-filter-gi2.sh
+++ b/tests/test-pipe-filter-gi2.sh
@@ -18,7 +18,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
-./test-pipe-filter-gi2-main${EXEEXT} ./test-pipe-filter-gi2-child${EXEEXT} | {
+${CHECKER} ./test-pipe-filter-gi2-main${EXEEXT} 
./test-pipe-filter-gi2-child${EXEEXT} | {
   set -e
   read a && test "$a" = "Test 1 passed."
   read a && test "$a" = "Test 2 passed."
diff --git a/tests/test-pipe-filter-ii1.sh b/tests/test-pipe-filter-ii1.sh
index e3ea165..e2ca953 100755
--- a/tests/test-pipe-filter-ii1.sh
+++ b/tests/test-pipe-filter-ii1.sh
@@ -13,8 +13,8 @@ else
 fi
 
 # A small file.
-./test-pipe-filter-ii1${EXEEXT} ${TR} "${srcdir}/test-pipe-filter-ii1.sh" || 
exit 1
+${CHECKER} ./test-pipe-filter-ii1${EXEEXT} ${TR} 
"${srcdir}/test-pipe-filter-ii1.sh" || exit 1
 # A medium-sized file.
-./test-pipe-filter-ii1${EXEEXT} ${TR} "${srcdir}/test-pipe-filter-ii1.c" || 
exit 1
+${CHECKER} ./test-pipe-filter-ii1${EXEEXT} ${TR} 
"${srcdir}/test-pipe-filter-ii1.c" || exit 1
 # A large file.
-./test-pipe-filter-ii1${EXEEXT} ${TR} "${srcdir}/test-vasnprintf-posix.c" || 
exit 1
+${CHECKER} ./test-pipe-filter-ii1${EXEEXT} ${TR} 
"${srcdir}/test-vasnprintf-posix.c" || exit 1
diff --git a/tests/test-pipe-filter-ii2.sh b/tests/test-pipe-filter-ii2.sh
index f1e2d1c..c2e8578 100755
--- a/tests/test-pipe-filter-ii2.sh
+++ b/tests/test-pipe-filter-ii2.sh
@@ -18,7 +18,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
-./test-pipe-filter-ii2-main${EXEEXT} ./test-pipe-filter-ii2-child${EXEEXT} | {
+${CHECKER} ./test-pipe-filter-ii2-main${EXEEXT} 
./test-pipe-filter-ii2-child${EXEEXT} | {
   set -e
   read a && test "$a" = "Test 1 passed."
   read a && test "$a" = "Test 2 passed."
diff --git a/tests/test-pread.sh b/tests/test-pread.sh
index cd4c04d..55e7517 100755
--- a/tests/test-pread.sh
+++ b/tests/test-pread.sh
@@ -2,6 +2,6 @@
 . "${srcdir=.}/init.sh"; path_prepend_ .
 
 fail=0
-: | test-pread || fail=1
+: | ${CHECKER} test-pread || fail=1
 
 Exit $fail
diff --git a/tests/test-printf-posix.sh b/tests/test-printf-posix.sh
index a812345..d496406 100755
--- a/tests/test-printf-posix.sh
+++ b/tests/test-printf-posix.sh
@@ -4,7 +4,7 @@ tmpfiles=""
 trap 'rm -fr $tmpfiles' 1 2 3 15
 
 tmpfiles="$tmpfiles t-printf-posix.tmp t-printf-posix.out"
-./test-printf-posix${EXEEXT} > t-printf-posix.tmp || exit 1
+${CHECKER} ./test-printf-posix${EXEEXT} > t-printf-posix.tmp || exit 1
 LC_ALL=C tr -d '\r' < t-printf-posix.tmp > t-printf-posix.out || exit 1
 
 : ${DIFF=diff}
diff --git a/tests/test-printf-posix2.sh b/tests/test-printf-posix2.sh
index 893c3c9..afcae83 100755
--- a/tests/test-printf-posix2.sh
+++ b/tests/test-printf-posix2.sh
@@ -2,7 +2,7 @@
 
 # Test out-of-memory handling.
 
-(./test-printf-posix2${EXEEXT} 0
+(${CHECKER} ./test-printf-posix2${EXEEXT} 0
  result=$?
  if test $result != 77 && test $result != 78; then result=1; fi
  exit $result
@@ -15,7 +15,7 @@ fi
 
 for arg in 1 2 3 4 5 6
 do
-  ./test-printf-posix2${EXEEXT} $arg > /dev/null
+  ${CHECKER} ./test-printf-posix2${EXEEXT} $arg > /dev/null
   result=$?
   if test $result = 77; then
     echo "Skipping test: getrlimit and setrlimit don't work"
diff --git a/tests/test-pwrite.sh b/tests/test-pwrite.sh
index 94f0f38..ddb2dc9 100755
--- a/tests/test-pwrite.sh
+++ b/tests/test-pwrite.sh
@@ -2,6 +2,6 @@
 . "${srcdir=.}/init.sh"; path_prepend_ .
 
 fail=0
-test-pwrite || fail=1
+${CHECKER} test-pwrite || fail=1
 
 Exit $fail
diff --git a/tests/test-quotearg.sh b/tests/test-quotearg.sh
index 4dd7188..2862f87 100755
--- a/tests/test-quotearg.sh
+++ b/tests/test-quotearg.sh
@@ -23,4 +23,4 @@ if test $locale = French_France.1252; then
 fi
 
 LOCALE=$locale LOCALEDIR="$srcdir/locale" \
-./test-quotearg${EXEEXT}
+${CHECKER} ./test-quotearg${EXEEXT}
diff --git a/tests/test-readtokens.sh b/tests/test-readtokens.sh
index 51fd41e..4c7821f 100755
--- a/tests/test-readtokens.sh
+++ b/tests/test-readtokens.sh
@@ -3,21 +3,21 @@
 
 fail=0
 
-test-readtokens || fail=1
+${CHECKER} test-readtokens || fail=1
 
 # Simplest case.
 echo a:b:c: > exp || fail=1
-printf a:b:c | test-readtokens : > out 2>&1 || fail=1
+printf a:b:c | ${CHECKER} test-readtokens : > out 2>&1 || fail=1
 compare exp out || fail=1
 
 # Use NUL as the delimiter.
 echo a:b:c: > exp || fail=1
-printf 'a\0b\0c' | test-readtokens '\0' > out 2>&1 || fail=1
+printf 'a\0b\0c' | ${CHECKER} test-readtokens '\0' > out 2>&1 || fail=1
 compare exp out || fail=1
 
 # Two delimiter bytes, and adjacent delimiters in the input.
 echo a:b:c: > exp || fail=1
-printf a:-:b-:c:: | test-readtokens :- > out 2>&1 || fail=1
+printf a:-:b-:c:: | ${CHECKER} test-readtokens :- > out 2>&1 || fail=1
 compare exp out || fail=1
 
 Exit $fail
diff --git a/tests/test-select-in.sh b/tests/test-select-in.sh
index 44f5dbb..68176d3 100755
--- a/tests/test-select-in.sh
+++ b/tests/test-select-in.sh
@@ -12,25 +12,25 @@ tmpfiles="$tmpfiles t-select-in.tmp"
 # Regular files.
 
 rm -f t-select-in.tmp
-./test-select-fd${EXEEXT} r 0 t-select-in.tmp < ./test-select-fd${EXEEXT}
+${CHECKER} ./test-select-fd${EXEEXT} r 0 t-select-in.tmp < 
./test-select-fd${EXEEXT}
 test `cat t-select-in.tmp` = "1" || exit 1
 
 # Pipes.
 
 rm -f t-select-in.tmp
 { sleep 1; echo abc; } | \
-  { ./test-select-fd${EXEEXT} r 0 t-select-in.tmp; cat > /dev/null; }
+  { ${CHECKER} ./test-select-fd${EXEEXT} r 0 t-select-in.tmp; cat > /dev/null; 
}
 test `cat t-select-in.tmp` = "0" || exit 1
 
 rm -f t-select-in.tmp
-echo abc | { sleep 1; ./test-select-fd${EXEEXT} r 0 t-select-in.tmp; }
+echo abc | { sleep 1; ${CHECKER} ./test-select-fd${EXEEXT} r 0 
t-select-in.tmp; }
 test `cat t-select-in.tmp` = "1" || exit 1
 
 # Special files.
 # This part of the test is known to fail on Solaris 2.6 and older.
 
 rm -f t-select-in.tmp
-./test-select-fd${EXEEXT} r 0 t-select-in.tmp < /dev/null
+${CHECKER} ./test-select-fd${EXEEXT} r 0 t-select-in.tmp < /dev/null
 test `cat t-select-in.tmp` = "1" || exit 1
 
 rm -fr $tmpfiles
diff --git a/tests/test-select-out.sh b/tests/test-select-out.sh
index c5fd861..dbeace5 100755
--- a/tests/test-select-out.sh
+++ b/tests/test-select-out.sh
@@ -9,25 +9,25 @@ tmpfiles="$tmpfiles t-select-out.out t-select-out.tmp"
 # Regular files.
 
 rm -f t-select-out.tmp
-./test-select-fd${EXEEXT} w 1 t-select-out.tmp > t-select-out.out
+${CHECKER} ./test-select-fd${EXEEXT} w 1 t-select-out.tmp > t-select-out.out
 test `cat t-select-out.tmp` = "1" || exit 1
 
 # Pipes.
 
 if false; then # This test fails on some platforms.
   rm -f t-select-out.tmp
-  ( { echo abc; ./test-select-fd${EXEEXT} w 1 t-select-out.tmp; } | { sleep 1; 
cat; } ) > /dev/null
+  ( { echo abc; ${CHECKER} ./test-select-fd${EXEEXT} w 1 t-select-out.tmp; } | 
{ sleep 1; cat; } ) > /dev/null
   test `cat t-select-out.tmp` = "0" || exit 1
 fi
 
 rm -f t-select-out.tmp
-( { sleep 1; echo abc; ./test-select-fd${EXEEXT} w 1 t-select-out.tmp; } | 
cat) > /dev/null
+( { sleep 1; echo abc; ${CHECKER} ./test-select-fd${EXEEXT} w 1 
t-select-out.tmp; } | cat) > /dev/null
 test `cat t-select-out.tmp` = "1" || exit 1
 
 # Special files.
 
 rm -f t-select-out.tmp
-./test-select-fd${EXEEXT} w 1 t-select-out.tmp > /dev/null
+${CHECKER} ./test-select-fd${EXEEXT} w 1 t-select-out.tmp > /dev/null
 test `cat t-select-out.tmp` = "1" || exit 1
 
 rm -fr $tmpfiles
diff --git a/tests/test-set-mode-acl.sh b/tests/test-set-mode-acl.sh
index b2f12cf..fdcd64b 100755
--- a/tests/test-set-mode-acl.sh
+++ b/tests/test-set-mode-acl.sh
@@ -160,14 +160,14 @@ cd "$builddir" ||
       chmod 600 tmpfile1
 
       # Try to set the ACL to only the given mode.
-      "$builddir"/test-set-mode-acl${EXEEXT} tmpfile1 $mode
+      ${CHECKER} "$builddir"/test-set-mode-acl${EXEEXT} tmpfile1 $mode
       # Verify that tmpfile1 has no ACL and has the desired mode.
       modestring=`ls -l tmpfile1 | dd ibs=1 count=10 2>/dev/null`
       if test "x$modestring" != "x$modestring0"; then
         echo "mode = $mode: tmpfile1 has wrong mode: $modestring" 1>&2
         exit 1
       fi
-      if test `"$builddir"/test-file-has-acl${EXEEXT} tmpfile1` != no; then
+      if test `${CHECKER} "$builddir"/test-file-has-acl${EXEEXT} tmpfile1` != 
no; then
         echo "mode = $mode: tmpfile1 got an ACL" 1>&2
         exit 1
       fi
@@ -212,14 +212,14 @@ cd "$builddir" ||
         esac
 
         # Try to set the ACL to only the given mode.
-        "$builddir"/test-set-mode-acl${EXEEXT} tmpfile2 $mode
+        ${CHECKER} "$builddir"/test-set-mode-acl${EXEEXT} tmpfile2 $mode
         # Verify that tmpfile2 has no ACL and has the desired mode.
         modestring=`ls -l tmpfile2 | dd ibs=1 count=10 2>/dev/null`
         if test "x$modestring" != "x$modestring0"; then
           echo "mode = $mode: tmpfile2 has wrong mode: $modestring" 1>&2
           exit 1
         fi
-        if test `"$builddir"/test-file-has-acl${EXEEXT} tmpfile2` != no; then
+        if test `${CHECKER} "$builddir"/test-file-has-acl${EXEEXT} tmpfile2` 
!= no; then
           echo "mode = $mode: tmpfile2 still has an ACL" 1>&2
           exit 1
         fi
diff --git a/tests/test-setlocale1.sh b/tests/test-setlocale1.sh
index 59a0532..53ad09f 100755
--- a/tests/test-setlocale1.sh
+++ b/tests/test-setlocale1.sh
@@ -16,19 +16,19 @@ if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none \
 fi
 
 if test $LOCALE_FR != none; then
-  LC_ALL=$LOCALE_FR      ./test-setlocale1${EXEEXT} || exit 1
+  LC_ALL=$LOCALE_FR      ${CHECKER} ./test-setlocale1${EXEEXT} || exit 1
 fi
 
 if test $LOCALE_FR_UTF8 != none; then
-  LC_ALL=$LOCALE_FR_UTF8 ./test-setlocale1${EXEEXT} || exit 1
+  LC_ALL=$LOCALE_FR_UTF8 ${CHECKER} ./test-setlocale1${EXEEXT} || exit 1
 fi
 
 if test $LOCALE_JA != none; then
-  LC_ALL=$LOCALE_JA      ./test-setlocale1${EXEEXT} || exit 1
+  LC_ALL=$LOCALE_JA      ${CHECKER} ./test-setlocale1${EXEEXT} || exit 1
 fi
 
 if test $LOCALE_ZH_CN != none; then
-  LC_ALL=$LOCALE_ZH_CN   ./test-setlocale1${EXEEXT} || exit 1
+  LC_ALL=$LOCALE_ZH_CN   ${CHECKER} ./test-setlocale1${EXEEXT} || exit 1
 fi
 
 exit 0
diff --git a/tests/test-setlocale2.sh b/tests/test-setlocale2.sh
index f772cb0..79ea32f 100755
--- a/tests/test-setlocale2.sh
+++ b/tests/test-setlocale2.sh
@@ -2,7 +2,7 @@
 
 # Test locale names with likely unsupported encoding in Unix syntax.
 for name in ar_SA.ISO-8859-1 fr_FR.CP1251 zh_TW.GB18030 zh_CN.BIG5; do
-  env LC_ALL=$name ./test-setlocale2${EXEEXT} 1 || exit 1
+  env LC_ALL=$name ${CHECKER} ./test-setlocale2${EXEEXT} 1 || exit 1
 done
 
 # Test locale names with likely unsupported encoding in native Windows syntax.
@@ -11,7 +11,7 @@ for name in "Arabic_Saudi Arabia.1252" "Arabic_Saudi 
Arabia.65001" \
             Chinese_Taiwan.65001 Chinese_China.54936 Chinese_China.65001; do
   # Here we use 'env' to set the LC_ALL environment variable, because on
   # Solaris 11.0, the /bin/sh refuses to do it for Turkish_Turkey.65001.
-  env LC_ALL="$name" ./test-setlocale2${EXEEXT} 1 || exit 1
+  env LC_ALL="$name" ${CHECKER} ./test-setlocale2${EXEEXT} 1 || exit 1
 done
 
 exit 0
diff --git a/tests/test-sigpipe.sh b/tests/test-sigpipe.sh
index 6cf3242..58a19ac 100755
--- a/tests/test-sigpipe.sh
+++ b/tests/test-sigpipe.sh
@@ -5,7 +5,7 @@ trap 'rm -fr $tmpfiles' 1 2 3 15
 
 # Test signal's default behaviour.
 tmpfiles="$tmpfiles t-sigpipeA.tmp"
-./test-sigpipe${EXEEXT} A 2> t-sigpipeA.tmp | head -1 > /dev/null
+${CHECKER} ./test-sigpipe${EXEEXT} A 2> t-sigpipeA.tmp | head -1 > /dev/null
 if test -s t-sigpipeA.tmp; then
   LC_ALL=C tr -d '\r' < t-sigpipeA.tmp
   rm -fr $tmpfiles; exit 1
@@ -13,7 +13,7 @@ fi
 
 # Test signal's ignored behaviour.
 tmpfiles="$tmpfiles t-sigpipeB.tmp"
-./test-sigpipe${EXEEXT} B 2> t-sigpipeB.tmp | head -1 > /dev/null
+${CHECKER} ./test-sigpipe${EXEEXT} B 2> t-sigpipeB.tmp | head -1 > /dev/null
 if test -s t-sigpipeB.tmp; then
   LC_ALL=C tr -d '\r' < t-sigpipeB.tmp
   rm -fr $tmpfiles; exit 1
@@ -21,7 +21,7 @@ fi
 
 # Test signal's behaviour when a handler is installed.
 tmpfiles="$tmpfiles t-sigpipeC.tmp"
-./test-sigpipe${EXEEXT} C 2> t-sigpipeC.tmp | head -1 > /dev/null
+${CHECKER} ./test-sigpipe${EXEEXT} C 2> t-sigpipeC.tmp | head -1 > /dev/null
 if test -s t-sigpipeC.tmp; then
   LC_ALL=C tr -d '\r' < t-sigpipeC.tmp
   rm -fr $tmpfiles; exit 1
diff --git a/tests/test-spawn-pipe.sh b/tests/test-spawn-pipe.sh
index 676026c..22c4cbd 100755
--- a/tests/test-spawn-pipe.sh
+++ b/tests/test-spawn-pipe.sh
@@ -2,7 +2,7 @@
 
 st=0
 for i in 0 1 2 3 4 5 6 7 ; do
-  ./test-spawn-pipe-main${EXEEXT} ./test-spawn-pipe-child${EXEEXT} $i \
+  ${CHECKER} ./test-spawn-pipe-main${EXEEXT} ./test-spawn-pipe-child${EXEEXT} 
$i \
     || { echo test-spawn-pipe.sh: iteration $i failed >&2; st=1; }
 done
 exit $st
diff --git a/tests/test-strtod1.sh b/tests/test-strtod1.sh
index d220f13..2ec4ebf 100755
--- a/tests/test-strtod1.sh
+++ b/tests/test-strtod1.sh
@@ -13,11 +13,11 @@ if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none; 
then
 fi
 
 if test $LOCALE_FR != none; then
-  LC_ALL=$LOCALE_FR      ./test-strtod1${EXEEXT} || exit 1
+  LC_ALL=$LOCALE_FR      ${CHECKER} ./test-strtod1${EXEEXT} || exit 1
 fi
 
 if test $LOCALE_FR_UTF8 != none; then
-  LC_ALL=$LOCALE_FR_UTF8 ./test-strtod1${EXEEXT} || exit 1
+  LC_ALL=$LOCALE_FR_UTF8 ${CHECKER} ./test-strtod1${EXEEXT} || exit 1
 fi
 
 exit 0
diff --git a/tests/test-strtold1.sh b/tests/test-strtold1.sh
index edec4d3..3f4c4b9 100755
--- a/tests/test-strtold1.sh
+++ b/tests/test-strtold1.sh
@@ -13,11 +13,11 @@ if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none; 
then
 fi
 
 if test $LOCALE_FR != none; then
-  LC_ALL=$LOCALE_FR      ./test-strtold1${EXEEXT} || exit 1
+  LC_ALL=$LOCALE_FR      ${CHECKER} ./test-strtold1${EXEEXT} || exit 1
 fi
 
 if test $LOCALE_FR_UTF8 != none; then
-  LC_ALL=$LOCALE_FR_UTF8 ./test-strtold1${EXEEXT} || exit 1
+  LC_ALL=$LOCALE_FR_UTF8 ${CHECKER} ./test-strtold1${EXEEXT} || exit 1
 fi
 
 exit 0
diff --git a/tests/test-system-quote.sh b/tests/test-system-quote.sh
index d520286..2251ee7 100755
--- a/tests/test-system-quote.sh
+++ b/tests/test-system-quote.sh
@@ -1,3 +1,3 @@
 #!/bin/sh
 
-./test-system-quote-main${EXEEXT} ./test-system-quote-child${EXEEXT}
+${CHECKER} ./test-system-quote-main${EXEEXT} ./test-system-quote-child${EXEEXT}
diff --git a/tests/test-tsearch.sh b/tests/test-tsearch.sh
index c206956..dfc80ee 100755
--- a/tests/test-tsearch.sh
+++ b/tests/test-tsearch.sh
@@ -4,7 +4,7 @@ tmpfiles=""
 trap 'rm -fr $tmpfiles' 1 2 3 15
 
 tmpfiles="$tmpfiles t-tsearch.out"
-./test-tsearch${EXEEXT} > t-tsearch.out 2>&1
+${CHECKER} ./test-tsearch${EXEEXT} > t-tsearch.out 2>&1
 test $? = 0 || { cat t-tsearch.out 1>&2; rm -f $tmpfiles; exit 1; }
 
 rm -f $tmpfiles
diff --git a/tests/test-vasnprintf-posix2.sh b/tests/test-vasnprintf-posix2.sh
index 5ee5b47..9093219 100755
--- a/tests/test-vasnprintf-posix2.sh
+++ b/tests/test-vasnprintf-posix2.sh
@@ -19,4 +19,4 @@ else
 fi
 
 LC_ALL=$testlocale \
-./test-vasnprintf-posix2${EXEEXT}
+${CHECKER} ./test-vasnprintf-posix2${EXEEXT}
diff --git a/tests/test-vdprintf-posix.sh b/tests/test-vdprintf-posix.sh
index 558c41d..8dd2336 100755
--- a/tests/test-vdprintf-posix.sh
+++ b/tests/test-vdprintf-posix.sh
@@ -4,7 +4,7 @@ tmpfiles=""
 trap 'rm -fr $tmpfiles' 1 2 3 15
 
 tmpfiles="$tmpfiles t-vdprintf-posix.tmp t-vdprintf-posix.out"
-./test-vdprintf-posix${EXEEXT} > t-vdprintf-posix.tmp || exit 1
+${CHECKER} ./test-vdprintf-posix${EXEEXT} > t-vdprintf-posix.tmp || exit 1
 LC_ALL=C tr -d '\r' < t-vdprintf-posix.tmp > t-vdprintf-posix.out || exit 1
 
 : ${DIFF=diff}
diff --git a/tests/test-version-etc.sh b/tests/test-version-etc.sh
index c74e4bb..fbea8f4 100755
--- a/tests/test-version-etc.sh
+++ b/tests/test-version-etc.sh
@@ -33,7 +33,7 @@ There is NO WARRANTY, to the extent permitted by law.
 Written by Sergey Poznyakoff and Eric Blake.
 EOT
 
-test-version-etc${EXEEXT} --version |
+${CHECKER} test-version-etc${EXEEXT} --version |
  sed '1s/test-version-etc (.*) .*/test-version-etc (PROJECT) VERSION/
       /^Packaged by/d
       2,3 s/Copyright (C) [0-9]\{4,4\}/COPYRIGHT/' |
diff --git a/tests/test-vfprintf-posix.sh b/tests/test-vfprintf-posix.sh
index 74339ba..d8ced96 100755
--- a/tests/test-vfprintf-posix.sh
+++ b/tests/test-vfprintf-posix.sh
@@ -4,7 +4,7 @@ tmpfiles=""
 trap 'rm -fr $tmpfiles' 1 2 3 15
 
 tmpfiles="$tmpfiles t-vfprintf-posix.tmp t-vfprintf-posix.out"
-./test-vfprintf-posix${EXEEXT} > t-vfprintf-posix.tmp || exit 1
+${CHECKER} ./test-vfprintf-posix${EXEEXT} > t-vfprintf-posix.tmp || exit 1
 LC_ALL=C tr -d '\r' < t-vfprintf-posix.tmp > t-vfprintf-posix.out || exit 1
 
 : ${DIFF=diff}
diff --git a/tests/test-vprintf-posix.sh b/tests/test-vprintf-posix.sh
index 968a8b2..911c980 100755
--- a/tests/test-vprintf-posix.sh
+++ b/tests/test-vprintf-posix.sh
@@ -4,7 +4,7 @@ tmpfiles=""
 trap 'rm -fr $tmpfiles' 1 2 3 15
 
 tmpfiles="$tmpfiles t-vprintf-posix.tmp t-vprintf-posix.out"
-./test-vprintf-posix${EXEEXT} > t-vprintf-posix.tmp || exit 1
+${CHECKER} ./test-vprintf-posix${EXEEXT} > t-vprintf-posix.tmp || exit 1
 LC_ALL=C tr -d '\r' < t-vprintf-posix.tmp > t-vprintf-posix.out || exit 1
 
 : ${DIFF=diff}
diff --git a/tests/test-wcrtomb-w32-1.sh b/tests/test-wcrtomb-w32-1.sh
index 50c82f5..b01c543 100755
--- a/tests/test-wcrtomb-w32-1.sh
+++ b/tests/test-wcrtomb-w32-1.sh
@@ -1,4 +1,4 @@
 #!/bin/sh
 
 # Test a CP1252 locale.
-./test-wcrtomb-w32${EXEEXT} French_France 1252
+${CHECKER} ./test-wcrtomb-w32${EXEEXT} French_France 1252
diff --git a/tests/test-wcrtomb-w32-2.sh b/tests/test-wcrtomb-w32-2.sh
index 783c70c..5481634 100755
--- a/tests/test-wcrtomb-w32-2.sh
+++ b/tests/test-wcrtomb-w32-2.sh
@@ -1,4 +1,4 @@
 #!/bin/sh
 
 # Test a CP1256 locale.
-./test-wcrtomb-w32${EXEEXT} "Arabic_Saudi Arabia" 1256
+${CHECKER} ./test-wcrtomb-w32${EXEEXT} "Arabic_Saudi Arabia" 1256
diff --git a/tests/test-wcrtomb-w32-3.sh b/tests/test-wcrtomb-w32-3.sh
index 619ea64..f35879d 100755
--- a/tests/test-wcrtomb-w32-3.sh
+++ b/tests/test-wcrtomb-w32-3.sh
@@ -1,4 +1,4 @@
 #!/bin/sh
 
 # Test a CP932 locale.
-./test-wcrtomb-w32${EXEEXT} Japanese_Japan 932
+${CHECKER} ./test-wcrtomb-w32${EXEEXT} Japanese_Japan 932
diff --git a/tests/test-wcrtomb-w32-4.sh b/tests/test-wcrtomb-w32-4.sh
index 67b6803..8eec6cb 100755
--- a/tests/test-wcrtomb-w32-4.sh
+++ b/tests/test-wcrtomb-w32-4.sh
@@ -1,4 +1,4 @@
 #!/bin/sh
 
 # Test a CP950 locale.
-./test-wcrtomb-w32${EXEEXT} Chinese_Taiwan 950
+${CHECKER} ./test-wcrtomb-w32${EXEEXT} Chinese_Taiwan 950
diff --git a/tests/test-wcrtomb-w32-5.sh b/tests/test-wcrtomb-w32-5.sh
index 9841fa9..fd47d6f 100755
--- a/tests/test-wcrtomb-w32-5.sh
+++ b/tests/test-wcrtomb-w32-5.sh
@@ -1,4 +1,4 @@
 #!/bin/sh
 
 # Test a CP936 locale.
-./test-wcrtomb-w32${EXEEXT} Chinese_China 936
+${CHECKER} ./test-wcrtomb-w32${EXEEXT} Chinese_China 936
diff --git a/tests/test-wcrtomb-w32-6.sh b/tests/test-wcrtomb-w32-6.sh
index 1709c98..99f9971 100755
--- a/tests/test-wcrtomb-w32-6.sh
+++ b/tests/test-wcrtomb-w32-6.sh
@@ -4,4 +4,4 @@
 # will likely never support locales with MB_CUR_MAX > 2.
 
 # Test a GB18030 locale.
-./test-wcrtomb-w32${EXEEXT} Chinese_China 54936
+${CHECKER} ./test-wcrtomb-w32${EXEEXT} Chinese_China 54936
diff --git a/tests/test-wcrtomb-w32-7.sh b/tests/test-wcrtomb-w32-7.sh
index bea12ab..d8b5291 100755
--- a/tests/test-wcrtomb-w32-7.sh
+++ b/tests/test-wcrtomb-w32-7.sh
@@ -4,4 +4,4 @@
 # will likely never support locales with MB_CUR_MAX > 2.
 
 # Test some UTF-8 locales.
-./test-wcrtomb-w32${EXEEXT} French_France Japanese_Japan Chinese_Taiwan 
Chinese_China 65001
+${CHECKER} ./test-wcrtomb-w32${EXEEXT} French_France Japanese_Japan 
Chinese_Taiwan Chinese_China 65001
diff --git a/tests/test-wcrtomb.sh b/tests/test-wcrtomb.sh
index c183505..1a31b6e 100755
--- a/tests/test-wcrtomb.sh
+++ b/tests/test-wcrtomb.sh
@@ -4,7 +4,7 @@
 : ${LOCALE_FR=fr_FR}
 if test $LOCALE_FR != none; then
   LC_ALL=$LOCALE_FR \
-  ./test-wcrtomb${EXEEXT} 1 \
+  ${CHECKER} ./test-wcrtomb${EXEEXT} 1 \
   || exit 1
 fi
 
@@ -12,7 +12,7 @@ fi
 : ${LOCALE_FR_UTF8=fr_FR.UTF-8}
 if test $LOCALE_FR_UTF8 != none; then
   LC_ALL=$LOCALE_FR_UTF8 \
-  ./test-wcrtomb${EXEEXT} 2 \
+  ${CHECKER} ./test-wcrtomb${EXEEXT} 2 \
   || exit 1
 fi
 
@@ -20,7 +20,7 @@ fi
 : ${LOCALE_JA=ja_JP}
 if test $LOCALE_JA != none; then
   LC_ALL=$LOCALE_JA \
-  ./test-wcrtomb${EXEEXT} 3 \
+  ${CHECKER} ./test-wcrtomb${EXEEXT} 3 \
   || exit 1
 fi
 
@@ -28,12 +28,12 @@ fi
 : ${LOCALE_ZH_CN=zh_CN.GB18030}
 if test $LOCALE_ZH_CN != none; then
   LC_ALL=$LOCALE_ZH_CN \
-  ./test-wcrtomb${EXEEXT} 4 \
+  ${CHECKER} ./test-wcrtomb${EXEEXT} 4 \
   || exit 1
 fi
 
 # Test in the POSIX locale.
-LC_ALL=C     ./test-wcrtomb${EXEEXT} 5 || exit 1
-LC_ALL=POSIX ./test-wcrtomb${EXEEXT} 5 || exit 1
+LC_ALL=C     ${CHECKER} ./test-wcrtomb${EXEEXT} 5 || exit 1
+LC_ALL=POSIX ${CHECKER} ./test-wcrtomb${EXEEXT} 5 || exit 1
 
 exit 0
diff --git a/tests/test-wcsnrtombs1.sh b/tests/test-wcsnrtombs1.sh
index 697402b..b744419 100755
--- a/tests/test-wcsnrtombs1.sh
+++ b/tests/test-wcsnrtombs1.sh
@@ -12,4 +12,4 @@ if test $LOCALE_FR = none; then
 fi
 
 LC_ALL=$LOCALE_FR \
-./test-wcsnrtombs${EXEEXT} 1
+${CHECKER} ./test-wcsnrtombs${EXEEXT} 1
diff --git a/tests/test-wcsnrtombs2.sh b/tests/test-wcsnrtombs2.sh
index 3bb0729..0c6e45a 100755
--- a/tests/test-wcsnrtombs2.sh
+++ b/tests/test-wcsnrtombs2.sh
@@ -12,4 +12,4 @@ if test $LOCALE_FR_UTF8 = none; then
 fi
 
 LC_ALL=$LOCALE_FR_UTF8 \
-./test-wcsnrtombs${EXEEXT} 2
+${CHECKER} ./test-wcsnrtombs${EXEEXT} 2
diff --git a/tests/test-wcsnrtombs3.sh b/tests/test-wcsnrtombs3.sh
index 7d37c91..e6cd472 100755
--- a/tests/test-wcsnrtombs3.sh
+++ b/tests/test-wcsnrtombs3.sh
@@ -12,4 +12,4 @@ if test $LOCALE_JA = none; then
 fi
 
 LC_ALL=$LOCALE_JA \
-./test-wcsnrtombs${EXEEXT} 3
+${CHECKER} ./test-wcsnrtombs${EXEEXT} 3
diff --git a/tests/test-wcsnrtombs4.sh b/tests/test-wcsnrtombs4.sh
index c8a02ce..d124a20 100755
--- a/tests/test-wcsnrtombs4.sh
+++ b/tests/test-wcsnrtombs4.sh
@@ -12,4 +12,4 @@ if test $LOCALE_ZH_CN = none; then
 fi
 
 LC_ALL=$LOCALE_ZH_CN \
-./test-wcsnrtombs${EXEEXT} 4
+${CHECKER} ./test-wcsnrtombs${EXEEXT} 4
diff --git a/tests/test-wcsrtombs1.sh b/tests/test-wcsrtombs1.sh
index 7cdc9ea..f496892 100755
--- a/tests/test-wcsrtombs1.sh
+++ b/tests/test-wcsrtombs1.sh
@@ -12,4 +12,4 @@ if test $LOCALE_FR = none; then
 fi
 
 LC_ALL=$LOCALE_FR \
-./test-wcsrtombs${EXEEXT} 1
+${CHECKER} ./test-wcsrtombs${EXEEXT} 1
diff --git a/tests/test-wcsrtombs2.sh b/tests/test-wcsrtombs2.sh
index d8e2da6..84d87e3 100755
--- a/tests/test-wcsrtombs2.sh
+++ b/tests/test-wcsrtombs2.sh
@@ -12,4 +12,4 @@ if test $LOCALE_FR_UTF8 = none; then
 fi
 
 LC_ALL=$LOCALE_FR_UTF8 \
-./test-wcsrtombs${EXEEXT} 2
+${CHECKER} ./test-wcsrtombs${EXEEXT} 2
diff --git a/tests/test-wcsrtombs3.sh b/tests/test-wcsrtombs3.sh
index 431a584..b19ab50 100755
--- a/tests/test-wcsrtombs3.sh
+++ b/tests/test-wcsrtombs3.sh
@@ -12,4 +12,4 @@ if test $LOCALE_JA = none; then
 fi
 
 LC_ALL=$LOCALE_JA \
-./test-wcsrtombs${EXEEXT} 3
+${CHECKER} ./test-wcsrtombs${EXEEXT} 3
diff --git a/tests/test-wcsrtombs4.sh b/tests/test-wcsrtombs4.sh
index 4cff704..d70ccd8 100755
--- a/tests/test-wcsrtombs4.sh
+++ b/tests/test-wcsrtombs4.sh
@@ -12,4 +12,4 @@ if test $LOCALE_ZH_CN = none; then
 fi
 
 LC_ALL=$LOCALE_ZH_CN \
-./test-wcsrtombs${EXEEXT} 4
+${CHECKER} ./test-wcsrtombs${EXEEXT} 4
diff --git a/tests/test-xalloc-die.sh b/tests/test-xalloc-die.sh
index 385f2d9..be588fc 100755
--- a/tests/test-xalloc-die.sh
+++ b/tests/test-xalloc-die.sh
@@ -18,7 +18,7 @@
 
 . "${srcdir=.}/init.sh"; path_prepend_ .
 
-test-xalloc-die${EXEEXT} > out 2> err
+${CHECKER} test-xalloc-die${EXEEXT} > out 2> err
 case $? in
   1) ;;
   *) Exit 1;;
diff --git a/tests/test-xprintf-posix.sh b/tests/test-xprintf-posix.sh
index 0087a9d..2a67197 100755
--- a/tests/test-xprintf-posix.sh
+++ b/tests/test-xprintf-posix.sh
@@ -4,7 +4,7 @@ tmpfiles=""
 trap 'rm -fr $tmpfiles' 1 2 3 15
 
 tmpfiles="$tmpfiles t-xprintf-posix.tmp t-xprintf-posix.out"
-./test-xprintf-posix${EXEEXT} > t-xprintf-posix.tmp || exit 1
+${CHECKER} ./test-xprintf-posix${EXEEXT} > t-xprintf-posix.tmp || exit 1
 LC_ALL=C tr -d '\r' < t-xprintf-posix.tmp > t-xprintf-posix.out || exit 1
 
 : ${DIFF=diff}
@@ -12,7 +12,7 @@ ${DIFF} "${srcdir}/test-printf-posix.output" 
t-xprintf-posix.out
 test $? = 0 || { rm -fr $tmpfiles; exit 1; }
 
 tmpfiles="$tmpfiles t-xfprintf-posix.tmp t-xfprintf-posix.out"
-./test-xfprintf-posix${EXEEXT} > t-xfprintf-posix.tmp || exit 1
+${CHECKER} ./test-xfprintf-posix${EXEEXT} > t-xfprintf-posix.tmp || exit 1
 LC_ALL=C tr -d '\r' < t-xfprintf-posix.tmp > t-xfprintf-posix.out || exit 1
 
 : ${DIFF=diff}
diff --git a/tests/test-xstdopen.sh b/tests/test-xstdopen.sh
index 5ad2ad2..d3b5ea6 100755
--- a/tests/test-xstdopen.sh
+++ b/tests/test-xstdopen.sh
@@ -1,20 +1,20 @@
 #!/bin/sh
 
 # Test with all of stdin, stdout, stderr open.
-./test-xstdopen || exit 1
+${CHECKER} ./test-xstdopen${EXEEXT} || exit 1
 
 # The syntax for closed file descriptors in sh scripts is specified by POSIX in
 # section 2.7.5 of
 # http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html
 
 # Test with stdin closed.
-./test-xstdopen <&- || exit 1
+${CHECKER} ./test-xstdopen${EXEEXT} <&- || exit 1
 
 # Test with stdout closed.
-./test-xstdopen >&- || exit 1
+${CHECKER} ./test-xstdopen${EXEEXT} >&- || exit 1
 
 # Test with stderr closed.
-./test-xstdopen 2>&- || exit 1
+${CHECKER} ./test-xstdopen${EXEEXT} 2>&- || exit 1
 
 # Test with all of stdin, stdout, stderr closed.
-./test-xstdopen <&- >&- 2>&- || exit 1
+${CHECKER} ./test-xstdopen${EXEEXT} <&- >&- 2>&- || exit 1
diff --git a/tests/test-xstrtoimax.sh b/tests/test-xstrtoimax.sh
index 3a0f9d2..6a48e67 100755
--- a/tests/test-xstrtoimax.sh
+++ b/tests/test-xstrtoimax.sh
@@ -6,15 +6,15 @@ 
too_big=99999999999999999999999999999999999999999999999999999999999999999999
 result=0
 
 # test xstrtoimax
-test-xstrtoimax 1 >> out 2>&1 || result=1
-test-xstrtoimax -1 >> out 2>&1 || result=1
-test-xstrtoimax 1k >> out 2>&1 || result=1
-test-xstrtoimax ${too_big}h >> out 2>&1 && result=1
-test-xstrtoimax $too_big >> out 2>&1 && result=1
-test-xstrtoimax x >> out 2>&1 && result=1
-test-xstrtoimax 9x >> out 2>&1 && result=1
-test-xstrtoimax 010 >> out 2>&1 || result=1
-test-xstrtoimax MiB >> out 2>&1 || result=1
+${CHECKER} test-xstrtoimax 1 >> out 2>&1 || result=1
+${CHECKER} test-xstrtoimax -1 >> out 2>&1 || result=1
+${CHECKER} test-xstrtoimax 1k >> out 2>&1 || result=1
+${CHECKER} test-xstrtoimax ${too_big}h >> out 2>&1 && result=1
+${CHECKER} test-xstrtoimax $too_big >> out 2>&1 && result=1
+${CHECKER} test-xstrtoimax x >> out 2>&1 && result=1
+${CHECKER} test-xstrtoimax 9x >> out 2>&1 && result=1
+${CHECKER} test-xstrtoimax 010 >> out 2>&1 || result=1
+${CHECKER} test-xstrtoimax MiB >> out 2>&1 || result=1
 
 # Find out how to remove carriage returns from output. Solaris /usr/ucb/tr
 # does not understand '\r'.
diff --git a/tests/test-xstrtol.sh b/tests/test-xstrtol.sh
index 5425bc7..15dd911 100755
--- a/tests/test-xstrtol.sh
+++ b/tests/test-xstrtol.sh
@@ -6,29 +6,29 @@ 
too_big=99999999999999999999999999999999999999999999999999999999999999999999
 result=0
 
 # test xstrtol
-test-xstrtol 1 >> out 2>&1 || result=1
-test-xstrtol -1 >> out 2>&1 || result=1
-test-xstrtol 1k >> out 2>&1 || result=1
-test-xstrtol ${too_big}h >> out 2>&1 && result=1
-test-xstrtol $too_big >> out 2>&1 && result=1
-test-xstrtol x >> out 2>&1 && result=1
-test-xstrtol 9x >> out 2>&1 && result=1
-test-xstrtol 010 >> out 2>&1 || result=1
+${CHECKER} test-xstrtol 1 >> out 2>&1 || result=1
+${CHECKER} test-xstrtol -1 >> out 2>&1 || result=1
+${CHECKER} test-xstrtol 1k >> out 2>&1 || result=1
+${CHECKER} test-xstrtol ${too_big}h >> out 2>&1 && result=1
+${CHECKER} test-xstrtol $too_big >> out 2>&1 && result=1
+${CHECKER} test-xstrtol x >> out 2>&1 && result=1
+${CHECKER} test-xstrtol 9x >> out 2>&1 && result=1
+${CHECKER} test-xstrtol 010 >> out 2>&1 || result=1
 # suffix without integer is valid
-test-xstrtol MiB >> out 2>&1 || result=1
-test-xstrtol 1bB >> out 2>&1 && result=1
+${CHECKER} test-xstrtol MiB >> out 2>&1 || result=1
+${CHECKER} test-xstrtol 1bB >> out 2>&1 && result=1
 
 # test xstrtoul
-test-xstrtoul 1 >> out 2>&1 || result=1
-test-xstrtoul -1 >> out 2>&1 && result=1
-test-xstrtoul 1k >> out 2>&1 || result=1
-test-xstrtoul ${too_big}h >> out 2>&1 && result=1
-test-xstrtoul $too_big >> out 2>&1 && result=1
-test-xstrtoul x >> out 2>&1 && result=1
-test-xstrtoul 9x >> out 2>&1 && result=1
-test-xstrtoul 010 >> out 2>&1 || result=1
-test-xstrtoul MiB >> out 2>&1 || result=1
-test-xstrtoul 1bB >> out 2>&1 && result=1
+${CHECKER} test-xstrtoul 1 >> out 2>&1 || result=1
+${CHECKER} test-xstrtoul -1 >> out 2>&1 && result=1
+${CHECKER} test-xstrtoul 1k >> out 2>&1 || result=1
+${CHECKER} test-xstrtoul ${too_big}h >> out 2>&1 && result=1
+${CHECKER} test-xstrtoul $too_big >> out 2>&1 && result=1
+${CHECKER} test-xstrtoul x >> out 2>&1 && result=1
+${CHECKER} test-xstrtoul 9x >> out 2>&1 && result=1
+${CHECKER} test-xstrtoul 010 >> out 2>&1 || result=1
+${CHECKER} test-xstrtoul MiB >> out 2>&1 || result=1
+${CHECKER} test-xstrtoul 1bB >> out 2>&1 && result=1
 
 # Find out how to remove carriage returns from output. Solaris /usr/ucb/tr
 # does not understand '\r'.
diff --git a/tests/test-xstrtoll.sh b/tests/test-xstrtoll.sh
index 8d8df68..8fcbce3 100755
--- a/tests/test-xstrtoll.sh
+++ b/tests/test-xstrtoll.sh
@@ -6,27 +6,27 @@ 
too_big=99999999999999999999999999999999999999999999999999999999999999999999
 result=0
 
 # test xstrtoll
-test-xstrtoll 1 >> out 2>&1 || result=1
-test-xstrtoll -1 >> out 2>&1 || result=1
-test-xstrtoll 1k >> out 2>&1 || result=1
-test-xstrtoll ${too_big}h >> out 2>&1 && result=1
-test-xstrtoll $too_big >> out 2>&1 && result=1
-test-xstrtoll x >> out 2>&1 && result=1
-test-xstrtoll 9x >> out 2>&1 && result=1
-test-xstrtoll 010 >> out 2>&1 || result=1
+${CHECKER} test-xstrtoll 1 >> out 2>&1 || result=1
+${CHECKER} test-xstrtoll -1 >> out 2>&1 || result=1
+${CHECKER} test-xstrtoll 1k >> out 2>&1 || result=1
+${CHECKER} test-xstrtoll ${too_big}h >> out 2>&1 && result=1
+${CHECKER} test-xstrtoll $too_big >> out 2>&1 && result=1
+${CHECKER} test-xstrtoll x >> out 2>&1 && result=1
+${CHECKER} test-xstrtoll 9x >> out 2>&1 && result=1
+${CHECKER} test-xstrtoll 010 >> out 2>&1 || result=1
 # suffix without integer is valid
-test-xstrtoll MiB >> out 2>&1 || result=1
+${CHECKER} test-xstrtoll MiB >> out 2>&1 || result=1
 
 # test xstrtoull
-test-xstrtoull 1 >> out 2>&1 || result=1
-test-xstrtoull -1 >> out 2>&1 && result=1
-test-xstrtoull 1k >> out 2>&1 || result=1
-test-xstrtoull ${too_big}h >> out 2>&1 && result=1
-test-xstrtoull $too_big >> out 2>&1 && result=1
-test-xstrtoull x >> out 2>&1 && result=1
-test-xstrtoull 9x >> out 2>&1 && result=1
-test-xstrtoull 010 >> out 2>&1 || result=1
-test-xstrtoull MiB >> out 2>&1 || result=1
+${CHECKER} test-xstrtoull 1 >> out 2>&1 || result=1
+${CHECKER} test-xstrtoull -1 >> out 2>&1 && result=1
+${CHECKER} test-xstrtoull 1k >> out 2>&1 || result=1
+${CHECKER} test-xstrtoull ${too_big}h >> out 2>&1 && result=1
+${CHECKER} test-xstrtoull $too_big >> out 2>&1 && result=1
+${CHECKER} test-xstrtoull x >> out 2>&1 && result=1
+${CHECKER} test-xstrtoull 9x >> out 2>&1 && result=1
+${CHECKER} test-xstrtoull 010 >> out 2>&1 || result=1
+${CHECKER} test-xstrtoull MiB >> out 2>&1 || result=1
 
 # Find out how to remove carriage returns from output. Solaris /usr/ucb/tr
 # does not understand '\r'.
diff --git a/tests/test-xstrtoumax.sh b/tests/test-xstrtoumax.sh
index bdbdbf5..3ec4cc6 100755
--- a/tests/test-xstrtoumax.sh
+++ b/tests/test-xstrtoumax.sh
@@ -6,15 +6,15 @@ 
too_big=99999999999999999999999999999999999999999999999999999999999999999999
 result=0
 
 # test xstrtoumax
-test-xstrtoumax 1 >> out 2>&1 || result=1
-test-xstrtoumax -1 >> out 2>&1 && result=1
-test-xstrtoumax 1k >> out 2>&1 || result=1
-test-xstrtoumax ${too_big}h >> out 2>&1 && result=1
-test-xstrtoumax $too_big >> out 2>&1 && result=1
-test-xstrtoumax x >> out 2>&1 && result=1
-test-xstrtoumax 9x >> out 2>&1 && result=1
-test-xstrtoumax 010 >> out 2>&1 || result=1
-test-xstrtoumax MiB >> out 2>&1 || result=1
+${CHECKER} test-xstrtoumax 1 >> out 2>&1 || result=1
+${CHECKER} test-xstrtoumax -1 >> out 2>&1 && result=1
+${CHECKER} test-xstrtoumax 1k >> out 2>&1 || result=1
+${CHECKER} test-xstrtoumax ${too_big}h >> out 2>&1 && result=1
+${CHECKER} test-xstrtoumax $too_big >> out 2>&1 && result=1
+${CHECKER} test-xstrtoumax x >> out 2>&1 && result=1
+${CHECKER} test-xstrtoumax 9x >> out 2>&1 && result=1
+${CHECKER} test-xstrtoumax 010 >> out 2>&1 || result=1
+${CHECKER} test-xstrtoumax MiB >> out 2>&1 || result=1
 
 # Find out how to remove carriage returns from output. Solaris /usr/ucb/tr
 # does not understand '\r'.
diff --git a/tests/test-yesno.sh b/tests/test-yesno.sh
index 8bc50a8..67caa77 100755
--- a/tests/test-yesno.sh
+++ b/tests/test-yesno.sh
@@ -32,11 +32,11 @@ n
 EOF
 
 fail=0
-(test-yesno; test-yesno 3; cat) < in.tmp > out1.tmp || fail=1
+(${CHECKER} test-yesno; ${CHECKER} test-yesno 3; cat) < in.tmp > out1.tmp || 
fail=1
 LC_ALL=C tr -d "$cr" < out1.tmp > out.tmp || fail=1
 cmp xout.tmp out.tmp || fail=1
 
-(test-yesno 3; test-yesno; cat) < in.tmp > out1.tmp || fail=1
+(${CHECKER} test-yesno 3; ${CHECKER} test-yesno; cat) < in.tmp > out1.tmp || 
fail=1
 LC_ALL=C tr -d "$cr" < out1.tmp > out.tmp || fail=1
 cmp xout.tmp out.tmp || fail=1
 
@@ -45,7 +45,7 @@ cat <<EOF > xout.tmp
 Y
 N
 EOF
-echo yes | test-yesno 2 > out1.tmp || fail=1
+echo yes | ${CHECKER} test-yesno 2 > out1.tmp || fail=1
 LC_ALL=C tr -d "$cr" < out1.tmp > out.tmp || fail=1
 cmp xout.tmp out.tmp || fail=1
 
@@ -53,7 +53,7 @@ cmp xout.tmp out.tmp || fail=1
 cat <<EOF > xout.tmp
 Y
 EOF
-printf y | test-yesno 1 > out1.tmp || fail=1
+printf y | ${CHECKER} test-yesno 1 > out1.tmp || fail=1
 LC_ALL=C tr -d "$cr" < out1.tmp > out.tmp || fail=1
 cmp xout.tmp out.tmp || fail=1
 
@@ -61,12 +61,12 @@ cmp xout.tmp out.tmp || fail=1
 cat <<EOF > xout.tmp
 N
 EOF
-test-yesno </dev/null > out1.tmp || fail=1
+${CHECKER} test-yesno </dev/null > out1.tmp || fail=1
 LC_ALL=C tr -d "$cr" < out1.tmp > out.tmp || fail=1
 cmp xout.tmp out.tmp || fail=1
 
 # Test for behavior when stdin is closed
-test-yesno 0 <&- > out1.tmp 2> err.tmp && fail=1
+${CHECKER} test-yesno 0 <&- > out1.tmp 2> err.tmp && fail=1
 LC_ALL=C tr -d "$cr" < out1.tmp > out.tmp || fail=1
 cmp xout.tmp out.tmp || fail=1
 test -s err.tmp || fail=1
diff --git a/tests/unicase/test-locale-language.sh 
b/tests/unicase/test-locale-language.sh
index 2aa3460..4e5b90a 100755
--- a/tests/unicase/test-locale-language.sh
+++ b/tests/unicase/test-locale-language.sh
@@ -1,30 +1,30 @@
 #!/bin/sh
 
-LC_ALL=C                       ./test-locale-language${EXEEXT} '' || exit 1
+LC_ALL=C                       ${CHECKER} ./test-locale-language${EXEEXT} '' 
|| exit 1
 
 : ${LOCALE_FR=fr_FR}
 if test $LOCALE_FR != none; then
-  LC_ALL=$LOCALE_FR            ./test-locale-language${EXEEXT} fr || exit 1
+  LC_ALL=$LOCALE_FR            ${CHECKER} ./test-locale-language${EXEEXT} fr 
|| exit 1
 fi
 
 : ${LOCALE_FR_UTF8=fr_FR.UTF-8}
 if test $LOCALE_FR_UTF8 != none; then
-  LC_ALL=$LOCALE_FR_UTF8       ./test-locale-language${EXEEXT} fr || exit 1
+  LC_ALL=$LOCALE_FR_UTF8       ${CHECKER} ./test-locale-language${EXEEXT} fr 
|| exit 1
 fi
 
 : ${LOCALE_JA=ja_JP}
 if test $LOCALE_JA != none; then
-  LC_ALL=$LOCALE_JA            ./test-locale-language${EXEEXT} ja || exit 1
+  LC_ALL=$LOCALE_JA            ${CHECKER} ./test-locale-language${EXEEXT} ja 
|| exit 1
 fi
 
 : ${LOCALE_TR_UTF8=tr_TR.UTF-8}
 if test $LOCALE_TR_UTF8 != none; then
-  LC_ALL=$LOCALE_TR_UTF8       ./test-locale-language${EXEEXT} tr || exit 1
+  LC_ALL=$LOCALE_TR_UTF8       ${CHECKER} ./test-locale-language${EXEEXT} tr 
|| exit 1
 fi
 
 : ${LOCALE_ZH_CN=zh_CN.GB18030}
 if test $LOCALE_ZH_CN != none; then
-  LC_ALL=$LOCALE_ZH_CN         ./test-locale-language${EXEEXT} zh || exit 1
+  LC_ALL=$LOCALE_ZH_CN         ${CHECKER} ./test-locale-language${EXEEXT} zh 
|| exit 1
 fi
 
 exit 0
diff --git a/tests/unicase/test-ulc-casecmp1.sh 
b/tests/unicase/test-ulc-casecmp1.sh
index 7be2cca..a5a61c6 100755
--- a/tests/unicase/test-ulc-casecmp1.sh
+++ b/tests/unicase/test-ulc-casecmp1.sh
@@ -12,4 +12,4 @@ if test $LOCALE_FR = none; then
 fi
 
 LC_ALL=$LOCALE_FR \
-./test-ulc-casecmp${EXEEXT} 1
+${CHECKER} ./test-ulc-casecmp${EXEEXT} 1
diff --git a/tests/unicase/test-ulc-casecmp2.sh 
b/tests/unicase/test-ulc-casecmp2.sh
index a7f06e8..d449227 100755
--- a/tests/unicase/test-ulc-casecmp2.sh
+++ b/tests/unicase/test-ulc-casecmp2.sh
@@ -12,4 +12,4 @@ if test $LOCALE_FR_UTF8 = none; then
 fi
 
 LC_ALL=$LOCALE_FR_UTF8 \
-./test-ulc-casecmp${EXEEXT} 2
+${CHECKER} ./test-ulc-casecmp${EXEEXT} 2
diff --git a/tests/unicase/test-ulc-casecoll1.sh 
b/tests/unicase/test-ulc-casecoll1.sh
index 3760ed8..d18211b 100755
--- a/tests/unicase/test-ulc-casecoll1.sh
+++ b/tests/unicase/test-ulc-casecoll1.sh
@@ -12,4 +12,4 @@ if test $LOCALE_FR = none; then
 fi
 
 LC_ALL=$LOCALE_FR \
-./test-ulc-casecoll${EXEEXT}
+${CHECKER} ./test-ulc-casecoll${EXEEXT}
diff --git a/tests/unicase/test-ulc-casecoll2.sh 
b/tests/unicase/test-ulc-casecoll2.sh
index b179a4c..a74c8b3 100755
--- a/tests/unicase/test-ulc-casecoll2.sh
+++ b/tests/unicase/test-ulc-casecoll2.sh
@@ -12,4 +12,4 @@ if test $LOCALE_FR_UTF8 = none; then
 fi
 
 LC_ALL=$LOCALE_FR_UTF8 \
-./test-ulc-casecoll${EXEEXT}
+${CHECKER} ./test-ulc-casecoll${EXEEXT}
diff --git a/tests/unigbrk/test-uc-grapheme-breaks.sh 
b/tests/unigbrk/test-uc-grapheme-breaks.sh
index 021c9e4..dc19bd1 100755
--- a/tests/unigbrk/test-uc-grapheme-breaks.sh
+++ b/tests/unigbrk/test-uc-grapheme-breaks.sh
@@ -1,3 +1,3 @@
 #!/bin/sh
 
-./test-uc-grapheme-breaks${EXEEXT} "${srcdir}/unigbrk/GraphemeBreakTest.txt"
+${CHECKER} ./test-uc-grapheme-breaks${EXEEXT} 
"${srcdir}/unigbrk/GraphemeBreakTest.txt"
diff --git a/tests/unigbrk/test-uc-is-grapheme-break.sh 
b/tests/unigbrk/test-uc-is-grapheme-break.sh
index 37473e1..9f958bd 100755
--- a/tests/unigbrk/test-uc-is-grapheme-break.sh
+++ b/tests/unigbrk/test-uc-is-grapheme-break.sh
@@ -1,3 +1,3 @@
 #!/bin/sh
 
-./test-uc-is-grapheme-break${EXEEXT} "${srcdir}/unigbrk/GraphemeBreakTest.txt"
+${CHECKER} ./test-uc-is-grapheme-break${EXEEXT} 
"${srcdir}/unigbrk/GraphemeBreakTest.txt"
diff --git a/tests/unigbrk/test-ulc-grapheme-breaks.sh 
b/tests/unigbrk/test-ulc-grapheme-breaks.sh
index 534df61..0cad760 100755
--- a/tests/unigbrk/test-ulc-grapheme-breaks.sh
+++ b/tests/unigbrk/test-ulc-grapheme-breaks.sh
@@ -12,4 +12,4 @@ if test $LOCALE_AR = none; then
 fi
 
 LC_ALL=$LOCALE_AR \
-./test-ulc-grapheme-breaks${EXEEXT}
+${CHECKER} ./test-ulc-grapheme-breaks${EXEEXT}
diff --git a/tests/uniname/test-uninames.sh b/tests/uniname/test-uninames.sh
index fad50f1..73065f3 100755
--- a/tests/uniname/test-uninames.sh
+++ b/tests/uniname/test-uninames.sh
@@ -1,2 +1,2 @@
 #!/bin/sh
-exec ./test-uninames${EXEEXT} "$srcdir/uniname/UnicodeData.txt" 
"$srcdir/uniname/HangulSyllableNames.txt" -- "$srcdir/uniname/NameAliases.txt"
+exec ${CHECKER} ./test-uninames${EXEEXT} "$srcdir/uniname/UnicodeData.txt" 
"$srcdir/uniname/HangulSyllableNames.txt" -- "$srcdir/uniname/NameAliases.txt"
diff --git a/tests/uninorm/test-u32-nfc-big.sh 
b/tests/uninorm/test-u32-nfc-big.sh
index 93d0003..931fa3f 100755
--- a/tests/uninorm/test-u32-nfc-big.sh
+++ b/tests/uninorm/test-u32-nfc-big.sh
@@ -1,2 +1,2 @@
 #!/bin/sh
-exec ./test-u32-nfc-big${EXEEXT} "$srcdir/uninorm/NormalizationTest.txt"
+exec ${CHECKER} ./test-u32-nfc-big${EXEEXT} 
"$srcdir/uninorm/NormalizationTest.txt"
diff --git a/tests/uninorm/test-u32-nfd-big.sh 
b/tests/uninorm/test-u32-nfd-big.sh
index 3cfe2c5..4e7fcf6 100755
--- a/tests/uninorm/test-u32-nfd-big.sh
+++ b/tests/uninorm/test-u32-nfd-big.sh
@@ -1,2 +1,2 @@
 #!/bin/sh
-exec ./test-u32-nfd-big${EXEEXT} "$srcdir/uninorm/NormalizationTest.txt"
+exec ${CHECKER} ./test-u32-nfd-big${EXEEXT} 
"$srcdir/uninorm/NormalizationTest.txt"
diff --git a/tests/uninorm/test-u32-nfkc-big.sh 
b/tests/uninorm/test-u32-nfkc-big.sh
index cd81619..ea0ef7d 100755
--- a/tests/uninorm/test-u32-nfkc-big.sh
+++ b/tests/uninorm/test-u32-nfkc-big.sh
@@ -1,2 +1,2 @@
 #!/bin/sh
-exec ./test-u32-nfkc-big${EXEEXT} "$srcdir/uninorm/NormalizationTest.txt"
+exec ${CHECKER} ./test-u32-nfkc-big${EXEEXT} 
"$srcdir/uninorm/NormalizationTest.txt"
diff --git a/tests/uninorm/test-u32-nfkd-big.sh 
b/tests/uninorm/test-u32-nfkd-big.sh
index a279c12..778eeac 100755
--- a/tests/uninorm/test-u32-nfkd-big.sh
+++ b/tests/uninorm/test-u32-nfkd-big.sh
@@ -1,2 +1,2 @@
 #!/bin/sh
-exec ./test-u32-nfkd-big${EXEEXT} "$srcdir/uninorm/NormalizationTest.txt"
+exec ${CHECKER} ./test-u32-nfkd-big${EXEEXT} 
"$srcdir/uninorm/NormalizationTest.txt"
diff --git a/tests/unistdio/test-u16-vasnprintf2.sh 
b/tests/unistdio/test-u16-vasnprintf2.sh
index 418b8aa..714f1a4 100755
--- a/tests/unistdio/test-u16-vasnprintf2.sh
+++ b/tests/unistdio/test-u16-vasnprintf2.sh
@@ -14,8 +14,8 @@ else
 fi
 
 LC_ALL=$testlocale \
-./test-u16-vasnprintf1${EXEEXT} \
+${CHECKER} ./test-u16-vasnprintf1${EXEEXT} \
   || exit 1
 
 LC_ALL=$testlocale \
-./test-u16-vasnprintf2${EXEEXT}
+${CHECKER} ./test-u16-vasnprintf2${EXEEXT}
diff --git a/tests/unistdio/test-u16-vasnprintf3.sh 
b/tests/unistdio/test-u16-vasnprintf3.sh
index 57488c0..a5aa4a0 100755
--- a/tests/unistdio/test-u16-vasnprintf3.sh
+++ b/tests/unistdio/test-u16-vasnprintf3.sh
@@ -14,8 +14,8 @@ else
 fi
 
 LC_ALL=$testlocale \
-./test-u16-vasnprintf1${EXEEXT} \
+${CHECKER} ./test-u16-vasnprintf1${EXEEXT} \
   || exit 1
 
 LC_ALL=$testlocale \
-./test-u16-vasnprintf3${EXEEXT}
+${CHECKER} ./test-u16-vasnprintf3${EXEEXT}
diff --git a/tests/unistdio/test-u32-vasnprintf2.sh 
b/tests/unistdio/test-u32-vasnprintf2.sh
index ae39dd4..94800e6 100755
--- a/tests/unistdio/test-u32-vasnprintf2.sh
+++ b/tests/unistdio/test-u32-vasnprintf2.sh
@@ -14,8 +14,8 @@ else
 fi
 
 LC_ALL=$testlocale \
-./test-u32-vasnprintf1${EXEEXT} \
+${CHECKER} ./test-u32-vasnprintf1${EXEEXT} \
   || exit 1
 
 LC_ALL=$testlocale \
-./test-u32-vasnprintf2${EXEEXT}
+${CHECKER} ./test-u32-vasnprintf2${EXEEXT}
diff --git a/tests/unistdio/test-u32-vasnprintf3.sh 
b/tests/unistdio/test-u32-vasnprintf3.sh
index d2c3117..9b487a5 100755
--- a/tests/unistdio/test-u32-vasnprintf3.sh
+++ b/tests/unistdio/test-u32-vasnprintf3.sh
@@ -14,8 +14,8 @@ else
 fi
 
 LC_ALL=$testlocale \
-./test-u32-vasnprintf1${EXEEXT} \
+${CHECKER} ./test-u32-vasnprintf1${EXEEXT} \
   || exit 1
 
 LC_ALL=$testlocale \
-./test-u32-vasnprintf3${EXEEXT}
+${CHECKER} ./test-u32-vasnprintf3${EXEEXT}
diff --git a/tests/unistdio/test-u8-vasnprintf2.sh 
b/tests/unistdio/test-u8-vasnprintf2.sh
index ea5fcb0..3ea3895 100755
--- a/tests/unistdio/test-u8-vasnprintf2.sh
+++ b/tests/unistdio/test-u8-vasnprintf2.sh
@@ -14,8 +14,8 @@ else
 fi
 
 LC_ALL=$testlocale \
-./test-u8-vasnprintf1${EXEEXT} \
+${CHECKER} ./test-u8-vasnprintf1${EXEEXT} \
   || exit 1
 
 LC_ALL=$testlocale \
-./test-u8-vasnprintf2${EXEEXT}
+${CHECKER} ./test-u8-vasnprintf2${EXEEXT}
diff --git a/tests/unistdio/test-u8-vasnprintf3.sh 
b/tests/unistdio/test-u8-vasnprintf3.sh
index 9df0044..aa46e11 100755
--- a/tests/unistdio/test-u8-vasnprintf3.sh
+++ b/tests/unistdio/test-u8-vasnprintf3.sh
@@ -14,8 +14,8 @@ else
 fi
 
 LC_ALL=$testlocale \
-./test-u8-vasnprintf1${EXEEXT} \
+${CHECKER} ./test-u8-vasnprintf1${EXEEXT} \
   || exit 1
 
 LC_ALL=$testlocale \
-./test-u8-vasnprintf3${EXEEXT}
+${CHECKER} ./test-u8-vasnprintf3${EXEEXT}
diff --git a/tests/unistdio/test-ulc-vasnprintf2.sh 
b/tests/unistdio/test-ulc-vasnprintf2.sh
index 39056a6..dd4b31f 100755
--- a/tests/unistdio/test-ulc-vasnprintf2.sh
+++ b/tests/unistdio/test-ulc-vasnprintf2.sh
@@ -14,8 +14,8 @@ else
 fi
 
 LC_ALL=$testlocale \
-./test-ulc-vasnprintf1${EXEEXT} \
+${CHECKER} ./test-ulc-vasnprintf1${EXEEXT} \
   || exit 1
 
 LC_ALL=$testlocale \
-./test-ulc-vasnprintf2${EXEEXT}
+${CHECKER} ./test-ulc-vasnprintf2${EXEEXT}
diff --git a/tests/unistdio/test-ulc-vasnprintf3.sh 
b/tests/unistdio/test-ulc-vasnprintf3.sh
index caa528a..128c8a0 100755
--- a/tests/unistdio/test-ulc-vasnprintf3.sh
+++ b/tests/unistdio/test-ulc-vasnprintf3.sh
@@ -14,8 +14,8 @@ else
 fi
 
 LC_ALL=$testlocale \
-./test-ulc-vasnprintf1${EXEEXT} \
+${CHECKER} ./test-ulc-vasnprintf1${EXEEXT} \
   || exit 1
 
 LC_ALL=$testlocale \
-./test-ulc-vasnprintf3${EXEEXT}
+${CHECKER} ./test-ulc-vasnprintf3${EXEEXT}
diff --git a/tests/uniwbrk/test-uc-wordbreaks.sh 
b/tests/uniwbrk/test-uc-wordbreaks.sh
index 74b6464..3a3fd9f 100755
--- a/tests/uniwbrk/test-uc-wordbreaks.sh
+++ b/tests/uniwbrk/test-uc-wordbreaks.sh
@@ -1,3 +1,3 @@
 #!/bin/sh
 
-./test-uc-wordbreaks${EXEEXT} "${srcdir}/uniwbrk/WordBreakTest.txt"
+${CHECKER} ./test-uc-wordbreaks${EXEEXT} "${srcdir}/uniwbrk/WordBreakTest.txt"
diff --git a/tests/uniwbrk/test-ulc-wordbreaks.sh 
b/tests/uniwbrk/test-ulc-wordbreaks.sh
index 96bae50..d7e067e 100755
--- a/tests/uniwbrk/test-ulc-wordbreaks.sh
+++ b/tests/uniwbrk/test-ulc-wordbreaks.sh
@@ -12,4 +12,4 @@ if test $LOCALE_FR = none; then
 fi
 
 LC_ALL=$LOCALE_FR \
-./test-ulc-wordbreaks${EXEEXT}
+${CHECKER} ./test-ulc-wordbreaks${EXEEXT}
diff --git a/tests/uniwidth/test-uc_width2.sh b/tests/uniwidth/test-uc_width2.sh
index 2ade585..23866c9 100755
--- a/tests/uniwidth/test-uc_width2.sh
+++ b/tests/uniwidth/test-uc_width2.sh
@@ -4,7 +4,7 @@ tmpfiles=""
 trap 'rm -fr $tmpfiles' 1 2 3 15
 
 tmpfiles="$tmpfiles uc_width.out"
-./test-uc_width2${EXEEXT} | LC_ALL=C tr -d '\r' > uc_width.out
+${CHECKER} ./test-uc_width2${EXEEXT} | LC_ALL=C tr -d '\r' > uc_width.out
 
 tmpfiles="$tmpfiles uc_width.ok"
 cat > uc_width.ok <<\EOF




reply via email to

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