aboutsummaryrefslogtreecommitdiffstats
path: root/ethchain/vm_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'ethchain/vm_test.go')
-rw-r--r--ethchain/vm_test.go83
1 files changed, 9 insertions, 74 deletions
diff --git a/ethchain/vm_test.go b/ethchain/vm_test.go
index 35a7b2e3f..b919b496f 100644
--- a/ethchain/vm_test.go
+++ b/ethchain/vm_test.go
@@ -11,71 +11,6 @@ import (
"testing"
)
-/*
-func TestRun3(t *testing.T) {
- ethutil.ReadConfig("")
-
- db, _ := ethdb.NewMemDatabase()
- state := NewState(ethutil.NewTrie(db, ""))
-
- script := Compile([]string{
- "PUSH", "300",
- "PUSH", "0",
- "MSTORE",
-
- "PUSH", "32",
- "CALLDATA",
-
- "PUSH", "64",
- "PUSH", "0",
- "RETURN",
- })
- tx := NewContractCreationTx(ethutil.Big("0"), ethutil.Big("1000"), script)
- addr := tx.Hash()[12:]
- contract := MakeContract(tx, state)
- state.UpdateContract(contract)
-
- callerScript := ethutil.Assemble(
- "PUSH", 1337, // Argument
- "PUSH", 65, // argument mem offset
- "MSTORE",
- "PUSH", 64, // ret size
- "PUSH", 0, // ret offset
-
- "PUSH", 32, // arg size
- "PUSH", 65, // arg offset
- "PUSH", 1000, /// Gas
- "PUSH", 0, /// value
- "PUSH", addr, // Sender
- "CALL",
- "PUSH", 64,
- "PUSH", 0,
- "RETURN",
- )
- callerTx := NewContractCreationTx(ethutil.Big("0"), ethutil.Big("1000"), callerScript)
-
- // Contract addr as test address
- account := NewAccount(ContractAddr, big.NewInt(10000000))
- callerClosure := NewClosure(account, MakeContract(callerTx, state), state, big.NewInt(1000000000), new(big.Int))
-
- vm := NewVm(state, RuntimeVars{
- origin: account.Address(),
- blockNumber: 1,
- prevHash: ethutil.FromHex("5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"),
- coinbase: ethutil.FromHex("2adc25665018aa1fe0e6bc666dac8fc2697ff9ba"),
- time: 1,
- diff: big.NewInt(256),
- // XXX Tx data? Could be just an argument to the closure instead
- txData: nil,
- })
- ret := callerClosure.Call(vm, nil)
-
- exp := []byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 57}
- if bytes.Compare(ret, exp) != 0 {
- t.Errorf("expected return value to be %v, got %v", exp, ret)
- }
-}*/
-
func TestRun4(t *testing.T) {
ethutil.ReadConfig("")
@@ -86,7 +21,7 @@ func TestRun4(t *testing.T) {
int32 a = 10
int32 b = 20
if a > b {
- int32 c = this.Caller()
+ int32 c = this.caller()
}
Exit()
`), false)
@@ -98,21 +33,21 @@ func TestRun4(t *testing.T) {
callerScript, err := mutan.Compile(strings.NewReader(`
// Check if there's any cash in the initial store
- if store[1000] == 0 {
- store[1000] = 10^20
+ if this.store[1000] == 0 {
+ this.store[1000] = 10^20
}
- store[1001] = this.Value() * 20
- store[this.Origin()] = store[this.Origin()] + 1000
+ this.store[1001] = this.value() * 20
+ this.store[this.origin()] = this.store[this.origin()] + 1000
- if store[1001] > 20 {
- store[1001] = 10^50
+ if this.store[1001] > 20 {
+ this.store[1001] = 10^50
}
int8 ret = 0
int8 arg = 10
- Call(0xe6a12555fad1fb6eaaaed69001a87313d1fd7b54, 0, 100, arg, ret)
+ call(0xe6a12555fad1fb6eaaaed69001a87313d1fd7b54, 0, 100, arg, ret)
big t
for int8 i = 0; i < 10; i++ {
@@ -142,7 +77,7 @@ func TestRun4(t *testing.T) {
fmt.Println(err)
}
fmt.Println("account.Amount =", account.Amount)
- callerClosure := NewClosure(account, c, c.script, state, gas, gasPrice, big.NewInt(0))
+ callerClosure := NewClosure(account, c, c.script, state, gas, gasPrice)
vm := NewVm(state, nil, RuntimeVars{
Origin: account.Address(),