From: Junio C Hamano Date: Thu, 21 May 2009 14:22:37 GMT Subject: Re: [PATCH v0 2/3] t/t3400-rebase.sh: add more tests to help migrating git-rebase.sh to C Message-ID: <7vr5yibknm.fsf@alter.siamese.dyndns.org> In-Reply-To: <1242899229-27603-2-git-send-email-pclouds@gmail.com> Nguyễn Thái Ngọc Duy writes: > +test_expect_success 'rebase on dirty worktree' ' > + echo dirty >> A && > + ! git rebase master' It is a good defensive way to use "test_must_fail" instead of "!" when testing git itself; test_must_fail does not allow the program to terminate with non-zero value by segfaulting, while "!" does. > +test_expect_success 'rebase on dirty cache' ' > + git add A && Two-spaces? > + ! git rebase master' > + > test_expect_success 'rebase against master' ' > + git reset HEAD && > + git checkout -f && Hmm, why not "reset --hard HEAD". Not asking to change (yet), but just asking if there is a reason. > git rebase master' > > +test_expect_success 'rebase against master twice' ' > + git rebase master 2>&1|grep "Current branch my-topic-branch is up to date\\." > +' > + > +test_expect_success 'rebase against master twice with --force' ' > + git rebase --force-rebase master 2>&1|grep "Current branch my-topic-branch is up to date, rebase forced" Do not to use any pipe while testing, i.e. git rebase >out 2>err && grep "what you expect in 'out'" out && grep "what you expect in 'err'" err so that you can catch exit status from the command you placed in the upstream of the pipe.