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

[PATCH v4 1/2] t6400: preserve git ls-files exit status code

From
Đoàn Trần Công Danh <congdanhqx@gmail.com>
Date
Jun 29, 2021, 13:57 UTC
Message-ID
<49104273b8b801fc61811347120c5f4c42a3700b.1624974969.git.congdanhqx@gmail.com>
In-Reply-To
<cover.1624974969.git.congdanhqx@gmail.com>

In t6400, we're checking number of files in the index and the working tree by piping the output of "git ls-files" to "wc -l", thus losing the exit status code of git.

Let's write the output of "git ls-files" to a temporary file, in order to check exit status code of "git ls-files" properly.

Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
---
 t/t6400-merge-df.sh | 30 ++++++++++++++++++++++--------
 1 file changed, 22 insertions(+), 8 deletions(-)
diff --git a/t/t6400-merge-df.sh b/t/t6400-merge-df.sh
index 38700d29b5..c2888323c1 100755
--- a/t/t6400-merge-df.sh
+++ b/t/t6400-merge-df.sh
@@ -9,6 +9,20 @@ export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
 
 . ./test-lib.sh
 
+check_ls_files_count() {
+	local ops val
+	if test "$#" -le 2
+	then
+		BUG "Expect 2 or more arguments"
+	fi &&
+	ops="$1" &&
+	val="$2" &&
+	shift 2 &&
+	mkdir -p .git/trash &&
+	git ls-files "$@" >.git/trash/output &&
+	test_line_count "$ops" "$val" .git/trash/output
+}
+
 test_expect_success 'prepare repository' '
 	echo Hello >init &&
 	git add init &&
@@ -82,13 +96,13 @@ test_expect_success 'modify/delete + directory/file conflict' '
 	git checkout delete^0 &&
 	test_must_fail git merge modify &&
 
-	test 5 -eq $(git ls-files -s | wc -l) &&
-	test 4 -eq $(git ls-files -u | wc -l) &&
+	check_ls_files_count = 5 -s &&
+	check_ls_files_count = 4 -u &&
 	if test "$GIT_TEST_MERGE_ALGORITHM" = ort
 	then
-		test 0 -eq $(git ls-files -o | wc -l)
+		check_ls_files_count = 0 -o
 	else
-		test 1 -eq $(git ls-files -o | wc -l)
+		check_ls_files_count = 1 -o
 	fi &&
 
 	test_path_is_file letters/file &&
@@ -103,13 +117,13 @@ test_expect_success 'modify/delete + directory/file conflict; other way' '
 
 	test_must_fail git merge delete &&
 
-	test 5 -eq $(git ls-files -s | wc -l) &&
-	test 4 -eq $(git ls-files -u | wc -l) &&
+	check_ls_files_count = 5 -s &&
+	check_ls_files_count = 4 -u &&
 	if test "$GIT_TEST_MERGE_ALGORITHM" = ort
 	then
-		test 0 -eq $(git ls-files -o | wc -l)
+		check_ls_files_count = 0 -o
 	else
-		test 1 -eq $(git ls-files -o | wc -l)
+		check_ls_files_count = 1 -o
 	fi &&
 
 	test_path_is_file letters/file &&
-- 
2.32.0.278.gd42b80f139
Previous: Đoàn Trần Công DanhNext: Eric Sunshine
Message 27 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.