diff --git a/src/cmd/cgo/internal/testcarchive/carchive_test.go b/src/cmd/cgo/internal/testcarchive/carchive_test.go
index b140a9c61378a76cc0b28101a4a6add84c7845d8..a8eebead25dc9fca21c321aff5a5d63c1c55659b 100644
--- a/src/cmd/cgo/internal/testcarchive/carchive_test.go
+++ b/src/cmd/cgo/internal/testcarchive/carchive_test.go
@@ -1224,7 +1224,7 @@ func TestManyCalls(t *testing.T) {
 	}
 
 	argv := cmdToRun("./testp7")
-	cmd = exec.Command(argv[0], argv[1:]...)
+	cmd = testenv.Command(t, argv[0], argv[1:]...)
 	sb := new(strings.Builder)
 	cmd.Stdout = sb
 	cmd.Stderr = sb
@@ -1232,14 +1232,6 @@ func TestManyCalls(t *testing.T) {
 		t.Fatal(err)
 	}
 
-	timer := time.AfterFunc(time.Minute,
-		func() {
-			t.Error("test program timed out")
-			cmd.Process.Kill()
-		},
-	)
-	defer timer.Stop()
-
 	err = cmd.Wait()
 	t.Logf("%v\n%s", cmd.Args, sb)
 	if err != nil {
@@ -1284,7 +1276,7 @@ func TestPreemption(t *testing.T) {
 	}
 
 	argv := cmdToRun("./testp8")
-	cmd = exec.Command(argv[0], argv[1:]...)
+	cmd = testenv.Command(t, argv[0], argv[1:]...)
 	sb := new(strings.Builder)
 	cmd.Stdout = sb
 	cmd.Stderr = sb
@@ -1292,14 +1284,6 @@ func TestPreemption(t *testing.T) {
 		t.Fatal(err)
 	}
 
-	timer := time.AfterFunc(time.Minute,
-		func() {
-			t.Error("test program timed out")
-			cmd.Process.Kill()
-		},
-	)
-	defer timer.Stop()
-
 	err = cmd.Wait()
 	t.Logf("%v\n%s", cmd.Args, sb)
 	if err != nil {