mirror of https://github.com/nealey/eris.git
52 lines
998 B
Bash
52 lines
998 B
Bash
|
#! /bin/sh
|
||
|
|
||
|
start () {
|
||
|
printf "%-20s [" "$@"
|
||
|
}
|
||
|
|
||
|
fin () {
|
||
|
echo ']'
|
||
|
}
|
||
|
|
||
|
failures=0
|
||
|
fail () {
|
||
|
echo -n '!'
|
||
|
failures=$(expr $failures + 1)
|
||
|
}
|
||
|
|
||
|
start "Full fuzz"
|
||
|
for i in $(seq 200); do
|
||
|
./eris < /dev/urandom 2>/dev/null | grep -q '^HTTP/1.0 40' || fail
|
||
|
[ $(expr $i % 5) = 0 ] && echo -n '.'
|
||
|
done
|
||
|
fin
|
||
|
|
||
|
start "Path"
|
||
|
for i in $(seq 200); do
|
||
|
(
|
||
|
printf "GET /"
|
||
|
dd if=/dev/urandom count=2 2>/dev/null | tr -d '\0\r\n ?'
|
||
|
printf " HTTP/1.0\r\n\r\n"
|
||
|
) | ./eris 2>/dev/null | grep -q '^HTTP/1.0 404' || fail
|
||
|
[ $(expr $i % 5) = 0 ] && echo -n '.'
|
||
|
done
|
||
|
fin
|
||
|
|
||
|
start "Header"
|
||
|
for i in $(seq 200); do
|
||
|
(
|
||
|
printf "GET / HTTP/1.0\r\n"
|
||
|
dd if=/dev/urandom count=2 2>/dev/null | tr -d '\0'
|
||
|
printf "\r\n\r\n"
|
||
|
) | ./eris 2>/dev/null | grep -q '^HTTP/1.0 200' || fail
|
||
|
[ $(expr $i % 5) = 0 ] && echo -n '.'
|
||
|
done
|
||
|
fin
|
||
|
|
||
|
if [ $failures -eq 0 ]; then
|
||
|
echo "All tests passed!"
|
||
|
else
|
||
|
echo "FAIL: $failures failures"
|
||
|
exit $failures
|
||
|
fi
|