3a1b00734b0c19737b48b171decfeb6b9edd27aa markd Wed May 6 18:16:34 2026 -0700 Fix issue with new htslib and access to tabix VCF header. Permanently enable tests that would have found this problem. They were disable by a non-extent USE_TABIX make vaiable. diff --git src/lib/tests/makefile src/lib/tests/makefile index 0a666f619d0..543f34a78ee 100644 --- src/lib/tests/makefile +++ src/lib/tests/makefile @@ -1,33 +1,27 @@ kentSrc = ../.. include ../../inc/common.mk -ifeq (${USE_TABIX},1) - TABIX_TESTS=tabixTest vcfTest -else - TABIX_TESTS= -endif - MYLIBDIR = ../../lib/${MACHTYPE} MYLIBS = ${MYLIBDIR}/jkweb.a BIN_DIR = bin/${MACHTYPE} pipelineTester = ${BIN_DIR}/pipelineTester test: errCatchTest htmlPageTest htmlExpandUrlTest pipelineTests dyStringTest \ mimeTests base64Tests quotedPTests safeTest hashTest fetchUrlTest gff3Test \ - ${TABIX_TESTS} hacTreeTest mmHashTest testSumDoubles jsonQueryTest + tabixTest vcfTest hacTreeTest mmHashTest testSumDoubles jsonQueryTest rm -r output fetchUrlTest testSumDoubles @echo tested all mkdirs: ${MKDIR} output ${BIN_DIR} testSumDoubles: testSumDoubles.o ${MYLIBS} @${MKDIR} $(dir $@) ${CC} ${COPT} -o ./testSumDoubles testSumDoubles.o ${MYLIBS} ${L} errCatchTest: errCatchTest.o ${MYLIBS} mkdirs @${MKDIR} $(dir $@) ${CC} ${COPT} -o ${BIN_DIR}/errCatchTest errCatchTest.o ${MYLIBS} ${L} ${STRIP} ${BIN_DIR}/errCatchTest${EXE} @@ -299,44 +293,61 @@ tabixFetch1kGNoGenotypes: ${tabixTester} mkdirs ${tabixTester} input/YRI.trio.2010_06.novelsequences.sites.vcf.gz 2:26790860-194631353 > output/$@.out diff expected/$@.out output/$@.out tabixFetch1kGWithGenotypes: ${tabixTester} mkdirs ${tabixTester} input/YRI.low_coverage.2010_07_excerpt.genotypes.vcf.gz 2:26793738-26794385 > output/$@.out diff expected/$@.out output/$@.out ${BIN_DIR}/tabixFetch: tabixFetch.o ${MYLIBS} ${MKDIR} ${BIN_DIR} ${CC} ${COPT} -o ${BIN_DIR}/tabixFetch tabixFetch.o ${MYLIBS} ${L} # vcf: vcfTester=${BIN_DIR}/vcfParseTest -vcfTest: vcfParse1kGNoGenotypes vcfParse1kGWithGenotypes vcfParseOldV3 +vcfTest: vcfParse1kGNoGenotypes vcfParse1kGWithGenotypes vcfParseOldV3 \ + vcfHeader1kGNoGenotypes vcfHeader1kGWithGenotypes vcfHeaderOldV3 vcfParse1kGNoGenotypes: ${vcfTester} mkdirs ${vcfTester} input/YRI.trio.2010_06.novelsequences.sites.vcf.gz 2 26790859 194631353 > output/$@.out diff expected/$@.out output/$@.out vcfParse1kGWithGenotypes: ${vcfTester} mkdirs ${vcfTester} input/YRI.low_coverage.2010_07_excerpt.genotypes.vcf.gz 2 26793737 26794385 > output/$@.out diff expected/$@.out output/$@.out vcfParseOldV3: ${vcfTester} input/20091110_pilot1_vcf_merged_call_sets_YRI.2and3_way.vcf.gz 1 3000 50000 >& output/$@.out diff expected/$@.out output/$@.out +# Regression tests for the tabix header-read path (htslib >= 1.21 tbx_readrec +# strips meta_char lines, so the VCF header must be read off the htsFile +# directly, not via the tabix iterator). These check version, def counts, and +# sample IDs -- all of which silently degrade if the header parser sees nothing. +vcfHeader1kGNoGenotypes: ${vcfTester} mkdirs + ${vcfTester} -headerOnly input/YRI.trio.2010_06.novelsequences.sites.vcf.gz > output/$@.out + diff expected/$@.out output/$@.out + +vcfHeader1kGWithGenotypes: ${vcfTester} mkdirs + ${vcfTester} -headerOnly input/YRI.low_coverage.2010_07_excerpt.genotypes.vcf.gz > output/$@.out + diff expected/$@.out output/$@.out + +vcfHeaderOldV3: ${vcfTester} mkdirs + ${vcfTester} -headerOnly input/20091110_pilot1_vcf_merged_call_sets_YRI.2and3_way.vcf.gz > output/$@.out + diff expected/$@.out output/$@.out + ${BIN_DIR}/vcfParseTest: vcfParseTest.o ${MYLIBS} ${MKDIR} ${BIN_DIR} ${CC} ${COPT} -o ${BIN_DIR}/vcfParseTest vcfParseTest.o ${MYLIBS} ${L} # hacTree: hacTreeTester=${BIN_DIR}/hacTreeTest hacTreeTest: ${hacTreeTester} mkdirs ${hacTreeTester} input/$@.txt output/$@.out diff expected/$@.out output/$@.out ${BIN_DIR}/hacTreeTest: hacTreeTest.o ${MYLIBS} ${MKDIR} ${BIN_DIR} ${CC} ${COPT} -o ${BIN_DIR}/hacTreeTest hacTreeTest.o ${MYLIBS} ${L}