]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t1092: add sparse directory before cone in test repo
authorVictoria Dye <vdye@github.com>
Thu, 17 Mar 2022 15:55:34 +0000 (15:55 +0000)
committerJunio C Hamano <gitster@pobox.com>
Thu, 17 Mar 2022 16:13:21 +0000 (09:13 -0700)
Add a sparse directory 'before/' containing files 'a' and 'b' to the test
repo used in 't/t1092-sparse-checkout-compatibility.sh'. This is meant to
ensure that no sparse index integrations rely on the in-cone path(s) being
lexicographically first in the repo.

Unfortunately, some existing tests do not handle this repo architecture
properly:

* 'add outside sparse cone'
* 'status/add: outside sparse cone'
* 'reset with pathspecs inside sparse definition'

All three of these are due to the incorrect handling of the
'unpack_trees_options.cache_bottom' when performing a cache diff via
'unpack_trees'. This will be corrected in a future patch; in the meantime,
mark the tests with 'test_expect_failure'.

Finally, update the 'ls-files' and 'root directory cannot be sparse' tests
to include the 'before/' directory in their expected index contents.

Co-authored-by: Derrick Stolee <derrickstolee@github.com>
Signed-off-by: Victoria Dye <vdye@github.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t1092-sparse-checkout-compatibility.sh

index dcc0a30d4ad32e43a5aec5ceaf61008a05d1d11c..dcd7061fb3be1b28155331466f7b53ef267d2298 100755 (executable)
@@ -16,7 +16,9 @@ test_expect_success 'setup' '
                echo "after deep" >e &&
                echo "after folder1" >g &&
                echo "after x" >z &&
-               mkdir folder1 folder2 deep x &&
+               mkdir folder1 folder2 deep before x &&
+               echo "before deep" >before/a &&
+               echo "before deep again" >before/b &&
                mkdir deep/deeper1 deep/deeper2 deep/before deep/later &&
                mkdir deep/deeper1/deepest &&
                mkdir deep/deeper1/deepest2 &&
@@ -254,6 +256,7 @@ test_expect_success 'root directory cannot be sparse' '
 
        # Verify sparse directories still present, root directory is not sparse
        cat >expect <<-EOF &&
+       before/
        folder1/
        folder2/
        x/
@@ -337,7 +340,7 @@ test_expect_success 'deep changes during checkout' '
        test_all_match git checkout base
 '
 
-test_expect_success 'add outside sparse cone' '
+test_expect_failure 'add outside sparse cone' '
        init_repos &&
 
        run_on_sparse mkdir folder1 &&
@@ -379,7 +382,7 @@ test_expect_success 'commit including unstaged changes' '
        test_all_match git status --porcelain=v2
 '
 
-test_expect_success 'status/add: outside sparse cone' '
+test_expect_failure 'status/add: outside sparse cone' '
        init_repos &&
 
        # folder1 is at HEAD, but outside the sparse cone
@@ -590,7 +593,7 @@ test_expect_success 'checkout and reset (keep)' '
        test_all_match test_must_fail git reset --keep deepest
 '
 
-test_expect_success 'reset with pathspecs inside sparse definition' '
+test_expect_failure 'reset with pathspecs inside sparse definition' '
        init_repos &&
 
        write_script edit-contents <<-\EOF &&
@@ -1444,6 +1447,7 @@ test_expect_success 'ls-files' '
 
        cat >expect <<-\EOF &&
        a
+       before/
        deep/
        e
        folder1-
@@ -1491,6 +1495,7 @@ test_expect_success 'ls-files' '
 
        cat >expect <<-\EOF &&
        a
+       before/
        deep/
        e
        folder1-