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

Re: [GSoC][PATCH v2 5/5] t0000-basic: use test_line_count instead of wc -l

From
Eric Sunshine <sunshine@sunshineco.com>
Date
Mar 10, 2019, 09:50 UTC
Message-ID
<CAPig+cSMZrQFrLXoO5KE1uonUxmnYHikr-e6GAq_n6vx3+sPJA@mail.gmail.com>
In-Reply-To
<20190310081106.64239-1-ttjtftx@gmail.com>
On Sun, Mar 10, 2019 at 4:11 AM Jonathan Chang <ttjtftx@gmail.com> wrote:
Show 8 quoted lines
> Signed-off-by: Jonathan Chang <ttjtftx@gmail.com>
>
> diff --git a/t/t0000-basic.sh b/t/t0000-basic.sh
> @@ -1136,8 +1136,8 @@ test_expect_success 'git commit-tree omits duplicated parent in a commit' '
> -       numparent=$(sed -n -e "s/^parent //p" -e "/^author /q" actual | wc -l) &&
> -       test $numparent = 1
> +       sed -n -e "s/^parent //p" -e "/^author /q" actual | wc -l >numparent &&
> +       test_line_count = 1 numparent

This transformation makes no sense. The output of 'sed' is fed to 'wc -l' whose output is redirected to file "numparent", which means that the output file will end up containing a single line no matter how many "parent" lines are matched in the input. Since test_line_count() checks the number of lines in the named file, the test will succeed unconditionally (which makes for a pretty poor test).

Also, the filename "numparent" doesn't do a good job of representing what the file is expected to contain. A better name might be "parents". So, a more correct transformation would be:

    sed -n -e "s/^parent //p" -e "/^author /q" actual >parents &&
    test_line_count = 1 parents
Show 5 quoted lines
> @@ -1146,8 +1146,8 @@ test_expect_success 'update-index D/F conflict' '
> -       numpath0=$(wc -l <actual) &&
> -       test $numpath0 = 1
> +       wc -l <actual >numpath0 &&
> +       test_line_count = 1 numpath0

Same comment about bogus transformation. The entire sequence should collapse to a single line:

    test_line_count = 1 actual
Previous: Jonathan ChangNext: ttjtftx
Message 8 of 20 in “tests: avoid using pipes”
  1. Jonathan ChangMar 9, 2019
  2. Thomas GummererMar 9, 2019
  3. [GSoC][PATCH v2 1/5] t0000-basic: fix an indentation errorJonathan Chang, Mar 10, 2019
  4. [GSoC][PATCH v2 2/5] t0000-basic: avoid using pipesJonathan Chang, Mar 10, 2019
  5. [GSoC][PATCH v2 3/5] t0003-attributes: avoid using pipesJonathan Chang, Mar 10, 2019
  6. [GSoC][PATCH v2 4/5] t0022-crlf-rename: avoid using pipesJonathan Chang, Mar 10, 2019
  7. [GSoC][PATCH v2 5/5] t0000-basic: use test_line_count instead of wc -lJonathan Chang, Mar 10, 2019
  8. Eric SunshineMar 10, 2019
  9. ttjtftxMar 11, 2019
  10. Eric SunshineMar 10, 2019
  11. Eric SunshineMar 10, 2019
  12. jonathan changMar 15, 2019
  13. Thomas GummererMar 10, 2019
  14. jonathan changMar 15, 2019
  15. Christian CouderMar 15, 2019
  16. Christian CouderMar 10, 2019
  17. ttjtftxMar 10, 2019
  18. Christian CouderMar 10, 2019
  19. Fwd: [GSoC][PATCH v2 4/5] t0022-crlf-rename: avoid using pipesttjtftx, Mar 11, 2019
  20. Fwd: [GSoC][PATCH] tests: avoid using pipesjonathan chang, Mar 11, 2019

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.