fb5921dc918983ecc5182b1ef23a9fc64b556114
braney
  Fri Oct 2 10:00:42 2026 -0700
docent rm38462 out of xfail after genome-test built the fix, refs #38462, #38252

diff --git src/hg/utils/docent/tests/regress/rm38462.xfail.docent.yaml src/hg/utils/docent/tests/regress/rm38462.docent.yaml
similarity index 91%
rename from src/hg/utils/docent/tests/regress/rm38462.xfail.docent.yaml
rename to src/hg/utils/docent/tests/regress/rm38462.docent.yaml
index d8cb07a3255..c4a31d21bdc 100644
--- src/hg/utils/docent/tests/regress/rm38462.xfail.docent.yaml
+++ src/hg/utils/docent/tests/regress/rm38462.docent.yaml
@@ -1,31 +1,31 @@
 # #38462 -- a wiggle or bigWig with `negateValues on` drew its mean+whiskers range from a
 # max that had been cut to a whole number.
 #
 # The cause is three lines in preDrawWindowFunction(), hg/hgTracks/wigTrack.c:
 #
 #     int swap = preDraw[i].min;          <-- min and max are doubles (wigCommon.h)
 #     preDraw[i].min = -preDraw[i].max;
 #     preDraw[i].max = -swap;
 #
 # so the old min loses its fraction on the way into the new max. The fix, e3084c1bf7c, is
 # `double swap`. The line dates from 10909409129 (2014). Lou found it while QAing
 # GPN-Star (#38451).
 #
-# This is an XFAIL until genome-test builds e3084c1bf7c. It fails there today for its own
-# reason, and `make test` goes red the morning it passes. Then drop the .xfail from the
-# name and add a server-flip line below.
+# This was an xfail until 2026-10-02. It failed on genome-test that morning, and passed
+# there once a cgi-alpha build that included e3084c1bf7c was installed. The .xfail then came
+# off the name.
 #
 # The fixture is ours, at ~/public_html/docentFixtures/rm38462/hubFlat.txt: one bigWig with
 # every base of chr1:10,000,001-10,100,000 set to 0.75, and two tracks over it. A flat
 # signal is on purpose. Every pixel then has min = max = mean = 0.75, so:
 #
 #   rm38462neg   negateValues on, points, viewLimits -1:0, mean+whiskers, altColor 255,0,0
 #       fixed    min = max = -0.75. The whisker is one pixel and the mean is drawn over it,
 #                in altColor, since the value is negative -> the row is 255,0,0
 #       broken   max = -(int)0.75 = 0. The whisker runs from 0 down to -0.75, 75 of the
 #                row's 100 pixels, in the light whisker shade -> the row is 255,141,141
 #   rm38462pos   the same track without negateValues, viewLimits 0:1. It is 0,0,255 on
 #                both builds. It shows that the fixture loaded and that whiskers are drawn
 #                at all, so a failure on rm38462neg is about negation.
 #
 # With real data, as in the ticket, the min and max differ, and the light whisker covers
@@ -37,30 +37,31 @@
 # 255,141,141 at 99% of the row. Against the #38462 ticket sandbox on port 48088, tree
 # ~/kentNegate38462 (origin/master f4d967492fe plus the one-word fix), it is 255,0,0 at 99%.
 # rm38462pos is 0,0,255 at 100% on both.
 #
 # NOT asserted: the mean+/-std box. preDrawWindowFunction negates the value and the min
 # and max, but not sumData, so the std box is computed from the un-negated mean. That is
 # a separate question and outside #38462.
 #
 # The 100 kb window gives about 145 bases a pixel, which mean+whiskers needs: hgTracks
 # draws whiskers only when there are more bases than pixels. The hub declares
 # `visibility full` itself, so there is no `track:` step. A hub track's cart name carries
 # a per-run hub_<n>_ prefix that `track:` cannot write.
 proof:
   - "xfail 2026-10-02 -- fails on genome-test: rm38462neg is drawn 255,141,141 (the whisker shade), wanted 255,0,0"
   - "sandbox-ab 2026-10-02 -- passes on ticket sandbox 38462 (port 48088, ~/kentNegate38462 = origin/master f4d967492fe + double swap): rm38462neg 255,0,0 at 99%"
+  - "server-flip 2026-10-02 -- genome-test's cgi-alpha build of 09:44, with e3084c1bf7c, passes: rm38462neg 255,0,0 at 99%, rm38462pos 0,0,255"
 
 target: genome-test
 db: hg38
 position: chr1:10000001-10100000
 reset: true
 fast: true
 steps:
   - hub: {url: "https://hgwdev.gi.ucsc.edu/~braney/docentFixtures/rm38462/hubFlat.txt", db: hg38}
   - go: chr1:10000001-10100000
 
   # The hub attached and both rows were drawn. Setup, not the assertion.
   - expect:
       rows: [rm38462neg, rm38462pos]
       noText: "Unable to open"