aboutsummaryrefslogtreecommitdiffstats
path: root/prog/encodingexec_test.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2017-09-14 19:25:01 +0200
committerDmitry Vyukov <dvyukov@google.com>2017-09-15 16:02:37 +0200
commit52a33fd516102a98d3753bf69417235b655a68dc (patch)
tree351ab73db934d3b4e4babbe27e8801c659f2631b /prog/encodingexec_test.go
parent25f4fe0662f7f3b390d16b2e786f2ba0aa0293f1 (diff)
prog: remove default target and all global state
Now each prog function accepts the desired target explicitly. No global, implicit state involved. This is much cleaner and allows cross-OS/arch testing, etc.
Diffstat (limited to 'prog/encodingexec_test.go')
-rw-r--r--prog/encodingexec_test.go18
1 files changed, 8 insertions, 10 deletions
diff --git a/prog/encodingexec_test.go b/prog/encodingexec_test.go
index 9a2dd1d1e..3b37783f2 100644
--- a/prog/encodingexec_test.go
+++ b/prog/encodingexec_test.go
@@ -1,23 +1,20 @@
// Copyright 2016 syzkaller project authors. All rights reserved.
// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
-package prog_test
+package prog
import (
"bytes"
"encoding/binary"
"fmt"
"testing"
-
- . "github.com/google/syzkaller/prog"
- _ "github.com/google/syzkaller/sys"
)
func TestSerializeForExecRandom(t *testing.T) {
- rs, iters := InitTest(t)
+ target, rs, iters := initTest(t)
buf := make([]byte, ExecBufferSize)
for i := 0; i < iters; i++ {
- p := Generate(rs, 10, nil)
+ p := target.Generate(rs, 10, nil)
if err := p.SerializeForExec(buf, i%16); err != nil {
t.Fatalf("failed to serialize: %v", err)
}
@@ -45,12 +42,13 @@ func TestSerializeForExec(t *testing.T) {
argResult = uint64(ExecArgResult)
argData = uint64(ExecArgData)
)
+ target, _, _ := initTest(t)
var (
- dataOffset = DataOffset()
- ptrSize = PtrSize()
+ dataOffset = target.DataOffset
+ ptrSize = target.PtrSize
)
callID := func(name string) uint64 {
- c := SyscallMap[name]
+ c := target.SyscallMap[name]
if c == nil {
t.Fatalf("unknown syscall %v", name)
}
@@ -267,7 +265,7 @@ func TestSerializeForExec(t *testing.T) {
for i, test := range tests {
i, test := i, test
t.Run(fmt.Sprintf("%v:%v", i, test.prog), func(t *testing.T) {
- p, err := Deserialize([]byte(test.prog))
+ p, err := target.Deserialize([]byte(test.prog))
if err != nil {
t.Fatalf("failed to deserialize prog %v: %v", i, err)
}