git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
Jakub Narebski <jnareb@gmail.com>
Date
May 21, 2009, 10:22 UTC
Message-ID
<m3ab56kb7y.fsf@localhost.localdomain>
In-Reply-To
<1242899229-27603-2-git-send-email-pclouds@gmail.com>
Nguyễn Thái Ngọc Duy    <pclouds@gmail.com> writes:
Show 19 quoted lines
> 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 <pclouds@gmail.com>
> ---
>  t/t3400-rebase.sh |   28 ++++++++++++++++++++++++++++
>  1 files changed, 28 insertions(+), 0 deletions(-)
> 
> diff --git a/t/t3400-rebase.sh b/t/t3400-rebase.sh
> index 6e391a3..37f86ab 100755
> --- a/t/t3400-rebase.sh
> +++ b/t/t3400-rebase.sh
> @@ -41,9 +41,37 @@ test_expect_success \
>       git tag topic
>  '
>  
> +test_expect_success 'rebase on dirty worktree' '
> +     echo dirty >> A &&
> +     ! git rebase master'

Shouldn't you use test_must_fail instead? From t/test-lib.sh (paraphrasing):

  Writing this as "! git rebase master" is wrong, because
  the failure could be due to a segv.  We want a controlled failure.
Show 13 quoted lines
> +
> +test_expect_success 'rebase on dirty cache' '
> +     git add  A &&
> +     ! git rebase master'
> +
>  test_expect_success 'rebase against master' '
> +     git reset HEAD &&
> +     git checkout -f &&
>       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\\."
> +'
It would be more readable to split this line on '|', i.e.:

+test_expect_success 'rebase against master twice' ' + git rebase master 2>&1 | + grep "Current branch my-topic-branch is up to date\\." +'

I think we prefer to save output to a file, and compare this file with expected output (using test_cmp). Additionally you can check if the message you want is in correct stream (is in STDERR, and STDOUT is empty).

Show 14 quoted lines
> +
> +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"
> +'
> +
> +test_expect_success 'rebase against master twice from another branch' '
> +	git checkout my-topic-branch^ &&
> +	git rebase master my-topic-branch 2>&1|grep "Current branch my-topic-branch is up to date\\."
> +'
> +
> +test_expect_success 'rebase fast-forward to master' '
> +	git checkout my-topic-branch^ &&
> +	git rebase my-topic-branch 2>&1|grep "Fast-forwarded HEAD to my-topic-branch"
> +'
Same as above.
> +
>  test_expect_success \
>      'the rebase operation should not have destroyed author information' \
>      '! (git log | grep "Author:" | grep "<>")'

Errrr... what? Why git-log and not git-cat-file? Why grep twice? Additionally you do not check here that author is unchanged, only that is not destroyed.

-- 
Jakub Narebski
Poland
ShadeHawk on #git
Previous: Nguyen Thai Ngoc DuyNext: Nguyen Thai Ngoc Duy
Message 18 of 21 in “doc/git-rebase.txt: remove mention of multiple strategies”
  1. 1/3 doc/git-rebase.txt: remove mention of multiple strategiesNguyễn Thái Ngọc Duy, May 21, 2009
  2. 2/3 t/t3400-rebase.sh: add more tests to help migrating git-rebase.sh to CNguyễn Thái Ngọc Duy, May 21, 2009
  3. 3/3 Build in git-rebase.shNguyễn Thái Ngọc Duy, May 21, 2009
  4. Jakub NarebskiMay 21, 2009
  5. Nguyen Thai Ngoc DuyMay 21, 2009
  6. Jakub NarebskiMay 21, 2009
  7. Nguyen Thai Ngoc DuyMay 21, 2009
  8. Junio C HamanoMay 21, 2009
  9. Johannes SixtMay 22, 2009
  10. Nguyen Thai Ngoc DuyMay 22, 2009
  11. Nguyen Thai Ngoc DuyMay 23, 2009
  12. Nguyen Thai Ngoc DuyMay 23, 2009
  13. Johannes SixtMay 25, 2009
  14. Nguyen Thai Ngoc DuyMay 25, 2009
  15. Johannes SixtMay 25, 2009
  16. Nguyen Thai Ngoc DuyMay 25, 2009
  17. Nguyen Thai Ngoc DuyMay 25, 2009
  18. Jakub NarebskiMay 21, 2009
  19. Nguyen Thai Ngoc DuyMay 21, 2009
  20. Junio C HamanoMay 21, 2009
  21. 2/3 t/t3400-rebase.sh: add more tests to help migrating git-rebase.sh to CNguyễn Thái Ngọc Duy, May 23, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.