From b3e3eba796b843021b264f0e98dc30f983775d58 Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Mon, 8 Mar 2021 18:01:52 +0000 Subject: oeqa/selftest: add test to verify that poisoned sysroots are detected Add a recipe that explicitly searches /usr/include, and use that in oe-selftest to verify that host include paths are correctly causing build failures. Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- meta-selftest/recipes-test/poison/poison.bb | 16 ++++++++++++++++ meta/lib/oeqa/selftest/cases/buildoptions.py | 6 ++++++ 2 files changed, 22 insertions(+) create mode 100644 meta-selftest/recipes-test/poison/poison.bb diff --git a/meta-selftest/recipes-test/poison/poison.bb b/meta-selftest/recipes-test/poison/poison.bb new file mode 100644 index 0000000000..7ace901cc3 --- /dev/null +++ b/meta-selftest/recipes-test/poison/poison.bb @@ -0,0 +1,16 @@ +SUMMARY = "Sysroot poisoning test" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +LICENSE = "MIT" + +inherit nopackages + +# This test confirms that compiling code that searches /usr/include for headers +# will result in compiler errors. This recipe should will fail to build and +# oe-selftest has a test that verifies that. +do_compile() { + touch empty.c + ${CPP} ${CFLAGS} -I/usr/include empty.c +} + +EXCLUDE_FROM_WORLD = "1" diff --git a/meta/lib/oeqa/selftest/cases/buildoptions.py b/meta/lib/oeqa/selftest/cases/buildoptions.py index 3495bee986..20fe8ed8f6 100644 --- a/meta/lib/oeqa/selftest/cases/buildoptions.py +++ b/meta/lib/oeqa/selftest/cases/buildoptions.py @@ -197,3 +197,9 @@ PREMIRRORS = "\\ bitbake("world --runall fetch") + +class Poisoning(OESelftestTestCase): + def test_poisoning(self): + res = bitbake("poison", ignore_status=True) + self.assertNotEqual(res.status, 0) + self.assertTrue("is unsafe for cross-compilation" in res.output) -- cgit 1.2.3-korg