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

[PATCH 14/25] t7201: fix &&-chain breakage

From
Jeff King <peff@peff.net>
Date
Mar 20, 2015, 10:12 UTC
Message-ID
<20150320101255.GN12543@peff.net>
In-Reply-To
<20150320100429.GA17354@peff.net>

One of these breakages is in setup, but one is more severe and may miss a real test failure. These are pulled out from the rest, though, because we also clean up a few other anachronisms. The most interesting is the use of this here-doc construct:

  (cat >... <<EOF
  ...
  EOF
  ) &&

It looks like an attempt to make the &&-chaining more natural by letting it come at the end of the here-doc. But the extra sub-shell is so non-idiomatic (plus the lack of "<<-") that it ends up confusing.

Since these are just using a single line, we can accomplish the same thing with a single printf (which also makes the use of tab more obvious than the verbatim whitespace).

Signed-off-by: Jeff King <peff@peff.net>
---
 t/t7201-co.sh | 19 ++++++-------------
 1 file changed, 6 insertions(+), 13 deletions(-)
diff --git a/t/t7201-co.sh b/t/t7201-co.sh
index a7fe4e6..8859236 100755
--- a/t/t7201-co.sh
+++ b/t/t7201-co.sh
@@ -88,14 +88,10 @@ test_expect_success "checkout with unrelated dirty tree without -m" '
 
 	git checkout -f master &&
 	fill 0 1 2 3 4 5 6 7 8 >same &&
-	cp same kept
+	cp same kept &&
 	git checkout side >messages &&
-	test_cmp same kept
-	(cat > messages.expect <<EOF
-M	same
-EOF
-) &&
-	touch messages.expect &&
+	test_cmp same kept &&
+	printf "M\t%s\n" same >messages.expect &&
 	test_cmp messages.expect messages
 '
 
@@ -109,10 +105,7 @@ test_expect_success "checkout -m with dirty tree" '
 
 	test "$(git symbolic-ref HEAD)" = "refs/heads/side" &&
 
-	(cat >expect.messages <<EOF
-M	one
-EOF
-) &&
+	printf "M\t%s\n" one >expect.messages &&
 	test_cmp expect.messages messages &&
 
 	fill "M	one" "A	three" "D	two" >expect.master &&
@@ -409,12 +402,12 @@ test_expect_success \
 
 test_expect_success \
     'checkout w/autosetupmerge=always sets up tracking' '
+    test_when_finished git config branch.autosetupmerge false &&
     git config branch.autosetupmerge always &&
     git checkout master &&
     git checkout -b track2 &&
     test "$(git config branch.track2.remote)" &&
-    test "$(git config branch.track2.merge)"
-    git config branch.autosetupmerge false'
+    test "$(git config branch.track2.merge)"'
 
 test_expect_success 'checkout w/--track from non-branch HEAD fails' '
     git checkout master^0 &&
