From abda938d665bacc867e6328926892fbeb414f517 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Mon, 12 Aug 2019 15:54:54 +0100 Subject: 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 --- .../lib/bb/tests/runqueue-tests/classes/base.bbclass | 20 +++++++++++++++----- .../lib/bb/tests/runqueue-tests/conf/bitbake.conf | 2 +- bitbake/lib/bb/tests/runqueue-tests/recipes/e1.bb | 1 + 3 files changed, 17 insertions(+), 6 deletions(-) create mode 100644 bitbake/lib/bb/tests/runqueue-tests/recipes/e1.bb (limited to 'bitbake/lib/bb/tests/runqueue-tests') 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): thistask = d.expand("${PN}:${BB_CURRENTTASK}") stampname = d.expand("${TOPDIR}/%s.run" % thistask) with open(stampname, "a+") as f: - f.write("\n") + f.write(d.getVar("BB_UNIHASH") + "\n") if d.getVar("BB_CURRENT_MC") != "default": thistask = d.expand("${BB_CURRENT_MC}:${PN}:${BB_CURRENTTASK}") @@ -235,18 +235,28 @@ def sstate_checkhashes(sq_data, d, siginfo=False, currentcount=0, **kwargs): valid = d.getVar("SSTATEVALID").split() - for tid in sq_data['hash']: + for tid in sorted(sq_data['hash']): n = os.path.basename(bb.runqueue.fn_from_tid(tid)).split(".")[0] + ":do_" + bb.runqueue.taskname_from_tid(tid)[3:] print(n) + stampfile = d.expand("${TOPDIR}/%s.run" % n.replace("do_", "")) if n in valid: bb.note("SState: Found valid sstate for %s" % n) found.add(tid) - elif os.path.exists(d.expand("${TOPDIR}/%s.run" % n.replace("do_", ""))): - bb.note("SState: Found valid sstate for %s (already run)" % n) + elif n + ":" + sq_data['hash'][tid] in valid: + bb.note("SState: Found valid sstate for %s" % n) found.add(tid) + elif os.path.exists(stampfile): + with open(stampfile, "r") as f: + hash = f.readline().strip() + if hash == sq_data['hash'][tid]: + bb.note("SState: Found valid sstate for %s (already run)" % n) + found.add(tid) + else: + bb.note("SState: sstate hash didn't match previous run for %s (%s vs %s)" % (n, sq_data['hash'][tid], hash)) + missed.add(tid) else: missed.add(tid) - bb.note("SState: Found no valid sstate for %s" % n) + bb.note("SState: Found no valid sstate for %s (%s)" % (n, sq_data['hash'][tid])) return found 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}" T = "${TMPDIR}/workdir/${PN}/temp" BB_NUMBER_THREADS = "4" -BB_HASHBASE_WHITELIST = "BB_CURRENT_MC BB_HASHSERVE" +BB_HASHBASE_WHITELIST = "BB_CURRENT_MC BB_HASHSERVE TMPDIR TOPDIR SLOWTASKS SSTATEVALID" 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 -- cgit v1.2.3-54-g00ecf