oeqa.buildperf: include commands log file name in results.json

(From OE-Core rev: b22a71cf3a53a33763ff02608119d2c73cbde006)

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Markus Lehtonen
2016-08-29 22:48:31 +03:00
committed by Richard Purdie
parent c39db4bc45
commit 7d77c02401

View File

@@ -220,6 +220,8 @@ class BuildPerfTestResult(unittest.TextTestResult):
'status': status, 'status': status,
'start_time': test.start_time, 'start_time': test.start_time,
'elapsed_time': test.elapsed_time, 'elapsed_time': test.elapsed_time,
'cmd_log_file': os.path.relpath(test.cmd_log_file,
self.out_dir),
'measurements': test.measurements} 'measurements': test.measurements}
results['tests'] = tests results['tests'] = tests
@@ -312,6 +314,10 @@ class BuildPerfTestCase(unittest.TestCase):
def out_dir(self): def out_dir(self):
return os.path.join(self.base_dir, self.name) return os.path.join(self.base_dir, self.name)
@property
def cmd_log_file(self):
return os.path.join(self.out_dir, 'commands.log')
def setUp(self): def setUp(self):
"""Set-up fixture for each test""" """Set-up fixture for each test"""
if self.build_target: if self.build_target:
@@ -328,9 +334,8 @@ class BuildPerfTestCase(unittest.TestCase):
"""Run a command and log it's output""" """Run a command and log it's output"""
cmd_str = cmd if isinstance(cmd, str) else ' '.join(cmd) cmd_str = cmd if isinstance(cmd, str) else ' '.join(cmd)
log.info("Logging command: %s", cmd_str) log.info("Logging command: %s", cmd_str)
cmd_log = os.path.join(self.out_dir, 'commands.log')
try: try:
with open(cmd_log, 'a') as fobj: with open(self.cmd_log_file, 'a') as fobj:
runCmd2(cmd, stdout=fobj) runCmd2(cmd, stdout=fobj)
except CommandError as err: except CommandError as err:
log.error("Command failed: %s", err.retcode) log.error("Command failed: %s", err.retcode)
@@ -368,9 +373,8 @@ class BuildPerfTestCase(unittest.TestCase):
cmd_str = cmd if isinstance(cmd, str) else ' '.join(cmd) cmd_str = cmd if isinstance(cmd, str) else ' '.join(cmd)
log.info("Timing command: %s", cmd_str) log.info("Timing command: %s", cmd_str)
data_q = SimpleQueue() data_q = SimpleQueue()
cmd_log = os.path.join(self.out_dir, 'commands.log')
try: try:
with open(cmd_log, 'a') as fobj: with open(self.cmd_log_file, 'a') as fobj:
proc = Process(target=_worker, args=(data_q, cmd,), proc = Process(target=_worker, args=(data_q, cmd,),
kwargs={'stdout': fobj}) kwargs={'stdout': fobj})
proc.start() proc.start()
@@ -380,7 +384,7 @@ class BuildPerfTestCase(unittest.TestCase):
raise data raise data
except CommandError: except CommandError:
log.error("Command '%s' failed, see %s for more details", cmd_str, log.error("Command '%s' failed, see %s for more details", cmd_str,
cmd_log) self.cmd_log_file)
raise raise
etime = data['elapsed_time'] etime = data['elapsed_time']