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