diff options
Diffstat (limited to 'scripts/lib/resulttool')
| -rw-r--r-- | scripts/lib/resulttool/resultutils.py | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/scripts/lib/resulttool/resultutils.py b/scripts/lib/resulttool/resultutils.py index ea4ab42d9a..e595c185df 100644 --- a/scripts/lib/resulttool/resultutils.py +++ b/scripts/lib/resulttool/resultutils.py | |||
| @@ -42,10 +42,12 @@ def is_url(p): | |||
| 42 | """ | 42 | """ |
| 43 | return p.startswith('http://') or p.startswith('https://') | 43 | return p.startswith('http://') or p.startswith('https://') |
| 44 | 44 | ||
| 45 | extra_configvars = {'TESTSERIES': ''} | ||
| 46 | |||
| 45 | # | 47 | # |
| 46 | # Load the json file and append the results data into the provided results dict | 48 | # Load the json file and append the results data into the provided results dict |
| 47 | # | 49 | # |
| 48 | def append_resultsdata(results, f, configmap=store_map): | 50 | def append_resultsdata(results, f, configmap=store_map, configvars=extra_configvars): |
| 49 | if type(f) is str: | 51 | if type(f) is str: |
| 50 | if is_url(f): | 52 | if is_url(f): |
| 51 | with urllib.request.urlopen(f) as response: | 53 | with urllib.request.urlopen(f) as response: |
| @@ -61,12 +63,15 @@ def append_resultsdata(results, f, configmap=store_map): | |||
| 61 | for res in data: | 63 | for res in data: |
| 62 | if "configuration" not in data[res] or "result" not in data[res]: | 64 | if "configuration" not in data[res] or "result" not in data[res]: |
| 63 | raise ValueError("Test results data without configuration or result section?") | 65 | raise ValueError("Test results data without configuration or result section?") |
| 64 | if "TESTSERIES" not in data[res]["configuration"]: | 66 | for config in configvars: |
| 65 | data[res]["configuration"]["TESTSERIES"] = testseries | 67 | if config == "TESTSERIES" and "TESTSERIES" not in data[res]["configuration"]: |
| 68 | data[res]["configuration"]["TESTSERIES"] = testseries | ||
| 69 | continue | ||
| 70 | if config not in data[res]["configuration"]: | ||
| 71 | data[res]["configuration"][config] = configvars[config] | ||
| 66 | testtype = data[res]["configuration"].get("TEST_TYPE") | 72 | testtype = data[res]["configuration"].get("TEST_TYPE") |
| 67 | if testtype not in configmap: | 73 | if testtype not in configmap: |
| 68 | raise ValueError("Unknown test type %s" % testtype) | 74 | raise ValueError("Unknown test type %s" % testtype) |
| 69 | configvars = configmap[testtype] | ||
| 70 | testpath = "/".join(data[res]["configuration"].get(i) for i in configmap[testtype]) | 75 | testpath = "/".join(data[res]["configuration"].get(i) for i in configmap[testtype]) |
| 71 | if testpath not in results: | 76 | if testpath not in results: |
| 72 | results[testpath] = {} | 77 | results[testpath] = {} |
| @@ -76,16 +81,16 @@ def append_resultsdata(results, f, configmap=store_map): | |||
| 76 | # Walk a directory and find/load results data | 81 | # Walk a directory and find/load results data |
| 77 | # or load directly from a file | 82 | # or load directly from a file |
| 78 | # | 83 | # |
| 79 | def load_resultsdata(source, configmap=store_map): | 84 | def load_resultsdata(source, configmap=store_map, configvars=extra_configvars): |
| 80 | results = {} | 85 | results = {} |
| 81 | if is_url(source) or os.path.isfile(source): | 86 | if is_url(source) or os.path.isfile(source): |
| 82 | append_resultsdata(results, source, configmap) | 87 | append_resultsdata(results, source, configmap, configvars) |
| 83 | return results | 88 | return results |
| 84 | for root, dirs, files in os.walk(source): | 89 | for root, dirs, files in os.walk(source): |
| 85 | for name in files: | 90 | for name in files: |
| 86 | f = os.path.join(root, name) | 91 | f = os.path.join(root, name) |
| 87 | if name == "testresults.json": | 92 | if name == "testresults.json": |
| 88 | append_resultsdata(results, f, configmap) | 93 | append_resultsdata(results, f, configmap, configvars) |
| 89 | return results | 94 | return results |
| 90 | 95 | ||
| 91 | def filter_resultsdata(results, resultid): | 96 | def filter_resultsdata(results, resultid): |
