* [PATCH] tests/parse: Add BBCLASSEXTEND multiple data store corruption reproducer
@ 2015-07-22 22:29 Richard Purdie
0 siblings, 0 replies; only message in thread
From: Richard Purdie @ 2015-07-22 22:29 UTC (permalink / raw)
To: bitbake-devel
One data store changing a variable poked through into a different data
store. This test case replicates that issue where the value 'B' would
become unset/disappear.
We also enhance parsehelper to generate files with an optional suffix
such as bbclass.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
diff --git a/bitbake/lib/bb/tests/parse.py b/bitbake/lib/bb/tests/parse.py
index 21fd78a..6beb76a 100644
--- a/bitbake/lib/bb/tests/parse.py
+++ b/bitbake/lib/bb/tests/parse.py
@@ -47,9 +47,9 @@ C = "3"
self.d = bb.data.init()
bb.parse.siggen = bb.siggen.init(self.d)
- def parsehelper(self, content):
+ def parsehelper(self, content, suffix = ".bb"):
- f = tempfile.NamedTemporaryFile(suffix = ".bb")
+ f = tempfile.NamedTemporaryFile(suffix = suffix)
f.write(content)
f.flush()
os.chdir(os.path.dirname(f.name))
@@ -113,3 +113,35 @@ PN = "bc"
d.setVar("OVERRIDES", "bc-dev")
self.assertEqual(d.getVar("DESCRIPTION", True), "C D")
+
+ classextend = """
+VAR_var_override1 = "B"
+EXTRA = ":override1"
+OVERRIDES = "nothing${EXTRA}"
+
+BBCLASSEXTEND = "###CLASS###"
+"""
+ classextend_bbclass = """
+EXTRA = ""
+python () {
+ d.renameVar("VAR_var", "VAR_var2")
+}
+"""
+
+ #
+ # Test based upon a real world data corruption issue. One
+ # data store changing a variable poked through into a different data
+ # store. This test case replicates that issue where the value 'B' would
+ # become unset/disappear.
+ #
+ def test_parse_classextend_contamination(self):
+ cls = self.parsehelper(self.classextend_bbclass, suffix=".bbclass")
+ #clsname = os.path.basename(cls.name).replace(".bbclass", "")
+ self.classextend = self.classextend.replace("###CLASS###", cls.name)
+ f = self.parsehelper(self.classextend)
+ alldata = bb.parse.handle(f.name, self.d)
+ d1 = alldata['']
+ d2 = alldata[cls.name]
+ self.assertEqual(d1.getVar("VAR_var", True), "B")
+ self.assertEqual(d2.getVar("VAR_var", True), None)
+
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2015-07-22 22:29 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-22 22:29 [PATCH] tests/parse: Add BBCLASSEXTEND multiple data store corruption reproducer Richard Purdie
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.