test: refactor test.rc + start.sh + stop.sh -> lib.sh
Refactor test.rc, start.sh, and stop.sh into lib.sh that each test sources and uses independently of each other. More simplfication and cleanup needed. Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
parent
2d95e0ccf0
commit
aad76ad03b
@ -1,4 +1,4 @@
|
|||||||
EXTRA_DIST = test.rc opts.sh start.sh stop.sh
|
EXTRA_DIST = lib.sh opts.sh
|
||||||
EXTRA_DIST += api.sh local.sh remote.sh fwd.sh mark.sh
|
EXTRA_DIST += api.sh local.sh remote.sh fwd.sh mark.sh
|
||||||
CLEANFILES = *~ *.trs *.log
|
CLEANFILES = *~ *.trs *.log
|
||||||
TEST_EXTENSIONS = .sh
|
TEST_EXTENSIONS = .sh
|
||||||
|
@ -2,7 +2,8 @@
|
|||||||
if [ x"${srcdir}" = x ]; then
|
if [ x"${srcdir}" = x ]; then
|
||||||
srcdir=.
|
srcdir=.
|
||||||
fi
|
fi
|
||||||
. ${srcdir}/start.sh
|
. ${srcdir}/lib.sh
|
||||||
|
setup
|
||||||
|
|
||||||
export MSG="no-openlog-apitest"
|
export MSG="no-openlog-apitest"
|
||||||
|
|
||||||
@ -34,11 +35,9 @@ sleep 2
|
|||||||
./api -i troglobit -p
|
./api -i troglobit -p
|
||||||
sleep 2
|
sleep 2
|
||||||
ps fax |grep -A2 syslogd
|
ps fax |grep -A2 syslogd
|
||||||
grep "troglobit - MSGID - ${MSG}" ${LOGV1} || (echo "== ${LOGV1}"; tail -10 ${LOGV1}; echo "== ${LOG}"; tail -10 ${LOG}; cat ${CONFD}/v1.conf; false)
|
grep "troglobit - MSGID - ${MSG}" ${LOGV1} || (echo "== ${LOGV1}"; tail -10 ${LOGV1}; echo "== ${LOG}"; tail -10 ${LOG}; cat ${CONFD}/v1.conf; FAIL "Cannot find troglobit")
|
||||||
|
|
||||||
echo "= Phase 4 - Verify RFC5424 API with logger(1) ==========="
|
echo "= Phase 4 - Verify RFC5424 API with logger(1) ==========="
|
||||||
../src/logger -p ftp.notice -u ${SOCK} -m "MSDSD" -d '[exampleSDID@32473 iut="3" eventSource="Application" eventID="1011"]' "waldo"
|
../src/logger -p ftp.notice -u ${SOCK} -m "MSDSD" -d '[exampleSDID@32473 iut="3" eventSource="Application" eventID="1011"]' "waldo"
|
||||||
sleep 2
|
sleep 2
|
||||||
grep "exampleSDID@32473" ${LOGV1} || (echo "== ${LOGV1}"; tail -10 ${LOGV1}; false)
|
grep "exampleSDID@32473" ${LOGV1} || (echo "== ${LOGV1}"; tail -10 ${LOGV1}; FAIL "Cannot find exampleSDID@32473")
|
||||||
|
|
||||||
. ./stop.sh
|
|
||||||
|
@ -3,7 +3,9 @@
|
|||||||
if [ x"${srcdir}" = x ]; then
|
if [ x"${srcdir}" = x ]; then
|
||||||
srcdir=.
|
srcdir=.
|
||||||
fi
|
fi
|
||||||
. ${srcdir}/start.sh
|
. ${srcdir}/lib.sh
|
||||||
|
|
||||||
|
setup
|
||||||
|
|
||||||
MSG="fwd and allow"
|
MSG="fwd and allow"
|
||||||
|
|
||||||
@ -23,10 +25,9 @@ kill -HUP `cat ${PID}`
|
|||||||
sleep 2
|
sleep 2
|
||||||
|
|
||||||
# Enable debug for second syslogd
|
# Enable debug for second syslogd
|
||||||
|
cat ${PID2} >> "$DIR/PIDs"
|
||||||
kill -USR1 `cat ${PID2}`
|
kill -USR1 `cat ${PID2}`
|
||||||
|
|
||||||
../src/logger -t fwd -p ntp.notice -u ${SOCK} -m "NTP123" ${MSG}
|
../src/logger -t fwd -p ntp.notice -u ${SOCK} -m "NTP123" ${MSG}
|
||||||
sleep 3
|
sleep 3
|
||||||
grep "fwd - NTP123 - ${MSG}" ${LOG2}
|
grep "fwd - NTP123 - ${MSG}" ${LOG2} || FAIL "Nothing forwarded."
|
||||||
|
|
||||||
. ./stop.sh
|
|
||||||
|
161
test/lib.sh
Executable file
161
test/lib.sh
Executable file
@ -0,0 +1,161 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Test name, used everywhere as /tmp/sysklogd/$NM/foo
|
||||||
|
NM=$(basename "$0" .sh)
|
||||||
|
DIR=/tmp/sysklogd/$NM
|
||||||
|
|
||||||
|
FN=syslog-test
|
||||||
|
FN2=syslog-test2
|
||||||
|
LOG=$DIR/${FN}.log
|
||||||
|
LOG2=$DIR/${FN2}.log
|
||||||
|
LOGV1=$DIR/${FN}-v1.log
|
||||||
|
LOGCONS=$DIR/${FN}-cons.log
|
||||||
|
PID=$DIR/${FN}.pid
|
||||||
|
PID2=$DIR/${FN2}.pid
|
||||||
|
CAP=$DIR/${FN}.pcapng
|
||||||
|
CACHE=$DIR/${FN}.cache
|
||||||
|
CACHE2=$DIR/${FN2}.cache
|
||||||
|
CONF=$DIR/${FN}.conf
|
||||||
|
CONF2=$DIR/${FN2}.conf
|
||||||
|
CONFD=$DIR/${FN}.d
|
||||||
|
CONFD2=$DIR/${FN2}.d
|
||||||
|
SOCK=$DIR/${FN}.sock
|
||||||
|
SOCK2=$DIR/${FN2}.sock
|
||||||
|
ALTSOCK=$DIR/${FN}-alt.sock
|
||||||
|
PORT=5514
|
||||||
|
PORT2=5555
|
||||||
|
|
||||||
|
export SYSLOG_UNIX_PATH=${SOCK}
|
||||||
|
|
||||||
|
# Print heading for test phases
|
||||||
|
print()
|
||||||
|
{
|
||||||
|
printf "\e[7m>> %-76s\e[0m\n" "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
dprint()
|
||||||
|
{
|
||||||
|
printf "\e[2m%-76s\e[0m\n" "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
SKIP()
|
||||||
|
{
|
||||||
|
print "TEST: SKIP"
|
||||||
|
[ $# -gt 0 ] && echo "$*"
|
||||||
|
exit 77
|
||||||
|
}
|
||||||
|
|
||||||
|
FAIL()
|
||||||
|
{
|
||||||
|
print "TEST: FAIL"
|
||||||
|
[ $# -gt 0 ] && echo "$*"
|
||||||
|
exit 99
|
||||||
|
}
|
||||||
|
|
||||||
|
OK()
|
||||||
|
{
|
||||||
|
print "TEST: OK"
|
||||||
|
[ $# -gt 0 ] && echo "$*"
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# shellcheck disable=SC2068
|
||||||
|
tenacious()
|
||||||
|
{
|
||||||
|
timeout=$1
|
||||||
|
shift
|
||||||
|
|
||||||
|
while [ $timeout -gt 0 ]; do
|
||||||
|
$@ && return
|
||||||
|
timeout=$((timeout - 1))
|
||||||
|
done
|
||||||
|
|
||||||
|
FAIL "Timeed out $*"
|
||||||
|
}
|
||||||
|
|
||||||
|
setup()
|
||||||
|
{
|
||||||
|
ip link set lo up
|
||||||
|
|
||||||
|
cat <<-EOF > ${CONF}
|
||||||
|
# Nothing here yo
|
||||||
|
include ${CONFD}/*.conf
|
||||||
|
EOF
|
||||||
|
|
||||||
|
mkdir -p ${CONFD2}
|
||||||
|
cat <<-EOF > ${CONF2}
|
||||||
|
# Nothing here yo
|
||||||
|
include ${CONFD2}/*.conf
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat <<-EOF > ${CONFD}/foo.conf
|
||||||
|
# Local log file, avoid sync to disk
|
||||||
|
*.* -${LOG}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat <<-EOF > ${CONFD}/bar.conf
|
||||||
|
# For remote logging
|
||||||
|
*.* @127.0.0.2
|
||||||
|
EOF
|
||||||
|
|
||||||
|
../src/syslogd -m1 -b :${PORT} -d -sF -f ${CONF} -p ${SOCK} -p ${ALTSOCK} -C ${CACHE} -P ${PID} &
|
||||||
|
|
||||||
|
sleep 2
|
||||||
|
cat ${PID} >> "$DIR/PIDs"
|
||||||
|
kill -USR1 `cat ${PID}`
|
||||||
|
sleep 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Stop all lingering collectors and other tools
|
||||||
|
kill_pids()
|
||||||
|
{
|
||||||
|
# shellcheck disable=SC2162
|
||||||
|
if [ -f "$DIR/PIDs" ]; then
|
||||||
|
while read ln; do kill "$ln" 2>/dev/null; done < "$DIR/PIDs"
|
||||||
|
rm "$DIR/PIDs"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
teardown()
|
||||||
|
{
|
||||||
|
kill_pids
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
rm -f ${LOG}
|
||||||
|
rm -f ${LOGV1}
|
||||||
|
rm -f ${LOG2}
|
||||||
|
rm -f ${LOGCONS}
|
||||||
|
rm -f ${PID}
|
||||||
|
rm -f ${PID2}
|
||||||
|
rm -f ${CAP}
|
||||||
|
rm -f ${SOCK}
|
||||||
|
rm -f ${CACHE}
|
||||||
|
rm -f ${CACHE2}
|
||||||
|
rm -f ${CONF}
|
||||||
|
rm -f ${CONF2}
|
||||||
|
rm -rf ${CONFD}
|
||||||
|
rm -rf ${CONFD2}
|
||||||
|
}
|
||||||
|
|
||||||
|
signal()
|
||||||
|
{
|
||||||
|
echo
|
||||||
|
if [ "$1" != "EXIT" ]; then
|
||||||
|
print "Got signal, cleaning up"
|
||||||
|
fi
|
||||||
|
teardown
|
||||||
|
}
|
||||||
|
|
||||||
|
# props to https://stackoverflow.com/a/2183063/1708249
|
||||||
|
trapit()
|
||||||
|
{
|
||||||
|
func="$1" ; shift
|
||||||
|
for sig ; do
|
||||||
|
trap "$func $sig" "$sig"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# Runs once when including lib.sh
|
||||||
|
mkdir -p ${CONFD}
|
||||||
|
touch "$DIR/PIDs"
|
||||||
|
trapit signal INT TERM QUIT EXIT
|
@ -2,15 +2,14 @@
|
|||||||
if [ x"${srcdir}" = x ]; then
|
if [ x"${srcdir}" = x ]; then
|
||||||
srcdir=.
|
srcdir=.
|
||||||
fi
|
fi
|
||||||
. ${srcdir}/start.sh
|
. ${srcdir}/lib.sh
|
||||||
|
setup
|
||||||
|
|
||||||
MSG="foobar"
|
MSG="foobar"
|
||||||
MSG2="xyzzy"
|
MSG2="xyzzy"
|
||||||
|
|
||||||
../src/logger -u ${SOCK} ${MSG}
|
../src/logger -u ${SOCK} ${MSG}
|
||||||
grep ${MSG} ${LOG}
|
grep ${MSG} ${LOG} || FAIL "Cannot find: ${MSG}"
|
||||||
|
|
||||||
../src/logger -u ${ALTSOCK} ${MSG2}
|
../src/logger -u ${ALTSOCK} ${MSG2}
|
||||||
grep ${MSG2} ${LOG}
|
grep ${MSG2} ${LOG} || FAIL "Cannot find: ${MSG2}"
|
||||||
|
|
||||||
. ./stop.sh
|
|
||||||
|
@ -3,7 +3,8 @@
|
|||||||
if [ x"${srcdir}" = x ]; then
|
if [ x"${srcdir}" = x ]; then
|
||||||
srcdir=.
|
srcdir=.
|
||||||
fi
|
fi
|
||||||
. ${srcdir}/start.sh
|
. ${srcdir}/lib.sh
|
||||||
|
setup
|
||||||
|
|
||||||
check_mark()
|
check_mark()
|
||||||
{
|
{
|
||||||
@ -12,6 +13,5 @@ check_mark()
|
|||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
tenacious 120 check_mark
|
tenacious 120 check_mark && OK
|
||||||
|
FAIL "Missing MARK in log"
|
||||||
. ./stop.sh
|
|
||||||
|
11
test/opts.sh
11
test/opts.sh
@ -1,10 +1,8 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
set -x
|
|
||||||
|
|
||||||
if [ x"${srcdir}" = x ]; then
|
if [ x"${srcdir}" = x ]; then
|
||||||
srcdir=.
|
srcdir=.
|
||||||
fi
|
fi
|
||||||
. ${srcdir}/test.rc
|
. ${srcdir}/lib.sh
|
||||||
|
|
||||||
mkdir -p ${CONFD}
|
mkdir -p ${CONFD}
|
||||||
cat <<EOF > ${CONF}
|
cat <<EOF > ${CONF}
|
||||||
@ -14,8 +12,7 @@ EOF
|
|||||||
|
|
||||||
../src/syslogd -m1 -b :${PORT} -d -sF -f ${CONF} -p ${SOCK} -p ${ALTSOCK} >${LOG2} &
|
../src/syslogd -m1 -b :${PORT} -d -sF -f ${CONF} -p ${SOCK} -p ${ALTSOCK} >${LOG2} &
|
||||||
echo "$!" > ${PID}
|
echo "$!" > ${PID}
|
||||||
|
cat ${PID} >> "$DIR/PIDs"
|
||||||
|
|
||||||
sleep 1
|
sleep 2
|
||||||
kill -9 ${PID}
|
grep ';RFC5424,rotate=10000000:5' ${LOG2} || FAIL "Failed parsing RFC542 .conf"
|
||||||
|
|
||||||
grep ';RFC5424,rotate=10000000:5' ${LOG2}
|
|
||||||
|
@ -1,8 +1,11 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
set -x
|
||||||
|
|
||||||
if [ x"${srcdir}" = x ]; then
|
if [ x"${srcdir}" = x ]; then
|
||||||
srcdir=.
|
srcdir=.
|
||||||
fi
|
fi
|
||||||
. ${srcdir}/start.sh
|
. ${srcdir}/lib.sh
|
||||||
|
setup
|
||||||
|
|
||||||
MSG="kilroy"
|
MSG="kilroy"
|
||||||
|
|
||||||
@ -10,6 +13,7 @@ MSG="kilroy"
|
|||||||
#tshark -Qni lo -w ${CAP} port ${PORT} &
|
#tshark -Qni lo -w ${CAP} port ${PORT} &
|
||||||
tshark -Qni lo -w ${CAP} port 514 &
|
tshark -Qni lo -w ${CAP} port 514 &
|
||||||
TPID="$!"
|
TPID="$!"
|
||||||
|
echo "$TPID" >> "$DIR/PIDs"
|
||||||
|
|
||||||
# Wait for tshark to start up properly
|
# Wait for tshark to start up properly
|
||||||
sleep 3
|
sleep 3
|
||||||
@ -25,7 +29,5 @@ wait ${TPID}
|
|||||||
|
|
||||||
# Analyze content, should have $MSG now ...
|
# Analyze content, should have $MSG now ...
|
||||||
#tshark -d udp.port==${PORT},syslog -r ${CAP} | grep ${MSG}
|
#tshark -d udp.port==${PORT},syslog -r ${CAP} | grep ${MSG}
|
||||||
tshark -r ${CAP} | grep ${MSG}
|
tshark -r ${CAP} | grep ${MSG} || FAIL "Cannot find: ${MSG}"
|
||||||
rm ${CAP}
|
rm ${CAP}
|
||||||
|
|
||||||
. ./stop.sh
|
|
||||||
|
@ -1,81 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
if [ x"${srcdir}" = x ]; then
|
|
||||||
srcdir=.
|
|
||||||
fi
|
|
||||||
. ${srcdir}/test.rc
|
|
||||||
|
|
||||||
# Print heading for test phases
|
|
||||||
print()
|
|
||||||
{
|
|
||||||
printf "\e[7m>> %-76s\e[0m\n" "$1"
|
|
||||||
}
|
|
||||||
|
|
||||||
dprint()
|
|
||||||
{
|
|
||||||
printf "\e[2m%-76s\e[0m\n" "$1"
|
|
||||||
}
|
|
||||||
|
|
||||||
SKIP()
|
|
||||||
{
|
|
||||||
print "TEST: SKIP"
|
|
||||||
[ $# -gt 0 ] && echo "$*"
|
|
||||||
exit 77
|
|
||||||
}
|
|
||||||
|
|
||||||
FAIL()
|
|
||||||
{
|
|
||||||
print "TEST: FAIL"
|
|
||||||
[ $# -gt 0 ] && echo "$*"
|
|
||||||
exit 99
|
|
||||||
}
|
|
||||||
|
|
||||||
OK()
|
|
||||||
{
|
|
||||||
print "TEST: OK"
|
|
||||||
[ $# -gt 0 ] && echo "$*"
|
|
||||||
exit 0
|
|
||||||
}
|
|
||||||
|
|
||||||
# shellcheck disable=SC2068
|
|
||||||
tenacious()
|
|
||||||
{
|
|
||||||
timeout=$1
|
|
||||||
shift
|
|
||||||
|
|
||||||
while [ $timeout -gt 0 ]; do
|
|
||||||
$@ && return
|
|
||||||
timeout=$((timeout - 1))
|
|
||||||
done
|
|
||||||
|
|
||||||
FAIL "Timeed out $*"
|
|
||||||
}
|
|
||||||
|
|
||||||
ip link set lo up
|
|
||||||
|
|
||||||
mkdir -p ${CONFD}
|
|
||||||
cat <<EOF > ${CONF}
|
|
||||||
# Nothing here yo
|
|
||||||
include ${CONFD}/*.conf
|
|
||||||
EOF
|
|
||||||
|
|
||||||
mkdir -p ${CONFD2}
|
|
||||||
cat <<EOF > ${CONF2}
|
|
||||||
# Nothing here yo
|
|
||||||
include ${CONFD2}/*.conf
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cat <<EOF > ${CONFD}/foo.conf
|
|
||||||
# Local log file, avoid sync to disk
|
|
||||||
*.* -${LOG}
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cat <<EOF > ${CONFD}/bar.conf
|
|
||||||
# For remote logging
|
|
||||||
*.* @127.0.0.2
|
|
||||||
EOF
|
|
||||||
|
|
||||||
../src/syslogd -m1 -b :${PORT} -d -sF -f ${CONF} -p ${SOCK} -p ${ALTSOCK} -C ${CACHE} -P ${PID} &
|
|
||||||
|
|
||||||
sleep 2
|
|
||||||
kill -USR1 `cat ${PID}`
|
|
||||||
sleep 1
|
|
31
test/stop.sh
31
test/stop.sh
@ -1,31 +0,0 @@
|
|||||||
#!/bin/sh -e
|
|
||||||
|
|
||||||
if [ x"${srcdir}" = x ]; then
|
|
||||||
srcdir=.
|
|
||||||
fi
|
|
||||||
. ${srcdir}/test.rc
|
|
||||||
|
|
||||||
if [ -e ${PID} ]; then
|
|
||||||
echo "Killing 1st syslogd, PID:`cat ${PID}` ..."
|
|
||||||
kill `cat ${PID}`
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -e ${PID2} ]; then
|
|
||||||
echo "Killing 2nd syslogd, PID:`cat ${PID2}` ..."
|
|
||||||
kill `cat ${PID2}`
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -f ${LOG}
|
|
||||||
rm -f ${LOGV1}
|
|
||||||
rm -f ${LOG2}
|
|
||||||
rm -f ${LOGCONS}
|
|
||||||
rm -f ${PID}
|
|
||||||
rm -f ${PID2}
|
|
||||||
rm -f ${CAP}
|
|
||||||
rm -f ${SOCK}
|
|
||||||
rm -f ${CACHE}
|
|
||||||
rm -f ${CACHE2}
|
|
||||||
rm -f ${CONF}
|
|
||||||
rm -f ${CONF2}
|
|
||||||
rm -rf ${CONFD}
|
|
||||||
rm -rf ${CONFD2}
|
|
26
test/test.rc
26
test/test.rc
@ -1,26 +0,0 @@
|
|||||||
# Test name, used everywhere as /tmp/sysklogd/$NM/foo
|
|
||||||
NM=$(basename "$0" .sh)
|
|
||||||
DIR=/tmp/sysklogd/$NM
|
|
||||||
|
|
||||||
FN=syslog-test
|
|
||||||
FN2=syslog-test2
|
|
||||||
LOG=$DIR/${FN}.log
|
|
||||||
LOG2=$DIR/${FN2}.log
|
|
||||||
LOGV1=$DIR/${FN}-v1.log
|
|
||||||
LOGCONS=$DIR/${FN}-cons.log
|
|
||||||
PID=$DIR/${FN}.pid
|
|
||||||
PID2=$DIR/${FN2}.pid
|
|
||||||
CAP=$DIR/${FN}.pcapng
|
|
||||||
CACHE=$DIR/${FN}.cache
|
|
||||||
CACHE2=$DIR/${FN2}.cache
|
|
||||||
CONF=$DIR/${FN}.conf
|
|
||||||
CONF2=$DIR/${FN2}.conf
|
|
||||||
CONFD=$DIR/${FN}.d
|
|
||||||
CONFD2=$DIR/${FN2}.d
|
|
||||||
SOCK=$DIR/${FN}.sock
|
|
||||||
SOCK2=$DIR/${FN2}.sock
|
|
||||||
ALTSOCK=$DIR/${FN}-alt.sock
|
|
||||||
PORT=5514
|
|
||||||
PORT2=5555
|
|
||||||
|
|
||||||
export SYSLOG_UNIX_PATH=${SOCK}
|
|
Loading…
Reference in New Issue
Block a user