39 lines
1.0 KiB
Plaintext
39 lines
1.0 KiB
Plaintext
|
#!/usr/bin/env python3
|
||
|
|
||
|
import glob
|
||
|
import os.path
|
||
|
import subprocess
|
||
|
import re
|
||
|
|
||
|
SDIR = "@abs_top_srcdir@"
|
||
|
BDIR = "@abs_top_builddir@"
|
||
|
|
||
|
TOOL = os.path.join(BDIR, "tools/json-schema")
|
||
|
|
||
|
TEST_EXTRACT = re.compile("(.*?)_(\d{4})_(pass|fail).json")
|
||
|
|
||
|
SCHEMA_DIR = os.path.join(SDIR, "test/json/schema")
|
||
|
SCHEMAS = glob.iglob(os.path.join(SCHEMA_DIR, "*.schema"))
|
||
|
|
||
|
EXPECTED = {
|
||
|
"pass": 0,
|
||
|
"fail": 1
|
||
|
}
|
||
|
|
||
|
|
||
|
print("1..%s" % len(glob.glob(os.path.join(SCHEMA_DIR, "*.json"))))
|
||
|
|
||
|
for schema in SCHEMAS:
|
||
|
(name, _) = os.path.splitext(os.path.basename(schema))
|
||
|
test_glob = name + "_*.json"
|
||
|
|
||
|
for test in glob.iglob(os.path.join(SCHEMA_DIR, test_glob)):
|
||
|
command = [TOOL, schema, test]
|
||
|
(name, seq, success) = TEST_EXTRACT.match(test).groups()
|
||
|
res = subprocess.call(command, stdout=subprocess.DEVNULL,stderr=subprocess.STDOUT)
|
||
|
|
||
|
if res != EXPECTED[success]:
|
||
|
print('not ok -', os.path.basename(test), '#', ' '.join(command))
|
||
|
else:
|
||
|
print('ok -', os.path.basename(test))
|