xref: /OK3568_Linux_fs/yocto/poky/meta/lib/oeqa/selftest/cases/sysroot.py (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1#
2# SPDX-License-Identifier: MIT
3#
4
5import uuid
6
7from oeqa.selftest.case import OESelftestTestCase
8from oeqa.utils.commands import bitbake
9
10class SysrootTests(OESelftestTestCase):
11    def test_sysroot_cleanup(self):
12        """
13        Build sysroot test which depends on virtual/sysroot-test for one machine,
14        switch machine, switch provider of virtual/sysroot-test and check that the
15        sysroot is correctly cleaned up. The files in the two providers overlap
16        so can cause errors if the sysroot code doesn't function correctly.
17        Yes, sysroot-test should be machine specific really to avoid this, however
18        the sysroot cleanup should also work [YOCTO #13702].
19        """
20
21        uuid1 = uuid.uuid4()
22        uuid2 = uuid.uuid4()
23
24        self.write_config("""
25PREFERRED_PROVIDER_virtual/sysroot-test = "sysroot-test-arch1"
26MACHINE = "qemux86"
27TESTSTRING:pn-sysroot-test-arch1 = "%s"
28TESTSTRING:pn-sysroot-test-arch2 = "%s"
29""" % (uuid1, uuid2))
30        bitbake("sysroot-test")
31        self.write_config("""
32PREFERRED_PROVIDER_virtual/sysroot-test = "sysroot-test-arch2"
33MACHINE = "qemux86copy"
34TESTSTRING:pn-sysroot-test-arch1 = "%s"
35TESTSTRING:pn-sysroot-test-arch2 = "%s"
36""" % (uuid1, uuid2))
37        bitbake("sysroot-test")
38