[oe-commits] Richard Purdie : oeqa: Add allarch sstate sig test
git at git.openembedded.org
git at git.openembedded.org
Sun Aug 30 11:49:43 UTC 2015
Module: openembedded-core.git
Branch: master-next
Commit: 90c3ec40ec9f9b819ef5042debe1cef7dce438e6
URL: http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=90c3ec40ec9f9b819ef5042debe1cef7dce438e6
Author: Richard Purdie <richard.purdie at linuxfoundation.org>
Date: Tue Aug 25 17:56:53 2015 +0100
oeqa: Add allarch sstate sig test
"allarch" targets should be MACHINE invariant. This means their sstate
signature should not change regardless of which MACHINE is built.
Errors keep creeping in around this area so automating this as part
of self test seems the best way to maintain this.
The "do_build" stamps are known to differ and are harmless so those
are excluded from the test.
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
meta/lib/oeqa/selftest/sstatetests.py | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)
diff --git a/meta/lib/oeqa/selftest/sstatetests.py b/meta/lib/oeqa/selftest/sstatetests.py
index 0a76167..1ce8773 100644
--- a/meta/lib/oeqa/selftest/sstatetests.py
+++ b/meta/lib/oeqa/selftest/sstatetests.py
@@ -272,3 +272,37 @@ NATIVELSBSTRING = \"DistroB\"
files2 = [x.replace("tmp-sstatesamehash2", "tmp-sstatesamehash") for x in files2]
self.assertItemsEqual(files1, files2)
+ def test_sstate_allarch_samesigs(self):
+ """
+ The sstate checksums off allarch packages should be independent of whichever
+ MACHINE is set. Check this using bitbake -S.
+ """
+
+ 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\"
+""")
+ self.track_for_cleanup(topdir + "/tmp-sstatesamehash")
+ bitbake("world -S none")
+ self.write_config("""
+TMPDIR = \"${TOPDIR}/tmp-sstatesamehash2\"
+MACHINE = \"qemuarm\"
+""")
+ self.track_for_cleanup(topdir + "/tmp-sstatesamehash2")
+ bitbake("world -S none")
+
+ def get_files(d):
+ f = []
+ for root, dirs, files in os.walk(d):
+ for name in files:
+ if "do_build" not in name:
+ f.append(os.path.join(root, name))
+ return f
+ files1 = get_files(topdir + "/tmp-sstatesamehash/stamps/all" + targetvendor + "-" + targetos)
+ files2 = get_files(topdir + "/tmp-sstatesamehash2/stamps/all" + targetvendor + "-" + targetos)
+ files2 = [x.replace("tmp-sstatesamehash2", "tmp-sstatesamehash") for x in files2]
+ self.maxDiff = None
+ self.assertItemsEqual(files1, files2)
More information about the Openembedded-commits
mailing list