package vm import "encoding/hex" import "strings" import "testing" func TestFirst(t *testing.T) { asm := [][]string{ []string{ "0000020000000000010000000000000000000000000000000000000000000001", "0000000100000000000000000000000000000001000000000000000000000000", "0000030100000000010000000000000000000000000000000000000000000003", "000004010000000000000000fffffffffffffffd000000000000000000000000", }, []string{ "0000020000000000020000000000000000000000000000000000000000000001", }, } functionByteCode := [][]byte{} for _, fnc := range asm { fncString := strings.Join(fnc, "") byteCode, err := hex.DecodeString(fncString) if err != nil { t.Fatal(err) } functionByteCode = append(functionByteCode, byteCode) } state, err := NewState(functionByteCode) if err != nil { t.Fatal(err) } state.Execute() if state.err != nil { t.Fatal(state) } if state.globalMemory[0] != 3 { t.Fatal(state.globalMemory[0]) } }