aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/block_test_util.go40
-rw-r--r--tests/init.go7
2 files changed, 33 insertions, 14 deletions
diff --git a/tests/block_test_util.go b/tests/block_test_util.go
index 5432bf845..e624cced0 100644
--- a/tests/block_test_util.go
+++ b/tests/block_test_util.go
@@ -208,10 +208,22 @@ func (t *BlockTest) InsertPreState(ethereum *eth.Ethereum) (*state.StateDB, erro
db := ethereum.StateDb()
statedb := state.New(common.Hash{}, db)
for addrString, acct := range t.preAccounts {
- addr, _ := hex.DecodeString(addrString)
- code, _ := hex.DecodeString(strings.TrimPrefix(acct.Code, "0x"))
- balance, _ := new(big.Int).SetString(acct.Balance, 0)
- nonce, _ := strconv.ParseUint(acct.Nonce, 16, 64)
+ addr, err := hex.DecodeString(addrString)
+ if err != nil {
+ return nil, err
+ }
+ code, err := hex.DecodeString(strings.TrimPrefix(acct.Code, "0x"))
+ if err != nil {
+ return nil, err
+ }
+ balance, ok := new(big.Int).SetString(acct.Balance, 0)
+ if !ok {
+ return nil, err
+ }
+ nonce, err := strconv.ParseUint(prepInt(16, acct.Nonce), 16, 64)
+ if err != nil {
+ return nil, err
+ }
if acct.PrivateKey != "" {
privkey, err := hex.DecodeString(strings.TrimPrefix(acct.PrivateKey, "0x"))
@@ -365,10 +377,22 @@ func (s *BlockTest) validateBlockHeader(h *btHeader, h2 *types.Header) error {
func (t *BlockTest) ValidatePostState(statedb *state.StateDB) error {
for addrString, acct := range t.preAccounts {
// XXX: is is worth it checking for errors here?
- addr, _ := hex.DecodeString(addrString)
- code, _ := hex.DecodeString(strings.TrimPrefix(acct.Code, "0x"))
- balance, _ := new(big.Int).SetString(acct.Balance, 0)
- nonce, _ := strconv.ParseUint(acct.Nonce, 16, 64)
+ addr, err := hex.DecodeString(addrString)
+ if err != nil {
+ return err
+ }
+ code, err := hex.DecodeString(strings.TrimPrefix(acct.Code, "0x"))
+ if err != nil {
+ return err
+ }
+ balance, ok := new(big.Int).SetString(acct.Balance, 0)
+ if !ok {
+ return err
+ }
+ nonce, err := strconv.ParseUint(prepInt(16, acct.Nonce), 16, 64)
+ if err != nil {
+ return err
+ }
// address is indirectly verified by the other fields, as it's the db key
code2 := statedb.GetCode(common.BytesToAddress(addr))
diff --git a/tests/init.go b/tests/init.go
index 94178af5f..f149c11f1 100644
--- a/tests/init.go
+++ b/tests/init.go
@@ -37,11 +37,6 @@ var (
vmTestDir = filepath.Join(baseDir, "VMTests")
BlockSkipTests = []string{
- // Fails in InsertPreState with: computed state root does not
- // match genesis block bba25a96 0d8f85c8 Christoph said it will be
- // fixed eventually
- "SimpleTx3",
-
// These tests are not valid, as they are out of scope for RLP and
// the consensus protocol.
"BLOCK__RandomByteAtTheEnd",
@@ -50,7 +45,7 @@ var (
"TRANSCT__ZeroByteAtTheEnd",
}
- /* Go does not support transaction (account) nonces above 2^64. This
+ /* Go client does not support transaction (account) nonces above 2^64. This
technically breaks consensus but is regarded as "reasonable
engineering constraint" as accounts cannot easily reach such high
nonce values in practice