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

[PATCH 4/7] test: test cherry-pick functionality and output separately

From
Jonathan Nieder <jrnieder@gmail.com>
Date
Mar 13, 2012, 05:00 UTC
Message-ID
<20120313050036.GD12550@burratino>
In-Reply-To
<20120313045100.GA12474@burratino>

Since v1.7.3-rc0~26^2~9 (revert: report success when using option --strategy, 2010-07-14), the cherry-pick-many-commits test checks the format of output written to the terminal during a cherry-pick sequence in addition to the functionality. There is no reason those have to be checked in the same test, though, and it has some downsides:

 - when progress output is broken, the test result does not convey
   whether the functionality was also broken or not
 - it is not immediately obvious when reading that these checks are
   meant to prevent regressions in details of the output format and
   are not just a roundabout way to check functional details like the
   number of commits produced
 - there is a temptation to include the same kind of output checking
   for every new cherry-pick test, which would make future changes
   to the output unnecessarily difficult

Put the tests from v1.7.3-rc0~26^2~9 in separate assertions, following the principle "test one feature at a time".

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
 t/t3508-cherry-pick-many-commits.sh |   32 +++++++++++++++++++++++---------
 1 file changed, 23 insertions(+), 9 deletions(-)
diff --git a/t/t3508-cherry-pick-many-commits.sh b/t/t3508-cherry-pick-many-commits.sh
index d909e6db..75f7ff4f 100755
--- a/t/t3508-cherry-pick-many-commits.sh
+++ b/t/t3508-cherry-pick-many-commits.sh
@@ -35,6 +35,16 @@ test_expect_success setup '
 '
 
 test_expect_success 'cherry-pick first..fourth works' '
+	git checkout -f master &&
+	git reset --hard first &&
+	test_tick &&
+	git cherry-pick first..fourth &&
+	git diff --quiet other &&
+	git diff --quiet HEAD other &&
+	check_head_differs_from fourth
+'
+
+test_expect_success 'output to keep user entertained during multi-pick' '
 	cat <<-\EOF >expected &&
 	[master OBJID] second
 	 Author: A U Thor <author@example.com>
@@ -51,15 +61,22 @@ test_expect_success 'cherry-pick first..fourth works' '
 	git reset --hard first &&
 	test_tick &&
 	git cherry-pick first..fourth >actual &&
-	git diff --quiet other &&
-	git diff --quiet HEAD other &&
-
 	sed -e "s/$_x05[0-9a-f][0-9a-f]/OBJID/" <actual >actual.fuzzy &&
-	test_i18ncmp expected actual.fuzzy &&
-	check_head_differs_from fourth
+	test_line_count -ge 3 actual.fuzzy &&
+	test_i18ncmp expected actual.fuzzy
 '
 
 test_expect_success 'cherry-pick --strategy resolve first..fourth works' '
+	git checkout -f master &&
+	git reset --hard first &&
+	test_tick &&
+	git cherry-pick --strategy resolve first..fourth &&
+	git diff --quiet other &&
+	git diff --quiet HEAD other &&
+	check_head_differs_from fourth
+'
+
+test_expect_success 'output during multi-pick indicates merge strategy' '
 	cat <<-\EOF >expected &&
 	Trying simple merge.
 	[master OBJID] second
@@ -79,11 +96,8 @@ test_expect_success 'cherry-pick --strategy resolve first..fourth works' '
 	git reset --hard first &&
 	test_tick &&
 	git cherry-pick --strategy resolve first..fourth >actual &&
-	git diff --quiet other &&
-	git diff --quiet HEAD other &&
 	sed -e "s/$_x05[0-9a-f][0-9a-f]/OBJID/" <actual >actual.fuzzy &&
-	test_i18ncmp expected actual.fuzzy &&
-	check_head_differs_from fourth
+	test_i18ncmp expected actual.fuzzy
 '
 
 test_expect_success 'cherry-pick --ff first..fourth works' '
-- 
1.7.9.2
Previous: Jonathan NiederNext: Jonathan Nieder
Message 29 of 32 in “Correct singular form in diff summary line for human interaction”
  1. Correct singular form in diff summary line for human interactionNguyễn Thái Ngọc Duy, Jan 31, 2012
  2. Jonathan NiederJan 31, 2012
  3. Junio C HamanoJan 31, 2012
  4. Nguyen Thai Ngoc DuyFeb 1, 2012
  5. Thomas DickeyFeb 1, 2012
  6. Thomas DickeyFeb 1, 2012
  7. Nguyen Thai Ngoc DuyFeb 1, 2012
  8. Junio C HamanoFeb 1, 2012
  9. Thomas DickeyFeb 1, 2012
  10. Use correct grammar in diffstat summary lineNguyễn Thái Ngọc Duy, Feb 1, 2012
  11. Junio C HamanoFeb 1, 2012
  12. Nguyen Thai Ngoc DuyFeb 2, 2012
  13. Junio C HamanoFeb 2, 2012
  14. Nguyen Thai Ngoc DuyFeb 3, 2012
  15. Junio C HamanoFeb 3, 2012
  16. Jeff KingFeb 3, 2012
  17. Jonathan NiederFeb 1, 2012
  18. i18n: do not define gettext/ngettext in NO_GETTEXT caseJonathan Nieder, Feb 2, 2012
  19. Jonathan NiederFeb 2, 2012
  20. Jonathan NiederFeb 2, 2012
  21. 0/7 tests: diffstat summary line varies by locale (Re: [PATCH v2] Use correct grammar in diffstat summary line)Jonathan Nieder, Mar 13, 2012
  22. 1/7 test: use test_i18ncmp when checking --stat outputJonathan Nieder, Mar 13, 2012
  23. Junio C HamanoMar 13, 2012
  24. Junio C HamanoMar 13, 2012
  25. Jonathan NiederMar 13, 2012
  26. Jonathan NiederMar 13, 2012
  27. 2/7 test: use numstat instead of diffstat in funny-names testJonathan Nieder, Mar 13, 2012
  28. 3/7 test: modernize funny-names test styleJonathan Nieder, Mar 13, 2012
  29. 4/7 test: test cherry-pick functionality and output separatelyJonathan Nieder, Mar 13, 2012
  30. 5/7 test: use --numstat instead of --stat in "git stash show" testsJonathan Nieder, Mar 13, 2012
  31. 6/7 test: use numstat instead of diffstat in binary-diff testJonathan Nieder, Mar 13, 2012
  32. 7/7 diffstat summary line varies by locale: miscellanyJonathan Nieder, Mar 13, 2012

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.