diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 5ff74c6d..af021265 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -135,7 +135,8 @@ add_jsonschema_test_unix(frame/fail_schema_invalid_json) add_jsonschema_test_unix(frame/fail_unknown_metaschema) # Compile -add_jsonschema_test_unix(compile/pass) +add_jsonschema_test_unix(compile/pass_1) +add_jsonschema_test_unix(compile/pass_2) add_jsonschema_test_unix(compile/fail_no_schema) add_jsonschema_test_unix(compile/fail_schema_invalid_json) add_jsonschema_test_unix(compile/fail_unknown_metaschema) diff --git a/test/compile/pass.sh b/test/compile/pass_1.sh similarity index 100% rename from test/compile/pass.sh rename to test/compile/pass_1.sh diff --git a/test/compile/pass_2.sh b/test/compile/pass_2.sh new file mode 100755 index 00000000..23530885 --- /dev/null +++ b/test/compile/pass_2.sh @@ -0,0 +1,54 @@ +#!/bin/sh + +set -o errexit +set -o nounset + +TMP="$(mktemp -d)" +clean() { rm -rf "$TMP"; } +trap clean EXIT + +cat << 'EOF' > "$TMP/schema.json" +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "allOf": [ {"$ref": "#/definitions/job" } ], + "definitions": { "job": {} } +} +EOF + +"$1" compile "$TMP/schema.json" > "$TMP/result.json" + +cat << 'EOF' > "$TMP/expected.json" +[ + { + "category": "logical", + "type": "and", + "value": null, + "schemaResource": "", + "absoluteKeywordLocation": "#/allOf", + "relativeSchemaLocation": "/allOf", + "relativeInstanceLocation": "", + "target": { + "category": "target", + "type": "instance", + "location": "" + }, + "dynamic": false, + "condition": [], + "children": [ + { + "category": "control", + "type": "label", + "schemaResource": "", + "absoluteKeywordLocation": "#/allOf/0/$ref", + "relativeSchemaLocation": "/0/$ref", + "relativeInstanceLocation": "", + "id": 6805500211157121261, + "dynamic": false, + "children": [] + } + ] + } +] +EOF + +diff "$TMP/result.json" "$TMP/expected.json"