New policy: Only use test_expect_failure for broken tests
[stgit] / t / t0001-subdir-branches.sh
1 #!/bin/sh
2 #
3 # Copyright (c) 2006 Karl Hasselström
4 #
5
6 test_description='Branch names containing slashes
7
8 Test a number of operations on a repository that has branch names
9 containing slashes (that is, branches living in a subdirectory of
10 .git/refs/heads).'
11
12 . ./test-lib.sh
13
14 test_expect_success 'Create a patch' \
15 'stg init &&
16 echo "foo" > foo.txt &&
17 git add foo.txt &&
18 stg new foo -m "Add foo.txt" &&
19 stg refresh'
20
21 test_expect_success 'Old and new id with non-slashy branch' \
22 'stg id foo &&
23 stg id foo// &&
24 stg id foo/ &&
25 stg id foo//top &&
26 stg id foo/top &&
27 stg id foo@master &&
28 stg id foo@master//top &&
29 stg id foo@master/top'
30
31 test_expect_success 'Clone branch to slashier name' \
32 'stg branch --clone x/y/z'
33
34 test_expect_success 'Try new form of id with slashy branch' \
35 'stg id foo &&
36 stg id foo// &&
37 stg id foo//top &&
38 stg id foo@x/y/z &&
39 stg id foo@x/y/z//top'
40
41 test_expect_success 'Try old id with slashy branch' '
42 ! stg id foo/ &&
43 ! stg id foo/top &&
44 ! stg id foo@x/y/z/top
45 '
46
47 test_expect_success 'Create patch in slashy branch' \
48 'echo "bar" >> foo.txt &&
49 stg new bar -m "Add another line" &&
50 stg refresh'
51
52 test_expect_success 'Rename branches' \
53 'stg branch --rename master goo/gaa &&
54 ! git show-ref --verify --quiet refs/heads/master &&
55 stg branch --rename goo/gaa x1/x2/x3/x4 &&
56 ! git show-ref --verify --quiet refs/heads/goo/gaa &&
57 stg branch --rename x1/x2/x3/x4 servant &&
58 ! git show-ref --verify --quiet refs/heads/x1/x2/x3/x4
59 '
60
61 test_done