aboutsummaryrefslogtreecommitdiffstats
path: root/prog/prog_test.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-12-09 18:05:58 +0100
committerDmitry Vyukov <dvyukov@google.com>2018-12-10 16:37:01 +0100
commitba64d006de17a5bfa0c99e4b96711ba42f82e199 (patch)
tree9625242c1510aef3b4ff0d793b885e66f1b29914 /prog/prog_test.go
parent95fe19c19e596446412626b048d950de6ce8c886 (diff)
prog: implement strict parsing mode
Add bulk of checks for strict parsing mode. Probably not complete, but we can extend then in future as needed. Turns out we can't easily use it for serialized programs as they omit default args and during deserialization it looks like missing args.
Diffstat (limited to 'prog/prog_test.go')
-rw-r--r--prog/prog_test.go8
1 files changed, 4 insertions, 4 deletions
diff --git a/prog/prog_test.go b/prog/prog_test.go
index 1edb7690b..45ab56cfe 100644
--- a/prog/prog_test.go
+++ b/prog/prog_test.go
@@ -37,7 +37,7 @@ func TestDefaultCallArgs(t *testing.T) {
for _, meta := range target.SyscallMap {
// Ensure that we can restore all arguments of all calls.
prog := fmt.Sprintf("%v()", meta.Name)
- p, err := target.Deserialize([]byte(prog), Strict)
+ p, err := target.Deserialize([]byte(prog), NonStrict)
if err != nil {
t.Fatalf("failed to restore default args in prog %q: %v", prog, err)
}
@@ -52,7 +52,7 @@ func TestSerialize(t *testing.T) {
for i := 0; i < iters; i++ {
p := target.Generate(rs, 10, nil)
data := p.Serialize()
- p1, err := target.Deserialize(data, Strict)
+ p1, err := target.Deserialize(data, NonStrict)
if err != nil {
t.Fatalf("failed to deserialize program: %v\n%s", err, data)
}
@@ -154,7 +154,7 @@ func testCrossTarget(t *testing.T, target *Target, crossTargets []*Target) {
for i := 0; i < iters; i++ {
p := target.Generate(rs, 20, nil)
testCrossArchProg(t, p, crossTargets)
- p, err := target.Deserialize(p.Serialize(), Strict)
+ p, err := target.Deserialize(p.Serialize(), NonStrict)
if err != nil {
t.Fatal(err)
}
@@ -171,7 +171,7 @@ func testCrossTarget(t *testing.T, target *Target, crossTargets []*Target) {
func testCrossArchProg(t *testing.T, p *Prog, crossTargets []*Target) {
serialized := p.Serialize()
for _, crossTarget := range crossTargets {
- _, err := crossTarget.Deserialize(serialized, Strict)
+ _, err := crossTarget.Deserialize(serialized, NonStrict)
if err == nil || strings.Contains(err.Error(), "unknown syscall") {
continue
}