summaryrefslogtreecommitdiff
path: root/meta/lib/oeqa/buildperf
diff options
context:
space:
mode:
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>2016-08-26 10:33:10 +0300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-09-03 09:58:29 +0100
commit446e32aadc775ca146d12173b1463f524d7fe6ef (patch)
tree16028739dde18007efa5a8ddccd6fb6d8eded6a0 /meta/lib/oeqa/buildperf
parent69b3c63e32d09ea4a41b21daacdff6bf1fc447c1 (diff)
downloadopenembedded-core-446e32aadc775ca146d12173b1463f524d7fe6ef.tar.gz
openembedded-core-446e32aadc775ca146d12173b1463f524d7fe6ef.tar.bz2
openembedded-core-446e32aadc775ca146d12173b1463f524d7fe6ef.zip
oeqa.buildperf: treat failed measurements as errors
Now failed measurements correctly cause a test failure (recorded as an error). There should be no need to continue the test if one step fails, especially now that the tests don't depend on each other. Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib/oeqa/buildperf')
-rw-r--r--meta/lib/oeqa/buildperf/base.py36
1 files changed, 13 insertions, 23 deletions
diff --git a/meta/lib/oeqa/buildperf/base.py b/meta/lib/oeqa/buildperf/base.py
index 83439f1bdb..dbc534efe3 100644
--- a/meta/lib/oeqa/buildperf/base.py
+++ b/meta/lib/oeqa/buildperf/base.py
@@ -75,9 +75,7 @@ def time_cmd(cmd, **kwargs):
if isinstance(cmd, str):
timecmd = ' '.join(timecmd) + ' '
timecmd += cmd
- # TODO: 'ignore_status' could/should be removed when globalres.log is
- # deprecated. The function would just raise an exception, instead
- ret = runCmd2(timecmd, ignore_status=True, **kwargs)
+ ret = runCmd2(timecmd, **kwargs)
timedata = tmpf.file.read()
return ret, timedata
@@ -315,16 +313,15 @@ class BuildPerfTestCase(unittest.TestCase):
cmd_str = cmd if isinstance(cmd, str) else ' '.join(cmd)
log.info("Timing command: %s", cmd_str)
cmd_log = os.path.join(self.out_dir, 'commands.log')
- with open(cmd_log, 'a') as fobj:
- ret, timedata = time_cmd(cmd, stdout=fobj)
- if ret.status:
- log.error("Time will be reported as 0. Command failed: %s",
- ret.status)
- etime = timedelta(0)
- self._failed = True
- else:
- match = re.search(r'.*wall clock.*: (?P<etime>.*)\n', timedata)
- etime = str_time_to_timedelta(match.group('etime'))
+ try:
+ with open(cmd_log, 'a') as fobj:
+ ret, timedata = time_cmd(cmd, stdout=fobj)
+ except CommandError:
+ log.error("Command '%s' failed, see %s for more details", cmd_str,
+ cmd_log)
+ raise
+ match = re.search(r'.*wall clock.*: (?P<etime>.*)\n', timedata)
+ etime = str_time_to_timedelta(match.group('etime'))
measurement = {'type': self.SYSRES,
'name': name,
@@ -344,16 +341,9 @@ class BuildPerfTestCase(unittest.TestCase):
def measure_disk_usage(self, path, name, legend):
"""Estimate disk usage of a file or directory"""
- # TODO: 'ignore_status' could/should be removed when globalres.log is
- # deprecated. The function would just raise an exception, instead
- ret = runCmd2(['du', '-s', path], ignore_status=True)
- if ret.status:
- log.error("du failed, disk usage will be reported as 0")
- size = 0
- self._failed = True
- else:
- size = int(ret.output.split()[0])
- log.debug("Size of %s path is %s", path, size)
+ ret = runCmd2(['du', '-s', path])
+ size = int(ret.output.split()[0])
+ log.debug("Size of %s path is %s", path, size)
measurement = {'type': self.DISKUSAGE,
'name': name,
'legend': legend}