From 3e4068ed90fd3c6f24303560113aae6dbb758699 Mon Sep 17 00:00:00 2001 From: Jeff King Date: Sun, 20 Dec 2015 02:27:18 -0500 Subject: symbolic-ref: propagate error code from create_symref() If create_symref() fails, git-symbolic-ref will still exit with code 0, and our caller has no idea that the command did nothing. This appears to have been broken since the beginning of time (e.g., it is not a regression where create_symref() stopped calling die() or something similar). Signed-off-by: Jeff King Signed-off-by: Junio C Hamano --- t/t1401-symbolic-ref.sh | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 't/t1401-symbolic-ref.sh') diff --git a/t/t1401-symbolic-ref.sh b/t/t1401-symbolic-ref.sh index 36378b0e3f..e9219a9303 100755 --- a/t/t1401-symbolic-ref.sh +++ b/t/t1401-symbolic-ref.sh @@ -63,4 +63,10 @@ test_expect_success 'symbolic-ref fails to delete real ref' ' ' reset_to_sane +test_expect_success 'symbolic-ref reports failure in exit code' ' + test_when_finished "rm -f .git/HEAD.lock" && + >.git/HEAD.lock && + test_must_fail git symbolic-ref HEAD refs/heads/whatever +' + test_done -- cgit v1.2.1 From f91b2732b3df6bae21512af58e0cfccbd5301331 Mon Sep 17 00:00:00 2001 From: Jeff King Date: Sun, 20 Dec 2015 02:27:23 -0500 Subject: t1401: test reflog creation for git-symbolic-ref The current code writes a reflog entry whenever we update a symbolic ref, but we never test that this is so. Let's add a test to make sure upcoming refactoring doesn't cause a regression. Signed-off-by: Jeff King Signed-off-by: Junio C Hamano --- t/t1401-symbolic-ref.sh | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 't/t1401-symbolic-ref.sh') diff --git a/t/t1401-symbolic-ref.sh b/t/t1401-symbolic-ref.sh index e9219a9303..64968b7891 100755 --- a/t/t1401-symbolic-ref.sh +++ b/t/t1401-symbolic-ref.sh @@ -69,4 +69,20 @@ test_expect_success 'symbolic-ref reports failure in exit code' ' test_must_fail git symbolic-ref HEAD refs/heads/whatever ' +test_expect_success 'symbolic-ref writes reflog entry' ' + git checkout -b log1 && + test_commit one && + git checkout -b log2 && + test_commit two && + git checkout --orphan orphan && + git symbolic-ref -m create HEAD refs/heads/log1 && + git symbolic-ref -m update HEAD refs/heads/log2 && + cat >expect <<-\EOF && + update + create + EOF + git log --format=%gs -g >actual && + test_cmp expect actual +' + test_done -- cgit v1.2.1