From 1b26d4f220689dac18d560a4c1ecb3b29d99deb0 Mon Sep 17 00:00:00 2001 From: Taylor Gerring Date: Wed, 10 Jun 2015 13:00:54 -0400 Subject: Flatten helper directory --- tests/init.go | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 tests/init.go (limited to 'tests/init.go') diff --git a/tests/init.go b/tests/init.go new file mode 100644 index 000000000..b487f81c3 --- /dev/null +++ b/tests/init.go @@ -0,0 +1,53 @@ +package tests + +import ( + "encoding/json" + "io" + "io/ioutil" + // "log" + "net/http" + "os" + "testing" + + // logpkg "github.com/ethereum/go-ethereum/logger" +) + +// var Logger *logpkg.StdLogSystem +// var Log = logpkg.NewLogger("TEST") + +// func init() { +// Logger = logpkg.NewStdLogSystem(os.Stdout, log.LstdFlags, logpkg.InfoLevel) +// logpkg.AddLogSystem(Logger) +// } + +func readJSON(t *testing.T, reader io.Reader, value interface{}) { + data, err := ioutil.ReadAll(reader) + err = json.Unmarshal(data, &value) + if err != nil { + t.Error(err) + } +} + +func CreateHttpTests(t *testing.T, uri string, value interface{}) { + resp, err := http.Get(uri) + if err != nil { + t.Error(err) + + return + } + defer resp.Body.Close() + + readJSON(t, resp.Body, value) +} + +func CreateFileTests(t *testing.T, fn string, value interface{}) { + file, err := os.Open(fn) + if err != nil { + t.Error(err) + + return + } + defer file.Close() + + readJSON(t, file, value) +} -- cgit v1.2.3 From c5d6fcbaba545d1078f5411dc67208d5d388222e Mon Sep 17 00:00:00 2001 From: Taylor Gerring Date: Wed, 10 Jun 2015 16:10:33 -0400 Subject: Return error up stack instead of passing testing var down --- tests/init.go | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) (limited to 'tests/init.go') diff --git a/tests/init.go b/tests/init.go index b487f81c3..4a176698f 100644 --- a/tests/init.go +++ b/tests/init.go @@ -1,13 +1,14 @@ package tests import ( + "bytes" "encoding/json" + "fmt" "io" "io/ioutil" // "log" "net/http" "os" - "testing" // logpkg "github.com/ethereum/go-ethereum/logger" ) @@ -20,34 +21,40 @@ import ( // logpkg.AddLogSystem(Logger) // } -func readJSON(t *testing.T, reader io.Reader, value interface{}) { +func readJSON(reader io.Reader, value interface{}) error { data, err := ioutil.ReadAll(reader) err = json.Unmarshal(data, &value) if err != nil { - t.Error(err) + return err } + return nil } -func CreateHttpTests(t *testing.T, uri string, value interface{}) { +func CreateHttpTests(uri string, value interface{}) error { resp, err := http.Get(uri) if err != nil { - t.Error(err) - - return + return err } defer resp.Body.Close() - readJSON(t, resp.Body, value) + err = readJSON(resp.Body, value) + if err != nil { + return err + } + return nil } -func CreateFileTests(t *testing.T, fn string, value interface{}) { +func CreateFileTests(fn string, value interface{}) error { file, err := os.Open(fn) if err != nil { - t.Error(err) - - return + return err } defer file.Close() - readJSON(t, file, value) + err = readJSON(file, value) + if err != nil { + return err + } + return nil +} } -- cgit v1.2.3 From b6d40a931286b4c998f58ad074db0a692aeace6e Mon Sep 17 00:00:00 2001 From: Taylor Gerring Date: Wed, 10 Jun 2015 16:29:42 -0400 Subject: Cleanup/reorg --- tests/init.go | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) (limited to 'tests/init.go') diff --git a/tests/init.go b/tests/init.go index 4a176698f..e6644ae60 100644 --- a/tests/init.go +++ b/tests/init.go @@ -1,25 +1,21 @@ package tests import ( - "bytes" "encoding/json" - "fmt" "io" "io/ioutil" - // "log" "net/http" "os" - - // logpkg "github.com/ethereum/go-ethereum/logger" + "path/filepath" ) -// var Logger *logpkg.StdLogSystem -// var Log = logpkg.NewLogger("TEST") - -// func init() { -// Logger = logpkg.NewStdLogSystem(os.Stdout, log.LstdFlags, logpkg.InfoLevel) -// logpkg.AddLogSystem(Logger) -// } +var ( + baseDir = filepath.Join(".", "files") + blockTestDir = filepath.Join(baseDir, "BlockTests") + stateTestDir = filepath.Join(baseDir, "StateTests") + transactionTestDir = filepath.Join(baseDir, "TransactionTests") + vmTestDir = filepath.Join(baseDir, "VMTests") +) func readJSON(reader io.Reader, value interface{}) error { data, err := ioutil.ReadAll(reader) @@ -57,4 +53,3 @@ func CreateFileTests(fn string, value interface{}) error { } return nil } -} -- cgit v1.2.3 From ac0637c41332de1f49fb0955f4fbe0fb908a77d5 Mon Sep 17 00:00:00 2001 From: Taylor Gerring Date: Wed, 10 Jun 2015 17:04:06 -0400 Subject: More consistent test interfaces + test skipping --- tests/init.go | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'tests/init.go') diff --git a/tests/init.go b/tests/init.go index e6644ae60..74d9499f1 100644 --- a/tests/init.go +++ b/tests/init.go @@ -15,6 +15,11 @@ var ( stateTestDir = filepath.Join(baseDir, "StateTests") transactionTestDir = filepath.Join(baseDir, "TransactionTests") vmTestDir = filepath.Join(baseDir, "VMTests") + + blockSkipTests = []string{} + transSkipTests = []string{"TransactionWithHihghNonce256"} + stateSkipTests = []string{"mload32bitBound_return", "mload32bitBound_return2"} + vmSkipTests = []string{} ) func readJSON(reader io.Reader, value interface{}) error { -- cgit v1.2.3 From 6ff956394a26fe13c774797284220b8231ebf809 Mon Sep 17 00:00:00 2001 From: Taylor Gerring Date: Wed, 10 Jun 2015 18:11:30 -0400 Subject: DRY file loading --- tests/init.go | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) (limited to 'tests/init.go') diff --git a/tests/init.go b/tests/init.go index 74d9499f1..aec06396b 100644 --- a/tests/init.go +++ b/tests/init.go @@ -2,6 +2,7 @@ package tests import ( "encoding/json" + "fmt" "io" "io/ioutil" "net/http" @@ -24,14 +25,35 @@ var ( func readJSON(reader io.Reader, value interface{}) error { data, err := ioutil.ReadAll(reader) - err = json.Unmarshal(data, &value) if err != nil { - return err + return fmt.Errorf("Error reading JSON file", err.Error()) + } + + if err = json.Unmarshal(data, &value); err != nil { + if syntaxerr, ok := err.(*json.SyntaxError); ok { + line := findLine(data, syntaxerr.Offset) + return fmt.Errorf("JSON syntax error at line %v: %v", line, err) + } + return fmt.Errorf("JSON unmarshal error: %v", err) } return nil } -func CreateHttpTests(uri string, value interface{}) error { +// 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++ + } + } + return +} + +func readHttpFile(uri string, value interface{}) error { resp, err := http.Get(uri) if err != nil { return err @@ -45,7 +67,7 @@ func CreateHttpTests(uri string, value interface{}) error { return nil } -func CreateFileTests(fn string, value interface{}) error { +func readTestFile(fn string, value interface{}) error { file, err := os.Open(fn) if err != nil { return err @@ -54,7 +76,7 @@ func CreateFileTests(fn string, value interface{}) error { err = readJSON(file, value) if err != nil { - return err + return fmt.Errorf("%s in file %s", err.Error(), fn) } return nil } -- cgit v1.2.3 From c941a39b756783d95526a74374dd2aa4283474fa Mon Sep 17 00:00:00 2001 From: Taylor Gerring Date: Thu, 11 Jun 2015 13:06:56 -0400 Subject: Cleanup logging --- tests/init.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests/init.go') diff --git a/tests/init.go b/tests/init.go index aec06396b..164924ab8 100644 --- a/tests/init.go +++ b/tests/init.go @@ -17,7 +17,7 @@ var ( transactionTestDir = filepath.Join(baseDir, "TransactionTests") vmTestDir = filepath.Join(baseDir, "VMTests") - blockSkipTests = []string{} + blockSkipTests = []string{"SimpleTx3"} transSkipTests = []string{"TransactionWithHihghNonce256"} stateSkipTests = []string{"mload32bitBound_return", "mload32bitBound_return2"} vmSkipTests = []string{} -- cgit v1.2.3 From 01ec4dbb1251751b8bbf62ddb3b3a02dc50d29fc Mon Sep 17 00:00:00 2001 From: Taylor Gerring Date: Sun, 14 Jun 2015 17:55:03 -0400 Subject: Add stdin option --- tests/init.go | 75 +++++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 52 insertions(+), 23 deletions(-) (limited to 'tests/init.go') diff --git a/tests/init.go b/tests/init.go index 164924ab8..326387341 100644 --- a/tests/init.go +++ b/tests/init.go @@ -8,6 +8,8 @@ import ( "net/http" "os" "path/filepath" + + // "github.com/ethereum/go-ethereum/logger/glog" ) var ( @@ -17,13 +19,40 @@ var ( transactionTestDir = filepath.Join(baseDir, "TransactionTests") vmTestDir = filepath.Join(baseDir, "VMTests") - blockSkipTests = []string{"SimpleTx3"} - transSkipTests = []string{"TransactionWithHihghNonce256"} - stateSkipTests = []string{"mload32bitBound_return", "mload32bitBound_return2"} - vmSkipTests = []string{} + BlockSkipTests = []string{"SimpleTx3"} + TransSkipTests = []string{"TransactionWithHihghNonce256"} + StateSkipTests = []string{"mload32bitBound_return", "mload32bitBound_return2"} + VmSkipTests = []string{} ) -func readJSON(reader io.Reader, value interface{}) error { +// type TestRunner interface { +// // LoadTest() +// RunTest() error +// } + +// func RunTests(bt map[string]TestRunner, skipTests []string) error { +// // map skipped tests to boolean set +// skipTest := make(map[string]bool, len(skipTests)) +// for _, name := range skipTests { +// skipTest[name] = true +// } + +// for name, test := range bt { +// // if the test should be skipped, return +// if skipTest[name] { +// glog.Infoln("Skipping block test", name) +// return nil +// } +// // test the block +// if err := test.RunTest(); err != nil { +// return err +// } +// glog.Infoln("Block test passed: ", name) +// } +// return nil +// } + +func readJson(reader io.Reader, value interface{}) error { data, err := ioutil.ReadAll(reader) if err != nil { return fmt.Errorf("Error reading JSON file", err.Error()) @@ -39,44 +68,44 @@ func readJSON(reader io.Reader, value interface{}) error { 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++ - } - } - return -} - -func readHttpFile(uri string, value interface{}) error { +func readJsonHttp(uri string, value interface{}) error { resp, err := http.Get(uri) if err != nil { return err } defer resp.Body.Close() - err = readJSON(resp.Body, value) + err = readJson(resp.Body, value) if err != nil { return err } return nil } -func readTestFile(fn string, value interface{}) error { +func readJsonFile(fn string, value interface{}) error { file, err := os.Open(fn) if err != nil { return err } defer file.Close() - err = readJSON(file, value) + err = readJson(file, value) if err != nil { return fmt.Errorf("%s in file %s", err.Error(), fn) } 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++ + } + } + return +} -- cgit v1.2.3 From baea8e87e5dfdcfb7b2fdcef48fa6038d60a6f9c Mon Sep 17 00:00:00 2001 From: Taylor Gerring Date: Thu, 18 Jun 2015 22:27:44 +0200 Subject: Rebase cleanup --- tests/init.go | 29 ----------------------------- 1 file changed, 29 deletions(-) (limited to 'tests/init.go') diff --git a/tests/init.go b/tests/init.go index 326387341..9fe98a0d1 100644 --- a/tests/init.go +++ b/tests/init.go @@ -8,8 +8,6 @@ import ( "net/http" "os" "path/filepath" - - // "github.com/ethereum/go-ethereum/logger/glog" ) var ( @@ -25,33 +23,6 @@ var ( VmSkipTests = []string{} ) -// type TestRunner interface { -// // LoadTest() -// RunTest() error -// } - -// func RunTests(bt map[string]TestRunner, skipTests []string) error { -// // map skipped tests to boolean set -// skipTest := make(map[string]bool, len(skipTests)) -// for _, name := range skipTests { -// skipTest[name] = true -// } - -// for name, test := range bt { -// // if the test should be skipped, return -// if skipTest[name] { -// glog.Infoln("Skipping block test", name) -// return nil -// } -// // test the block -// if err := test.RunTest(); err != nil { -// return err -// } -// glog.Infoln("Block test passed: ", name) -// } -// return nil -// } - func readJson(reader io.Reader, value interface{}) error { data, err := ioutil.ReadAll(reader) if err != nil { -- cgit v1.2.3