mirror of
https://github.com/ARM-software/workload-automation.git
synced 2025-01-19 04:21:17 +00:00
bbench: handle lack of results in logcat
- make sure results_list is always instatiated even if no metrics found; this would previously cause a "used before declaration" error - Detect that no metrics were extracted from the log and raise a WorkloadError
This commit is contained in:
parent
6f8989a8ba
commit
f33d6f4729
@ -24,7 +24,7 @@ import re
|
||||
from collections import defaultdict
|
||||
|
||||
from wlauto import settings, Workload, Parameter, Alias, Executable
|
||||
from wlauto.exceptions import ConfigError
|
||||
from wlauto.exceptions import ConfigError, WorkloadError
|
||||
from wlauto.utils.types import boolean
|
||||
|
||||
DEFAULT_BBENCH_FILE = "http://bbench.eecs.umich.edu/bbench/bbench_2.0.tgz"
|
||||
@ -158,6 +158,9 @@ class BBench(Workload):
|
||||
metrics = _parse_metrics(os.path.join(context.output_directory, 'browser_bbench_logcat.txt'),
|
||||
os.path.join(context.output_directory, 'index_noinput.html'),
|
||||
context.output_directory)
|
||||
if not metrics:
|
||||
raise WorkloadError('No BBench metrics extracted from Logcat')
|
||||
|
||||
for key, values in metrics:
|
||||
for i, value in enumerate(values):
|
||||
metric = '{}_{}'.format(key, i) if i else key
|
||||
@ -217,6 +220,7 @@ def _parse_metrics(logfile, indexfile, output_directory): # pylint: disable=R09
|
||||
settings_dict['iterations'], settings_dict['scrollDelay'], settings_dict['scrollSize'] = match.group(1).split(',')
|
||||
with open(logfile) as fh:
|
||||
results_dict = defaultdict(list)
|
||||
results_list = []
|
||||
for line in fh:
|
||||
if 'metrics:Mean' in line:
|
||||
results_list = regex_bbscore.findall(line)
|
||||
@ -241,4 +245,4 @@ def _parse_metrics(logfile, indexfile, output_directory): # pylint: disable=R09
|
||||
with open(os.path.join(output_directory, 'settings.json'), 'w') as wfh:
|
||||
json.dump(settings_dict, wfh)
|
||||
|
||||
return sorted_results
|
||||
return list(sorted_results)
|
||||
|
Loading…
x
Reference in New Issue
Block a user