Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 36 additions & 20 deletions 42shTests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -71,16 +71,6 @@ function run_verb_be_empty
fi
}

function run_verb_be_filled
{
if [ "$(awk '{print}' "${RESPONSE}")" != "" ]
then
return 0
else
return 1
fi
}

function run_verb_have_nb_of_lines
{
if [ "$(awk 'END {printf NR}' "${RESPONSE}")" == "${EXPECTED_TO_ARGS[0]}" ]
Expand All @@ -91,16 +81,6 @@ function run_verb_have_nb_of_lines
fi
}

function run_verb_have_not_regexp
{
if [ "$(awk -v regexp="${EXPECTED_TO_ARGS[0]}" '$0 ~ regexp {print}' "${RESPONSE}")" == "" ]
then
return 0
else
return 1
fi
}

function run_verb_have_regexp
{
if [ "$(awk -v regexp="${EXPECTED_TO_ARGS[0]}" '$0 ~ regexp {print}' "${RESPONSE}")" != "" ]
Expand Down Expand Up @@ -175,6 +155,24 @@ function run_expected_to
esac
}

function run_expected_to_not
{
shift 1
local EXPECTED_TO_CMD="${1}"
shift 1
local -a EXPECTED_TO_ARGS='(${@})'

eval "run_verb_${EXPECTED_TO_CMD}"
case "${?}" in
1)
printf "${C_GREEN} √ ${EXPECTED_STD_NAME} %s${C_CLEAR}\n" "$(eval echo ${LINE})" ;;
0)
printf "${C_RED} ~ ${EXPECTED_STD_NAME} %s${C_CLEAR}\n" "$(eval echo ${LINE})" ;;
2)
printf "${C_RED} [!] INVALID TEST COMMAND: ${EXPECTED_STD_NAME} %s${C_CLEAR}\n" "$(eval echo ${LINE})" ;;
esac
}

function run_might
{
shift 1
Expand All @@ -193,6 +191,24 @@ function run_might
esac
}

function run_might_not
{
shift 1
local EXPECTED_TO_CMD="${1}"
shift 1
local -a EXPECTED_TO_ARGS=${@}

eval "run_verb_${EXPECTED_TO_CMD}"
case "${?}" in
1)
printf "${C_GREEN} √ ${EXPECTED_STD_NAME} %s${C_CLEAR}\n" "$(eval echo ${LINE})" ;;
0)
printf "${C_YELLOW} ~ ${EXPECTED_STD_NAME} %s${C_CLEAR}\n" "$(eval echo ${LINE})" ;;
2)
printf "${C_RED} [!] INVALID TEST COMMAND: ${EXPECTED_STD_NAME} %s${C_CLEAR}\n" "$(eval echo ${LINE})" ;;
esac
}

