mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-09-12 04:55:43 +02:00
Makefile+scripts: add unit test flake hunter
This commit adds a script to hunt flakes for a specific unit test with trace logs. Also rename the make commands to make them more clear on whether it's a unit test, itest, or paralleled itest.
This commit is contained in:
16
Makefile
16
Makefile
@@ -276,18 +276,18 @@ unit-bench: $(BTCD_BIN)
|
|||||||
# FLAKE HUNTING
|
# FLAKE HUNTING
|
||||||
# =============
|
# =============
|
||||||
|
|
||||||
#? flakehunter: Run the integration tests continuously until one fails
|
#? flakehunter-itest: Run the integration tests continuously until one fails
|
||||||
flakehunter: build-itest
|
flakehunter-itest: build-itest
|
||||||
@$(call print, "Flake hunting ${backend} integration tests.")
|
@$(call print, "Flake hunting ${backend} integration tests.")
|
||||||
while [ $$? -eq 0 ]; do make itest-only icase='${icase}' backend='${backend}'; done
|
while [ $$? -eq 0 ]; do make itest-only icase='${icase}' backend='${backend}'; done
|
||||||
|
|
||||||
#? flake-unit: Run the unit tests continuously until one fails
|
#? flakehunter-unit: Run the unit tests continuously until one fails
|
||||||
flake-unit:
|
flakehunter-unit:
|
||||||
@$(call print, "Flake hunting unit tests.")
|
@$(call print, "Flake hunting unit test.")
|
||||||
while [ $$? -eq 0 ]; do GOTRACEBACK=all $(UNIT) -count=1; done
|
scripts/unit-test-flake-hunter.sh ${pkg} ${case}
|
||||||
|
|
||||||
#? flakehunter-parallel: Run the integration tests continuously until one fails, running up to ITEST_PARALLELISM test tranches in parallel (default 4)
|
#? flakehunter-itest-parallel: Run the integration tests continuously until one fails, running up to ITEST_PARALLELISM test tranches in parallel (default 4)
|
||||||
flakehunter-parallel:
|
flakehunter-itest-parallel:
|
||||||
@$(call print, "Flake hunting ${backend} integration tests in parallel.")
|
@$(call print, "Flake hunting ${backend} integration tests in parallel.")
|
||||||
while [ $$? -eq 0 ]; do make itest-parallel tranches=1 parallel=${ITEST_PARALLELISM} icase='${icase}' backend='${backend}'; done
|
while [ $$? -eq 0 ]; do make itest-parallel tranches=1 parallel=${ITEST_PARALLELISM} icase='${icase}' backend='${backend}'; done
|
||||||
|
|
||||||
|
23
scripts/unit-test-flake-hunter.sh
Executable file
23
scripts/unit-test-flake-hunter.sh
Executable file
@@ -0,0 +1,23 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Check if pkg and case variables are provided.
|
||||||
|
if [ $# -lt 2 ] || [ $# -gt 3 ]; then
|
||||||
|
echo "Usage: $0 <pkg> <case> [timeout]"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
pkg=$1
|
||||||
|
case=$2
|
||||||
|
timeout=${3:-30s} # Default to 30s if not provided.
|
||||||
|
|
||||||
|
counter=0
|
||||||
|
|
||||||
|
# Run the command in a loop until it fails.
|
||||||
|
while output=$(go clean -testcache && make unit-debug log="stdlog trace" pkg=$pkg case=$case timeout=$timeout 2>&1); do
|
||||||
|
((counter++))
|
||||||
|
echo "Test $case passed, count: $counter"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Only log the output when it fails.
|
||||||
|
echo "Test $case failed. Output:"
|
||||||
|
echo "$output"
|
Reference in New Issue
Block a user