6767
6868STARTED_BY_TEST=0
6969PID=" "
70+ PIDS=" "
7071
7172check_adsprpcd_wait_state () {
7273 pid=" $1 "
@@ -112,9 +113,17 @@ check_adsprpcd_wait_state() {
112113}
113114
114115if 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
118127else
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 "
133150fi
134151
135152log_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
149196fi
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 :
161218else
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
164226fi
165227
166228log_info " -------------------Completed $TESTNAME Testcase----------------------------"
167229
168230# Kill only if we started it
169231if [ " $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
174238fi
175239
176240exit 0
0 commit comments