The dirty ones are already passing, but just because describe is comparing
with the wrong working tree.

Signed-off-by: Sebastian Staudt <korak...@gmail.com>
---
 t/t6120-describe.sh | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/t/t6120-describe.sh b/t/t6120-describe.sh
index d639d94696..c863c4f600 100755
--- a/t/t6120-describe.sh
+++ b/t/t6120-describe.sh
@@ -145,14 +145,38 @@ check_describe A-* HEAD
 
 check_describe "A-*[0-9a-f]" --dirty
 
+test_expect_success 'describe --dirty with --work-tree' "
+       (
+               cd '$TEST_DIRECTORY' &&
+               git --git-dir '$TRASH_DIRECTORY/.git' --work-tree 
'$TRASH_DIRECTORY' describe --dirty >'$TRASH_DIRECTORY/out'
+       ) &&
+       grep 'A-\d\+-g[0-9a-f]\+' '$TRASH_DIRECTORY/out'
+"
+
 test_expect_success 'set-up dirty work tree' '
        echo >>file
 '
 
 check_describe "A-*[0-9a-f]-dirty" --dirty
 
+test_expect_success 'describe --dirty with --work-tree' "
+       (
+               cd '$TEST_DIRECTORY' &&
+               git --git-dir '$TRASH_DIRECTORY/.git' --work-tree 
'$TRASH_DIRECTORY' describe --dirty >'$TRASH_DIRECTORY/out'
+       ) &&
+       grep 'A-\d\+-g[0-9a-f]\+-dirty' '$TRASH_DIRECTORY/out'
+"
+
 check_describe "A-*[0-9a-f].mod" --dirty=.mod
 
+test_expect_success 'describe --dirty=.mod with --work-tree' "
+       (
+               cd '$TEST_DIRECTORY' &&
+               git --git-dir '$TRASH_DIRECTORY/.git' --work-tree 
'$TRASH_DIRECTORY' describe --dirty=.mod >'$TRASH_DIRECTORY/out'
+       ) &&
+       grep 'A-\d\+-g[0-9a-f]\+.mod' '$TRASH_DIRECTORY/out'
+"
+
 test_expect_success 'describe --dirty HEAD' '
        test_must_fail git describe --dirty HEAD
 '
@@ -303,12 +327,21 @@ test_expect_success 'describe chokes on severely broken 
submodules' '
        mv .git/modules/sub1/ .git/modules/sub_moved &&
        test_must_fail git describe --dirty
 '
+
 test_expect_success 'describe ignoring a broken submodule' '
        git describe --broken >out &&
        test_when_finished "mv .git/modules/sub_moved .git/modules/sub1" &&
        grep broken out
 '
 
+test_expect_success 'describe with --work-tree ignoring a broken submodule' "
+       (
+               cd '$TEST_DIRECTORY' &&
+               git --git-dir '$TRASH_DIRECTORY/.git' --work-tree 
'$TRASH_DIRECTORY' describe --broken >'$TRASH_DIRECTORY/out'
+       ) &&
+       grep broken '$TRASH_DIRECTORY/out'
+"
+
 test_expect_success 'describe a blob at a directly tagged commit' '
        echo "make it a unique blob" >file &&
        git add file && git commit -m "content in file" &&
-- 
2.20.1

Reply via email to