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 | ||
