eccdddfb22cf35d4e5698f72a4b12707aa43b349
braney
  Sun Sep 20 14:27:27 2026 -0700
testRegistry: check the docent column's "-" as well as its names

The docent column says which browser test watches the same ticket, and a named
script was already checked: it has to exist and has to belong to that ticket.
A "-" was checked by nothing, and that was the wrong half to leave out.

`unwatched` -- the list of tickets where nothing anywhere would go red if the
bug came back -- is built entirely out of those "-" values.  They were entered
by hand, by reading the docent directory once, so a script written the next day
left the ticket sitting on that queue with nothing to notice.  For the four
tickets that are on it because their code lives inside a CGI, somebody writing
the docent script is the expected outcome, which made it the likeliest kind of
row to go stale.

So a row claiming no docent script is now checked against the tree the same way
a named one is: if rm<ticket>.*docent.yaml turns up, the check fails and asks
for the row to be filled in.  The failure is somebody doing the right thing and
the table not having heard about it.

Watched to fail and then pass: blanking the docent column of #36212, whose
script is in the tree, turns the real table red with the name of the script it
found.

refs #38391

diff --git src/utils/testRegistry/tests/expected/check.out src/utils/testRegistry/tests/expected/check.out
index 1edf250b8f1..01b956f7f4b 100644
--- src/utils/testRegistry/tests/expected/check.out
+++ src/utils/testRegistry/tests/expected/check.out
@@ -1,12 +1,13 @@
 input/bad.tsv:5: ticket 37263: already on line 4
 input/bad.tsv:6: ticket 38000: lib/tests/noSuchTest.c is not in the tree
 input/bad.tsv:7: ticket 38001: release 'v504' is not a version number
 input/bad.tsv:8: ticket 38002: evidence 'watched-it' is not one of unrecorded, assertion-only, sandbox-ab, release-ab, caught-regression
 input/bad.tsv:9: ticket 38003: why 'slow' is not one of invisible, perf, library
 input/bad.tsv:10: ticket 38004: no note, so nobody can tell what the test holds down
 input/bad.tsv:11: ticket 38005: no test, so the evidence column must be -
 input/bad.tsv:15: ticket 38007: hg/utils/docent/tests/regress/rm38007.docent.yaml is not in the tree
 input/bad.tsv:16: ticket 38008: a docent script for this ticket is named rm38008.*, not rm38303.docent.yaml
 input/bad.tsv: ticket 38006 says both covered and waiting
+input/bad.tsv: ticket 36212 says no docent script, but rm36212.docent.yaml is in the tree; put it in the docent column
 input/bad.tsv: rows are not sorted by ticket then test
   exit 1