diff options
Diffstat (limited to 'automated/utils/test-runner.py')
-rwxr-xr-x | automated/utils/test-runner.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/automated/utils/test-runner.py b/automated/utils/test-runner.py index 5562d64..7783850 100755 --- a/automated/utils/test-runner.py +++ b/automated/utils/test-runner.py @@ -13,6 +13,7 @@ import sys import textwrap import time from uuid import uuid4 +from distutils.spawn import find_executable try: @@ -624,6 +625,10 @@ class ResultParser(object): test_version = subprocess.check_output("git rev-parse HEAD", shell=True).decode('utf-8') self.results['version'] = test_version.rstrip() os.chdir(path) + self.lava_run = args.lava_run + if self.lava_run and not find_executable('lava-test-case'): + self.logger.info("lava-test-case not found, '-l' or '--lava_run' option ignored'") + self.lava_run = False def run(self): self.parse_stdout() @@ -670,6 +675,9 @@ class ResultParser(object): self.metrics.append(data.copy()) + if self.lava_run: + self.send_to_lava(data) + def parse_pattern(self): with open('%s/stdout.log' % self.test['test_path'], 'r') as f: for line in f: @@ -685,6 +693,16 @@ class ResultParser(object): self.metrics.append(data.copy()) + if self.lava_run: + self.send_to_lava(data) + + def send_to_lava(self, data): + cmd = 'lava-test-case {} --result {}'.format(data['test_case_id'], data['result']) + if data['measurement']: + cmd = '{} --measurement {} --units {}'.format(cmd, data['measurement'], data['units']) + self.logger.debug('lava-run: cmd: {}'.format(cmd)) + subprocess.call(shlex.split(cmd)) + def dict_to_json(self): # Save test results to output/test_id/result.json with open('%s/result.json' % self.test['test_path'], 'w') as f: @@ -777,6 +795,9 @@ def get_args(): parser.add_argument('-e', '--skip_environment', dest='skip_environment', default=False, action='store_true', help='skip environmental data collection (board name, distro, etc)') + parser.add_argument('-l', '--lava_run', dest='lava_run', + default=False, action='store_true', + help='send test result to LAVA with lava-test-case.') args = parser.parse_args() return args |