Tests redirect to err file when grepping stderr
[stgit.git] / t / t1306-repair-patchrefs.sh
blobfbfae8c9c924ea8e9d32eebe6402f6a13e52b80b
1 #!/bin/sh
3 test_description='Test auto-repair of patch refs'
5 . ./test-lib.sh
7 check_expected() {
8 git show-ref | (grep "refs/patches/master" || true) > bad-refs.txt &&
9 test_expect_code 1 test_cmp expected-refs.txt bad-refs.txt &&
10 stg series > series.txt &&
11 git show-ref | grep "refs/patches/master" > refs.txt &&
12 test_cmp expected-series.txt series.txt &&
13 test_cmp expected-refs.txt refs.txt
16 test_expect_success 'Initialize some patches' '
17 test_commit_bulk --message="p%s" --filename=a.txt 3 &&
18 stg init &&
19 stg uncommit -n 3 &&
20 git show-ref | grep "refs/patches/master" > expected-refs.txt &&
21 stg series > expected-series.txt
24 test_expect_success 'Deleted refs are restored' '
25 git update-ref -d refs/patches/master/p1 &&
26 git update-ref -d refs/patches/master/p2 &&
27 git update-ref -d refs/patches/master/p3 &&
28 check_expected
31 test_expect_success 'Modified refs are restored' '
32 git update-ref refs/patches/master/p1 refs/patches/master/p2 &&
33 check_expected
36 test_expect_success 'Extra refs are removed' '
37 git update-ref refs/patches/master/p98 HEAD &&
38 git update-ref refs/patches/master/p99 refs/patches/master/p1 &&
39 check_expected
42 test_expect_failure 'Symbolic refs are made direct' '
43 git symbolic-ref refs/patches/master/p1 refs/patches/master/p2 &&
44 check_expected
47 test_done