diff options
Diffstat (limited to 'meta/lib/oeqa/buildperf/test_basic.py')
-rw-r--r-- | meta/lib/oeqa/buildperf/test_basic.py | 63 |
1 files changed, 29 insertions, 34 deletions
diff --git a/meta/lib/oeqa/buildperf/test_basic.py b/meta/lib/oeqa/buildperf/test_basic.py index e448ed18c9..2104617ba3 100644 --- a/meta/lib/oeqa/buildperf/test_basic.py +++ b/meta/lib/oeqa/buildperf/test_basic.py @@ -1,13 +1,6 @@ # Copyright (c) 2016, Intel Corporation. # -# This program is free software; you can redistribute it and/or modify it -# under the terms and conditions of the GNU General Public License, -# version 2, as published by the Free Software Foundation. -# -# This program is distributed in the hope it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -# more details. +# SPDX-License-Identifier: GPL-2.0-only # """Basic set of build performance tests""" import os @@ -15,14 +8,13 @@ import shutil import oe.path from oeqa.buildperf import BuildPerfTestCase -from oeqa.utils.commands import get_bb_vars - +from oeqa.utils.commands import get_bb_var, get_bb_vars class Test1P1(BuildPerfTestCase): build_target = 'core-image-sato' def test1(self): - """Measure wall clock of bitbake core-image-sato and size of tmp dir""" + """Build core-image-sato""" self.rm_tmp() self.rm_sstate() self.rm_cache() @@ -30,16 +22,17 @@ class Test1P1(BuildPerfTestCase): self.measure_cmd_resources(['bitbake', self.build_target], 'build', 'bitbake ' + self.build_target, save_bs=True) self.measure_disk_usage(self.bb_vars['TMPDIR'], 'tmpdir', 'tmpdir') + self.measure_disk_usage(get_bb_var("IMAGE_ROOTFS", self.build_target), 'rootfs', 'rootfs', True) class Test1P2(BuildPerfTestCase): build_target = 'virtual/kernel' def test12(self): - """Measure bitbake virtual/kernel""" + """Build virtual/kernel""" # Build and cleans state in order to get all dependencies pre-built - self.log_cmd_output(['bitbake', self.build_target]) - self.log_cmd_output(['bitbake', self.build_target, '-c', 'cleansstate']) + self.run_cmd(['bitbake', self.build_target]) + self.run_cmd(['bitbake', self.build_target, '-c', 'cleansstate']) self.sync() self.measure_cmd_resources(['bitbake', self.build_target], 'build', @@ -51,30 +44,28 @@ class Test1P3(BuildPerfTestCase): def test13(self): """Build core-image-sato with rm_work enabled""" - postfile = os.path.join(self.out_dir, 'postfile.conf') + postfile = os.path.join(self.tmp_dir, 'postfile.conf') with open(postfile, 'w') as fobj: fobj.write('INHERIT += "rm_work"\n') - try: - self.rm_tmp() - self.rm_sstate() - self.rm_cache() - self.sync() - cmd = ['bitbake', '-R', postfile, self.build_target] - self.measure_cmd_resources(cmd, 'build', - 'bitbake' + self.build_target, - save_bs=True) - self.measure_disk_usage(self.bb_vars['TMPDIR'], 'tmpdir', 'tmpdir') - finally: - os.unlink(postfile) + + self.rm_tmp() + self.rm_sstate() + self.rm_cache() + self.sync() + cmd = ['bitbake', '-R', postfile, self.build_target] + self.measure_cmd_resources(cmd, 'build', + 'bitbake' + self.build_target, + save_bs=True) + self.measure_disk_usage(self.bb_vars['TMPDIR'], 'tmpdir', 'tmpdir') class Test2(BuildPerfTestCase): build_target = 'core-image-sato' def test2(self): - """Measure bitbake core-image-sato -c rootfs with sstate""" + """Run core-image-sato do_rootfs with sstate""" # Build once in order to populate sstate cache - self.log_cmd_output(['bitbake', self.build_target]) + self.run_cmd(['bitbake', self.build_target]) self.rm_tmp() self.rm_cache() @@ -86,7 +77,7 @@ class Test2(BuildPerfTestCase): class Test3(BuildPerfTestCase): def test3(self): - """Parsing time metrics (bitbake -p)""" + """Bitbake parsing (bitbake -p)""" # Drop all caches and parse self.rm_cache() oe.path.remove(os.path.join(self.bb_vars['TMPDIR'], 'cache'), True) @@ -106,15 +97,16 @@ class Test4(BuildPerfTestCase): def test4(self): """eSDK metrics""" - self.log_cmd_output("bitbake {} -c do_populate_sdk_ext".format( - self.build_target)) + self.run_cmd(['bitbake', '-c', 'do_populate_sdk_ext', + self.build_target]) self.bb_vars = get_bb_vars(None, self.build_target) tmp_dir = self.bb_vars['TMPDIR'] installer = os.path.join( self.bb_vars['SDK_DEPLOY'], self.bb_vars['TOOLCHAINEXT_OUTPUTNAME'] + '.sh') # Measure installer size - self.measure_disk_usage(installer, 'installer_bin', 'eSDK installer') + self.measure_disk_usage(installer, 'installer_bin', 'eSDK installer', + apparent_size=True) # Measure deployment time and deployed size deploy_dir = os.path.join(tmp_dir, 'esdk-deploy') if os.path.exists(deploy_dir): @@ -122,4 +114,7 @@ class Test4(BuildPerfTestCase): self.sync() self.measure_cmd_resources([installer, '-y', '-d', deploy_dir], 'deploy', 'eSDK deploy') - self.measure_disk_usage(deploy_dir, 'deploy_dir', 'deploy dir') + #make sure bitbake is unloaded + self.sync() + self.measure_disk_usage(deploy_dir, 'deploy_dir', 'deploy dir', + apparent_size=True) |