chiark / gitweb /
Convert "pop" to the lib infrastructure
[stgit] / t / t3101-reset-hard.sh
1 #!/bin/sh
2
3 test_description='Simple test cases for "stg reset"'
4
5 . ./test-lib.sh
6
7 # Ignore our own output files.
8 cat > .git/info/exclude <<EOF
9 /expected.txt
10 /actual.txt
11 EOF
12
13 test_expect_success 'Initialize StGit stack with three patches' '
14     stg init &&
15     echo 000 >> a &&
16     git add a &&
17     git commit -m a &&
18     echo 111 >> a &&
19     git commit -a -m p1 &&
20     echo 222 >> a &&
21     git commit -a -m p2 &&
22     echo 333 >> a &&
23     git commit -a -m p3 &&
24     stg uncommit -n 3
25 '
26
27 cat > expected.txt <<EOF
28 C a
29 EOF
30 test_expect_success 'Pop middle patch, creating a conflict' '
31     conflict stg pop p2 &&
32     stg status a > actual.txt &&
33     test_cmp expected.txt actual.txt &&
34     test "$(echo $(stg series))" = "+ p1 > p3 - p2"
35 '
36
37 test_expect_success 'Try to reset without --hard' '
38     command_error stg reset master.stgit^~1 &&
39     stg status a > actual.txt &&
40     test_cmp expected.txt actual.txt &&
41     test "$(echo $(stg series))" = "+ p1 > p3 - p2"
42 '
43
44 cat > expected.txt <<EOF
45 EOF
46 test_expect_success 'Try to reset with --hard' '
47     stg reset --hard master.stgit^~1 &&
48     stg status a > actual.txt &&
49     test_cmp expected.txt actual.txt &&
50     test "$(echo $(stg series))" = "> p1 - p2 - p3"
51 '
52
53 test_done