diff mbox series

t3200: refactor symlink test

Message ID 20210819050103.25995-1-carenas@gmail.com (mailing list archive)
State New, archived
Headers show
Series t3200: refactor symlink test | expand

Commit Message

Carlo Marcelo Arenas Belón Aug. 19, 2021, 5:01 a.m. UTC
d1931bcf0d (refs: make errno output explicit for refs_resolve_ref_unsafe,
2021-07-20) add a test for a crash when refs is a symlink, but it fails
on windows.

add the missing SYMLINKS dependency and while at it, refactor it slightly
to comply better with the CodingGuidelines.

Reported-by: Jeff King <peff@peff.net>
Signed-off-by: Carlo Marcelo Arenas Belón <carenas@gmail.com>
---
 t/t3200-branch.sh | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)


base-commit: d1931bcf0d5ef75cdaf836347f4aefce902a6a38

Comments

Eric Sunshine Aug. 19, 2021, 5:51 a.m. UTC | #1
On Thu, Aug 19, 2021 at 1:02 AM Carlo Marcelo Arenas Belón
<carenas@gmail.com> wrote:
> d1931bcf0d (refs: make errno output explicit for refs_resolve_ref_unsafe,
> 2021-07-20) add a test for a crash when refs is a symlink, but it fails
> on windows.
>
> add the missing SYMLINKS dependency and while at it, refactor it slightly
> to comply better with the CodingGuidelines.
>
> Signed-off-by: Carlo Marcelo Arenas Belón <carenas@gmail.com>
> ---
> diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh
> @@ -109,17 +109,22 @@ test_expect_success 'git branch -m n/n n should work' '
> -test_expect_success 'git branch -m with symlinked .git/refs' '
> +test_expect_success SYMLINKS 'git branch -m with symlinked .git/refs' '
>         git init subdir &&
>         test_when_finished "rm -rf subdir" &&
> -       (cd subdir &&
> -               for d in refs objects packed-refs ; do
> -               rm -rf .git/$d &&
> -               ln -s ../../.git/$d .git/$d ; done ) &&
> +       (
> +               cd subdir &&
> +               for d in refs objects packed-refs
> +               do
> +                       rm -rf .git/$d &&
> +                       ln -s ../../.git/$d .git/$d

Ideally, the above line should be:

    ln -s ../../.git/$d .git/$d || exit 1

to catch and signal a failure within the for-loop body (which happens
to be in a subshell; if not in a subshell, you'd use `|| return 1`).

> +               done
> +       ) &&
>         git --git-dir subdir/.git/ branch rename-src &&
> -       expect=$(git rev-parse rename-src) &&
> +       git rev-parse rename-src >expect &&
>         git --git-dir subdir/.git/ branch -m rename-src rename-dest &&
> -       test $(git rev-parse rename-dest) = "$expect" &&
> +       git rev-parse rename-dest >actual &&
> +       test_cmp expect actual &&
>         git branch -D rename-dest
>  '
diff mbox series

Patch

diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh
index dd17718160..6d8700664e 100755
--- a/t/t3200-branch.sh
+++ b/t/t3200-branch.sh
@@ -109,17 +109,22 @@  test_expect_success 'git branch -m n/n n should work' '
 	git reflog exists refs/heads/n
 '
 
-test_expect_success 'git branch -m with symlinked .git/refs' '
+test_expect_success SYMLINKS 'git branch -m with symlinked .git/refs' '
 	git init subdir &&
 	test_when_finished "rm -rf subdir" &&
-	(cd subdir &&
-		for d in refs objects packed-refs ; do
-		rm -rf .git/$d &&
-		ln -s ../../.git/$d .git/$d ; done ) &&
+	(
+		cd subdir &&
+		for d in refs objects packed-refs
+		do
+			rm -rf .git/$d &&
+			ln -s ../../.git/$d .git/$d
+		done
+	) &&
 	git --git-dir subdir/.git/ branch rename-src &&
-	expect=$(git rev-parse rename-src) &&
+	git rev-parse rename-src >expect &&
 	git --git-dir subdir/.git/ branch -m rename-src rename-dest &&
-	test $(git rev-parse rename-dest) = "$expect" &&
+	git rev-parse rename-dest >actual &&
+	test_cmp expect actual &&
 	git branch -D rename-dest
 '