aboutsummaryrefslogtreecommitdiffstats
path: root/prog/prog_test.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2020-06-23 16:43:51 +0200
committerDmitry Vyukov <dvyukov@google.com>2020-06-23 16:54:07 +0200
commit252809395402a12afea040c1ffd8ae99f3779c90 (patch)
treeb4c18f4c3294ece053c035107adc9e9ff15ede5d /prog/prog_test.go
parentb1b6c0ed6d11c072b15d06730c86d9c5e451bad6 (diff)
sys/targets: fix mknod neutralize for netbsd
mknod on netbsd can now also accept a resource for the last arg. Fix that and add a test that will catch such things more reliably.
Diffstat (limited to 'prog/prog_test.go')
-rw-r--r--prog/prog_test.go35
1 files changed, 21 insertions, 14 deletions
diff --git a/prog/prog_test.go b/prog/prog_test.go
index d04b08e17..cff8bc1a0 100644
--- a/prog/prog_test.go
+++ b/prog/prog_test.go
@@ -31,21 +31,28 @@ func TestDefault(t *testing.T) {
}
func TestDefaultCallArgs(t *testing.T) {
- target, _, _ := initTest(t)
- for _, meta := range target.SyscallMap {
- if meta.Attrs.Disabled {
- continue
- }
- // Ensure that we can restore all arguments of all calls.
- prog := fmt.Sprintf("%v()", meta.Name)
- p, err := target.Deserialize([]byte(prog), NonStrict)
- if err != nil {
- t.Fatalf("failed to restore default args in prog %q: %v", prog, err)
- }
- if len(p.Calls) != 1 || p.Calls[0].Meta.Name != meta.Name {
- t.Fatalf("restored bad program from prog %q: %q", prog, p.Serialize())
+ testEachTarget(t, func(t *testing.T, target *Target) {
+ for _, meta := range target.SyscallMap {
+ if meta.Attrs.Disabled {
+ continue
+ }
+ // Ensure that we can restore all arguments of all calls.
+ prog := fmt.Sprintf("%v()", meta.Name)
+ p, err := target.Deserialize([]byte(prog), NonStrict)
+ if err != nil {
+ t.Fatalf("failed to restore default args in prog %q: %v", prog, err)
+ }
+ if len(p.Calls) != 1 || p.Calls[0].Meta.Name != meta.Name {
+ t.Fatalf("restored bad program from prog %q: %q", prog, p.Serialize())
+ }
+ s0 := string(p.Serialize())
+ p.sanitizeFix()
+ s1 := string(p.Serialize())
+ if s0 != s1 {
+ t.Fatalf("non-sanitized program or non-idempotent sanitize\nwas: %v\ngot: %v", s0, s1)
+ }
}
- }
+ })
}
func testSerialize(t *testing.T, verbose bool) {