diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2020-06-23 16:43:51 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2020-06-23 16:54:07 +0200 |
| commit | 252809395402a12afea040c1ffd8ae99f3779c90 (patch) | |
| tree | b4c18f4c3294ece053c035107adc9e9ff15ede5d /prog/prog_test.go | |
| parent | b1b6c0ed6d11c072b15d06730c86d9c5e451bad6 (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.go | 35 |
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) { |
