pkg/testutils: return errors after restoring stdout
authorDan Williams <dcbw@redhat.com>
Mon, 27 Feb 2017 19:27:19 +0000 (13:27 -0600)
committerDan Williams <dcbw@redhat.com>
Mon, 27 Feb 2017 19:27:19 +0000 (13:27 -0600)
Ensures Ginkgo is able to print detailed failure messages instead
of them being captured by the pipe.

pkg/testutils/cmd.go

index 5883c08..a6045b3 100644 (file)
@@ -46,13 +46,15 @@ func CmdAddWithResult(cniNetns, cniIfname string, conf []byte, f func() error) (
        os.Stdout = w
        err = f()
        w.Close()
-       if err != nil {
-               return nil, nil, err
-       }
 
-       // parse the result
-       out, err := ioutil.ReadAll(r)
+       var out []byte
+       if err == nil {
+               out, err = ioutil.ReadAll(r)
+       }
        os.Stdout = oldStdout
+
+       // Return errors after restoring stdout so Ginkgo will correctly
+       // emit verbose error information on stdout
        if err != nil {
                return nil, nil, err
        }