@@ -152,7 +152,7 @@ function _setup_test_dbus_server() {
152152}
153153
154154function _setup_display_server() {
155- local DISPLAY_SERVER ENV_FILE CLEANUP_FILE PID_FILE PID
155+ local DISPLAY_SERVER ENV_FILE CLEANUP_FILE PID_FILE PID DISP_XVFB DISP_XEPHYR
156156 ENV_FILE=$1
157157 CLEANUP_FILE=$2
158158 PID_FILE=$3
@@ -171,33 +171,45 @@ function _setup_display_server() {
171171 mutter --wayland --headless --no-x11 --virtual-monitor 1024x768 & > " $TMPFILE " &
172172 PID=$!
173173 echo " kill -9 ${PID} || true" >> " $CLEANUP_FILE "
174- echo " ${PID} " >> " ${PID_FILE} "
174+ echo " ${PID} mutter " >> " ${PID_FILE} "
175175 sleep 1s
176176 export WAYLAND_DISPLAY
177177 WAYLAND_DISPLAY=$( grep " Using Wayland display" " $TMPFILE " | cut -d" '" -f2)
178178 rm " $TMPFILE "
179179 echo " export WAYLAND_DISPLAY=\" $WAYLAND_DISPLAY \" " >> " $ENV_FILE "
180180 else
181181 echo " Running on X11:"
182- echo " Starting Xvfb..."
183- Xvfb -screen 0 1024x768x24 :33 & > /dev/null &
184- PID=$!
182+ while true ; do
183+ echo " Starting Xvfb..."
184+ DISP_XVFB=$RANDOM
185+ Xvfb -screen 0 1024x768x24 :${DISP_XVFB} & > /dev/null &
186+ PID=$!
187+ sleep 1
188+ if ps --no-headers --pid=" $PID " > /dev/null; then
189+ break
190+ fi
191+ done
185192 echo " kill -9 ${PID} || true" >> " $CLEANUP_FILE "
186- echo " ${PID} " >> " ${PID_FILE} "
187- sleep 1
188- echo " Starting Xephyr..."
189- DISPLAY=:33 Xephyr :32 -screen 1024x768 & > /dev/null &
190- PID=$!
193+ echo " ${PID} Xvfb" >> " ${PID_FILE} "
194+ while true ; do
195+ echo " Starting Xephyr..."
196+ DISP_XEPHYR=$RANDOM
197+ DISPLAY=:${DISP_XVFB} Xephyr :${DISP_XEPHYR} -screen 1024x768 & > /dev/null &
198+ PID=$!
199+ sleep 1
200+ if ps --no-headers --pid=" $PID " > /dev/null; then
201+ break
202+ fi
203+ done
191204 echo " kill -9 ${PID} || true" >> " $CLEANUP_FILE "
192- echo " ${PID} " >> " ${PID_FILE} "
193- sleep 1
205+ echo " ${PID} Xephyr" >> " ${PID_FILE} "
194206 echo " Starting metacity"
195- metacity --display=:32 & > /dev/null &
207+ metacity --display=:${DISP_XEPHYR} & > /dev/null &
196208 PID=$!
197209 echo " kill -9 ${PID} || true" >> " $CLEANUP_FILE "
198- echo " ${PID} " >> " ${PID_FILE} "
210+ echo " ${PID} metacity " >> " ${PID_FILE} "
199211
200- export DISPLAY=:32
212+ export DISPLAY=:${DISP_XEPHYR}
201213 echo " export DISPLAY=\" $DISPLAY \" " >> " $ENV_FILE "
202214 fi
203215}
@@ -239,7 +251,7 @@ function _setup_ibus() {
239251 ibus-daemon ${ARG_VERBOSE-} --daemonize --panel=disable --address=unix:abstract=" ${TEMP_DATA_DIR} /test-ibus" ${IBUS_CONFIG-} & > /tmp/ibus-daemon.log
240252 PID=$( pgrep -f " ${TEMP_DATA_DIR} /test-ibus" )
241253 echo " kill -9 ${PID} || true" >> " $CLEANUP_FILE "
242- echo " ${PID} " >> " ${PID_FILE} "
254+ echo " ${PID} ibus-daemon " >> " ${PID_FILE} "
243255 sleep 1s
244256
245257 IBUS_ADDRESS=$( ibus address)
@@ -252,7 +264,7 @@ function _setup_ibus() {
252264 " ${TOP_BINDIR} /src/ibus-engine-keyman" --testing ${ARG_VERBOSE-} & > /tmp/ibus-engine-keyman.log &
253265 PID=$!
254266 echo " kill -9 ${PID} || true" >> " $CLEANUP_FILE "
255- echo " ${PID} " >> " ${PID_FILE} "
267+ echo " ${PID} ibus-engine-keyman " >> " ${PID_FILE} "
256268 sleep 1s
257269}
258270
@@ -312,25 +324,31 @@ function exit_on_package_build() {
312324}
313325
314326function check_processes_running() {
315- local DISPLAY_SERVER ENV_FILE CLEANUP_FILE PID_FILE PID MISSING
327+ local DISPLAY_SERVER ENV_FILE CLEANUP_FILE PID_FILE LINE PID MISSING MISSING_PROCS
316328 DISPLAY_SERVER=$1
317329 ENV_FILE=$2
318330 CLEANUP_FILE=$3
319331 PID_FILE=$4
320332 MISSING=false
333+ MISSING_PROCS=" "
321334
322- while read -r PID ; do
323- if [ -z " $PID " ]; then
335+ while read -r LINE ; do
336+ if [ -z " $LINE " ]; then
324337 continue
325- elif ! ps --no-headers --pid=" $PID " > /dev/null; then
338+ fi
339+ PID=$( echo " $LINE " | cut -d' ' -f1)
340+ if ! ps --no-headers --pid=" $PID " > /dev/null; then
326341 MISSING=true
342+ MISSING_PROCS=" ${MISSING_PROCS} $( echo " $LINE " | cut -d' ' -f2) \n"
327343 break
328344 fi
329345 done < " ${PID_FILE} "
330346
331347 if $MISSING ; then
332348 echo " # Some background processes no longer running. Restarting..."
333- echo " Some background processes no longer running. Restarting..." > /tmp/debug.output
349+ echo " Some background processes no longer running:" > /tmp/debug.output
350+ echo " $MISSING_PROCS " >> /tmp/debug.output
351+ echo " Restarting..." >> /tmp/debug.output
334352 cleanup " ${CLEANUP_FILE} " > /dev/null 2>&1
335353 setup " ${DISPLAY_SERVER} " " ${ENV_FILE} " " ${CLEANUP_FILE} " " ${PID_FILE} " > /dev/null 2>&1
336354 fi
0 commit comments