summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2015-07-10 14:07:25 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-07-12 22:55:38 +0100
commite9817d59d322b4a942341ecd3d0099f817537998 (patch)
tree8104e60b80e72fd01cf27619a029d2c98701546c
parentee69463f4e2e4f6eac86385e36edda2fccbae7fd (diff)
downloadpoky-e9817d59d322b4a942341ecd3d0099f817537998.tar.gz
oeqa/sstatetests: Add NATIVELSB sstate signature equivalence test
The sstate checksums should be independent of whichever NATIVELSBSTRING is detected. Add an automated QA test which tests this using bitbake -S. To make this possible, we need to be able to override the value of NATIVELSBSTRING so make a small change to allow this. (From OE-Core rev: 2da156d491caf25dfa3efd567d6dbb451dd7e9dc) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/base.bbclass3
-rw-r--r--meta/lib/oeqa/selftest/sstatetests.py34
2 files changed, 36 insertions, 1 deletions
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index 56fe5f2122..fe803f1836 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -210,7 +210,8 @@ addhandler base_eventhandler
210base_eventhandler[eventmask] = "bb.event.ConfigParsed bb.event.BuildStarted bb.event.RecipePreFinalise" 210base_eventhandler[eventmask] = "bb.event.ConfigParsed bb.event.BuildStarted bb.event.RecipePreFinalise"
211python base_eventhandler() { 211python base_eventhandler() {
212 if isinstance(e, bb.event.ConfigParsed): 212 if isinstance(e, bb.event.ConfigParsed):
213 e.data.setVar("NATIVELSBSTRING", lsb_distro_identifier(e.data)) 213 if not e.data.getVar("NATIVELSBSTRING", False):
214 e.data.setVar("NATIVELSBSTRING", lsb_distro_identifier(e.data))
214 e.data.setVar('BB_VERSION', bb.__version__) 215 e.data.setVar('BB_VERSION', bb.__version__)
215 pkgarch_mapping(e.data) 216 pkgarch_mapping(e.data)
216 oe.utils.features_backfill("DISTRO_FEATURES", e.data) 217 oe.utils.features_backfill("DISTRO_FEATURES", e.data)
diff --git a/meta/lib/oeqa/selftest/sstatetests.py b/meta/lib/oeqa/selftest/sstatetests.py
index 6281d50066..9258b53210 100644
--- a/meta/lib/oeqa/selftest/sstatetests.py
+++ b/meta/lib/oeqa/selftest/sstatetests.py
@@ -237,3 +237,37 @@ BUILD_OS = \"linux\"
237 files2 = get_files(topdir + "/tmp-sstatesamehash2/stamps/") 237 files2 = get_files(topdir + "/tmp-sstatesamehash2/stamps/")
238 files2 = [x.replace("tmp-sstatesamehash2", "tmp-sstatesamehash").replace("i686-linux", "x86_64-linux").replace("i686" + targetvendor + "-linux", "x86_64" + targetvendor + "-linux", ) for x in files2] 238 files2 = [x.replace("tmp-sstatesamehash2", "tmp-sstatesamehash").replace("i686-linux", "x86_64-linux").replace("i686" + targetvendor + "-linux", "x86_64" + targetvendor + "-linux", ) for x in files2]
239 self.assertItemsEqual(files1, files2) 239 self.assertItemsEqual(files1, files2)
240
241
242 def test_sstate_nativelsbstring_same_hash(self):
243 """
244 The sstate checksums should be independent of whichever NATIVELSBSTRING is
245 detected. Rather than requiring two different build machines and running
246 builds, override the variables manually and check using bitbake -S.
247 """
248
249 topdir = get_bb_var('TOPDIR')
250 targetvendor = get_bb_var('TARGET_VENDOR')
251 self.write_config("""
252TMPDIR = \"${TOPDIR}/tmp-sstatesamehash\"
253NATIVELSBSTRING = \"DistroA\"
254""")
255 self.track_for_cleanup(topdir + "/tmp-sstatesamehash")
256 bitbake("core-image-sato -S printdiff", ignore_status=True)
257 self.write_config("""
258TMPDIR = \"${TOPDIR}/tmp-sstatesamehash2\"
259NATIVELSBSTRING = \"DistroB\"
260""")
261 self.track_for_cleanup(topdir + "/tmp-sstatesamehash2")
262 bitbake("core-image-sato -S printdiff", ignore_status=True)
263
264 def get_files(d):
265 f = []
266 for root, dirs, files in os.walk(d):
267 f.extend(os.path.join(root, name) for name in files)
268 return f
269 files1 = get_files(topdir + "/tmp-sstatesamehash/stamps/")
270 files2 = get_files(topdir + "/tmp-sstatesamehash2/stamps/")
271 files2 = [x.replace("tmp-sstatesamehash2", "tmp-sstatesamehash") for x in files2]
272 self.assertItemsEqual(files1, files2)
273