summaryrefslogtreecommitdiff
path: root/tests/logfile-option.sh
diff options
context:
space:
mode:
authorKe Zhao <kzhao@redhat.com>2019-03-06 13:23:24 -0500
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2019-03-16 19:56:48 +0100
commit3d123d737412d952148b117c1546367bcbec8af5 (patch)
tree64c0da672b00fd470d635444e6ad9754a547385b /tests/logfile-option.sh
parent9dca575622586e4c94ced9e453ae0a91f346d711 (diff)
downloadgnutls-3d123d737412d952148b117c1546367bcbec8af5.tar.gz
gnutls-cli: Add option "--logfile" to redirect information message output
First, add an option "--logfile" so user could choose a specific file to store all the informational messages. In some cases, informational messages may cause unexpected result if the output is standard output. With this option, user could redirect these messages to a specific file. This will be helpful in testing and tracking. Second, replace printf() function with log_msg() function This log_msg() function is used when "--logfile" is enabled. Third, add a functionality test for "--logfile" option Add a test script to test if "--logfile" option works as it should be. Signed-off-by: Ke Zhao <kzhao@redhat.com>
Diffstat (limited to 'tests/logfile-option.sh')
-rwxr-xr-xtests/logfile-option.sh113
1 files changed, 113 insertions, 0 deletions
diff --git a/tests/logfile-option.sh b/tests/logfile-option.sh
new file mode 100755
index 0000000000..64fa232c8b
--- /dev/null
+++ b/tests/logfile-option.sh
@@ -0,0 +1,113 @@
+#!/bin/sh
+
+# Copyright (C) 2010-2016 Free Software Foundation, Inc.
+#
+# Author: Nikos Mavrogiannopoulos
+#
+# This file is part of GnuTLS.
+#
+# GnuTLS is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 3 of the License, or (at
+# your option) any later version.
+#
+# GnuTLS is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GnuTLS; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+srcdir="${srcdir:-.}"
+SERV="${SERV:-../src/gnutls-serv${EXEEXT}}"
+CLI="${CLI:-../src/gnutls-cli${EXEEXT}}"
+unset RETCODE
+
+if ! test -x "${SERV}"; then
+ exit 77
+fi
+
+if ! test -x "${CLI}"; then
+ exit 77
+fi
+
+if test "${WINDIR}" != ""; then
+ exit 77
+fi
+
+if ! test -z "${VALGRIND}"; then
+ VALGRIND="${LIBTOOL:-libtool} --mode=execute ${VALGRIND} --error-exitcode=15"
+fi
+
+
+SERV="${SERV} -q"
+
+. "${srcdir}/scripts/common.sh"
+
+echo "Checking whether logfile option works."
+
+KEY1=${srcdir}/../doc/credentials/x509/key-rsa.pem
+CERT1=${srcdir}/../doc/credentials/x509/cert-rsa.pem
+OCSP1=${srcdir}/ocsp-tests/response1.der
+PSK=${srcdir}/psk.passwd
+
+TMPFILE1=save-data1.$$.tmp
+TMPFILE2=save-data2.$$.tmp
+
+eval "${GETPORT}"
+launch_server $$ --echo --priority NORMAL:+ECDHE-PSK:+DHE-PSK:+PSK --pskpasswd=${PSK}
+PID=$!
+wait_server ${PID}
+
+${VALGRIND} "${CLI}" -p "${PORT}" 127.0.0.1 --priority NORMAL:+ECDHE-PSK:+DHE-PSK:+PSK --pskusername=jas --pskkey=9e32cf7786321a828ef7668f09fb35db </dev/null >${TMPFILE2}
+
+kill ${PID}
+wait
+
+if test -f ${TMPFILE1};then
+ echo "Logfile should not be created!"
+ exit 1
+fi
+if ! test -s ${TMPFILE2};then
+ echo "Stdout should not be empty!"
+ exit 1
+fi
+if grep -q "Handshake was completed" ${TMPFILE2};then
+ echo "Find the expected output!"
+else
+ echo "Cannot find the expected output!"
+ exit 1
+fi
+
+rm -f ${TMPFILE1} ${TMPFILE2}
+
+eval "${GETPORT}"
+launch_server $$ --echo --priority NORMAL:+ECDHE-PSK:+DHE-PSK:+PSK --pskpasswd=${PSK}
+PID=$!
+wait_server ${PID}
+
+${VALGRIND} "${CLI}" -p "${PORT}" 127.0.0.1 --logfile ${TMPFILE1} --priority NORMAL:+ECDHE-PSK:+DHE-PSK:+PSK --pskusername=jas --pskkey=9e32cf7786321a828ef7668f09fb35db </dev/null >${TMPFILE2}
+
+kill ${PID}
+wait
+
+if ! test -f ${TMPFILE1};then
+ echo "Logfile shoule be created!"
+ exit 1
+fi
+if test -s ${TMPFILE2};then
+ echo "Stdout should be empty!"
+ exit 1
+fi
+
+if grep -q "Handshake was completed" ${TMPFILE1}; then
+ echo "Found the expected output!"
+else
+ echo "Cannot find the expected output!"
+ exit 1
+fi
+rm -f ${TMPFILE1} ${TMPFILE2}
+
+exit 0