forked from TrueCloudLab/neoneo-go
compiler: don't use (*VM).Istack when it's not needed
This commit is contained in:
parent
5d7b37a6ff
commit
2bcb7bd06f
5 changed files with 10 additions and 11 deletions
|
@ -8,6 +8,7 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/nspcc-dev/neo-go/pkg/compiler"
|
"github.com/nspcc-dev/neo-go/pkg/compiler"
|
||||||
|
"github.com/nspcc-dev/neo-go/pkg/smartcontract/trigger"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/vm"
|
"github.com/nspcc-dev/neo-go/pkg/vm"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
@ -149,8 +150,7 @@ func TestAssignments(t *testing.T) {
|
||||||
for i, tc := range assignTestCases {
|
for i, tc := range assignTestCases {
|
||||||
v := vm.New()
|
v := vm.New()
|
||||||
t.Run(tc.name, func(t *testing.T) {
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
v.Istack().Clear()
|
v.Reset(trigger.Application)
|
||||||
v.Estack().Clear()
|
|
||||||
invokeMethod(t, fmt.Sprintf("F%d", i), ne.Script, v, di)
|
invokeMethod(t, fmt.Sprintf("F%d", i), ne.Script, v, di)
|
||||||
runAndCheck(t, v, tc.result)
|
runAndCheck(t, v, tc.result)
|
||||||
})
|
})
|
||||||
|
|
|
@ -8,6 +8,7 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/nspcc-dev/neo-go/pkg/compiler"
|
"github.com/nspcc-dev/neo-go/pkg/compiler"
|
||||||
|
"github.com/nspcc-dev/neo-go/pkg/smartcontract/trigger"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/vm"
|
"github.com/nspcc-dev/neo-go/pkg/vm"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
@ -238,8 +239,7 @@ func TestBinaryExprs(t *testing.T) {
|
||||||
for i, tc := range binaryExprTestCases {
|
for i, tc := range binaryExprTestCases {
|
||||||
v := vm.New()
|
v := vm.New()
|
||||||
t.Run(tc.name, func(t *testing.T) {
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
v.Istack().Clear()
|
v.Reset(trigger.Application)
|
||||||
v.Estack().Clear()
|
|
||||||
invokeMethod(t, fmt.Sprintf("F%d", i), ne.Script, v, di)
|
invokeMethod(t, fmt.Sprintf("F%d", i), ne.Script, v, di)
|
||||||
runAndCheck(t, v, tc.result)
|
runAndCheck(t, v, tc.result)
|
||||||
})
|
})
|
||||||
|
|
|
@ -8,6 +8,7 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/nspcc-dev/neo-go/pkg/compiler"
|
"github.com/nspcc-dev/neo-go/pkg/compiler"
|
||||||
|
"github.com/nspcc-dev/neo-go/pkg/smartcontract/trigger"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/vm"
|
"github.com/nspcc-dev/neo-go/pkg/vm"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
@ -72,8 +73,7 @@ func TestConvert(t *testing.T) {
|
||||||
for i, tc := range convertTestCases {
|
for i, tc := range convertTestCases {
|
||||||
v := vm.New()
|
v := vm.New()
|
||||||
t.Run(tc.argValue+getFunctionName(tc.returnType), func(t *testing.T) {
|
t.Run(tc.argValue+getFunctionName(tc.returnType), func(t *testing.T) {
|
||||||
v.Istack().Clear()
|
v.Reset(trigger.Application)
|
||||||
v.Estack().Clear()
|
|
||||||
invokeMethod(t, fmt.Sprintf("F%d", i), ne.Script, v, di)
|
invokeMethod(t, fmt.Sprintf("F%d", i), ne.Script, v, di)
|
||||||
runAndCheck(t, v, tc.result)
|
runAndCheck(t, v, tc.result)
|
||||||
})
|
})
|
||||||
|
|
|
@ -8,6 +8,7 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/nspcc-dev/neo-go/pkg/compiler"
|
"github.com/nspcc-dev/neo-go/pkg/compiler"
|
||||||
|
"github.com/nspcc-dev/neo-go/pkg/smartcontract/trigger"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/vm"
|
"github.com/nspcc-dev/neo-go/pkg/vm"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/vm/stackitem"
|
"github.com/nspcc-dev/neo-go/pkg/vm/stackitem"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
@ -727,8 +728,7 @@ func TestForLoop(t *testing.T) {
|
||||||
for i, tc := range forLoopTestCases {
|
for i, tc := range forLoopTestCases {
|
||||||
v := vm.New()
|
v := vm.New()
|
||||||
t.Run(tc.name, func(t *testing.T) {
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
v.Istack().Clear()
|
v.Reset(trigger.Application)
|
||||||
v.Estack().Clear()
|
|
||||||
invokeMethod(t, fmt.Sprintf("F%d", i), ne.Script, v, di)
|
invokeMethod(t, fmt.Sprintf("F%d", i), ne.Script, v, di)
|
||||||
runAndCheck(t, v, tc.result)
|
runAndCheck(t, v, tc.result)
|
||||||
})
|
})
|
||||||
|
@ -785,8 +785,7 @@ func TestForLoopComplexConditions(t *testing.T) {
|
||||||
name = tc.Assign
|
name = tc.Assign
|
||||||
}
|
}
|
||||||
t.Run(name, func(t *testing.T) {
|
t.Run(name, func(t *testing.T) {
|
||||||
v.Istack().Clear()
|
v.Reset(trigger.Application)
|
||||||
v.Estack().Clear()
|
|
||||||
invokeMethod(t, fmt.Sprintf("F%d", i), ne.Script, v, di)
|
invokeMethod(t, fmt.Sprintf("F%d", i), ne.Script, v, di)
|
||||||
runAndCheck(t, v, big.NewInt(tc.Result))
|
runAndCheck(t, v, big.NewInt(tc.Result))
|
||||||
})
|
})
|
||||||
|
|
|
@ -84,7 +84,7 @@ func evalWithArgs(t *testing.T, src string, op []byte, args []stackitem.Item, re
|
||||||
|
|
||||||
func assertResult(t *testing.T, vm *vm.VM, result interface{}) {
|
func assertResult(t *testing.T, vm *vm.VM, result interface{}) {
|
||||||
assert.Equal(t, result, vm.PopResult())
|
assert.Equal(t, result, vm.PopResult())
|
||||||
assert.Equal(t, 0, vm.Istack().Len())
|
assert.Nil(t, vm.Context())
|
||||||
}
|
}
|
||||||
|
|
||||||
func vmAndCompile(t *testing.T, src string) *vm.VM {
|
func vmAndCompile(t *testing.T, src string) *vm.VM {
|
||||||
|
|
Loading…
Reference in a new issue