From 028ca780a8d45f12a939b73bec1a29a64b7fedfb Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 2 Feb 2021 23:29:03 +0100 Subject: [PATCH 1/2] ssl-opt.sh: if the server fails, do treat it as a test failure This used to be the case a long time ago but was accidentally broken. Fix #4103 for ssl-opt.sh. Signed-off-by: Gilles Peskine --- tests/ssl-opt.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 72d0eb8fc..a9704363d 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -530,6 +530,8 @@ run_test() { # terminate the server (and the proxy) kill $SRV_PID wait $SRV_PID + SRV_RET=$? + if [ -n "$PXY_CMD" ]; then kill $PXY_PID >/dev/null 2>&1 wait $PXY_PID @@ -563,8 +565,8 @@ run_test() { fi # check server exit code - if [ $? != 0 ]; then - fail "server fail" + if [ $SRV_RET != 0 ]; then + fail "Server exited with status $SRV_RET" return fi From 8607f069e71442c0d918ffa372dc6ada658daa5d Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 9 Feb 2021 21:01:33 +0100 Subject: [PATCH 2/2] ssl-opt.sh: Only check the server exit for Mbed TLS We care about the exit code of our server, for example if it's reporting a memory leak after having otherwise executed correctly. We don't care about the exit code of the servers we're using for interoperability testing (openssl s_server, gnutls-serv). We assume that they're working correctly anyway, and they return 1 (gnutls-serv) or die by the signal handle the signal (openssl) when killed by a signal. Signed-off-by: Gilles Peskine --- tests/ssl-opt.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index a9704363d..f5a3d4af5 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -564,8 +564,10 @@ run_test() { fi fi - # check server exit code - if [ $SRV_RET != 0 ]; then + # Check server exit code (only for Mbed TLS: GnuTLS and OpenSSL don't + # exit with status 0 when interrupted by a signal, and we don't really + # care anyway), in case e.g. the server reports a memory leak. + if [ $SRV_RET != 0 ] && is_polar "$SRV_CMD"; then fail "Server exited with status $SRV_RET" return fi