diff --git a/client/driver/executor/checks_linux.go b/client/driver/executor/checks_linux.go index d4a684a8b..9c384ec55 100644 --- a/client/driver/executor/checks_linux.go +++ b/client/driver/executor/checks_linux.go @@ -10,7 +10,7 @@ func (e *ExecScriptCheck) setChroot(cmd *exec.Cmd) { if cmd.SysProcAttr == nil { cmd.SysProcAttr = &syscall.SysProcAttr{} } + cmd.SysProcAttr.Chroot = e.taskDir } - cmd.SysProcAttr.Chroot = e.taskDir cmd.Dir = "/" } diff --git a/client/driver/executor/checks_test.go b/client/driver/executor/checks_test.go new file mode 100644 index 000000000..15f49265a --- /dev/null +++ b/client/driver/executor/checks_test.go @@ -0,0 +1,30 @@ +package executor + +import ( + "strings" + "testing" +) + +func TestExecScriptCheckNoIsolation(t *testing.T) { + check := &ExecScriptCheck{ + id: "foo", + cmd: "/bin/echo", + args: []string{"hello", "world"}, + taskDir: "/tmp", + FSIsolation: false, + } + + res := check.Run() + expectedOutput := "hello world" + expectedExitCode := 0 + if res.Err != nil { + t.Fatalf("err: %v", res.Err) + } + if strings.TrimSpace(res.Output) != expectedOutput { + t.Fatalf("output expected: %v, actual: %v", expectedOutput, res.Output) + } + + if res.ExitCode != expectedExitCode { + t.Fatalf("exitcode expected: %v, actual: %v", expectedExitCode, res.ExitCode) + } +}