|
@@ -0,0 +1,37 @@
|
|
|
+#
|
|
|
+# SPDX-License-Identifier: MIT
|
|
|
+#
|
|
|
+
|
|
|
+import uuid
|
|
|
+
|
|
|
+from oeqa.selftest.case import OESelftestTestCase
|
|
|
+from oeqa.utils.commands import bitbake
|
|
|
+
|
|
|
+class SysrootTests(OESelftestTestCase):
|
|
|
+ def test_sysroot_cleanup(self):
|
|
|
+ """
|
|
|
+ Build sysroot test which depends on virtual/sysroot-test for one machine,
|
|
|
+ switch machine, switch provider of virtual/sysroot-test and check that the
|
|
|
+ sysroot is correctly cleaned up. The files in the two providers overlap
|
|
|
+ so can cause errors if the sysroot code doesn't function correctly.
|
|
|
+ Yes, sysroot-test should be machine specific really to avoid this, however
|
|
|
+ the sysroot cleanup should also work [YOCTO #13702].
|
|
|
+ """
|
|
|
+
|
|
|
+ uuid1 = uuid.uuid4()
|
|
|
+ uuid2 = uuid.uuid4()
|
|
|
+
|
|
|
+ self.write_config("""
|
|
|
+PREFERRED_PROVIDER_virtual/sysroot-test = "sysroot-test-arch1"
|
|
|
+MACHINE = "qemux86"
|
|
|
+TESTSTRING_pn-sysroot-test-arch1 = "%s"
|
|
|
+TESTSTRING_pn-sysroot-test-arch2 = "%s"
|
|
|
+""" % (uuid1, uuid2))
|
|
|
+ bitbake("sysroot-test")
|
|
|
+ self.write_config("""
|
|
|
+PREFERRED_PROVIDER_virtual/sysroot-test = "sysroot-test-arch2"
|
|
|
+MACHINE = "qemux86copy"
|
|
|
+TESTSTRING_pn-sysroot-test-arch1 = "%s"
|
|
|
+TESTSTRING_pn-sysroot-test-arch2 = "%s"
|
|
|
+""" % (uuid1, uuid2))
|
|
|
+ bitbake("sysroot-test")
|