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 29/36] tests/functional: Use pass() for all test pass reporting
Date: Mon, 30 Mar 2026 16:43:52 -0300 [thread overview]
Message-ID: <20260330194410.103953-30-wander@redhat.com> (raw)
In-Reply-To: <20260330194410.103953-1-wander@redhat.com>
Replace inline log statements that manually format pass messages
with calls to the pass() helper introduced in the previous commit.
This ensures all pass results are consistently logged with the
journal and counted by the test framework.
Signed-off-by: Wander Lairson Costa <wander@redhat.com>
---
tests/functional/test_affinity.sh | 14 ++++----
tests/functional/test_boost_duration.sh | 8 ++---
tests/functional/test_boost_period.sh | 8 ++---
tests/functional/test_boost_restoration.sh | 24 ++++++-------
tests/functional/test_boost_runtime.sh | 8 ++---
tests/functional/test_deadline_boosting.sh | 24 ++++++-------
tests/functional/test_fifo_boosting.sh | 14 ++++----
.../test_fifo_priority_starvation.sh | 18 +++++-----
tests/functional/test_force_fifo.sh | 8 ++---
tests/functional/test_idle_detection.sh | 12 +++----
tests/functional/test_pidfile.sh | 18 +++++-----
tests/functional/test_runqueue_parsing.sh | 36 +++++++++----------
tests/functional/test_starvation_detection.sh | 22 ++++++------
tests/functional/test_starvation_threshold.sh | 6 ++--
tests/functional/test_task_merging.sh | 16 ++++-----
15 files changed, 118 insertions(+), 118 deletions(-)
diff --git a/tests/functional/test_affinity.sh b/tests/functional/test_affinity.sh
index 738822e..b74886d 100755
--- a/tests/functional/test_affinity.sh
+++ b/tests/functional/test_affinity.sh
@@ -83,7 +83,7 @@ log "ℹ INFO: Default affinity: $default_affinity"
# Typically should be all CPUs
if [ -n "$default_affinity" ]; then
- log "✓ PASS: stalld has default affinity: $default_affinity"
+ pass "stalld has default affinity: $default_affinity"
else
log "⚠ WARNING: Could not determine default affinity"
fi
@@ -107,7 +107,7 @@ sleep 2
affinity=$(check_affinity "${STALLD_PID}")
if [ "$affinity" = "0" ]; then
- log "✓ PASS: stalld restricted to CPU 0"
+ pass "stalld restricted to CPU 0"
else
log "✗ FAIL: stalld affinity ($affinity) doesn't match requested (0)"
TEST_FAILED=$((TEST_FAILED + 1))
@@ -134,7 +134,7 @@ if [ "$num_cpus" -ge 4 ]; then
# Accept either "0,2" or "0-2" or "2,0" (different systems may report differently)
if echo "$affinity" | grep -qE '^0,2$|^0-2$|^2,0$'; then
- log "✓ PASS: stalld restricted to CPUs 0,2 (affinity: $affinity)"
+ pass "stalld restricted to CPUs 0,2 (affinity: $affinity)"
else
log "⚠ WARNING: stalld affinity ($affinity) may not match requested (0,2) - format may vary"
# Not failing as different systems may report differently
@@ -164,7 +164,7 @@ if [ "$num_cpus" -ge 4 ]; then
# Accept various formats: "0-2", "0,1,2", etc.
if echo "$affinity" | grep -qE '0.*1.*2|0-2'; then
- log "✓ PASS: stalld restricted to CPU range 0-2 (affinity: $affinity)"
+ pass "stalld restricted to CPU range 0-2 (affinity: $affinity)"
else
log "⚠ WARNING: stalld affinity ($affinity) may not match requested (0-2) - format may vary"
fi
@@ -200,7 +200,7 @@ if [ "$num_cpus" -ge 2 ]; then
fi
if [ "$affinity" = "$test_cpu" ]; then
- log "✓ PASS: stalld process affinity set to CPU $test_cpu"
+ pass "stalld process affinity set to CPU $test_cpu"
else
log "⚠ WARNING: stalld affinity ($affinity) doesn't exactly match CPU $test_cpu"
fi
@@ -229,7 +229,7 @@ if [ "$num_cpus" -ge 2 ]; then
affinity=$(check_affinity "${STALLD_PID}")
if [ "$affinity" = "0" ]; then
- log "✓ PASS: stalld affinity to CPU 0 while monitoring CPU 1"
+ pass "stalld affinity to CPU 0 while monitoring CPU 1"
else
log "⚠ WARNING: stalld affinity ($affinity) doesn't match requested (0)"
fi
@@ -298,7 +298,7 @@ affinity_end=$(check_affinity "${STALLD_PID}")
log "ℹ INFO: Affinity after 3s: $affinity_end"
if [ "$affinity_start" = "$affinity_end" ]; then
- log "✓ PASS: CPU affinity persisted over time"
+ pass "CPU affinity persisted over time"
else
log "⚠ WARNING: CPU affinity changed (start: $affinity_start, end: $affinity_end)"
fi
diff --git a/tests/functional/test_boost_duration.sh b/tests/functional/test_boost_duration.sh
index 104f298..61218e9 100755
--- a/tests/functional/test_boost_duration.sh
+++ b/tests/functional/test_boost_duration.sh
@@ -67,7 +67,7 @@ start_starvation_gen -c "${TEST_CPU}" -p 80 -n 2 -d ${starvation_duration}
# Wait for starvation detection
if wait_for_starvation_detected "${STALLD_LOG}"; then
- log "✓ PASS: Starvation detection occurred with default duration"
+ pass "Starvation detection occurred with default duration"
else
log "✗ FAIL: No starvation detection"
TEST_FAILED=$((TEST_FAILED + 1))
@@ -99,7 +99,7 @@ start_starvation_gen -c "${TEST_CPU}" -p 80 -n 2 -d ${starvation_duration}
# Wait for starvation detection
if wait_for_starvation_detected "${STALLD_LOG2}"; then
- log "✓ PASS: Starvation detection with ${short_duration}s duration"
+ pass "Starvation detection with ${short_duration}s duration"
else
log "✗ FAIL: No starvation detection with short duration"
TEST_FAILED=$((TEST_FAILED + 1))
@@ -133,7 +133,7 @@ start_starvation_gen -c "${TEST_CPU}" -p 80 -n 2 -d ${long_starvation}
# Wait for starvation detection
if wait_for_starvation_detected "${STALLD_LOG3}"; then
- log "✓ PASS: Starvation detection with ${long_duration}s duration"
+ pass "Starvation detection with ${long_duration}s duration"
else
log "✗ FAIL: No starvation detection with long duration"
TEST_FAILED=$((TEST_FAILED + 1))
@@ -166,7 +166,7 @@ start_starvation_gen -c "${TEST_CPU}" -p 80 -n 1 -d 15
# Wait for starvation detection
if wait_for_starvation_detected "${STALLD_LOG4}"; then
- log "✓ PASS: Starvation detection with ${duration}s boost duration"
+ pass "Starvation detection with ${duration}s boost duration"
else
log "✗ FAIL: No starvation detection"
TEST_FAILED=$((TEST_FAILED + 1))
diff --git a/tests/functional/test_boost_period.sh b/tests/functional/test_boost_period.sh
index b516350..671f7cb 100755
--- a/tests/functional/test_boost_period.sh
+++ b/tests/functional/test_boost_period.sh
@@ -64,7 +64,7 @@ start_starvation_gen -c "${TEST_CPU}" -p 80 -n 2 -d ${starvation_duration}
# Wait for starvation detection and boosting
if wait_for_boost_detected "${STALLD_LOG}"; then
- log "✓ PASS: Boosting occurred with default period"
+ pass "Boosting occurred with default period"
# Try to find period value in logs
if grep -qi "period" "${STALLD_LOG}"; then
@@ -101,7 +101,7 @@ start_starvation_gen -c "${TEST_CPU}" -p 80 -n 2 -d ${starvation_duration}
# Wait for starvation detection and boosting
if wait_for_boost_detected "${STALLD_LOG}"; then
- log "✓ PASS: Boosting occurred with custom period ${custom_period} ns"
+ pass "Boosting occurred with custom period ${custom_period} ns"
else
log "✗ FAIL: No boosting with custom period"
TEST_FAILED=$((TEST_FAILED + 1))
@@ -131,7 +131,7 @@ start_starvation_gen -c "${TEST_CPU}" -p 80 -n 2 -d ${starvation_duration}
# Wait for starvation detection and boosting
if wait_for_boost_detected "${STALLD_LOG}"; then
- log "✓ PASS: Boosting occurred with short period ${short_period} ns"
+ pass "Boosting occurred with short period ${short_period} ns"
else
log "✗ FAIL: No boosting with short period"
TEST_FAILED=$((TEST_FAILED + 1))
@@ -161,7 +161,7 @@ start_starvation_gen -c "${TEST_CPU}" -p 80 -n 2 -d ${starvation_duration}
# Wait for starvation detection and boosting
if wait_for_boost_detected "${STALLD_LOG}"; then
- log "✓ PASS: Boosting occurred with long period ${long_period} ns"
+ pass "Boosting occurred with long period ${long_period} ns"
else
log "✗ FAIL: No boosting with long period"
TEST_FAILED=$((TEST_FAILED + 1))
diff --git a/tests/functional/test_boost_restoration.sh b/tests/functional/test_boost_restoration.sh
index fc5a25a..024d869 100755
--- a/tests/functional/test_boost_restoration.sh
+++ b/tests/functional/test_boost_restoration.sh
@@ -85,7 +85,7 @@ if [ -n "${tracked_pid}" ]; then
log "Initial policy: ${initial_policy} (expected: 1=SCHED_FIFO), prio: ${initial_prio}"
if [ "$initial_policy" = "1" ]; then
- log "✓ PASS: Initial policy is SCHED_FIFO"
+ pass "Initial policy is SCHED_FIFO"
else
log "⚠ WARNING: Initial policy is ${initial_policy}, not SCHED_FIFO (1)"
fi
@@ -100,7 +100,7 @@ if [ -n "${tracked_pid}" ]; then
log "Policy during boost: ${boosted_policy}"
if [ "$boosted_policy" = "6" ]; then
- log "✓ PASS: Task boosted to SCHED_DEADLINE (6)"
+ pass "Task boosted to SCHED_DEADLINE (6)"
else
log "ℹ INFO: Policy is ${boosted_policy} (may be between boost cycles)"
fi
@@ -117,7 +117,7 @@ if [ -n "${tracked_pid}" ]; then
log "Policy after boost: ${post_boost_policy}, prio: ${post_boost_prio}"
if [ "$post_boost_policy" = "1" ]; then
- log "✓ PASS: Policy restored to SCHED_FIFO (1) during boost cycle"
+ pass "Policy restored to SCHED_FIFO (1) during boost cycle"
elif [ "$post_boost_policy" = "6" ]; then
log "ℹ INFO: Still in boost (DEADLINE), will check final restoration"
else
@@ -139,9 +139,9 @@ if [ -n "${tracked_pid}" ] && [ -f "/proc/${tracked_pid}/sched" ]; then
log "Final policy: ${final_policy}, prio: ${final_prio}"
if [ "$final_policy" = "1" ]; then
- log "✓ PASS: Policy restored to SCHED_FIFO (1)"
+ pass "Policy restored to SCHED_FIFO (1)"
if [ "$final_prio" = "$initial_prio" ]; then
- log "✓ PASS: Priority restored to ${initial_prio}"
+ pass "Priority restored to ${initial_prio}"
else
log "⚠ INFO: Priority is ${final_prio} (initial was ${initial_prio})"
fi
@@ -219,7 +219,7 @@ if chrt -f -p 10 ${FIFO_TASK_PID} 2>/dev/null; then
log "Initial: policy=${initial_policy} (1=FIFO), prio=${initial_prio}"
if [ "$initial_policy" = "1" ]; then
- log "✓ PASS: Initial policy is SCHED_FIFO (1)"
+ pass "Initial policy is SCHED_FIFO (1)"
else
log "⚠ WARNING: Could not set FIFO policy (got ${initial_policy})"
fi
@@ -234,7 +234,7 @@ if chrt -f -p 10 ${FIFO_TASK_PID} 2>/dev/null; then
log "Policy during detection window: ${boosted_policy}"
if [ "$boosted_policy" = "6" ]; then
- log "✓ PASS: Task boosted to SCHED_DEADLINE (6)"
+ pass "Task boosted to SCHED_DEADLINE (6)"
elif [ "$boosted_policy" = "1" ]; then
log "ℹ INFO: Still SCHED_FIFO (may not have starved yet)"
fi
@@ -251,7 +251,7 @@ if chrt -f -p 10 ${FIFO_TASK_PID} 2>/dev/null; then
log "Final: policy=${final_policy}, prio=${final_prio}"
if [ "$final_policy" = "1" ]; then
- log "✓ PASS: Policy restored to SCHED_FIFO (1)"
+ pass "Policy restored to SCHED_FIFO (1)"
log "ℹ INFO: Priority after restoration: ${final_prio}"
else
log "⚠ INFO: Final policy is ${final_policy}"
@@ -340,7 +340,7 @@ if wait_for_boost_detected "${STALLD_LOG}"; then
log "Time difference: ${time_diff}s"
if [ ${time_diff} -le 2 ]; then
- log "✓ PASS: Restoration timing within acceptable margin (±2s)"
+ pass "Restoration timing within acceptable margin (±2s)"
else
log "ℹ INFO: Restoration timing difference: ${time_diff}s"
log " (may be acceptable depending on system load)"
@@ -380,7 +380,7 @@ start_starvation_gen -c ${TEST_CPU} -p 80 -n 1 -d ${short_duration}
# Wait for starvation detection and boosting
if wait_for_boost_detected "${STALLD_LOG}"; then
- log "✓ PASS: Boost occurred"
+ pass "Boost occurred"
# At this point (12s), starvation_gen has exited (at 8s) during the boost
# stalld should still be running despite the task exiting during boost
@@ -389,7 +389,7 @@ if wait_for_boost_detected "${STALLD_LOG}"; then
# Verify stalld is still running and didn't crash after task exit
if assert_process_running "${STALLD_PID}" "stalld still running after task exit"; then
- log "✓ PASS: stalld handled task exit during boost gracefully"
+ 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))
@@ -401,7 +401,7 @@ if wait_for_boost_detected "${STALLD_LOG}"; then
grep -iE "error.*restor|fail.*restor" "${STALLD_LOG}"
log " These errors are normal when tasks exit during boost"
else
- log "✓ PASS: No restoration errors (clean handling)"
+ pass "No restoration errors (clean handling)"
fi
else
log "⚠ WARNING: No boost detected in this test run"
diff --git a/tests/functional/test_boost_runtime.sh b/tests/functional/test_boost_runtime.sh
index d516604..b624fc9 100755
--- a/tests/functional/test_boost_runtime.sh
+++ b/tests/functional/test_boost_runtime.sh
@@ -67,7 +67,7 @@ start_starvation_gen -c "${TEST_CPU}" -p 80 -n 2 -d ${starvation_duration}
# Wait for detection and boosting
if wait_for_starvation_detected "${STALLD_LOG}"; then
- log "✓ PASS: Starvation detection with default runtime"
+ pass "Starvation detection with default runtime"
else
log "✗ FAIL: No starvation detection"
TEST_FAILED=$((TEST_FAILED + 1))
@@ -99,7 +99,7 @@ start_starvation_gen -c "${TEST_CPU}" -p 80 -n 2 -d ${starvation_duration}
# Wait for detection and boosting
if wait_for_starvation_detected "${STALLD_LOG2}"; then
- log "✓ PASS: Starvation detection with custom runtime ${custom_runtime}ns"
+ pass "Starvation detection with custom runtime ${custom_runtime}ns"
else
log "✗ FAIL: No starvation detection with custom runtime"
TEST_FAILED=$((TEST_FAILED + 1))
@@ -131,7 +131,7 @@ start_starvation_gen -c "${TEST_CPU}" -p 80 -n 2 -d ${starvation_duration}
# Wait for detection and boosting
if wait_for_starvation_detected "${STALLD_LOG3}"; then
- log "✓ PASS: Starvation detection with large runtime ${large_runtime}ns"
+ pass "Starvation detection with large runtime ${large_runtime}ns"
else
log "✗ FAIL: No starvation detection with large runtime"
TEST_FAILED=$((TEST_FAILED + 1))
@@ -165,7 +165,7 @@ start_starvation_gen -c "${TEST_CPU}" -p 80 -n 2 -d ${starvation_duration}
# Wait for detection and boosting
if wait_for_starvation_detected "${STALLD_LOG4}"; then
- log "✓ PASS: Starvation detection with runtime < period"
+ pass "Starvation detection with runtime < period"
else
log "✗ FAIL: No starvation detection when runtime < period"
TEST_FAILED=$((TEST_FAILED + 1))
diff --git a/tests/functional/test_deadline_boosting.sh b/tests/functional/test_deadline_boosting.sh
index a5727da..86ca0f1 100755
--- a/tests/functional/test_deadline_boosting.sh
+++ b/tests/functional/test_deadline_boosting.sh
@@ -68,11 +68,11 @@ start_starvation_gen -c ${TEST_CPU} -p 80 -n 2 -d ${starvation_duration}
# Wait for boosting
log "Waiting for boost detection..."
if wait_for_boost_detected "${STALLD_LOG}"; then
- log "✓ PASS: Boosting occurred"
+ pass "Boosting occurred"
# Verify SCHED_DEADLINE was used
if grep -q "SCHED_DEADLINE" "${STALLD_LOG}"; then
- log "✓ PASS: SCHED_DEADLINE boosting used (default)"
+ pass "SCHED_DEADLINE boosting used (default)"
else
log "✗ FAIL: SCHED_DEADLINE not mentioned in boost message"
TEST_FAILED=$((TEST_FAILED + 1))
@@ -81,7 +81,7 @@ if wait_for_boost_detected "${STALLD_LOG}"; then
# Verify boost happened after threshold
# (starvation logged, then boosting)
if grep -q "starved" "${STALLD_LOG}"; then
- log "✓ PASS: Starvation detected before boosting"
+ pass "Starvation detected before boosting"
else
log "⚠ WARNING: No starvation message before boost"
fi
@@ -140,7 +140,7 @@ for child_pid in ${STARVE_CHILDREN}; do
# Policy 6 = SCHED_DEADLINE
if [ "$policy" = "6" ]; then
- log "✓ PASS: Task PID ${child_pid} boosted to SCHED_DEADLINE (policy 6)"
+ pass "Task PID ${child_pid} boosted to SCHED_DEADLINE (policy 6)"
boosted_task_found=1
break
fi
@@ -151,7 +151,7 @@ if [ ${boosted_task_found} -eq 0 ]; then
log "⚠ INFO: Could not verify DEADLINE policy in /proc (timing issue or boost already expired)"
# Still check if boost happened in logs
if grep -q "boosted.*SCHED_DEADLINE" "${STALLD_LOG}"; then
- log "✓ PASS: SCHED_DEADLINE boost confirmed in logs"
+ pass "SCHED_DEADLINE boost confirmed in logs"
else
log "✗ FAIL: No SCHED_DEADLINE boost detected"
TEST_FAILED=$((TEST_FAILED + 1))
@@ -213,7 +213,7 @@ if [ -n "${tracked_pid}" ]; then
# Verify task made progress (context switches increased)
ctxt_delta=$((ctxt_after - ctxt_before))
if [ ${ctxt_delta} -gt 5 ]; then
- log "✓ PASS: Task made progress during boost (${ctxt_delta} context switches)"
+ pass "Task made progress during boost (${ctxt_delta} context switches)"
else
log "⚠ INFO: Limited progress detected (${ctxt_delta} context switches)"
log " This may be acceptable depending on boost parameters"
@@ -224,7 +224,7 @@ fi
# Verify boost happened
if grep -q "boosted" "${STALLD_LOG}"; then
- log "✓ PASS: Boost occurred as expected"
+ pass "Boost occurred as expected"
else
log "✗ FAIL: No boost detected"
TEST_FAILED=$((TEST_FAILED + 1))
@@ -284,7 +284,7 @@ if [ -n "${tracked_pid}" ]; then
log "Policy during boost window: ${boosted_policy} (6=SCHED_DEADLINE)"
if [ "$boosted_policy" = "6" ]; then
- log "✓ PASS: Policy changed to SCHED_DEADLINE during boost"
+ pass "Policy changed to SCHED_DEADLINE during boost"
else
log "⚠ INFO: Policy is ${boosted_policy} (may have already restored or not yet boosted)"
fi
@@ -299,7 +299,7 @@ if [ -n "${tracked_pid}" ]; then
log "Policy after boost: ${restored_policy}"
if [ "$restored_policy" = "0" ]; then
- log "✓ PASS: Policy restored to SCHED_OTHER (0)"
+ pass "Policy restored to SCHED_OTHER (0)"
else
log "⚠ INFO: Policy is ${restored_policy} after boost"
log " (task may have exited or restoration timing differs)"
@@ -360,18 +360,18 @@ else
log "Number of boost events: ${boost_count}"
if [ ${boost_count} -ge 2 ]; then
- log "✓ PASS: Multiple boost events detected (${boost_count})"
+ pass "Multiple boost events detected (${boost_count})"
# Verify both CPUs mentioned
if grep -q "CPU ${CPU0}" "${STALLD_LOG}" && grep -q "CPU ${CPU1}" "${STALLD_LOG}"; then
- log "✓ PASS: Boosts occurred on both CPUs"
+ pass "Boosts occurred on both CPUs"
else
log "⚠ INFO: Could not verify boosts on both specific CPUs"
fi
# Verify independent boost cycles
if [ ${boost_count} -gt 2 ]; then
- log "✓ PASS: Multiple boost cycles (${boost_count} total), showing independent operation"
+ pass "Multiple boost cycles (${boost_count} total), showing independent operation"
fi
else
log "⚠ INFO: Only ${boost_count} boost event(s) detected"
diff --git a/tests/functional/test_fifo_boosting.sh b/tests/functional/test_fifo_boosting.sh
index 1da1c09..df26483 100755
--- a/tests/functional/test_fifo_boosting.sh
+++ b/tests/functional/test_fifo_boosting.sh
@@ -66,11 +66,11 @@ start_stalld_with_log "${STALLD_LOG}" -f -v -g 1 -N -F -A -t $threshold -c ${TES
# Wait for boosting
log "Waiting for boost detection..."
if wait_for_boost_detected "${STALLD_LOG}"; then
- log "✓ PASS: Boosting occurred with -F flag"
+ pass "Boosting occurred with -F flag"
# Verify SCHED_FIFO was used
if grep -q "SCHED_FIFO" "${STALLD_LOG}"; then
- log "✓ PASS: SCHED_FIFO boosting used (as requested by -F)"
+ pass "SCHED_FIFO boosting used (as requested by -F)"
else
log "✗ FAIL: SCHED_FIFO not mentioned in boost message"
TEST_FAILED=$((TEST_FAILED + 1))
@@ -120,7 +120,7 @@ for child_pid in ${STARVE_CHILDREN}; do
# Policy 1 = SCHED_FIFO
if [ "$policy" = "1" ]; then
priority=$(get_sched_priority ${child_pid})
- log "✓ PASS: Task PID ${child_pid} boosted to SCHED_FIFO (policy 1)"
+ pass "Task PID ${child_pid} boosted to SCHED_FIFO (policy 1)"
log " Priority: ${priority}"
fifo_task_found=1
break
@@ -132,7 +132,7 @@ if [ ${fifo_task_found} -eq 0 ]; then
log "⚠ INFO: Could not verify FIFO policy in /proc (timing issue or boost already expired)"
# FIFO emulation cycles between FIFO and OTHER, so we may catch it in OTHER state
if grep -q "boosted.*SCHED_FIFO" "${STALLD_LOG}"; then
- log "✓ PASS: SCHED_FIFO boost confirmed in logs"
+ pass "SCHED_FIFO boost confirmed in logs"
else
log "✗ FAIL: No SCHED_FIFO boost detected"
TEST_FAILED=$((TEST_FAILED + 1))
@@ -186,7 +186,7 @@ boost_count=$(grep -c "boosted.*SCHED_FIFO" "${STALLD_LOG}")
log "Number of FIFO boost events: ${boost_count}"
if [ ${boost_count} -gt 1 ]; then
- log "✓ PASS: Multiple FIFO boost events (${boost_count}) - emulation cycling detected"
+ pass "Multiple FIFO boost events (${boost_count}) - emulation cycling detected"
log " (FIFO emulation boosts, sleeps, restores, repeats)"
else
log "⚠ INFO: Only ${boost_count} FIFO boost event(s)"
@@ -303,7 +303,7 @@ log " DEADLINE: ${deadline_progress} context switches"
log " FIFO: ${fifo_progress} context switches"
if [ ${deadline_progress} -gt 0 ] && [ ${fifo_progress} -gt 0 ]; then
- log "✓ PASS: Both DEADLINE and FIFO allowed tasks to make progress"
+ pass "Both DEADLINE and FIFO allowed tasks to make progress"
# Both should be effective, but exact numbers may vary
if [ ${deadline_progress} -gt ${fifo_progress} ]; then
@@ -343,7 +343,7 @@ fi
# Check for error message in log
if grep -qiE "single.*thread.*fifo|fifo.*single.*thread|can.*only.*deadline" "${STALLD_LOG_FAIL}"; then
- log "✓ PASS: Error message about FIFO+single-threaded incompatibility found"
+ pass "Error message about FIFO+single-threaded incompatibility found"
else
log "ℹ INFO: Checking exit status or error messages..."
if [ -s "${STALLD_LOG_FAIL}" ]; then
diff --git a/tests/functional/test_fifo_priority_starvation.sh b/tests/functional/test_fifo_priority_starvation.sh
index 886357e..3776e6b 100755
--- a/tests/functional/test_fifo_priority_starvation.sh
+++ b/tests/functional/test_fifo_priority_starvation.sh
@@ -72,11 +72,11 @@ start_stalld_with_log "${STALLD_LOG}" -f -v -l -t $threshold -c ${TEST_CPU} -a $
# Wait for starvation detection
log "Waiting for starvation detection..."
if wait_for_starvation_detected "${STALLD_LOG}"; then
- log "✓ PASS: FIFO-on-FIFO starvation detected"
+ pass "FIFO-on-FIFO starvation detected"
# Verify correct CPU is logged
if grep "starved on CPU ${TEST_CPU}" "${STALLD_LOG}"; then
- log "✓ PASS: Correct CPU ID logged (CPU ${TEST_CPU})"
+ pass "Correct CPU ID logged (CPU ${TEST_CPU})"
else
log "✗ FAIL: Wrong CPU ID in log"
TEST_FAILED=$((TEST_FAILED + 1))
@@ -84,7 +84,7 @@ if wait_for_starvation_detected "${STALLD_LOG}"; then
# Verify duration is logged
if grep -E "starved on CPU ${TEST_CPU} for [0-9]+ seconds" "${STALLD_LOG}"; then
- log "✓ PASS: Starvation duration logged"
+ pass "Starvation duration logged"
else
log "✗ FAIL: Starvation duration not logged"
TEST_FAILED=$((TEST_FAILED + 1))
@@ -152,7 +152,7 @@ ctxt_delta=$((ctxt_after - ctxt_before))
log "Context switch delta: ${ctxt_delta}"
if [ ${ctxt_delta} -gt 0 ]; then
- log "✓ PASS: Blockee task made progress (${ctxt_delta} context switches)"
+ pass "Blockee task made progress (${ctxt_delta} context switches)"
else
log "⚠ WARNING: Could not verify progress (timing issue or blockee not found)"
# Check if boosting occurred at least
@@ -204,7 +204,7 @@ log "Third detection cycle should have occurred"
# Check if we see accumulating starvation time in logs
# Task merging means the timestamp is preserved, so duration increases
if grep -E "starved on CPU ${TEST_CPU} for [0-9]+ seconds" "${STALLD_LOG}" | wc -l | grep -q "[2-9]"; then
- log "✓ PASS: Multiple starvation reports found"
+ pass "Multiple starvation reports found"
# Extract starvation durations from log
durations=$(grep -oE "starved on CPU ${TEST_CPU} for [0-9]+" "${STALLD_LOG}" | grep -oE "[0-9]+$")
@@ -215,7 +215,7 @@ if grep -E "starved on CPU ${TEST_CPU} for [0-9]+ seconds" "${STALLD_LOG}" | wc
last_duration=$(echo "$durations" | tail -1)
if [ ${last_duration} -gt ${first_duration} ]; then
- log "✓ PASS: Starvation duration increased (${first_duration}s -> ${last_duration}s)"
+ 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)"
@@ -258,7 +258,7 @@ start_stalld_with_log "${STALLD_LOG}" -f -v -l -t $threshold -c ${TEST_CPU} -a $
# Wait for starvation detection
log "Waiting for starvation detection..."
if wait_for_starvation_detected "${STALLD_LOG}"; then
- log "✓ PASS: Starvation detected even with close priority gap (6 vs 5)"
+ pass "Starvation detected even with close priority gap (6 vs 5)"
else
log "⚠ WARNING: Starvation not detected with close priority gap"
log " (May be due to queue_track backend limitation)"
@@ -297,12 +297,12 @@ start_stalld_with_log "${STALLD_LOG}" -f -v -N -t $threshold -c ${TEST_CPU} -a $
# Wait for boosting
log "Waiting for boost detection..."
if wait_for_boost_detected "${STALLD_LOG}"; then
- log "✓ PASS: Boosting occurred"
+ pass "Boosting occurred"
# Try to verify the correct task was boosted
# stalld logs should show the blockee task name (starvation_gen thread)
if grep "boosted.*starvation_gen" "${STALLD_LOG}"; then
- log "✓ PASS: starvation_gen task was boosted (likely the blockee)"
+ pass "starvation_gen task was boosted (likely the blockee)"
else
log "ℹ INFO: Could not verify specific task from logs"
fi
diff --git a/tests/functional/test_force_fifo.sh b/tests/functional/test_force_fifo.sh
index f8f7b4c..fec2e00 100755
--- a/tests/functional/test_force_fifo.sh
+++ b/tests/functional/test_force_fifo.sh
@@ -64,7 +64,7 @@ if wait_for_boost_detected "${STALLD_LOG}"; then
# Look for SCHED_DEADLINE indicators
if grep -qi "deadline\|SCHED_DEADLINE" "${STALLD_LOG}"; then
- log "✓ PASS: SCHED_DEADLINE used by default"
+ pass "SCHED_DEADLINE used by default"
elif grep -qi "fifo\|SCHED_FIFO" "${STALLD_LOG}"; then
log "⚠ WARNING: SCHED_FIFO used instead of SCHED_DEADLINE"
else
@@ -105,7 +105,7 @@ if wait_for_boost_detected "${STALLD_LOG2}"; then
# Look for SCHED_FIFO indicators
if grep -qi "fifo\|SCHED_FIFO" "${STALLD_LOG2}"; then
- log "✓ PASS: SCHED_FIFO used with -F flag"
+ 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))
@@ -148,7 +148,7 @@ if grep -qi "priority\|prio" "${STALLD_LOG3}"; then
fi
if grep -q "boost" "${STALLD_LOG3}"; then
- log "✓ PASS: FIFO boosting with priority setting completed"
+ pass "FIFO boosting with priority setting completed"
else
log "⚠ WARNING: No boosting detected"
fi
@@ -187,7 +187,7 @@ if wait_for_boost_detected "${STALLD_LOG4}"; then
# Check for restoration messages (part of FIFO emulation)
if grep -qi "restor\|unboosted\|normal\|original" "${STALLD_LOG4}"; then
- log "✓ PASS: FIFO emulation with restoration detected"
+ pass "FIFO emulation with restoration detected"
else
log "ℹ INFO: FIFO boosting completed (restoration may be implicit)"
fi
diff --git a/tests/functional/test_idle_detection.sh b/tests/functional/test_idle_detection.sh
index ef1c572..af4d7a4 100755
--- a/tests/functional/test_idle_detection.sh
+++ b/tests/functional/test_idle_detection.sh
@@ -100,7 +100,7 @@ fi
# Verify CPU is actually idle
if is_cpu_idle ${TEST_CPU}; then
- log "✓ PASS: CPU ${TEST_CPU} is currently idle (idle time increasing)"
+ pass "CPU ${TEST_CPU} is currently idle (idle time increasing)"
else
log "⚠ INFO: CPU ${TEST_CPU} appears busy (background activity)"
fi
@@ -130,10 +130,10 @@ if [ -n "${idle_time1}" ] && [ -n "${idle_time2}" ]; then
log "Idle time delta: ${delta}"
if [ ${delta} -gt 0 ]; then
- log "✓ PASS: Idle time increased (CPU is idle)"
+ pass "Idle time increased (CPU is idle)"
log " stalld would skip this CPU"
else
- log "✓ PASS: Idle time unchanged (CPU is busy)"
+ pass "Idle time unchanged (CPU is busy)"
log " stalld would parse this CPU"
fi
else
@@ -167,7 +167,7 @@ log "Waiting for stalld to detect busy CPU and starvation..."
# Verify stalld detected starvation (meaning it resumed monitoring)
if wait_for_starvation_detected "${STALLD_LOG}"; then
- log "✓ PASS: stalld detected starvation on now-busy CPU"
+ pass "stalld detected starvation on now-busy CPU"
log " Monitoring resumed when CPU became busy"
else
log "⚠ INFO: No starvation detected"
@@ -241,9 +241,9 @@ else
log "CPU ${CPU1} detections: ${cpu1_detections} (should be >0, it's busy)"
if [ ${cpu0_detections} -eq 0 ] && [ ${cpu1_detections} -gt 0 ]; then
- log "✓ PASS: Idle CPU skipped, busy CPU monitored"
+ pass "Idle CPU skipped, busy CPU monitored"
elif [ ${cpu1_detections} -gt 0 ]; then
- log "✓ PASS: Busy CPU ${CPU1} monitored"
+ pass "Busy CPU ${CPU1} monitored"
if [ ${cpu0_detections} -gt 0 ]; then
log "⚠ INFO: CPU ${CPU0} also had detections (may have background activity)"
fi
diff --git a/tests/functional/test_pidfile.sh b/tests/functional/test_pidfile.sh
index fbdc9fe..fd4fedc 100755
--- a/tests/functional/test_pidfile.sh
+++ b/tests/functional/test_pidfile.sh
@@ -54,7 +54,7 @@ for pidfile in /var/run/stalld.pid /run/stalld.pid; do
# Verify PID matches
pid_from_file=$(cat "$pidfile")
if [ "$pid_from_file" = "${STALLD_PID}" ]; then
- log "✓ PASS: Default pidfile contains correct PID"
+ 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))
@@ -92,12 +92,12 @@ sleep 2
# Verify pidfile was created
if [ -f "${custom_pidfile}" ]; then
- log "✓ PASS: Custom pidfile created at ${custom_pidfile}"
+ pass "Custom pidfile created at ${custom_pidfile}"
# Verify content
pid_from_file=$(cat "${custom_pidfile}")
if [ "$pid_from_file" = "${STALLD_PID}" ]; then
- log "✓ PASS: Custom pidfile contains correct PID ($pid_from_file)"
+ 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))
@@ -113,7 +113,7 @@ log "Test 3: Verify pidfile removed on clean shutdown"
stop_stalld
if [ ! -f "${custom_pidfile}" ]; then
- log "✓ PASS: Pidfile removed on clean shutdown"
+ pass "Pidfile removed on clean shutdown"
else
log "⚠ WARNING: Pidfile still exists after shutdown (may be expected)"
# Not failing - some implementations keep pidfile
@@ -139,11 +139,11 @@ start_stalld -l -t 5 --pidfile "${tmp_pidfile}"
sleep 2
if [ -f "${tmp_pidfile}" ]; then
- log "✓ PASS: Pidfile created in /tmp directory"
+ pass "Pidfile created in /tmp directory"
pid_from_file=$(cat "${tmp_pidfile}")
if [ "$pid_from_file" = "${STALLD_PID}" ]; then
- log "✓ PASS: /tmp pidfile contains correct PID"
+ pass "/tmp pidfile contains correct PID"
else
log "✗ FAIL: /tmp pidfile has incorrect PID"
TEST_FAILED=$((TEST_FAILED + 1))
@@ -175,11 +175,11 @@ start_stalld -f -v -l -t 5 --pidfile "${fg_pidfile}"
sleep 2
if [ -f "${fg_pidfile}" ]; then
- log "✓ PASS: Pidfile created in foreground mode"
+ pass "Pidfile created in foreground mode"
pid_from_file=$(cat "${fg_pidfile}")
if [ "$pid_from_file" = "${STALLD_PID}" ]; then
- log "✓ PASS: Foreground mode pidfile contains correct PID"
+ pass "Foreground mode pidfile contains correct PID"
else
log "✗ FAIL: Foreground mode pidfile has incorrect PID"
TEST_FAILED=$((TEST_FAILED + 1))
@@ -250,7 +250,7 @@ sleep 2
if [ -f "${readable_pidfile}" ]; then
# Try to read the pidfile as a regular user would
if cat "${readable_pidfile}" > /dev/null 2>&1; then
- log "✓ PASS: Pidfile is readable"
+ pass "Pidfile is readable"
# Check permissions
perms=$(stat -c "%a" "${readable_pidfile}" 2>/dev/null || stat -f "%Lp" "${readable_pidfile}" 2>/dev/null)
diff --git a/tests/functional/test_runqueue_parsing.sh b/tests/functional/test_runqueue_parsing.sh
index ccb1982..fc69fa0 100755
--- a/tests/functional/test_runqueue_parsing.sh
+++ b/tests/functional/test_runqueue_parsing.sh
@@ -102,11 +102,11 @@ if [ ${BPF_AVAILABLE} -eq 1 ]; then
# Wait for starvation detection
if wait_for_starvation_detected "${STALLD_LOG_BPF}"; then
- log "✓ PASS: eBPF backend detected starving tasks"
+ pass "eBPF backend detected starving tasks"
# Verify task info is present (PID, comm)
if grep -E "starvation_gen.*starved on CPU ${TEST_CPU}" "${STALLD_LOG_BPF}"; then
- log "✓ PASS: Task name (comm) correctly extracted"
+ pass "Task name (comm) correctly extracted"
else
log "✗ FAIL: Task name not found in eBPF backend output"
TEST_FAILED=$((TEST_FAILED + 1))
@@ -114,7 +114,7 @@ if [ ${BPF_AVAILABLE} -eq 1 ]; then
# Verify PID is logged
if grep -E "\[[0-9]+\].*starved on CPU" "${STALLD_LOG_BPF}"; then
- log "✓ PASS: Task PID correctly extracted"
+ pass "Task PID correctly extracted"
else
log "⚠ INFO: PID format may have changed"
fi
@@ -157,11 +157,11 @@ if [ ${SCHED_DEBUG_AVAILABLE} -eq 1 ]; then
# Wait for starvation detection
if wait_for_starvation_detected "${STALLD_LOG_SCHED}"; then
- log "✓ PASS: sched_debug backend detected starving tasks"
+ pass "sched_debug backend detected starving tasks"
# Verify task info is present
if grep -E "starvation_gen.*starved on CPU ${TEST_CPU}" "${STALLD_LOG_SCHED}"; then
- log "✓ PASS: Task name (comm) correctly extracted"
+ pass "Task name (comm) correctly extracted"
else
log "✗ FAIL: Task name not found in sched_debug backend output"
TEST_FAILED=$((TEST_FAILED + 1))
@@ -169,7 +169,7 @@ if [ ${SCHED_DEBUG_AVAILABLE} -eq 1 ]; then
# Verify PID is logged
if grep -E "\[[0-9]+\].*starved on CPU" "${STALLD_LOG_SCHED}"; then
- log "✓ PASS: Task PID correctly extracted"
+ pass "Task PID correctly extracted"
else
log "⚠ INFO: PID format may have changed"
fi
@@ -249,14 +249,14 @@ if [ ${BPF_AVAILABLE} -eq 1 ] && [ ${SCHED_DEBUG_AVAILABLE} -eq 1 ]; then
# Compare results
log ""
if [ ${bpf_detections} -gt 0 ] && [ ${sched_detections} -gt 0 ]; then
- log "✓ PASS: Both backends detected starvation"
+ pass "Both backends detected starvation"
# Check if detection counts are similar (within reasonable variance)
diff=$((bpf_detections - sched_detections))
diff=${diff#-} # absolute value
if [ ${diff} -le 2 ]; then
- log "✓ PASS: Detection counts are consistent (eBPF: ${bpf_detections}, sched_debug: ${sched_detections})"
+ pass "Detection counts are consistent (eBPF: ${bpf_detections}, sched_debug: ${sched_detections})"
else
log "⚠ INFO: Detection counts differ (eBPF: ${bpf_detections}, sched_debug: ${sched_detections})"
log " This may be due to timing differences between backends"
@@ -313,7 +313,7 @@ if [ -n "$test_backend" ]; then
# Check for task name (comm field)
if grep -q "starvation_gen" "${log_file}"; then
- log "✓ PASS: Task name (comm) field extracted"
+ pass "Task name (comm) field extracted"
else
log "✗ FAIL: Task name (comm) field not found"
TEST_FAILED=$((TEST_FAILED + 1))
@@ -321,7 +321,7 @@ if [ -n "$test_backend" ]; then
# Check for PID field (format: name-PID or [PID])
if grep -qE "(starvation_gen-[0-9]+|\[[0-9]+\])" "${log_file}"; then
- log "✓ PASS: PID field extracted"
+ pass "PID field extracted"
else
log "✗ FAIL: PID field not found"
TEST_FAILED=$((TEST_FAILED + 1))
@@ -329,7 +329,7 @@ if [ -n "$test_backend" ]; then
# Check for CPU ID
if grep -q "CPU ${TEST_CPU}" "${log_file}"; then
- log "✓ PASS: CPU ID field extracted"
+ pass "CPU ID field extracted"
else
log "✗ FAIL: CPU ID field not found"
TEST_FAILED=$((TEST_FAILED + 1))
@@ -337,7 +337,7 @@ if [ -n "$test_backend" ]; then
# Check for starvation duration
if grep -qE "for [0-9]+ seconds" "${log_file}"; then
- log "✓ PASS: Starvation duration calculated from context switches/time"
+ pass "Starvation duration calculated from context switches/time"
else
log "✗ FAIL: Starvation duration not found"
TEST_FAILED=$((TEST_FAILED + 1))
@@ -371,21 +371,21 @@ if [ ${SCHED_DEBUG_AVAILABLE} -eq 1 ]; then
# Check for format detection messages
if grep -q "detect_task_format" "${STALLD_LOG_SCHED}"; then
detected_format=$(grep "detect_task_format" "${STALLD_LOG_SCHED}" | grep "detected" | tail -1)
- log "✓ PASS: Kernel format auto-detection occurred"
+ pass "Kernel format auto-detection occurred"
log "ℹ INFO: ${detected_format}"
# Check if field offsets were detected
if grep -q "found 'task' at word" "${STALLD_LOG_SCHED}"; then
- log "✓ PASS: Task field offset detected"
+ pass "Task field offset detected"
fi
if grep -q "found 'PID' at word" "${STALLD_LOG_SCHED}"; then
- log "✓ PASS: PID field offset detected"
+ pass "PID field offset detected"
fi
if grep -q "found 'switches' at word" "${STALLD_LOG_SCHED}"; then
- log "✓ PASS: Switches field offset detected"
+ pass "Switches field offset detected"
fi
if grep -q "found 'prio' at word" "${STALLD_LOG_SCHED}"; then
- log "✓ PASS: Priority field offset detected"
+ pass "Priority field offset detected"
fi
else
log "⚠ INFO: Format detection messages not in log (may not be verbose enough)"
@@ -393,7 +393,7 @@ if [ ${SCHED_DEBUG_AVAILABLE} -eq 1 ]; then
# Verify the backend still works despite format
if grep -q "starved on CPU" "${STALLD_LOG_SCHED}"; then
- log "✓ PASS: Backend successfully parsed tasks despite kernel format"
+ pass "Backend successfully parsed tasks despite kernel format"
else
log "⚠ INFO: No starvation detected in this test run"
fi
diff --git a/tests/functional/test_starvation_detection.sh b/tests/functional/test_starvation_detection.sh
index 3c6fd6e..6d4d7c5 100755
--- a/tests/functional/test_starvation_detection.sh
+++ b/tests/functional/test_starvation_detection.sh
@@ -75,11 +75,11 @@ start_stalld_with_log "${STALLD_LOG}" -f -v -N -l -t $threshold -c ${TEST_CPU} -
# Wait for starvation detection
log "Waiting for starvation detection..."
if wait_for_starvation_detected "${STALLD_LOG}"; then
- log "✓ PASS: Starvation detected"
+ pass "Starvation detected"
# Verify correct CPU is logged
if grep "starved on CPU ${TEST_CPU}" "${STALLD_LOG}"; then
- log "✓ PASS: Correct CPU ID logged (CPU ${TEST_CPU})"
+ pass "Correct CPU ID logged (CPU ${TEST_CPU})"
else
log "✗ FAIL: Wrong CPU ID in log"
TEST_FAILED=$((TEST_FAILED + 1))
@@ -87,7 +87,7 @@ if wait_for_starvation_detected "${STALLD_LOG}"; then
# Verify duration is logged
if grep -E "starved on CPU ${TEST_CPU} for [0-9]+ seconds" "${STALLD_LOG}"; then
- log "✓ PASS: Starvation duration logged"
+ pass "Starvation duration logged"
else
log "✗ FAIL: Starvation duration not logged"
TEST_FAILED=$((TEST_FAILED + 1))
@@ -145,7 +145,7 @@ if [ -n "${STARVE_CHILDREN}" ]; then
ctxt_delta=$((ctxt_after - ctxt_before))
if [ ${ctxt_delta} -lt 5 ]; then
- log "✓ PASS: Context switch count remained low (delta: ${ctxt_delta})"
+ pass "Context switch count remained low (delta: ${ctxt_delta})"
else
log "✗ FAIL: Context switches increased significantly (delta: ${ctxt_delta})"
TEST_FAILED=$((TEST_FAILED + 1))
@@ -199,7 +199,7 @@ stop_stalld
# Task merging means the timestamp is preserved, so duration increases
report_count=$(grep -cE "starved on CPU ${TEST_CPU} for [0-9]+ seconds" "${STALLD_LOG}")
if [ "${report_count}" -ge 2 ]; then
- log "✓ PASS: Multiple starvation reports found (${report_count} reports)"
+ pass "Multiple starvation reports found (${report_count} reports)"
# Extract starvation durations from log
durations=$(grep -oE "starved on CPU ${TEST_CPU} for [0-9]+" "${STALLD_LOG}" | grep -oE "[0-9]+$")
@@ -210,7 +210,7 @@ if [ "${report_count}" -ge 2 ]; then
last_duration=$(echo "$durations" | tail -1)
if [ ${last_duration} -gt ${first_duration} ]; then
- log "✓ PASS: Starvation duration increased (${first_duration}s -> ${last_duration}s)"
+ 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)"
@@ -283,14 +283,14 @@ else
# Check both CPUs detected - specifically look for starvation_gen tasks
if grep -qE "starvation_gen.*starved on CPU ${CPU0}|starved on CPU ${CPU0}.*starvation_gen" "${STALLD_LOG}"; then
- log "✓ PASS: Starvation detected on CPU ${CPU0}"
+ pass "Starvation detected on CPU ${CPU0}"
else
log "✗ FAIL: Starvation not detected on CPU ${CPU0}"
TEST_FAILED=$((TEST_FAILED + 1))
fi
if grep -qE "starvation_gen.*starved on CPU ${CPU1}|starved on CPU ${CPU1}.*starvation_gen" "${STALLD_LOG}"; then
- log "✓ PASS: Starvation detected on CPU ${CPU1}"
+ pass "Starvation detected on CPU ${CPU1}"
else
log "✗ FAIL: Starvation not detected on CPU ${CPU1}"
TEST_FAILED=$((TEST_FAILED + 1))
@@ -330,7 +330,7 @@ log "Creating a busy task that should NOT be starved"
# Verify this task was NOT reported as starved
# Since it's making progress, stalld shouldn't detect it
if ! grep "starved" "${STALLD_LOG}"; then
- log "✓ PASS: No false positive - task making progress not reported as starved"
+ pass "No false positive - task making progress not reported as starved"
else
# Check if our specific task was reported
log "Log shows starvation, checking if it's our progress-making task..."
@@ -370,7 +370,7 @@ sleep 5
# Verify stalld is still running (didn't crash)
if assert_process_running "${STALLD_PID}" "stalld still running after task exit"; then
- log "✓ PASS: stalld handled task exit gracefully"
+ pass "stalld handled task exit gracefully"
else
log "✗ FAIL: stalld crashed or exited unexpectedly"
TEST_FAILED=$((TEST_FAILED + 1))
@@ -383,7 +383,7 @@ if grep -iE "error|segfault|crash" "${STALLD_LOG}"; then
grep -iE "error|segfault|crash" "${STALLD_LOG}"
TEST_FAILED=$((TEST_FAILED + 1))
else
- log "✓ PASS: No error messages in log"
+ pass "No error messages in log"
fi
stop_stalld
diff --git a/tests/functional/test_starvation_threshold.sh b/tests/functional/test_starvation_threshold.sh
index b904867..a35f898 100755
--- a/tests/functional/test_starvation_threshold.sh
+++ b/tests/functional/test_starvation_threshold.sh
@@ -76,7 +76,7 @@ log "Waiting for detection (threshold: ${threshold}s)"
# Check if starvation was detected - specifically look for starvation_gen tasks
if wait_for_starvation_detected "${STALLD_LOG}"; then
- log "✓ PASS: Starvation detected after ${threshold}s threshold"
+ pass "Starvation detected after ${threshold}s threshold"
else
log "✗ FAIL: Starvation not detected after ${threshold}s threshold"
log "Log contents:"
@@ -121,7 +121,7 @@ sleep 2
# Check that starvation_gen was NOT detected (duration less than threshold)
if ! grep -qE "starvation_gen.*starved on CPU ${TEST_CPU}|starved on CPU ${TEST_CPU}.*starvation_gen" "${STALLD_LOG2}"; then
- log "✓ PASS: No starvation detected for duration less than threshold"
+ pass "No starvation detected for duration less than threshold"
else
log "✗ FAIL: Starvation detected before threshold"
log "Found starvation_gen task in logs:"
@@ -161,7 +161,7 @@ log "Waiting for detection (threshold: ${threshold}s)"
# Check if starvation_gen was detected
if wait_for_starvation_detected "${STALLD_LOG3}"; then
- log "✓ PASS: Starvation detected with ${threshold}s threshold"
+ pass "Starvation detected with ${threshold}s threshold"
else
log "✗ FAIL: Starvation not detected with ${threshold}s threshold"
log "Log contents:"
diff --git a/tests/functional/test_task_merging.sh b/tests/functional/test_task_merging.sh
index 5cd6406..b89230e 100755
--- a/tests/functional/test_task_merging.sh
+++ b/tests/functional/test_task_merging.sh
@@ -103,7 +103,7 @@ log "Second detection: task starved for ${second_duration}s"
# Verify timestamp was preserved (duration increased)
if [ "${second_duration}" -gt "${first_duration}" ]; then
delta=$((second_duration - first_duration))
- log "✓ PASS: Starvation duration increased by ${delta}s"
+ 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)"
@@ -122,7 +122,7 @@ fi
log "Third detection: task starved for ${third_duration}s"
if [ "${third_duration}" -gt "${second_duration}" ]; then
- log "✓ PASS: Duration continues to accumulate (${third_duration}s total)"
+ pass "Duration continues to accumulate (${third_duration}s total)"
else
log "⚠ INFO: Duration did not increase in third cycle"
fi
@@ -179,7 +179,7 @@ if [ -n "${tracked_pid}" ]; then
delta=$((ctxsw_after - ctxsw_before))
if [ ${delta} -lt 5 ]; then
- log "✓ PASS: Context switches remained low (delta: ${delta})"
+ pass "Context switches remained low (delta: ${delta})"
log " Task meeting merge criteria (same PID, same ctxsw)"
else
log "⚠ INFO: Context switches increased by ${delta}"
@@ -191,7 +191,7 @@ if [ -n "${tracked_pid}" ]; then
log "Total starvation detections: ${detections}"
if [ ${detections} -ge 2 ]; then
- log "✓ PASS: Multiple detections indicate task merging across cycles"
+ pass "Multiple detections indicate task merging across cycles"
fi
else
log "⚠ WARNING: Task exited before second check"
@@ -242,7 +242,7 @@ if [ -n "${tracked_pid}" ]; then
# If task was boosted, context switches should have changed
# meaning timestamp should reset for next starvation period
if grep -q "boosted" "${STALLD_LOG}"; then
- log "✓ PASS: Task was boosted (made progress)"
+ pass "Task was boosted (made progress)"
# Check if we see a new starvation period starting
# (This is harder to verify, but context switches changing = no merge)
@@ -311,7 +311,7 @@ else
log "CPU ${CPU0}: ${cpu0_first}s -> ${cpu0_last}s"
if [ "${cpu0_last}" -gt "${cpu0_first}" ]; then
- log "✓ PASS: CPU ${CPU0} task merging working (timestamp preserved)"
+ pass "CPU ${CPU0} task merging working (timestamp preserved)"
fi
fi
@@ -327,12 +327,12 @@ else
log "CPU ${CPU1}: ${cpu1_first}s -> ${cpu1_last}s"
if [ "${cpu1_last}" -gt "${cpu1_first}" ]; then
- log "✓ PASS: CPU ${CPU1} task merging working (timestamp preserved)"
+ pass "CPU ${CPU1} task merging working (timestamp preserved)"
fi
fi
if [ ${cpu0_detections} -ge 2 ] && [ ${cpu1_detections} -ge 2 ]; then
- log "✓ PASS: Independent task merging on both CPUs"
+ pass "Independent task merging on both CPUs"
fi
# 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 ` Wander Lairson Costa [this message]
2026-03-30 19:43 ` [PATCH stalld 30/36] tests: Add fail() helper and use for all test failures Wander Lairson Costa
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-30-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