diff options
author | Taylor Gerring <taylor.gerring@gmail.com> | 2015-06-11 06:11:30 +0800 |
---|---|---|
committer | Taylor Gerring <taylor.gerring@gmail.com> | 2015-06-19 04:20:45 +0800 |
commit | 6ff956394a26fe13c774797284220b8231ebf809 (patch) | |
tree | f5d739218bf55a62505cb809e076613c9bb5ebac /tests/block_test_util.go | |
parent | ac0637c41332de1f49fb0955f4fbe0fb908a77d5 (diff) | |
download | go-tangerine-6ff956394a26fe13c774797284220b8231ebf809.tar go-tangerine-6ff956394a26fe13c774797284220b8231ebf809.tar.gz go-tangerine-6ff956394a26fe13c774797284220b8231ebf809.tar.bz2 go-tangerine-6ff956394a26fe13c774797284220b8231ebf809.tar.lz go-tangerine-6ff956394a26fe13c774797284220b8231ebf809.tar.xz go-tangerine-6ff956394a26fe13c774797284220b8231ebf809.tar.zst go-tangerine-6ff956394a26fe13c774797284220b8231ebf809.zip |
DRY file loading
Diffstat (limited to 'tests/block_test_util.go')
-rw-r--r-- | tests/block_test_util.go | 56 |
1 files changed, 12 insertions, 44 deletions
diff --git a/tests/block_test_util.go b/tests/block_test_util.go index a04019111..7db47566b 100644 --- a/tests/block_test_util.go +++ b/tests/block_test_util.go @@ -3,9 +3,7 @@ package tests import ( "bytes" "encoding/hex" - "encoding/json" "fmt" - "io/ioutil" "math/big" "path/filepath" "runtime" @@ -87,9 +85,9 @@ type btTransaction struct { } func RunBlockTest(filepath string) error { - bt, err := LoadBlockTests(filepath) + bt, err := loadBlockTests(filepath) if err != nil { - return nil + return err } // map skipped tests to boolean set @@ -158,22 +156,6 @@ func testEthConfig() *eth.Config { } } -// LoadBlockTests loads a block test JSON file. -func LoadBlockTests(file string) (map[string]*BlockTest, error) { - bt := make(map[string]*btJSON) - if err := LoadJSON(file, &bt); err != nil { - return nil, err - } - out := make(map[string]*BlockTest) - for name, in := range bt { - var err error - if out[name], err = convertTest(in); err != nil { - return out, fmt.Errorf("bad test %q: %v", name, err) - } - } - return out, nil -} - // InsertPreState populates the given database with the genesis // accounts defined by the test. func (t *BlockTest) InsertPreState(ethereum *eth.Ethereum) (*state.StateDB, error) { @@ -467,34 +449,20 @@ func mustConvertUint(in string, base int) uint64 { return out } -// LoadJSON reads the given file and unmarshals its content. -func LoadJSON(file string, val interface{}) error { - content, err := ioutil.ReadFile(file) - if err != nil { - return err - } - if err := json.Unmarshal(content, val); err != nil { - if syntaxerr, ok := err.(*json.SyntaxError); ok { - line := findLine(content, syntaxerr.Offset) - return fmt.Errorf("JSON syntax error at %v:%v: %v", file, line, err) - } - return fmt.Errorf("JSON unmarshal error in %v: %v", file, err) +func loadBlockTests(file string) (map[string]*BlockTest, error) { + bt := make(map[string]*btJSON) + if err := readTestFile(file, &bt); err != nil { + return nil, err } - return nil -} -// findLine returns the line number for the given offset into data. -func findLine(data []byte, offset int64) (line int) { - line = 1 - for i, r := range string(data) { - if int64(i) >= offset { - return - } - if r == '\n' { - line++ + out := make(map[string]*BlockTest) + for name, in := range bt { + var err error + if out[name], err = convertTest(in); err != nil { + return out, fmt.Errorf("bad test %q: %v", name, err) } } - return + return out, nil } // Nothing to see here, please move along... |