summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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