-- 
2.3.3.520.g3cfbb5d
Previous: Jeff KingNext: Jeff King
Message 17 of 68 in “detecting &&-chain breakage”
  1. 0/25 detecting &&-chain breakageJeff King, Mar 20, 2015
  2. 01/25 t/test-lib: introduce --chain-lint optionJeff King, Mar 20, 2015
  3. SZEDER GáborMar 25, 2015
  4. Jeff KingMar 25, 2015
  5. 02/25 t: fix severe &&-chain breakageJeff King, Mar 20, 2015
  6. 03/25 t: fix moderate &&-chain breakageJeff King, Mar 20, 2015
  7. 04/25 t: fix trivial &&-chain breakageJeff King, Mar 20, 2015
  8. 05/25 t: assume test_cmp produces verbose outputJeff King, Mar 20, 2015
  9. 06/25 t: use verbose instead of hand-rolled errorsJeff King, Mar 20, 2015
  10. 07/25 t: use test_must_fail instead of hand-rolled blocksJeff King, Mar 20, 2015
  11. 08/25 t: fix &&-chaining issues around setup which might failJeff King, Mar 20, 2015
  12. 09/25 t: use test_might_fail for diff and grepJeff King, Mar 20, 2015
  13. 10/25 t: use test_expect_code instead of hand-rolled comparisonJeff King, Mar 20, 2015
  14. 11/25 t: wrap complicated expect_code users in a blockJeff King, Mar 20, 2015
  15. 12/25 t: avoid using ":" for commentsJeff King, Mar 20, 2015
  16. 13/25 t3600: fix &&-chain breakage for setup commandsJeff King, Mar 20, 2015
  17. 14/25 t7201: fix &&-chain breakageJeff King, Mar 20, 2015
  18. 15/25 t9502: fix &&-chain breakageJeff King, Mar 20, 2015
  19. Johannes SixtMar 20, 2015
  20. Jeff KingMar 20, 2015
  21. 16/25 t6030: use modern test_* helpersJeff King, Mar 20, 2015
  22. 17/25 t0020: use modern test_* helpersJeff King, Mar 20, 2015
  23. SZEDER GáborMar 25, 2015
  24. Jeff KingMar 25, 2015
  25. 0/8 more &&-chaining test fixupsJeff King, Mar 25, 2015
  26. 1/8 perf-lib: fix ignored exit code inside loopJeff King, Mar 25, 2015
  27. 2/8 t0020: fix ignored exit code inside loopsJeff King, Mar 25, 2015
  28. 3/8 t3305: fix ignored exit code inside loopJeff King, Mar 25, 2015
  29. Johan HerlandMar 25, 2015
  30. 4/8 t7701: fix ignored exit code inside loopJeff King, Mar 25, 2015
  31. 5/8 t: fix some trivial cases of ignored exit codes in loopsJeff King, Mar 25, 2015
  32. 6/8 t: simplify loop exit-code status variablesJeff King, Mar 25, 2015
  33. Junio C HamanoMar 25, 2015
  34. Jeff KingMar 25, 2015
  35. 7/8 t0020: use test_* helpers instead of hand-rolled messagesJeff King, Mar 25, 2015
  36. 8/8 t9001: drop save_confirm helperJeff King, Mar 25, 2015
  37. Junio C HamanoMar 25, 2015
  38. 18/25 t1301: use modern test_* helpersJeff King, Mar 20, 2015
  39. SZEDER GáborMar 24, 2015
  40. Jeff KingMar 25, 2015
  41. 19/25 t6034: use modern test_* helpersJeff King, Mar 20, 2015
  42. SZEDER GáborMar 24, 2015
  43. 20/25 t4117: use modern test_* helpersJeff King, Mar 20, 2015
  44. 21/25 t9001: use test_when_finishedJeff King, Mar 20, 2015
  45. SZEDER GáborMar 25, 2015
  46. Jeff KingMar 25, 2015
  47. 22/25 t0050: appease --chain-lintJeff King, Mar 20, 2015
  48. 23/25 t7004: fix embedded single-quotesJeff King, Mar 20, 2015
  49. 24/25 t0005: fix broken &&-chainsJeff King, Mar 20, 2015
  50. 25/25 t4104: drop hand-rolled error reportingJeff King, Mar 20, 2015
  51. Jeff KingMar 20, 2015
  52. Michael J GruberMar 20, 2015
  53. 26/27 t/*svn*: fix moderate &&-chain breakageMichael J Gruber, Mar 20, 2015
  54. Junio C HamanoMar 20, 2015
  55. Junio C HamanoMar 20, 2015
  56. Jeff KingMar 20, 2015
  57. Jeff KingMar 20, 2015
  58. Michael J GruberMar 23, 2015
  59. 27/27 t9104: fix test for following larger parentsMichael J Gruber, Mar 20, 2015
  60. Jeff KingMar 20, 2015
  61. Junio C HamanoMar 20, 2015
  62. Junio C HamanoMar 20, 2015
  63. Jeff KingMar 20, 2015
  64. Junio C HamanoMar 20, 2015
  65. Eric SunshineMar 20, 2015
  66. Jeff KingMar 21, 2015
  67. Junio C HamanoMar 21, 2015
  68. Jeff KingMar 21, 2015

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.