Split index mode only has a few dedicated tests, but as the index is involved in nearly every git operation, this doesn't quite cover all the ways repositories with split index can break. To use split index mode throughout the test suite a GIT_TEST_SPLIT_INDEX environment variable can be set, which makes git split the index at random and thus excercises the functionality much more thoroughly. As this is not turned on by default, it is not executed nearly as often as the test suite is run, so occationally breakages slip through. Try to counteract that by running the test suite with GIT_TEST_SPLIT_INDEX mode turned on on travis. To avoid using too many cycles on travis only run split index mode in the linux-gcc and the linux 32-bit gcc targets. The Linux builds were chosen over the Mac OS builds because they tend to be much faster to complete. The linux gcc build was chosen over the linux clang build because the linux clang build is the fastest build, so it can serve as an early indicator if something is broken and we want to avoid spending the extra cycles of running the test suite twice for that. Helped-by: Lars Schneider <larsxschneider@xxxxxxxxx> Helped-by: Junio C Hamano <gitster@xxxxxxxxx> Signed-off-by: Thomas Gummerer <t.gummerer@xxxxxxxxx> --- ci/run-linux32-build.sh | 1 + ci/run-tests.sh | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/ci/run-linux32-build.sh b/ci/run-linux32-build.sh index e30fb2cddc..f173c9cf2a 100755 --- a/ci/run-linux32-build.sh +++ b/ci/run-linux32-build.sh @@ -27,4 +27,5 @@ linux32 --32bit i386 su -m -l $CI_USER -c ' cd /usr/src/git && make --jobs=2 && make --quiet test + GIT_TEST_SPLIT_INDEX=YesPlease make --quiet test ' diff --git a/ci/run-tests.sh b/ci/run-tests.sh index f0c743de94..c7aee5b9ff 100755 --- a/ci/run-tests.sh +++ b/ci/run-tests.sh @@ -8,3 +8,7 @@ mkdir -p $HOME/travis-cache ln -s $HOME/travis-cache/.prove t/.prove make --quiet test +if test "$jobname" = "linux-gcc" +then + GIT_TEST_SPLIT_INDEX=YesPlease make --quiet test +fi -- 2.15.1.620.gb9897f4670