oeqa/selftest/sstatetests: Add test that MACHINE doesn't change target sigs
When we change between two machines with the same tune, we shouldn't see rebuilds of binaries. This adds a test for this using the qemux86copy machine. We also extend the test to cover multilibs. (From OE-Core rev: df49d7a0f80673e73f753e8650cd88a086e77245) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
d822764831
commit
ff17f14878
|
@ -329,4 +329,49 @@ MACHINE = \"qemuarm\"
|
|||
files2 = [x.replace("tmp-sstatesamehash2", "tmp-sstatesamehash") for x in files2]
|
||||
self.maxDiff = None
|
||||
self.assertItemsEqual(files1, files2)
|
||||
|
||||
|
||||
def test_sstate_sametune_samesigs(self):
|
||||
"""
|
||||
The sstate checksums of two identical machines (using the same tune) should be the
|
||||
same, apart from changes within the machine specific stamps directory. We use the
|
||||
qemux86copy machine to test this. Also include multilibs in the test.
|
||||
"""
|
||||
|
||||
topdir = get_bb_var('TOPDIR')
|
||||
targetos = get_bb_var('TARGET_OS')
|
||||
targetvendor = get_bb_var('TARGET_VENDOR')
|
||||
self.write_config("""
|
||||
TMPDIR = \"${TOPDIR}/tmp-sstatesamehash\"
|
||||
MACHINE = \"qemux86\"
|
||||
require conf/multilib.conf
|
||||
MULTILIBS = "multilib:lib32"
|
||||
DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
|
||||
""")
|
||||
self.track_for_cleanup(topdir + "/tmp-sstatesamehash")
|
||||
bitbake("world meta-toolchain -S none")
|
||||
self.write_config("""
|
||||
TMPDIR = \"${TOPDIR}/tmp-sstatesamehash2\"
|
||||
MACHINE = \"qemux86copy\"
|
||||
require conf/multilib.conf
|
||||
MULTILIBS = "multilib:lib32"
|
||||
DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
|
||||
""")
|
||||
self.track_for_cleanup(topdir + "/tmp-sstatesamehash2")
|
||||
bitbake("world meta-toolchain -S none")
|
||||
|
||||
def get_files(d):
|
||||
f = []
|
||||
for root, dirs, files in os.walk(d):
|
||||
for name in files:
|
||||
if "meta-environment" in root or "cross-canadian" in root:
|
||||
continue
|
||||
if "qemux86copy-" in root or "qemux86-" in root:
|
||||
continue
|
||||
if "do_build" not in name and "do_populate_sdk" not in name:
|
||||
f.append(os.path.join(root, name))
|
||||
return f
|
||||
files1 = get_files(topdir + "/tmp-sstatesamehash/stamps")
|
||||
files2 = get_files(topdir + "/tmp-sstatesamehash2/stamps")
|
||||
files2 = [x.replace("tmp-sstatesamehash2", "tmp-sstatesamehash") for x in files2]
|
||||
self.maxDiff = None
|
||||
self.assertItemsEqual(files1, files2)
|
||||
|
|
Loading…
Reference in New Issue