On 12/18, Lars Schneider wrote: > > > 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? I'm not sure it's particularly likely for a bug to appear only on 32-bit builds. It also doesn't seem to take too long to run, so I thought I'd add it just in case, but I'm happy running the tests only in the 64-bit builds if that's preferred. > > 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 That sounds like a good idea. I'll try to see if I can come up with something. > - Lars