From b4a59f4ee6e3650e8b7bacb0aa492f9cd0491d36 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Mon, 28 Dec 2015 13:01:54 +0100 Subject: ipc: increase timeout in tests IPC timeout must be larger than executor timeout. Otherwise IPC kills parent executor but does not kill child executor. --- ipc/ipc.go | 5 +++++ ipc/ipc_test.go | 12 +++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) (limited to 'ipc') diff --git a/ipc/ipc.go b/ipc/ipc.go index 7e4ba7ca1..85904d2fa 100644 --- a/ipc/ipc.go +++ b/ipc/ipc.go @@ -46,6 +46,11 @@ const ( ) func MakeEnv(bin string, timeout time.Duration, flags uint64) (*Env, error) { + // IPC timeout must be larger then executor timeout. + // Otherwise IPC will kill parent executor but leave child executor alive. + if timeout < 7*time.Second { + timeout = 7 * time.Second + } inf, inmem, err := createMapping(2 << 20) if err != nil { return nil, err diff --git a/ipc/ipc_test.go b/ipc/ipc_test.go index fb453b505..77af49e45 100644 --- a/ipc/ipc_test.go +++ b/ipc/ipc_test.go @@ -17,6 +17,8 @@ import ( "github.com/google/syzkaller/prog" ) +const timeout = 10 * time.Second + func buildExecutor(t *testing.T) string { return buildProgram(t, "../executor/executor.cc") } @@ -53,7 +55,7 @@ func TestEmptyProg(t *testing.T) { bin := buildExecutor(t) defer os.Remove(bin) - env, err := MakeEnv(bin, time.Second, 0) + env, err := MakeEnv(bin, timeout, 0) if err != nil { t.Fatalf("failed to create env: %v", err) } @@ -84,7 +86,7 @@ func TestStrace(t *testing.T) { bin := buildExecutor(t) defer os.Remove(bin) - env, err := MakeEnv(bin, time.Second, FlagStrace) + env, err := MakeEnv(bin, timeout, FlagStrace) if err != nil { t.Fatalf("failed to create env: %v", err) } @@ -110,7 +112,7 @@ func TestExecute(t *testing.T) { rs, iters := initTest(t) flags := []uint64{0, FlagStrace, FlagThreaded, FlagStrace | FlagThreaded} for _, flag := range flags { - env, err := MakeEnv(bin, time.Second, flag) + env, err := MakeEnv(bin, timeout, flag) if err != nil { t.Fatalf("failed to create env: %v", err) } @@ -144,7 +146,7 @@ func TestCompare(t *testing.T) { "getpid", "getpgid", "getppid", "setsid", "ppoll", "keyctl", "ioprio_get", "move_pages", "kcmp"} - env1, err := MakeEnv(bin, time.Second, FlagStrace) + env1, err := MakeEnv(bin, timeout, FlagStrace) if err != nil { t.Fatalf("failed to create env: %v", err) } @@ -162,7 +164,7 @@ func TestCompare(t *testing.T) { cprog := buildSource(t, src) defer os.Remove(cprog) - env2, err := MakeEnv(cprog, time.Second, FlagStrace) + env2, err := MakeEnv(cprog, timeout, FlagStrace) if err != nil { t.Fatalf("failed to create env: %v", err) } -- cgit mrf-deployment