diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-08-12 15:54:54 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-08-14 17:28:23 +0100 |
commit | abda938d665bacc867e6328926892fbeb414f517 (patch) | |
tree | 5623fa1ecef343123679c76838b72032c0e91592 /bitbake/lib/bb/tests/runqueue-tests | |
parent | c86ae704d312eec4e4a86ef046bc8d5601ef4176 (diff) | |
download | poky-abda938d665bacc867e6328926892fbeb414f517.tar.gz |
bitbake: tests/runqueue: Add further hash equivalence tests
Add some extra hash equivalence runqueue tests based on recent scenarios
that caused problems during testing.
(Bitbake rev: 373b085ead992a725b2230ededd992b4c61a1a05)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/tests/runqueue-tests')
-rw-r--r-- | bitbake/lib/bb/tests/runqueue-tests/classes/base.bbclass | 20 | ||||
-rw-r--r-- | bitbake/lib/bb/tests/runqueue-tests/conf/bitbake.conf | 2 | ||||
-rw-r--r-- | bitbake/lib/bb/tests/runqueue-tests/recipes/e1.bb | 1 |
3 files changed, 17 insertions, 6 deletions
diff --git a/bitbake/lib/bb/tests/runqueue-tests/classes/base.bbclass b/bitbake/lib/bb/tests/runqueue-tests/classes/base.bbclass index 138edc3fa9..b57650d591 100644 --- a/bitbake/lib/bb/tests/runqueue-tests/classes/base.bbclass +++ b/bitbake/lib/bb/tests/runqueue-tests/classes/base.bbclass | |||
@@ -7,7 +7,7 @@ def stamptask(d): | |||
7 | thistask = d.expand("${PN}:${BB_CURRENTTASK}") | 7 | thistask = d.expand("${PN}:${BB_CURRENTTASK}") |
8 | stampname = d.expand("${TOPDIR}/%s.run" % thistask) | 8 | stampname = d.expand("${TOPDIR}/%s.run" % thistask) |
9 | with open(stampname, "a+") as f: | 9 | with open(stampname, "a+") as f: |
10 | f.write("\n") | 10 | f.write(d.getVar("BB_UNIHASH") + "\n") |
11 | 11 | ||
12 | if d.getVar("BB_CURRENT_MC") != "default": | 12 | if d.getVar("BB_CURRENT_MC") != "default": |
13 | thistask = d.expand("${BB_CURRENT_MC}:${PN}:${BB_CURRENTTASK}") | 13 | thistask = d.expand("${BB_CURRENT_MC}:${PN}:${BB_CURRENTTASK}") |
@@ -235,18 +235,28 @@ def sstate_checkhashes(sq_data, d, siginfo=False, currentcount=0, **kwargs): | |||
235 | 235 | ||
236 | valid = d.getVar("SSTATEVALID").split() | 236 | valid = d.getVar("SSTATEVALID").split() |
237 | 237 | ||
238 | for tid in sq_data['hash']: | 238 | for tid in sorted(sq_data['hash']): |
239 | n = os.path.basename(bb.runqueue.fn_from_tid(tid)).split(".")[0] + ":do_" + bb.runqueue.taskname_from_tid(tid)[3:] | 239 | n = os.path.basename(bb.runqueue.fn_from_tid(tid)).split(".")[0] + ":do_" + bb.runqueue.taskname_from_tid(tid)[3:] |
240 | print(n) | 240 | print(n) |
241 | stampfile = d.expand("${TOPDIR}/%s.run" % n.replace("do_", "")) | ||
241 | if n in valid: | 242 | if n in valid: |
242 | bb.note("SState: Found valid sstate for %s" % n) | 243 | bb.note("SState: Found valid sstate for %s" % n) |
243 | found.add(tid) | 244 | found.add(tid) |
244 | elif os.path.exists(d.expand("${TOPDIR}/%s.run" % n.replace("do_", ""))): | 245 | elif n + ":" + sq_data['hash'][tid] in valid: |
245 | bb.note("SState: Found valid sstate for %s (already run)" % n) | 246 | bb.note("SState: Found valid sstate for %s" % n) |
246 | found.add(tid) | 247 | found.add(tid) |
248 | elif os.path.exists(stampfile): | ||
249 | with open(stampfile, "r") as f: | ||
250 | hash = f.readline().strip() | ||
251 | if hash == sq_data['hash'][tid]: | ||
252 | bb.note("SState: Found valid sstate for %s (already run)" % n) | ||
253 | found.add(tid) | ||
254 | else: | ||
255 | bb.note("SState: sstate hash didn't match previous run for %s (%s vs %s)" % (n, sq_data['hash'][tid], hash)) | ||
256 | missed.add(tid) | ||
247 | else: | 257 | else: |
248 | missed.add(tid) | 258 | missed.add(tid) |
249 | bb.note("SState: Found no valid sstate for %s" % n) | 259 | bb.note("SState: Found no valid sstate for %s (%s)" % (n, sq_data['hash'][tid])) |
250 | 260 | ||
251 | return found | 261 | return found |
252 | 262 | ||
diff --git a/bitbake/lib/bb/tests/runqueue-tests/conf/bitbake.conf b/bitbake/lib/bb/tests/runqueue-tests/conf/bitbake.conf index 1c61f27607..ab0f6bcfac 100644 --- a/bitbake/lib/bb/tests/runqueue-tests/conf/bitbake.conf +++ b/bitbake/lib/bb/tests/runqueue-tests/conf/bitbake.conf | |||
@@ -11,6 +11,6 @@ STAMP = "${TMPDIR}/stamps/${PN}" | |||
11 | T = "${TMPDIR}/workdir/${PN}/temp" | 11 | T = "${TMPDIR}/workdir/${PN}/temp" |
12 | BB_NUMBER_THREADS = "4" | 12 | BB_NUMBER_THREADS = "4" |
13 | 13 | ||
14 | BB_HASHBASE_WHITELIST = "BB_CURRENT_MC BB_HASHSERVE" | 14 | BB_HASHBASE_WHITELIST = "BB_CURRENT_MC BB_HASHSERVE TMPDIR TOPDIR SLOWTASKS SSTATEVALID" |
15 | 15 | ||
16 | include conf/multiconfig/${BB_CURRENT_MC}.conf | 16 | include conf/multiconfig/${BB_CURRENT_MC}.conf |
diff --git a/bitbake/lib/bb/tests/runqueue-tests/recipes/e1.bb b/bitbake/lib/bb/tests/runqueue-tests/recipes/e1.bb new file mode 100644 index 0000000000..1588bc8a59 --- /dev/null +++ b/bitbake/lib/bb/tests/runqueue-tests/recipes/e1.bb | |||
@@ -0,0 +1 @@ | |||
DEPENDS = "b1" \ No newline at end of file | |||