a8b15f82bbcff0d7953bae0da7df49363939f85a
lrnassar
  Wed Aug 5 16:59:54 2026 -0700
Add tests for every maf sequence-name form, and describe the splitting in the usage messages. refs #37928

The existing testDot and testPipe inputs are identical copies of each other and both use
pipe-form query names, so the dot path was never exercised in either tool. That is how
the break in ae63ce5 shipped even though a test suite existed, and why the suite could
not have caught the mafToBigMafSummary divergence either.

New inputs in both tests directories cover an ordinary db.chrom, a species name with a
dotted chrom, both GenArk accession forms, a GenArk accession with no chrom after the
version, a pipe with a dotted chrom, a name with no separator, a reference assembly
whose own name contains a dot, and a name where the reference db is a strict prefix of
another assembly. Every rule in the splitter is now load-bearing: breaking any one of
them fails a target.

Also adds mafToBigMafSummary to TEST_DIRS in hg/utils, since nothing above the directory
was running its suite, and adds a short note to both usage messages describing how a
sequence name is split into assembly and sequence.

diff --git src/hg/makeDb/hgLoadMaf/tests/makefile src/hg/makeDb/hgLoadMaf/tests/makefile
index 4e7b20cffe8..8d40a9b608e 100644
--- src/hg/makeDb/hgLoadMaf/tests/makefile
+++ src/hg/makeDb/hgLoadMaf/tests/makefile
@@ -1,34 +1,51 @@
 kentSrc = ../../../..
 include ../../../../inc/common.mk
 # tests for hgLoadMaf
 
 hgLoadMaf = ${DESTBINDIR}/hgLoadMaf
 hgLoadMafSummary = ${DESTBINDIR}/hgLoadMafSummary
 
 #test: testoutput clean
-test: testdot testpipe clean
+test: testdot testpipe testnameforms testgenarkref testdottedref clean
 
 TEST1 = testNan
 
 testoutput: ${TEST1}
 
 clean:
 	rm -fr output
 
 testdot: init-tests
 	${hgLoadMafSummary} -test hg38 output/testDot input/testDot.maf
 	diff output/testDot.tab expected
 
 testpipe: init-tests
 	${hgLoadMafSummary} -test hg38 output/testPipe input/testPipe.maf
 	diff output/testPipe.tab expected
 
+# every sequence-name form mafSplitSrcGetChrom handles, in one maf
+testnameforms: init-tests
+	${hgLoadMafSummary} -test hg38 output/testNameForms input/testNameForms.maf
+	diff output/testNameForms.tab expected
+
+# GenArk accession as the reference assembly: chrom must not keep the version dot
+testgenarkref: init-tests
+	${hgLoadMafSummary} -test GCF_000001405.40 output/testGenArkRef input/testGenArkRef.maf
+	diff output/testGenArkRef.tab expected
+
+# dotted reference assembly that is not a GCA_/GCF_ accession, so only the rule that
+# matches the given database can split it: without that rule the chrom comes out as
+# "1.contig7" instead of "contig7"
+testdottedref: init-tests
+	${hgLoadMafSummary} -test AABBCC010000001.1 output/testDottedRef input/testDottedRef.maf
+	diff output/testDottedRef.tab expected
+
 testNan: init-tests
 	${hgLoadMaf} -warn -test=input/${TEST1}.maf hg16 ${TEST1} > output/${TEST1}.log
 	mv ${TEST1}.tab output
 	diff output/${TEST1}.tab expected
 	diff output/${TEST1}.log expected
 
 init-tests:
 	${MKDIR} output