Sfoglia il codice sorgente

more obvious failure for ethtest

obscuren 10 anni fa
parent
commit
80592f244d
4 ha cambiato i file con 9 aggiunte e 10 eliminazioni
  1. 5 5
      cmd/ethtest/main.go
  2. 1 4
      core/execution.go
  3. 2 0
      vm/environment.go
  4. 1 1
      vm/vm.go

+ 5 - 5
cmd/ethtest/main.go

@@ -136,7 +136,7 @@ func RunVmTest(r io.Reader) (failed int) {
 
 		rexp := helper.FromHex(test.Out)
 		if bytes.Compare(rexp, ret) != 0 {
-			fmt.Printf("%s's return failed. Expected %x, got %x\n", name, rexp, ret)
+			fmt.Printf("FAIL: %s's return failed. Expected %x, got %x\n", name, rexp, ret)
 			failed = 1
 		}
 
@@ -148,7 +148,7 @@ func RunVmTest(r io.Reader) (failed int) {
 
 			if len(test.Exec) == 0 {
 				if obj.Balance().Cmp(ethutil.Big(account.Balance)) != 0 {
-					fmt.Printf("%s's : (%x) balance failed. Expected %v, got %v => %v\n", name, obj.Address()[:4], account.Balance, obj.Balance(), new(big.Int).Sub(ethutil.Big(account.Balance), obj.Balance()))
+					fmt.Printf("FAIL: %s's : (%x) balance failed. Expected %v, got %v => %v\n", name, obj.Address()[:4], account.Balance, obj.Balance(), new(big.Int).Sub(ethutil.Big(account.Balance), obj.Balance()))
 					failed = 1
 				}
 			}
@@ -158,20 +158,20 @@ func RunVmTest(r io.Reader) (failed int) {
 				vexp := helper.FromHex(value)
 
 				if bytes.Compare(v, vexp) != 0 {
-					fmt.Printf("%s's : (%x: %s) storage failed. Expected %x, got %x (%v %v)\n", name, obj.Address()[0:4], addr, vexp, v, ethutil.BigD(vexp), ethutil.BigD(v))
+					fmt.Printf("FAIL: %s's : (%x: %s) storage failed. Expected %x, got %x (%v %v)\n", name, obj.Address()[0:4], addr, vexp, v, ethutil.BigD(vexp), ethutil.BigD(v))
 					failed = 1
 				}
 			}
 		}
 
 		if !bytes.Equal(ethutil.Hex2Bytes(test.PostStateRoot), statedb.Root()) {
-			fmt.Printf("%s's : Post state root error. Expected %s, got %x\n", name, test.PostStateRoot, statedb.Root())
+			fmt.Printf("FAIL: %s's : Post state root error. Expected %s, got %x\n", name, test.PostStateRoot, statedb.Root())
 			failed = 1
 		}
 
 		if len(test.Logs) > 0 {
 			if len(test.Logs) != len(logs) {
-				fmt.Printf("log length mismatch. Expected %d, got %d", len(test.Logs), len(logs))
+				fmt.Printf("FAIL: log length mismatch. Expected %d, got %d", len(test.Logs), len(logs))
 				failed = 1
 			} else {
 				/*

+ 1 - 4
core/execution.go

@@ -25,10 +25,7 @@ func (self *Execution) Addr() []byte {
 
 func (self *Execution) Call(codeAddr []byte, caller vm.ContextRef) ([]byte, error) {
 	// Retrieve the executing code
-	var code []byte
-	if self.env.State().GetStateObject(codeAddr) != nil {
-		code = self.env.State().GetCode(codeAddr)
-	}
+	code := self.env.State().GetCode(codeAddr)
 
 	return self.exec(code, codeAddr, caller)
 }

+ 2 - 0
vm/environment.go

@@ -36,10 +36,12 @@ type Account interface {
 	SubBalance(amount *big.Int)
 	AddBalance(amount *big.Int)
 	Balance() *big.Int
+	Address() []byte
 }
 
 // generic transfer method
 func Transfer(from, to Account, amount *big.Int) error {
+	//fmt.Printf(":::%x::: %v < %v\n", from.Address(), from.Balance(), amount)
 	if from.Balance().Cmp(amount) < 0 {
 		return errors.New("Insufficient balance in account")
 	}

+ 1 - 1
vm/vm.go

@@ -380,7 +380,7 @@ func (self *Vm) Run(me, caller ContextRef, code []byte, value, gas, price *big.I
 
 			// 0x20 range
 		case SHA3:
-			size, offset := stack.pop(), stack.pop()
+			offset, size := stack.pop(), stack.pop()
 			data := crypto.Sha3(mem.Get(offset.Int64(), size.Int64()))
 
 			stack.push(ethutil.BigD(data))