> On 17 Dec 2017, at 23:51, Thomas Gummerer <t.gummerer@xxxxxxxxx> wrote: > > 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. I am surprised to see the split index mode test for the linux 32-bit target. Is it likely that a split index bug appears only on 32-bit? Wouldn't the linux-gcc target be sufficient to save resources/time? > 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 For now I think that looks good. Maybe we could define additional test configurations with an environment variable. That could be an array variable defined in the lib-travis.ci "case" statement: https://github.com/git/git/blob/1229713f78cd2883798e95f33c19c81b523413fd/ci/lib-travisci.sh#L42-L65 - Lars