forked from crocs-muni/scrutiny
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathverify.py
41 lines (33 loc) · 1.45 KB
/
verify.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import argparse
import jsonpickle
from scrutiny.device import load_device
from scrutiny.interfaces import Contrast
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("-r", "--reference",
help="Reference profile",
action="store", metavar="file",
required=True)
parser.add_argument("-p", "--profile",
help="Profile to compare against reference",
action="store", metavar="file",
required=True)
parser.add_argument("-o", "--output-file",
help="Name of output file",
action="store", metavar="outfile",
required=False, default="contrast.json")
args = parser.parse_args()
reference = load_device(args.reference)
profile = load_device(args.profile)
contrast = Contrast(reference.name, profile.name)
for module in reference.modules.values():
if module.module_name in profile.modules.keys():
contrast.add_contrasts(
module.contrast(profile.modules[module.module_name]))
for module in contrast.contrasts:
state = module.update_result()
if state.value > contrast.result.value:
contrast.result = state
contrast.result = str(contrast.result)
with open(args.output_file, "w") as f:
f.write(jsonpickle.encode(contrast, indent=4))