722e46a2cca739fb7abe042315e8ca3c5e55f8f5 braney Wed Sep 23 14:25:15 2026 -0700 Run the hg/utils tests from make test, and fix the two that had gone red, no redmine make test never reached hg/utils. hg/makefile only descends into an app that has a tests/makefile, and hg/utils has none, so the hubCheck, vcfToHgvs and other hg/utils tests were skipped without a message. Added utils to TEST_DIRS. hubCheck stopped warning about a track with no description page after 1258d7f65e7. A track with no page now keeps the empty string that trackDbCustom.c sets, and hubCheck tested for NULL. It now uses isEmpty(). badType gained a real error when 571aecdf42c stopped dropping tracks, and its expected output was never updated. vcfToHgvs stopLoss reads the live hg38 ncbiRefSeq tables, which now have 32 more transcripts and NM_153819.2. diff --git src/hg/utils/hubCheck/hubCheck.c src/hg/utils/hubCheck/hubCheck.c index 1c96bc71205..7363ba663cf 100644 --- src/hg/utils/hubCheck/hubCheck.c +++ src/hg/utils/hubCheck/hubCheck.c @@ -1078,31 +1078,31 @@ // No point in checking the data file if the type setting is incorrect, // since hubCheckBigDataUrl will error out early with a less clear message // if the type line is messed up. This has the added benefit of providing // consistent messaging on command line interface vs web interface if (!foundTypeError && options->checkFiles) hubCheckBigDataUrl(hub, genome, tdb); checkViewLimitsSettings(tdb); checkOrphanedRangeFilters(tdb); if (!sameString(tdb->track, "cytoBandIdeo")) { trackHubAddDescription(genome->trackDbFile, tdb); - if (!tdb->html) + if (isEmpty(tdb->html)) warn("warning: missing description page for track. Add 'html %s.html' line to the '%s' track stanza. ", tdb->track, tdb->track); else hubCheckDescriptionRemovals(genome, tdb); } if (!trackIsContainer && sameString(trackDbRequiredSetting(tdb, "type"), "bigWig")) { char *autoScaleSetting = trackDbLocalSetting(tdb, "autoScale"); if (autoScaleSetting && !sameString(autoScaleSetting, "off") && !sameString(autoScaleSetting, "on")) { errAbort("track \"%s\" uses 'autoScale %s', but individual bigWig tracks only accept " "'autoScale on' or 'autoScale off'. If you're trying to set 'autoScale group', " "that setting belongs in the parent composite stanza instead.", trackHubSkipHubName(tdb->track), autoScaleSetting);