function run_expector
{
local LINE
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
expected_to have_not_regexp "42shTests.sh"
expected_to_not have_regexp "42shTests.sh"
Original file line number Diff line number Diff line change
@@ -1 +1 @@
expected_to have_not_regexp "42shTests.sh"
expected_to_not have_regexp "42shTests.sh"
Original file line number Diff line number Diff line change
@@ -1 +1 @@
expected_to have_not_regexp "No such file or directory"
expected_to_not have_regexp "No such file or directory"
2 changes: 1 addition & 1 deletion spec/21sh/redirections/outputs/closing/004-twice/stderr
Original file line number Diff line number Diff line change
@@ -1 +1 @@
expected_to have_not_regexp "No such file or directory"
expected_to_not have_regexp "No such file or directory"
2 changes: 1 addition & 1 deletion spec/21sh/redirections/outputs/closing/004-twice/stdout
Original file line number Diff line number Diff line change
@@ -1 +1 @@
expected_to have_not_regexp "42shTests.sh"
expected_to_not have_regexp "42shTests.sh"
Original file line number Diff line number Diff line change
@@ -1 +1 @@
expected_to have_not_regexp TOKEN1
expected_to_not have_regexp TOKEN1
Original file line number Diff line number Diff line change
@@ -1 +1 @@
expected_to have_not_regexp LAST_TOKEN
expected_to_not have_regexp LAST_TOKEN
Original file line number Diff line number Diff line change
@@ -1 +1 @@
expected_to have_not_regexp TOKEN1
expected_to_not have_regexp TOKEN1
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
expected_to have_not_regexp "No such file or directory"
expected_to have_not_regexp "42shTests.sh"
expected_to_not have_regexp "No such file or directory"
expected_to_not have_regexp "42shTests.sh"
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
expected_to have_not_regexp "No such file or directory"
expected_to have_not_regexp "42shTests.sh"
expected_to_not have_regexp "No such file or directory"
expected_to_not have_regexp "42shTests.sh"
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
expected_to have_not_regexp "No such file or directory"
expected_to have_not_regexp "42shTests.sh"
expected_to_not have_regexp "No such file or directory"
expected_to_not have_regexp "42shTests.sh"
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
expected_to have_not_regexp "No such file or directory"
expected_to have_not_regexp "42shTests.sh"
expected_to_not have_regexp "No such file or directory"
expected_to_not have_regexp "42shTests.sh"
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
expected_to have_not_regexp "No such file or directory"
expected_to have_not_regexp "42shTests.sh"
expected_to_not have_regexp "No such file or directory"
expected_to_not have_regexp "42shTests.sh"
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
expected_to have_not_regexp "No such file or directory"
expected_to have_not_regexp "42shTests.sh"
expected_to_not have_regexp "No such file or directory"
expected_to_not have_regexp "42shTests.sh"
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
expected_to have_not_regexp "No such file or directory"
expected_to have_not_regexp "42shTests.sh"
expected_to_not have_regexp "No such file or directory"
expected_to_not have_regexp "42shTests.sh"
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
expected_to have_not_regexp "No such file or directory"
expected_to have_not_regexp "42shTests.sh"
expected_to_not have_regexp "No such file or directory"
expected_to_not have_regexp "42shTests.sh"
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
expected_to have_not_regexp "No such file or directory"
expected_to_not have_regexp "No such file or directory"
expected_to have_regexp "42shTests.sh"
Original file line number Diff line number Diff line change
@@ -1 +1 @@
expected_to have_not_regexp TOKEN1
expected_to_not have_regexp TOKEN1
2 changes: 1 addition & 1 deletion spec/bonuses/separators/&&/002-do-not-run-second/stderr
Original file line number Diff line number Diff line change
@@ -1 +1 @@
might be_filled
might_not be_empty
2 changes: 1 addition & 1 deletion spec/bonuses/separators/&&/002-do-not-run-second/stdout
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
might be_empty
might have_not_regexp LAST_TOKEN
might_not have_regexp LAST_TOKEN
Original file line number Diff line number Diff line change
@@ -1 +1 @@
might be_filled
might_not be_empty
2 changes: 1 addition & 1 deletion spec/bonuses/separators/&&/004-parse-error-at-end/stderr
Original file line number Diff line number Diff line change
@@ -1 +1 @@
might be_filled
might_not be_empty
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
might be_filled
might_not be_empty
might have_nb_of_lines 2
2 changes: 1 addition & 1 deletion spec/bonuses/separators/||/001-run-first-only/stdout
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
might have_regexp FIRST_TOKEN
might have_not_regexp LAST_TOKEN
might_not have_regexp LAST_TOKEN
2 changes: 1 addition & 1 deletion spec/bonuses/separators/||/002-run-second-only/stderr
Original file line number Diff line number Diff line change
@@ -1 +1 @@
might be_filled
might_not be_empty
Original file line number Diff line number Diff line change
@@ -1 +1 @@
might be_filled
might_not be_empty
2 changes: 1 addition & 1 deletion spec/bonuses/separators/||/004-parse-error-at-end/stderr
Original file line number Diff line number Diff line change
@@ -1 +1 @@
might be_filled
might_not be_empty
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
might be_filled
might_not be_empty
might have_nb_of_lines 2
2 changes: 1 addition & 1 deletion spec/minishell/001-builtins/cd/001-no-arg/before_exec
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
rm -f display_pwd
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/spec/support/display-pwd/main.c -o display_pwd
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/support/display-pwd/main.c -o display_pwd
4 changes: 2 additions & 2 deletions spec/minishell/001-builtins/cd/001-no-arg/stdout
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
expected_to have_not_regexp "${GLOBAL_TMP_DIRECTORY}$"
expected_to have_regexp "PWD:${HOME}:PWD$"
expected_to_not have_regexp "${GLOBAL_TMP_DIRECTORY}$"
expected_to have_regexp "PWD:${HOME}:PWD$"
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
rm -f display_pwd
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/spec/support/display-pwd/main.c -o display_pwd
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/support/display-pwd/main.c -o display_pwd
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
rm -f display_pwd
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/spec/support/display-pwd/main.c -o display_pwd
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/support/display-pwd/main.c -o display_pwd
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
rm -f display_pwd
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/spec/support/display-pwd/main.c -o display_pwd
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/support/display-pwd/main.c -o display_pwd
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
rm -f display_pwd
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/spec/support/display-pwd/main.c -o display_pwd
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/support/display-pwd/main.c -o display_pwd
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ rm -f symbolic_link
ln -s .. symbolic_link

rm -f display_pwd
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/spec/support/display-pwd/main.c -o display_pwd
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/support/display-pwd/main.c -o display_pwd
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ ln -s .. symbolic_link1
ln -s symbolic_link1 symbolic_link2

rm -f display_pwd
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/spec/support/display-pwd/main.c -o display_pwd
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/display-pwd/main.c -o display_pwd
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ ln -s subdirectory subdirectory_link
ln -s subsubdirectory subdirectory/subsubdirectory_link

rm -f display_pwd
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/spec/support/display-pwd/main.c -o display_pwd
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/support/display-pwd/main.c -o display_pwd
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
touch not_a_directory

rm -f display_pwd
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/spec/support/display-pwd/main.c -o display_pwd
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/support/display-pwd/main.c -o display_pwd
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
expected_to be_filled
might have_regexp "[Nn]ot a directory"
expected_to_not be_empty
might have_regexp "[Nn]ot a directory"
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ if [ -d permission_denied ]; then chmod 777 permission_denied; rm -r permission_
mkdir -m 0 permission_denied

rm -f display_pwd
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/spec/support/display-pwd/main.c -o display_pwd
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/support/display-pwd/main.c -o display_pwd
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
expected_to be_filled
might have_regexp "[Pp]ermission denied"
expected_to_not be_empty
might have_regexp "[Pp]ermission denied"
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ ln -s symbolic_link2 symbolic_link3
ln -s symbolic_link3 symbolic_link1

rm -f display_pwd
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/spec/support/display-pwd/main.c -o display_pwd
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/support/display-pwd/main.c -o display_pwd
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
expected_to be_filled
might have_regexp "[Tt]oo many symbolic links encountered"
expected_to_not be_empty
might have_regexp "[Tt]oo many symbolic links encountered"
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
expected_to be_filled
might have_regexp "[Nn]o such file or directory"
expected_to_not be_empty
might have_regexp "[Nn]o such file or directory"
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ ln -s subdirectory subdirectory_link
ln -s subsubdirectory subdirectory/subsubdirectory_link

rm -f display_pwd
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/spec/support/display-pwd/main.c -o display_pwd
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/support/display-pwd/main.c -o display_pwd
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
might have_not_regexp "${GLOBAL_TMP_DIRECTORY}/subdirectory_link$"
might_not have_regexp "${GLOBAL_TMP_DIRECTORY}/subdirectory_link$"
might have_regexp "PWD:${GLOBAL_TMP_DIRECTORY}/subdirectory:PWD$"

might have_not_regexp "${GLOBAL_TMP_DIRECTORY}/subdirectory_link/subsubdirectory_link$"
might_not have_regexp "${GLOBAL_TMP_DIRECTORY}/subdirectory_link/subsubdirectory_link$"
might have_regexp "PWD:${GLOBAL_TMP_DIRECTORY}/subdirectory/subsubdirectory:PWD$"
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
rm -f display_pwd
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/spec/support/display-pwd/main.c -o display_pwd
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/support/display-pwd/main.c -o display_pwd
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
rm -f display_env
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/spec/support/display-env/main.c -o display_env
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/support/display-env/main.c -o display_env
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
rm -f display_env
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/spec/support/display-env/main.c -o display_env
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/support/display-env/main.c -o display_env
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
rm -f display_env
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/spec/support/display-env/main.c -o display_env
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/support/display-env/main.c -o display_env
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
rm -f display_env
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/spec/support/display-env/main.c -o display_env
export TESTVARIABLE=TOKEN
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/support/display-env/main.c -o display_env
export TESTVARIABLE=TOKEN
6 changes: 3 additions & 3 deletions spec/minishell/001-builtins/env/006-unset-variables-1/stdout
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
might have_not_regexp "HOME="
might have_not_regexp "PATH="
might have_not_regexp "TESTVARIABLE="
might_not have_regexp "HOME="
might_not have_regexp "PATH="
might_not have_regexp "TESTVARIABLE="
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
rm -f display_env
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/spec/support/display-env/main.c -o display_env
export TESTVARIABLE=TOKEN
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/support/display-env/main.c -o display_env
export TESTVARIABLE=TOKEN
6 changes: 3 additions & 3 deletions spec/minishell/001-builtins/env/007-unset-variables-2/stdout
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
might have_not_regexp "HOME="
might have_not_regexp "PATH="
might have_not_regexp "TESTVARIABLE="
might_not have_regexp "HOME="
might_not have_regexp "PATH="
might_not have_regexp "TESTVARIABLE="
Original file line number Diff line number Diff line change
@@ -1 +1 @@
expected_to be_filled
expected_to_not be_empty
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
expected_to have_regexp "${GLOBAL_TMP_DIRECTORY}$"
expected_to have_not_regexp "${HOME}$"
expected_to_not have_regexp "${HOME}$"
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
rm -f display_env
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/spec/support/display-env/main.c -o display_env
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/support/display-env/main.c -o display_env
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
rm -f display_env
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/spec/support/display-env/main.c -o display_env
gcc -Wall -Werror -Wextra ${GLOBAL_INSTALLDIR}/support/display-env/main.c -o display_env
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
might have_regexp "START DISPLAYING ENVIRONMENT VARIABLES$"
might have_regexp "TESTVARIABLE=TOKEN$"
might have_not_regexp "HOME="
might have_not_regexp "PATH="
might have_regexp "END DISPLAYING ENVIRONMENT VARIABLES$"
might_not have_regexp "HOME="
might_not have_regexp "PATH="
might have_regexp "END DISPLAYING ENVIRONMENT VARIABLES$"
2 changes: 1 addition & 1 deletion spec/minishell/001-builtins/exit/001-simple/stdout
Original file line number Diff line number Diff line change
@@ -1 +1 @@
expected_to have_not_regexp INVISIBLE_TOKEN
expected_to_not have_regexp INVISIBLE_TOKEN
2 changes: 1 addition & 1 deletion spec/minishell/001-builtins/exit/003-too-many-args/stderr
Original file line number Diff line number Diff line change
@@ -1 +1 @@
might be_filled
might_not be_empty
Original file line number Diff line number Diff line change
@@ -1 +1 @@
might be_filled
might_not be_empty
2 changes: 1 addition & 1 deletion spec/minishell/001-builtins/setenv/003-setenv-equal/stderr
Original file line number Diff line number Diff line change
@@ -1 +1 @@
might be_filled
might_not be_empty
Original file line number Diff line number Diff line change
@@ -1 +1 @@
expected_to have_not_regexp $SSH_AUTH_SOCK
expected_to_not have_regexp $SSH_AUTH_SOCK
Loading