3 test_description='index file specific tests'
 
   7 test_expect_success 'setup' '
 
  11 test_expect_success 'bogus GIT_INDEX_VERSION issues warning' '
 
  14                 GIT_INDEX_VERSION=2bogus &&
 
  15                 export GIT_INDEX_VERSION &&
 
  16                 git add a 2>&1 | sed "s/[0-9]//" >actual.err &&
 
  17                 sed -e "s/ Z$/ /" <<-\EOF >expect.err &&
 
  18                         warning: GIT_INDEX_VERSION set, but the value is invalid.
 
  21                 test_i18ncmp expect.err actual.err
 
  25 test_expect_success 'out of bounds GIT_INDEX_VERSION issues warning' '
 
  28                 GIT_INDEX_VERSION=1 &&
 
  29                 export GIT_INDEX_VERSION &&
 
  30                 git add a 2>&1 | sed "s/[0-9]//" >actual.err &&
 
  31                 sed -e "s/ Z$/ /" <<-\EOF >expect.err &&
 
  32                         warning: GIT_INDEX_VERSION set, but the value is invalid.
 
  35                 test_i18ncmp expect.err actual.err
 
  39 test_expect_success 'no warning with bogus GIT_INDEX_VERSION and existing index' '
 
  41                 GIT_INDEX_VERSION=1 &&
 
  42                 export GIT_INDEX_VERSION &&
 
  43                 git add a 2>actual.err &&
 
  44                 test_must_be_empty actual.err
 
  48 test_expect_success 'out of bounds index.version issues warning' '
 
  50                 sane_unset GIT_INDEX_VERSION &&
 
  52                 git config --add index.version 1 &&
 
  53                 git add a 2>&1 | sed "s/[0-9]//" >actual.err &&
 
  54                 sed -e "s/ Z$/ /" <<-\EOF >expect.err &&
 
  55                         warning: index.version set, but the value is invalid.
 
  58                 test_i18ncmp expect.err actual.err
 
  62 test_index_version () {
 
  63         INDEX_VERSION_CONFIG=$1 &&
 
  64         FEATURE_MANY_FILES=$2 &&
 
  66         EXPECTED_OUTPUT_VERSION=$4 &&
 
  70                 if test "$INDEX_VERSION_CONFIG" -ne 0
 
  72                         git config --add index.version $INDEX_VERSION_CONFIG
 
  74                 git config --add feature.manyFiles $FEATURE_MANY_FILES
 
  75                 if test "$ENV_VAR_VERSION" -ne 0
 
  77                         GIT_INDEX_VERSION=$ENV_VAR_VERSION &&
 
  78                         export GIT_INDEX_VERSION
 
  80                         unset GIT_INDEX_VERSION
 
  83                 echo $EXPECTED_OUTPUT_VERSION >expect &&
 
  84                 test-tool index-version <.git/index >actual &&
 
  85                 test_cmp expect actual
 
  89 test_expect_success 'index version config precedence' '
 
  90         test_index_version 0 false 0 2 &&
 
  91         test_index_version 2 false 0 2 &&
 
  92         test_index_version 3 false 0 2 &&
 
  93         test_index_version 4 false 0 4 &&
 
  94         test_index_version 2 false 4 4 &&
 
  95         test_index_version 2 true 0 2 &&
 
  96         test_index_version 0 true 0 4 &&
 
  97         test_index_version 0 true 2 2