From 1cf685910f47be8f70fe3120a2aef4aa34d2e92a Mon Sep 17 00:00:00 2001 From: Charles Date: Fri, 1 May 2020 11:44:15 +0200 Subject: Initial commit --- test.sh | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100755 test.sh (limited to 'test.sh') diff --git a/test.sh b/test.sh new file mode 100755 index 0000000..4d37ef5 --- /dev/null +++ b/test.sh @@ -0,0 +1,83 @@ +#!/bin/sh + +# **************************************************************************** # +# # +# ::: :::::::: # +# test.sh :+: :+: :+: # +# +:+ +:+ +:+ # +# By: charles +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2020/05/01 10:54:53 by charles #+# #+# # +# Updated: 2020/05/01 10:54:53 by charles ### ########.fr # +# # +# **************************************************************************** # + +case $# in + 0) config_file=minishell_test.config;; + 1) config_file=$1;; + *) echo "Usage: $0 [config file]"; exit 1;; +esac + +config_extract() { + grep $1 $config_file | cut -d '=' -f 2 +} + +minishell_path=`config_extract minishell_path` +minishell_exec=`config_extract minishell_exec` +minishell_exec_path=$minishell_path/$minishell_exec +reference_shell_path=`config_extract reference_shell_path` +lorem_path=`config_extract lorem_path` +lorem=`cat $lorem_path` +pass_marker=`config_extract pass_marker` +fail_marker=`config_extract fail_marker` +log_file=`config_extract log_file` + +# echo $minishell_path +# echo $minishell_exec +# echo $minishell_exec_path +# echo $lorem + +if [ ! -f $minishell_exec_path ]; then + echo "Error: $minishell_exec_path does not exist" + exit 1 +fi + +red() { echo -n "`tput setaf 1`$1`tput sgr 0`"; } +green() { echo -n "`tput setaf 2`$1`tput sgr 0`"; } +put_pass_marker () { green $pass_marker; } +put_fail_marker () { red $fail_marker; } + +append_fail () { + tested=$1 + expected=$2 + expected_status=$3 + actual=$4 + actual_status=$5 + echo "for $1" +} + +expect() { + expected=`$referecence_shell_path -c $1` + expected_status=$? + actual=`$minishell_exec_path -c $1` + actual_status=$? + ([ $expected = $actual ] && [ $expected_status -eq $actual_status ] && put_pass_marker) + || (put_fail_marker && + echo <