vm: update json tests to neo3 branch

Skip them until all opcodes will be implemented.
This commit is contained in:
Evgenii Stratonikov 2020-04-15 16:24:50 +03:00
parent 266138c00c
commit f5933c83c6
3 changed files with 5 additions and 28 deletions

2
.gitmodules vendored
View file

@ -1,4 +1,4 @@
[submodule "pkg/vm/testdata/neo-vm"] [submodule "pkg/vm/testdata/neo-vm"]
path = pkg/vm/testdata/neo-vm path = pkg/vm/testdata/neo-vm
url = https://github.com/neo-project/neo-vm.git url = https://github.com/neo-project/neo-vm.git
branch = master-2.x branch = master

View file

@ -3,6 +3,7 @@ package vm
import ( import (
"bytes" "bytes"
"encoding/base64" "encoding/base64"
"encoding/binary"
"encoding/hex" "encoding/hex"
"encoding/json" "encoding/json"
"fmt" "fmt"
@ -13,8 +14,6 @@ import (
"strings" "strings"
"testing" "testing"
"github.com/nspcc-dev/neo-go/pkg/crypto/hash"
"github.com/nspcc-dev/neo-go/pkg/util"
"github.com/nspcc-dev/neo-go/pkg/vm/emit" "github.com/nspcc-dev/neo-go/pkg/vm/emit"
"github.com/nspcc-dev/neo-go/pkg/vm/opcode" "github.com/nspcc-dev/neo-go/pkg/vm/opcode"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
@ -33,8 +32,6 @@ type (
Name string Name string
Script vmUTScript Script vmUTScript
Steps []vmUTStep Steps []vmUTStep
// FIXME remove when NEO 3.0 https://github.com/nspcc-dev/neo-go/issues/477
ScriptTable []map[string]vmUTScript
} }
vmUTExecutionContextState struct { vmUTExecutionContextState struct {
@ -94,6 +91,7 @@ const (
) )
func TestUT(t *testing.T) { func TestUT(t *testing.T) {
t.Skip()
testsRan := false testsRan := false
err := filepath.Walk(testsDir, func(path string, info os.FileInfo, err error) error { err := filepath.Walk(testsDir, func(path string, info os.FileInfo, err error) error {
if !strings.HasSuffix(path, ".json") { if !strings.HasSuffix(path, ".json") {
@ -110,9 +108,7 @@ func TestUT(t *testing.T) {
} }
func getTestingInterop(id uint32) *InteropFuncPrice { func getTestingInterop(id uint32) *InteropFuncPrice {
// FIXME in NEO 3.0 it is []byte{0x77, 0x77, 0x77, 0x77} https://github.com/nspcc-dev/neo-go/issues/477 if id == binary.LittleEndian.Uint32([]byte{0x77, 0x77, 0x77, 0x77}) {
if id == InteropNameToID([]byte("Test.ExecutionEngine.GetScriptContainer")) ||
id == InteropNameToID([]byte("System.ExecutionEngine.GetScriptContainer")) {
return &InteropFuncPrice{InteropFunc(func(v *VM) error { return &InteropFuncPrice{InteropFunc(func(v *VM) error {
v.estack.Push(&Element{value: (*InteropItem)(nil)}) v.estack.Push(&Element{value: (*InteropItem)(nil)})
return nil return nil
@ -125,11 +121,6 @@ func testFile(t *testing.T, filename string) {
data, err := ioutil.ReadFile(filename) data, err := ioutil.ReadFile(filename)
require.NoError(t, err) require.NoError(t, err)
// FIXME remove when NEO 3.0 https://github.com/nspcc-dev/neo-go/issues/477
if len(data) > 2 && data[0] == 0xef && data[1] == 0xbb && data[2] == 0xbf {
data = data[3:]
}
ut := new(vmUT) ut := new(vmUT)
require.NoError(t, json.Unmarshal(data, ut)) require.NoError(t, json.Unmarshal(data, ut))
@ -140,9 +131,6 @@ func testFile(t *testing.T, filename string) {
prog := []byte(test.Script) prog := []byte(test.Script)
vm := load(prog) vm := load(prog)
vm.state = breakState vm.state = breakState
// FIXME remove when NEO 3.0 https://github.com/nspcc-dev/neo-go/issues/477
vm.getScript = getScript(test.ScriptTable)
vm.RegisterInteropGetter(getTestingInterop) vm.RegisterInteropGetter(getTestingInterop)
for i := range test.Steps { for i := range test.Steps {
@ -174,17 +162,6 @@ func testFile(t *testing.T, filename string) {
}) })
} }
func getScript(scripts []map[string]vmUTScript) func(util.Uint160) ([]byte, bool) {
store := make(map[util.Uint160][]byte)
for i := range scripts {
for _, v := range scripts[i] {
store[hash.Hash160(v)] = []byte(v)
}
}
return func(a util.Uint160) ([]byte, bool) { return store[a], true }
}
func compareItems(t *testing.T, a, b StackItem) { func compareItems(t *testing.T, a, b StackItem) {
switch si := a.(type) { switch si := a.(type) {
case *BigIntegerItem: case *BigIntegerItem:

@ -1 +1 @@
Subproject commit 15170c46609ea61f6fcf6f36a90033bf658f2ab7 Subproject commit 45928090908bea777962c6df5dec1dd1bbafd7a7