neoneo-go/pkg/core/interop/storage/interops_test.go

40 lines
842 B
Go
Raw Normal View History

package storage_test
import (
"reflect"
"runtime"
"testing"
"github.com/nspcc-dev/neo-go/pkg/core/interop"
"github.com/nspcc-dev/neo-go/pkg/core/interop/storage"
"github.com/stretchr/testify/require"
)
func TestUnexpectedNonInterops(t *testing.T) {
vals := map[string]interface{}{
"int": 1,
"bool": false,
"string": "smth",
"array": []int{1, 2, 3},
}
// All of these functions expect an interop item on the stack.
2020-08-07 11:37:49 +00:00
funcs := []func(*interop.Context) error{
storage.ContextAsReadOnly,
storage.Delete,
storage.Find,
storage.Get,
storage.Put,
}
for _, f := range funcs {
for k, v := range vals {
fname := runtime.FuncForPC(reflect.ValueOf(f).Pointer()).Name()
t.Run(k+"/"+fname, func(t *testing.T) {
vm, ic, _ := createVM(t)
vm.Estack().PushVal(v)
require.Error(t, f(ic))
})
}
}
}