tests: restructure run_tests into functions to make main flow clearer.
Also prepare for modularizing the testsuite. Michael
This commit is contained in:
parent
dfa1763af9
commit
408c781d14
@ -22,54 +22,53 @@ SCRIPTS_DIR=$(pwd)/$(dirname $0)
|
|||||||
BASEDIR=$SCRIPTS_DIR/../..
|
BASEDIR=$SCRIPTS_DIR/../..
|
||||||
TESTS_DIR=$SCRIPTS_DIR/..
|
TESTS_DIR=$SCRIPTS_DIR/..
|
||||||
TESTENV_DIR=$TESTS_DIR/env
|
TESTENV_DIR=$TESTS_DIR/env
|
||||||
|
LOG_DIR=$TESTENV_DIR/var/log
|
||||||
|
|
||||||
TINYPROXY_IP=127.0.0.2
|
TINYPROXY_IP=127.0.0.2
|
||||||
TINYPROXY_PORT=12321
|
TINYPROXY_PORT=12321
|
||||||
TINYPROXY_USER=$USER
|
TINYPROXY_USER=$USER
|
||||||
TINYPROXY_PID_DIR=$TESTENV_DIR/var/run/tinyproxy
|
TINYPROXY_PID_DIR=$TESTENV_DIR/var/run/tinyproxy
|
||||||
TINYPROXY_PID_FILE=$TINYPROXY_PID_DIR/tinyproxy.pid
|
TINYPROXY_PID_FILE=$TINYPROXY_PID_DIR/tinyproxy.pid
|
||||||
LOG_DIR=$TESTENV_DIR/var/log
|
|
||||||
TINYPROXY_LOG_DIR=$LOG_DIR
|
TINYPROXY_LOG_DIR=$LOG_DIR
|
||||||
TINYPROXY_DATA_DIR=$TESTENV_DIR/usr/share/tinyproxy
|
TINYPROXY_DATA_DIR=$TESTENV_DIR/usr/share/tinyproxy
|
||||||
TINYPROXY_CONF_DIR=$TESTENV_DIR/etc
|
TINYPROXY_CONF_DIR=$TESTENV_DIR/etc
|
||||||
TINYPROXY_CONF_FILE=$TINYPROXY_CONF_DIR/tinyproxy.conf
|
TINYPROXY_CONF_FILE=$TINYPROXY_CONF_DIR/tinyproxy.conf
|
||||||
|
TINYPROXY_STDERR_LOG=$TINYPROXY_LOG_DIR/tinyproxy.stderr.log
|
||||||
|
TINYPROXY_BIN=$BASEDIR/src/tinyproxy
|
||||||
|
|
||||||
WEBSERVER_IP=127.0.0.3
|
WEBSERVER_IP=127.0.0.3
|
||||||
WEBSERVER_PORT=32123
|
WEBSERVER_PORT=32123
|
||||||
WEBSERVER_PID_DIR=$TESTENV_DIR/var/run/webserver
|
WEBSERVER_PID_DIR=$TESTENV_DIR/var/run/webserver
|
||||||
WEBSERVER_PID_FILE=$WEBSERVER_PID_DIR/webserver.pid
|
WEBSERVER_PID_FILE=$WEBSERVER_PID_DIR/webserver.pid
|
||||||
WEBSERVER_LOG_DIR=$TESTENV_DIR/var/log/webserver
|
WEBSERVER_LOG_DIR=$TESTENV_DIR/var/log/webserver
|
||||||
|
|
||||||
TINYPROXY_STDERR_LOG=$TINYPROXY_LOG_DIR/tinyproxy.stderr.log
|
|
||||||
WEBCLIENT_LOG=$LOG_DIR/webclient.log
|
|
||||||
|
|
||||||
WEBSERVER_BIN_FILE=webserver.pl
|
WEBSERVER_BIN_FILE=webserver.pl
|
||||||
WEBSERVER_BIN=$SCRIPTS_DIR/$WEBSERVER_BIN_FILE
|
WEBSERVER_BIN=$SCRIPTS_DIR/$WEBSERVER_BIN_FILE
|
||||||
|
|
||||||
|
WEBCLIENT_LOG=$LOG_DIR/webclient.log
|
||||||
WEBCLIENT_BIN=$SCRIPTS_DIR/webclient.pl
|
WEBCLIENT_BIN=$SCRIPTS_DIR/webclient.pl
|
||||||
TINYPROXY_BIN=$BASEDIR/src/tinyproxy
|
|
||||||
|
|
||||||
STAMP=$(date +%Y%m%d-%H:%M:%S)
|
provision_initial() {
|
||||||
|
if test -e $TESTENV_DIR ; then
|
||||||
if test -e $TESTENV_DIR ; then
|
TESTENV_DIR_OLD=$TESTENV_DIR.old
|
||||||
TESTENV_DIR_OLD=$TESTENV_DIR.old
|
if test -e $TESTENV_DIR_OLD ; then
|
||||||
if test -e $TESTENV_DIR_OLD ; then
|
rm -rf $TESTENV_DIR_OLD
|
||||||
rm -rf $TESTENV_DIR_OLD
|
fi
|
||||||
|
mv $TESTENV_DIR $TESTENV_DIR.old
|
||||||
fi
|
fi
|
||||||
mv $TESTENV_DIR $TESTENV_DIR.old
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkdir -p $TINYPROXY_DATA_DIR
|
mkdir -p $LOG_DIR
|
||||||
cp $BASEDIR/doc/default.html $TINYPROXY_DATA_DIR
|
}
|
||||||
cp $BASEDIR/doc/debug.html $TINYPROXY_DATA_DIR
|
|
||||||
cp $BASEDIR/doc/stats.html $TINYPROXY_DATA_DIR
|
|
||||||
mkdir -p $TINYPROXY_PID_DIR
|
|
||||||
mkdir -p $TINYPROXY_LOG_DIR
|
|
||||||
mkdir -p $TINYPROXY_CONF_DIR
|
|
||||||
|
|
||||||
mkdir -p $WEBSERVER_PID_DIR
|
provision_tinyproxy() {
|
||||||
mkdir -p $WEBSERVER_LOG_DIR
|
mkdir -p $TINYPROXY_DATA_DIR
|
||||||
|
cp $BASEDIR/doc/default.html $TINYPROXY_DATA_DIR
|
||||||
|
cp $BASEDIR/doc/debug.html $TINYPROXY_DATA_DIR
|
||||||
|
cp $BASEDIR/doc/stats.html $TINYPROXY_DATA_DIR
|
||||||
|
mkdir -p $TINYPROXY_PID_DIR
|
||||||
|
mkdir -p $TINYPROXY_LOG_DIR
|
||||||
|
mkdir -p $TINYPROXY_CONF_DIR
|
||||||
|
|
||||||
cat >>$TINYPROXY_CONF_FILE<<EOF
|
cat >>$TINYPROXY_CONF_FILE<<EOF
|
||||||
User $TINYPROXY_USER
|
User $TINYPROXY_USER
|
||||||
#Group $TINYPROXY_GROUP
|
#Group $TINYPROXY_GROUP
|
||||||
Port $TINYPROXY_PORT
|
Port $TINYPROXY_PORT
|
||||||
@ -91,59 +90,99 @@ ViaProxyName "tinyproxy"
|
|||||||
ConnectPort 443
|
ConnectPort 443
|
||||||
ConnectPort 563
|
ConnectPort 563
|
||||||
EOF
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
start_tinyproxy() {
|
||||||
|
echo -n "starting tinyproxy..."
|
||||||
|
$TINYPROXY_BIN -c $TINYPROXY_CONF_FILE 2> $TINYPROXY_STDERR_LOG
|
||||||
|
echo " done"
|
||||||
|
}
|
||||||
|
|
||||||
|
stop_tinyproxy() {
|
||||||
|
echo -n "killing tinyproxy..."
|
||||||
|
kill $(cat $TINYPROXY_PID_FILE)
|
||||||
|
if test "x$?" = "x0" ; then
|
||||||
|
echo " ok"
|
||||||
|
else
|
||||||
|
echo " error"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
provision_webserver() {
|
||||||
|
mkdir -p $WEBSERVER_PID_DIR
|
||||||
|
mkdir -p $WEBSERVER_LOG_DIR
|
||||||
|
}
|
||||||
|
|
||||||
|
start_webserver() {
|
||||||
|
echo -n "starting web server..."
|
||||||
|
$WEBSERVER_BIN --port $WEBSERVER_PORT --log-dir $WEBSERVER_LOG_DIR --pid-file $WEBSERVER_PID_FILE
|
||||||
|
echo " done"
|
||||||
|
}
|
||||||
|
|
||||||
|
stop_webserver() {
|
||||||
|
echo -n "killing webserver..."
|
||||||
|
kill $(cat $WEBSERVER_PID_FILE)
|
||||||
|
if test "x$?" = "x0" ; then
|
||||||
|
echo " ok"
|
||||||
|
else
|
||||||
|
echo " error"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
wait_for_some_seconds() {
|
||||||
|
SECONDS=$1
|
||||||
|
if test "x$SECONDS" = "x" ; then
|
||||||
|
SECONDS=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -n "waiting for $SECONDS seconds."
|
||||||
|
|
||||||
|
COUNT=0
|
||||||
|
while test $COUNT -lt $SECONDS ; do
|
||||||
|
sleep 1
|
||||||
|
echo -n "."
|
||||||
|
COUNT=$(($COUNT + 1))
|
||||||
|
done
|
||||||
|
echo " done"
|
||||||
|
}
|
||||||
|
|
||||||
|
run_basic_webclient_request() {
|
||||||
|
$WEBCLIENT_BIN $1 $2 >> $WEBCLIENT_LOG 2>&1
|
||||||
|
WEBCLIENT_EXIT_CODE=$?
|
||||||
|
if test "x$WEBCLIENT_EXIT_CODE" = "x0" ; then
|
||||||
|
echo " ok"
|
||||||
|
else
|
||||||
|
echo "ERROR ($EBCLIENT_EXIT_CODE)"
|
||||||
|
echo "webclient output:"
|
||||||
|
cat $WEBCLIENT_LOG
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
echo -n "starting web server..."
|
# "main"
|
||||||
$WEBSERVER_BIN --port $WEBSERVER_PORT --log-dir $WEBSERVER_LOG_DIR --pid-file $WEBSERVER_PID_FILE
|
|
||||||
echo " done"
|
|
||||||
|
|
||||||
echo -n "starting tinyproxy..."
|
provision_initial
|
||||||
$TINYPROXY_BIN -c $TINYPROXY_CONF_FILE 2> $TINYPROXY_STDERR_LOG
|
provision_tinyproxy
|
||||||
echo " done"
|
provision_webserver
|
||||||
|
|
||||||
echo -n "waiting for 3 seconds."
|
start_webserver
|
||||||
sleep 1
|
start_tinyproxy
|
||||||
echo -n "."
|
|
||||||
sleep 1
|
wait_for_some_seconds 3
|
||||||
echo -n "."
|
|
||||||
sleep 1
|
|
||||||
echo -n "."
|
|
||||||
echo " done"
|
|
||||||
|
|
||||||
echo -n "checking direct connection to web server..."
|
echo -n "checking direct connection to web server..."
|
||||||
$WEBCLIENT_BIN $WEBSERVER_IP:$WEBSERVER_PORT / >> $WEBCLIENT_LOG 2>&1
|
run_basic_webclient_request "$WEBSERVER_IP:$WEBSERVER_PORT" /
|
||||||
WEBCLIENT_EXIT_CODE=$?
|
|
||||||
if test "x$WEBCLIENT_EXIT_CODE" = "x0" ; then
|
|
||||||
echo " ok"
|
|
||||||
else
|
|
||||||
echo "ERROR ($EBCLIENT_EXIT_CODE)"
|
|
||||||
echo "webclient output:"
|
|
||||||
cat $WEBCLIENT_LOG
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo -n "testing connection through tinyproxy..."
|
echo -n "testing connection through tinyproxy..."
|
||||||
$WEBCLIENT_BIN $TINYPROXY_IP:$TINYPROXY_PORT http://$WEBSERVER_IP:$WEBSERVER_PORT/ >> $WEBCLIENT_LOG 2>&1
|
run_basic_webclient_request "$TINYPROXY_IP:$TINYPROXY_PORT" "http://$WEBSERVER_IP:$WEBSERVER_PORT/"
|
||||||
WEBCLIENT_EXIT_CODE=$?
|
|
||||||
if test "x$WEBCLIENT_EXIT_CODE" = "x0" ; then
|
|
||||||
echo " ok"
|
|
||||||
else
|
|
||||||
echo "ERROR ($WEBCLIENT_EXIT_CODE)"
|
|
||||||
echo "webclient output:"
|
|
||||||
cat $WEBCLIENT_LOG
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
echo "You can continue using the webserver and tinyproxy."
|
||||||
echo -n "hit <enter> to stop the servers and exit: "
|
echo -n "hit <enter> to stop the servers and exit: "
|
||||||
read READ
|
read READ
|
||||||
|
|
||||||
echo -n "killing tinyproxy..."
|
stop_tinyproxy
|
||||||
kill $(cat $TINYPROXY_PID_FILE)
|
stop_webserver
|
||||||
if test "x$?" = "x0" ; then echo "ok" ; else echo "error" ; fi
|
|
||||||
|
|
||||||
echo -n "killing webserver..."
|
echo "done"
|
||||||
# too crude still, need pid file handling for webserver:
|
|
||||||
kill $(cat $WEBSERVER_PID_FILE)
|
|
||||||
if test "x$?" = "x0" ; then echo "ok" ; else echo "error" ; fi
|
|
||||||
|
|
||||||
echo $0: done
|
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
Loading…
Reference in New Issue
Block a user