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>

Eric Sunshine committed Apr 3, 2018 at 05:25 UTC b1801b85a32e21a7e83d165b029b5115ab0f8167
1 file changed +3 -4
t/t2028-worktree-move.sh
+3 -4
@@ -72,12 +72,11 @@ test_expect_success 'move locked worktree' '
72 '
73
74 test_expect_success 'move worktree' '
75 - toplevel="$(pwd)" &&
75 git worktree move source destination &&
76 test_path_is_missing source &&
77 git worktree list --porcelain >out &&
79 - grep "^worktree.*/destination" out &&
80 - ! grep "^worktree.*/source" out &&
78 + grep "^worktree.*/destination$" out &&
79 + ! grep "^worktree.*/source$" out &&
80 git -C destination log --format=%s >actual2 &&
81 echo init >expected2 &&
82 test_cmp expected2 actual2
@@ -93,7 +92,7 @@ test_expect_success 'move worktree to another dir' '
92 test_when_finished "git worktree move some-dir/destination destination" &&
93 test_path_is_missing destination &&
94 git worktree list --porcelain >out &&
96 - grep "^worktree.*/some-dir/destination" out &&
95 + grep "^worktree.*/some-dir/destination$" out &&
96 git -C some-dir/destination log --format=%s >actual2 &&
97 echo init >expected2 &&
98 test_cmp expected2 actual2