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 <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King committed
Jan 28, 2010 at 04:50 UTC
42cab601cfd0364c57434f90c6ba66a1ccb179ec
1 file changed
+51
t/t1508-at-combinations.sh
new
+51
@@ -0,0 +1,51 @@
1
+#!/bin/sh
2
+
3
+test_description='test various @{X} syntax combinations together'
4
+. ./test-lib.sh
5
+
6
+check() {
7
+test_expect_${3:-success} "$1 = $2" "
8
+ echo '$2' >expect &&
9
+ git log -1 --format=%s '$1' >actual &&
10
+ test_cmp expect actual
11
+"
12
+}
13
+nonsense() {
14
+test_expect_${2:-success} "$1 is nonsensical" "
15
+ test_must_fail git log -1 '$1'
16
+"
17
+}
18
+fail() {
19
+ "$@" failure
20
+}
21
+
22
+test_expect_success 'setup' '
23
+ test_commit master-one &&
24
+ test_commit master-two &&
25
+ git checkout -b upstream-branch &&
26
+ test_commit upstream-one &&
27
+ test_commit upstream-two &&
28
+ git checkout -b old-branch &&
29
+ test_commit old-one &&
30
+ test_commit old-two &&
31
+ git checkout -b new-branch &&
32
+ test_commit new-one &&
33
+ test_commit new-two &&
34
+ git config branch.old-branch.remote . &&
35
+ git config branch.old-branch.merge refs/heads/master &&
36
+ git config branch.new-branch.remote . &&
37
+ git config branch.new-branch.merge refs/heads/upstream-branch
38
+'
39
+
40
+check HEAD new-two
41
+check "@{1}" new-one
42
+check "@{-1}" old-two
43
+check "@{-1}@{1}" old-one
44
+check "@{u}" upstream-two
45
+check "@{u}@{1}" upstream-one
46
+fail check "@{-1}@{u}" master-two
47
+fail check "@{-1}@{u}@{1}" master-one
48
+fail nonsense "@{u}@{-1}"
49
+nonsense "@{1}@{u}"
50
+
51
+test_done