#!/bin/bash # This script is basically just a convenient launch pad script for running all # the tests at once # Most tests should be runnable by doing ./script.sh name_of_test # First the 'good' input tests # This is to say that we get input that: # 1. is properly formatted # 2. has all the info we need & none we don't # 3. has basically nothing malicious about it log_result() { name=$1 expect=$2 actual=$3 result=$4 green='\033[1;32m' red='\033[1;91m' nc='\033[0m' if [ $expect != $actual ];then echo -e ${red}${name}${nc} ${green}$expect ${red}$actual${nc} echo -e ${red}==========${nc} echo "$result" | sed 's/^/\t/g' echo -e ${red}==========${nc} else echo -e ${green}${name}${nc} $expect $actual if [ ! -z "$_show_body" ];then echo ========== echo "$result" | sed 's/^/\t/g' echo ========== fi fi } if [ "$1" = "body" ];then export _show_body=1 fi # Waiting until the web server actuall finishes starting up echo Waiting on server.log while ! grep "Serving" ../server.log > /dev/null; do sleep 1 done source ./common.sh export -f log_result echo ================================ echo TestName ExpectedCode ActualCode bash ./verify_basic_cases.sh bash ./verify_err_cases.sh bash ./verify_mal_cases.sh