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

[PATCH v4 1/3] test-lib: show missing prereq summary

From
Fabian Stelzer <fs@gigacodes.de>
Date
Dec 1, 2021, 08:53 UTC
Message-ID
<20211201085315.576865-2-fs@gigacodes.de>
In-Reply-To
<20211201085315.576865-1-fs@gigacodes.de>

When running the full test suite many tests can be skipped because of missing prerequisites. It not easy right now to get an overview of which ones are missing. When switching to a new machine or environment some libraries and tools might be missing or maybe a dependency broke completely. In this case the tests would indicate nothing since all dependant tests are simply skipped. This could hide broken behaviour or missing features in the build. Therefore this patch summarizes the missing prereqs at the end of the test run making it easier to spot such cases.

 - Add failed prereqs to the test results.
 - Aggregate and then show them with the totals.
Signed-off-by: Fabian Stelzer <fs@gigacodes.de>
---
 t/aggregate-results.sh | 17 +++++++++++++++++
 t/test-lib.sh          | 11 +++++++++++
 2 files changed, 28 insertions(+)
diff --git a/t/aggregate-results.sh b/t/aggregate-results.sh
index 7913e206ed..7f2b83bdc8 100755
--- a/t/aggregate-results.sh
+++ b/t/aggregate-results.sh
@@ -6,6 +6,7 @@ success=0
 failed=0
 broken=0
 total=0
+missing_prereq=
 
 while read file
 do
@@ -30,10 +31,26 @@ do
 			broken=$(($broken + $value)) ;;
 		total)
 			total=$(($total + $value)) ;;
+		missing_prereq)
+			missing_prereq="$missing_prereq,$value" ;;
 		esac
 	done <"$file"
 done
 
+if test -n "$missing_prereq"
+then
+	unique_missing_prereq=$(
+		echo $missing_prereq |
+		tr -s "," "\n" |
+		grep -v '^$' |
+		sort -u |
+		paste -s -d ' ')
+	if test -n "$unique_missing_prereq"
+	then
+		printf "\nmissing prereq: $unique_missing_prereq\n\n"
+	fi
+fi
+
 if test -n "$failed_tests"
 then
 	printf "\nfailed test(s):$failed_tests\n\n"
diff --git a/t/test-lib.sh b/t/test-lib.sh
index 57efcc5e97..9090ce1225 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -669,6 +669,8 @@ test_fixed=0
 test_broken=0
 test_success=0
 
+test_missing_prereq=
+
 test_external_has_tap=0
 
 die () {
@@ -1069,6 +1071,14 @@ test_skip () {
 			of_prereq=" of $test_prereq"
 		fi
 		skipped_reason="missing $missing_prereq${of_prereq}"
+
+		# Keep a list of all the missing prereq for result aggregation
+		if test -z "$missing_prereq"
+		then
+			test_missing_prereq=$missing_prereq
+		else
+			test_missing_prereq="$test_missing_prereq,$missing_prereq"
+		fi
 	fi
 
 	case "$to_skip" in
@@ -1175,6 +1185,7 @@ test_done () {
 		fixed $test_fixed
 		broken $test_broken
 		failed $test_failure
+		missing_prereq $test_missing_prereq
 
 		EOF
 	fi
-- 
2.31.1
Previous: Fabian StelzerNext: Fabian Stelzer
Message 25 of 29 in “test-lib: improve missing prereq handling”
  1. 0/2 test-lib: improve missing prereq handlingFabian Stelzer, Nov 17, 2021
  2. 1/2 test-lib: show missing prereq summaryFabian Stelzer, Nov 17, 2021
  3. 2/2 test-lib: introduce required prereq for test runsFabian Stelzer, Nov 17, 2021
  4. Junio C HamanoNov 18, 2021
  5. Fabian StelzerNov 19, 2021
  6. Ævar Arnfjörð BjarmasonNov 19, 2021
  7. Fabian StelzerNov 19, 2021
  8. Fabian StelzerNov 19, 2021
  9. Ævar Arnfjörð BjarmasonNov 19, 2021
  10. Fabian StelzerNov 19, 2021
  11. Ævar Arnfjörð BjarmasonNov 19, 2021
  12. 0/3 test-lib: improve missing prereq handlingFabian Stelzer, Nov 20, 2021
  13. 1/3 test-lib: show missing prereq summaryFabian Stelzer, Nov 20, 2021
  14. 2/3 test-lib: introduce required prereq for test runsFabian Stelzer, Nov 20, 2021
  15. 3/3 test-lib: make BAIL_OUT() work in tests and prereqFabian Stelzer, Nov 20, 2021
  16. Ævar Arnfjörð BjarmasonNov 22, 2021
  17. Junio C HamanoNov 22, 2021
  18. Fabian StelzerNov 26, 2021
  19. Junio C HamanoNov 26, 2021
  20. Fabian StelzerNov 27, 2021
  21. Junio C HamanoNov 28, 2021
  22. Fabian StelzerNov 30, 2021
  23. Ævar Arnfjörð BjarmasonNov 30, 2021
  24. 0/3 test-lib: improve missing prereq handlingFabian Stelzer, Dec 1, 2021
  25. 1/3 test-lib: show missing prereq summaryFabian Stelzer, Dec 1, 2021
  26. 2/3 test-lib: introduce required prereq for test runsFabian Stelzer, Dec 1, 2021
  27. 3/3 test-lib: make BAIL_OUT() work in tests and prereqFabian Stelzer, Dec 1, 2021
  28. Junio C HamanoDec 1, 2021
  29. Adam DinwoodieDec 1, 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.