aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJared Wasinger <j-wasinger@hotmail.com>2017-07-06 04:00:01 +0800
committerUbuntu <ubuntu@ip-172-31-32-43.us-west-2.compute.internal>2017-08-08 04:41:46 +0800
commit6117849a700de4d1fcb7245b2cfffbd3382c6cf8 (patch)
treef010521a6db40ae6dfe488d4579366f6929b9ab7
parent7378b9fa4e883484af856df99a65c28293613e98 (diff)
downloadtangerine-tests-6117849a700de4d1fcb7245b2cfffbd3382c6cf8.tar
tangerine-tests-6117849a700de4d1fcb7245b2cfffbd3382c6cf8.tar.gz
tangerine-tests-6117849a700de4d1fcb7245b2cfffbd3382c6cf8.tar.bz2
tangerine-tests-6117849a700de4d1fcb7245b2cfffbd3382c6cf8.tar.lz
tangerine-tests-6117849a700de4d1fcb7245b2cfffbd3382c6cf8.tar.xz
tangerine-tests-6117849a700de4d1fcb7245b2cfffbd3382c6cf8.tar.zst
tangerine-tests-6117849a700de4d1fcb7245b2cfffbd3382c6cf8.zip
use JS for json schema validation because the Node 'jsonschema' library is the only one (that I have found) to correctly handle 'additionalProperties' as a boolean (https://spacetelescope.github.io/understanding-json-schema/reference/object.html)
-rw-r--r--.travis.yml9
-rw-r--r--JSONSchema/schema.json12
-rwxr-xr-xJSONSchema/validate.js2
3 files changed, 15 insertions, 8 deletions
diff --git a/.travis.yml b/.travis.yml
index 24267e38a..9aad47f7a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,11 +1,14 @@
language: python
-python: 2.7
+python:
+ - "2.7"
+node_js:
+ - "7"
sudo: false
-install: "pip install jsonschema"
+install: "npm install jsonschema"
script:
# won't fail, but print problems
- find . -name "*.json" -not -name "*Filler.json" -exec echo {} \; -exec python -mjson.tool {} /dev/null \; 2>&1 | grep -v -B 1 "^\./" | cat
# will fail, if linting fails
- find . -name "*.json" -not -name "*Filler.json" -print0 | xargs -I file -n1 -0 python -mjson.tool file /dev/null
# run schema tests against GeneralStateTests
-- echo "$(find GeneralStateTests -name '*.json' ! -path '../schema/*.json')" | python JSONSchema/validate.py
+- echo -e "$(find GeneralStateTests -name '*.json' ! -path '../schema/*.json')" | node JSONSchema/validate.js
diff --git a/JSONSchema/schema.json b/JSONSchema/schema.json
index 5ac5e7a71..6e7113950 100644
--- a/JSONSchema/schema.json
+++ b/JSONSchema/schema.json
@@ -22,7 +22,8 @@
"Metropolis": {
"type": "array"
}
- } },
+ }
+ },
"explanation": {
"type": "string"
},
@@ -53,7 +54,8 @@
"type": "string",
"pattern": "^0x[0-9a-f]*$"
}
- }
+ },
+ "additionalproperties": false
},
"pre": {
"type": "object",
@@ -79,7 +81,8 @@
}
}
}
- }
+ },
+ "additionalProperties": false
},
"transaction": {
"type": "object",
@@ -121,7 +124,8 @@
"pattern": "^0x[0-9a-f]*$"
}
}
- }
+ },
+ "additionalProperties": false
}
}
}
diff --git a/JSONSchema/validate.js b/JSONSchema/validate.js
index 368d28da2..6c44b834f 100755
--- a/JSONSchema/validate.js
+++ b/JSONSchema/validate.js
@@ -15,7 +15,7 @@ var rl = readline.createInterface({
});
rl.on('line', function(line){
- fs.readFile('schema.json', function(err, data) {
+ fs.readFile('JSONSchema/schema.json', function(err, data) {
if (err) {
throw err;
}