Skip to content

Commit 06f9600

Browse files
committed
ctest: make daemon spawn adaptively wait for listen
1 parent 1e430a9 commit 06f9600

File tree

2 files changed

+29
-2
lines changed

2 files changed

+29
-2
lines changed

minimal-examples-lowlevel/http-client/minimal-http-client-multi/CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,13 +106,19 @@ endif()
106106
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/minimal-examples-lowlevel/http-server/minimal-http-server-tls
107107
FIXTURES_SETUP hcm_srv
108108
TIMEOUT 800)
109+
set_property(TEST st_hcm_srv PROPERTY ENVIRONMENT SAI_LIST_PORT=${PORT_HCM_SRV} )
110+
set_property(TEST st_hcm_srv PROPERTY ENVIRONMENT VENDOR=$ENV{VENDOR} )
111+
109112
set_tests_properties(ki_hcm_srv PROPERTIES
110113
FIXTURES_CLEANUP hcm_srv)
111114

112115
set_tests_properties(st_hcmp_srv PROPERTIES
113116
WORKING_DIRECTORY .
114117
FIXTURES_SETUP hcmp_srv
115118
TIMEOUT 800)
119+
set_property(TEST st_hcmp_srv PROPERTY ENVIRONMENT SAI_LIST_PORT=1${PORT_HCM_SRV} )
120+
set_property(TEST st_hcmp_srv PROPERTY ENVIRONMENT VENDOR=$ENV{VENDOR} )
121+
116122
set_tests_properties(ki_hcmp_srv PROPERTIES
117123
FIXTURES_CLEANUP hcmp_srv)
118124

scripts/ctest-background.sh

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#!/bin/bash
22
#
3+
# $SAI_LIST_PORT - optional, if present the ipv4 port number to wait on existing
34
# $SAI_INSTANCE_IDX - which instance of sai, 0+
45
# $1 - background fixture name, unique within test space, like "multipostlocalserver"
56
# $2 - executable
@@ -8,13 +9,33 @@
89
J=`basename $2`.$1.$SAI_INSTANCE_IDX
910
$2 $3 $4 $5 $6 $7 $8 $9 2>/tmp/ctest-background-$J 1>/dev/null 0</dev/null &
1011
echo $! > /tmp/sai-ctest-$J
12+
1113
# really we want to loop until the listen port is up
1214
# on, eg, rpi it can be blocked at sd card and slow to start
1315
# due to parallel tests and disc cache flush
14-
if [ ! -z "`echo $2 | grep valgrind`" ] ; then
15-
sleep 5
16+
17+
# echo "runscript SAI_LIST_PORT ${SAI_LIST_PORT}" > /tmp/q
18+
19+
if [ -z "${SAI_LIST_PORT}" ] ; then
20+
21+
if [ ! -z "`echo $2 | grep valgrind`" ] ; then
22+
sleep 5
23+
else
24+
sleep 1
25+
fi
1626
else
27+
if [ "${VENDOR}" = "apple" ] ; then
28+
while [ -z "`netstat -an | grep LISTEN | tr -s ' ' | cut -d' ' -f4| grep "\.${SAI_LIST_PORT}\$"`" ] ; do
29+
sleep 0.5
30+
done
31+
else
32+
while [ -z "`netstat -ltn4 | grep LISTEN | tr -s ' ' | grep ":${SAI_LIST_PORT}\ "`" ] ; do
33+
sleep 0.5
34+
done
35+
fi
36+
1737
sleep 1
1838
fi
39+
1940
exit 0
2041

0 commit comments

Comments
 (0)