Imported Upstream version 2.26.1
[platform/upstream/git.git] / t / t1600-index.sh
index 079d241..b7c31aa 100755 (executable)
@@ -41,8 +41,7 @@ test_expect_success 'no warning with bogus GIT_INDEX_VERSION and existing index'
                GIT_INDEX_VERSION=1 &&
                export GIT_INDEX_VERSION &&
                git add a 2>actual.err &&
-               >expect.err &&
-               test_i18ncmp expect.err actual.err
+               test_must_be_empty actual.err
        )
 '
 
@@ -60,17 +59,42 @@ test_expect_success 'out of bounds index.version issues warning' '
        )
 '
 
-test_expect_success 'GIT_INDEX_VERSION takes precedence over config' '
+test_index_version () {
+       INDEX_VERSION_CONFIG=$1 &&
+       FEATURE_MANY_FILES=$2 &&
+       ENV_VAR_VERSION=$3
+       EXPECTED_OUTPUT_VERSION=$4 &&
        (
                rm -f .git/index &&
-               GIT_INDEX_VERSION=4 &&
-               export GIT_INDEX_VERSION &&
-               git config --add index.version 2 &&
+               rm -f .git/config &&
+               if test "$INDEX_VERSION_CONFIG" -ne 0
+               then
+                       git config --add index.version $INDEX_VERSION_CONFIG
+               fi &&
+               git config --add feature.manyFiles $FEATURE_MANY_FILES
+               if test "$ENV_VAR_VERSION" -ne 0
+               then
+                       GIT_INDEX_VERSION=$ENV_VAR_VERSION &&
+                       export GIT_INDEX_VERSION
+               else
+                       unset GIT_INDEX_VERSION
+               fi &&
                git add a 2>&1 &&
-               echo 4 >expect &&
-               test-index-version <.git/index >actual &&
+               echo $EXPECTED_OUTPUT_VERSION >expect &&
+               test-tool index-version <.git/index >actual &&
                test_cmp expect actual
        )
+}
+
+test_expect_success 'index version config precedence' '
+       test_index_version 0 false 0 2 &&
+       test_index_version 2 false 0 2 &&
+       test_index_version 3 false 0 2 &&
+       test_index_version 4 false 0 4 &&
+       test_index_version 2 false 4 4 &&
+       test_index_version 2 true 0 2 &&
+       test_index_version 0 true 0 4 &&
+       test_index_version 0 true 2 2
 '
 
 test_done