subunit.sh: Properly capture and pass on the command output.
authorAndrew Kroeger <andrew@sprocks.gotdns.com>
Wed, 21 May 2008 07:07:45 +0000 (02:07 -0500)
committerAndrew Kroeger <andrew@sprocks.gotdns.com>
Thu, 22 May 2008 01:46:14 +0000 (20:46 -0500)
Previously, the output from $cmdline was never captured.  In case of a
failure, there was no output being passed to the subunit_fail_test() function,
but that function contains a call to "cat -".  This caused the script to hang
indefinitely waiting for input.

We now capture $cmdline output (including mapping stderr to stdout) using
backticks, and then pipe that output to the subunit_fail_test() if there is
a failure.
(This used to be commit c0234d13192c1871971b45121249395ef15c5ae5)

testprogs/blackbox/subunit.sh

index 7a6b21e540e25936f37448fe8772ce0784c54d1f..100dfd1a46ba408bc82b4ae0ec712336e4ba0f18 100755 (executable)
@@ -56,12 +56,12 @@ testit () {
        shift
        cmdline="$*"
        subunit_start_test "$name"
-       $cmdline
+       output=`$cmdline 2>&1`
        status=$?
        if [ x$status = x0 ]; then
                subunit_pass_test "$name"
        else
-               subunit_fail_test "$name"
+               echo $output | subunit_fail_test "$name"
        fi
        return $status
 }