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

[PATCH 01/10] t4209: set up expectations up front

From
René Scharfe <l.s.r@web.de>
Date
Mar 22, 2014, 17:15 UTC
Message-ID
<1395508560-19893-2-git-send-email-l.s.r@web.de>
In-Reply-To
<1395508560-19893-1-git-send-email-l.s.r@web.de>

Instead of creating an expect file for each test, build three files with the possible valid values during setup and use them in the tests. This shortens the test code and saves nine calls to git rev-parse.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
---
 t/t4209-log-pickaxe.sh | 64 ++++++++++++++++++++------------------------------
 1 file changed, 25 insertions(+), 39 deletions(-)
diff --git a/t/t4209-log-pickaxe.sh b/t/t4209-log-pickaxe.sh
index 38fb80f..ff668b5 100755
--- a/t/t4209-log-pickaxe.sh
+++ b/t/t4209-log-pickaxe.sh
@@ -4,80 +4,74 @@ test_description='log --grep/--author/--regexp-ignore-case/-S/-G'
 . ./test-lib.sh
 
 test_expect_success setup '
+	>expect_nomatch &&
+
 	>file &&
 	git add file &&
 	test_tick &&
 	git commit -m initial &&
+	git rev-parse --verify HEAD >expect_initial &&
 
 	echo Picked >file &&
+	git add file &&
 	test_tick &&
-	git commit -a --author="Another Person <another@example.com>" -m second
+	git commit --author="Another Person <another@example.com>" -m second &&
+	git rev-parse --verify HEAD >expect_second
 '
 
 test_expect_success 'log --grep' '
 	git log --grep=initial --format=%H >actual &&
-	git rev-parse --verify HEAD^ >expect &&
-	test_cmp expect actual
+	test_cmp expect_initial actual
 '
 
 test_expect_success 'log --grep --regexp-ignore-case' '
 	git log --regexp-ignore-case --grep=InItial --format=%H >actual &&
-	git rev-parse --verify HEAD^ >expect &&
-	test_cmp expect actual
+	test_cmp expect_initial actual
 '
 
 test_expect_success 'log --grep -i' '
 	git log -i --grep=InItial --format=%H >actual &&
-	git rev-parse --verify HEAD^ >expect &&
-	test_cmp expect actual
+	test_cmp expect_initial actual
 '
 
 test_expect_success 'log --author --regexp-ignore-case' '
 	git log --regexp-ignore-case --author=person --format=%H >actual &&
-	git rev-parse --verify HEAD >expect &&
-	test_cmp expect actual
+	test_cmp expect_second actual
 '
 
 test_expect_success 'log --author -i' '
 	git log -i --author=person --format=%H >actual &&
-	git rev-parse --verify HEAD >expect &&
-	test_cmp expect actual
+	test_cmp expect_second actual
 '
 
 test_expect_success 'log -G (nomatch)' '
 	git log -Gpicked --format=%H >actual &&
-	>expect &&
-	test_cmp expect actual
+	test_cmp expect_nomatch actual
 '
 
 test_expect_success 'log -G (match)' '
 	git log -GPicked --format=%H >actual &&
-	git rev-parse --verify HEAD >expect &&
-	test_cmp expect actual
+	test_cmp expect_second actual
 '
 
 test_expect_success 'log -G --regexp-ignore-case (nomatch)' '
 	git log --regexp-ignore-case -Gpickle --format=%H >actual &&
-	>expect &&
-	test_cmp expect actual
+	test_cmp expect_nomatch actual
 '
 
 test_expect_success 'log -G -i (nomatch)' '
 	git log -i -Gpickle --format=%H >actual &&
-	>expect &&
-	test_cmp expect actual
+	test_cmp expect_nomatch actual
 '
 
 test_expect_success 'log -G --regexp-ignore-case (match)' '
 	git log --regexp-ignore-case -Gpicked --format=%H >actual &&
-	git rev-parse --verify HEAD >expect &&
-	test_cmp expect actual
+	test_cmp expect_second actual
 '
 
 test_expect_success 'log -G -i (match)' '
 	git log -i -Gpicked --format=%H >actual &&
-	git rev-parse --verify HEAD >expect &&
-	test_cmp expect actual
+	test_cmp expect_second actual
 '
 
 test_expect_success 'log -G --textconv (missing textconv tool)' '
