aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/ipc/ipc_test.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-03-20 16:32:02 +0100
committerDmitry Vyukov <dvyukov@google.com>2018-03-20 16:56:58 +0100
commit113a43ffb67d4297d8d2e6ee39c8a0a23420db99 (patch)
tree4674283a3c848c5af459aab70eea5c6dc27d81b2 /pkg/ipc/ipc_test.go
parenta5d08e443b65a1590458235f003b7b83b5270104 (diff)
pkg/ipc: test only on simple prog
Don't use random programs for testing. Sometimes they lead to flakes like: opendir(./1/file0) failed (errno 13)
Diffstat (limited to 'pkg/ipc/ipc_test.go')
-rw-r--r--pkg/ipc/ipc_test.go68
1 files changed, 20 insertions, 48 deletions
diff --git a/pkg/ipc/ipc_test.go b/pkg/ipc/ipc_test.go
index 88b124a6f..0d90f2363 100644
--- a/pkg/ipc/ipc_test.go
+++ b/pkg/ipc/ipc_test.go
@@ -53,47 +53,8 @@ func initTest(t *testing.T) (*prog.Target, rand.Source, int, EnvFlags) {
return target, rs, iters, flags
}
-func TestSimpleProg(t *testing.T) {
- target, _, _, flags0 := initTest(t)
-
- bin := buildExecutor(t, target)
- defer os.Remove(bin)
-
- cfg := &Config{
- Executor: bin,
- Flags: flags0,
- Timeout: timeout,
- }
- env, err := MakeEnv(cfg, 0)
- if err != nil {
- t.Fatalf("failed to create env: %v", err)
- }
- defer env.Close()
- p := target.GenerateSimpleProg()
- opts := &ExecOpts{}
- output, info, failed, hanged, err := env.Exec(opts, p)
- if err != nil {
- t.Fatalf("failed to run executor: %v", err)
- }
- if hanged {
- t.Fatalf("program hanged:\n%s", output)
- }
- if failed {
- t.Fatalf("program failed:\n%s", output)
- }
- if len(info) == 0 {
- t.Fatalf("no calls executed:\n%s", output)
- }
- if info[0].Errno != 0 {
- t.Fatalf("simple call failed: %v\n%s", info[0].Errno, output)
- }
- if len(output) != 0 {
- t.Fatalf("output on empty program")
- }
-}
-
func TestExecute(t *testing.T) {
- target, rs, iters, configFlags := initTest(t)
+ target, _, _, configFlags := initTest(t)
bin := buildExecutor(t, target)
defer os.Remove(bin)
@@ -112,18 +73,29 @@ func TestExecute(t *testing.T) {
}
defer env.Close()
- for i := 0; i < iters/len(flags); i++ {
- p := target.Generate(rs, 10, nil)
- if i == 0 {
- p = target.GenerateSimpleProg()
- }
+ for i := 0; i < 10; i++ {
+ p := target.GenerateSimpleProg()
opts := &ExecOpts{
Flags: flag,
}
- output, _, _, _, err := env.Exec(opts, p)
+ output, info, failed, hanged, err := env.Exec(opts, p)
if err != nil {
- t.Logf("program:\n%s\n", p.Serialize())
- t.Fatalf("failed to run executor: %v\n%s", err, output)
+ t.Fatalf("failed to run executor: %v", err)
+ }
+ if hanged {
+ t.Fatalf("program hanged:\n%s", output)
+ }
+ if failed {
+ t.Fatalf("program failed:\n%s", output)
+ }
+ if len(info) == 0 {
+ t.Fatalf("no calls executed:\n%s", output)
+ }
+ if info[0].Errno != 0 {
+ t.Fatalf("simple call failed: %v\n%s", info[0].Errno, output)
+ }
+ if len(output) != 0 {
+ t.Fatalf("output on empty program")
}
}
}