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