]> git.proxmox.com Git - rustc.git/blob - tests/run-make-fulldeps/rustdoc-map-file/validate_json.py
New upstream version 1.68.2+dfsg1
[rustc.git] / tests / run-make-fulldeps / rustdoc-map-file / validate_json.py
1 #!/usr/bin/env python
2
3 import os
4 import sys
5 import json
6
7
8 def find_redirect_map_file(folder, errors):
9 for root, dirs, files in os.walk(folder):
10 for name in files:
11 if not name.endswith("redirect-map.json"):
12 continue
13 with open(os.path.join(root, name)) as f:
14 data = json.load(f)
15 with open("expected.json") as f:
16 expected = json.load(f)
17 for key in expected:
18 if expected[key] != data.get(key):
19 errors.append("Expected `{}` for key `{}`, found: `{}`".format(
20 expected[key], key, data.get(key)))
21 else:
22 del data[key]
23 for key in data:
24 errors.append("Extra data not expected: key: `{}`, data: `{}`".format(
25 key, data[key]))
26 return True
27 return False
28
29
30 if len(sys.argv) != 2:
31 print("Expected doc directory to check!")
32 sys.exit(1)
33
34 errors = []
35 if not find_redirect_map_file(sys.argv[1], errors):
36 print("Didn't find the map file in `{}`...".format(sys.argv[1]))
37 sys.exit(1)
38 for err in errors:
39 print("=> {}".format(err))
40 if len(errors) != 0:
41 sys.exit(1)