From 42cab601cfd0364c57434f90c6ba66a1ccb179ec Mon Sep 17 00:00:00 2001 From: Jeff King Date: Thu, 28 Jan 2010 04:50:20 -0500 Subject: test combinations of @{} syntax Now that we have several different types of @{} syntax, it is a good idea to test them together, which reveals some failures. Signed-off-by: Jeff King Signed-off-by: Junio C Hamano --- t/t1508-at-combinations.sh | 51 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100755 t/t1508-at-combinations.sh (limited to 't/t1508-at-combinations.sh') diff --git a/t/t1508-at-combinations.sh b/t/t1508-at-combinations.sh new file mode 100755 index 0000000000..59f04636f2 --- /dev/null +++ b/t/t1508-at-combinations.sh @@ -0,0 +1,51 @@ +#!/bin/sh + +test_description='test various @{X} syntax combinations together' +. ./test-lib.sh + +check() { +test_expect_${3:-success} "$1 = $2" " + echo '$2' >expect && + git log -1 --format=%s '$1' >actual && + test_cmp expect actual +" +} +nonsense() { +test_expect_${2:-success} "$1 is nonsensical" " + test_must_fail git log -1 '$1' +" +} +fail() { + "$@" failure +} + +test_expect_success 'setup' ' + test_commit master-one && + test_commit master-two && + git checkout -b upstream-branch && + test_commit upstream-one && + test_commit upstream-two && + git checkout -b old-branch && + test_commit old-one && + test_commit old-two && + git checkout -b new-branch && + test_commit new-one && + test_commit new-two && + git config branch.old-branch.remote . && + git config branch.old-branch.merge refs/heads/master && + git config branch.new-branch.remote . && + git config branch.new-branch.merge refs/heads/upstream-branch +' + +check HEAD new-two +check "@{1}" new-one +check "@{-1}" old-two +check "@{-1}@{1}" old-one +check "@{u}" upstream-two +check "@{u}@{1}" upstream-one +fail check "@{-1}@{u}" master-two +fail check "@{-1}@{u}@{1}" master-one +fail nonsense "@{u}@{-1}" +nonsense "@{1}@{u}" + +test_done -- cgit v1.2.1 From d46a8301930ae83de30fbbbbce1bb02a98745204 Mon Sep 17 00:00:00 2001 From: Jeff King Date: Thu, 28 Jan 2010 04:52:22 -0500 Subject: fix parsing of @{-1}@{u} combination Previously interpret_branch_name would see @{-1} and stop parsing, leaving the @{u} as cruft that provoked an error. Instead, we should recurse if there is more to parse. Signed-off-by: Jeff King Signed-off-by: Junio C Hamano --- t/t1508-at-combinations.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 't/t1508-at-combinations.sh') diff --git a/t/t1508-at-combinations.sh b/t/t1508-at-combinations.sh index 59f04636f2..2a46af24d6 100755 --- a/t/t1508-at-combinations.sh +++ b/t/t1508-at-combinations.sh @@ -43,8 +43,8 @@ check "@{-1}" old-two check "@{-1}@{1}" old-one check "@{u}" upstream-two check "@{u}@{1}" upstream-one -fail check "@{-1}@{u}" master-two -fail check "@{-1}@{u}@{1}" master-one +check "@{-1}@{u}" master-two +check "@{-1}@{u}@{1}" master-one fail nonsense "@{u}@{-1}" nonsense "@{1}@{u}" -- cgit v1.2.1 From 12a258c078da3481a5735a7dca00bbe75cd4713b Mon Sep 17 00:00:00 2001 From: Jeff King Date: Thu, 28 Jan 2010 04:56:43 -0500 Subject: reject @{-1} not at beginning of object name Something like foo@{-1} is nonsensical, as the @{-N} syntax is reserved for "the Nth last branch", and is not an actual reflog selector. We should not feed such nonsense to approxidate at all. Signed-off-by: Jeff King Signed-off-by: Junio C Hamano --- t/t1508-at-combinations.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 't/t1508-at-combinations.sh') diff --git a/t/t1508-at-combinations.sh b/t/t1508-at-combinations.sh index 2a46af24d6..d5d6244178 100755 --- a/t/t1508-at-combinations.sh +++ b/t/t1508-at-combinations.sh @@ -45,7 +45,7 @@ check "@{u}" upstream-two check "@{u}@{1}" upstream-one check "@{-1}@{u}" master-two check "@{-1}@{u}@{1}" master-one -fail nonsense "@{u}@{-1}" +nonsense "@{u}@{-1}" nonsense "@{1}@{u}" test_done -- cgit v1.2.1