aboutsummaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorJeffrey Wilcke <jeffrey@ethereum.org>2015-06-25 17:16:54 +0800
committerJeffrey Wilcke <jeffrey@ethereum.org>2015-06-25 17:16:54 +0800
commit6b2a03faa2473d38093adbeee62935af2fe2da59 (patch)
tree0a4127599ea4c35cfedd92ad037e916cd052bbd6 /common
parent8774fdcd64ffe55bbd5d47cd1479a626506d8f01 (diff)
parentd23ec6c4194e7c0f70372db58d49ec222dc4e22c (diff)
downloadgo-tangerine-6b2a03faa2473d38093adbeee62935af2fe2da59.tar
go-tangerine-6b2a03faa2473d38093adbeee62935af2fe2da59.tar.gz
go-tangerine-6b2a03faa2473d38093adbeee62935af2fe2da59.tar.bz2
go-tangerine-6b2a03faa2473d38093adbeee62935af2fe2da59.tar.lz
go-tangerine-6b2a03faa2473d38093adbeee62935af2fe2da59.tar.xz
go-tangerine-6b2a03faa2473d38093adbeee62935af2fe2da59.tar.zst
go-tangerine-6b2a03faa2473d38093adbeee62935af2fe2da59.zip
Merge pull request #1085 from Gustav-Simonsson/key_store_v3
crypto: key store v3
Diffstat (limited to 'common')
-rw-r--r--common/test_utils.go37
1 files changed, 37 insertions, 0 deletions
diff --git a/common/test_utils.go b/common/test_utils.go
new file mode 100644
index 000000000..8346c147a
--- /dev/null
+++ b/common/test_utils.go
@@ -0,0 +1,37 @@
+package common
+
+import (
+ "encoding/json"
+ "fmt"
+ "io/ioutil"
+)
+
+// 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)
+ }
+ 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
+}