diff options
Diffstat (limited to 'bitbake/lib/bb/tests/runqueue-tests/classes/base.bbclass')
-rw-r--r-- | bitbake/lib/bb/tests/runqueue-tests/classes/base.bbclass | 20 |
1 files changed, 15 insertions, 5 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 | ||