]> git.lizzy.rs Git - rust.git/blob - tests/run-make-fulldeps/rustdoc-map-file/validate_json.py
Rollup merge of #103236 - tspiteri:redoc-int-adc-sbb, r=m-ou-se
[rust.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)