aboutsummaryrefslogtreecommitdiffstats
path: root/prog/prog_test.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-08-30 13:02:07 -0700
committerDmitry Vyukov <dvyukov@google.com>2018-08-30 21:44:56 -0700
commit6ba5fe3e62880ddf8aeec68ab44eabaa8bc148b8 (patch)
tree8320d857b2e61a423f7d0b349e3dfe9274943397 /prog/prog_test.go
parentee42876f958cee5e90c650618fe994307a260397 (diff)
sys/openbsd: disable mknod sanitization as tests fail
TestSerializeDeserializeRandom fails from time to time because program is different after we serialize/deserialize it. Turns out openbsd SanitizeCall is not idempotent. Add a test for this and disable the logic for now.
Diffstat (limited to 'prog/prog_test.go')
-rw-r--r--prog/prog_test.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/prog/prog_test.go b/prog/prog_test.go
index 967b93210..29b4d385e 100644
--- a/prog/prog_test.go
+++ b/prog/prog_test.go
@@ -397,3 +397,19 @@ fallback$0()
})
}
}
+
+func TestSanitizeRandom(t *testing.T) {
+ testEachTargetRandom(t, func(t *testing.T, target *Target, rs rand.Source, iters int) {
+ for i := 0; i < iters; i++ {
+ p := target.Generate(rs, 10, nil)
+ s0 := string(p.Serialize())
+ for _, c := range p.Calls {
+ target.SanitizeCall(c)
+ }
+ s1 := string(p.Serialize())
+ if s0 != s1 {
+ t.Fatalf("non-sanitized program or non-idempotent sanitize\nwas: %v\ngot: %v", s0, s1)
+ }
+ }
+ })
+}