summaryrefslogtreecommitdiffstats
path: root/tests/run-make/rustdoc-map-file/validate_json.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/run-make/rustdoc-map-file/validate_json.py')
-rwxr-xr-xtests/run-make/rustdoc-map-file/validate_json.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/run-make/rustdoc-map-file/validate_json.py b/tests/run-make/rustdoc-map-file/validate_json.py
new file mode 100755
index 000000000..5c14c90b7
--- /dev/null
+++ b/tests/run-make/rustdoc-map-file/validate_json.py
@@ -0,0 +1,41 @@
+#!/usr/bin/env python
+
+import os
+import sys
+import json
+
+
+def find_redirect_map_file(folder, errors):
+ for root, dirs, files in os.walk(folder):
+ for name in files:
+ if not name.endswith("redirect-map.json"):
+ continue
+ with open(os.path.join(root, name)) as f:
+ data = json.load(f)
+ with open("expected.json") as f:
+ expected = json.load(f)
+ for key in expected:
+ if expected[key] != data.get(key):
+ errors.append("Expected `{}` for key `{}`, found: `{}`".format(
+ expected[key], key, data.get(key)))
+ else:
+ del data[key]
+ for key in data:
+ errors.append("Extra data not expected: key: `{}`, data: `{}`".format(
+ key, data[key]))
+ return True
+ return False
+
+
+if len(sys.argv) != 2:
+ print("Expected doc directory to check!")
+ sys.exit(1)
+
+errors = []
+if not find_redirect_map_file(sys.argv[1], errors):
+ print("Didn't find the map file in `{}`...".format(sys.argv[1]))
+ sys.exit(1)
+for err in errors:
+ print("=> {}".format(err))
+if len(errors) != 0:
+ sys.exit(1)