From: Wander Lairson Costa <wander@redhat.com>
To: williams@redhat.com, jkacur@redhat.com, juri.lelli@redhat.com,
luffyluo@tencent.com, davidlt@rivosinc.com,
linux-rt-users@vger.kernel.org
Cc: Wander Lairson Costa <wander@redhat.com>
Subject: [PATCH stalld 30/36] tests: Add fail() helper and use for all test failures
Date: Mon, 30 Mar 2026 16:43:53 -0300 [thread overview]
Message-ID: <20260330194410.103953-31-wander@redhat.com> (raw)
In-Reply-To: <20260330194410.103953-1-wander@redhat.com>
Add a fail() function that mirrors pass(), logging a failure
message and incrementing the failure counter. Replace all manual
fail patterns across the test suite, including both the log-based
and echo-based variants.
Signed-off-by: Wander Lairson Costa <wander@redhat.com>
---
tests/functional/test_affinity.sh | 6 ++--
tests/functional/test_backend_selection.sh | 6 ++--
tests/functional/test_boost_duration.sh | 18 ++++-------
tests/functional/test_boost_period.sh | 18 ++++-------
tests/functional/test_boost_restoration.sh | 3 +-
tests/functional/test_boost_runtime.sh | 21 +++++--------
tests/functional/test_cpu_selection.sh | 18 ++++-------
tests/functional/test_deadline_boosting.sh | 12 +++-----
tests/functional/test_fifo_boosting.sh | 12 +++-----
.../test_fifo_priority_starvation.sh | 15 ++++------
tests/functional/test_force_fifo.sh | 6 ++--
tests/functional/test_foreground.sh | 9 ++----
tests/functional/test_idle_detection.sh | 3 +-
tests/functional/test_log_only.sh | 6 ++--
tests/functional/test_logging_destinations.sh | 6 ++--
tests/functional/test_pidfile.sh | 27 ++++++-----------
tests/functional/test_runqueue_parsing.sh | 27 ++++++-----------
tests/functional/test_starvation_detection.sh | 30 +++++++------------
tests/functional/test_starvation_threshold.sh | 15 ++++------
tests/functional/test_task_merging.sh | 3 +-
tests/helpers/test_helpers.sh | 11 ++++++-
21 files changed, 97 insertions(+), 175 deletions(-)
diff --git a/tests/functional/test_affinity.sh b/tests/functional/test_affinity.sh
index b74886d..7ecd85f 100755
--- a/tests/functional/test_affinity.sh
+++ b/tests/functional/test_affinity.sh
@@ -109,8 +109,7 @@ affinity=$(check_affinity "${STALLD_PID}")
if [ "$affinity" = "0" ]; then
pass "stalld restricted to CPU 0"
else
- log "✗ FAIL: stalld affinity ($affinity) doesn't match requested (0)"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "stalld affinity ($affinity) doesn't match requested (0)"
fi
stop_stalld
@@ -270,8 +269,7 @@ ret=$?
if [ $ret -ne 0 ] && [ $ret -ne 124 ]; then
pass "Invalid CPU affinity rejected with error"
else
- log "✗ FAIL: stalld did not reject invalid CPU affinity"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "stalld did not reject invalid CPU affinity"
fi
#=============================================================================
diff --git a/tests/functional/test_backend_selection.sh b/tests/functional/test_backend_selection.sh
index 8a22e0a..2db8353 100755
--- a/tests/functional/test_backend_selection.sh
+++ b/tests/functional/test_backend_selection.sh
@@ -39,8 +39,7 @@ test_backend_flag() {
CLEANUP_PIDS+=("${STALLD_PID}")
if ! wait_for_stalld_ready "${log_file}" 15; then
- TEST_FAILED=$((TEST_FAILED + 1))
- echo -e " ${RED}FAIL${NC}: stalld failed to start (${description})"
+ fail "stalld failed to start (${description})"
stop_stalld
return 1
fi
@@ -48,8 +47,7 @@ test_backend_flag() {
if grep -q "${expected_msg}" "${log_file}"; then
pass "${description}"
else
- TEST_FAILED=$((TEST_FAILED + 1))
- echo -e " ${RED}FAIL${NC}: Backend message not found (${description})"
+ fail "Backend message not found (${description})"
echo " Expected: ${expected_msg}"
echo " Log contents:"
cat "${log_file}"
diff --git a/tests/functional/test_boost_duration.sh b/tests/functional/test_boost_duration.sh
index 61218e9..83d8355 100755
--- a/tests/functional/test_boost_duration.sh
+++ b/tests/functional/test_boost_duration.sh
@@ -69,8 +69,7 @@ start_starvation_gen -c "${TEST_CPU}" -p 80 -n 2 -d ${starvation_duration}
if wait_for_starvation_detected "${STALLD_LOG}"; then
pass "Starvation detection occurred with default duration"
else
- log "✗ FAIL: No starvation detection"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "No starvation detection"
fi
# Cleanup
@@ -101,8 +100,7 @@ start_starvation_gen -c "${TEST_CPU}" -p 80 -n 2 -d ${starvation_duration}
if wait_for_starvation_detected "${STALLD_LOG2}"; then
pass "Starvation detection with ${short_duration}s duration"
else
- log "✗ FAIL: No starvation detection with short duration"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "No starvation detection with short duration"
fi
# Cleanup
@@ -135,8 +133,7 @@ start_starvation_gen -c "${TEST_CPU}" -p 80 -n 2 -d ${long_starvation}
if wait_for_starvation_detected "${STALLD_LOG3}"; then
pass "Starvation detection with ${long_duration}s duration"
else
- log "✗ FAIL: No starvation detection with long duration"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "No starvation detection with long duration"
fi
# Cleanup
@@ -168,8 +165,7 @@ start_starvation_gen -c "${TEST_CPU}" -p 80 -n 1 -d 15
if wait_for_starvation_detected "${STALLD_LOG4}"; then
pass "Starvation detection with ${duration}s boost duration"
else
- log "✗ FAIL: No starvation detection"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "No starvation detection"
fi
# Cleanup
@@ -202,8 +198,7 @@ ret=$?
if [ $ret -ne 0 ] && [ $ret -ne 124 ]; then
pass "Zero duration rejected with error"
else
- log "✗ FAIL: stalld did not reject invalid duration value 0"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "stalld did not reject invalid duration value 0"
fi
# Test 6: Negative duration
@@ -217,8 +212,7 @@ ret=$?
if [ $ret -ne 0 ] && [ $ret -ne 124 ]; then
pass "Negative duration rejected with error"
else
- log "✗ FAIL: stalld did not reject invalid negative duration"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "stalld did not reject invalid negative duration"
fi
log ""
diff --git a/tests/functional/test_boost_period.sh b/tests/functional/test_boost_period.sh
index 671f7cb..3f3ef46 100755
--- a/tests/functional/test_boost_period.sh
+++ b/tests/functional/test_boost_period.sh
@@ -71,10 +71,9 @@ if wait_for_boost_detected "${STALLD_LOG}"; then
log "ℹ INFO: Period information found in logs"
fi
else
- log "✗ FAIL: No boosting detected"
+ fail "No boosting detected"
log "Log contents:"
cat "${STALLD_LOG}"
- TEST_FAILED=$((TEST_FAILED + 1))
fi
# Cleanup
@@ -103,8 +102,7 @@ start_starvation_gen -c "${TEST_CPU}" -p 80 -n 2 -d ${starvation_duration}
if wait_for_boost_detected "${STALLD_LOG}"; then
pass "Boosting occurred with custom period ${custom_period} ns"
else
- log "✗ FAIL: No boosting with custom period"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "No boosting with custom period"
fi
# Cleanup
@@ -133,8 +131,7 @@ start_starvation_gen -c "${TEST_CPU}" -p 80 -n 2 -d ${starvation_duration}
if wait_for_boost_detected "${STALLD_LOG}"; then
pass "Boosting occurred with short period ${short_period} ns"
else
- log "✗ FAIL: No boosting with short period"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "No boosting with short period"
fi
# Cleanup
@@ -163,8 +160,7 @@ start_starvation_gen -c "${TEST_CPU}" -p 80 -n 2 -d ${starvation_duration}
if wait_for_boost_detected "${STALLD_LOG}"; then
pass "Boosting occurred with long period ${long_period} ns"
else
- log "✗ FAIL: No boosting with long period"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "No boosting with long period"
fi
# Cleanup
@@ -195,8 +191,7 @@ ret=$?
if [ $ret -ne 0 ] && [ $ret -ne 124 ]; then
pass "Zero period rejected with error"
else
- log "✗ FAIL: stalld did not reject invalid period value 0"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "stalld did not reject invalid period value 0"
fi
#=============================================================================
@@ -216,8 +211,7 @@ ret=$?
if [ $ret -ne 0 ] && [ $ret -ne 124 ]; then
pass "Negative period rejected with error"
else
- log "✗ FAIL: stalld did not reject invalid negative period"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "stalld did not reject invalid negative period"
fi
#=============================================================================
diff --git a/tests/functional/test_boost_restoration.sh b/tests/functional/test_boost_restoration.sh
index 024d869..bac73ba 100755
--- a/tests/functional/test_boost_restoration.sh
+++ b/tests/functional/test_boost_restoration.sh
@@ -391,8 +391,7 @@ if wait_for_boost_detected "${STALLD_LOG}"; then
if assert_process_running "${STALLD_PID}" "stalld still running after task exit"; then
pass "stalld handled task exit during boost gracefully"
else
- log "✗ FAIL: stalld crashed or exited after task died during boost"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "stalld crashed or exited after task died during boost"
fi
# Check for error messages
diff --git a/tests/functional/test_boost_runtime.sh b/tests/functional/test_boost_runtime.sh
index b624fc9..71e25f1 100755
--- a/tests/functional/test_boost_runtime.sh
+++ b/tests/functional/test_boost_runtime.sh
@@ -69,8 +69,7 @@ start_starvation_gen -c "${TEST_CPU}" -p 80 -n 2 -d ${starvation_duration}
if wait_for_starvation_detected "${STALLD_LOG}"; then
pass "Starvation detection with default runtime"
else
- log "✗ FAIL: No starvation detection"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "No starvation detection"
fi
# Cleanup
@@ -101,8 +100,7 @@ start_starvation_gen -c "${TEST_CPU}" -p 80 -n 2 -d ${starvation_duration}
if wait_for_starvation_detected "${STALLD_LOG2}"; then
pass "Starvation detection with custom runtime ${custom_runtime}ns"
else
- log "✗ FAIL: No starvation detection with custom runtime"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "No starvation detection with custom runtime"
fi
# Cleanup
@@ -133,8 +131,7 @@ start_starvation_gen -c "${TEST_CPU}" -p 80 -n 2 -d ${starvation_duration}
if wait_for_starvation_detected "${STALLD_LOG3}"; then
pass "Starvation detection with large runtime ${large_runtime}ns"
else
- log "✗ FAIL: No starvation detection with large runtime"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "No starvation detection with large runtime"
fi
# Cleanup
@@ -167,8 +164,7 @@ start_starvation_gen -c "${TEST_CPU}" -p 80 -n 2 -d ${starvation_duration}
if wait_for_starvation_detected "${STALLD_LOG4}"; then
pass "Starvation detection with runtime < period"
else
- log "✗ FAIL: No starvation detection when runtime < period"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "No starvation detection when runtime < period"
fi
# Cleanup
@@ -202,8 +198,7 @@ ret=$?
if [ $ret -ne 0 ] && [ $ret -ne 124 ]; then
pass "Runtime > period rejected with error"
else
- log "✗ FAIL: stalld did not reject invalid runtime > period"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "stalld did not reject invalid runtime > period"
fi
#=============================================================================
@@ -224,8 +219,7 @@ ret=$?
if [ $ret -ne 0 ] && [ $ret -ne 124 ]; then
pass "Zero runtime rejected with error"
else
- log "✗ FAIL: stalld did not reject invalid runtime value 0"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "stalld did not reject invalid runtime value 0"
fi
#=============================================================================
@@ -246,8 +240,7 @@ ret=$?
if [ $ret -ne 0 ] && [ $ret -ne 124 ]; then
pass "Negative runtime rejected with error"
else
- log "✗ FAIL: stalld did not reject invalid negative runtime"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "stalld did not reject invalid negative runtime"
fi
log ""
diff --git a/tests/functional/test_cpu_selection.sh b/tests/functional/test_cpu_selection.sh
index 2f9875d..99eac44 100755
--- a/tests/functional/test_cpu_selection.sh
+++ b/tests/functional/test_cpu_selection.sh
@@ -44,8 +44,7 @@ start_stalld_with_log "${STALLD_LOG}" -f -v -c 0 -l -t 5
if grep -q "cpu 0" "$STALLD_LOG"; then
pass "stalld monitoring CPU 0"
else
- TEST_FAILED=$((TEST_FAILED + 1))
- echo -e " ${RED}FAIL${NC}: stalld not monitoring CPU 0"
+ fail "stalld not monitoring CPU 0"
fi
stop_stalld
@@ -70,8 +69,7 @@ if [ "$num_cpus" -ge 4 ]; then
if [ "$cpu0_found" -eq 1 ] && [ "$cpu2_found" -eq 1 ]; then
pass "stalld monitoring CPUs 0 and 2"
else
- TEST_FAILED=$((TEST_FAILED + 1))
- echo -e " ${RED}FAIL${NC}: stalld not monitoring specified CPUs (0: $cpu0_found, 2: $cpu2_found)"
+ fail "stalld not monitoring specified CPUs (0: $cpu0_found, 2: $cpu2_found)"
fi
stop_stalld
@@ -103,8 +101,7 @@ if [ "$num_cpus" -ge 4 ]; then
if [ "$cpu0_found" -eq 1 ] && [ "$cpu1_found" -eq 1 ] && [ "$cpu2_found" -eq 1 ]; then
pass "stalld monitoring CPUs 0-2"
else
- TEST_FAILED=$((TEST_FAILED + 1))
- echo -e " ${RED}FAIL${NC}: stalld not monitoring specified CPU range (0: $cpu0_found, 1: $cpu1_found, 2: $cpu2_found)"
+ fail "stalld not monitoring specified CPU range (0: $cpu0_found, 1: $cpu1_found, 2: $cpu2_found)"
fi
stop_stalld
@@ -130,8 +127,7 @@ if [ "$num_cpus" -ge 6 ]; then
if [ "$monitored_cpus" -eq 4 ]; then
pass "stalld monitoring combined CPU specification (0,2-4)"
else
- TEST_FAILED=$((TEST_FAILED + 1))
- echo -e " ${RED}FAIL${NC}: stalld not monitoring all specified CPUs (found $monitored_cpus/4)"
+ fail "stalld not monitoring all specified CPUs (found $monitored_cpus/4)"
fi
stop_stalld
@@ -155,8 +151,7 @@ ret=$?
if [ $ret -ne 0 ] && [ $ret -ne 124 ]; then
pass "stalld rejected invalid CPU number"
else
- log "✗ FAIL: stalld did not reject invalid CPU"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "stalld did not reject invalid CPU"
fi
# Test 6: Verify non-selected CPUs are NOT monitored
@@ -170,8 +165,7 @@ if [ "$num_cpus" -ge 2 ]; then
if ! grep -q "cpu 1" "$STALLD_LOG" || grep -q "not monitoring.*cpu 1" "$STALLD_LOG"; then
pass "stalld not monitoring non-selected CPU 1"
else
- TEST_FAILED=$((TEST_FAILED + 1))
- echo -e " ${RED}FAIL${NC}: stalld appears to be monitoring CPU 1 when only CPU 0 selected"
+ fail "stalld appears to be monitoring CPU 1 when only CPU 0 selected"
fi
stop_stalld
diff --git a/tests/functional/test_deadline_boosting.sh b/tests/functional/test_deadline_boosting.sh
index 86ca0f1..544222a 100755
--- a/tests/functional/test_deadline_boosting.sh
+++ b/tests/functional/test_deadline_boosting.sh
@@ -74,8 +74,7 @@ if wait_for_boost_detected "${STALLD_LOG}"; then
if grep -q "SCHED_DEADLINE" "${STALLD_LOG}"; then
pass "SCHED_DEADLINE boosting used (default)"
else
- log "✗ FAIL: SCHED_DEADLINE not mentioned in boost message"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "SCHED_DEADLINE not mentioned in boost message"
fi
# Verify boost happened after threshold
@@ -86,10 +85,9 @@ if wait_for_boost_detected "${STALLD_LOG}"; then
log "⚠ WARNING: No starvation message before boost"
fi
else
- log "✗ FAIL: No boosting detected"
+ fail "No boosting detected"
log "Log contents:"
cat "${STALLD_LOG}"
- TEST_FAILED=$((TEST_FAILED + 1))
fi
# Cleanup
@@ -153,8 +151,7 @@ if [ ${boosted_task_found} -eq 0 ]; then
if grep -q "boosted.*SCHED_DEADLINE" "${STALLD_LOG}"; then
pass "SCHED_DEADLINE boost confirmed in logs"
else
- log "✗ FAIL: No SCHED_DEADLINE boost detected"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "No SCHED_DEADLINE boost detected"
fi
fi
@@ -226,8 +223,7 @@ fi
if grep -q "boosted" "${STALLD_LOG}"; then
pass "Boost occurred as expected"
else
- log "✗ FAIL: No boost detected"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "No boost detected"
fi
# Cleanup
diff --git a/tests/functional/test_fifo_boosting.sh b/tests/functional/test_fifo_boosting.sh
index df26483..50c8d14 100755
--- a/tests/functional/test_fifo_boosting.sh
+++ b/tests/functional/test_fifo_boosting.sh
@@ -72,14 +72,12 @@ if wait_for_boost_detected "${STALLD_LOG}"; then
if grep -q "SCHED_FIFO" "${STALLD_LOG}"; then
pass "SCHED_FIFO boosting used (as requested by -F)"
else
- log "✗ FAIL: SCHED_FIFO not mentioned in boost message"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "SCHED_FIFO not mentioned in boost message"
fi
else
- log "✗ FAIL: No boosting detected with -F flag"
+ fail "No boosting detected with -F flag"
log "Log contents:"
cat "${STALLD_LOG}"
- TEST_FAILED=$((TEST_FAILED + 1))
fi
# Cleanup
@@ -134,8 +132,7 @@ if [ ${fifo_task_found} -eq 0 ]; then
if grep -q "boosted.*SCHED_FIFO" "${STALLD_LOG}"; then
pass "SCHED_FIFO boost confirmed in logs"
else
- log "✗ FAIL: No SCHED_FIFO boost detected"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "No SCHED_FIFO boost detected"
fi
fi
@@ -337,8 +334,7 @@ ret=$?
if [ $ret -ne 0 ] && [ $ret -ne 124 ]; then
pass "stalld exited as expected"
else
- log "✗ FAIL: stalld did not reject FIFO in single-threaded mode"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "stalld did not reject FIFO in single-threaded mode"
fi
# Check for error message in log
diff --git a/tests/functional/test_fifo_priority_starvation.sh b/tests/functional/test_fifo_priority_starvation.sh
index 3776e6b..9554d49 100755
--- a/tests/functional/test_fifo_priority_starvation.sh
+++ b/tests/functional/test_fifo_priority_starvation.sh
@@ -78,22 +78,19 @@ if wait_for_starvation_detected "${STALLD_LOG}"; then
if grep "starved on CPU ${TEST_CPU}" "${STALLD_LOG}"; then
pass "Correct CPU ID logged (CPU ${TEST_CPU})"
else
- log "✗ FAIL: Wrong CPU ID in log"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "Wrong CPU ID in log"
fi
# Verify duration is logged
if grep -E "starved on CPU ${TEST_CPU} for [0-9]+ seconds" "${STALLD_LOG}"; then
pass "Starvation duration logged"
else
- log "✗ FAIL: Starvation duration not logged"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "Starvation duration not logged"
fi
else
- log "✗ FAIL: FIFO-on-FIFO starvation not detected"
+ fail "FIFO-on-FIFO starvation not detected"
log "Log contents:"
cat "${STALLD_LOG}"
- TEST_FAILED=$((TEST_FAILED + 1))
fi
# Cleanup
@@ -159,8 +156,7 @@ else
if grep -q "boosted" "${STALLD_LOG}"; then
log "ℹ INFO: Boosting did occur according to logs"
else
- log "✗ FAIL: No boosting detected"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "No boosting detected"
fi
fi
@@ -218,8 +214,7 @@ if grep -E "starved on CPU ${TEST_CPU} for [0-9]+ seconds" "${STALLD_LOG}" | wc
pass "Starvation duration increased (${first_duration}s -> ${last_duration}s)"
log " This confirms task merging preserved the timestamp"
else
- log "✗ FAIL: Starvation duration did not increase (timestamp may have been reset)"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "Starvation duration did not increase (timestamp may have been reset)"
fi
else
log "⚠ WARNING: Not enough starvation reports to verify task merging"
diff --git a/tests/functional/test_force_fifo.sh b/tests/functional/test_force_fifo.sh
index fec2e00..ecaa7ac 100755
--- a/tests/functional/test_force_fifo.sh
+++ b/tests/functional/test_force_fifo.sh
@@ -107,8 +107,7 @@ if wait_for_boost_detected "${STALLD_LOG2}"; then
if grep -qi "fifo\|SCHED_FIFO" "${STALLD_LOG2}"; then
pass "SCHED_FIFO used with -F flag"
elif grep -qi "deadline\|SCHED_DEADLINE" "${STALLD_LOG2}"; then
- log "✗ FAIL: SCHED_DEADLINE used despite -F flag"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "SCHED_DEADLINE used despite -F flag"
else
log "⚠ WARNING: Scheduling policy not explicitly mentioned in logs"
fi
@@ -220,8 +219,7 @@ ret=$?
if [ $ret -ne 0 ] && [ $ret -ne 124 ]; then
pass "single-threaded mode rejected FIFO"
else
- log "✗ FAIL: stalld did not reject -F in single-threaded mode"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "stalld did not reject -F in single-threaded mode"
fi
#=============================================================================
diff --git a/tests/functional/test_foreground.sh b/tests/functional/test_foreground.sh
index 2bb0282..8b89d02 100755
--- a/tests/functional/test_foreground.sh
+++ b/tests/functional/test_foreground.sh
@@ -38,8 +38,7 @@ if assert_process_running "${STALLD_PID}" "stalld should be running"; then
if [ "${PARENT_PID}" != "$$" ]; then
pass "stalld daemonized (parent is not test shell)"
else
- TEST_FAILED=$((TEST_FAILED + 1))
- echo -e " ${RED}FAIL${NC}: stalld did not daemonize (parent is test shell)"
+ fail "stalld did not daemonize (parent is test shell)"
fi
fi
fi
@@ -64,8 +63,7 @@ if assert_process_running "${STALLD_PID}" "stalld should be running with -f"; th
if [ "${PARENT_PID}" != "1" ]; then
pass "stalld did not daemonize with -f (parent is not init)"
else
- TEST_FAILED=$((TEST_FAILED + 1))
- echo -e " ${RED}FAIL${NC}: stalld daemonized even with -f flag"
+ fail "stalld daemonized even with -f flag"
fi
fi
@@ -84,8 +82,7 @@ if assert_process_running "${STALLD_PID}" "stalld should be running with -v"; th
if [ "${PARENT_PID}" != "1" ]; then
pass "-v implies foreground mode"
else
- TEST_FAILED=$((TEST_FAILED + 1))
- echo -e " ${RED}FAIL${NC}: -v should imply foreground mode"
+ fail "-v should imply foreground mode"
fi
fi
diff --git a/tests/functional/test_idle_detection.sh b/tests/functional/test_idle_detection.sh
index af4d7a4..8757d74 100755
--- a/tests/functional/test_idle_detection.sh
+++ b/tests/functional/test_idle_detection.sh
@@ -137,8 +137,7 @@ if [ -n "${idle_time1}" ] && [ -n "${idle_time2}" ]; then
log " stalld would parse this CPU"
fi
else
- log "✗ FAIL: Could not read idle time from /proc/stat"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "Could not read idle time from /proc/stat"
fi
#=============================================================================
diff --git a/tests/functional/test_log_only.sh b/tests/functional/test_log_only.sh
index d6257cf..21518a4 100755
--- a/tests/functional/test_log_only.sh
+++ b/tests/functional/test_log_only.sh
@@ -61,8 +61,7 @@ echo "Waiting for starvation detection..."
if wait_for_starvation_detected "${LOG_FILE}"; then
pass "stalld detected and logged starvation"
else
- TEST_FAILED=$((TEST_FAILED + 1))
- echo -e " ${RED}FAIL${NC}: stalld did not detect starvation"
+ fail "stalld did not detect starvation"
echo "Log contents:"
cat "${LOG_FILE}"
fi
@@ -71,8 +70,7 @@ fi
if ! grep -q "boosted" "${LOG_FILE}"; then
pass "stalld did not boost in log-only mode"
else
- TEST_FAILED=$((TEST_FAILED + 1))
- echo -e " ${RED}FAIL${NC}: stalld boosted despite -l flag"
+ fail "stalld boosted despite -l flag"
echo "Log contents:"
cat "${LOG_FILE}"
fi
diff --git a/tests/functional/test_logging_destinations.sh b/tests/functional/test_logging_destinations.sh
index 35470c0..f05cd00 100755
--- a/tests/functional/test_logging_destinations.sh
+++ b/tests/functional/test_logging_destinations.sh
@@ -45,8 +45,7 @@ if assert_process_running "${STALLD_PID}" "stalld should be running"; then
pass "output contains expected messages"
fi
else
- TEST_FAILED=$((TEST_FAILED + 1))
- echo -e " ${RED}FAIL${NC}: no output in verbose mode"
+ fail "no output in verbose mode"
fi
fi
@@ -158,8 +157,7 @@ if assert_process_running "${STALLD_PID}" "stalld with combined logging should b
if [ -s "${LOG_FILE}" ]; then
pass "combined logging produces output"
else
- TEST_FAILED=$((TEST_FAILED + 1))
- echo -e " ${RED}FAIL${NC}: no output with combined logging"
+ fail "no output with combined logging"
fi
fi
diff --git a/tests/functional/test_pidfile.sh b/tests/functional/test_pidfile.sh
index fd4fedc..0e4c623 100755
--- a/tests/functional/test_pidfile.sh
+++ b/tests/functional/test_pidfile.sh
@@ -56,8 +56,7 @@ for pidfile in /var/run/stalld.pid /run/stalld.pid; do
if [ "$pid_from_file" = "${STALLD_PID}" ]; then
pass "Default pidfile contains correct PID"
else
- log "✗ FAIL: Default pidfile PID ($pid_from_file) doesn't match stalld PID (${STALLD_PID})"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "Default pidfile PID ($pid_from_file) doesn't match stalld PID (${STALLD_PID})"
fi
break
fi
@@ -99,12 +98,10 @@ if [ -f "${custom_pidfile}" ]; then
if [ "$pid_from_file" = "${STALLD_PID}" ]; then
pass "Custom pidfile contains correct PID ($pid_from_file)"
else
- log "✗ FAIL: Custom pidfile PID ($pid_from_file) doesn't match stalld PID (${STALLD_PID})"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "Custom pidfile PID ($pid_from_file) doesn't match stalld PID (${STALLD_PID})"
fi
else
- log "✗ FAIL: Custom pidfile not created at ${custom_pidfile}"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "Custom pidfile not created at ${custom_pidfile}"
fi
# Test 3: Verify pidfile removed on clean shutdown
@@ -145,12 +142,10 @@ if [ -f "${tmp_pidfile}" ]; then
if [ "$pid_from_file" = "${STALLD_PID}" ]; then
pass "/tmp pidfile contains correct PID"
else
- log "✗ FAIL: /tmp pidfile has incorrect PID"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "/tmp pidfile has incorrect PID"
fi
else
- log "✗ FAIL: Pidfile not created in /tmp"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "Pidfile not created in /tmp"
fi
stop_stalld
@@ -181,8 +176,7 @@ if [ -f "${fg_pidfile}" ]; then
if [ "$pid_from_file" = "${STALLD_PID}" ]; then
pass "Foreground mode pidfile contains correct PID"
else
- log "✗ FAIL: Foreground mode pidfile has incorrect PID"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "Foreground mode pidfile has incorrect PID"
fi
else
log "⚠ WARNING: Pidfile not created in foreground mode (may be expected)"
@@ -221,8 +215,7 @@ ret=$?
if [ $ret -ne 0 ] && [ $ret -ne 124 ]; then
pass "Invalid pidfile path rejected with error"
else
- log "✗ FAIL: stalld did not reject invalid pidfile path"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "stalld did not reject invalid pidfile path"
fi
# Cleanup
@@ -256,12 +249,10 @@ if [ -f "${readable_pidfile}" ]; then
perms=$(stat -c "%a" "${readable_pidfile}" 2>/dev/null || stat -f "%Lp" "${readable_pidfile}" 2>/dev/null)
log "ℹ INFO: Pidfile permissions: $perms"
else
- log "✗ FAIL: Pidfile not readable"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "Pidfile not readable"
fi
else
- log "✗ FAIL: Pidfile not created"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "Pidfile not created"
fi
stop_stalld
diff --git a/tests/functional/test_runqueue_parsing.sh b/tests/functional/test_runqueue_parsing.sh
index fc69fa0..ac5190e 100755
--- a/tests/functional/test_runqueue_parsing.sh
+++ b/tests/functional/test_runqueue_parsing.sh
@@ -108,8 +108,7 @@ if [ ${BPF_AVAILABLE} -eq 1 ]; then
if grep -E "starvation_gen.*starved on CPU ${TEST_CPU}" "${STALLD_LOG_BPF}"; then
pass "Task name (comm) correctly extracted"
else
- log "✗ FAIL: Task name not found in eBPF backend output"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "Task name not found in eBPF backend output"
fi
# Verify PID is logged
@@ -119,10 +118,9 @@ if [ ${BPF_AVAILABLE} -eq 1 ]; then
log "⚠ INFO: PID format may have changed"
fi
else
- log "✗ FAIL: eBPF backend did not detect starvation"
+ fail "eBPF backend did not detect starvation"
log "Log contents:"
cat "${STALLD_LOG_BPF}"
- TEST_FAILED=$((TEST_FAILED + 1))
fi
# Cleanup
@@ -163,8 +161,7 @@ if [ ${SCHED_DEBUG_AVAILABLE} -eq 1 ]; then
if grep -E "starvation_gen.*starved on CPU ${TEST_CPU}" "${STALLD_LOG_SCHED}"; then
pass "Task name (comm) correctly extracted"
else
- log "✗ FAIL: Task name not found in sched_debug backend output"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "Task name not found in sched_debug backend output"
fi
# Verify PID is logged
@@ -180,10 +177,9 @@ if [ ${SCHED_DEBUG_AVAILABLE} -eq 1 ]; then
log "ℹ INFO: Kernel format detected: $format"
fi
else
- log "✗ FAIL: sched_debug backend did not detect starvation"
+ fail "sched_debug backend did not detect starvation"
log "Log contents:"
cat "${STALLD_LOG_SCHED}"
- TEST_FAILED=$((TEST_FAILED + 1))
fi
# Cleanup
@@ -262,8 +258,7 @@ if [ ${BPF_AVAILABLE} -eq 1 ] && [ ${SCHED_DEBUG_AVAILABLE} -eq 1 ]; then
log " This may be due to timing differences between backends"
fi
else
- log "✗ FAIL: One or both backends failed to detect starvation"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "One or both backends failed to detect starvation"
fi
else
log ""
@@ -315,32 +310,28 @@ if [ -n "$test_backend" ]; then
if grep -q "starvation_gen" "${log_file}"; then
pass "Task name (comm) field extracted"
else
- log "✗ FAIL: Task name (comm) field not found"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "Task name (comm) field not found"
fi
# Check for PID field (format: name-PID or [PID])
if grep -qE "(starvation_gen-[0-9]+|\[[0-9]+\])" "${log_file}"; then
pass "PID field extracted"
else
- log "✗ FAIL: PID field not found"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "PID field not found"
fi
# Check for CPU ID
if grep -q "CPU ${TEST_CPU}" "${log_file}"; then
pass "CPU ID field extracted"
else
- log "✗ FAIL: CPU ID field not found"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "CPU ID field not found"
fi
# Check for starvation duration
if grep -qE "for [0-9]+ seconds" "${log_file}"; then
pass "Starvation duration calculated from context switches/time"
else
- log "✗ FAIL: Starvation duration not found"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "Starvation duration not found"
fi
# Cleanup
diff --git a/tests/functional/test_starvation_detection.sh b/tests/functional/test_starvation_detection.sh
index 6d4d7c5..680cf39 100755
--- a/tests/functional/test_starvation_detection.sh
+++ b/tests/functional/test_starvation_detection.sh
@@ -81,22 +81,19 @@ if wait_for_starvation_detected "${STALLD_LOG}"; then
if grep "starved on CPU ${TEST_CPU}" "${STALLD_LOG}"; then
pass "Correct CPU ID logged (CPU ${TEST_CPU})"
else
- log "✗ FAIL: Wrong CPU ID in log"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "Wrong CPU ID in log"
fi
# Verify duration is logged
if grep -E "starved on CPU ${TEST_CPU} for [0-9]+ seconds" "${STALLD_LOG}"; then
pass "Starvation duration logged"
else
- log "✗ FAIL: Starvation duration not logged"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "Starvation duration not logged"
fi
else
- log "✗ FAIL: Starvation not detected"
+ fail "Starvation not detected"
log "Log contents:"
cat "${STALLD_LOG}"
- TEST_FAILED=$((TEST_FAILED + 1))
fi
# Cleanup
@@ -147,8 +144,7 @@ if [ -n "${STARVE_CHILDREN}" ]; then
if [ ${ctxt_delta} -lt 5 ]; then
pass "Context switch count remained low (delta: ${ctxt_delta})"
else
- log "✗ FAIL: Context switches increased significantly (delta: ${ctxt_delta})"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "Context switches increased significantly (delta: ${ctxt_delta})"
fi
break
fi
@@ -213,14 +209,12 @@ if [ "${report_count}" -ge 2 ]; then
pass "Starvation duration increased (${first_duration}s -> ${last_duration}s)"
log " This confirms task merging preserved the timestamp"
else
- log "✗ FAIL: Starvation duration did not increase (timestamp may have been reset)"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "Starvation duration did not increase (timestamp may have been reset)"
fi
else
- log "✗ FAIL: Not enough starvation reports to verify task merging (found ${report_count}, need >= 2)"
+ fail "Not enough starvation reports to verify task merging (found ${report_count}, need >= 2)"
log "Log contents:"
cat "${STALLD_LOG}"
- TEST_FAILED=$((TEST_FAILED + 1))
fi
# Cleanup starvation generator
@@ -285,15 +279,13 @@ else
if grep -qE "starvation_gen.*starved on CPU ${CPU0}|starved on CPU ${CPU0}.*starvation_gen" "${STALLD_LOG}"; then
pass "Starvation detected on CPU ${CPU0}"
else
- log "✗ FAIL: Starvation not detected on CPU ${CPU0}"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "Starvation not detected on CPU ${CPU0}"
fi
if grep -qE "starvation_gen.*starved on CPU ${CPU1}|starved on CPU ${CPU1}.*starvation_gen" "${STALLD_LOG}"; then
pass "Starvation detected on CPU ${CPU1}"
else
- log "✗ FAIL: Starvation not detected on CPU ${CPU1}"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "Starvation not detected on CPU ${CPU1}"
fi
# Cleanup
@@ -372,16 +364,14 @@ sleep 5
if assert_process_running "${STALLD_PID}" "stalld still running after task exit"; then
pass "stalld handled task exit gracefully"
else
- log "✗ FAIL: stalld crashed or exited unexpectedly"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "stalld crashed or exited unexpectedly"
fi
# Check for error messages
if grep -iE "error|segfault|crash" "${STALLD_LOG}"; then
- log "✗ FAIL: Error messages found in log"
+ fail "Error messages found in log"
log "Errors:"
grep -iE "error|segfault|crash" "${STALLD_LOG}"
- TEST_FAILED=$((TEST_FAILED + 1))
else
pass "No error messages in log"
fi
diff --git a/tests/functional/test_starvation_threshold.sh b/tests/functional/test_starvation_threshold.sh
index a35f898..a2cd420 100755
--- a/tests/functional/test_starvation_threshold.sh
+++ b/tests/functional/test_starvation_threshold.sh
@@ -78,10 +78,9 @@ log "Waiting for detection (threshold: ${threshold}s)"
if wait_for_starvation_detected "${STALLD_LOG}"; then
pass "Starvation detected after ${threshold}s threshold"
else
- log "✗ FAIL: Starvation not detected after ${threshold}s threshold"
+ fail "Starvation not detected after ${threshold}s threshold"
log "Log contents:"
cat "${STALLD_LOG}"
- TEST_FAILED=$((TEST_FAILED + 1))
fi
# Cleanup
@@ -123,10 +122,9 @@ sleep 2
if ! grep -qE "starvation_gen.*starved on CPU ${TEST_CPU}|starved on CPU ${TEST_CPU}.*starvation_gen" "${STALLD_LOG2}"; then
pass "No starvation detected for duration less than threshold"
else
- log "✗ FAIL: Starvation detected before threshold"
+ fail "Starvation detected before threshold"
log "Found starvation_gen task in logs:"
grep -E "starvation_gen.*starved on CPU|starved on CPU.*starvation_gen" "${STALLD_LOG2}"
- TEST_FAILED=$((TEST_FAILED + 1))
fi
# Cleanup
@@ -163,10 +161,9 @@ log "Waiting for detection (threshold: ${threshold}s)"
if wait_for_starvation_detected "${STALLD_LOG3}"; then
pass "Starvation detected with ${threshold}s threshold"
else
- log "✗ FAIL: Starvation not detected with ${threshold}s threshold"
+ fail "Starvation not detected with ${threshold}s threshold"
log "Log contents:"
cat "${STALLD_LOG3}"
- TEST_FAILED=$((TEST_FAILED + 1))
fi
# Cleanup
@@ -193,8 +190,7 @@ ret=$?
if [ $ret -ne 0 ] && [ $ret -ne 124 ]; then
pass "Zero threshold rejected with error"
else
- log "✗ FAIL: stalld did not reject invalid threshold value 0"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "stalld did not reject invalid threshold value 0"
fi
# Test with negative threshold
@@ -208,8 +204,7 @@ ret=$?
if [ $ret -ne 0 ] && [ $ret -ne 124 ]; then
pass "Negative threshold rejected with error"
else
- log "✗ FAIL: stalld did not reject invalid negative threshold"
- TEST_FAILED=$((TEST_FAILED + 1))
+ fail "stalld did not reject invalid negative threshold"
fi
log ""
diff --git a/tests/functional/test_task_merging.sh b/tests/functional/test_task_merging.sh
index b89230e..e1a4cc1 100755
--- a/tests/functional/test_task_merging.sh
+++ b/tests/functional/test_task_merging.sh
@@ -106,9 +106,8 @@ if [ "${second_duration}" -gt "${first_duration}" ]; then
pass "Starvation duration increased by ${delta}s"
log " Timestamp preserved across monitoring cycles"
else
- log "✗ FAIL: Duration did not increase (${first_duration}s -> ${second_duration}s)"
+ fail "Duration did not increase (${first_duration}s -> ${second_duration}s)"
log " Timestamp may have been reset (task merging failed)"
- TEST_FAILED=$((TEST_FAILED + 1))
fi
# Wait for third detection to confirm continued accumulation
diff --git a/tests/helpers/test_helpers.sh b/tests/helpers/test_helpers.sh
index 144114c..20f8a3c 100755
--- a/tests/helpers/test_helpers.sh
+++ b/tests/helpers/test_helpers.sh
@@ -114,6 +114,15 @@ pass() {
TEST_PASSED=$((TEST_PASSED + 1))
}
+# Record a test failure with a description message.
+#
+# Usage: fail "description"
+fail() {
+ local message=${1:-""}
+ log "✗ FAIL: ${message}"
+ TEST_FAILED=$((TEST_FAILED + 1))
+}
+
# Assert functions
assert_equals() {
local expected=$1
@@ -1130,7 +1139,7 @@ start_starvation_gen() {
# Export functions for use in tests
export -f start_test end_test
-export -f pass assert_equals assert_contains assert_not_contains
+export -f pass fail assert_equals assert_contains assert_not_contains
export -f assert_file_exists assert_file_not_exists
export -f assert_process_running assert_process_not_running
export -f start_stalld stop_stalld kill_existing_stalld cleanup
--
2.53.0
next prev parent reply other threads:[~2026-03-30 19:46 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-30 19:43 [PATCH stalld 00/36] tests: Replace timing-dependent synchronization with event-driven helpers Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 01/36] tests: Add pre-test and post-test cleanup of stalld processes Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 02/36] tests/helpers: Fix stalld daemon detection in start_stalld() Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 03/36] tests/helpers: Remove duplicate log() function Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 04/36] tests: Add per-test runtime measurement to run_tests.sh Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 05/36] tests/functional: Fix and refactor test_backend_selection.sh Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 06/36] tests/functional: Fix test_logging_destinations.sh path and backend Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 07/36] tests/helpers: Replace sleep with poll in start_stalld_with_log() Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 08/36] tests/helpers: Fix stop_stalld() timeout and shutdown logic Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 09/36] tests/helpers: Fix relative path in backend detection functions Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 10/36] tests/functional: Remove redundant post-stop_stalld sleeps Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 11/36] tests/functional: Fix false positive log matching in test_logging_destinations Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 12/36] tests/helpers: Rewrite wait_for_log_message() with process substitution Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 13/36] tests/helpers: Add wait_for_stalld_ready() and use in start_stalld_with_log() Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 14/36] tests/helpers: Fix fractional sleep timeout bugs Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 15/36] tests/helpers: Flush stdout after starvation_gen startup messages Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 16/36] tests/helpers: Add start_starvation_gen() helper function Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 17/36] tests/helpers: Add wait_for_starvation_detected() and wait_for_boost_detected() Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 18/36] tests/functional: Use start_starvation_gen() helper Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 19/36] tests/functional: Replace detection sleeps with event-driven helpers Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 20/36] tests/functional: Remove duplicated -a flag in test_fifo_priority_starvation Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 21/36] tests/functional: Add missing -a flag in test_starvation_detection Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 22/36] tests/functional: Use start_stalld_with_log() in test_log_only Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 23/36] tests/functional: Use start_stalld_with_log() in test_logging_destinations Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 24/36] tests/functional: Use start_stalld_with_log() in test_cpu_selection Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 25/36] tests/functional: Use wait_for_stalld_ready() in test_backend_selection Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 26/36] tests/functional: Use timeout for error path in test_force_fifo Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 27/36] tests/functional: Use timeout for invalid argument tests Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 28/36] tests: Add pass() helper and replace assert_equals hack Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 29/36] tests/functional: Use pass() for all test pass reporting Wander Lairson Costa
2026-03-30 19:43 ` Wander Lairson Costa [this message]
2026-03-30 19:43 ` [PATCH stalld 31/36] tests/helpers: Use pass()/fail() in assert functions Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 32/36] tests/functional: Fix multi-CPU detection in test_starvation_detection Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 33/36] tests/functional: Accept FIFO fallback in test_fifo_boosting Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 34/36] tests/functional: Fix readiness detection and FIFO fallback in test_force_fifo Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 35/36] tests/functional: Fix invalid pidfile test in test_pidfile Wander Lairson Costa
2026-03-30 19:43 ` [PATCH stalld 36/36] stalld: die on invalid CPU affinity Wander Lairson Costa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260330194410.103953-31-wander@redhat.com \
--to=wander@redhat.com \
--cc=davidlt@rivosinc.com \
--cc=jkacur@redhat.com \
--cc=juri.lelli@redhat.com \
--cc=linux-rt-users@vger.kernel.org \
--cc=luffyluo@tencent.com \
--cc=williams@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox