aboutsummaryrefslogtreecommitdiffstats
path: root/ipc
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2015-12-28 13:01:54 +0100
committerDmitry Vyukov <dvyukov@google.com>2015-12-28 13:04:05 +0100
commitb4a59f4ee6e3650e8b7bacb0aa492f9cd0491d36 (patch)
tree25a88f34b6bd2538acaef6c0862e519a1f40f399 /ipc
parent4eda9b07e5f25565333fdd8eed4e33850bd0f828 (diff)
ipc: increase timeout in tests
IPC timeout must be larger than executor timeout. Otherwise IPC kills parent executor but does not kill child executor.
Diffstat (limited to 'ipc')
-rw-r--r--ipc/ipc.go5
-rw-r--r--ipc/ipc_test.go12
2 files changed, 12 insertions, 5 deletions
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)
}