test-lib: allow setting the index format version

Allow adding a TEST_GIT_INDEX_VERSION variable to config.mak to set the
index version with which the test suite should be run.

If it isn't set, the default version given in the source code is
used (currently version 3).

To avoid breakages with index versions other than [23], also set the
index version under which t2104 is run to 3.  This test only tests
functionality specific to version 2 and 3 of the index file and would
fail if the test suite is run with any other version.

Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Thomas Gummerer 2014-02-23 21:49:58 +01:00 committed by Junio C Hamano
parent 136347d718
commit 5d9fc888b4
4 changed files with 20 additions and 0 deletions

View file

@ -342,6 +342,10 @@ all::
# Define DEFAULT_HELP_FORMAT to "man", "info" or "html" # Define DEFAULT_HELP_FORMAT to "man", "info" or "html"
# (defaults to "man") if you want to have a different default when # (defaults to "man") if you want to have a different default when
# "git help" is called without a parameter specifying the format. # "git help" is called without a parameter specifying the format.
#
# Define TEST_GIT_INDEX_VERSION to 2, 3 or 4 to run the test suite
# with a different indexfile format version. If it isn't set the index
# file format used is index-v[23].
GIT-VERSION-FILE: FORCE GIT-VERSION-FILE: FORCE
@$(SHELL_PATH) ./GIT-VERSION-GEN @$(SHELL_PATH) ./GIT-VERSION-GEN
@ -2222,6 +2226,9 @@ endif
ifdef GIT_PERF_MAKE_OPTS ifdef GIT_PERF_MAKE_OPTS
@echo GIT_PERF_MAKE_OPTS=\''$(subst ','\'',$(subst ','\'',$(GIT_PERF_MAKE_OPTS)))'\' >>$@ @echo GIT_PERF_MAKE_OPTS=\''$(subst ','\'',$(subst ','\'',$(GIT_PERF_MAKE_OPTS)))'\' >>$@
endif endif
ifdef TEST_GIT_INDEX_VERSION
@echo TEST_GIT_INDEX_VERSION=\''$(subst ','\'',$(subst ','\'',$(TEST_GIT_INDEX_VERSION)))'\' >>$@
endif
### Detect Python interpreter path changes ### Detect Python interpreter path changes
ifndef NO_PYTHON ifndef NO_PYTHON

View file

@ -7,6 +7,8 @@ test_description='skip-worktree bit test'
. ./test-lib.sh . ./test-lib.sh
test_set_index_version 3
cat >expect.full <<EOF cat >expect.full <<EOF
H 1 H 1
H 2 H 2

View file

@ -32,6 +32,11 @@ test_set_editor () {
export EDITOR export EDITOR
} }
test_set_index_version () {
GIT_INDEX_VERSION="$1"
export GIT_INDEX_VERSION
}
test_decode_color () { test_decode_color () {
awk ' awk '
function name(n) { function name(n) {

View file

@ -108,6 +108,12 @@ export GIT_AUTHOR_EMAIL GIT_AUTHOR_NAME
export GIT_COMMITTER_EMAIL GIT_COMMITTER_NAME export GIT_COMMITTER_EMAIL GIT_COMMITTER_NAME
export EDITOR export EDITOR
if test -n "${TEST_GIT_INDEX_VERSION:+isset}"
then
GIT_INDEX_VERSION="$TEST_GIT_INDEX_VERSION"
export GIT_INDEX_VERSION
fi
# Add libc MALLOC and MALLOC_PERTURB test # Add libc MALLOC and MALLOC_PERTURB test
# only if we are not executing the test with valgrind # only if we are not executing the test with valgrind
if expr " $GIT_TEST_OPTS " : ".* --valgrind " >/dev/null || if expr " $GIT_TEST_OPTS " : ".* --valgrind " >/dev/null ||