forked from iSPIRT/NPNT-Provisional-testing-tool
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathverify_results.py
More file actions
77 lines (65 loc) · 2.67 KB
/
verify_results.py
File metadata and controls
77 lines (65 loc) · 2.67 KB
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import argparse
import sys
import os
from permissions import generate_all_test_permission_artefacts, \
generate_valid_permission
from helpers import verify_flight_log_signature_objs
from random import shuffle
import tempfile
from lxml import etree
import shutil
from zipfile import ZipFile
import pickle
import xml.etree.ElementTree as ET
import json
class VerifyResults:
def __init__(self, args):
self.args = args
def main(self):
thisdict = pickle.load(self.args.truth)
cases = []
for elem in enumerate(thisdict['cases']):
cases.append({
"expected_result": elem[1]['expected_result'],
"test": elem[1]['test']
})
drone_public_key = thisdict['drone_public_key']
#drone_id = thisdict['drone_id']
results = [
{"test": cases[0]['test'], "passed": False},
{"test": cases[1]['test'], "passed": False},
{"test": cases[2]['test'], "passed": False},
{"test": cases[3]['test'], "passed": False},
{"test": "breach", "passed": False}
]
#Case 1
if(cases[0]['expected_result'] == self.args.s1):
results[0]['passed'] = True
#Case 2
if(cases[1]['expected_result'] == self.args.s2):
results[1]['passed'] = True
#Case 3
if(cases[2]['expected_result'] == self.args.s3):
results[2]['passed'] = True
#Case 4
if(cases[3]['expected_result'] == self.args.s4):
results[3]['passed'] = True
#breach
breach_log = self.args.breach_log.read()
breach_passed = verify_flight_log_signature_objs(breach_log, drone_public_key)
results[4]['passed'] = breach_passed
#report
self.args.report.write(json.dumps(results))
print(results)
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('--truth', help='Truth file for the bundle', type=argparse.FileType('rb'), required=True)
parser.add_argument('--s1', help='Permission artifact 1 arm status', type=int, required=True)
parser.add_argument('--s2', help='Permission artifact 2 arm status', type=int, required=True)
parser.add_argument('--s3', help='Permission artifact 3 arm status', type=int, required=True)
parser.add_argument('--s4', help='Permission artifact 4 arm status', type=int, required=True)
parser.add_argument('--breach_log', help='Breach log file', type=argparse.FileType('r'), required=True)
parser.add_argument('--report', help='Report file', type=argparse.FileType('w'), required=True)
args = parser.parse_args()
ver = VerifyResults(args)
ver.main()