Files
42_INT_12_webserv/main_test.sh
Eric LAZO da5d1f38b0 merging
2022-08-17 19:45:37 +02:00

119 lines
1.9 KiB
Bash
Executable File

#! /bin/bash
# import and run all tests
##########
# Colors
##########
_GREY='\033[30m'
_RED='\033[0;31m'
_GREEN='\033[32m'
_YELLOW='\033[33m'
_BLUE='\033[34m'
_PURPLE='\033[35m'
_CYAN='\033[36m'
_WHITE='\033[37m'
_END='\033[0m'
#test_file_names=("test_template.sh" "test_header.sh" "test_path.sh")
#test_file_names=("test_method.sh" "test_header.sh" "test_path.sh")
test_file_names=("test_port.sh")
#test_file_names=("test_body.sh")
#test_file_names=("test_valid_uri.sh")
#test_file_names=("test_path.sh")
test_files=()
expected_result_files=()
fill_test_files()
{
for i in "${test_file_names[@]}"
do
test_files+=("./Tester/$i")
done
}
# needs to be invoked for each test_file!
# acutally kinda useless...
fill_expected_files()
{
for i in "${local_expected_test_files[@]}"
do
expected_result_files+=("./Tester/expected_results/$i")
done
}
test_all()
{
arg=${1}
c=0
make
rm -rf telnet.log
rm -rf webserv.log
rm -rf compare.txt
rm -rf expected.txt
fill_test_files
for i in "${test_files[@]}"
do
source $i
source ./Tester/telnet_test.sh
./webserv $config_file &>> webserv.log &
echo -e "${_GREEN}Running Telnet Test on '$test_name'${_END}"
sleep 1
run | telnet | tee compare.txt >> telnet.log
# run | telnet > compare.txt >> telnet.log
# run | telnet >> telnet.log
pkill webserv
echo -e "\n\n------\n" &>> webserv.log
fill_expected_files
expected_result_file="./Tester/expected_results/$file"
if [ "$arg" = "diff" ];
then
DIFF=$(diff -q compare.txt $expected_result_file)
if [ "$DIFF" == "" ];
then
echo "Good diff"
else
diff compare.txt $expected_result_file
fi
elif [ "$arg" = "create" ];
then
if ! test -f $expected_result_file;
then
cat compare.txt > $expected_result_file
fi
elif [ "$arg" = "replace" ];
then
cat compare.txt > $expected_result_file
fi
c+=1
done
if [ "$arg" = "" ];
then
cat telnet.log
fi
}
test_all $1