test_dir_=`mktempd_ "$initial_cwd_" "$pfx_-$ME_.XXXX"` \
|| fail_ "failed to create temporary directory in $initial_cwd_"
cd "$test_dir_" || fail_ "failed to cd to temporary directory"
- # Set variables srcdir, builddir, for the convenience of the test.
+ # Set variables srcdir, builddir, and optionally top_builddir,
+ # for the convenience of the test.
case $srcdir in
/* | ?:*) ;;
*) srcdir="../$srcdir" ;;
esac
builddir=".."
export srcdir builddir
+ if test -n "$top_builddir"; then
+ case $top_builddir in
+ /* | ?:*) ;;
+ *) top_builddir="../$top_builddir" ;;
+ esac
+ export top_builddir
+ fi
# As autoconf-generated configure scripts do, ensure that IFS
# is defined initially, so that saving and restoring $IFS works.
--- /dev/null
+#!/bin/sh
+
+if test $# != 0; then
+ # Callee.
+ printf 'stdout-contents\r\n'
+ printf 'stderr-contents\r\n' 1>&2
+ exit $1
+else
+ # Unit test.
+ . "${srcdir=.}/init.sh"; path_prepend_ .
+
+ $BOURNE_SHELL ${top_builddir}/nlcanon.sh all stdout "${srcdir}/test-nlcanon.sh" 42
+ # Test the exit code.
+ test $? = 42 || Exit 11
+ # Test standard output.
+ $BOURNE_SHELL ${top_builddir}/nlcanon.sh all stdout "${srcdir}/test-nlcanon.sh" 42 | grep stdout
+ test $? = 0 || Exit 12
+ $BOURNE_SHELL ${top_builddir}/nlcanon.sh all stdout "${srcdir}/test-nlcanon.sh" 42 | grep stderr
+ test $? != 0 || Exit 13
+ $BOURNE_SHELL ${top_builddir}/nlcanon.sh all stdout "${srcdir}/test-nlcanon.sh" 42 | tr '\r' r | grep contentsr
+ test $? != 0 || Exit 14
+ # Test standard error.
+ { $BOURNE_SHELL ${top_builddir}/nlcanon.sh all stdout "${srcdir}/test-nlcanon.sh" 42; } 2>&1 >/dev/null | grep stdout
+ test $? != 0 || Exit 15
+ { $BOURNE_SHELL ${top_builddir}/nlcanon.sh all stdout "${srcdir}/test-nlcanon.sh" 42; } 2>&1 >/dev/null | grep stderr
+ test $? = 0 || Exit 16
+ { $BOURNE_SHELL ${top_builddir}/nlcanon.sh all stdout "${srcdir}/test-nlcanon.sh" 42; } 2>&1 >/dev/null | tr '\r' r | grep contentsr
+ test $? = 0 || Exit 17
+
+ $BOURNE_SHELL ${top_builddir}/nlcanon.sh all stderr "${srcdir}/test-nlcanon.sh" 42
+ # Test the exit code.
+ test $? = 42 || Exit 21
+ # Test standard output.
+ $BOURNE_SHELL ${top_builddir}/nlcanon.sh all stderr "${srcdir}/test-nlcanon.sh" 42 | grep stdout
+ test $? = 0 || Exit 22
+ $BOURNE_SHELL ${top_builddir}/nlcanon.sh all stderr "${srcdir}/test-nlcanon.sh" 42 | grep stderr
+ test $? != 0 || Exit 23
+ $BOURNE_SHELL ${top_builddir}/nlcanon.sh all stderr "${srcdir}/test-nlcanon.sh" 42 | tr '\r' r | grep contentsr
+ test $? = 0 || Exit 24
+ # Test standard error.
+ { $BOURNE_SHELL ${top_builddir}/nlcanon.sh all stderr "${srcdir}/test-nlcanon.sh" 42; } 2>&1 >/dev/null | grep stdout
+ test $? != 0 || Exit 25
+ { $BOURNE_SHELL ${top_builddir}/nlcanon.sh all stderr "${srcdir}/test-nlcanon.sh" 42; } 2>&1 >/dev/null | grep stderr
+ test $? = 0 || Exit 26
+ { $BOURNE_SHELL ${top_builddir}/nlcanon.sh all stderr "${srcdir}/test-nlcanon.sh" 42; } 2>&1 >/dev/null | tr '\r' r | grep contentsr
+ test $? != 0 || Exit 27
+
+ $BOURNE_SHELL ${top_builddir}/nlcanon.sh all stdout,stderr "${srcdir}/test-nlcanon.sh" 42
+ # Test the exit code.
+ test $? = 42 || Exit 31
+ # Test standard output.
+ $BOURNE_SHELL ${top_builddir}/nlcanon.sh all stdout,stderr "${srcdir}/test-nlcanon.sh" 42 | grep stdout
+ test $? = 0 || Exit 32
+ $BOURNE_SHELL ${top_builddir}/nlcanon.sh all stdout,stderr "${srcdir}/test-nlcanon.sh" 42 | grep stderr
+ test $? != 0 || Exit 33
+ $BOURNE_SHELL ${top_builddir}/nlcanon.sh all stdout,stderr "${srcdir}/test-nlcanon.sh" 42 | tr '\r' r | grep contentsr
+ test $? != 0 || Exit 34
+ # Test standard error.
+ { $BOURNE_SHELL ${top_builddir}/nlcanon.sh all stdout,stderr "${srcdir}/test-nlcanon.sh" 42; } 2>&1 >/dev/null | grep stdout
+ test $? != 0 || Exit 35
+ { $BOURNE_SHELL ${top_builddir}/nlcanon.sh all stdout,stderr "${srcdir}/test-nlcanon.sh" 42; } 2>&1 >/dev/null | grep stderr
+ test $? = 0 || Exit 36
+ { $BOURNE_SHELL ${top_builddir}/nlcanon.sh all stdout,stderr "${srcdir}/test-nlcanon.sh" 42; } 2>&1 >/dev/null | tr '\r' r | grep contentsr
+ test $? != 0 || Exit 37
+
+ Exit 0
+fi