summaryrefslogtreecommitdiffstats
path: root/meta/lib/oeqa/buildperf/test_basic.py
diff options
context:
space:
mode:
Diffstat (limited to 'meta/lib/oeqa/buildperf/test_basic.py')
-rw-r--r--meta/lib/oeqa/buildperf/test_basic.py63
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)