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

Re: [PATCH 2/3] t6025: replace pipe with redirection operator

From
Eric Sunshine <sunshine@sunshineco.com>
Date
Jan 17, 2020, 21:24 UTC
Message-ID
<CAPig+cQX=jB1KTKcOMVE9u0jX-ZXt_vQBndkzqqQWORu5iFxeA@mail.gmail.com>
In-Reply-To
<20200117204426.9347-3-shouryashukla.oo@gmail.com>

On Fri, Jan 17, 2020 at 3:45 PM Shourya Shukla <shouryashukla.oo@gmail.com> wrote:

> The exit code of pipes(|) are always ignored, which will create
> errors in subsequent statements. Let's handle it by redirecting
> its output to a file and capturing return values. Replace pipe
> with redirect(>) operator.

This is not an accurate description. The proper way to explain this is that exit code of a command upstream of a pipe is lost; the exit code of a command downstream is not lost. We don't want to lose the exit code of a git command, so a git command should not be upstream. (We don't care about non-git commands being upstream when that command's exit code is not relevant.)

Show 8 quoted lines
> Signed-off-by: Shourya Shukla <shouryashukla.oo@gmail.com>
> ---
> diff --git a/t/t6025-merge-symlinks.sh b/t/t6025-merge-symlinks.sh
> @@ -17,14 +17,13 @@ test_expect_success 'setup' '
>         git commit -m initial &&
>         git branch b-symlink &&
>         git branch b-file &&
> -       l=$(printf file | git hash-object -t blob -w --stdin) &&

This command is fine as-is. We are interested in the exit code of the git command (which is correctly downstream), and we don't care about the exit code of 'printf' (which is upstream), so there is no reason to rewrite this to use temporary files instead.

> +       printf file >file &&
> +       l=$(git hash-object -t blob -w --stdin) &&

Sorry, but this just doesn't make sense. You're telling "git hash-object" to take its input from the standard input stream, yet you don't feed anything to it on that stream. If anything, it should have been written like this:

     l=$(git hash-object -t blob -w --stdin <file) &&

however, as noted above, there is no reason to avoid pipes in this case, so this rewrite is unnecessary.

By the way, it's hard to imagine that this test passed once this change was made (and, if it did pass, then that would likely indicate that the test is somehow flawed.)

Previous: Shourya ShuklaNext: Shourya Shukla
Message 13 of 24 in “t6025: updating tests”
  1. 0/3 t6025: updating testsShourya Shukla, Jan 16, 2020
  2. 1/3 t6025: modernize styleShourya Shukla, Jan 16, 2020
  3. Johannes SchindelinJan 16, 2020
  4. 2/3 t6025: replace pipe with redirection operatorShourya Shukla, Jan 16, 2020
  5. Junio C HamanoJan 16, 2020
  6. 3/3 t6025: use helpers to replace test -f <path>Shourya Shukla, Jan 16, 2020
  7. Junio C HamanoJan 16, 2020
  8. 0/3 t6025: amended changes after suggestions from the communityShourya Shukla, Jan 17, 2020
  9. 1/3 t6025: modernize styleShourya Shukla, Jan 17, 2020
  10. Eric SunshineJan 17, 2020
  11. Junio C HamanoJan 17, 2020
  12. 2/3 t6025: replace pipe with redirection operatorShourya Shukla, Jan 17, 2020
  13. Eric SunshineJan 17, 2020
  14. 0/3 t6025: updating testsShourya Shukla, Jan 18, 2020
  15. 1/3 t6025: modernize styleShourya Shukla, Jan 18, 2020
  16. 2/3 t6025: replace pipe with redirection operatorShourya Shukla, Jan 18, 2020
  17. 3/3 t6025: use helpers to replace test -f <path>Shourya Shukla, Jan 18, 2020
  18. 0/2 t025: amended changes after suggestions from the communityShourya Shukla, Jan 18, 2020
  19. 1/2 t6025: modernize styleShourya Shukla, Jan 18, 2020
  20. Junio C HamanoJan 21, 2020
  21. 2/2 t6025: use helpers to replace test -f <path>Shourya Shukla, Jan 18, 2020
  22. Junio C HamanoJan 21, 2020
  23. 3/3 t6025: use helpers to replace test -f <path>Shourya Shukla, Jan 17, 2020
  24. Johannes SchindelinJan 16, 2020

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.