Skip to content

Commit ba11e7d

Browse files
committed
Multimedia: DSP_AudioPD: validate both adsprpcd instances and reduce log duplication
- Iterate all adsprpcd PIDs for wait-state validation - Avoid repeated running/PIDs log lines (CI readability) Signed-off-by: Srikanth Muppandam <smuppand@qti.qualcomm.com>
1 parent e286204 commit ba11e7d

1 file changed

Lines changed: 86 additions & 22 deletions

File tree

  • Runner/suites/Multimedia/DSP_AudioPD

Runner/suites/Multimedia/DSP_AudioPD/run.sh

Lines changed: 86 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ fi
6767

6868
STARTED_BY_TEST=0
6969
PID=""
70+
PIDS=""
7071

7172
check_adsprpcd_wait_state() {
7273
pid="$1"
@@ -112,9 +113,17 @@ check_adsprpcd_wait_state() {
112113
}
113114

114115
if is_process_running "adsprpcd"; then
115-
log_info "adsprpcd is running"
116-
PID=$(get_one_pid_by_name "adsprpcd" 2>/dev/null || true)
117-
PID=$(sanitize_pid "$PID")
116+
# is_process_running already prints instances/cmdline (for CI debug)
117+
PIDS=$(get_one_pid_by_name "adsprpcd" all 2>/dev/null || true)
118+
119+
# Pick a primary PID for legacy logging (first valid numeric PID)
120+
for p in $PIDS; do
121+
p_clean=$(sanitize_pid "$p")
122+
if [ -n "$p_clean" ]; then
123+
PID="$p_clean"
124+
break
125+
fi
126+
done
118127
else
119128
log_info "adsprpcd is not running"
120129
log_info "Manually starting adsprpcd daemon"
@@ -130,47 +139,102 @@ else
130139
PID=$(get_one_pid_by_name "adsprpcd" 2>/dev/null || true)
131140
PID=$(sanitize_pid "$PID")
132141
fi
142+
143+
# After start, gather all adsprpcd PIDs (if helper supports it)
144+
PIDS=$(get_one_pid_by_name "adsprpcd" all 2>/dev/null || true)
145+
fi
146+
147+
# Fallback if helper returned nothing
148+
if [ -z "$PIDS" ] && [ -n "$PID" ]; then
149+
PIDS="$PID"
133150
fi
134151

135152
log_info "PID is $PID"
136153

137-
if [ -z "$PID" ] || ! wait_pid_alive "$PID" 10; then
138-
log_fail "Failed to start adsprpcd or PID did not become alive"
154+
# Build an "alive" PID list (avoid false failures if a PID disappears)
155+
PIDS_ALIVE=""
156+
alive_count=0
157+
dead_seen=0
158+
for p in $PIDS; do
159+
p_clean=$(sanitize_pid "$p")
160+
if [ -z "$p_clean" ]; then
161+
continue
162+
fi
163+
164+
if wait_pid_alive "$p_clean" 10; then
165+
alive_count=$((alive_count + 1))
166+
if [ -z "$PIDS_ALIVE" ]; then
167+
PIDS_ALIVE="$p_clean"
168+
else
169+
PIDS_ALIVE="$PIDS_ALIVE $p_clean"
170+
fi
171+
else
172+
dead_seen=1
173+
log_warn "adsprpcd PID $p_clean did not become alive"
174+
fi
175+
done
176+
177+
# Only print alive list if something was dropped (avoids duplicate info in normal case)
178+
if [ "$dead_seen" -eq 1 ]; then
179+
log_info "Alive adsprpcd PIDs: $PIDS_ALIVE"
180+
fi
181+
182+
if [ "$alive_count" -le 0 ]; then
183+
log_fail "Failed to start adsprpcd or no alive PID found"
139184
echo "$TESTNAME FAIL" >"$res_file"
140185

141186
# Kill only if we started it and PID is valid
142187
if [ "$STARTED_BY_TEST" -eq 1 ]; then
143-
PID_CLEAN=$(sanitize_pid "$PID")
144-
if [ -n "$PID_CLEAN" ]; then
145-
kill_process "$PID_CLEAN" || true
146-
fi
188+
for p in $PIDS; do
189+
p_clean=$(sanitize_pid "$p")
190+
if [ -n "$p_clean" ]; then
191+
kill_process "$p_clean" || true
192+
fi
193+
done
147194
fi
148195
exit 0
149196
fi
150197

151-
# Evaluate
152-
check_adsprpcd_wait_state "$PID"
153-
rc=$?
198+
# Evaluate all alive PIDs
199+
fail_seen=0
200+
skip_seen=0
201+
202+
for p in $PIDS_ALIVE; do
203+
check_adsprpcd_wait_state "$p"
204+
rc=$?
154205

155-
if [ "$rc" -eq 0 ]; then
156-
log_pass "$TESTNAME : Test Passed"
157-
echo "$TESTNAME PASS" >"$res_file"
158-
elif [ "$rc" -eq 2 ]; then
206+
if [ "$rc" -eq 2 ]; then
207+
skip_seen=1
208+
break
209+
fi
210+
if [ "$rc" -ne 0 ]; then
211+
fail_seen=1
212+
fi
213+
done
214+
215+
if [ "$skip_seen" -eq 1 ]; then
159216
# SKIP already written by the function
160217
:
161218
else
162-
log_fail "$TESTNAME : Test Failed"
163-
echo "$TESTNAME FAIL" >"$res_file"
219+
if [ "$fail_seen" -eq 0 ]; then
220+
log_pass "$TESTNAME : Test Passed"
221+
echo "$TESTNAME PASS" >"$res_file"
222+
else
223+
log_fail "$TESTNAME : Test Failed"
224+
echo "$TESTNAME FAIL" >"$res_file"
225+
fi
164226
fi
165227

166228
log_info "-------------------Completed $TESTNAME Testcase----------------------------"
167229

168230
# Kill only if we started it
169231
if [ "$STARTED_BY_TEST" -eq 1 ]; then
170-
PID_CLEAN=$(sanitize_pid "$PID")
171-
if [ -n "$PID_CLEAN" ]; then
172-
kill_process "$PID_CLEAN" || true
173-
fi
232+
for p in $PIDS; do
233+
p_clean=$(sanitize_pid "$p")
234+
if [ -n "$p_clean" ]; then
235+
kill_process "$p_clean" || true
236+
fi
237+
done
174238
fi
175239

176240
exit 0

0 commit comments

Comments
 (0)