summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta-selftest/recipes-test/poison/poison.bb16
-rw-r--r--meta/lib/oeqa/selftest/cases/buildoptions.py6
2 files changed, 22 insertions, 0 deletions
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)