Jeff King came up with a couple examples that demonstrate how the new
read_early_config() that looks harder for the current .git/ directory
could die() in an undesirable way.

Let's add those cases to the test script, to document what we would like
to happen when early config encounters problems.

Signed-off-by: Johannes Schindelin <johannes.schinde...@gmx.de>
---
 t/t1309-early-config.sh | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/t/t1309-early-config.sh b/t/t1309-early-config.sh
index 0c55dee514c..027eca63a3c 100755
--- a/t/t1309-early-config.sh
+++ b/t/t1309-early-config.sh
@@ -47,4 +47,29 @@ test_expect_success 'ceiling #2' '
        test xdg = "$(cat output)"
 '
 
+test_with_config ()
+{
+       rm -rf throwaway &&
+       git init throwaway &&
+       (
+               cd throwaway &&
+               echo "$*" >.git/config &&
+               test-config read_early_config early.config
+       )
+}
+
+test_expect_success 'ignore .git/ with incompatible repository version' '
+       test_with_config "[core]repositoryformatversion = 999999" 2>err &&
+       grep "warning:.* Expected git repo version <= [1-9]" err
+'
+
+test_expect_failure 'ignore .git/ with invalid repository version' '
+       test_with_config "[core]repositoryformatversion = invalid"
+'
+
+
+test_expect_failure 'ignore .git/ with invalid config' '
+       test_with_config "["
+'
+
 test_done
-- 
2.12.0.windows.1.7.g94dafc3b124

Reply via email to