aboutsummaryrefslogtreecommitdiffstats
path: root/prog/prog_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/prog_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/prog_test.go')
-rw-r--r--prog/prog_test.go32
1 files changed, 16 insertions, 16 deletions
diff --git a/prog/prog_test.go b/prog/prog_test.go
index 53ce959d6..e5ac2c927 100644
--- a/prog/prog_test.go
+++ b/prog/prog_test.go
@@ -10,27 +10,27 @@ import (
)
func TestGeneration(t *testing.T) {
- rs, iters := InitTest(t)
+ target, rs, iters := initTest(t)
for i := 0; i < iters; i++ {
- Generate(rs, 20, nil)
+ target.Generate(rs, 20, nil)
}
}
func TestDefault(t *testing.T) {
- InitTest(t)
- for _, meta := range SyscallMap {
+ target, _, _ := initTest(t)
+ for _, meta := range target.SyscallMap {
for _, t := range meta.Args {
- DefaultArg(t)
+ defaultArg(t)
}
}
}
func TestDefaultCallArgs(t *testing.T) {
- InitTest(t)
- for _, meta := range SyscallMap {
+ target, _, _ := initTest(t)
+ for _, meta := range target.SyscallMap {
// Ensure that we can restore all arguments of all calls.
prog := fmt.Sprintf("%v()", meta.Name)
- p, err := Deserialize([]byte(prog))
+ p, err := target.Deserialize([]byte(prog))
if err != nil {
t.Fatalf("failed to restore default args in prog %q: %v", prog, err)
}
@@ -41,11 +41,11 @@ func TestDefaultCallArgs(t *testing.T) {
}
func TestSerialize(t *testing.T) {
- rs, iters := InitTest(t)
+ target, rs, iters := initTest(t)
for i := 0; i < iters; i++ {
- p := Generate(rs, 10, nil)
+ p := target.Generate(rs, 10, nil)
data := p.Serialize()
- p1, err := Deserialize(data)
+ p1, err := target.Deserialize(data)
if err != nil {
t.Fatalf("failed to deserialize program: %v\n%s", err, data)
}
@@ -63,12 +63,12 @@ func TestSerialize(t *testing.T) {
}
func TestVmaType(t *testing.T) {
- rs, iters := InitTest(t)
- meta := SyscallMap["syz_test$vma0"]
- r := newRand(rs)
- pageSize := PageSize()
+ target, rs, iters := initTest(t)
+ meta := target.SyscallMap["syz_test$vma0"]
+ r := newRand(target, rs)
+ pageSize := target.PageSize
for i := 0; i < iters; i++ {
- s := newState(nil)
+ s := newState(target, nil)
calls := r.generateParticularCall(s, meta)
c := calls[len(calls)-1]
if c.Meta.Name != "syz_test$vma0" {