diff --git a/pkg/vm/state.go b/pkg/vm/state.go index c94de5a22..8247a9dc5 100644 --- a/pkg/vm/state.go +++ b/pkg/vm/state.go @@ -10,14 +10,14 @@ type State uint8 // Available States. const ( - // NoneState represents NONE VM state. - NoneState State = 0 // HaltState represents HALT VM state. HaltState State = 1 << iota // FaultState represents FAULT VM state. FaultState // BreakState represents BREAK VM state. BreakState + // NoneState represents NONE VM state. + NoneState State = 0 ) // HasFlag checks for State flag presence. diff --git a/pkg/vm/state_test.go b/pkg/vm/state_test.go index be31dc5ee..7c4d87015 100644 --- a/pkg/vm/state_test.go +++ b/pkg/vm/state_test.go @@ -86,3 +86,12 @@ func TestState_UnmarshalJSON(t *testing.T) { assert.NoError(t, err) assert.Equal(t, NoneState, s) } + +// TestState_EnumCompat tests that byte value of State matches the C#'s one got from +// https://github.com/neo-project/neo-vm/blob/0028d862e253bda3c12eb8bb007a2d95822d3922/src/neo-vm/VMState.cs#L16. +func TestState_EnumCompat(t *testing.T) { + assert.Equal(t, byte(0), byte(NoneState)) + assert.Equal(t, byte(1<<0), byte(HaltState)) + assert.Equal(t, byte(1<<1), byte(FaultState)) + assert.Equal(t, byte(1<<2), byte(BreakState)) +}