Commit Graph

2750 Commits

Author SHA1 Message Date
Paul Barker
9efd66ad10 selftest: Add argument to keep build dir
The oe-selftest code already keeps the selftest build directory in place
if any tests failed. By default the build directory is deleted if all
tests pass but there may be cases where it's desirable to keep this
directory around, for example to compare intermediate files between
passing and failing test runs.

(From OE-Core rev: 67aa7069dbe8f5f5f186eb67708ece5c4bd42976)

Signed-off-by: Paul Barker <pbarker@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-01-08 10:10:15 +00:00
Milan Shah
bdae907d77 oe-pkgdata-util: Added a test to verify oe-pkgdata-util without parameters
A test is implemented on poky/meta/lib/oeqa/selftest/pkgdata.py to test
the scenario when oe-pkgdata-util is executed without parameters and
help is displayed.

See [YOCTO #10726] for detailed bug information.

(From OE-Core rev: 6b4e2eafa6eb71ca94ccc8a18d05b473b352367c)

Signed-off-by: Milan Shah <mshah@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-01-05 13:48:41 +00:00
Teoh Jay Shen
372136468a oeqa/suspend : add test for suspend state
This test case is checking the command and LAN device behaviour before and after suspend state. The Test_if_LAN_device_works_well_after_resume_from_suspend_state and standby manual test cases from oeqa/manual/bsp-hw can be replace by this runtime test.

(From OE-Core rev: 10728035a606483ea67f6cb8ba5779558856593a)

Signed-off-by: Teoh Jay Shen <jay.shen.teoh@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-31 11:56:41 +00:00
Alexander Kanavin
95c76b9bd4 ccache.bbclass: use ccache from host distribution
ccache 4.x has hard dependencies on cmake-native (used as
build system) and zstd, which means inserting ccache-native
as DEPENDS into everything creates circular dependencies which
are impossible to break.

ccache 3.x did not have this problem as it used plain makefiles
and an in-tree copy of zlib.

(From OE-Core rev: f5b29367af4d8e5daea5771264774aa49519f9a8)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-31 11:53:26 +00:00
Richard Purdie
e4b1b01f5a selftest/reproducible: Add useradd-staticids to reproducible builds tests
Its surprising we've made it this far without this, add in some specific
uid/gid settings to ensure these don't cause false positives to the tests.

(From OE-Core rev: 77397bace64dfd03e704400fea918d93f00d0bf7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-30 14:01:07 +00:00
Trevor Woerner
50734c7f71 selftest-chown: add test for fifos
Verify that fifos are properly handled by the build system.

(From OE-Core rev: 53988b6389ce618d4cff52bd09ae91108beca354)

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-30 14:01:07 +00:00
Steve Sakoman
10955631b0 oeqa/selftest/cases/devtool.py: fix typo in ignore_patterns call
Causes intermittent autobuilder errors:

2020-12-21 19:34:23,035 - oe-selftest - INFO - testtools.testresult.real._StringException: Traceback (most recent call last):
  File "/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/meta/lib/oeqa/selftest/cases/devtool.py", line 68, in setUpModule
    bb.utils.edit_bblayers_conf(bblayers_conf, None, None, bblayers_edit_cb)
  File "/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/bitbake/lib/bb/utils.py", line 1460, in edit_bblayers_conf
    (updated, newlines) = edit_metadata(newlines, ['BBLAYERS'], handle_bblayers)
  File "/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/bitbake/lib/bb/utils.py", line 1290, in edit_metadata
    if handle_var_end():
  File "/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/bitbake/lib/bb/utils.py", line 1215, in handle_var_end
    (newvalue, newop, indent, minbreak) = varfunc(in_var, full_value, op, newlines)
  File "/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/bitbake/lib/bb/utils.py", line 1425, in handle_bblayers
    res = edit_cb(layer, canonicalise_path(layer))
  File "/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/meta/lib/oeqa/selftest/cases/devtool.py", line 60, in bblayers_edit_cb
    shutil.copytree(pth, destdir, ignore=ignore_patterns('*.pyc', '__pycache__'))
NameError: name 'ignore_patterns' is not defined

(From OE-Core rev: c2d9612279fce9cbcb738913b2042949f692c4a5)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-24 08:25:14 +00:00
Teoh Jay Shen
8a67c61279 oeqa/terminal : improve the test case
-Improve this test case to fulfill the requirements of replacing the click_terminal_icon_on_X_desktop manual test case from oeqa/manual/bsp-hw :
1) verify that the terminal window is working without problem
2) verify that there's only 1 terminal window is launched

