diff options
Diffstat (limited to 'ngircd/src/testsuite/tests.sh')
| -rwxr-xr-x | ngircd/src/testsuite/tests.sh | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/ngircd/src/testsuite/tests.sh b/ngircd/src/testsuite/tests.sh new file mode 100755 index 0000000..3e46c18 --- /dev/null +++ b/ngircd/src/testsuite/tests.sh @@ -0,0 +1,69 @@ +#!/bin/sh +# +# ngIRCd Test Suite +# Copyright (c)2001-2024 Alexander Barton (alex@barton.de) and Contributors. +# +# This program 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 2 of the License, or +# (at your option) any later version. +# Please read the file COPYING, README and AUTHORS for more information. +# + +# detect source directory +[ -z "$srcdir" ] && srcdir=`dirname "$0"` +set -u + +name=`basename "$0"` +test=`echo ${name} | cut -d '.' -f 1` +[ -d logs ] || mkdir logs + +if [ ! -r "$test" ]; then + echo "$test: test not found" >>tests-skipped.lst + echo "${name}: test \"$test\" not found!"; exit 77 + exit 1 +fi + +# read in functions +. "${srcdir}/functions.inc" + +type expect >/dev/null 2>&1 +if [ $? -ne 0 ]; then + echo "$test: \"expect\" not found" >>tests-skipped.lst + echo "${name}: \"expect\" not found." + exit 77 +fi +type telnet >/dev/null 2>&1 +if [ $? -ne 0 ]; then + echo "$test: \"telnet\" not found" >>tests-skipped.lst + echo "${name}: \"telnet\" not found." + exit 77 +fi + +case "$test" in + *ssl*) + type openssl >/dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "$test: \"openssl\" not found" >>tests-skipped.lst + echo "${name}: \"openssl\" not found." + exit 77 + fi + ;; +esac + +# prepare expect script +e_in="${srcdir}/${test}.e" +e_tmp="${test}.e_" +e_exec="$e_in" +if test -t 1 2>/dev/null; then + sed -e 's|^expect |puts -nonewline stderr "."; expect |g' \ + "$e_in" >"$e_tmp" + [ $? -eq 0 ] && e_exec="$e_tmp" +fi + +echo_n "running ${test} ..." +expect "$e_exec" >logs/${test}.log; r=$? +[ $r -eq 0 ] && echo " ok." || echo " failure!" + +rm -f "$e_tmp" +exit $r |
