Re: [PATCH v0 2/3] t/t3400-rebase.sh: add more tests to help migrating git-rebase.sh to C

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

Re: [PATCH v0 2/3] t/t3400-rebase.sh: add more tests to help migrating git-rebase.sh to C

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:46:48

Nguyễn Thái Ngọc Duy [off-list ref] 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.

[PATCH 2/3] t/t3400-rebase.sh: add more tests to help migrating git-rebase.sh to C

From: Nguyễn Thái Ngọc Duy <hidden>
Date: 2016-06-15 22:46:49

These new tests make sure I don't miss any check being performed before
rebase is proceeded (which is well tested by other tests)

Signed-off-by: Nguyễn Thái Ngọc Duy <redacted>
---
 Fixed pipe stuff, test_must_fail and spaces

 t/t3400-rebase.sh |   31 +++++++++++++++++++++++++++++++
 1 files changed, 31 insertions(+), 0 deletions(-)
diff --git a/t/t3400-rebase.sh b/t/t3400-rebase.sh
index 6e391a3..7f62bfb 100755
--- a/t/t3400-rebase.sh
+++ b/t/t3400-rebase.sh
@@ -41,9 +41,40 @@ test_expect_success \
      git tag topic
 '
 
+test_expect_success 'rebase on dirty worktree' '
+     echo dirty >> A &&
+     test_must_fail git rebase master'
+
+test_expect_success 'rebase on dirty cache' '
+     git add A &&
+     test_must_fail git rebase master'
+
 test_expect_success 'rebase against master' '
+     git reset --hard HEAD &&
      git rebase master'
 
+test_expect_success 'rebase against master twice' '
+     git rebase master 2>err &&
+     grep "Current branch my-topic-branch is up to date" err
+'
+
+test_expect_success 'rebase against master twice with --force' '
+     git rebase --force-rebase master >out &&
+     grep "Current branch my-topic-branch is up to date, rebase forced" out
+'
+
+test_expect_success 'rebase against master twice from another branch' '
+     git checkout my-topic-branch^ &&
+     git rebase master my-topic-branch 2>err &&
+     grep "Current branch my-topic-branch is up to date" err
+'
+
+test_expect_success 'rebase fast-forward to master' '
+     git checkout my-topic-branch^ &&
+     git rebase my-topic-branch 2>err &&
+     grep "Fast-forwarded HEAD to my-topic-branch" err
+'
+
 test_expect_success \
     'the rebase operation should not have destroyed author information' \
     '! (git log | grep "Author:" | grep "<>")'
-- 
test
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help