init.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package tests
  2. import (
  3. "encoding/json"
  4. "io"
  5. "io/ioutil"
  6. "net/http"
  7. "os"
  8. "path/filepath"
  9. )
  10. var (
  11. baseDir = filepath.Join(".", "files")
  12. blockTestDir = filepath.Join(baseDir, "BlockTests")
  13. stateTestDir = filepath.Join(baseDir, "StateTests")
  14. transactionTestDir = filepath.Join(baseDir, "TransactionTests")
  15. vmTestDir = filepath.Join(baseDir, "VMTests")
  16. blockSkipTests = []string{}
  17. transSkipTests = []string{"TransactionWithHihghNonce256"}
  18. stateSkipTests = []string{"mload32bitBound_return", "mload32bitBound_return2"}
  19. vmSkipTests = []string{}
  20. )
  21. func readJSON(reader io.Reader, value interface{}) error {
  22. data, err := ioutil.ReadAll(reader)
  23. err = json.Unmarshal(data, &value)
  24. if err != nil {
  25. return err
  26. }
  27. return nil
  28. }
  29. func CreateHttpTests(uri string, value interface{}) error {
  30. resp, err := http.Get(uri)
  31. if err != nil {
  32. return err
  33. }
  34. defer resp.Body.Close()
  35. err = readJSON(resp.Body, value)
  36. if err != nil {
  37. return err
  38. }
  39. return nil
  40. }
  41. func CreateFileTests(fn string, value interface{}) error {
  42. file, err := os.Open(fn)
  43. if err != nil {
  44. return err
  45. }
  46. defer file.Close()
  47. err = readJSON(file, value)
  48. if err != nil {
  49. return err
  50. }
  51. return nil
  52. }