mirror of
https://github.com/nspcc-dev/neo-go.git
synced 2025-05-04 09:02:28 +00:00
vm: clone Struct on APPEND
This commit is contained in:
parent
facf34e821
commit
99f1d761ca
3 changed files with 34 additions and 2 deletions
|
@ -538,6 +538,18 @@ func TestAPPENDStruct(t *testing.T) {
|
|||
assert.Equal(t, &StructItem{[]StackItem{makeStackItem(5)}}, vm.estack.Pop().value)
|
||||
}
|
||||
|
||||
func TestAPPENDCloneStruct(t *testing.T) {
|
||||
prog := makeProgram(DUP, PUSH0, NEWSTRUCT, TOALTSTACK, DUPFROMALTSTACK, APPEND, FROMALTSTACK, PUSH1, APPEND)
|
||||
vm := load(prog)
|
||||
vm.estack.Push(&Element{value: &ArrayItem{}})
|
||||
vm.Run()
|
||||
assert.Equal(t, false, vm.state.HasFlag(faultState))
|
||||
assert.Equal(t, 1, vm.estack.Len())
|
||||
assert.Equal(t, &ArrayItem{[]StackItem{
|
||||
&StructItem{[]StackItem{}},
|
||||
}}, vm.estack.Pop().value)
|
||||
}
|
||||
|
||||
func TestAPPENDBadNoArguments(t *testing.T) {
|
||||
prog := makeProgram(APPEND)
|
||||
vm := load(prog)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue