a0a3411bca2fdd6d704ce2be7c9c8fca7682913a braney Sat Sep 19 18:19:36 2026 -0700 bedItemRgbTester: pin the order of the itemRgb and color tests bedItemRgb() decides whether a BED track draws its items in the colors its file carries or in the one color its stanza names. The rule has four steps, and the order of the first three is the whole of #36212: an explicit "itemRgb off" wins, then an explicit "itemRgb on" wins, and only then does the presence of a "color" setting turn item colors off by default. 88d620e6c82 folded those tests together, so a stanza saying both "itemRgb on" and "color" -- which means items from the file and labels from color -- lost its item colors. The pairs are what matter here. Every single-setting case passed while the bug was live, so a test that exercised one setting at a time would have proved nothing. A child that says "itemRgb on" under a parent that says "color" is the same case reached through trackDbSettingClosestToHome. Two runs, with and without hg.conf's alwaysItemRgb, since the last step of the rule reads it and a mirror that turns it off must still honour a stanza that asks for item colors explicitly. The test lives in hg/lib/tests because hg/cgilib has no tests directory; its link line adds jkhgapcgi.a. Watched to fail and then pass: with the color test moved back in front of the itemRgb test, three lines flip, and they are the three that pair the two settings. Recorded as sandbox-ab in utils/testRegistry. refs #36212, refs #38391 diff --git src/utils/testRegistry/registry.tsv src/utils/testRegistry/registry.tsv index 9ad333d6854..6083f597936 100644 --- src/utils/testRegistry/registry.tsv +++ src/utils/testRegistry/registry.tsv @@ -39,31 +39,31 @@ # so the two tables can be read on one scale. Every row starts at unrecorded # and earns its way up by measurement, not by argument. # note what the test holds down. On a row with no test, what it would have to hold # down, which is the first thing the person who writes it needs. # # One ticket can have several rows and one test can defend several tickets; both happen # here already. A ticket cannot be both covered and waiting. # # `testRegistry check` reads every row and fails when one has rotted, so a test cannot be # renamed or deleted without coming here. # #ticket release test docent why evidence note 10138 504 - rm10138.docent.yaml invisible - needs one: the session data directory hash went from 8 to 10 hex characters 20824 504 hg/utils/netToBigNet/tests/makefile::simpleTest - library unrecorded a net converted to bigNet and back, byte compared 27988 504 - - invisible - needs one: a server that is not the node hg.conf names has to recognise itself -36212 504 - rm36212.docent.yaml library - needs one: an explicit itemRgb on has to beat the presence of a color setting +36212 504 hg/lib/tests/bedItemRgbTester.c rm36212.docent.yaml library sandbox-ab an explicit itemRgb on beats the presence of a color setting, in the stanza and from a parent 37263 504 lib/tests/pathSimplifyTest.c - library unrecorded dot-dot collapsing, checked against the right answer rather than against the old one 37969 504 - rm37969.docent.yaml library - needs one: a quickLifted container must not hide the tracks inside it 37984 504 lib/tests/hmacTest.c - library sandbox-ab the pending social identity is signed with hmacMd5, not a plain md5 of salt plus fields 38086 504 - - invisible - needs one: a stale cart visibility variable must not hide a new BLAT result track 38126 504 lib/tests/htmlSanitizeTest.c rm38126.docent.yaml library unrecorded the allowlist that hub and custom track description HTML is filtered through 38184 504 - rm38184.docent.yaml invisible - needs one: db= resolving to the assembly already loaded must keep the session position 38185 504 hg/hgSession/tests/backupParseTest.c rm38185.docent.yaml invisible unrecorded an empty pair in a session backup must not eat the variable in front of it 38185 504 lib/tests/cgiParseTest.c rm38185.docent.yaml invisible unrecorded an empty CGI pair must not abort the request 38198 504 - rm38198.docent.yaml library - needs one: a second lift has to update a track already in the hub 38225 504 hg/lib/tests/mallocTopPadTester.c - perf sandbox-ab the hg.conf step size reaches the C library: the heap grows in one 16 MB jump, not the default one 38233 504 - - perf - needs one: RefSeq status is asked once per track, not once per gene; the test has to count the queries, not the seconds 38236 504 - rm38236.docent.yaml library - needs one: a quickLift chain with no aligned block in the window must not crash 38248 504 - rm38248.docent.yaml library - needs one: a deprecated versioned NP_ accession has to resolve to RefSeq Historical 38249 504 hg/lib/tests/quickLiftTester.c rm38249.docent.yaml library unrecorded the target strand of a reverse complemented protein, found in the #38349 review 38253 504 - - perf - needs one: item coverage is built from feature runs, not one counter per base; the test has to go red if a per-base pass comes back