summaryrefslogtreecommitdiffstats
path: root/meta-selftest
Commit message (Collapse)AuthorAgeFilesLines
* oe-selftest: add new ext dtb recipeAdrian Freihofer8 days3-0/+92
| | | | | | | | | | | | | There is no test coverage for the devicetree.bbclass class. Add a minimalist recipe that uses this class. This recipe compiles a devicetree overlay that does not include any sources from the kernel build folder to keep it simple and also usable for testing a kernel from the sstate-cache. (From OE-Core rev: 44b6eaf9fb408f2a7941e7ba8f2156cf2c7d4bae) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest-ed: Upgrade to version 1.21/1.20.2Richard Purdie2025-05-014-61/+86
| | | | | | | | | | | | | | | | | | | | | Older versions do not compile with GCC 15. We had different versions to test GPLv3 exclusion. 1.21 compiles with gcc 15 and 1.20.2 has a CFLAGS tweak to allow it to work with gcc 15 too. 1.21 is licensed under GPL-2.0 so we need to rework some of the tests. Tweak the gplv3 test by adding a special override of LICENSE to then test the license exclusion code. Modify the archiver selftests to use the new version. Based on a patch from Khem Raj <raj.khem@gmail.com> (From OE-Core rev: 3b17355ad1ecad17d12c5eb0e6403a59ef11f7d7) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* test_efi_plugin_plain_systemd-boot: don't set consoleMikko Rapeli2025-04-171-1/+1
| | | | | | | | | | | | | | | | This effectively disables the boot time serial console so that kernel and initrd logs are not visible which makes debugging boot failures hard. The logs are not too verbose, around 270 lines, and can be reduced with kernel side settings if needed. For example "loglevel=4" on kernel command line reduces the output to only warning messages. (From OE-Core rev: 0469af3bd8e3c721ba9c6f96d786c95a1726368b) Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: reset: Escape command line input used in regular expressionPeter Kjellerstedt2025-03-202-0/+10
| | | | | | | | | | | | | | | | | | | Running, e.g., `devtool reset sdbus-c++` would result in the following error: re.error: multiple repeat at position 35 This was due to the ++ in the recipe name, which would be treated as an incorrect regular expression in _reset(). Use re.escape() to make sure all characters in the recipe name are treated literally. (From OE-Core rev: 6e73bd9b3e6d529752db93879f2c0ed53873dd1a) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta/meta-selftest: Fix variable assignment whitespaceRichard Purdie2025-02-018-8/+8
| | | | | | | | | | Recipes are much more readable with whitespace around the assignment operators. Fix various assignments in OE-Core to show this is definitely the preferred formatting. (From OE-Core rev: 30ea609d3357fb3de911f2f6a5e6856c151b976a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/poisoning: fix gcc include poisoning testRoss Burton2025-01-221-7/+19
| | | | | | | | | | | | | | | | | | | | | The test code in poison was flawed: as long as one CPP/CC/CXX has fatal poisoning enabled then the test passes. However, at the moment due to a bad rebase only CPP has fatal poisoning and CC/CXX do not. Rewrite the do_compile() task to more carefully check the output so the test harness itself just has to bitbake the recipe. Note that this results in the test failing: ERROR: poison-1.0-r0 do_compile: C Compiler is not poisoned. Exit status 0, output: cc1: warning: include location "/usr/include" is unsafe for cross-compilation [-Wpoison-system-directories] ERROR: poison-1.0-r0 do_compile: C++ Compiler is not poisoned. Exit status 0, output: cc1plus: warning: include location "/usr/include" is unsafe for cross-compilation [-Wpoison-system-directories] (From OE-Core rev: 5b413d1fdb4bdbaec86d630bb52c3ccf68aae789) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bbconfigbuild/configfragments.py: set BBPATH in standalone datastoreAlexander Kanavin2025-01-091-0/+2
| | | | | | | | | | | | | | | | Otherwise fragments with 'require' statements will not parse, as the parser will not be able to find files referred to by those statements. Add such a statement to the test fragment so that the scenario is tested. [YOCTO #15707] (From OE-Core rev: d88e63d1a7867b3a4ebfc57d472900136b5361d8) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake-config-build: add a plugin for config fragmentsAlexander Kanavin2024-12-132-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | This allows fine-tuning local configurations with pre-frabricated configuration snippets in a structured, controlled way. It's also an important building block for bitbake-setup. The tool requires that each fragment contains a one-line summary, and one or more lines of description, as BB_CONF_FRAGMENT_SUMMARY style metadata. There are three (and a half) operations (list/enable/disable/disable all), and here's the 'list' output: alex@Zen2:/srv/storage/alex/yocto/build-64$ bitbake-config-build list-fragments NOTE: Starting bitbake server... Available fragments in selftest layer located in /srv/work/alex/poky/meta-selftest: Enabled fragments: selftest/test-fragment This is a configuration fragment intended for testing in oe-selftest context Unused fragments: selftest/more-fragments-here/test-another-fragment This is a second configuration fragment intended for testing in oe-selftest context (From OE-Core rev: fdb611e13bd7aa00360d3a68e4818ef5f05c8944) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest/static-group: Add seatRichard Purdie2024-11-281-0/+1
| | | | | | | | | With a group added to the seatd recipe, we need an entry in our static group file for selftest. (From OE-Core rev: 655d334584769a9b9d86cf8fab2c06bc0878d0b3) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/selftest: add a test for bitbake "-e" and "-getvar" differenceYoann Congal2024-11-181-0/+3
| | | | | | | | | | This is a non-regression test for [YOCTO #15638] (From OE-Core rev: 22b508da24e0f7e5ad8ce4e090832bd0829963f0) Signed-off-by: Yoann Congal <yoann.congal@smile.fr> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe-selftest-image: use explicit IMAGE_FEATURES instead of debug-tweaksRoss Burton2024-11-061-1/+1
| | | | | | | | | | | | debug-tweaks is vague and doesn't give any indication that the root user can login over SSH without a password. This behaviour is incredibly dangerous if used unwittingly, so discourage it by using the underlying features explicitly to spell out exactly what is being done. (From OE-Core rev: 83cd8b5ca4544e9b19c110035276e5de2ebe7404) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest/container: fix IMAGE_FEATURES assignmentRoss Burton2024-11-061-0/+1
| | | | | | | | | | | | | | | | | | | | Assigning IMAGE_FEATURES="" in local.conf doesn't actually do anything useful, as bitbake.conf has IMAGE_FEATURES += EXTRA_IMAGE_FEATURES after the include of local.conf. In this test case, this results in IMAGE_FEATURES still using EXTRA_IMAGE_FEATURES, so the image contains the files installed by the post-install-logging feature. As the intention here is that container-test-image is as minimal as possible, move the IMAGE_FEATURES assignment into the image itself so it actually works, and update the expected file list to remove the post-install-logging files. (From OE-Core rev: c65349e1238ddc6634dfa4759c57e6168a355200) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa selftest wic.py: support UKIs via uki.bbclassMikko Rapeli2024-10-252-3/+7
| | | | | | | | | | | | | | | | | Use label to detect rootfs since UKI with kernel command line is generated before rootfs is generated by wic. Adapt wic tests to build and boot uki.bbclass generated UKIs. Keeping one UKI test in wic.py and rest of the UKI features are tested with dedicated uki.py test. Add plain non-UKI systemd-boot tests to wic suite for aarch64 and x86. (From OE-Core rev: 3f94256b977637d4276f82db7c20b8b5e57b9d86) Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* layer.conf: Update to new layer/release series post-releaseRichard Purdie2024-10-011-1/+1
| | | | | | | | Switch from styhead to walnascar (aka walna). (From OE-Core rev: 86999b5da960cbaa75eda1a75e3c42de22786677) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/selftest/bbclasses: Add tests for systemd and update-rc.d interactionPeter Kjellerstedt2024-09-012-0/+29
| | | | | | | | | | | These tests verify that the correct files are left behind when systemd is inherited and depending on whether the systemd and/or sysvinit distro features are enabled. (From OE-Core rev: 4ef25caa00ad08046567d0e7f4523486c3a256d0) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest-hardlink: Add additional test casesMark Hatle2024-07-221-0/+13
| | | | | | | | | | | | | | Additional test cases for debug symlink generation both binaries and static libraries. This also has the side effect of testing for race conditions in the hardlink debug generation and stripping. (From OE-Core rev: 7171f41c07a39a7543bb64f075d38b8e74563089) Signed-off-by: Mark Hatle <mark.hatle@amd.com> Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest/fortran-helloworld: Fix buildpaths errorRichard Purdie2024-07-151-1/+4
| | | | | | | | | | There is a buildpaths QA error in the test recipe that somehow didn't show up in earlier testing. Use a source directory and tweak the build command to avoid embedding build paths in the generated binary. (From OE-Core rev: 8f1cfaf2be834217cd1cf5be98f44270c36cc31a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe-selftest: fitimage drop test-mkimage-wrapperAdrian Freihofer2024-07-131-19/+0
| | | | | | | | | | | | | | | | Rather than writing hints into log files and verify the hints can be found, the tests should verify that the artifacts in the deploy folder are correctly signed. This is a much better test. u-boot-tools provide a utility fit_check_sign which can verify the signatures in fit images. Lets use it. grepping in temp/run. or temp/log. files also does not work if the tasks runs from sstate and the corresponding run file is not even generated. (From OE-Core rev: 86e504b4f792eeadd67ea57dd71a62bcb4f16f02) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe-selftest: add RECIPE_UPDATE_EXTRA_TASKS testTim Orling2024-06-132-0/+107
| | | | | | | | | | | | | | | | | | | | Add test_devtool_upgrade_recipe_update_extra_tasks test case to test upgrade of python3-guessing-game from v0.1.0 to v0.2.0 which will exercise the update_crates task during the upgrade. Add python3-guessing-game_git.bb.upgraded and python3-guessing-game-crates.inc.upgraded which are the 0.2.0 variants. Check that the new recipe file has the expected differences. Check that the new -crates.inc file has the expected differences, which should be reproducible because of Cargo.lock. (From OE-Core rev: d14368bc775cbf5142c1312dfc2076e328381aef) Signed-off-by: Tim Orling <tim.orling@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta-selftest: add python3-guessing-gameTim Orling2024-06-132-0/+101
| | | | | | | | | | | Add v0.1.0 of python3-guessing-game which is used as the baseline for an upgrade to v0.2.0 in test_devtool_upgrade_recipe_update_extra_tasks test case. (From OE-Core rev: f62e74a00de892bf4c10f641f734b57c0017a871) Signed-off-by: Tim Orling <tim.orling@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest: add Upstream-Status to .patch filesMartin Jansa2024-06-1012-1/+21
| | | | | | | | (From OE-Core rev: e5e5561c178a565b3aa7cb540fe1c8f71917c882) Signed-off-by: Martin Jansa <martin.jansa@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* recipes: Ensure S is set to a valid directoryRichard Purdie2024-05-212-0/+6
| | | | | | | | | | | | Several recipes have S pointing at a directory that does not exist. Set S in these cases to somethig valid making the metadata and recipe behaviour more consistent. Tweak one of the QA test diff offsets to match the changed recipe. (From OE-Core rev: 22f1f5849a9a3bf287dbe8933546e52e39ddc86e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: Drop oe-local-files and simplifyRichard Purdie2024-05-211-0/+3
| | | | | | | | | | | | | | | | | | | | The only real reason for oe-local-files was to support S = WORKDIR. With changes to drop support for that, it makes sense to simplify devtool and to try and make both the code and the processes/workflows simpler. This patch drops support for S = WORKDIR, removes oe-local-files and then updates the test cases to match this new situation. At the code level, we assume we can always now track code changes using git and that things committed into git are handled as patches (as before) but delta against HEAD is saved as specific file level changes to the recipe. One test is disabled as it is no longer approproate. It is being keped until we can make WORKDIR != UNPACKDIR at which point it should be revisited. (From OE-Core rev: ce8190c519052fed10b5233697b69a75868db45a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* recipes: Switch away from S = WORKDIRRichard Purdie2024-05-2111-12/+23
| | | | | | | | | | | | | Where recipes use S = ${WORKDIR}, change them to set UNPACKDIR to a subdir of WORKDIR and make S point at this instead. I've chosen not to force S into any standard UNPACKDIR we may pick in future just so the S = UNPACKDIR case is clearly visible by the directory naming under WORKDIR as that should aid usability. (From OE-Core rev: d9328e3b0b062f0621de3d114584b44f384a1c02) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* recipes: Start WORKDIR -> UNPACKDIR transitionRichard Purdie2024-05-211-1/+1
| | | | | | | | | Replace references of WORKDIR with UNPACKDIR where it makes sense to do so in preparation for changing the default value of UNPACKDIR. (From OE-Core rev: 1f18b9a512800860d5153d89eb82b56388efad6f) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest/classes: add localpkgfeed classRoss Burton2024-05-151-0/+27
| | | | | | | | | | | This class can be used to construct a subset of a deployed package feed for use in tests which iterate the deploy directory, and as such a huge feed of 30K+ packages can result in very slow tests. (From OE-Core rev: c5486d6ad32457f09c104d5dd31314bd570912d3) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* recipes: Update WORKDIR references to UNPACKDIRRichard Purdie2024-05-023-10/+10
| | | | | | | | | | Since we want to be able to stop unpacking to WORKDIR, correct the WORKDIR references in recipe do_compile/do_install tasks to use UNPACKDIR in the appropraite places instead. (From OE-Core rev: d73595df69667fe9d12ecd407b77a0b8dae2109c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* recipes: Update S = WORKDIR recipes to use ${S} correctlyRichard Purdie2024-05-021-1/+1
| | | | | | | | | | Where recipes use S = ${WORKDIR}, ensure they are referencing ${S} correctly to access files as soon we want to stop doing this in WORKDIR at which point they would break unless corrected. (From OE-Core rev: f25dd633fffe6560f191526d1869e657e129bad9) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* layer.conf: Post release addition/switch to styhead corenameRichard Purdie2024-04-161-1/+1
| | | | | | (From OE-Core rev: cef91ebeb3f2b1d41336fff60555064430a80397) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/selftest/overlayfs: test read-only rootfsBaruch Siach2024-04-041-2/+2
| | | | | | | | | | | Use the read-only squashfs filesystem to test the read-only case. (From OE-Core rev: 1a61da196f014dc34a998d3e46f03abc79ebc84d) Signed-off-by: Baruch Siach <baruch@tkos.co.il> Signed-off-by: Vyacheslav Yurkov <uvv.mail@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest-users: Convoluted selftest for USERADD_DEPENDSEilís 'pidge' Ní Fhlannagáin2024-02-244-0/+136
| | | | | | | | | | This adds a test for 13904's fix by creating a convoluted set of recipes with USERADD_DEPENDS in non-alpha order. (From OE-Core rev: bfff81195cb9ba2493e366022470b2e0051d8071) Signed-off-by: Eilís 'pidge' Ní Fhlannagáin <pidge@baylibre.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* creategroup*: Remove coreutils-native as a DEPENDSEilís 'pidge' Ní Fhlannagáin2024-02-232-3/+0
| | | | | | | | | | There isn't any reason for coreutils-native as a DEPENDS, so remove it to speed up tests. (From OE-Core rev: 1aa91868094e8d4e3991cd3faebc17fdf6931907) Signed-off-by: Eilís 'pidge' Ní Fhlannagáin <pidge@baylibre.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python: Drop ${PYTHON_PN}Richard Purdie2024-02-201-1/+1
| | | | | | | | | | | python 2 is gone and we don't need the abstraction now, drop the remaining usage of this variable. The definition in python3-dir.bbclass is left for now for other layers. (From OE-Core rev: b566b1e32c7993d1ab7795562f648e52ce186a70) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/patch: Make extractPatches() not extract ignored commitsPeter Kjellerstedt2024-02-193-0/+133
| | | | | | | | | | | | | | | | If a commit is marked with "%% ignore" it means it is used by devtool to keep track of changes to the source code that are not the result of running do_patch(). These changes need to actually be ignored when extracting the patches as they typically make no sense as actual patches in a recipe. This also adds a new test for oe-selftest that verifies that there are no patches generated from ignored commits. (From OE-Core rev: c3d43de7e54189bf09fbe8e87ddb976e42ebf531) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* layer.conf: Update for the scarthgap release seriesRichard Purdie2024-02-091-1/+1
| | | | | | | | Prepare for the scarthgap release. (From OE-Core rev: b1835e657575c29da43a15a37c673dc37044fd85) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* overlayfs: add missing closing parenthesis in selftestbaruch@tkos.co.il2024-02-061-1/+1
| | | | | | | | Cc: Vyacheslav Yurkov <uvv.mail@gmail.com> (From OE-Core rev: aebd526cdfea738745e57183b1015fd327bd94df) Signed-off-by: Baruch Siach <baruch@tkos.co.il> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/recipes: Switch to use inherit_deferRichard Purdie2024-01-181-1/+1
| | | | | | | | | | | | | | | | | Now that bitbake supports the use of inherit_defer, switch all conditional (variable based) inherits to use this instead. This leads to more a more deterministic user experience since there is no longer an immediate expansion and later changes to the variables in question (e.g. a bbappend) are accounted for. This patch tries to ensure the behaviour before/after remains as unchanged as it reasonably can, e.g. by always inherting populate_sdk_base. native and nativesdk continue to need to be inherited last, hence being used with inherit_defer in a handful of very specific cases. (From OE-Core rev: 451363438d38bd4552d5bcec4a92332f5819a5d4) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest/sstatetests: fix up printdiff test to match rework of printdiff logicAlexander Kanavin2024-01-101-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | Other than the formatting changes, there are two functional ones: - use perlcross instead of quilt, as quilt is special in the sense of being excluded from task hash calculcations. perlcross is a full participant. - run the full test (local + sstate) for gcc do_preconfiure change as the necessary fix has been implemented (sstatesig/find_siginfo: special-case gcc-source when looking in sstate caches) Note that when several tasks are found to have changed (as is the case when base do_configure is adjusted), find_siginfo() runs glob.glob("*/*/*taskname*") against autobuilder sstate cache for each of those tasks (six or seven times). This is an expensive operation taking several minutes. I left it in for now, but if it's proven too slow the test would have to be reduced to checking a specific base recipe (e.g. zstd-native) rather than a distant image target. [YOCTO #15289] (From OE-Core rev: 0ef7cf324718412c5b6c376acfbc4079ecd7d465) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* aspell: upgrade 0.60.8 -> 0.60.8.1Wang Mingyu2024-01-011-0/+0
| | | | | | | | | | | | | | | | | | | CVE-2019-25051.patch removed since it's included in 0.60.8.1 Changelog: ============ -Fix memory leak in suggestion code introduced in 0.60.8. -Various documentation fixes. -Fix various warnings when compiling with -Wall. -Fix two buffer overflows found by Google's OSS-Fuzz. -Other minor updates. (From OE-Core rev: ec3c8642f71b470936b6dd29331afa467ab865c7) Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* zvariant: Drop recipeAlex Kiernan2023-12-304-1601/+0
| | | | | | | | | This fails to build with newer rust (From OE-Core rev: 8a286e686e5764f4def0644586dd19e2197ef6c2) Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta-selftest: hello-rs: Simple rust test recipeAlex Kiernan2023-12-303-0/+54
| | | | | | | (From OE-Core rev: 885e8e1fbfce79170ff7544dec5406d724da2560) Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe-selftest: add a cpp-example recipeAdrian Freihofer2023-12-1313-0/+296
| | | | | | | | | | | | | | | | | | | This simple C++ project supports compilation with CMake and Meson. (Autotool support could be added later on.) It's supposed to be used with oe-selftest. An artificial project has several advantages over compiling a normal CMake or Meson based project for testing purposes: - It is much faster because it can be kept minimalistic - It can cover multiple odd corner cases - No one will change it in an unpredictable way - It can support multiple build tools with only one C++ codebase (From OE-Core rev: 4904e772470b0d6e5d98ef0344b3f2bf54214661) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* useradd: Add testcase for bugzilla issue (currently disabled)Eilís 'pidge' Ní Fhlannagáin2023-12-081-0/+20
| | | | | | | | | | Add a disabled a test for 14961 - addtask between do_populate_sysroot and do_package breaks useradd class. A fix is still needed for this. (From OE-Core rev: b6af5788f7f8fb1e9d8ad14bd12168ff9d6baa21) Signed-off-by: Eilís 'pidge' Ní Fhlannagáin <pidge@baylibre.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* useradd: Fix issues with useradd dependenciesEilís 'pidge' Ní Fhlannagáin2023-12-082-0/+65
| | | | | | | | | | | | | | | | | | | | | | | | If recipe A requires the useradd actions of recipe B we need to ensure that recipe B is part of the recipe A dependancy chain. In order to do that, we introduce USERADD_DEPENDS. This makes sure that the do_populate_sysroot_setscene of recipe B exists for recipe A in case of a missing TMPDIR. This requires changes made in runqueue.py by RP. This commit along with the runqueue fixes effects: Bug 13419 - recipes that add users to groups cannot rely on other recipes creating those groups (when population from sstate happens) Bug 13904 - do_prepare_recipe_sysroot: postinst-useradd-* does not run in order of dependency and sometimes fails Bug 13279 - Make sure users/groups exist for package_write_* tasks Bug 15084 - For some reason using of same user in two recipes does not work properly I've included the start of self-testing for useradd by adding tests for 13419 (which ends up testing 13904, 13279, 15084 by virtue of them all having the same root cause) (From OE-Core rev: b47f2352376bd16b7e7087b4dab143403e67e094) Signed-off-by: Eilís 'pidge' Ní Fhlannagáin <pidge@baylibre.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: upgrade: Update all existing checksums for the SRC_URIPeter Kjellerstedt2023-12-084-0/+72
| | | | | | | | | | | | | In addition to updating the sha256sum and removing the md5sum, update all other existing checksums. If the only existing checksum is md5sum, then replace it with the default expected checksums (currently only sha256sum). (From OE-Core rev: 8ea8827ee49b7f0443b1c4bd47d1344a689d73a3) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta-selftest/files: add xuser to static-passwd/-groupYoann Congal2023-11-202-0/+2
| | | | | | | | | | | As xuser-account creates a new user, we need to add it to the testing static passwd file. (From OE-Core rev: 6c0637a2ba7621a6398dc62b4d019cd525ee8908) Signed-off-by: Yoann Congal <yoann.congal@smile.fr> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/selftest/sstatetests: Fix intermitttent errors and improve performanceRichard Purdie2023-11-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | You could reproduce an error in this test with: bitbake core-image-minimal bitbake tzcode-native -c cleansstate oe-selftest -r sstatetests.SStatePrintdiff.test_image_minimal_vs_base_do_configure since tzcode-native isn't needed once tzdata is available and isn't rebuilt by "bitbake core-image-minimal" if it is missig. tzdata is allarch so if tzdata is built on an x86 host, a aarch64 build machine would never build tzcode-native with this set of calls. Add a --runall option to the initial bitbake invocation to force these things to be created if they're missing. This explains why some failures were occurring on the infrastructure. With that issue fixed, drop the hash mode change since I believe this fixes that issue. That restriction was hurting performance, this should allow sstate reuse for the test and improve the speed of it. (From OE-Core rev: 8f03ac39e7fe21f3d6eca35b12b203a73a15285d) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest/sstatetests: add tests for 'bitbake -S printdiff'Alexander Kanavin2023-10-273-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'bitbake -S printdiff' is a useful diagnostic facility for finding out why sstate is not being reused, but until now it had no tests that would ensure it works. This commit adds three basic scenarios: 1. make a change in a really basic, common recipe that is at the very root of dependency trees (quilt-native), and ensure that change is correctly discovered when building an image. 2. make a change in gcc-source recipe, which is somewhat special (operates in work-shared), and ensure that gcc-runtime builds track that down as well. 3. make a change in base_do_configure() definition from base.bbclass, which is not recipe-specific, but affects many basic recipes, and ensure that is correctly reported as well. The test itself actually runs twice: - first against a fully populated build directory, where the printdiff code is guaranteed to find the correct previous stamp that can be compared with in a predictable manner. - then in an empty build directory where the printdiff code goes to look in the sstate cache, and so the existence of the previous signature can be tested, but not the difference with it (what the exact difference would be is unpredictable as the sstate cache is indeed shared between many builds). (From OE-Core rev: 7a7d76aa8a8d590ebc99156f9f4b9535cdf868c7) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* recipes: Drop remaining PR values from recipesRichard Purdie2023-09-221-1/+0
| | | | | | | | | | | | | | | | We've been removing PR values from recipes at upgrade time for a while. In general anyone maintaining a binary distro would end up having to curate these themselves so the values in OE-Core aren't really that useful anymore. In many ways it makes sense to clear out the remaining ones (which are mostly for 'config' recipes that are unlikely to increase in PV) and leave a clean slate for anyone implementing a binary distro config. References are left in meta-selftest since the tests there do involve them and their removal upon upgrade. (From OE-Core rev: d4c346e8ab8f3cae25d1b01c7331ed9f6d4f96ef) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa dnf_runtime.py: fix HTTP server IP address and portMikko Rapeli2023-09-121-1/+2
| | | | | | | | | | | | Use correct HTTPService parameters like apt.py when setting up the repo server. These work with qemu tun and slirp networking. Fixes test failure with slirp networking when executing testimage.bbclass selftests "oe-selftest -r runtime_test.TestImage". (From OE-Core rev: 764424df2f4b6bf0e89fb20b4253a7601468f70d) Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>