1
0
Fork 0
elinks/test.sh

144 lines
3.7 KiB
Bash
Executable File

#!/bin/bash
#
# shell script menus for elinks binary testing
#
CUR_TEST=hello
clear
echo ' --/ \--'
echo ' --[ Welcome to the elinks test helper ]--'
echo ' --[ ]--'
echo ' --[ [*] use option 1 to run dump test ]--'
echo ' --\ /--'
echo ' '
# RUN TEST
run_test() {
if [ "$1" = "hello" ]; then
$ELINKS --dump ./test/hello.html
elif [ "$1" = "http" ]; then
echo "[=] assumes You're running https server on port 9452"
echo "[=] see http_server option"
$ELINKS \
--dump http://127.0.0.1:9452 | head
elif [ "$1" = "https" ]; then
echo "[=] assumes You're running https server on port 9453"
echo "[=] see https_server option"
$ELINKS \
-eval 'set connection.ssl.cert_verify = 0' \
--dump https://127.0.0.1:9453 | head
elif [ "$1" = "interactive" ]; then
# set 256 colors terminal
# use: export TERM=xterm-256color
# and use compiled elinks with the tests folder
if [ "$ARCH" = "win64" ]; then
export TERM=dumb
$ELINKS \
--config-dir `pwd`/test/etc \
./test
else
export TERM=xterm-256color
$ELINKS \
--config-dir `pwd`/test/etc \
-eval 'set terminal.xterm-256color.colors = 3' \
./test
fi
fi
}
# HTTP SERVER MENU
http_menu() {
HTTP_OPTS="start_http stop_http return"
echo ""
echo "--[ http server menu ]--"
echo ""
select SEL in $HTTP_OPTS; do
echo " [*] http server menu "
if [ "$SEL" = "start_http" ]; then
python3 ./test/server/httpf.py &
PID=`echo $!`
echo $PID > /tmp/eltmpf.pid
echo "[*} Starting http server (pid $PID)"
elif [ "$SEL" = "stop_http" ]; then
PID=`cat /tmp/eltmpf.pid`
echo "[*] Stopping http server (pid $PID)"
kill $PID
elif [ "$SEL" = "return" ]; then
break
fi
done
}
# HTTPS SERVER MENU
https_menu() {
HTTPS_OPTS="start_https stop_https certgen return"
echo "--[ https server menu ]--"
echo ""
echo " [*] use certgen to generate server certificate"
echo ""
select SEL in $HTTPS_OPTS; do
echo " [*] https server menu "
if [ "$SEL" = "start_https" ]; then
python3 ./test/server/https.py &
PID=`echo $!`
echo $PID > /tmp/eltmp.pid
echo "[*} Starting https server (pid $PID)"
elif [ "$SEL" = "stop_https" ]; then
PID=`cat /tmp/eltmp.pid`
echo "[*] Stopping https server (pid $PID)"
kill $PID
elif [ "$SEL" = "certgen" ]; then
echo "[*] generation ssl certificate for the https server"
./test/server/gen.sh
elif [ "$SEL" = "return" ]; then
break
fi
done
}
# MAIN LOOP
#
# When called from build.sh it will get first
# parameter as binary suffix and second parameter
# as architecture
#
if [ -d $1 ]; then
BIN_SUFFIX=""
else
BIN_SUFFIX=$1
fi
if [ -d $2 ]; then
ARCHIT="lin64"
else
ARCHIT=$2
fi
echo $ARCH $BIN_SUFFIX
if [ -f ../bin/elinks_$ARCH$BIN_SUFFIX ]; then
ELINKS=../bin/elinks_$ARCH$BIN_SUFFIX
else
ELINKS=./src/elinks$BIN_SUFFIX
fi
SEL="none"
OPTS="hello http https interactive null null null null null http_server https_server exit"
select SEL in $OPTS; do
echo "[*] Current test : " $SEL
echo "[*] Current bin : " $ELINKS
if [ "$SEL" = "hello" ]; then
run_test $SEL
elif [ "$SEL" = "http" ]; then
run_test $SEL
elif [ "$SEL" = "https" ]; then
run_test $SEL
elif [ "$SEL" = "interactive" ]; then
run_test $SEL
elif [ "$SEL" = "http_server" ]; then
http_menu
elif [ "$SEL" = "https_server" ]; then
https_menu
elif [ "$SEL" = "exit" ]; then
exit
fi
done