Skip to content

Commit

Permalink
Test suite: clean up scripts
Browse files Browse the repository at this point in the history
- Reformat code.
- Cleanup some glitches, streamline scripts ...
- Enable "set -u": Error on unset variables.
- Detect "$srcdir" in prep-server3 script, too.
  • Loading branch information
alexbarton committed Apr 5, 2024
1 parent 8d6f2c2 commit 7e78c29
Show file tree
Hide file tree
Showing 15 changed files with 160 additions and 171 deletions.
35 changes: 17 additions & 18 deletions src/testsuite/getpid.sh
@@ -1,29 +1,31 @@
#!/bin/sh
# ngIRCd Test Suite

set -u

# did we get a name?
[ $# -ne 1 ] && exit 1

[ -x /bin/pidof ] && exec /bin/pidof -s $@
[ -x /bin/pidof ] && exec /bin/pidof -s "$1"

# detect flags for "ps" and "head"
UNAME=`uname`
if [ $UNAME = "FreeBSD" ]; then
PS_FLAGS="-a"; PS_PIDCOL="1"; HEAD_FLAGS="-n 1"
PS_FLAGS="-a"; PS_PIDCOL="1"; HEAD_FLAGS="-n 1"
elif [ $UNAME = "A/UX" ]; then
PS_FLAGS="-af"; PS_PIDCOL="2"; HEAD_FLAGS="-1"
PS_FLAGS="-af"; PS_PIDCOL="2"; HEAD_FLAGS="-1"
elif [ $UNAME = "GNU" ]; then
PS_FLAGS="-ax"; PS_PIDCOL="2"; HEAD_FLAGS="-n 1"
PS_FLAGS="-ax"; PS_PIDCOL="2"; HEAD_FLAGS="-n 1"
elif [ $UNAME = "Haiku" ]; then
PS_FLAGS="-o Id -o Team"; PS_PIDCOL="1"; HEAD_FLAGS="-1"
PS_FLAGS="-o Id -o Team"; PS_PIDCOL="1"; HEAD_FLAGS="-1"
elif [ $UNAME = "Linux" ]; then
PS_FLAGS="ax"; PS_PIDCOL="1"; HEAD_FLAGS="-n 1"
PS_FLAGS="ax"; PS_PIDCOL="1"; HEAD_FLAGS="-n 1"
elif [ $UNAME = "SunOS" ]; then
PS_FLAGS="-af"; PS_PIDCOL=2; HEAD_FLAGS="-n 1"
PS_FLAGS="-af"; PS_PIDCOL=2; HEAD_FLAGS="-n 1"
else
PS_FLAGS="-af"; PS_PIDCOL="2"; HEAD_FLAGS="-n 1"
ps $PS_FLAGS > /dev/null 2>&1
if [ $? -ne 0 ]; then PS_FLAGS="a"; PS_PIDCOL="1"; fi
PS_FLAGS="-af"; PS_PIDCOL="2"; HEAD_FLAGS="-n 1"
ps $PS_FLAGS >/dev/null 2>&1
if [ $? -ne 0 ]; then PS_FLAGS="a"; PS_PIDCOL="1"; fi
fi

# debug output
Expand All @@ -33,19 +35,16 @@ fi
#echo "$0: HEAD_FLAGS=$HEAD_FLAGS"

# search PID
ps $PS_FLAGS > procs.tmp
ps $PS_FLAGS >procs.tmp
cat procs.tmp | \
grep -v "$0" | grep "$1" | \
awk "{print \$$PS_PIDCOL}" | \
sort -n > pids.tmp
grep -v "$0" | grep "$1" | \
awk "{print \$$PS_PIDCOL}" | \
sort -n >pids.tmp
pid=`head $HEAD_FLAGS pids.tmp`
rm -rf procs.tmp pids.tmp

# validate PID
[ "$pid" -gt 1 ] > /dev/null 2>&1
[ $? -ne 0 ] && exit 1
[ "$pid" -gt 1 ] >/dev/null 2>&1 || exit 1

echo $pid
exit 0

# -eof-
2 changes: 2 additions & 0 deletions src/testsuite/prep-server3
@@ -1,4 +1,6 @@
#!/bin/sh -e
[ -z "$srcdir" ] && srcdir=`dirname "$0"`
set -eu
mkdir -p ssl
cp "${srcdir}"/ssl/cert-my-first-domain-tld.pem ssl/cert.pem
cp "${srcdir}"/ssl/key-my-first-domain-tld.pem ssl/key.pem
Expand Down
19 changes: 9 additions & 10 deletions src/testsuite/reload-server.sh
@@ -1,10 +1,11 @@
#!/bin/sh
# ngIRCd Test Suite

[ -z "$srcdir" ] && srcdir=`dirname $0`
[ -z "$srcdir" ] && srcdir=`dirname "$0"`
set -u

# read in functions
. ${srcdir}/functions.inc
. "${srcdir}/functions.inc"

if [ -n "$1" ]; then
id="$1"; shift
Expand All @@ -17,16 +18,14 @@ echo_n "reloading server ${id} ..."
# reload (sighup) test-server ...
pid=`./getpid.sh T-ngircd${id}`
if [ -z "$pid" ]; then
echo " failure: no running server found!?"
exit 1
echo " failure: no running server found!?"
exit 1
fi
kill -HUP $pid > /dev/null 2>&1; r=$?
kill -HUP $pid >/dev/null 2>&1; r=$?
if [ $r -eq 0 ]; then
sleep 2
echo " ok".
kill -0 $pid && exit 0
sleep 2
echo " ok".
kill -0 $pid && exit 0
fi
echo " failure: server ${id} could not be reloaded!"
exit 1

# -eof-
25 changes: 12 additions & 13 deletions src/testsuite/start-server.sh
@@ -1,10 +1,11 @@
#!/bin/sh
# ngIRCd Test Suite

[ -z "$srcdir" ] && srcdir=`dirname $0`
[ -z "$srcdir" ] && srcdir=`dirname "$0"`
set -u

# read in functions
. ${srcdir}/functions.inc
. "${srcdir}/functions.inc"

if [ -n "$1" ]; then
id="$1"; shift
Expand All @@ -19,36 +20,34 @@ echo_n "starting server ${id} ..."

# check weather getpid.sh returns valid PIDs. If not, don't start up the
# test-server, because we won't be able to kill it at the end of the test.
./getpid.sh sh > /dev/null 2>&1
./getpid.sh sh >/dev/null 2>&1
if [ $? -ne 0 ]; then
echo " getpid.sh failed!"
exit 1
echo " getpid.sh failed!"
exit 1
fi

# check if there is a test-server already running
./getpid.sh T-ngircd${id} >/dev/null 2>&1
if [ $? -eq 0 ]; then
echo " failure: test-server ${id} already running!"
exit 1
echo " failure: test-server ${id} already running!"
exit 1
fi

# generate MOTD for test-server
echo "This is an ngIRCd Test Server" > ngircd-test${id}.motd
echo "This is an ngIRCd Test Server" >ngircd-test${id}.motd

# glibc memory checking, see malloc(3)
MALLOC_CHECK_=3
export MALLOC_CHECK_

# starting up test-server ...
./T-ngircd${id} -n -f ${srcdir}/ngircd-test${id}.conf $* \
./T-ngircd${id} -n -f "${srcdir}/ngircd-test${id}.conf" "$@" \
>ngircd-test${id}.log 2>&1 &
sleep 1

# validate running test-server
r=1
pid=`./getpid.sh T-ngircd${id}`
[ -n "$pid" ] && kill -0 $pid > /dev/null 2>&1; r=$?

[ -n "$pid" ] && kill -0 $pid >/dev/null 2>&1; r=$?
[ $r -eq 0 ] && echo " ok." || echo " failure!"
exit $r

# -eof-
7 changes: 3 additions & 4 deletions src/testsuite/start-server1
@@ -1,7 +1,6 @@
#!/bin/sh
# ngIRCd Test Suite

[ -z "$srcdir" ] && srcdir=`dirname $0`
${srcdir}/start-server.sh 1

# -eof-
[ -z "$srcdir" ] && srcdir=`dirname "$0"`
set -u
"${srcdir}/start-server.sh" 1
7 changes: 3 additions & 4 deletions src/testsuite/start-server2
@@ -1,7 +1,6 @@
#!/bin/sh
# ngIRCd Test Suite

[ -z "$srcdir" ] && srcdir=`dirname $0`
${srcdir}/start-server.sh 2

# -eof-
[ -z "$srcdir" ] && srcdir=`dirname "$0"`
set -u
"${srcdir}/start-server.sh" 2
6 changes: 3 additions & 3 deletions src/testsuite/start-server3
@@ -1,6 +1,6 @@
#!/bin/sh
# ngIRCd Test Suite

[ -z "$srcdir" ] && srcdir=`dirname $0`
${srcdir}/start-server.sh 3
# -eof-
[ -z "$srcdir" ] && srcdir=`dirname "$0"`
set -u
"${srcdir}/start-server.sh" 3
25 changes: 12 additions & 13 deletions src/testsuite/stop-server.sh
@@ -1,10 +1,11 @@
#!/bin/sh
# ngIRCd Test Suite

[ -z "$srcdir" ] && srcdir=`dirname $0`
[ -z "$srcdir" ] && srcdir=`dirname "$0"`
set -u

# read in functions
. ${srcdir}/functions.inc
. "${srcdir}/functions.inc"

if [ -n "$1" ]; then
id="$1"; shift
Expand All @@ -17,21 +18,19 @@ echo_n "stopping server ${id} ..."
# stop test-server ...
pid=`./getpid.sh T-ngircd${id}`
if [ -z "$pid" ]; then
echo " failure: no running server found!?"
exit 1
echo " failure: no running server found!?"
exit 1
fi
kill $pid > /dev/null 2>&1 || exit 1
kill $pid >/dev/null 2>&1 || exit 1

# waiting ...
for i in 1 2 3 4 5; do
kill -0 $pid > /dev/null 2>&1; r=$?
if [ $r -ne 0 ]; then
echo " ok".
exit 0
fi
sleep 1
kill -0 $pid >/dev/null 2>&1; r=$?
if [ $r -ne 0 ]; then
echo " ok".
exit 0
fi
sleep 1
done
echo " failure: server ${id} still running!?"
exit 1

# -eof-
7 changes: 3 additions & 4 deletions src/testsuite/stop-server1
@@ -1,7 +1,6 @@
#!/bin/sh
# ngIRCd Test Suite

[ -z "$srcdir" ] && srcdir=`dirname $0`
${srcdir}/stop-server.sh 1

# -eof-
[ -z "$srcdir" ] && srcdir=`dirname "$0"`
set -u
"${srcdir}/stop-server.sh" 1
7 changes: 3 additions & 4 deletions src/testsuite/stop-server2
@@ -1,7 +1,6 @@
#!/bin/sh
# ngIRCd Test Suite

[ -z "$srcdir" ] && srcdir=`dirname $0`
${srcdir}/stop-server.sh 2

# -eof-
[ -z "$srcdir" ] && srcdir=`dirname "$0"`
set -u
"${srcdir}/stop-server.sh" 2
7 changes: 3 additions & 4 deletions src/testsuite/stop-server3
@@ -1,7 +1,6 @@
#!/bin/sh
# ngIRCd Test Suite

[ -z "$srcdir" ] && srcdir=`dirname $0`
${srcdir}/stop-server.sh 3

# -eof-
[ -z "$srcdir" ] && srcdir=`dirname "$0"`
set -u
"${srcdir}/stop-server.sh" 3

0 comments on commit 7e78c29

Please sign in to comment.