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