This commit is contained in:
obscuren 2014-10-18 23:20:25 +02:00
parent 73c1c2c4af
commit 3bc64b6b6e
3 changed files with 44 additions and 27 deletions

View File

@ -1,25 +0,0 @@
package helper
import (
"encoding/json"
"io/ioutil"
"net/http"
"testing"
)
func CreateTests(t *testing.T, uri string, value interface{}) {
resp, err := http.Get(uri)
if err != nil {
t.Error(err)
return
}
defer resp.Body.Close()
data, err := ioutil.ReadAll(resp.Body)
err = json.Unmarshal(data, &value)
if err != nil {
t.Error(err)
}
}

42
tests/helper/readers.go Normal file
View File

@ -0,0 +1,42 @@
package helper
import (
"encoding/json"
"io"
"io/ioutil"
"net/http"
"os"
"testing"
)
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)
}

View File

@ -41,7 +41,7 @@ type VmTest struct {
func RunVmTest(url string, t *testing.T) { func RunVmTest(url string, t *testing.T) {
tests := make(map[string]VmTest) tests := make(map[string]VmTest)
helper.CreateTests(t, url, &tests) helper.CreateHttpTests(t, url, &tests)
for name, test := range tests { for name, test := range tests {
state := ethstate.New(helper.NewTrie()) state := ethstate.New(helper.NewTrie())
@ -88,12 +88,12 @@ func RunVmTest(url string, t *testing.T) {
// I've created a new function for each tests so it's easier to identify where the problem lies if any of them fail. // I've created a new function for each tests so it's easier to identify where the problem lies if any of them fail.
func TestVMArithmetic(t *testing.T) { func TestVMArithmetic(t *testing.T) {
//helper.Logger.SetLogLevel(5)
const url = "https://raw.githubusercontent.com/ethereum/tests/develop/vmtests/vmArithmeticTest.json" const url = "https://raw.githubusercontent.com/ethereum/tests/develop/vmtests/vmArithmeticTest.json"
RunVmTest(url, t) RunVmTest(url, t)
} }
func TestVMSystemOperation(t *testing.T) { func TestVMSystemOperation(t *testing.T) {
//helper.Logger.SetLogLevel(5)
const url = "https://raw.githubusercontent.com/ethereum/tests/develop/vmtests/vmSystemOperationsTest.json" const url = "https://raw.githubusercontent.com/ethereum/tests/develop/vmtests/vmSystemOperationsTest.json"
RunVmTest(url, t) RunVmTest(url, t)
} }