os.Exit(0)
}
- testenv.MustHaveExec(t)
- exe, err := os.Executable()
- if err != nil {
- t.Fatal(err)
- }
-
+ exe := testenv.Executable(t)
d := t.TempDir()
t.Cleanup(func() {
// If the subprocess fails to unshare the parent directory, force-unmount it
t.Skip("test exercises unprivileged user namespace, fails with privileges")
}
- testenv.MustHaveExec(t)
- exe, err := os.Executable()
- if err != nil {
- t.Fatal(err)
- }
-
+ exe := testenv.Executable(t)
cmd := testenv.Command(t, exe, "-test.run=^TestUnshareUidGidMapping$")
cmd.Env = append(cmd.Environ(), "GO_WANT_HELPER_PROCESS=1")
cmd.SysProcAttr = &syscall.SysProcAttr{
}
func TestUseCgroupFD(t *testing.T) {
- testenv.MustHaveExec(t)
-
if os.Getenv("GO_WANT_HELPER_PROCESS") == "1" {
// Read and print own cgroup path.
selfCg, err := os.ReadFile("/proc/self/cgroup")
os.Exit(0)
}
- exe, err := os.Executable()
- if err != nil {
- t.Fatal(err)
- }
-
+ exe := testenv.Executable(t)
fd, suffix := prepareCgroupFD(t)
cmd := testenv.Command(t, exe, "-test.run=^TestUseCgroupFD$")
}
func TestCloneTimeNamespace(t *testing.T) {
- testenv.MustHaveExec(t)
-
if os.Getenv("GO_WANT_HELPER_PROCESS") == "1" {
timens, err := os.Readlink("/proc/self/ns/time")
if err != nil {
os.Exit(0)
}
- exe, err := os.Executable()
- if err != nil {
- t.Fatal(err)
- }
-
+ exe := testenv.Executable(t)
cmd := testenv.Command(t, exe, "-test.run=^TestCloneTimeNamespace$")
cmd.Env = append(cmd.Environ(), "GO_WANT_HELPER_PROCESS=1")
cmd.SysProcAttr = &syscall.SysProcAttr{
}
func testPidFD(t *testing.T, userns bool) error {
- testenv.MustHaveExec(t)
-
if os.Getenv("GO_WANT_HELPER_PROCESS") == "1" {
// Child: wait for a signal.
time.Sleep(time.Hour)
}
- exe, err := os.Executable()
- if err != nil {
- t.Fatal(err)
- }
-
+ exe := testenv.Executable(t)
var pidfd int
cmd := testenv.Command(t, exe, "-test.run=^TestPidFD$")
cmd.Env = append(cmd.Environ(), "GO_WANT_HELPER_PROCESS=1")
t.Fatal("pidfd_send_signal syscall failed:", err)
}
// Check if the child received our signal.
- err = cmd.Wait()
+ err := cmd.Wait()
if cmd.ProcessState == nil || cmd.ProcessState.Sys().(syscall.WaitStatus).Signal() != sig {
t.Fatal("unexpected child error:", err)
}
os.Remove(f.Name())
})
- testenv.MustHaveExec(t)
- exe, err := os.Executable()
- if err != nil {
- t.Fatal(err)
- }
-
+ exe := testenv.Executable(t)
e, err := os.Open(exe)
if err != nil {
t.Fatal(err)
t.Skip("skipping test because rlimit not adjusted at startup")
}
- executable, err := os.Executable()
- if err != nil {
- executable = os.Args[0]
- }
-
- cmd := testenv.Command(t, executable, "-test.run=^TestRlimitRestored$")
+ exe := testenv.Executable(t)
+ cmd := testenv.Command(t, exe, "-test.run=^TestRlimitRestored$")
cmd = testenv.CleanCmdEnv(cmd)
cmd.Env = append(cmd.Env, "GO_WANT_HELPER_PROCESS=1")