t2028: tighten grep expression to make "move worktree" test more robust
Following a rename of worktree "source" to "destination", the "move worktree" test uses grep to verify that the output of "git worktree list --porcelain" does not contain "source" (and does contain "destination"). Unfortunately, the grep expression is too loose and can match unexpectedly. For example, if component of the test trash directory path matches "source" (e.g. "/home/me/sources/git/t/trash*"), then the test will be fooled into thinking that "source" still exists. Tighten the expression to avoid such accidental matches. While at it, drop an unused variable ("toplevel") from the test and tighten a similarly too-loose expression in a related test. Reported-by: Jens Krüger <Jens.Krueger@frm2.tum.de> Signed-off-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
7f19def0fc
commit
b1801b85a3
|
@ -72,12 +72,11 @@ test_expect_success 'move locked worktree' '
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'move worktree' '
|
test_expect_success 'move worktree' '
|
||||||
toplevel="$(pwd)" &&
|
|
||||||
git worktree move source destination &&
|
git worktree move source destination &&
|
||||||
test_path_is_missing source &&
|
test_path_is_missing source &&
|
||||||
git worktree list --porcelain >out &&
|
git worktree list --porcelain >out &&
|
||||||
grep "^worktree.*/destination" out &&
|
grep "^worktree.*/destination$" out &&
|
||||||
! grep "^worktree.*/source" out &&
|
! grep "^worktree.*/source$" out &&
|
||||||
git -C destination log --format=%s >actual2 &&
|
git -C destination log --format=%s >actual2 &&
|
||||||
echo init >expected2 &&
|
echo init >expected2 &&
|
||||||
test_cmp expected2 actual2
|
test_cmp expected2 actual2
|
||||||
|
@ -93,7 +92,7 @@ test_expect_success 'move worktree to another dir' '
|
||||||
test_when_finished "git worktree move some-dir/destination destination" &&
|
test_when_finished "git worktree move some-dir/destination destination" &&
|
||||||
test_path_is_missing destination &&
|
test_path_is_missing destination &&
|
||||||
git worktree list --porcelain >out &&
|
git worktree list --porcelain >out &&
|
||||||
grep "^worktree.*/some-dir/destination" out &&
|
grep "^worktree.*/some-dir/destination$" out &&
|
||||||
git -C some-dir/destination log --format=%s >actual2 &&
|
git -C some-dir/destination log --format=%s >actual2 &&
|
||||||
echo init >expected2 &&
|
echo init >expected2 &&
|
||||||
test_cmp expected2 actual2
|
test_cmp expected2 actual2
|
||||||
|
|
Loading…
Reference in New Issue