Tests redirect to err file when grepping stderr
[stgit.git] / t / t2204-rebase-autostash.sh
blobe306355e843a5d9f252f36047fe0a48d9c3f4f6c
1 #!/bin/sh
3 test_description='test rebase --autostash'
5 . ./test-lib.sh
7 test_expect_success \
8 'Setup a multi-commit branch and fork an stgit stack' \
10 echo foo > file1 &&
11 stg add file1 &&
12 git commit -m a &&
13 echo foo > file2 &&
14 stg add file2 &&
15 git commit -m b &&
17 stg branch --create stack &&
18 stg new p -m . &&
19 git notes add -m note &&
20 echo bar >> file1 &&
21 stg refresh
24 test_expect_success 'dirty workdir aborts rebase' \
26 echo foo >> file1 &&
27 command_error stg rebase master 2>err &&
28 grep -e "Worktree not clean." err
31 test_expect_success 'dirty workdir works with --autostash' \
33 stg rebase master --autostash &&
34 test $(stg series --applied -c) = 1 &&
35 git diff-index HEAD |
36 grep -e "file1"
39 test_expect_success \
40 'dirty workdir works with stgit.autostash config' \
42 test_config stgit.autostash "yes" &&
43 stg rebase master~1 &&
44 test $(stg series --applied -c) = 1 &&
45 git diff-index HEAD |
46 grep -e "file1"
49 test_expect_success \
50 'Setup fake editor' '
51 write_script fake-editor <<-\EOF
52 echo "" >"$1"
53 EOF
55 test_expect_success \
56 'rebase --autostash throws helpful error message in conflict' \
58 test_set_editor "$(pwd)/fake-editor" &&
59 test_when_finished test_set_editor false &&
60 git checkout --force &&
61 stg rebase master
62 echo baz > file2 &&
63 command_error stg rebase master~1 --interactive --autostash 2>err &&
64 grep -e "Merge conflict raised when popping stash after rebase" err
67 test_done