diff options
author | Markus Lehtonen <markus.lehtonen@linux.intel.com> | 2016-08-26 10:33:10 +0300 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-09-03 09:58:29 +0100 |
commit | 446e32aadc775ca146d12173b1463f524d7fe6ef (patch) | |
tree | 16028739dde18007efa5a8ddccd6fb6d8eded6a0 /meta/lib/oeqa/buildperf | |
parent | 69b3c63e32d09ea4a41b21daacdff6bf1fc447c1 (diff) | |
download | openembedded-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.py | 36 |
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} |