@@ -89,45 +83,38 @@ test_expect_success 'log -G --textconv (missing textconv tool)' '
 test_expect_success 'log -G --no-textconv (missing textconv tool)' '
 	echo "* diff=test" >.gitattributes &&
 	git -c diff.test.textconv=missing log -Gfoo --no-textconv >actual &&
-	>expect &&
-	test_cmp expect actual &&
+	test_cmp expect_nomatch actual &&
 	rm .gitattributes
 '
 
 test_expect_success 'log -S (nomatch)' '
 	git log -Spicked --format=%H >actual &&
-	>expect &&
-	test_cmp expect actual
+	test_cmp expect_nomatch actual
 '
 
 test_expect_success 'log -S (match)' '
 	git log -SPicked --format=%H >actual &&
-	git rev-parse --verify HEAD >expect &&
-	test_cmp expect actual
+	test_cmp expect_second actual
 '
 
 test_expect_success 'log -S --regexp-ignore-case (match)' '
 	git log --regexp-ignore-case -Spicked --format=%H >actual &&
-	git rev-parse --verify HEAD >expect &&
-	test_cmp expect actual
+	test_cmp expect_second actual
 '
 
 test_expect_success 'log -S -i (match)' '
 	git log -i -Spicked --format=%H >actual &&
-	git rev-parse --verify HEAD >expect &&
-	test_cmp expect actual
+	test_cmp expect_second actual
 '
 
 test_expect_success 'log -S --regexp-ignore-case (nomatch)' '
 	git log --regexp-ignore-case -Spickle --format=%H >actual &&
-	>expect &&
-	test_cmp expect actual
+	test_cmp expect_nomatch actual
 '
 
 test_expect_success 'log -S -i (nomatch)' '
 	git log -i -Spickle --format=%H >actual &&
-	>expect &&
-	test_cmp expect actual
+	test_cmp expect_nomatch actual
 '
 
 test_expect_success 'log -S --textconv (missing textconv tool)' '
@@ -139,8 +126,7 @@ test_expect_success 'log -S --textconv (missing textconv tool)' '
 test_expect_success 'log -S --no-textconv (missing textconv tool)' '
 	echo "* diff=test" >.gitattributes &&
 	git -c diff.test.textconv=missing log -Sfoo --no-textconv >actual &&
-	>expect &&
-	test_cmp expect actual &&
+	test_cmp expect_nomatch actual &&
 	rm .gitattributes
 '
 
-- 
1.9.1
Previous: René ScharfeNext: René Scharfe
Message 2 of 21 in “pickaxe: honor -i when used with -S and --pickaxe-regex; cleanups”
  1. 00/10 pickaxe: honor -i when used with -S and --pickaxe-regex; cleanupsRené Scharfe, Mar 22, 2014
  2. 01/10 t4209: set up expectations up frontRené Scharfe, Mar 22, 2014
  3. 02/10 t4209: factor out helper function test_log()René Scharfe, Mar 22, 2014
  4. 03/10 t4209: factor out helper function test_log_icase()René Scharfe, Mar 22, 2014
  5. Junio C HamanoMar 24, 2014
  6. Jeff KingMar 24, 2014
  7. René ScharfeMar 24, 2014
  8. Junio C HamanoMar 24, 2014
  9. 04/10 t4209: use helper functions to test --grepRené Scharfe, Mar 22, 2014
  10. Junio C HamanoMar 24, 2014
  11. Jeff KingMar 24, 2014
  12. René ScharfeMar 24, 2014
  13. 05/10 t4209: use helper functions to test --authorRené Scharfe, Mar 22, 2014
  14. 06/10 pickaxe: honor -i when used with -S and --pickaxe-regexRené Scharfe, Mar 22, 2014
  15. 07/10 pickaxe: merge diffcore_pickaxe_grep() and diffcore_pickaxe_count() into diffcore_pickaxe()René Scharfe, Mar 22, 2014
  16. 08/10 pickaxe: move pickaxe() after pickaxe_match()René Scharfe, Mar 22, 2014
  17. Jeff KingMar 24, 2014
  18. 09/10 pickaxe: call strlen only when necessary in diffcore_pickaxe_count()René Scharfe, Mar 22, 2014
  19. 10/10 pickaxe: simplify kwset loop in contains()René Scharfe, Mar 22, 2014
  20. Junio C HamanoMar 24, 2014
  21. Jeff KingMar 24, 2014

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.