mirror of
https://github.com/warmcat/libwebsockets.git
synced 2025-03-30 00:00:16 +01:00
ctest: adapt background script
This commit is contained in:
parent
d5c90645c4
commit
56f7007185
14 changed files with 96 additions and 65 deletions
|
@ -918,7 +918,7 @@ lws_create_context(const struct lws_context_creation_info *info)
|
|||
context->timeout_secs = info->timeout_secs;
|
||||
else
|
||||
#endif
|
||||
context->timeout_secs = 5;
|
||||
context->timeout_secs = 10;
|
||||
|
||||
#if defined(LWS_ROLE_H1) || defined(LWS_ROLE_H2)
|
||||
if (info->max_http_header_data)
|
||||
|
|
|
@ -17,8 +17,8 @@ require_lws_config(LWS_WITH_TLS 1 requirements)
|
|||
if (requirements)
|
||||
add_executable(${SAMP} ${SRCS})
|
||||
if (LWS_CTEST_INTERNET_AVAILABLE)
|
||||
add_test(NAME http-client-h2-rxflow-warmcat COMMAND lws-minimal-http-client-h2-rxflow --ignore-sigterm)
|
||||
add_test(NAME http-client-h2-rxflow-warmcat-h1 COMMAND lws-minimal-http-client-h2-rxflow --ignore-sigterm --h1)
|
||||
add_test(NAME http-client-h2-rxflow-warmcat COMMAND lws-minimal-http-client-h2-rxflow)
|
||||
add_test(NAME http-client-h2-rxflow-warmcat-h1 COMMAND lws-minimal-http-client-h2-rxflow --h1)
|
||||
set_tests_properties(http-client-h2-rxflow-warmcat
|
||||
http-client-h2-rxflow-warmcat-h1
|
||||
PROPERTIES
|
||||
|
|
|
@ -17,8 +17,8 @@ if (requirements)
|
|||
add_executable(${SAMP} ${SRCS})
|
||||
|
||||
if (LWS_CTEST_INTERNET_AVAILABLE)
|
||||
add_test(NAME http-client-hugeurl-warmcat COMMAND lws-minimal-http-client-hugeurl --ignore-sigterm)
|
||||
add_test(NAME http-client-hugeurl-warmcat-h1 COMMAND lws-minimal-http-client-hugeurl --ignore-sigterm --h1)
|
||||
add_test(NAME http-client-hugeurl-warmcat COMMAND lws-minimal-http-client-hugeurl )
|
||||
add_test(NAME http-client-hugeurl-warmcat-h1 COMMAND lws-minimal-http-client-hugeurl --h1)
|
||||
set_tests_properties(http-client-hugeurl-warmcat
|
||||
http-client-hugeurl-warmcat-h1
|
||||
PROPERTIES
|
||||
|
|
|
@ -73,7 +73,7 @@ else()
|
|||
add_test(NAME st_hcm_srv COMMAND
|
||||
${CMAKE_SOURCE_DIR}/scripts/ctest-background.sh
|
||||
hcm_srv $<TARGET_FILE:lws-minimal-http-server-tls>
|
||||
--port ${PORT_HCM_SRV} --ignore-sigterm)
|
||||
--port ${PORT_HCM_SRV} )
|
||||
add_test(NAME ki_hcm_srv COMMAND
|
||||
${CMAKE_SOURCE_DIR}/scripts/ctest-background-kill.sh
|
||||
hcm_srv $<TARGET_FILE_NAME:lws-minimal-http-server-tls>
|
||||
|
@ -82,7 +82,7 @@ else()
|
|||
${CMAKE_SOURCE_DIR}/scripts/ctest-background.sh
|
||||
hcmp_srv $<TARGET_FILE:test-server> -s
|
||||
-r ${CMAKE_SOURCE_DIR}/destdir/usr/local/share/libwebsockets-test-server/
|
||||
--port 1${PORT_HCM_SRV} --ignore-sigterm)
|
||||
--port 1${PORT_HCM_SRV} )
|
||||
add_test(NAME ki_hcmp_srv COMMAND
|
||||
${CMAKE_SOURCE_DIR}/scripts/ctest-background-kill.sh
|
||||
hcmp_srv $<TARGET_FILE_NAME:test-server>
|
||||
|
@ -111,7 +111,7 @@ endif()
|
|||
add_test(NAME http-client-multi COMMAND lws-minimal-http-client-multi
|
||||
-l --port ${PORT_HCM_SRV})
|
||||
add_test(NAME http-client-multi-h1 COMMAND lws-minimal-http-client-multi
|
||||
--h1 -l --port ${PORT_HCM_SRV})
|
||||
--h1 -l --port ${PORT_HCM_SRV} -d1151)
|
||||
add_test(NAME http-client-multi-pipe COMMAND lws-minimal-http-client-multi
|
||||
-p -l --port ${PORT_HCM_SRV})
|
||||
add_test(NAME http-client-multi-h1-pipe COMMAND lws-minimal-http-client-multi
|
||||
|
|
|
@ -49,7 +49,7 @@ else()
|
|||
hcp_srv
|
||||
$<TARGET_FILE:test-server>
|
||||
-r ${CMAKE_SOURCE_DIR}/destdir/usr/local/share/libwebsockets-test-server/
|
||||
-s --port ${PORT_HCP_SRV} --ignore-sigterm)
|
||||
-s --port ${PORT_HCP_SRV} )
|
||||
add_test(NAME ki_hcp_srv COMMAND
|
||||
${CMAKE_SOURCE_DIR}/scripts/ctest-background-kill.sh hcp_srv
|
||||
$<TARGET_FILE_NAME:test-server> --port ${PORT_HCP_SRV})
|
||||
|
|
|
@ -17,8 +17,8 @@ if (requirements)
|
|||
add_executable(${SAMP} ${SRCS})
|
||||
|
||||
# if (LWS_CTEST_INTERNET_AVAILABLE)
|
||||
# add_test(NAME http-client-warmcat COMMAND lws-minimal-http-client --ignore-sigterm)
|
||||
# add_test(NAME http-client-warmcat-h1 COMMAND lws-minimal-http-client --ignore-sigterm --h1)
|
||||
# add_test(NAME http-client-warmcat COMMAND lws-minimal-http-client )
|
||||
# add_test(NAME http-client-warmcat-h1 COMMAND lws-minimal-http-client --h1)
|
||||
# set_tests_properties(http-client-warmcat
|
||||
# http-client-warmcat-h1
|
||||
# PROPERTIES
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
#include <libwebsockets.h>
|
||||
#include <string.h>
|
||||
#include <signal.h>
|
||||
#include <errno.h>
|
||||
|
||||
static int interrupted;
|
||||
|
||||
|
@ -42,20 +43,43 @@ static const struct lws_http_mount mount = {
|
|||
/* .basic_auth_login_file */ NULL,
|
||||
};
|
||||
|
||||
#if !defined(WIN32)
|
||||
void sigint_handler(int sig, siginfo_t *siginfo, void *context)
|
||||
{
|
||||
pid_t sender_pid = siginfo->si_pid;
|
||||
lwsl_err("%s: sig %d from pid %lu\n", __func__, sig, (unsigned long)sender_pid);
|
||||
interrupted = 1;
|
||||
}
|
||||
#else
|
||||
void sigint_handler(int sig)
|
||||
{
|
||||
interrupted = 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
int main(int argc, const char **argv)
|
||||
{
|
||||
struct lws_context_creation_info info;
|
||||
struct lws_context *context;
|
||||
#if !defined(WIN32)
|
||||
struct sigaction siga;
|
||||
#endif
|
||||
const char *p;
|
||||
int n = 0;
|
||||
|
||||
signal(SIGINT, sigint_handler);
|
||||
#if !defined(WIN32)
|
||||
memset(&siga, 0, sizeof(siga));
|
||||
siga.sa_sigaction = sigint_handler;
|
||||
siga.sa_flags |= SA_SIGINFO; // get detail info
|
||||
|
||||
// change signal action,
|
||||
if (sigaction(SIGINT, &siga, NULL) != 0) {
|
||||
printf("error sigaction()");
|
||||
return errno;
|
||||
}
|
||||
#else
|
||||
signal(SIGINT, sigint_handler);
|
||||
#endif
|
||||
memset(&info, 0, sizeof info); /* otherwise uninitialized garbage */
|
||||
lws_cmdline_option_handle_builtin(argc, argv, &info);
|
||||
lwsl_user("LWS minimal http server TLS | visit https://localhost:7681\n");
|
||||
|
|
|
@ -51,7 +51,7 @@ if (requirements)
|
|||
add_test(NAME st_ssproxysigv4 COMMAND
|
||||
${CMAKE_SOURCE_DIR}/scripts/ctest-background.sh
|
||||
ssproxysigv4 $<TARGET_FILE:lws-minimal-secure-streams-proxy>
|
||||
-i ${CTEST_SOCKET_PATH} --ignore-sigterm)
|
||||
-i ${CTEST_SOCKET_PATH} )
|
||||
set_tests_properties(st_ssproxysigv4 PROPERTIES WORKING_DIRECTORY . FIXTURES_SETUP ssproxysigv4 TIMEOUT 800)
|
||||
|
||||
add_test(NAME ki_ssproxysigv4 COMMAND
|
||||
|
|
|
@ -71,13 +71,13 @@ if (requirements)
|
|||
add_test(NAME st_ssprxsmd_sspc COMMAND
|
||||
${CMAKE_SOURCE_DIR}/scripts/ctest-background.sh
|
||||
ssproxysmd_sspc $<TARGET_FILE:lws-minimal-secure-streams-proxy>
|
||||
-i ${CTEST_SOCKET_PATH} --ignore-sigterm -d1039)
|
||||
-i ${CTEST_SOCKET_PATH} -d1039)
|
||||
set_tests_properties(st_ssprxsmd_sspc PROPERTIES WORKING_DIRECTORY . FIXTURES_SETUP ssproxysmd_sspc TIMEOUT 800)
|
||||
|
||||
add_test(NAME ki_ssprxsmd_sspc COMMAND
|
||||
${CMAKE_SOURCE_DIR}/scripts/ctest-background-kill.sh
|
||||
ssproxysmd_sspc $<TARGET_FILE:lws-minimal-secure-streams-proxy>
|
||||
-i ${CTEST_SOCKET_PATH} --ignore-sigterm -d1039)
|
||||
-i ${CTEST_SOCKET_PATH} -d1039)
|
||||
set_tests_properties(ki_ssprxsmd_sspc PROPERTIES FIXTURES_CLEANUP ssproxysmd_sspc)
|
||||
|
||||
#
|
||||
|
@ -114,13 +114,13 @@ if (requirements)
|
|||
add_test(NAME st_mulssprxsmd_sspc COMMAND
|
||||
${CMAKE_SOURCE_DIR}/scripts/ctest-background.sh
|
||||
mulssproxysmd_sspc $<TARGET_FILE:lws-minimal-secure-streams-proxy>
|
||||
-i ${CTEST_SOCKET_PATH} --ignore-sigterm -d1039)
|
||||
-i ${CTEST_SOCKET_PATH} -d1039)
|
||||
set_tests_properties(st_mulssprxsmd_sspc PROPERTIES WORKING_DIRECTORY . FIXTURES_SETUP mulssproxysmd_sspc TIMEOUT 800)
|
||||
|
||||
add_test(NAME ki_mulssprxsmd_sspc COMMAND
|
||||
${CMAKE_SOURCE_DIR}/scripts/ctest-background-kill.sh
|
||||
mulssproxysmd_sspc $<TARGET_FILE:lws-minimal-secure-streams-proxy>
|
||||
-i ${CTEST_SOCKET_PATH} --ignore-sigterm -d1039)
|
||||
-i ${CTEST_SOCKET_PATH} -d1039)
|
||||
set_tests_properties(ki_mulssprxsmd_sspc PROPERTIES FIXTURES_CLEANUP mulssproxysmd_sspc)
|
||||
|
||||
#
|
||||
|
|
|
@ -50,7 +50,7 @@ if (requirements)
|
|||
add_test(NAME st_sstfproxy COMMAND
|
||||
${CMAKE_SOURCE_DIR}/scripts/ctest-background.sh
|
||||
sstfproxy $<TARGET_FILE:lws-minimal-secure-streams-proxy>
|
||||
-i ${CTEST_SOCKET_PATH} --ignore-sigterm -d1039)
|
||||
-i ${CTEST_SOCKET_PATH} -d1039)
|
||||
set_tests_properties(st_sstfproxy PROPERTIES WORKING_DIRECTORY . FIXTURES_SETUP sstfproxy TIMEOUT 800)
|
||||
|
||||
add_test(NAME ki_ssproxy COMMAND
|
||||
|
|
|
@ -51,7 +51,7 @@ if (requirements)
|
|||
add_test(NAME st_ssproxy COMMAND
|
||||
${CMAKE_SOURCE_DIR}/scripts/ctest-background.sh
|
||||
ssproxy $<TARGET_FILE:lws-minimal-secure-streams-proxy>
|
||||
-i ${CTEST_SOCKET_PATH} --ignore-sigterm)
|
||||
-i ${CTEST_SOCKET_PATH} )
|
||||
set_tests_properties(st_ssproxy PROPERTIES WORKING_DIRECTORY . FIXTURES_SETUP ssproxy TIMEOUT 800)
|
||||
|
||||
add_test(NAME ki_ssproxy COMMAND
|
||||
|
|
|
@ -48,7 +48,7 @@ else()
|
|||
${CMAKE_SOURCE_DIR}/scripts/ctest-background.sh
|
||||
wcs_srv $<TARGET_FILE:test-server>
|
||||
-r ${CMAKE_SOURCE_DIR}/destdir/usr/local/share/libwebsockets-test-server/
|
||||
-s --port ${PORT_WCS_SRV} --ignore-sigterm)
|
||||
-s --port ${PORT_WCS_SRV} )
|
||||
add_test(NAME ki_wcs_srv COMMAND
|
||||
${CMAKE_SOURCE_DIR}/scripts/ctest-background-kill.sh
|
||||
wcs_srv $<TARGET_FILE_NAME:test-server> --port ${PORT_WCS_SRV})
|
||||
|
|
|
@ -5,60 +5,63 @@
|
|||
# $2 - executable
|
||||
# $3+ - args
|
||||
|
||||
echo "$0 $1 $2 $3 $4" >> /tmp/ctklog
|
||||
echo "$0 $1 $2 $3 $4"
|
||||
|
||||
J=`basename $2`.$1.$SAI_INSTANCE_IDX
|
||||
PI=`cat /tmp/sai-ctest-$J`
|
||||
echo "Stage 1 kill $J 'kill $PI'" >> /tmp/ctklog
|
||||
|
||||
#
|
||||
# We expect our background process to still be around
|
||||
# We expect our background process to initially still be around
|
||||
#
|
||||
|
||||
kill -0 $PI 2>&1 >> /tmp/ctklog
|
||||
kill -0 $PI
|
||||
GONESKI=$?
|
||||
set +e
|
||||
set +E
|
||||
|
||||
if [ $GONESKI -eq 0 ] ; then
|
||||
kill $PI 2>&1 >> /tmp/ctklog
|
||||
kill -9 $PI 2>&1 >> /tmp/ctklog
|
||||
echo "Background task $PI: $J"
|
||||
|
||||
if [ $GONESKI -eq 1 ] ; then
|
||||
echo "Background Process $PI unexpectedly dead already, their log"
|
||||
cat /tmp/ctest-background-$J
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Trying SIGTERM..."
|
||||
|
||||
kill $PI
|
||||
|
||||
#
|
||||
# 100ms intervals, 100 = 10s
|
||||
# need to allow time for valgrind case
|
||||
#
|
||||
BUDGET=100
|
||||
while [ $BUDGET -ne 0 ] ; do
|
||||
sleep 0.1
|
||||
kill -0 $PI 2>&1
|
||||
if [ $? -eq 0 ] ; then
|
||||
#
|
||||
# but in case it isn't enough, use ps to find the same executable started on the same port
|
||||
# and kill that
|
||||
#
|
||||
A1=$3
|
||||
if [ -z "$A1" ] ; then
|
||||
A1=$2
|
||||
fi
|
||||
A2=$4
|
||||
if [ -z "$A2" ] ; then
|
||||
A2=$2
|
||||
fi
|
||||
|
||||
PSARGS=-Af
|
||||
Q=`ps -f`
|
||||
|
||||
if [ $? -ne 0 ] ; then
|
||||
PSARGS=`-dAww`
|
||||
fi
|
||||
|
||||
ps $PSARGS >> /tmp/ctklog
|
||||
|
||||
# sed is there to match up bsd/osx ps with linux
|
||||
KL=`ps $PSARGS | grep -v ctest-background-kill | grep -v grep | grep $2 | grep $A1 | grep $A2 | tr -s ' ' | sed "s/^\ //g" | cut -d' ' -f2`
|
||||
if [ ! -z "$KL" ] ; then
|
||||
echo "Stage 2 kill $J 'kill $KL'" >> /tmp/ctklog
|
||||
kill $KL 2>&1 >> /tmp/ctklog
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo "Process already dead" >> /tmp/ctklog
|
||||
fi
|
||||
|
||||
if [ $? -eq 1 ] ; then
|
||||
echo "Went down OK"
|
||||
exit 0
|
||||
#exit $GONESKI
|
||||
fi
|
||||
BUDGET=$(( $BUDGET - 1 ))
|
||||
done
|
||||
|
||||
echo "Trying SIGKILL..."
|
||||
|
||||
kill -9 $PI
|
||||
|
||||
#
|
||||
# 100ms intervals, 100 = 10s
|
||||
# need to allow time for valgrind case
|
||||
#
|
||||
BUDGET=20
|
||||
while [ $BUDGET -ne 0 ] ; do
|
||||
sleep 0.1
|
||||
kill -0 $PI 2>&1
|
||||
if [ $? -eq 1 ] ; then
|
||||
echo "Went down OK after SIGKILL"
|
||||
exit 0
|
||||
fi
|
||||
BUDGET=$(( $BUDGET - 1 ))
|
||||
done
|
||||
|
||||
echo "Couldn't kill it"
|
||||
exit 1
|
||||
|
|
|
@ -11,6 +11,10 @@ echo $! > /tmp/sai-ctest-$J
|
|||
# really we want to loop until the listen port is up
|
||||
# on, eg, rpi it can be blocked at sd card and slow to start
|
||||
# due to parallel tests and disc cache flush
|
||||
if [ ! -z "`echo $2 | grep valgrind`" ] ; then
|
||||
sleep 5
|
||||
else
|
||||
sleep 1
|
||||
fi
|
||||
exit 0
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue