384180e37487b4818cf7a98ca43479dda0bb282d
braney
  Wed Sep 30 18:11:33 2026 -0700
backupParseTest, mallocTopPadTest: the off run sets its gate off by name, refs #38185, #38225

Each off conf only included ~/.hg.conf. A developer whose conf chain reaches one
that sets the gated variable got the gate on in both runs, and the test failed.

diff --git src/hg/hgSession/tests/makefile src/hg/hgSession/tests/makefile
index 49185424c21..39cbc173d8a 100644
--- src/hg/hgSession/tests/makefile
+++ src/hg/hgSession/tests/makefile
@@ -1,31 +1,33 @@
 kentSrc = ../../..
 include ../../../inc/common.mk
 
 L += ${MYSQLLIBS} -lm
 MYLIBDIR = ../../../lib/${MACHTYPE}
 MYLIBS = ${MYLIBDIR}/jkhgapcgi.a ${MYLIBDIR}/jkhgap.a ${MYLIBDIR}/jkweb.a
 BIN_DIR = bin/${MACHTYPE}
 
 test: backupParseTest
 	rm -r output
 	@echo tested all
 
 mkdirs:
 	@${MKDIR} output ${BIN_DIR}
 
 # Run once with the hg.conf gate off and once with it on, so the test pins both
 # the old behavior and the new one.  The generated conf includes the developer's
-# own so the database settings come along.
+# own so the database settings come along.  The off conf sets the gate off by
+# name, because the developer's conf may itself include one that turns it on.
 backupParseTest: mkdirs
 	${CC} ${CC_PROG_OPTS} -o ${BIN_DIR}/backupParseTest backupParseTest.c ../backup.c ${MYLIBS} $L
 	echo "include ${HOME}/.hg.conf" > output/off.hg.conf
+	echo "skipMalformedCgiPairs=off" >> output/off.hg.conf
 	chmod 600 output/off.hg.conf
 	echo "include ${HOME}/.hg.conf" > output/on.hg.conf
 	echo "skipMalformedCgiPairs=on" >> output/on.hg.conf
 	chmod 600 output/on.hg.conf
 	HGDB_CONF=output/off.hg.conf ${BIN_DIR}/backupParseTest > output/backupParseTest
 	HGDB_CONF=output/on.hg.conf ${BIN_DIR}/backupParseTest >> output/backupParseTest
 	diff expected/backupParseTest output/backupParseTest
 
 clean:
 	rm -rf *.o bin output