From: Junio C Hamano Date: Sun, 16 Sep 2012 06:58:06 GMT Subject: Re: [PATCH 3/3] rebase -i: Add tests for "--edit-todo" Message-ID: <7vwqzuxxmp.fsf@alter.siamese.dyndns.org> In-Reply-To: <1347739709-15289-4-git-send-email-andrew.kw.w@gmail.com> Andrew Wong writes: > Signed-off-by: Andrew Wong > --- > t/t3404-rebase-interactive.sh | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh > index 7304b66..a194c97 100755 > --- a/t/t3404-rebase-interactive.sh > +++ b/t/t3404-rebase-interactive.sh > @@ -911,4 +911,20 @@ test_expect_success 'rebase -i --root fixup root commit' ' > test 0 = $(git cat-file commit HEAD | grep -c ^parent\ ) > ' > > +test_expect_success 'rebase --edit-todo does not works on non-interactive rebase' ' > + git checkout conflict-branch && > + test_must_fail git rebase --onto HEAD~2 HEAD~ && > + test_must_fail git rebase --edit-todo && > + git rebase --abort > +' It _might_ be that you simply inherited sloppiness from surrounding existing tests, but what happens when a test _before_ this test failed? Is "git checkout conflict-branch" sufficient to bring you to a sensible state where this test would succeed? I'd prefer to see a defensive "git reset --hard &&" before the first "checkout". The same for the next one. > +test_expect_success 'rebase --edit-todo can be used to modify todo' ' > + git checkout no-conflict-branch^0 && > + FAKE_LINES="edit 1 2 3" git rebase -i HEAD~3 && > + FAKE_LINES="2 1" git rebase --edit-todo && > + git rebase --continue > + test M = $(git cat-file commit HEAD^ | sed -ne \$p) && > + test L = $(git cat-file commit HEAD | sed -ne \$p) > +' > + > test_done