forked from cerc-io/plugeth
more obvious failure for ethtest
This commit is contained in:
parent
3a88da578f
commit
80592f244d
@ -136,7 +136,7 @@ func RunVmTest(r io.Reader) (failed int) {
|
|||||||
|
|
||||||
rexp := helper.FromHex(test.Out)
|
rexp := helper.FromHex(test.Out)
|
||||||
if bytes.Compare(rexp, ret) != 0 {
|
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
|
failed = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -148,7 +148,7 @@ func RunVmTest(r io.Reader) (failed int) {
|
|||||||
|
|
||||||
if len(test.Exec) == 0 {
|
if len(test.Exec) == 0 {
|
||||||
if obj.Balance().Cmp(ethutil.Big(account.Balance)) != 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
|
failed = 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -158,20 +158,20 @@ func RunVmTest(r io.Reader) (failed int) {
|
|||||||
vexp := helper.FromHex(value)
|
vexp := helper.FromHex(value)
|
||||||
|
|
||||||
if bytes.Compare(v, vexp) != 0 {
|
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
|
failed = 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if !bytes.Equal(ethutil.Hex2Bytes(test.PostStateRoot), statedb.Root()) {
|
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
|
failed = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(test.Logs) > 0 {
|
if len(test.Logs) > 0 {
|
||||||
if len(test.Logs) != len(logs) {
|
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
|
failed = 1
|
||||||
} else {
|
} else {
|
||||||
/*
|
/*
|
||||||
|
@ -25,10 +25,7 @@ func (self *Execution) Addr() []byte {
|
|||||||
|
|
||||||
func (self *Execution) Call(codeAddr []byte, caller vm.ContextRef) ([]byte, error) {
|
func (self *Execution) Call(codeAddr []byte, caller vm.ContextRef) ([]byte, error) {
|
||||||
// Retrieve the executing code
|
// Retrieve the executing code
|
||||||
var code []byte
|
code := self.env.State().GetCode(codeAddr)
|
||||||
if self.env.State().GetStateObject(codeAddr) != nil {
|
|
||||||
code = self.env.State().GetCode(codeAddr)
|
|
||||||
}
|
|
||||||
|
|
||||||
return self.exec(code, codeAddr, caller)
|
return self.exec(code, codeAddr, caller)
|
||||||
}
|
}
|
||||||
|
@ -36,10 +36,12 @@ type Account interface {
|
|||||||
SubBalance(amount *big.Int)
|
SubBalance(amount *big.Int)
|
||||||
AddBalance(amount *big.Int)
|
AddBalance(amount *big.Int)
|
||||||
Balance() *big.Int
|
Balance() *big.Int
|
||||||
|
Address() []byte
|
||||||
}
|
}
|
||||||
|
|
||||||
// generic transfer method
|
// generic transfer method
|
||||||
func Transfer(from, to Account, amount *big.Int) error {
|
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 {
|
if from.Balance().Cmp(amount) < 0 {
|
||||||
return errors.New("Insufficient balance in account")
|
return errors.New("Insufficient balance in account")
|
||||||
}
|
}
|
||||||
|
2
vm/vm.go
2
vm/vm.go
@ -380,7 +380,7 @@ func (self *Vm) Run(me, caller ContextRef, code []byte, value, gas, price *big.I
|
|||||||
|
|
||||||
// 0x20 range
|
// 0x20 range
|
||||||
case SHA3:
|
case SHA3:
|
||||||
size, offset := stack.pop(), stack.pop()
|
offset, size := stack.pop(), stack.pop()
|
||||||
data := crypto.Sha3(mem.Get(offset.Int64(), size.Int64()))
|
data := crypto.Sha3(mem.Get(offset.Int64(), size.Int64()))
|
||||||
|
|
||||||
stack.push(ethutil.BigD(data))
|
stack.push(ethutil.BigD(data))
|
||||||
|
Loading…
Reference in New Issue
Block a user