summaryrefslogtreecommitdiffstats
path: root/meta/lib/oeqa
Commit message (Collapse)AuthorAgeFilesLines
* selftest/devtool: change write to append config in virtual_kernel_modifyAníbal Limón2017-05-181-1/+1
| | | | | | | | | | | | | | When uses write it creates a full new configuration in selftest.inc causing to fail populate_sdk_ext linux-yocto because the signature of the sstate changes. [YOCTO #11300] (From OE-Core rev: 65bab9210be51aeb431ea85c90e31ad9f0d2340c) Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* QemuRunner: avoid tainting os.environPatrick Ohly2017-05-181-7/+8
| | | | | | | | | | | | | | | | | | | | | | | That a utility function permanently changes the process environment is bad style and leads to subtle, hard to debug problems. For example, we had one oe-selftest which used runqemu() with an override for DEPLOY_DIR_IMAGE. Another test then just called runCmd() and ended up passing the wrong DEPLOY_DIR_IMAGE set earlier in os.environ. The approach used here is to pass the desired environment dict to the launch() method as a new, optional parameter, which then gets passed on to subproject.Popen(). The modified env variables do not get logged, as before. [YOCTO #11443] (From OE-Core rev: cab20f3b2fe668a63c58b44f2ad797fed74226fe) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/selftest: add test for package manager version comparisonRoss Burton2017-05-161-0/+80
| | | | | | | | | | | | | This test case verifies that opkg, dpkg, and rpm all have the same behaviour for version ordering, specifically the behaviour of ~ which should be sorting *before* nothing: 1.0 < 2.0~pre < 2.0 < 2.0-fix (From OE-Core rev: 0bf875ea234bb9ff50d347345782e14d6b7d3ff9) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/selftest: relax whitespace matches in search regexRoss Burton2017-05-161-2/+2
| | | | | | | | | | Latest DNF has changed the amount of whitespace it outputs so use matches instead of hardcoding the exact number of spaces. (From OE-Core rev: 9ebeb374e49ecedecba8fe16fff3717edbc41994) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest/runtime-test: Split the config valuesLeonardo Sandoval2017-05-161-4/+5
| | | | | | | | | | | | Split the configuration values (common and specific) so it is easier to read what goes into the config file. Also the specific configurations are set in every loop so these do not append on each iteration. (From OE-Core rev: 58d43b470ffa9b498234b6845cacfd867218ca03) Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe.lsb: add get_os_release()Markus Lehtonen2017-05-161-13/+3
| | | | | | | | | | | | Move get_os_release() from oeqa.utils.metadata to oe.lsb, merging the code with release_dict_osr() from oe.lsb. This removes some code duplication and makes get_os_release() more robust. (From OE-Core rev: 56b883f7765f6bd72e83dec26a5db8c7108c835d) Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* parselogs: whitelist failed to enable keyboard error on intel-corei7-64California Sullivan2017-05-111-0/+1
| | | | | | | | | | | | | | | | This error is seen on the Braswell RVP platform we have been using for testing. The error is caused by atkbd.c keyboard driver, which is only for AT and PS/2 keyboards. I tested a PS/2 keyboard with the board, which worked fine, and the board does not have a separate AT connector, so this error won't cause any functional issues. [YOCTO #10110]. (From OE-Core rev: c9f83639242313ca04ec36b49602a8464e10dae8) Signed-off-by: California Sullivan <california.l.sullivan@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* parselogs: whitelist bluetooth firmware load error for intel-corei7-64California Sullivan2017-05-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The NUC6 has issues bringing up Bluetooth early in the boot sequence. We see: [ 4.091790] Bluetooth: hci0: Minimum firmware build 1 week 10 2014 [ 4.097326] Bluetooth: hci0: Found device firmware: intel/ibt-11-5.sfi [ 4.145317] Bluetooth: hci0: Failed to send firmware data (-38) Followed by this later on: [ 11.509870] Bluetooth: hci0: Minimum firmware build 1 week 10 2014 [ 11.509988] Bluetooth: hci0: Found device firmware: intel/ibt-11-5.sfi [ 13.090308] Bluetooth: hci0: Waiting for firmware download to complete [ 13.090829] Bluetooth: hci0: Firmware loaded in 1549114 usecs [ 13.090987] Bluetooth: hci0: Waiting for device to boot [ 13.101958] Bluetooth: hci0: Device booted in 10818 usecs Bluetooth does successfully come up and the firmware is loaded. This behavior is consistent across all kernels I've tested. [YOCTO #10628]. (From OE-Core rev: 045ee89342ea8ce16e78fea9f1c73d978d66a337) Signed-off-by: California Sullivan <california.l.sullivan@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake.conf: Add COMPONENTS_DIR for ${STAGING_DIR}-componentsPeter Kjellerstedt2017-05-111-1/+1
| | | | | | | | | | The path to where to install and find the sysroot components is used in many places. This warrants it to get its own variable. (From OE-Core rev: 70a84b525470f72339568409daf84845904e4cab) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: Avoid touch sstates when cleaning linux-yocto environmentJose Perez Carranza2017-04-291-1/+1
| | | | | | | | | | | | | | | sstates are cleaned when ruining test_devtool_virtual_kernel_modify to have a clean environment but this is affecting eSDK test that are dependent of those sstates, hence “cleansstate” is replaced for “clean”. [YOCTO #11300] (From OE-Core rev: 182fdb97ed6c11c7b55fdb99773da6f72c9828b3) Signed-off-by: Jose Perez Carranza <jose.perez.carranza@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest/bbtests: improve download rename testRoss Burton2017-04-291-3/+4
| | | | | | | | | | | This test was assuming the format of SRC_URI so broke when SRC_URI was changed. Fix the test by hardcoding a complete SRC_URI instead of appending and hoping for the best. (From OE-Core rev: afe1d3073a435ef6c838cc676748842af4c4af83) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/core/runner: Append PID in the test result folder nameLeonardo Sandoval2017-04-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It was found a case (see the bugzilla entry) where two runners were running at the same second, creating identical test result folders, so one of them (the second runner) was not able to create the folder because the other has already created it, raising the following exception (many text was removed from log) NOTE: Executing RunQueue Tasks NOTE: Running task 1 of 2 (/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-mips/build/meta/recipes-core/images/core-image-minimal.bb:do_testsdkext) NOTE: Running task 2 of 2 (/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-mips/build/meta/recipes-sato/images/core-image-sato.bb:do_testsdkext) NOTE: recipe core-image-sato-1.0-r0: task do_testsdkext: Started NOTE: recipe core-image-minimal-1.0-r0: task do_testsdkext: Started . . The stack trace of python calls that resulted in this exception/failure was: File: 'exec_python_func() autogenerated', lineno: 2, function: <module> 0001: *** 0002:do_testsdkext(d) 0003: File: '/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-mips/build/meta/classes/testsdk.bbclass', lineno: 188, function: do_testsdkext 0184: 0185:testsdkext_main[vardepsexclude] =+ "BB_ORIGENV" 0186: 0187:python do_testsdkext() { *** 0188: testsdkext_main(d) 0189:} 0190:addtask testsdkext 0191:do_testsdkext[nostamp] = "1" 0192: File: '/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-mips/build/meta/classes/testsdk.bbclass', lineno: 171, function: testsdkext_main 0167: except Exception as e: 0168: import traceback 0169: bb.fatal("Loading tests failed:\n%s" % traceback.format_exc()) 0170: *** 0171: result = tc.runTests() . . File: '/usr/lib64/python3.5/os.py', lineno: 241, function: makedirs 0237: cdir = bytes(curdir, 'ASCII') 0238: if tail == cdir: # xxx/newdir/. exists if xxx/newdir exists 0239: return 0240: try: *** 0241: mkdir(name, mode) 0242: except OSError: 0243: # Cannot rely on checking for EEXIST, since the operating system 0244: # could give priority to other errors like EACCES or EROFS 0245: if not exist_ok or not path.isdir(name): Exception: FileExistsError: [Errno 17] File exists: '/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-mips/build/build/TestResults_20170409130114' [YOCTO #11318] (From OE-Core rev: 10aa09d39c1b70ce2a88f59601f1f8dbc96ed817) Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest/wic.py: vda -> sdaRobert Yang2017-04-121-3/+3
| | | | | | | | | | | | Previously, runqemu grep root=/dev/sd or root=/dev/hd on the image, and would use vda if no grep result, now we have set QB_DRIVE_TYPE to "/dev/sd" by default, and the device will be /dev/sda, so use sda to replace vda in the test case. (From OE-Core rev: a722016df3f452f7a870157a99a1abb7d97d8280) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe-selftest: test wic sparse_copy APIEd Bartosh2017-04-121-0/+29
| | | | | | | | | | | | | Added new parameter 'api' to sparse_copy function to specify underlying filemap API to use. By default sparse_copy will try both available APIs. Added test case for sparse_copy to wic test suite. (From OE-Core rev: 88701cef6ba399e82f96ed1b0eef9a44ed8c1687) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/sdk/cases/buildcpio: enable use of cached cpio from DL_DIRJoshua Lock2017-04-111-1/+1
| | | | | | | | | | | | | | All build project test cases will try to copy the requested source artefacts from DL_DIR before fetching. This testcase is referencing bzipped tarball whereas the recipe fetches a gzipped tarball. Switch to fetching the gzipped tarball in the test case so that we're able to use a cached tarball from DL_DIR (From OE-Core rev: 27a5883e8ae01e69f5425efe8b035bea7087b2f9) Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* scripts: Drop cleanup-workdirRichard Purdie2017-04-101-27/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This script appears broken and is actively breaking build directories. For example, binutils-cross-i586 gets run do_fetch to do_populate_sysroot by: $ oe-selftest -r devtool.DevtoolTests.test_devtool_virtual_kernel_modify then: $ oe-selftest -r oescripts.BuildhistoryDiffTests.test_buildhistory_diff wipes out the contents of tmp/work/x86_64-linux/binutils-cross-i586/2.28-r0/ but does not wipe out the corresponding stamps, then: $ oe-selftest -r runtime-test.Postinst.test_postinst_rootfs_and_boot needs binutils-cross-i586:do_populate_lic and if and only if this is unavailable from sstate, it fails since it thinks the source is already unpacked when it isn't resulting in: WARNING: binutils-cross-i586-2.28-r0 do_populate_lic: Could not copy license file /home/pokybuild/yocto-autobuilder/yocto-worker/nigh tly-oe-selftest/build/build/tmp/work/x86_64-linux/binutils-cross-i586/2.28-r0/git/COPYING3.LIB to /home/pokybuild/yocto-autobuilder/yocto -worker/nightly-oe-selftest/build/build/tmp/work/x86_64-linux/binutils-cross-i586/2.28-r0/license-destdir/binutils-cross-i586/COPYING3.LI B: [Errno 2] No such file or directory: '/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/x86_64-l inux/binutils-cross-i586/2.28-r0/git/COPYING3.LIB' ERROR: binutils-cross-i586-2.28-r0 do_populate_lic: QA Issue: binutils-cross-i586: LIC_FILES_CHKSUM points to an invalid file: /home/ pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/x86_64-linux/binutils-cross-i586/2.28-r0/git/COPYING3 [license-checksum] and similar errors. Its safer for users to wipe tmp than try and maintain scripts which try to remove pieces of tmp and get it wrong so remove the script. (From OE-Core rev: 809b23c829f352c0eae455ea89f53e2a9ee87f06) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/selftest: Don't use cleanup-workdirRichard Purdie2017-04-102-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cleanup-workdir isn't a partcularly good way to attempt to cleanup after tests and in some cases is actively breaking the workdir. Whilst this is a bug in cleanup-workdir, I'd prefer it didn't break tests, particularly when as far as I can see, these calls are "belt and braces" and don't appear to serve a specific purpose. If this introduces bugs, we should fix this bugs. For the purposes of history, binutils-cross-i586 gets run do_fetch to do_populate_sysroot by: $ oe-selftest -r devtool.DevtoolTests.test_devtool_virtual_kernel_modify then: $ oe-selftest -r oescripts.BuildhistoryDiffTests.test_buildhistory_diff wipes out the contents of tmp/work/x86_64-linux/binutils-cross-i586/2.28-r0/ but does not wipe out the corresponding stamps, then: $ oe-selftest -r runtime-test.Postinst.test_postinst_rootfs_and_boot needs binutils-cross-i586:do_populate_lic and if and only if this is unavailable from sstate, it fails since it thinks the source is already unpacked when it isn't resulting in: WARNING: binutils-cross-i586-2.28-r0 do_populate_lic: Could not copy license file /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/x86_64-linux/binutils-cross-i586/2.28-r0/git/COPYING3.LIB to /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/x86_64-linux/binutils-cross-i586/2.28-r0/license-destdir/binutils-cross-i586/COPYING3.LIB: [Errno 2] No such file or directory: '/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/x86_64-linux/binutils-cross-i586/2.28-r0/git/COPYING3.LIB' ERROR: binutils-cross-i586-2.28-r0 do_populate_lic: QA Issue: binutils-cross-i586: LIC_FILES_CHKSUM points to an invalid file: /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/x86_64-linux/binutils-cross-i586/2.28-r0/git/COPYING3 [license-checksum] and similar errors. (From OE-Core rev: a66857096df3f68d38271b3a6792150f009a54b1) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest/sstatetests: Replace glibc-initial with linux-libc-headersRichard Purdie2017-04-101-15/+5
| | | | | | | | | | | | The intent in these tests was to find something early in the bootstrap process to run tests against which didn't require long build times. This breaks with the removal of the glibc-initial do_build target. Replacing it with linux-libc-headers seems like a good choice and simplifies the conditionals too. (From OE-Core rev: c37d610272f9d0a506334ff9f724c025acace137) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest/recipetool: skip create_git in case x11 feature is not presentLeonardo Sandoval2017-04-101-0/+2
| | | | | | | | | | | | The unit test requires x11 as distro feature, otherwise it will fail while building the test requirements. [YOCTO #10903] (From OE-Core rev: 2fe8f39b5f5e7390cc46f8cb47c2503b3c5f78e2) Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest/wic: skip wic unit tests in case NLS is disableLeonardo Sandoval2017-04-101-1/+4
| | | | | | | | | | | | | | | | | | | | WIC test case requires wic-tools which in turn depends on intltool-native and gettext-native. However, if NLS is disable, the gettext-minimal-native is used instead of gettext-native causing a failure on intltool-native as seen below: checking for msgfmt... no checking for gmsgfmt... no configure: error: GNU gettext tools not found; required for intltool ERROR: Function failed: do_configure (log file is located at /home/lsandov1/poky/build/tmp/work/i586-poky-linux-musl/systemd-boot/232-r0/temp/log.do_configure.7518) ERROR: Task (/home/lsandov1/poky/meta/recipes-bsp/systemd-boot/systemd-boot_232.bb:do_configure) failed with exit code '1' NOTE: Tasks Summary: Attempted 609 tasks of which 604 didn't need to be rerun and 1 failed. [YOCTO #10902] (From OE-Core rev: ccd2faca99331e010badbb78d42b0ee644ca1a0a) Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/runtime/utils/targetbuildproject: use parent classes defaults tmpdirJoshua Lock2017-04-061-2/+1
| | | | | | | | | | Rather than hard-coding the tmpdir for TargetBuildProject to /tmp allow the parent's default handling to define an appropriate tmpdir. (From OE-Core rev: 901659a51cd53625a93f57a9c5865e90a07ec09d) Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/utils/targetbuild: tmp dir improvementsJoshua Lock2017-04-061-3/+7
| | | | | | | | | | Don't hard-code /tmp as the tmpdir, instead use WORKDIR as the tmpdir if the instantiater doesn't specify a value. (From OE-Core rev: c43c966e0ed4ed836bdf90b1d4c3f2f45426f1ec) Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/utils/buildproject: create a more unique tmp dirJoshua Lock2017-04-061-2/+5
| | | | | | | | | | Rather than hardcoding /tmp as the default tmpdir make a more unique tmpdir with tempfile.mkdtemp() when the caller doesn't specify a tmpdir value. (From OE-Core rev: 9425c2658fea0b45468a04574cd77bffc6668a8d) Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest/devtool: skip test in case of poky-tiny distroLeonardo Sandoval2017-04-051-0/+2
| | | | | | | | | | | | | | The recipe being tested (devtoo-test-patch-gz) by devtool has dependencies (at least libxres and virtual/libx11) that cannot be built with poky-tiny distro so skip the test for this particular policy. [YOCTO #10891] (From OE-Core rev: 03751783cb063bc6a57cd19357bc1016bfa2a814) Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest/recipetool: replace fedorahosted.org SRC_URI with github.com sourceChoong YinThong2017-04-051-4/+4
| | | | | | | | | | | | | fedorahosted.org was retired on March 1st, 2017. This is to update the SRC_URI to point to github.com. [YOCTO #11226] (From OE-Core rev: 9b3c9193d4a04061e64e43d55782a4d73ee166ad) Signed-off-by: Choong YinThong <yin.thong.choong@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* runtime/dnf : Add ID to the dnf test casesJose Perez Carranza2017-04-051-0/+12
| | | | | | | | | Add the corresponding Testopia ID to the test cases for dnf (From OE-Core rev: 434b48566f2febcc5bd5d6cd9c04788f008ffce1) Signed-off-by: Jose Perez Carranza <jose.perez.carranza@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest/devtool: use kernel provider instead of recipe allowing other ↵Leonardo Sandoval2017-04-051-11/+12
| | | | | | | | | | | | kernel providers To generalize the unit test for other kernel providers, use virtual/kernel instead of linux-yocto, allowing to run the selftest on non-poky distros, i.e. poky-tiny. (From OE-Core rev: 087e1204fb27e2952f16c2e4761f5993b7722732) Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest/commands: extend variable regex to include A_B variable notationLeonardo Sandoval2017-04-051-1/+1
| | | | | | | | | | This change allows quering for variables with the format A_B, i.e. PREFERRED_PROVIDER_virtual/kernel instead of just A. (From OE-Core rev: 3810738eff6bdcf27c7e291dbeaedc699ab14bfc) Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest/pkgdata: replace the glibc recipe allowing execution on non-poky ↵Leonardo Sandoval2017-04-011-15/+13
| | | | | | | | | | | | | | | distros Replace the glibc recipe for zlib on unit tests, otherwise tests are restricted to glibc distros (poky). [YOCTO #10890] (From OE-Core rev: b77cf437e89a2ec21de6a69d5e34736925f1eeba) Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: remove prepare_empty_partition_squashfsEd Bartosh2017-04-011-2/+1
| | | | | | | | | | | | | | | | | | | | There is not much sense in creation of empty squashfs partition. It's also not possible to create empty squashfs partition of specified size. Even more, prepare_empty_partition_squashfs method is absolutely broken. It raises exception when called and even its signature differs from the rest of of similar methods. It means that nobody uses it and it's safe to remove it. Removed prepare_empty_partition_squashfs method and testing of empty squashfs partition. (From OE-Core rev: 9152960f250cb4df1e559d747fb09005675a0d75) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe-selftest: test creation of msdos partitionEd Bartosh2017-04-011-0/+1
| | | | | | | | | | | | Added msdos partition to the .wks file in test_fs_types wic test case. [YOCTO #11137] (From OE-Core rev: 044dd146d39542d0e6b598ee1dcadc49e0db3de9) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe-selftest: fix incorrect fstypeEd Bartosh2017-04-011-1/+1
| | | | | | | | | Fixed typo in wks content: squash->squashfs (From OE-Core rev: cf06e6763d06e3e631bed85e2cb087f713808e6d) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe-selftest: add test_image_bootpart_globbed test for wicEd Bartosh2017-04-011-0/+10
| | | | | | | | | | | | Test image-bootpart wic plugin with globbed value of IMAGE_BOOT_FILES variable to increase test coverage. [YOCTO #10618] (From OE-Core rev: 4da2526800de1d40b51db96b0d5ab44dbaff68ff) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe-selftest: add kickstart_parser test caseEd Bartosh2017-04-011-0/+12
| | | | | | | | | | | | Added test_kickstart_parser test case to test wks parser options not yet covered by tests. [YOCTO #10618] (From OE-Core rev: 36779a95f2e1e2c0d94ba81d30c8b1fc9dd161e4) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe-selftest: add wic test case test_fs_typesEd Bartosh2017-04-011-0/+19
| | | | | | | | | | | | Added wic test case to test all possible filesystem types for empty and not empty partitions. [YOCTO #10618] (From OE-Core rev: 95ec9e6b987706fac9bd410681f0950f957989bb) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/runtime/cases: Migrate underscore casesMariano Lopez2017-04-012-82/+59
| | | | | | | | | | | | | | | | | There were two missing cases to be migrated to the new framework: _qemutiny and _ptest. qemutiny was straightforward. ptest on the other hand wasn't working even in previous releases; it has been migrated from smart to dnf, and how ptest packages are gathered to be installed, adapted to use unicode, and removed a lot of code that wasn't needed anymore. (From OE-Core rev: ee7c19546b686e852d01df25143504d9798d10d6) Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa: allow persistent image writes in runqemu()Patrick Ohly2017-03-284-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | By default, QemuRunner avoids modifying the image files that it boots into by enabling the qemu snapshot mode. However, some tests may want to test changes that must persists across reboots, so this mode should be optional. This can be combined by copying the image file to a temporary location first and then booting with that copy. It's also useful when testing with additional drives attached to a virtual machine. QemuTinyRunner doesn't use the snapshot parameter and therefore ignores the new parameter. Long term, a better way of passing these various configuration parameters should be used, and perhaps QemuRunner and QemuTinyRunner can be merged into one again to avoid code duplication. But for now the patch follows the exiting style. Also beware that QemuTarget.start() now acts in two different modes (with or without explicit launch command), and depending on that mode parameters like discard_writes must be ignored, i.e. not get passed to launch(). (From OE-Core rev: 969d079a33a57f5a8f7af86d7bab04d35ab07584) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa: allow customizing image used by runqemu()Patrick Ohly2017-03-281-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | runqemu() takes all parameters for the virtual machine from the variables of the given recipe. By allowing the caller to provide a hash with variables that get applied locally, the caller gets more control. Here's the intended usage: <prepare internal-image in self.resultdir> overrides = { 'DEPLOY_DIR_IMAGE': self.resultdir, 'IMAGE_LINK_NAME': 'internal-image-%s' % self.image_arch, } with runqemu('refkit-installer-image', ssh=False, overrides=overrides) as qemu: .... This can be used to replace the image completely with something else or to copy it before allowing runqemu() to write into it. (From OE-Core rev: 4c6ba32abd6b9de33f4b8a0b87e8a56432ed7825) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa: allow extending qemuparams="..."Patrick Ohly2017-03-281-2/+2
| | | | | | | | | | | | | | | Sometimes it is useful to reconfigure the qemu virtual machine directly. runqemu has the "qemuparams" parameter for that, and the underlying start() methods also supported modifying that via their "params" parameter. Only the runqemu() wrapper function lacked a way to specify additional parameters. One potential usage is to attach additional disks. (From OE-Core rev: b2a1cf09ea65ed6f561886b1b4241f9adf3e5709) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa: QEMU_USE_KVM can list machinesPatrick Ohly2017-03-281-3/+4
| | | | | | | | | | | | | | | | Previously, QEMU_USE_KVM=True enabled the use of kvm only when "x86" was in the MACHINE name. That is too limiting, because for example intel-corei7-64 can also use kvm but it wasn't possible to enable that without changing OE-core. That traditional usage is still supported. In addition, QEMU_USE_KVM can be set to a list of space-separated MACHINE names for which kvm is to be enabled. (From OE-Core rev: d5421dd00b9cf785fa77e77c6c739e8bd8822fa3) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa: tolerate interrupted select() while waiting for qemuPatrick Ohly2017-03-282-3/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sometimes, the OEQA utility code aborts with: ... File ".../meta/lib/oeqa/utils/qemurunner.py", line 131, in start return self.launch(launch_cmd, qemuparams=qemuparams, get_ip=get_ip, extra_bootparams=extra_bootparams) File ".../meta/lib/oeqa/utils/qemurunner.py", line 259, in launch sread, swrite, serror = select.select(socklist, [], [], 5) InterruptedError: [Errno 4] Interrupted system call strace shows that this is because of a SIGWINCH: Connection from 127.0.0.1:52668 select(21, [20], [], [], {5, 0}) = ? ERESTARTNOHAND (To be restarted if no handler) --- SIGWINCH {si_signo=SIGWINCH, si_code=SI_KERNEL} --- This is related to some special conditions: * whether qemu opens a graphical console window (enabled in Poky by default) * where that window gets opened * whether the window manager changes the size of the shell window (mine is a tiling window manager and reorders and resizes windows automatically) Ignoring the interrupted system calls avoids the problem. Code elsewhere (for example, run() in ssh.py) already does the same thing. (From OE-Core rev: 44fe106baf5fd5aebe26c5f28004e2b18d839b7c) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/core/loader.py: Do not import underscore modules by defaultMariano Lopez2017-03-281-4/+30
| | | | | | | | | | | | | | | | Underscore modules are meant to be run only when manually added to the test suite, so far another mechanisms are in place to make this happen with runtime, sdk, and esdk (mostly in test* bbclasses). This will add such functionality in the core framework so other specific frameworks can take use this without adding something else. [YOCTO #10980] (From OE-Core rev: 2c6eac774768aa610a8b3784483b9e90fb629c2d) Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/selftest: don't use cleanall in selftestsJoshua Lock2017-03-273-8/+2
| | | | | | | | | | | | | | | | | | | | * devtool: oeqa.selftest.devtool.DevtoolTests is taking 4 or more hours on the autobuilder because the cleanall call deletes the tarball of the kernel source, forcing a large clone which is especially long on an NFS mount. The cleanall invocation isn't really required here and switching to clean instead should avoid hours of re-cloning the same repository each time we run oe-selftest on the autobuilder. * buildoptions: We only need to ensure the first image isn't an incremental image, clean will suffice here. * runtime-test: no need to clean up the artefacts generated during the test, let's leave that to a higher level process rather than using the cleanall hammer. (From OE-Core rev: 9c948d3de08f158387e08a17cdc0cedc7d26bb54) Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* runtime-test.py: fix typoRobert Yang2017-03-271-2/+2
| | | | | | | | | roofs -> rootfs. (From OE-Core rev: 73b386c16b2388b5b351305bf1855c444d53481e) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa.buildperf: limit the length of error outputMarkus Lehtonen2017-03-271-1/+1
| | | | | | | | | | Limit the length of error logs to 40 lines. We don't need to show/archive thousands of lines of bitbake logs if an error occurs. (From OE-Core rev: 3f1996cb016713295edf35edc32dd5e84888a5c7) Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa.utils.commands: limit runCmd exception outputMarkus Lehtonen2017-03-271-3/+10
| | | | | | | | | | | | Make it possible to limit the length of output lines shown in runCmd exceptions. E.g when running bitbake we easily get thousands of lines of log output, where only the last few (tens) are interesting or relevant when an error occurs. (From OE-Core rev: 403dd205828002d6ef4e8b474aedb6082289e22f) Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe-build-perf-test: sum rusage in buildstatsMarkus Lehtonen2017-03-271-12/+12
| | | | | | | | | | | | | | | Instead of separate rusage and child rusage values, only store their sum value in buildstats. This is a big reduction in data footprint without really losing any interesting data. Also, utilize OrderedDict to order data more logically. [YOCTO #10582] (From OE-Core rev: 70c41bb721c00ed2abbb88d273eebc3a8bb01f5d) Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe-build-perf-test: pack all buildstat in one fileMarkus Lehtonen2017-03-272-31/+35
| | | | | | | | | | | | | | | | Write out all buildstats into one big json file, instead of using multiple per-measurement files. Individual buildstats will be indexed using "<test_name>.<measurement_name>" as the key. Also, changes the per-testcase working directories into temporary directories that will be removed after test execution as there are no more per-testcase data files to store permanently. [YOCTO #10582] (From OE-Core rev: a7f2e8915db379021f3409ca640de5d3b054a830) Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* targetcontrol.py: use logger.info to replace of bb.noteRobert Yang2017-03-272-6/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The bb.note prints multiple same lines when invoke this class again, but if we set mainlogger.propagate = False, nothing would be printed, according to logging's document: https://docs.python.org/3/library/logging.html Note If you attach a handler to a logger and one or more of its ancestors, it may emit the same record multiple times. In general, you should not need to attach a handler to more than one logger - if you just attach it to the appropriate logger which is highest in the logger hierarchy, then it will see all events logged by all descendant loggers, provided that their propagate setting is left set to True. A common scenario is to attach handlers only to the root logger, and to let propagation take care of the rest. We may need avoid using bb.note or bb.warn in oeqa since it attaches multiple log handlers which may cause confusions This patch only sets "mainlogger.propagate = False" in selftest/runqemu.py and use logger.info to replace bb.note in targetcontrol.py to minimize the impact. [YOCTO #10249] (From OE-Core rev: b139790422bc8e0d80bad063bb78bc1632731bc1) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest/runqemu.py: add it to test runqemuRobert Yang2017-03-271-0/+136
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Usage: $ oe-selftest -r runqemu Current test cases: $ runqemu nographic qemux86-64 $ runqemu nographic qemux86-64 ext4 $ runqemu nographic qemux86-64 iso $ runqemu nographic core-image-minimal $ runqemu nographic core-image-minimal vmdk $ runqemu nographic core-image-minimal vdi $ runqemu nographic tmp/deploy/images/qemux86-64 $ runqemu nographic tmp/deploy/images/qemux86-64 hddimg $ runqemu nographic qemux86-64 slirp $ runqemu nographic qemux86-64 slirp qcow2 $ runqemu nographic tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.qemuboot.conf $ runqemu nographic tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.ext4 Need more later: - Test initramfs - Test nfs - Test when set DEPLOY_DIR_IMAGE and OECORE_NATIVE_SYSROOT - And others which similate runqemu runs on SDK and eSDK. [YOCTO #10249] (From OE-Core rev: e7073cb4786411bb71645e7d7cbc1c510910c4cc) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>