diff --git a/import_test.go b/import_test.go
index 5895ff3..e9f4bf2 100644
--- a/import_test.go
+++ b/import_test.go
@@ -174,7 +174,7 @@
 `,
 		},
 	}
-	opts := gosh.Opts{Errorf: t.Fatalf, Logf: t.Logf}
+	opts := gosh.Opts{Fatalf: t.Fatalf, Logf: t.Logf}
 	sh := gosh.NewShell(opts)
 	defer sh.Cleanup()
 	jiriTool := sh.BuildGoPkg("v.io/jiri")
@@ -207,7 +207,7 @@
 	if test.Stderr != "" {
 		cmd.ExitErrorIsOk = true
 	}
-	stdout, stderr := cmd.Output()
+	stdout, stderr := cmd.StdoutStderr()
 	if got, want := stdout, test.Stdout; !strings.Contains(got, want) || (got != "" && want == "") {
 		return fmt.Errorf("stdout got %q, want substr %q", got, want)
 	}
diff --git a/upgrade_test.go b/upgrade_test.go
index e80c898..49690d9 100644
--- a/upgrade_test.go
+++ b/upgrade_test.go
@@ -198,7 +198,7 @@
 `,
 		},
 	}
-	opts := gosh.Opts{Errorf: t.Fatalf, Logf: t.Logf}
+	opts := gosh.Opts{Fatalf: t.Fatalf, Logf: t.Logf}
 	sh := gosh.NewShell(opts)
 	defer sh.Cleanup()
 	jiriTool := sh.BuildGoPkg("v.io/jiri")
@@ -232,7 +232,7 @@
 	if test.Stderr != "" {
 		cmd.ExitErrorIsOk = true
 	}
-	_, stderr := cmd.Output()
+	_, stderr := cmd.StdoutStderr()
 	if got, want := stderr, test.Stderr; !strings.Contains(got, want) || (got != "" && want == "") {
 		return fmt.Errorf("stderr got %q, want substr %q", got, want)
 	}
@@ -260,7 +260,7 @@
 }
 
 func TestUpgradeRevert(t *testing.T) {
-	sh := gosh.NewShell(gosh.Opts{Errorf: t.Fatalf, Logf: t.Logf})
+	sh := gosh.NewShell(gosh.Opts{Fatalf: t.Fatalf, Logf: t.Logf})
 	defer sh.Cleanup()
 	jiriRoot := sh.MakeTempDir()
 	sh.Pushd(jiriRoot)
