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

Re: [PATCH v3 2/4] t6402: use find(1) builtin to filter instead of grep

From
Andrei Rybak <rybak.a.v@gmail.com>
Date
Jun 21, 2021, 08:17 UTC
Message-ID
<d4082001-6c70-ae02-c448-e038923c840e@gmail.com>
In-Reply-To
<20210619013035.26313-3-congdanhqx@gmail.com>
On 19/06/2021 03:30, Đoàn Trần Công Danh wrote:
Show 5 quoted lines
> find(1) has a builtin (-prune) to filter its output, save a bit of time
> for invoking grep(1).
> 
> In addition, in a later change, we will try to use test_line_count_cmd
> to count number of lines in stdout and/or stderr of a command, due to

Looking at [PATCH v3 1/4] of this series, mention of "stderr" here is no longer relevant.

> limitation of current implementation, it can handle pipe.
Seems like a typo s/can/can't/ ?
Show 35 quoted lines
> Let's replace grep(1)'s usage with find(1) builtin filter.
> 
> Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
> ---
>   t/t6402-merge-rename.sh | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/t/t6402-merge-rename.sh b/t/t6402-merge-rename.sh
> index 425dad97d5..5d76cd6414 100755
> --- a/t/t6402-merge-rename.sh
> +++ b/t/t6402-merge-rename.sh
> @@ -546,7 +546,7 @@ then
>   
>   		test_must_fail git diff --quiet &&
>   
> -		test 3 -eq $(find . | grep -v .git | wc -l) &&
> +		test 3 -eq $(find . -name .git -prune -o -print | wc -l) &&
>   
>   		test_path_is_file one &&
>   		test_path_is_file two &&
> @@ -565,7 +565,7 @@ else
>   
>   		test_must_fail git diff --quiet &&
>   
> -		test 4 -eq $(find . | grep -v .git | wc -l) &&
> +		test 4 -eq $(find . -name .git -prune -o -print | wc -l) &&
>   
>   		test_path_is_dir one &&
>   		test_path_is_file one~rename-two &&
> @@ -593,7 +593,7 @@ test_expect_success 'pair rename to parent of other (D/F conflicts) w/ clean sta
>   
>   	test_must_fail git diff --quiet &&
>   
> -	test 3 -eq $(find . | grep -v .git | wc -l) &&
> +	test 3 -eq $(find . -name .git -prune -o -print | wc -l) &&

Because in the original `grep` wasn't invoked with `-F` it means that ".git" is a regex which would match any path which contains the word "git" in it, because "." matches any character, including the leading slash that `find` outputs. Such narrowing of what we intend to filter out is a good change.

This semantic change in filtering doesn't affect tests in t6402, as the test directory doesn't have paths with the word "git" except for the ".git" directory. It might be worth mentioning in the commit message.

>   
>   	test_path_is_file one &&
>   	test_path_is_file two &&
>
Previous: Đoàn Trần Công DanhNext: Đoàn Trần Công Danh
Message 22 of 42 in “t: new helper test_line_count_cmd”
  1. 0/5 t: new helper test_line_count_cmdĐoàn Trần Công Danh, Jun 15, 2021
  2. 1/5 test-lib-functions: introduce test_line_count_cmdĐoàn Trần Công Danh, Jun 15, 2021
  3. Felipe ContrerasJun 17, 2021
  4. 2/5 t6402: use find(1) builtin to filter instead of grepĐoàn Trần Công Danh, Jun 15, 2021
  5. 3/5 t0041: use test_line_count_cmd to check std{out,err}Đoàn Trần Công Danh, Jun 15, 2021
  6. Junio C HamanoJun 16, 2021
  7. Đoàn Trần Công DanhJun 16, 2021
  8. Junio C HamanoJun 17, 2021
  9. 4/5 t6400: use test_line_count_cmd to count # of lines in stdoutĐoàn Trần Công Danh, Jun 15, 2021
  10. 5/5 t6402: use test_line_count_cmd to count # of lines in stdoutĐoàn Trần Công Danh, Jun 15, 2021
  11. 0/4 t: new helper test_line_count_cmdĐoàn Trần Công Danh, Jun 19, 2021
  12. Eric SunshineJun 19, 2021
  13. Junio C HamanoJun 19, 2021
  14. Eric SunshineJun 19, 2021
  15. Junio C HamanoJun 19, 2021
  16. Đoàn Trần Công DanhJun 21, 2021
  17. Eric SunshineJun 22, 2021
  18. 1/4 test-lib-functions: introduce test_line_count_cmdĐoàn Trần Công Danh, Jun 19, 2021
  19. Andrei RybakJun 21, 2021
  20. Andrei RybakJun 24, 2021
  21. 2/4 t6402: use find(1) builtin to filter instead of grepĐoàn Trần Công Danh, Jun 19, 2021
  22. Andrei RybakJun 21, 2021
  23. Đoàn Trần Công DanhJun 21, 2021
  24. 3/4 t6400: use test_line_count_cmd to count # of lines in stdoutĐoàn Trần Công Danh, Jun 19, 2021
  25. 4/4 t6402: use test_line_count_cmd to count # of lines in stdoutĐoàn Trần Công Danh, Jun 19, 2021
  26. 0/2 t640{0,2}: preserve ls-files exit status codeĐoàn Trần Công Danh, Jun 29, 2021
  27. 1/2 t6400: preserve git ls-files exit status codeĐoàn Trần Công Danh, Jun 29, 2021
  28. Eric SunshineJun 29, 2021
  29. Junio C HamanoJun 29, 2021
  30. Eric SunshineJun 30, 2021
  31. Junio C HamanoJun 30, 2021
  32. Đoàn Trần Công DanhJun 30, 2021
  33. Junio C HamanoJun 30, 2021
  34. 2/2 t6402: preserve git exit status codeĐoàn Trần Công Danh, Jun 29, 2021
  35. Junio C HamanoJun 29, 2021
  36. 0/3 new test-libs-function: test_stdout_line_countĐoàn Trần Công Danh, Jul 4, 2021
  37. 1/3 test-lib-functions: introduce test_stdout_line_countĐoàn Trần Công Danh, Jul 4, 2021
  38. Eric SunshineJul 4, 2021
  39. Junio C HamanoJul 6, 2021
  40. Đoàn Trần Công DanhJul 7, 2021
  41. 2/3 t6400: preserve git ls-files exit status codeĐoàn Trần Công Danh, Jul 4, 2021
  42. 3/3 t6402: preserve git exit status codeĐoàn Trần Công Danh, Jul 4, 2021

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.