(From OE-Core rev: 824713174fae0617240a236d1bbfd2929bf4b24f)

Signed-off-by: Teoh Jay Shen <jay.shen.teoh@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-21 22:29:57 +00:00
Richard Purdie
2724a7c935 oeqa/commands: Ensure sync can be found regardless of PATH
Avoid command not found errors shown in selftest logs due to changes to PATH
settings which also risks intermittent problems due to IO load.

(From OE-Core rev: 40bcae01b0be2f293dea9ab42c6b7f8f47827cf5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-21 22:29:57 +00:00
Ross Burton
949646a9e9 lib/oe/qa: handle the 'no specific instruction set' ELF e_machine value
[RP: Update OEQA selftest to match change]
(From OE-Core rev: b7cfc0f51cc0b4866f913f6eae4fcc6f72d2578c)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-20 00:03:05 +00:00
Paul Eggleton
87b38ee1c1 oe-selftest: fitimage: add test for signing FIT images
Add a new test to verify signing FIT images. Also includes testing for
the newly introduced FIT_SIGN_INDIVIDUAL, UBOOT_MKIMAGE,
UBOOT_MKIMAGE_SIGN, and UBOOT_MKIMAGE_SIGN_ARGS variables.

(From OE-Core rev: 3c054762278fd8c5dd827dbac15f4fa066e6c19e)

Signed-off-by: Paul Eggleton <paul.eggleton@microsoft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-20 00:03:04 +00:00
Paul Eggleton
b23d338176 oe-selftest: fitimage: Test for FIT_DESC
Add verification of FIT_DESC to the existing test for kernel-fitimage.

(From OE-Core rev: 1d75a67efe968f1d9161b64e2b7b2d3cf482c968)

Signed-off-by: Paul Eggleton <paul.eggleton@microsoft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-20 00:03:04 +00:00
Paul Eggleton
715591d952 oe-selftest: move FIT image tests to their own module
I'm about to add an additional test, and on the assumption that we might
also add more in future it seems reasonable to have the tests in their own
module.

(From OE-Core rev: 89f620cc142df9b4af6d49a13db96452ec838139)

Signed-off-by: Paul Eggleton <paul.eggleton@microsoft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-20 00:03:04 +00:00
Paul Barker
f50b230c27 bitbake.conf: Prevent pyc file generation in pseudo context
This also effectively reverts commit b6d30c21b0:
    bitbake.conf: Extend PSEUDO_IGNORE_PATHS to ${COREBASE}/meta

The contents of ${COREBASE}/meta were ignored as pyc files could be
generated for the contents of the lib subdirectory if python modules
were imported within a pseudo context. However this doesn't protect us
from pyc files being generated in the lib directories for other layers.
It's far better to tell python not to produce pyc files when running
under pseudo (by setting the PYTHONDONTWRITEBYTECODE variable) as this
will cover any location where pyc files could possibly be created. This
variable is set in FAKEROOTBASEENV so that it applies to the
bitbake-worker instance for fakeroot tasks, preventing pyc files from
being generated for imports in python tasks themselves.

Also add a test case to ensure that pyc files are not created in tasks
which are executed under pseudo.

(From OE-Core rev: 73d538f20743017a44cea4c20dbe09a0327cfc71)

Signed-off-by: Paul Barker <pbarker@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-20 00:03:04 +00:00
Peter Kjellerstedt
c37aed34af lib/oe/path: Add canonicalize()
oe.path.canonicalize() is used to canonicalize paths (i.e., remove
symbolic links and "..", and make them absolute). It takes a string
with paths separated by commas, and returns the canonicalized path in
the same format.

(From OE-Core rev: 282b19c0e27488ec119f00fb2542ffdc1af54e2a)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-20 00:03:04 +00:00
Diego Sueiro
75b74f6b8d wic: Introduce empty plugin to create unformatted empty partitions
The empty wic plugin is used to create unformatted empty partitions for wic
images.

To use it you must pass "empty" as argument for the "--source" parameter in
the wks file. For example:
    part foo --source empty --ondisk sda --size="1024" --align 1024

Also adds a selftest for this plugin where the 'Fstype' column from 'wic
ls' should be empty for the second partition as listed in
test_empty_plugin.wks.

(From OE-Core rev: 77d174fc80663403ef76c5b808aafc1117d3545c)

Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-15 22:51:56 +00:00
Alexander Kanavin
4864764667 selftest/reproducible: add an exclusion list for items that are not yet reproducible
Hopefully over time this list will be reduced to an empty one.

Non-reproducible excluded packages are not given to diffoscope and do not cause a
failure, but still saved side-by-side with non-reproducible failing ones to make
investigation easier.

(From OE-Core rev: 406bd0d48d8f90e2c836f7d3e204f21d5f13c833)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-15 22:51:55 +00:00
Alexander Kanavin
d9cf31579d selftest/reproducible: enable world reproducibility test
Add systemd and pam distro features, and commercial license flag
to include more recipes into the world set.

(From OE-Core rev: ed8f94942c07784f9f6eef5c00b75aa9b398ea5e)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-15 22:51:55 +00:00
Alexander Kanavin
9b534f334d meta/lib/oe/reproducible.py: gitsm:// works just as fine as git:// for timestamps
This in particular addresses vulkan-samples reproducibility which made me scratch my
head for a while.

(From OE-Core rev: 4a2936126f12eeacecced051fa339c32c1f16576)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-09 12:20:33 +00:00
sangeeta jain
64a18762f0 meta/lib/oeqa/manual/oe-core.json: Update test_bitbake_devshell
Update command used for cross compilation to include ${CONFIGUREOPTS}
to ensure right arguments are passed for cross compiling on any host.

(From OE-Core rev: e995e67bc7a3d30adf9f8d0d2f4df92a941baeae)

Signed-off-by: sangeeta jain <sangeeta.jain@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-06 23:17:28 +00:00
Ross Burton
30ae4f13b5 oeqa/selftest/containerimage: update for improved cleanup
ldconfig/aux-cache isn't generated anymore, and the opkg directories
are correctly removed now.

(From OE-Core rev: 5bfe5dfeb0603f748e95378be150fc02d021666f)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-06 23:17:28 +00:00
Ross Burton
b603dc96b3 package_manager/ipk: improve remove_packaging_data
/var/cache/opkg wasn't being deleted, and /var/lib/opkg doesn't need
to exist as there are no lockfiles that write into it after this step.

(From OE-Core rev: 2209cef2cbe5fbdd5562f13f84ae2a3935f4fb61)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-06 23:17:28 +00:00
Ross Burton
13bc112474 package_manager/ipk: neaten OPKGLIBDIR logic
oe.path.join handles path components starting with / for us.

(From OE-Core rev: ff003e076511fdbe9a6e775e987726dae43e2003)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-03 22:53:09 +00:00
Ross Burton
89c09260ed oeqa/devtool: use Yocto mirror for pv-1.5.3 tarball
Some of the selftests failed over the weekend with "access denied" errors
fetching this tarball.  Instead of relying on upstream when fetching the
tarball, use the Yocto source mirrors instead.

(From OE-Core rev: 988e0ff4131f46dfed14516ff5f61d72b9fb6941)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-03 22:53:09 +00:00
Richard Purdie
3ecf5d9692 uninative: Don't use single sstate for pseudo-native
pseudo-native is a bit special. It conditionally compiles in support for
xattr, statx and statvfs amongst other options. If a pseudo-native binary is
used on a system where these functions are present but it wasn't compiled in
we see hard to debug permissions problems.

An example is the devtool.DevtoolExtractTests.test_devtool_deploy_target
oe-selftest which shows a cryptic error:

  File "/home/pokybuild/yocto-worker/oe-selftest-fedora/build/meta/lib/oeqa/selftest/cases/devtool.py", line 1388, in test_devtool_deploy_target
    self.assertEqual(filelist1, filelist2)
  File "/usr/lib64/python3.9/unittest/case.py", line 831, in assertEqual
    assertion_func(first, second, msg=msg)
  File "/usr/lib64/python3.9/unittest/case.py", line 1037, in assertListEqual
    self.assertSequenceEqual(list1, list2, msg, seq_type=list)
  File "/usr/lib64/python3.9/unittest/case.py", line 1019, in assertSequenceEqual
    self.fail(msg)
  File "/usr/lib64/python3.9/unittest/case.py", line 670, in fail
    raise self.failureException(msg)

AssertionError: Lists differ: ['-rwxr-xr-x 6000 6000 /etc/init.d/mdmonitor', '-rw-r-[10124 chars]n.8'] != ['-rwxr-xr-x root root /etc/init.d/mdmonitor', '-rw-r-[10124 chars]n.8']

First differing element 0:
'-rwxr-xr-x 6000 6000 /etc/init.d/mdmonitor'
'-rwxr-xr-x root root /etc/init.d/mdmonitor'

This is due to a version of pseudo without statx being used on a system where
ls uses statx, hence the files are displayed as 6000.6000 instead of root.root.

Avoid this by always building pseudo-native for the specific distro in question rather
than using a universal sstate feed.

This hopefully fixes one of the mysterious AB-INT issues.

(From OE-Core rev: 6e3785a3f1f3cf68f5fe101cd6bebe91db165973)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-11-24 15:53:07 +00:00
Fredrik Gustafsson
e51345b507 package management: Allow dynamic loading of PM
Dynamic loading of package managers will allow other layers to simply
add their package manager code in package_manager/ and have bitbake find
it according to the package manager configuration. This is useful for
adding new (faster) package managers to Open Embedded while not increasing the
test scope or require Open Embedded to support more package managers.

How this is tested:
* Build core-image-minimal with all three package managers
* Build the sdk with all three package managers. dpkg fails, but
  it fails on master as well.
* Run the complete test suite, all tests passed except 16
* Run those 16 tests on master and verify that they fail there as well
* Fix errors making tests works on master but not with this patch.

(From OE-Core rev: 02670501dea192879ddf9f8048eea57a94719fc1)

Signed-off-by: Fredrik Gustafsson <fredrigu@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-11-24 15:53:07 +00:00
Richard Purdie
28087bb119 oeqa/commands: Fix compatibility with python 3.9
Python 3.9 dropped isAlive() so use the preferred is_alive().

(From OE-Core rev: 9bb06428cbb2ac0f3d98a1696f050d3393385503)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-11-24 10:27:45 +00:00
Chris Laplante
ed794b740b cases/bbtests.py: ensure PACKAGE_CLASSES is set to RPM for bbtests.BitbakeTests.test_force_task_1
This is because the test expects to find "do_package_write_rpm" in the
bitbake output.

(From OE-Core rev: fbc75aa226e33c5ef5d3696b1c9c0f6652f23a98)

Signed-off-by: Chris Laplante <chris.laplante@agilent.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-11-24 10:27:45 +00:00
Alexander Kanavin
acfdab8daa meta: drop _PYTHON_SYSCONFIGDATA_NAME hacks
(From OE-Core rev: d3a81dd0e72a3495bfc7cc969c2bb806b666023d)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-11-16 14:27:46 +00:00
Yann Dirson
9c06fbbbee systemtap: split runtime material in its own package
Note the _class-target qualifier, here to prevent a funky dependency of
systemtap-native on systemtap-native-runtime-native.  This possibly hints
to something deeper ?

(From OE-Core rev: 440dc8bacf6e6307ae8617194b75504702011b16)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-11-13 14:32:00 +00:00
Konrad Weihmann
3c4147880e oeqa/core/context: initialize _run_end_time
with _run_start_time as value. For partial results of interrupted runs,
this info might be otherwise missing for at least one testcase

(From OE-Core rev: 1c5e8baf57fa2a33b9ef507b11d9ea9acaa77238)

Signed-off-by: Konrad Weihmann <kweihmann@outlook.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-11-11 10:08:12 +00:00
Konrad Weihmann
02be651f88 oeqa/core/context: expose results as variable
register an unittest handler for testresults and expose it as
variable result.
With this even partial results from an interrupted test suite run
can be made available

(From OE-Core rev: a97ae47525157871b6c098ffc352293e365a4335)

Signed-off-by: Konrad Weihmann <kweihmann@outlook.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-11-11 10:08:12 +00:00
Alexander Kanavin
21c1658945 wayland-utils: introduce a recipe
wayland-utils contains wayland-info utility which deprecates
and replaces weston-info from weston.

(From OE-Core rev: bb8fa9950e716fdcee818a38dc4df3a19b1f3c2f)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-11-11 10:08:12 +00:00
Alexander Kanavin
a839c9ba88 weston-init: correctly start under systemd
Several issues are addressed:
1. weston requires pam when starting under systemd
2. systemd was attempting to launch weston twice (from
sysvinit script and from systemd unit file) which caused confusion
and errors.
3. runtime test should stop/start weston via systemd only if systemd
actually controls system startup, not merely when systemd is present.

(From OE-Core rev: 72dd74c5d384dbe641cc7c02ecf766ff8d5f555f)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-11-11 10:08:12 +00:00
Richard Purdie
235101a662 sstatesig: Remove workaround for bitbake taskhash bug
When trying to lock an individual signature, we see the checksum calculations
of dependent tasks failing. The fix is to remove a bad optimisation within
bitbake but with the removed, we need to remove some bogus code with
OE-Core's sstatesig code too.

(From OE-Core rev: 9923392539b1ce6d70f713527373d6bbc03f3021)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-11-03 08:21:10 +00:00
Richard Leitner
7a9019a8ec deb: export INTERCEPT_DIR for remove actions
During the do_populate_sdk task apt-get purge is called by deb's remove
function. This fails with error messages similiar to the following one
if any of the included packages uses intercepts as the INTERCEPT_DIR
isn't exported:

.../*.postinst: line 4: /postinst_intercept: No such file or directory

Therefore fix it by exporting the INTERCEPT_DIR variable within the
remove function.

(From OE-Core rev: f18adf53dd4bf5dd3adef82b2dcc34a6cdfd0c89)

Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-10-31 08:54:12 +00:00
Richard Purdie
98df63020d scripts/buildhistory_analysis: Avoid tracebacks from file comparision code
We're seeing tracebacks from buildhistory analysing the python 3.8 -> 3.9
upgrade due to the significant file renames. Avoid these by checking before
removal as they can happen multiple times.

(From OE-Core rev: b1eb390bbcb995c0da70478e17f9170721c75341)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-10-30 13:04:39 +00:00
Richard Leitner
6fd014b7c4 deb: replace deprecated apt force-yes argument
apt-get deprecated --force-yes in favor of various options starting with
--allow [1]. Replace it to avoid the following warning:

W: --force-yes is deprecated, use one of the options starting with --allow instead.

[1] https://salsa.debian.org/apt-team/apt/-/blob/master/debian/changelog

(From OE-Core rev: 4af737e2643f498d1ff4c387207bd8c4f3d405b8)

Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-10-30 13:04:39 +00:00
Richard Purdie
cc840dfc9d sstatesig: Log timestamps for hashequiv in reprodubile builds for do_package
Currently if a task generates the same output with different timestamps,
hasequiv won't detect it but reproducibile builds will fail tests due
to the different timestamps.

Add do_package timestamps to the hash when reproducibile builds are enabled
to avoid this.

(From OE-Core rev: 11e8200ccec765ff6a4263e06512e5751eca261a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-10-30 13:04:39 +00:00
Khairul Rohaizzat Jamaluddin
fe15f9983b imagefeatures: New test case, test_empty_image, added
An empty image build file exists under the meta-selftest folder, test-empty-image.bb,
which builds an image with no additional packages. However, there were no further
selftest created to verify its emptiness

This change consists of the selftest related to the said image to verify its
emptiness and the 'import glob' moved as global import instead of local import.

The expected outcome of the test should be TRUE or 1 if the .manifest file content
is empty.

[YOCTO #8455]

(From OE-Core rev: 1f8bdaa746c6e7efc07789256d5c050780c81f4c)

Signed-off-by: Khairul Rohaizzat Jamaluddin <khairul.rohaizzat.jamaluddin@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-10-26 22:08:36 +00:00
Richard Purdie
dfc54a477b oeqa: Add sync call to command execution
We previously put a sync call into devtool to try and combat the bitbake
timeout issues on the autobuilder. It isn't enough as the timeouts occur
mid test. They are also occurring on non-devtool tests.

Add in sync calls around command execution instead.

(From OE-Core rev: ceca5ed121e2b54415a7ab3a217882e4ea86923a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-10-20 11:11:46 +01:00
Konrad Weihmann
7048d3d1f0 lib/oe/rootfs: introduce IMAGE_LOG_CHECK_EXCLUDES
When using rpm as package manager and trying to install a file called
'/usr/share/doc/What to when an Error occurs.txt'
log_check falsely errors out on the build, because used regex match on
'DEBUG:  Removing manifest: /path/usr/share/doc/What
to when an Error occurs.txt'.
To handle such cases introduce IMAGE_LOG_CHECK_EXCLUDES, to allow
user to add custom exclude regex to log_check exclude list

(From OE-Core rev: 7c7555a79b8bdef0a8d7fbd57e9ddf059066de76)

Signed-off-by: Konrad Weihmann <kweihmann@outlook.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-10-20 11:11:46 +01:00
Michael Thalmeier
acc22a2753 IMAGE_LOCALES_ARCHIVE: add option to prevent locale archive creation
Under some circumstances it is not desirable to create a combined locale
archive (/usr/lib/locale/locale-archive).
The new variable IMAGE_LOCALES_ARCHIVE defaults to '1', so the default
behaviour is not changed.

(From OE-Core rev: 8d78b819c2ec33fce3a34254fa90864ee5fa7617)

Signed-off-by: Michael Thalmeier <michael.thalmeier@hale.at>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-10-13 09:42:08 +01:00
Richard Purdie
aa7a09569a oeqa/selftest/runtime_test: Exclude gpg directory from pseudo database
Avoid pseudo abort()s like:
path mismatch [1 link]: ino 6295376 db '/tmp/oeqa-feed-sign-2mw7z81v/S.gpg-agent.yocto-native' req '/tmp/jwkivmu6'.

(From OE-Core rev: 189630ca6cdf7ceb6cf9b8f9d86c58997f505efc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-10-10 23:37:59 +01:00
Yoann Congal
c46b3352aa bitbake-bblayers/create: Make the example recipe print its message
The example recipe is setup to print a message using bb.plain() in the
"do_build" task but this task is "noexec" so the message never prints.
This might be confusing.

This moves the message printing into another "do_display_banner" task
and add it to the do_build "before" list.

(From OE-Core rev: 252385bef9b226f32691b8513869ea3e41813b40)

Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-10-10 13:37:56 +01:00
Ross Burton
d6bc178f33 selftest: add test for recipes with patches in overrides
devtool doesn't quite behave right when a recipe has patches applied in overrides, so
add a test case to exercise that behaviour.

(From OE-Core rev: ad89c3254cc6c06026f1bebe23ec3717c1546633)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-10-08 08:08:32 +01:00
Ross Burton
961de02fd1 selftest: skip npm tests if nodejs-native isn't available
The tests are actually skipped if meta-oe isn't present which isn't
quite the same thing, but hopefully close enough.

(From OE-Core rev: d22ed015d8f38241acb783e1a468fb15d4317670)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-10-08 08:08:32 +01:00
Richard Purdie
a2db4fa127 base/bitbake.conf: Enable pseudo path filtering
This is a pretty big change to the way pseudo operates when used in OpenEmbedded.
Normally, pseudo monitors and logs (adds to its database) any file created or
modified whilst in a fakeroot environment. There are large numbers of files
we simply don't care about the permissions of whilst in that fakeroot context,
for example ${S}, ${B}, ${T}, ${SSTATE_DIR}, the central sstate control
directories,

This change uses new functionality in pseudo to ignore these directory trees,
resulting in a cleaner database with less chance of "stray" mismatches if files
are modified outside pseudo context. It also should reduce some overhead from
pseudo as the interprocess round trip to the server is avoided.

There is a possible complication where some existing recipe may break, for
example, we found a recipe which was writing to "${B}/install" for
"make install" in do_install and since we listed ${B} as not to be tracked,
there were errors trying to chown root for files in this location.

This patch fixes a few corner cases in OE-Core when used with this new
ignore list:

* The archiver directory matched a "${WORKDIR}/deploy*" pattern so was renamed
  to something else since that directory does need its root permissions
* The ${S} and ${B} ignoring is conditional on them being different to ${WORKDIR}
* package_write_* task output (the debs/rpms/ipks) are now owned by the build
  user so we don't want the file ownership information in the hashequiv outhash
  calculation even if they are built under pseudo.
* The fontcache postinstall intercept is run under qemu outside of pseudo context
  so delete files it may delete up front where pseudo can see this.
* SSTATE_DIR is in PSEUDO_PATHS_IGNORE, which is in FAKEROOTENV which is cached
  by bitbake. We therefore need to trigger reparsing if this changes, which means
  SSTATE_DIR can be in BB_HASHBASE_WHITELIST but not BB_HASHCONFIG_WHITELIST.
  Rework the variables to handle this. This otherwise breaks some of our sstate
  tests in oe-selftest.
* Ignore the temp directory wic uses for rebuilding rootfs.

(From OE-Core rev: ad8f5532ffaead9a5ad13e1034fe9e5e1b7979f4)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-10-07 11:18:38 +01:00
Richard Purdie
f6609eebca oeqa/selftest/devtool: Add sync call to test teardown
Devtool tests are heavy on IO and if bitbake can't write out its caches, we see
timeouts. Call "sync" around the tests to ensure the IO queue doesn't get too
large, taking any IO hit here rather than in bitbake shutdown.

(From OE-Core rev: ce265cf467f1c3e5ba2edbfbef2170df1a727a52)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-30 15:01:52 +01:00
Chen Qi
dbeac4fc45 testsdk.py: remove workspace/sources to avoid failure in case of multilib
When multilib is enabled, there are multiple environment scripts, and the
test cases for eSDK are executed for each environment script.

And we will have the following problem when executing test cases for the
second environment script.

  ERROR: Source tree path /.../workspace/sources/librdfa already exists and is not empty

So after executing test cases for one environment, we clean up the sources
diretory to avoid such failure.

(From OE-Core rev: f55924d8d2258ca8b60c46d78ae2de06add59798)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-30 15:01:52 +01:00