prog: simplify hints test

It assumes too much about prog internals.
Parse complete program instead.
This commit is contained in:
Dmitry Vyukov 2020-04-26 14:29:12 +02:00
parent dcd4b58785
commit 15862c0b45

View File

@ -546,24 +546,11 @@ func TestHintsData(t *testing.T) {
out: []string{"0810000000131415"},
},
}
call := target.SyscallMap["test$hint_data"]
for _, test := range tests {
input, err := hex.DecodeString(test.in)
p, err := target.Deserialize([]byte(fmt.Sprintf("test$hint_data(&AUTO=\"%v\")", test.in)), Strict)
if err != nil {
t.Fatal(err)
}
p := &Prog{
Target: target,
Calls: []*Call{{
Meta: call,
Args: []Arg{MakePointerArg(call.Args[0], 0,
MakeDataArg(call.Args[0].(*PtrType).Type, input))},
Ret: MakeReturnArg(call.Ret),
}},
}
if err := p.validate(); err != nil {
t.Fatal(err)
}
var got []string
p.MutateWithHints(0, test.comps, func(newP *Prog) {
got = append(got, hex.EncodeToString(