38 lines
1.1 KiB
Bash
38 lines
1.1 KiB
Bash
#!/bin/sh
|
|
|
|
set -x
|
|
|
|
# md5 is BSD md5 binary
|
|
# Linux uses md5sum
|
|
MD5=md5
|
|
type md5 2>/dev/null
|
|
if [ $? -ne 0 ]; then
|
|
MD5=md5sum
|
|
fi
|
|
|
|
# serving a file
|
|
OUT=$(printf "/main.gph\r\n" | ../khan -d var/gopher/ | tee /dev/stderr | $MD5)
|
|
if ! [ $OUT = "979481230b482d033c5a6e6c566c0322" ] ; then echo "error" ; exit 1 ; fi
|
|
|
|
# default gophermap file with nothing
|
|
OUT=$(printf "\r\n" | ../khan -d var/gopher/ | tee /dev/stderr | $MD5)
|
|
if ! [ $OUT = "979481230b482d033c5a6e6c566c0322" ] ; then echo "error" ; exit 1 ; fi
|
|
|
|
# default gophermap with /
|
|
OUT=$(printf "/\r\n" | ../khan -d var/gopher/ | tee /dev/stderr | $MD5)
|
|
if ! [ $OUT = "979481230b482d033c5a6e6c566c0322" ] ; then echo "error" ; exit 1 ; fi
|
|
|
|
# file not existing
|
|
OUT=$(printf "/foobar\r\n" | ../khan -v -d var/gopher/ | tee /dev/stderr | $MD5)
|
|
if ! [ $OUT = "fd5f8d5e7e0dab56056547bc1d9f2f3e" ] ; then echo "error" ; exit 1 ; fi
|
|
|
|
# must fail only on OpenBSD !
|
|
# try to escape from unveil
|
|
if [ -f /bsd ]
|
|
then
|
|
OUT=$(printf "/../../test.sh\r\n" | ../khan -d var/gopher/ | tee /dev/stderr | $MD5)
|
|
if [ $OUT = "$(cat $0 | $MD5)" ] ; then echo "error" ; exit 1 ; fi
|
|
fi
|
|
|
|
echo "SUCCESS"
|