3488 lines
142 KiB
Text
3488 lines
142 KiB
Text
[31m[38;5;34m.[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[1;33m~[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[1;33m~[0m[31m[1;33m~[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[1;33m~[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[1;33m~[0m[31m[38;5;34m.[0m[31m[1;33m~[0m[31m[38;5;34m.[0m[31m[1;33m~[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;160mx[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m[31m[38;5;34m.[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m21sh/misc/002-simple-command-line[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the Shell is able to execute a simple command line that contains separators `;`, pipes `|`, and a right redirection `>`.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "./size"
|
||
02: rm -rf "TOKEN201703181458"
|
||
03: echo '^'$(echo TOKEN201703181458_FILE_TOKEN201703181458_STDOUT | wc -c)'$' > "./size"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: mkdir TOKEN201703181458 ; cd TOKEN201703181458 ; touch TOKEN201703181458_FILE ; ls -1 ; ls | cat | wc -c > TOKEN201703181458_STDOUT ; cat TOKEN201703181458_STDOUT[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `TOKEN201703181458_FILE$`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_each_regex_of_file `./size`[0m
|
||
[38;5;239m 01: TOKEN201703181458_FILE
|
||
02: 23[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m21sh/redirections/outputs/truncating/multiple/004-together[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m A right redirection can be associated to the twice outputs by using `&>...`, that means `redirect stdout and stderr to ...`.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -f "new_file_stderr_and_stdout"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_on_stdout_and_stderr TOKEN201703181458_1 TOKEN201703181458_2 &>new_file_stderr_and_stdout[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `TOKEN201703181458_1`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `TOKEN201703181458_2`[0m
|
||
[38;5;239m 01: TOKEN201703181458_1[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `TOKEN201703181458_1`[0m
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `TOKEN201703181458_2`[0m
|
||
[38;5;239m 01: TOKEN201703181458_2[0m
|
||
|
||
MISC:
|
||
[31m[38;5;160m FAILURE expected_to create_file `new_file_stderr_and_stdout` matching_regex `TOKEN201703181458_1$`[0m
|
||
[31m[38;5;160m FAILURE expected_to create_file `new_file_stderr_and_stdout` matching_regex `TOKEN201703181458_2$`[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m21sh/redirections/outputs/truncating/multiple/005-together-with-whitespaces[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m A right redirection can be associated to the twice outputs by using `&>...`, that means `redirect stdout and stderr to ...`.
|
||
In this test, we specify the file name in a separate field.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -f new_file_stderr_and_stdout[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_on_stdout_and_stderr TOKEN201703181458_1 TOKEN201703181458_2 &> new_file_stderr_and_stdout[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `TOKEN201703181458_1`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `TOKEN201703181458_2`[0m
|
||
[38;5;239m 01: TOKEN201703181458_1[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `TOKEN201703181458_1`[0m
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `TOKEN201703181458_2`[0m
|
||
[38;5;239m 01: TOKEN201703181458_2[0m
|
||
|
||
MISC:
|
||
[31m[38;5;160m FAILURE expected_to create_file `new_file_stderr_and_stdout` matching_regex `TOKEN201703181458_1$`[0m
|
||
[31m[38;5;160m FAILURE expected_to create_file `new_file_stderr_and_stdout` matching_regex `TOKEN201703181458_2$`[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m21sh/separators/semicolon/003-parse-error-empty-inline-command[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that using the simicolon separator `;` with empty commands results in error.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_on_stdout TOKEN201703181458 ; ; ./exit_with_status 42[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to_not be_empty[0m
|
||
[31m[38;5;34m SUCCESS might match_regex `([Ss]yntax|[Pp]arse) error`[0m
|
||
[38;5;239m 01: syntax error near unexpected token `;'[0m
|
||
|
||
MISC:
|
||
[31m[38;5;34m SUCCESS expected_to_not exit_with_status `42`[0m
|
||
[31m[38;5;160m FAILURE expected_to_not exit_with_status `0`[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/builtins/export/001-display-env[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that using the builtin `export` without parameters results at least in a display of the environment variables.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "./stored_env"
|
||
02: env | awk 'BEGIN {FS="="} $0 !~ /^(OLDPWD|_)/ {print $1"="}' > "./stored_env"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: export[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_each_regex_of_file `./stored_env`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/builtins/export/003-export-basic-key-value-2[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the builtin `export` may declare a new environment variable and is able to display it later.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: unset "TOKEN201703181458_NAME"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: export TOKEN201703181458_NAME=TOKEN201703181458_VALUE
|
||
02: export[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `TOKEN201703181458_NAME=["]?TOKEN201703181458_VALUE["]?$`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/builtins/export/004-export-empty-variable-1[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that exporting an empty variable does not add it to the environment.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: unset "TOKEN201703181458"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: export TOKEN201703181458
|
||
02: ./display_env[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `TOKEN201703181458`[0m
|
||
[38;5;239m 01: ------------------------------
|
||
02: TERM_PROGRAM=iTerm.app
|
||
03: TERM=screen-256color
|
||
04: SHELL=/bin/zsh
|
||
05: HOMEBREW_TEMP=/tmp/ariard/Homebrew/Temp
|
||
06: TMPDIR=/var/folders/zz/zyxvpxvq6csfxvn_n0002_2m000khn/T/
|
||
07: Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.8FeUPqmXvW/Render
|
||
08: TERM_PROGRAM_VERSION=3.0.10
|
||
09: TERM_SESSION_ID=w0t0p1:84CB76AE-945F-4CD5-ACBE-549A47629FD9
|
||
10: ZSH=/Users/ariard/.oh-my-zsh
|
||
11: USER=ariard
|
||
12: SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.4g7aCI4G8f/Listeners
|
||
13: __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
|
||
14: PAGER=less
|
||
15: TMUX=/private/tmp/tmux-18965/default,63199,0
|
||
16: HOMEBREW_CACHE=/tmp/ariard/Homebrew/Caches
|
||
17: LSCOLORS=Gxfxcxdxbxegedabagacad
|
||
18: PATH=/Users/ariard/.brew/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/munki://Users/ariard/local/bin
|
||
19: MAIL=ariard@student.42.fr
|
||
20: PWD=/Users/ariard/Projects/42sh/42shelltest-tmp/tmp
|
||
21: LANG=en_US.UTF-8
|
||
22: ITERM_PROFILE=Default
|
||
23: XPC_FLAGS=0x0
|
||
24: TMUX_PANE=%2
|
||
25: XPC_SERVICE_NAME=0
|
||
26: SHLVL=4
|
||
27: HOME=/Users/ariard
|
||
28: COLORFGBG=7;0
|
||
29: ITERM_SESSION_ID=w0t0p1:84CB76AE-945F-4CD5-ACBE-549A47629FD9
|
||
30: LOGNAME=ariard
|
||
31: LESS=-R
|
||
32: LC_CTYPE=en_US.UTF-8
|
||
33: TMUX_PLUGIN_MANAGER_PATH=/Users/ariard/.tmux/plugins/
|
||
34: OLDPWD=/Users/ariard/Projects/42sh/42shelltest-tmp
|
||
35: _=../../42sh
|
||
36: ?=0
|
||
37: TOKEN201703181458=
|
||
38: ------------------------------
|
||
39: TOTAL ENVIRONMENT VARIABLES: 36[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/builtins/export/005-export-empty-variable-2[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that exporting an empty variable does not add it to the environment, but can be displayed with the builtin `export`.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: unset "TOKEN201703181458"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: export TOKEN201703181458
|
||
02: export[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `TOKEN201703181458`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/builtins/export/010-export-with-equal-but-no-value-part2[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check if the builtin export works fine with equal sign but no value. This test is based on the local variables return.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: unset "TOKEN201703181458"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: export TOKEN201703181458_NAME=
|
||
02: export[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `TOKEN201703181458_NAME=`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/builtins/export/errors/001-invalid-identifier-1[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that trying to export an invalid variable identifier results in error.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: export 42=TOKEN201703181458[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `TOKEN201703181458`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to_not be_empty[0m
|
||
[31m[1;33m WARNING might match_regex `(not.*identifier|must begin.*letter)`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
MISC:
|
||
[31m[38;5;160m FAILURE expected_to_not exit_with_status `0`[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/builtins/export/errors/002-invalid-identifier-2[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that trying to export an invalid variable identifier results in error.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: export .=TOKEN201703181458[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `TOKEN201703181458`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to_not be_empty[0m
|
||
[31m[1;33m WARNING might match_regex `(not.*identifier|must begin.*letter)`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
MISC:
|
||
[31m[38;5;160m FAILURE expected_to_not exit_with_status `0`[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/builtins/export/errors/003-illegal-option[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that using the builtin `export` with an illegal option results in an error and a failure exit status.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: export -w[0m
|
||
|
||
STDOUT:
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to_not be_empty[0m
|
||
[31m[38;5;34m SUCCESS might match_regex `([Ii]nvalid|[Ii]llegal) (option|argument)`[0m
|
||
[38;5;239m 01: ../../42sh: invalid option -w[0m
|
||
|
||
MISC:
|
||
[31m[38;5;160m FAILURE expected_to_not exit_with_status `0`[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/builtins/export/mixed/001-export-and-tmp-env-part1[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that modifying the environment for the builtin `export` results in an added variable into the exported list.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: unset "TOKEN201703181458_NAME"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: TOKEN201703181458_NAME=TOKEN201703181458_VALUE export TOKEN201703181458_NAME
|
||
02: export[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `TOKEN201703181458_NAME=["]?TOKEN201703181458_VALUE["]?`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: minishell: command not found: TOKEN201703181458_NAME=TOKEN201703181458_VALUE[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/builtins/export/mixed/002-export-and-tmp-env-part2[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that modifying the environment for the builtin `export` results in an added environment variable.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: unset "TOKEN201703181458_NAME"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: TOKEN201703181458_NAME=TOKEN201703181458_VALUE export TOKEN201703181458_NAME
|
||
02: ./display_env[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `TOKEN201703181458_NAME=TOKEN201703181458_VALUE`[0m
|
||
[38;5;239m 01: ------------------------------
|
||
02: TERM_PROGRAM=iTerm.app
|
||
03: TERM=screen-256color
|
||
04: SHELL=/bin/zsh
|
||
05: HOMEBREW_TEMP=/tmp/ariard/Homebrew/Temp
|
||
06: TMPDIR=/var/folders/zz/zyxvpxvq6csfxvn_n0002_2m000khn/T/
|
||
07: Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.8FeUPqmXvW/Render
|
||
08: TERM_PROGRAM_VERSION=3.0.10
|
||
09: TERM_SESSION_ID=w0t0p1:84CB76AE-945F-4CD5-ACBE-549A47629FD9
|
||
10: ZSH=/Users/ariard/.oh-my-zsh
|
||
11: USER=ariard
|
||
12: SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.4g7aCI4G8f/Listeners
|
||
13: __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
|
||
14: PAGER=less
|
||
15: TMUX=/private/tmp/tmux-18965/default,63199,0
|
||
16: HOMEBREW_CACHE=/tmp/ariard/Homebrew/Caches
|
||
17: LSCOLORS=Gxfxcxdxbxegedabagacad
|
||
18: PATH=/Users/ariard/.brew/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/munki://Users/ariard/local/bin
|
||
19: MAIL=ariard@student.42.fr
|
||
20: PWD=/Users/ariard/Projects/42sh/42shelltest-tmp/tmp
|
||
21: LANG=en_US.UTF-8
|
||
22: ITERM_PROFILE=Default
|
||
23: XPC_FLAGS=0x0
|
||
24: TMUX_PANE=%2
|
||
25: XPC_SERVICE_NAME=0
|
||
26: SHLVL=4
|
||
27: HOME=/Users/ariard
|
||
28: COLORFGBG=7;0
|
||
29: ITERM_SESSION_ID=w0t0p1:84CB76AE-945F-4CD5-ACBE-549A47629FD9
|
||
30: LOGNAME=ariard
|
||
31: LESS=-R
|
||
32: LC_CTYPE=en_US.UTF-8
|
||
33: TMUX_PLUGIN_MANAGER_PATH=/Users/ariard/.tmux/plugins/
|
||
34: OLDPWD=/Users/ariard/Projects/42sh/42shelltest-tmp
|
||
35: _=../../42sh
|
||
36: ?=127
|
||
37: ------------------------------
|
||
38: TOTAL ENVIRONMENT VARIABLES: 35[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: minishell: command not found: TOKEN201703181458_NAME=TOKEN201703181458_VALUE[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/builtins/export/options/002-export-p-param-and-token-should-add-local-var-only-part1[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check if export with -p option + token , add the variable into export list but not in env list. And don't display the export variable on stdout.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -f "./stored_env"
|
||
02: unset "TOKEN201703181458_NAME"
|
||
03: export | awk 'BEGIN {FS="="} $0 !~ /^(OLDPWD|_)/ {print $1"="}' > "./stored_env"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: export -p TOKEN201703181458_NAME
|
||
02: export[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to_not match_each_regex_of_file `./stored_env`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `TOKEN201703181458_NAME`[0m
|
||
[38;5;239m 01: export TERM_PROGRAM=iTerm.app
|
||
02: export TERM=screen-256color
|
||
03: export SHELL=/bin/zsh
|
||
04: export HOMEBREW_TEMP=/tmp/ariard/Homebrew/Temp
|
||
05: export TMPDIR=/var/folders/zz/zyxvpxvq6csfxvn_n0002_2m000khn/T/
|
||
06: export Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.8FeUPqmXvW/Render
|
||
07: export TERM_PROGRAM_VERSION=3.0.10
|
||
08: export TERM_SESSION_ID=w0t0p1:84CB76AE-945F-4CD5-ACBE-549A47629FD9
|
||
09: export ZSH=/Users/ariard/.oh-my-zsh
|
||
10: export USER=ariard
|
||
11: export SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.4g7aCI4G8f/Listeners
|
||
12: export __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
|
||
13: export PAGER=less
|
||
14: export TMUX=/private/tmp/tmux-18965/default,63199,0
|
||
15: export HOMEBREW_CACHE=/tmp/ariard/Homebrew/Caches
|
||
16: export LSCOLORS=Gxfxcxdxbxegedabagacad
|
||
17: export PATH=/Users/ariard/.brew/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/munki://Users/ariard/local/bin
|
||
18: export MAIL=ariard@student.42.fr
|
||
19: export PWD=/Users/ariard/Projects/42sh/42shelltest-tmp/tmp
|
||
20: export LANG=en_US.UTF-8
|
||
21: export ITERM_PROFILE=Default
|
||
22: export XPC_FLAGS=0x0
|
||
23: export TMUX_PANE=%2
|
||
24: export XPC_SERVICE_NAME=0
|
||
25: export SHLVL=4
|
||
26: export HOME=/Users/ariard
|
||
27: export COLORFGBG=7;0
|
||
28: export ITERM_SESSION_ID=w0t0p1:84CB76AE-945F-4CD5-ACBE-549A47629FD9
|
||
29: export LOGNAME=ariard
|
||
30: export LESS=-R
|
||
31: export LC_CTYPE=en_US.UTF-8
|
||
32: export TMUX_PLUGIN_MANAGER_PATH=/Users/ariard/.tmux/plugins/
|
||
33: export OLDPWD=/Users/ariard/Projects/42sh/42shelltest-tmp
|
||
34: export _=../../42sh
|
||
35: export ?=0[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/builtins/export/options/003-export-p-param-and-token-should-add-local-var-only-part2[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the builtin `export` with option `-p` results in an added variable into the export list but not from the environment.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -f "./stored_env"
|
||
02: unset "TOKEN201703181458_NAME"
|
||
03: export | awk 'BEGIN {FS="="} $0 !~ /^(OLDPWD|_)/ {print $1"="}' > "./stored_env"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: export -p TOKEN201703181458_NAME
|
||
02: ./display_env[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to_not match_each_regex_of_file `./stored_env`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `TOKEN201703181458_NAME`[0m
|
||
[38;5;239m 01: export TERM_PROGRAM=iTerm.app
|
||
02: export TERM=screen-256color
|
||
03: export SHELL=/bin/zsh
|
||
04: export HOMEBREW_TEMP=/tmp/ariard/Homebrew/Temp
|
||
05: export TMPDIR=/var/folders/zz/zyxvpxvq6csfxvn_n0002_2m000khn/T/
|
||
06: export Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.8FeUPqmXvW/Render
|
||
07: export TERM_PROGRAM_VERSION=3.0.10
|
||
08: export TERM_SESSION_ID=w0t0p1:84CB76AE-945F-4CD5-ACBE-549A47629FD9
|
||
09: export ZSH=/Users/ariard/.oh-my-zsh
|
||
10: export USER=ariard
|
||
11: export SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.4g7aCI4G8f/Listeners
|
||
12: export __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
|
||
13: export PAGER=less
|
||
14: export TMUX=/private/tmp/tmux-18965/default,63199,0
|
||
15: export HOMEBREW_CACHE=/tmp/ariard/Homebrew/Caches
|
||
16: export LSCOLORS=Gxfxcxdxbxegedabagacad
|
||
17: export PATH=/Users/ariard/.brew/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/munki://Users/ariard/local/bin
|
||
18: export MAIL=ariard@student.42.fr
|
||
19: export PWD=/Users/ariard/Projects/42sh/42shelltest-tmp/tmp
|
||
20: export LANG=en_US.UTF-8
|
||
21: export ITERM_PROFILE=Default
|
||
22: export XPC_FLAGS=0x0
|
||
23: export TMUX_PANE=%2
|
||
24: export XPC_SERVICE_NAME=0
|
||
25: export SHLVL=4
|
||
26: export HOME=/Users/ariard
|
||
27: export COLORFGBG=7;0
|
||
28: export ITERM_SESSION_ID=w0t0p1:84CB76AE-945F-4CD5-ACBE-549A47629FD9
|
||
29: export LOGNAME=ariard
|
||
30: export LESS=-R
|
||
31: export LC_CTYPE=en_US.UTF-8
|
||
32: export TMUX_PLUGIN_MANAGER_PATH=/Users/ariard/.tmux/plugins/
|
||
33: export OLDPWD=/Users/ariard/Projects/42sh/42shelltest-tmp
|
||
34: export _=../../42sh
|
||
35: export ?=0
|
||
36: ------------------------------
|
||
37: TERM_PROGRAM=iTerm.app
|
||
38: TERM=screen-256color
|
||
39: SHELL=/bin/zsh
|
||
40: HOMEBREW_TEMP=/tmp/ariard/Homebrew/Temp
|
||
41: TMPDIR=/var/folders/zz/zyxvpxvq6csfxvn_n0002_2m000khn/T/
|
||
42: Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.8FeUPqmXvW/Render
|
||
43: TERM_PROGRAM_VERSION=3.0.10
|
||
44: TERM_SESSION_ID=w0t0p1:84CB76AE-945F-4CD5-ACBE-549A47629FD9
|
||
45: ZSH=/Users/ariard/.oh-my-zsh
|
||
46: USER=ariard
|
||
47: SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.4g7aCI4G8f/Listeners
|
||
48: __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
|
||
49: PAGER=less
|
||
50: TMUX=/private/tmp/tmux-18965/default,63199,0
|
||
51: HOMEBREW_CACHE=/tmp/ariard/Homebrew/Caches
|
||
52: LSCOLORS=Gxfxcxdxbxegedabagacad
|
||
53: PATH=/Users/ariard/.brew/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/munki://Users/ariard/local/bin
|
||
54: MAIL=ariard@student.42.fr
|
||
55: PWD=/Users/ariard/Projects/42sh/42shelltest-tmp/tmp
|
||
56: LANG=en_US.UTF-8
|
||
57: ITERM_PROFILE=Default
|
||
58: XPC_FLAGS=0x0
|
||
59: TMUX_PANE=%2
|
||
60: XPC_SERVICE_NAME=0
|
||
61: SHLVL=4
|
||
62: HOME=/Users/ariard
|
||
63: COLORFGBG=7;0
|
||
64: ITERM_SESSION_ID=w0t0p1:84CB76AE-945F-4CD5-ACBE-549A47629FD9
|
||
65: LOGNAME=ariard
|
||
66: LESS=-R
|
||
67: LC_CTYPE=en_US.UTF-8
|
||
68: TMUX_PLUGIN_MANAGER_PATH=/Users/ariard/.tmux/plugins/
|
||
69: OLDPWD=/Users/ariard/Projects/42sh/42shelltest-tmp
|
||
70: _=../../42sh
|
||
71: ?=0
|
||
72: ------------------------------
|
||
73: TOTAL ENVIRONMENT VARIABLES: 35[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/builtins/export/options/004-export-n-param[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that using the builtin `export` with option `-n` results in a removed environment variable.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: export TOKEN201703181458_NAME=TOKEN201703181458_VALUE[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: export -n TOKEN201703181458_NAME
|
||
02: export
|
||
03: ./display_env[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `TOKEN201703181458_NAME`[0m
|
||
[38;5;239m 01: ------------------------------
|
||
02: TERM_PROGRAM=iTerm.app
|
||
03: TERM=screen-256color
|
||
04: SHELL=/bin/zsh
|
||
05: HOMEBREW_TEMP=/tmp/ariard/Homebrew/Temp
|
||
06: TMPDIR=/var/folders/zz/zyxvpxvq6csfxvn_n0002_2m000khn/T/
|
||
07: Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.8FeUPqmXvW/Render
|
||
08: TERM_PROGRAM_VERSION=3.0.10
|
||
09: OLDPWD=/Users/ariard/Projects/42sh/42shelltest-tmp
|
||
10: TERM_SESSION_ID=w0t0p1:84CB76AE-945F-4CD5-ACBE-549A47629FD9
|
||
11: ZSH=/Users/ariard/.oh-my-zsh
|
||
12: USER=ariard
|
||
13: SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.4g7aCI4G8f/Listeners
|
||
14: __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
|
||
15: PAGER=less
|
||
16: TMUX=/private/tmp/tmux-18965/default,63199,0
|
||
17: HOMEBREW_CACHE=/tmp/ariard/Homebrew/Caches
|
||
18: LSCOLORS=Gxfxcxdxbxegedabagacad
|
||
19: PATH=/Users/ariard/.brew/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/munki://Users/ariard/local/bin
|
||
20: MAIL=ariard@student.42.fr
|
||
21: PWD=/Users/ariard/Projects/42sh/42shelltest-tmp/tmp
|
||
22: LANG=en_US.UTF-8
|
||
23: ITERM_PROFILE=Default
|
||
24: XPC_FLAGS=0x0
|
||
25: TMUX_PANE=%2
|
||
26: XPC_SERVICE_NAME=0
|
||
27: SHLVL=4
|
||
28: HOME=/Users/ariard
|
||
29: COLORFGBG=7;0
|
||
30: ITERM_SESSION_ID=w0t0p1:84CB76AE-945F-4CD5-ACBE-549A47629FD9
|
||
31: LOGNAME=ariard
|
||
32: LESS=-R
|
||
33: TOKEN201703181458_NAME=
|
||
34: LC_CTYPE=en_US.UTF-8
|
||
35: TMUX_PLUGIN_MANAGER_PATH=/Users/ariard/.tmux/plugins/
|
||
36: _=../../42sh
|
||
37: ?=0
|
||
38: ------------------------------
|
||
39: TOTAL ENVIRONMENT VARIABLES: 36[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: ../../42sh: invalid option -n[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/escaping/mixed/globbing/brace-expansion/002-it-expands-braces-1[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that using multiple escape characters `\\` results in a good behavior with the brace expansion.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout \\{1..2}[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^\1@\2@$`[0m
|
||
[38;5;239m 01: \{1..2}@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/escaping/mixed/globbing/brace-expansion/003-it-expands-braces-2[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that using multiple escape characters `\\` results in a good behavior with the brace expansion.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout \\\{1..2} \\\\{1..2} \\\\\{1..2} \\\\\\{1..2}[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^\[{]1..2}@\\1@\\2@\\[{]1..2}@\\\1@\\\2@$`[0m
|
||
[38;5;239m 01: \{1..2}@\\{1..2}@\\{1..2}@\\\{1..2}@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/escaping/mixed/globbing/bracket-expansion/001-it-does-not-expand-brackets[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that escaping brackets does not result in an expansion process.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "./test_globbing"
|
||
02: mkdir "./test_globbing"
|
||
03: cd "./test_globbing"
|
||
04: touch 'a' 'b' 'c'[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout \[abc] [abc\] \[abc\][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^[[]abc]@[[]abc]@[[]abc]@$`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: ./lib/main.sh: line 102: ../../42sh: No such file or directory[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/escaping/mixed/globbing/bracket-expansion/002-escaped-inversion-mark[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the brackets expansion works with an inversion mark `!` or `^` as pattern.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "./test_globbing"
|
||
02: mkdir "./test_globbing"
|
||
03: cd "./test_globbing"
|
||
04: touch 'a' 'b' 'c' 'd' 'e' 'f' '!' '^'[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout [\!abc]
|
||
02: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout [\^abc][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `!@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `[\^]@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `a@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `b@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `c@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `d@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `e@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `f@`[0m
|
||
[31m[1;33m WARNING might match_regex `^!@a@b@c@$`[0m
|
||
[31m[1;33m WARNING might match_regex `^[\^]@a@b@c@$`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: ./lib/main.sh: line 102: ../../42sh: No such file or directory[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/escaping/mixed/globbing/bracket-expansion/003-it-takes-escaped-bracket-as-pattern-character[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that a closing bracket ']' may be escaped in a backet expansion pattern.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "./test_globbing"
|
||
02: mkdir "./test_globbing"
|
||
03: cd "./test_globbing"
|
||
04: touch 'a' 'b' 'c' 'd' 'e' 'f' ']'[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout [abc\]def]
|
||
02: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout [abc\\\]def]
|
||
03: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout [abc\\\\\]def]
|
||
04: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout [abc\\\\\\\]def][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `a@` 4 times[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `b@` 4 times[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `c@` 4 times[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `]@` 4 times[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `d@` 4 times[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `e@` 4 times[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `f@` 4 times[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `def`[0m
|
||
[31m[1;33m WARNING might match_regex `^]@a@b@c@d@e@f@$`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: ./lib/main.sh: line 102: ../../42sh: No such file or directory[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/brace-expansion/ascii-range/001-simple-ascending-1[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the brace expansion does work with an ASCII range in ascending order.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout {a..e}[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^a@b@c@d@e@$`[0m
|
||
[38;5;239m 01: {a..e}@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/brace-expansion/ascii-range/002-simple-ascending-2[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the brace expansion does work with an ASCII range in ascending order.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout TOKEN201703181458{a..e}TOKEN201703181458[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703181458aTOKEN201703181458@TOKEN201703181458bTOKEN201703181458@TOKEN201703181458cTOKEN201703181458@TOKEN201703181458dTOKEN201703181458@TOKEN201703181458eTOKEN201703181458@$`[0m
|
||
[38;5;239m 01: TOKEN201703181458{a..e}TOKEN201703181458@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/brace-expansion/ascii-range/003-simple-ascending-3[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the brace expansion does work with an ASCII range in ascending order.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout {A..E}[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^A@B@C@D@E@$`[0m
|
||
[38;5;239m 01: {A..E}@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/brace-expansion/ascii-range/004-simple-descending-1[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the brace expansion does work with an ASCII range in descending order.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout {E..A}[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^E@D@C@B@A@$`[0m
|
||
[38;5;239m 01: {E..A}@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/brace-expansion/ascii-range/005-simple-descending-2[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the brace expansion does work with an ASCII range in descending order.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout TOKEN201703181458{E..A}TOKEN201703181458[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703181458ETOKEN201703181458@TOKEN201703181458DTOKEN201703181458@TOKEN201703181458CTOKEN201703181458@TOKEN201703181458BTOKEN201703181458@TOKEN201703181458ATOKEN201703181458@$`[0m
|
||
[38;5;239m 01: TOKEN201703181458{E..A}TOKEN201703181458@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/brace-expansion/ascii-range/006-simple-descending-3[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the brace expansion does work with an ASCII range in descending order.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout TOKEN201703181458{e..a}[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703181458e@TOKEN201703181458d@TOKEN201703181458c@TOKEN201703181458b@TOKEN201703181458a@$`[0m
|
||
[38;5;239m 01: TOKEN201703181458{e..a}@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/brace-expansion/ascii-range/007-identical-start-and-end[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the brace expansion does work with a range of single ASCII value.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout {f..f}[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^f@$`[0m
|
||
[38;5;239m 01: {f..f}@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/brace-expansion/ascii-range/008-multiple-1[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that brace expansion may be performed with multiple brace patterns.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout {a..b}{c..d}{e..f}[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^ace@acf@ade@adf@bce@bcf@bde@bdf@$`[0m
|
||
[38;5;239m 01: {a..b}{c..d}{e..f}@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/brace-expansion/ascii-range/009-multiple-2[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that brace expansion may be performed with multiple brace patterns.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout TOKEN201703181458{a..b}abc{Z..X}def{s..s}[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703181458aabcZdefs@TOKEN201703181458aabcYdefs@TOKEN201703181458aabcXdefs@TOKEN201703181458babcZdefs@TOKEN201703181458babcYdefs@TOKEN201703181458babcXdefs@$`[0m
|
||
[38;5;239m 01: TOKEN201703181458{a..b}abc{Z..X}def{s..s}@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/brace-expansion/ascii-range/010-big-range[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that brace expansion may be performed with a big numeric range.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout {A..z}[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^A@B@C@D@E@F@G@H@I@J@K@L@M@N@O@P@Q@R@S@T@U@V@W@X@Y@Z@.+@.?@.+@.+@_@.+@a@b@c@d@e@f@g@h@i@j@k@l@m@n@o@p@q@r@s@t@u@v@w@x@y@z@$`[0m
|
||
[38;5;239m 01: {A..z}@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/brace-expansion/numeric-range/001-simple-ascending-1[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the brace expansion does work with a numeric range in ascending order.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout {1..5}[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^1@2@3@4@5@$`[0m
|
||
[38;5;239m 01: {1..5}@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/brace-expansion/numeric-range/002-simple-ascending-2[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the brace expansion does work with a numeric range in ascending order.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout TOKEN201703181458{1..5}TOKEN201703181458[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN2017031814581TOKEN201703181458@TOKEN2017031814582TOKEN201703181458@TOKEN2017031814583TOKEN201703181458@TOKEN2017031814584TOKEN201703181458@TOKEN2017031814585TOKEN201703181458@$`[0m
|
||
[38;5;239m 01: TOKEN201703181458{1..5}TOKEN201703181458@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/brace-expansion/numeric-range/003-simple-ascending-3[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the brace expansion does work with a numeric range in ascending order.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout TOKEN201703181458{1..+5}[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN2017031814581@TOKEN2017031814582@TOKEN2017031814583@TOKEN2017031814584@TOKEN2017031814585@$`[0m
|
||
[38;5;239m 01: TOKEN201703181458{1..+5}@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/brace-expansion/numeric-range/004-simple-ascending-4[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the brace expansion does work with a numeric range in ascending order.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout {-5..0}TOKEN201703181458[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^-5TOKEN201703181458@-4TOKEN201703181458@-3TOKEN201703181458@-2TOKEN201703181458@-1TOKEN201703181458@0TOKEN201703181458@$`[0m
|
||
[38;5;239m 01: {-5..0}TOKEN201703181458@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/brace-expansion/numeric-range/005-simple-ascending-5[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the brace expansion does work with a numeric range in ascending order.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout {-100..-98}TOKEN201703181458[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^-100TOKEN201703181458@-99TOKEN201703181458@-98TOKEN201703181458@$`[0m
|
||
[38;5;239m 01: {-100..-98}TOKEN201703181458@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/brace-expansion/numeric-range/006-simple-descending-1[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the brace expansion does work with a numeric range in descending order.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout {5..1}[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^5@4@3@2@1@$`[0m
|
||
[38;5;239m 01: {5..1}@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/brace-expansion/numeric-range/007-simple-descending-2[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the brace expansion does work with a numeric range in descending order.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout TOKEN201703181458{5..1}TOKEN201703181458[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN2017031814585TOKEN201703181458@TOKEN2017031814584TOKEN201703181458@TOKEN2017031814583TOKEN201703181458@TOKEN2017031814582TOKEN201703181458@TOKEN2017031814581TOKEN201703181458@$`[0m
|
||
[38;5;239m 01: TOKEN201703181458{5..1}TOKEN201703181458@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/brace-expansion/numeric-range/008-simple-descending-3[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the brace expansion does work with a numeric range in descending order.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout TOKEN201703181458{5..+1}[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN2017031814585@TOKEN2017031814584@TOKEN2017031814583@TOKEN2017031814582@TOKEN2017031814581@$`[0m
|
||
[38;5;239m 01: TOKEN201703181458{5..+1}@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/brace-expansion/numeric-range/009-simple-descending-4[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the brace expansion does work with a numeric range in descending order.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout {0..-5}TOKEN201703181458[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^0TOKEN201703181458@-1TOKEN201703181458@-2TOKEN201703181458@-3TOKEN201703181458@-4TOKEN201703181458@-5TOKEN201703181458@$`[0m
|
||
[38;5;239m 01: {0..-5}TOKEN201703181458@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/brace-expansion/numeric-range/010-simple-descending-5[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the brace expansion does work with a numeric range in descending order.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout {-98..-100}TOKEN201703181458[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^-98TOKEN201703181458@-99TOKEN201703181458@-100TOKEN201703181458@$`[0m
|
||
[38;5;239m 01: {-98..-100}TOKEN201703181458@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/brace-expansion/numeric-range/011-identical-positive-start-and-end[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the brace expansion does work with a range of single value.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout {42..42}[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^42@$`[0m
|
||
[38;5;239m 01: {42..42}@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/brace-expansion/numeric-range/012-identical-negative-start-and-end[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the brace expansion does work with a range of single value.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout {-42..-42}[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^-42@$`[0m
|
||
[38;5;239m 01: {-42..-42}@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/brace-expansion/numeric-range/013-multiple-1[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that brace expansion may be performed with multiple brace patterns.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout {1..2}{3..4}{5..6}[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^135@136@145@146@235@236@245@246@$`[0m
|
||
[38;5;239m 01: {1..2}{3..4}{5..6}@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/brace-expansion/numeric-range/014-multiple-2[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that brace expansion may be performed with multiple brace patterns.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout TOKEN201703181458{1..2}abc{-50..-53}def{0..0}[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN2017031814581abc-50def0@TOKEN2017031814581abc-51def0@TOKEN2017031814581abc-52def0@TOKEN2017031814581abc-53def0@TOKEN2017031814582abc-50def0@TOKEN2017031814582abc-51def0@TOKEN2017031814582abc-52def0@TOKEN2017031814582abc-53def0@$`[0m
|
||
[38;5;239m 01: TOKEN201703181458{1..2}abc{-50..-53}def{0..0}@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/brace-expansion/numeric-range/015-big-range[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that brace expansion may be performed with a big numeric range.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout {-100..100}[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^-100@-99@-98@-97@-96@-95@-94@-93@-92@-91@-90@-89@-88@-87@-86@-85@-84@-83@-82@-81@-80@-79@-78@-77@-76@-75@-74@-73@-72@-71@-70@-69@-68@-67@-66@-65@-64@-63@-62@-61@-60@-59@-58@-57@-56@-55@-54@-53@-52@-51@-50@-49@-48@-47@-46@-45@-44@-43@-42@-41@-40@-39@-38@-37@-36@-35@-34@-33@-32@-31@-30@-29@-28@-27@-26@-25@-24@-23@-22@-21@-20@-19@-18@-17@-16@-15@-14@-13@-12@-11@-10@-9@-8@-7@-6@-5@-4@-3@-2@-1@0@1@2@3@4@5@6@7@8@9@10@11@12@13@14@15@16@17@18@19@20@21@22@23@24@25@26@27@28@29@30@31@32@33@34@35@36@37@38@39@40@41@42@43@44@45@46@47@48@49@50@51@52@53@54@55@56@57@58@59@60@61@62@63@64@65@66@67@68@69@70@71@72@73@74@75@76@77@78@79@80@81@82@83@84@85@86@87@88@89@90@91@92@93@94@95@96@97@98@99@100@$`[0m
|
||
[38;5;239m 01: {-100..100}@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/bracket-expansion/multi/001-range-and-char[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that brackets expansion works with a range and 2 characters as pattern.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "./test_globbing"
|
||
02: mkdir "./test_globbing"
|
||
03: cd "./test_globbing"
|
||
04: touch '1' '2' '3' 'a' 'b' 'z' 'C' '-' '[a-z-2]' 'a-z-2'[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout [a-z-2][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `-@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `2@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `a@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `b@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `z@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `1@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `3@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `C@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `[[]a-z-2]@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `a-z-2@`[0m
|
||
[31m[1;33m WARNING might match_regex `^-@2@a@b@z@$`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: ./lib/main.sh: line 102: ../../42sh: No such file or directory[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/bracket-expansion/multi/002-reverse-range-and-chars[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that brackets expansion works with 2 patterns.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "./test_globbing"
|
||
02: mkdir "./test_globbing"
|
||
03: cd "./test_globbing"
|
||
04: touch 'a4' 'a3' 'a2' 'a42' 'a[42]' 'z4' 'z3' 'z2' 'z42' 'z[42]' '42'[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout [!a-y][42]
|
||
02: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout [^a-y][42][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `42@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `z4@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `z2@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `z3@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `z42@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `z[[]42]@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `a3@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `a42@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `a[[]42]@`[0m
|
||
[31m[1;33m WARNING might match_regex `^42@z2@z4@$`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: ./lib/main.sh: line 102: ../../42sh: No such file or directory[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/bracket-expansion/multi/003-reverse-multi-hard[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check how the value inside multiple brackets are parsed with bracket as pattern.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "./test_globbing"
|
||
02: mkdir "./test_globbing"
|
||
03: cd "./test_globbing"
|
||
04: touch '][' 'a[' '1['[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout [!]az][[]
|
||
02: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout [^]az][[][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `1[[]@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `][[]@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `a[[]@`[0m
|
||
[31m[1;33m WARNING might match_regex `^1[[]@$`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: ./lib/main.sh: line 102: ../../42sh: No such file or directory[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/bracket-expansion/multi/004-simple-bracket+char+range[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to control if 2 patterns splited by a minus characters can be match.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "./test_globbing"
|
||
02: mkdir "./test_globbing"
|
||
03: cd "./test_globbing"
|
||
04: touch 'a-0' 'a-1' 'a-2' 'b-0' 'b-1' 'b-2' 'Z-0' 'Z-1' 'Z-2' 'a1' 'Z9' 'D4'[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout [aZ]-[1-9][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `a-1@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `a-2@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `Z-1@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `Z-2@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `a-0@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `b-0@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `b-1@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `b-2@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `a1@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `Z9@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `D4@`[0m
|
||
[31m[1;33m WARNING might match_regex `^Z-1@Z-2@a-1@a-2@$`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: ./lib/main.sh: line 102: ../../42sh: No such file or directory[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/bracket-expansion/not/001-simple-opposit-match[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the brackets expansion works with the inversion mark `!` or `^`. The expected behavior is the reversion of the following pattern.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "./test_globbing"
|
||
02: mkdir "./test_globbing"
|
||
03: cd "./test_globbing"
|
||
04: touch 'a' '1' 'Z' 'd' 'e' 'f' 'def'[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout [!a1Z]
|
||
02: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout [^a1Z][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `d@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `e@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `f@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `def@`[0m
|
||
[31m[1;33m WARNING might match_regex `^d@e@f@$`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: ./lib/main.sh: line 102: ../../42sh: No such file or directory[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/bracket-expansion/not/002-simple-opposite-range[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the brackets expansion works with the inversion mark `!` or `^`. The expected behavior is the reversion of the following pattern.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "./test_globbing"
|
||
02: mkdir "./test_globbing"
|
||
03: cd "./test_globbing"
|
||
04: touch 'a' 'b' 'c' 'z' '1' '2' '3' '42'[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout [!a-z]
|
||
02: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout [^a-z][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `1@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `2@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `3@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `42@`[0m
|
||
[31m[1;33m WARNING might match_regex `^1@2@3@$`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: ./lib/main.sh: line 102: ../../42sh: No such file or directory[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/bracket-expansion/range-pattern/001-alpha-range[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the brackets expansion works with the following pattern `[a-z]`.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "./test_globbing"
|
||
02: mkdir "./test_globbing"
|
||
03: cd "./test_globbing"
|
||
04: touch 'a' 'f' 'z' 'A' '1' '[a-z]'[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout [a-z][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `a@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `f@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `z@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `A@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `1@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `[[]a-z]@`[0m
|
||
[31m[1;33m WARNING might match_regex `^a@f@z@$`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: ./lib/main.sh: line 102: ../../42sh: No such file or directory[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/bracket-expansion/range-pattern/002-numeric-range[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the brackets expansion works with the following pattern `[0-9]`.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "./test_globbing"
|
||
02: mkdir "./test_globbing"
|
||
03: cd "./test_globbing"
|
||
04: touch '4' '2' '1' '9' 'a' 'C' '[0-9]'[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout [0-9][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `1@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `2@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `4@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `9@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `a@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `C@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `[[]0-9]@`[0m
|
||
[31m[1;33m WARNING might match_regex `^1@2@4@9@$`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: ./lib/main.sh: line 102: ../../42sh: No such file or directory[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/bracket-expansion/range-pattern/003-ascii-range-1[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check if the bracket expansion works with the following pattern []-z].
|
||
One test use the following range which is the default range for bash:
|
||
< > , ; : ! ' " ( ) [ ] { } @ $ \ # % 1 2 3 4 5 6 7 8 9 a A b B c C d D e E f F g G h H i I j J k K l L m M n N o O p P q Q r R s S t T u U v V w W x X y Y z
|
||
The other use the ascii value, which does make more sense.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "./test_globbing"
|
||
02: mkdir "./test_globbing"
|
||
03: cd "./test_globbing"
|
||
04: touch '2' 'a' 'B' 'c' 'Z' '[' ']' '[]-z]'[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout []-z][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `a@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `c@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `]@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `2@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `B@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `Z@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `[[]@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `[[]]-z]@`[0m
|
||
[31m[1;33m WARNING might match_regex `^]@a@c@$`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: ./lib/main.sh: line 102: ../../42sh: No such file or directory[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/bracket-expansion/range-pattern/004-ascii-range-2[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the brackets expansion works with the following pattern `[1-z]`.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "./test_globbing"
|
||
02: mkdir "./test_globbing"
|
||
03: cd "./test_globbing"
|
||
04: touch '2' 'a' 'B' 'c' 'Z' ']' '[' '[1-z]' '1-z' '-'[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout [1-z][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `2@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `a@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `B@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `c@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `Z@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `]@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `[[]@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `-@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `1-z@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `[[]1-z]@`[0m
|
||
[31m[1;33m WARNING might match_regex `^2@B@Z@[[]@]@a@c@$`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: ./lib/main.sh: line 102: ../../42sh: No such file or directory[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/bracket-expansion/simple-pattern/001-simple-list[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the brackets expansion works with a simple list of characters as pattern.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "./test_globbing"
|
||
02: mkdir "./test_globbing"
|
||
03: cd "./test_globbing"
|
||
04: touch 'a' 'b' 'c' 'd' 'e' 'f' '[bca]'[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout [bca][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `a@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `b@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `c@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `d@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `e@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `f@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `[[]bca]@`[0m
|
||
[31m[1;33m WARNING might match_regex `^a@b@c@$`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: ./lib/main.sh: line 102: ../../42sh: No such file or directory[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/bracket-expansion/simple-pattern/002-multi-bracket[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the brackets expansion works with multiple brackets patterns.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "./test_globbing"
|
||
02: mkdir "./test_globbing"
|
||
03: cd "./test_globbing"
|
||
04: touch "TOKEN201703181458abcd" "TOKEN201703181458abc" "TOKEN201703181458abdc" "TOKEN201703181458b" "TOKEN201703181458" "TOKEN201703181458\[a]b\[c]\[d]"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout TOKEN201703181458[a]b[c][d][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703181458abcd@$`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `TOKEN201703181458abc@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `TOKEN201703181458abdc@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `TOKEN201703181458b@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `TOKEN201703181458@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `TOKEN201703181458[[]a]b[[]c][[]d]@`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: ./lib/main.sh: line 102: ../../42sh: No such file or directory[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/bracket-expansion/simple-pattern/003-brackets-as-pattern[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the brackets expansion works with an opening bracket `[` and a closing bracket `]` as pattern.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "./test_globbing"
|
||
02: mkdir "./test_globbing"
|
||
03: cd "./test_globbing"
|
||
04: touch '[' ']' 'a' 'Z' '[][]'[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout [][][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `[[]@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `]@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `a@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `Z@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `[[]][[]]@`[0m
|
||
[31m[1;33m WARNING might match_regex `^[[]@]@$`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: ./lib/main.sh: line 102: ../../42sh: No such file or directory[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/bracket-expansion/simple-pattern/004-multi-bracket-multi-char[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to match a file name which contain a bracket as first character.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "./test_globbing"
|
||
02: mkdir "./test_globbing"
|
||
03: cd "./test_globbing"
|
||
04: touch 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 21 23 24 25 26 27 28 29 ']' '[' '[12][34]' '1234'[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout [12][34][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `13@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `14@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `23@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `24@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `0[0-9]@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `1[0-2]@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `1[5-9]@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `2[0-2]@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `2[5-9]@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `[[]@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `]@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `[[]12][[]34]@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `1234@`[0m
|
||
[31m[1;33m WARNING might match_regex `^13@14@23@24@$`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: ./lib/main.sh: line 102: ../../42sh: No such file or directory[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/bracket-expansion/single-char-pattern/001-single-char[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the brackets expansion works with a single character as pattern.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "./test_globbing"
|
||
02: mkdir "./test_globbing"
|
||
03: cd "./test_globbing"
|
||
04: touch 'a' 'b' '[a]'[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout [a][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `a@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `b@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `[[]a]@`[0m
|
||
[31m[1;33m WARNING might match_regex `^a@$`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: ./lib/main.sh: line 102: ../../42sh: No such file or directory[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/bracket-expansion/single-char-pattern/002-closing-bracket-char[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the brackets expansion works with a closing bracket `]` as pattern.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "./test_globbing"
|
||
02: mkdir "./test_globbing"
|
||
03: cd "./test_globbing"
|
||
04: touch ']' '[]]'[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout []][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `]@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `[[]]]@`[0m
|
||
[31m[1;33m WARNING might match_regex `^]@$`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: ./lib/main.sh: line 102: ../../42sh: No such file or directory[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/bracket-expansion/single-char-pattern/003-opening-bracket-char[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the brackets expansion works with an opening bracket `[` as pattern.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "./test_globbing"
|
||
02: mkdir "./test_globbing"
|
||
03: cd "./test_globbing"
|
||
04: touch '[' '[[]'[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout [[][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `[[]@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `[[][[]]@`[0m
|
||
[31m[1;33m WARNING might match_regex `^[[]@$`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: ./lib/main.sh: line 102: ../../42sh: No such file or directory[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/local-variable/002-declare-and-expand-2[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that an empty variable is not expanded as an empty string and results in any new argument in the command line.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: TOKEN201703181458_NAME=
|
||
02: ./write_on_stdout_and_stderr $TOKEN201703181458_NAME $TOKEN201703181458_NAME[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `write on stdout`[0m
|
||
[38;5;239m 01: [0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `write on stderr`[0m
|
||
[38;5;239m 01: [0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/local-variable/003-unknown-variable-does-not-result-in-new-argument[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that an unknown variable is not expanded as an empty string and results in any new argument in the command line.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: unset "TOKEN201703181458_UNKNOWN"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_on_stdout $TOKEN201703181458_UNKNOWN TOKEN201703181458_DISPLAYED[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `TOKEN201703181458_DISPLAYED`[0m
|
||
[38;5;239m 01: write on stdout[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/local-variable/004-existing-variable-in-environment-1[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is initialize a local variable named as an environment variable and check if it's update the existing environment variable.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: export "TOKEN201703181458_NAME=TOKEN201703181458_VALUE_OLD"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: TOKEN201703181458_NAME=TOKEN201703181458_VALUE_NEW
|
||
02: ./display_env[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703181458_NAME=TOKEN201703181458_VALUE_NEW$`[0m
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `^TOKEN201703181458_NAME=TOKEN201703181458_VALUE_OLD$`[0m
|
||
[38;5;239m 01: ------------------------------
|
||
02: TERM_PROGRAM=iTerm.app
|
||
03: TERM=screen-256color
|
||
04: SHELL=/bin/zsh
|
||
05: HOMEBREW_TEMP=/tmp/ariard/Homebrew/Temp
|
||
06: TMPDIR=/var/folders/zz/zyxvpxvq6csfxvn_n0002_2m000khn/T/
|
||
07: Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.8FeUPqmXvW/Render
|
||
08: TERM_PROGRAM_VERSION=3.0.10
|
||
09: OLDPWD=/Users/ariard/Projects/42sh/42shelltest-tmp
|
||
10: TERM_SESSION_ID=w0t0p1:84CB76AE-945F-4CD5-ACBE-549A47629FD9
|
||
11: ZSH=/Users/ariard/.oh-my-zsh
|
||
12: USER=ariard
|
||
13: SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.4g7aCI4G8f/Listeners
|
||
14: __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
|
||
15: PAGER=less
|
||
16: TMUX=/private/tmp/tmux-18965/default,63199,0
|
||
17: HOMEBREW_CACHE=/tmp/ariard/Homebrew/Caches
|
||
18: LSCOLORS=Gxfxcxdxbxegedabagacad
|
||
19: PATH=/Users/ariard/.brew/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/munki://Users/ariard/local/bin
|
||
20: MAIL=ariard@student.42.fr
|
||
21: PWD=/Users/ariard/Projects/42sh/42shelltest-tmp/tmp
|
||
22: LANG=en_US.UTF-8
|
||
23: ITERM_PROFILE=Default
|
||
24: XPC_FLAGS=0x0
|
||
25: TMUX_PANE=%2
|
||
26: XPC_SERVICE_NAME=0
|
||
27: SHLVL=4
|
||
28: HOME=/Users/ariard
|
||
29: COLORFGBG=7;0
|
||
30: ITERM_SESSION_ID=w0t0p1:84CB76AE-945F-4CD5-ACBE-549A47629FD9
|
||
31: LOGNAME=ariard
|
||
32: LESS=-R
|
||
33: TOKEN201703181458_NAME=TOKEN201703181458_VALUE_OLD
|
||
34: LC_CTYPE=en_US.UTF-8
|
||
35: TMUX_PLUGIN_MANAGER_PATH=/Users/ariard/.tmux/plugins/
|
||
36: _=../../42sh
|
||
37: ?=0
|
||
38: ------------------------------
|
||
39: TOTAL ENVIRONMENT VARIABLES: 36[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/local-variable/005-existing-variable-in-environment-2[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is initialize a local variable named as an environment variable and check if it's update the existing environment variable.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: export "TOKEN201703181458_NAME=TOKEN201703181458_VALUE"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: TOKEN201703181458_NAME=
|
||
02: ./display_env[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703181458_NAME=$`[0m
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `^TOKEN201703181458_NAME=TOKEN201703181458_VALUE$`[0m
|
||
[38;5;239m 01: ------------------------------
|
||
02: TERM_PROGRAM=iTerm.app
|
||
03: TERM=screen-256color
|
||
04: SHELL=/bin/zsh
|
||
05: HOMEBREW_TEMP=/tmp/ariard/Homebrew/Temp
|
||
06: TMPDIR=/var/folders/zz/zyxvpxvq6csfxvn_n0002_2m000khn/T/
|
||
07: Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.8FeUPqmXvW/Render
|
||
08: TERM_PROGRAM_VERSION=3.0.10
|
||
09: OLDPWD=/Users/ariard/Projects/42sh/42shelltest-tmp
|
||
10: TERM_SESSION_ID=w0t0p1:84CB76AE-945F-4CD5-ACBE-549A47629FD9
|
||
11: ZSH=/Users/ariard/.oh-my-zsh
|
||
12: USER=ariard
|
||
13: SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.4g7aCI4G8f/Listeners
|
||
14: __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
|
||
15: PAGER=less
|
||
16: TMUX=/private/tmp/tmux-18965/default,63199,0
|
||
17: HOMEBREW_CACHE=/tmp/ariard/Homebrew/Caches
|
||
18: LSCOLORS=Gxfxcxdxbxegedabagacad
|
||
19: PATH=/Users/ariard/.brew/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/munki://Users/ariard/local/bin
|
||
20: MAIL=ariard@student.42.fr
|
||
21: PWD=/Users/ariard/Projects/42sh/42shelltest-tmp/tmp
|
||
22: LANG=en_US.UTF-8
|
||
23: ITERM_PROFILE=Default
|
||
24: XPC_FLAGS=0x0
|
||
25: TMUX_PANE=%2
|
||
26: XPC_SERVICE_NAME=0
|
||
27: SHLVL=4
|
||
28: HOME=/Users/ariard
|
||
29: COLORFGBG=7;0
|
||
30: ITERM_SESSION_ID=w0t0p1:84CB76AE-945F-4CD5-ACBE-549A47629FD9
|
||
31: LOGNAME=ariard
|
||
32: LESS=-R
|
||
33: TOKEN201703181458_NAME=TOKEN201703181458_VALUE
|
||
34: LC_CTYPE=en_US.UTF-8
|
||
35: TMUX_PLUGIN_MANAGER_PATH=/Users/ariard/.tmux/plugins/
|
||
36: _=../../42sh
|
||
37: ?=0
|
||
38: ------------------------------
|
||
39: TOTAL ENVIRONMENT VARIABLES: 36[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/local-variable/007-multiple-declaration-at-a-time[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that declaring multiple variables in the same command line does work.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: TOKEN201703181458_NAME1=TOKEN201703181458_VALUE1 TOKEN201703181458_NAME2=TOKEN201703181458_VALUE2 TOKEN201703181458_NAME3=TOKEN201703181458_VALUE3
|
||
02: ./write_on_stdout_and_stderr $TOKEN201703181458_NAME1 $TOKEN201703181458_NAME1
|
||
03: ./write_on_stdout $TOKEN201703181458_NAME2
|
||
04: ./write_on_stderr $TOKEN201703181458_NAME3[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `^TOKEN201703181458_VALUE1$`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703181458_VALUE2$`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `^TOKEN201703181458_VALUE3$`[0m
|
||
[38;5;239m 01: TOKEN201703181458_VALUE1
|
||
02: [0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `^TOKEN201703181458_VALUE1$`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `^TOKEN201703181458_VALUE2$`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703181458_VALUE3$`[0m
|
||
[38;5;239m 01: TOKEN201703181458_VALUE1
|
||
02: [0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/local-variable/008-multiple-declaration-with-same-name[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that declaring the same variable several times in the same command line does work and does not result in error.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: TOKEN201703181458_NAME=TOKEN201703181458_VALUE1 TOKEN201703181458_NAME=TOKEN201703181458_VALUE2 TOKEN201703181458_NAME=TOKEN201703181458_VALUE3
|
||
02: ./write_on_stdout $TOKEN201703181458_NAME[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `^TOKEN201703181458_VALUE1$`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `^TOKEN201703181458_VALUE2$`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703181458_VALUE3$`[0m
|
||
[38;5;239m 01: TOKEN201703181458_VALUE1[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/local-variable/mixed/inline-environment-variable/001-local-variable-shouldnt-be-set[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that declaring a variable and specifying a binary does not result in local variable declaration but a modified environment for the command.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: TOKEN201703181458_NAME=TOKEN201703181458_VALUE ./display_env
|
||
02: ./write_on_stderr $TOKEN201703181458[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703181458_NAME=TOKEN201703181458_VALUE$`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `TOKEN201703181458_VALUE`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `write on stderr`[0m
|
||
[38;5;239m 01: minishell: command not found: TOKEN201703181458_NAME=TOKEN201703181458_VALUE
|
||
02: [0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/local-variable/mixed/redirections/001-truncating[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that a redirection can be set with a local variable as file name.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -f "TOKEN201703181458_FILENAME"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: TOKEN201703181458_NAME=TOKEN201703181458_FILENAME
|
||
02: ./write_on_stdout TOKEN201703181458_VALUE > $TOKEN201703181458_NAME[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
MISC:
|
||
[31m[38;5;160m FAILURE expected_to create_file `TOKEN201703181458_FILENAME` matching_regex `^TOKEN201703181458_VALUE$`[0m
|
||
[31m[38;5;34m SUCCESS expected_to exit_with_status `0`[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/local-variable/mixed/redirections/002-appending[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that a redirection can be set with a local variable as file name.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -f "TOKEN201703181458_FILENAME"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: TOKEN201703181458_NAME=TOKEN201703181458_FILENAME
|
||
02: ./write_on_stdout TOKEN201703181458_VALUE1 >> $TOKEN201703181458_NAME
|
||
03: ./write_on_stdout TOKEN201703181458_VALUE2 >> $TOKEN201703181458_NAME[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
MISC:
|
||
[31m[38;5;160m FAILURE expected_to create_file `TOKEN201703181458_FILENAME` matching_regex `^TOKEN201703181458_VALUE1$`[0m
|
||
[31m[38;5;160m FAILURE expected_to create_file `TOKEN201703181458_FILENAME` matching_regex `^TOKEN201703181458_VALUE2$`[0m
|
||
[31m[38;5;34m SUCCESS expected_to exit_with_status `0`[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/local-variable/mixed/tilde-expansion/001-process-tilde-expansion[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the tilde expansion `~` in variable declaration.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: export "HOME=/TOKEN201703181458"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: TOKEN201703181458=~
|
||
02: ./write_on_stdout TILDE:$TOKEN201703181458[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `TILDE:~`[0m
|
||
[31m[1;33m WARNING might match_regex `TILDE:/TOKEN201703181458`[0m
|
||
[38;5;239m 01: TILDE:~[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/quoting/double-quotes/mixed/escaping/002-escape-double-quote-2[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that a double-quote `"` may be preserved when it is preceded by a backslash `\\`.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_on_stdout "TOKEN201703181458 \" TOKEN201703181458"[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703181458 ` TOKEN201703181458$`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/quoting/double-quotes/mixed/escaping/003-escape-double-quote-3[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that a double-quote `"` may be preserved when it is preceded by a backslash `\\`.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_on_stdout "\""[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^"$`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/quoting/double-quotes/mixed/escaping/004-it-results-in-error[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that using backslash `\\` before the closing double-quote `"` does result in syntax error.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_on_stdout "TOKEN201703181458\"[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `^TOKEN201703181458$`[0m
|
||
[38;5;239m 01: TOKEN201703181458\[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to_not be_empty[0m
|
||
[31m[1;33m WARNING might match_regex `([Ss]yntax|[Pp]arse) error`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/quoting/double-quotes/mixed/escaping/005-it-does-not-escape-double-quote[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that using two backslashes `\\` before the symbol double-quote `"` does not result in escaped inhibitors.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_on_stdout \\"TOKEN201703181458\\"[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^\TOKEN201703181458\$`[0m
|
||
[38;5;239m 01: \TOKEN201703181458\\[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/quoting/double-quotes/mixed/globbing/brace-expansion/002-it-does-not-expand-braces-2[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that braces expansion is not processed within quoted part of the command line.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout {1..2}"{1..2}"[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `1[{]1..2}@2[{]1..2}@`[0m
|
||
[38;5;239m 01: {1..2}{1..2}@[0m
|
||
|
||
STDERR:
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/quoting/double-quotes/mixed/globbing/brace-expansion/003-it-does-not-expand-braces-3[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that braces expansion is not processed within quoted part of the command line.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout "{1..2}"{1..2}[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `[{]1..2}1@[{]1..2}2@`[0m
|
||
[38;5;239m 01: {1..2}{1..2}@[0m
|
||
|
||
STDERR:
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/quoting/double-quotes/mixed/globbing/brace-expansion/004-it-does-not-expand-braces-4[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that braces expansion is not processed within quoted part of the command line.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout "{1..2}"{1..2}"{1..2}"{1..2}"{1..2}"{1..2}[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `[{]1..2}1[{]1..2}1[{]1..2}1@[{]1..2}1[{]1..2}1[{]1..2}2@[{]1..2}1[{]1..2}2[{]1..2}1@[{]1..2}1[{]1..2}2[{]1..2}2@[{]1..2}2[{]1..2}1[{]1..2}1@[{]1..2}2[{]1..2}1[{]1..2}2@[{]1..2}2[{]1..2}2[{]1..2}1@[{]1..2}2[{]1..2}2[{]1..2}2@`[0m
|
||
[38;5;239m 01: {1..2}{1..2}{1..2}{1..2}{1..2}{1..2}@[0m
|
||
|
||
STDERR:
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/quoting/double-quotes/mixed/globbing/brace-expansion/005-it-does-not-expand-braces-5[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that braces expansion is not processed within quoted part of the command line.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout "{1..2}" {1..2} "{1..2}" "{1..2}"[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `[{]1..2}@1@2@[{]1..2}@[{]1..2}@`[0m
|
||
[38;5;239m 01: {1..2}@{1..2}@{1..2}@{1..2}@[0m
|
||
|
||
STDERR:
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/quoting/double-quotes/mixed/globbing/bracket-expansion/001-it-works-1[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that an argument made with quoted and unquoted parts results in bracket pattern expansion.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "./test_globbing"
|
||
02: mkdir "./test_globbing"
|
||
03: cd "./test_globbing"
|
||
04: touch 'a'[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout ["a"][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `[[]a]@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^a@$`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: ./lib/main.sh: line 102: ../../42sh: No such file or directory[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/quoting/double-quotes/mixed/globbing/bracket-expansion/002-it-works-2[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that an argument made with quoted and unquoted parts results in bracket pattern expansion.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "./test_globbing"
|
||
02: mkdir "./test_globbing"
|
||
03: cd "./test_globbing"
|
||
04: touch 'a' 'b' 'c' 'd' 'e' 'f' 'g' 'h'[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout ["a"bc"def"gh][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `a@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `b@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `c@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `d@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `e@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `f@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `g@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `h@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `bc`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `def`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `gh`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: ./lib/main.sh: line 102: ../../42sh: No such file or directory[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/quoting/mixed/globbing/brace-expansion/001-it-does-not-expand-braces-1[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that braces expansion is not processed within quoted part of the command line.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout "{1..2}"{1..2}'{1..2}'{1..2}"{1..2}"{1..2}[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `[{]1..2}1[{]1..2}1[{]1..2}1@[{]1..2}1[{]1..2}1[{]1..2}2@[{]1..2}1[{]1..2}2[{]1..2}1@[{]1..2}1[{]1..2}2[{]1..2}2@[{]1..2}2[{]1..2}1[{]1..2}1@[{]1..2}2[{]1..2}1[{]1..2}2@[{]1..2}2[{]1..2}2[{]1..2}1@[{]1..2}2[{]1..2}2[{]1..2}2@`[0m
|
||
[38;5;239m 01: {1..2}{1..2}{1..2}{1..2}{1..2}{1..2}@[0m
|
||
|
||
STDERR:
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/quoting/mixed/globbing/bracket-expansion/001-it-works-1[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that an argument made with quoted and unquoted parts results in bracket pattern expansion.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "./test_globbing"
|
||
02: mkdir "./test_globbing"
|
||
03: cd "./test_globbing"
|
||
04: touch 'a'[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout [""'a'""][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `[[]a]@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^a@$`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: ./lib/main.sh: line 102: ../../42sh: No such file or directory[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/quoting/mixed/globbing/bracket-expansion/002-it-works-2[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that an argument made with quoted and unquoted parts results in bracket pattern expansion.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "./test_globbing"
|
||
02: mkdir "./test_globbing"
|
||
03: cd "./test_globbing"
|
||
04: touch 'a' 'b' 'c' 'd' 'e' 'f' 'g' 'h'[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout ["a"bc'def'gh][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `a@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `b@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `c@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `d@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `e@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `f@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `g@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `h@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `bc`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `def`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `gh`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: ./lib/main.sh: line 102: ../../42sh: No such file or directory[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/quoting/mixed/variable-expansion/001-it-does-not-expand-in-quotes[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check if a local variable is display correctly inside simple and double quote.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: export "TOKEN201703181458_NAME=TOKEN201703181458_VALUE"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_on_stdout "$TOKEN201703181458_NAME"$TOKEN201703181458_NAME'$TOKEN201703181458_NAME'[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `TOKEN201703181458_VALUETOKEN201703181458_VALUE[$]TOKEN201703181458_NAME`[0m
|
||
[38;5;239m 01: TOKEN201703181458_VALUEE$TOKEN201703181458_NAME[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/quoting/simple-quotes/mixed/globbing/brace-expansion/002-it-does-not-expand-braces-2[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that braces expansion is not processed within quoted part of the command line.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout {1..2}'{1..2}'[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `1[{]1..2}@2[{]1..2}@`[0m
|
||
[38;5;239m 01: {1..2}{1..2}@[0m
|
||
|
||
STDERR:
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/quoting/simple-quotes/mixed/globbing/brace-expansion/003-it-does-not-expand-braces-3[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that braces expansion is not processed within quoted part of the command line.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout '{1..2}'{1..2}[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `[{]1..2}1@[{]1..2}2@`[0m
|
||
[38;5;239m 01: {1..2}{1..2}@[0m
|
||
|
||
STDERR:
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/quoting/simple-quotes/mixed/globbing/brace-expansion/004-it-does-not-expand-braces-4[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that braces expansion is not processed within quoted part of the command line.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout '{1..2}'{1..2}'{1..2}'{1..2}'{1..2}'{1..2}[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `[{]1..2}1[{]1..2}1[{]1..2}1@[{]1..2}1[{]1..2}1[{]1..2}2@[{]1..2}1[{]1..2}2[{]1..2}1@[{]1..2}1[{]1..2}2[{]1..2}2@[{]1..2}2[{]1..2}1[{]1..2}1@[{]1..2}2[{]1..2}1[{]1..2}2@[{]1..2}2[{]1..2}2[{]1..2}1@[{]1..2}2[{]1..2}2[{]1..2}2@`[0m
|
||
[38;5;239m 01: {1..2}{1..2}{1..2}{1..2}{1..2}{1..2}@[0m
|
||
|
||
STDERR:
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/quoting/simple-quotes/mixed/globbing/brace-expansion/005-it-does-not-expand-braces-5[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that braces expansion is not processed within quoted part of the command line.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_all_arguments_on_stdout '{1..2}' {1..2} '{1..2}' '{1..2}'[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `[{]1..2}@1@2@[{]1..2}@[{]1..2}@`[0m
|
||
[38;5;239m 01: {1..2}@{1..2}@{1..2}@{1..2}@[0m
|
||
|
||
STDERR:
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/quoting/simple-quotes/mixed/globbing/bracket-expansion/001-it-works-1[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that an argument made with quoted and unquoted parts results in bracket pattern expansion.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "./test_globbing"
|
||
02: mkdir "./test_globbing"
|
||
03: cd "./test_globbing"
|
||
04: touch 'a'[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout ['a'][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `[[]a]@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^a@$`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: ./lib/main.sh: line 102: ../../42sh: No such file or directory[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/quoting/simple-quotes/mixed/globbing/bracket-expansion/002-it-works-2[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that an argument made with quoted and unquoted parts results in bracket pattern expansion.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "./test_globbing"
|
||
02: mkdir "./test_globbing"
|
||
03: cd "./test_globbing"
|
||
04: touch 'a' 'b' 'c' 'd' 'e' 'f' 'g' 'h'[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_all_arguments_on_stdout ['a'bc'def'gh][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `a@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `b@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `c@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `d@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `e@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `f@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `g@`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `h@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `bc`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `def`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `gh`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: ./lib/main.sh: line 102: ../../42sh: No such file or directory[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/shellscript/while/007-pipe-and-while[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that a command could be piped inside a while [0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: ./create-file TOKEN201703181458[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_on_stdout_and_stderr TOKEN201703181458_stdout TOKEN201703181458_stderr | while [ -f TOKEN201703181458_FILE ]
|
||
02: do
|
||
03: ./read_on_stdin_once
|
||
04: ./delete-file TOKEN201703181458_FILE
|
||
05: done[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `TOKEN201703181458_stdout@$`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[38;5;239m 01: TOKEN201703181458_stderr
|
||
02: minishell: ./read_on_stdin_once: no such file or directory[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/shellscript/while/008-redir-and-while[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that a redirection after the while output the result in a file[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: ./create-file TOKEN201703181458[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: while [ -f TOKEN201703181458_FILE ]
|
||
02: do
|
||
03: ./write_on_stdout TOKEN201703181458_stdout
|
||
04: ./delete-file TOKEN201703181458_FILE
|
||
05: done > TOKEN201703181458_OUTPUT [0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `TOKEN201703181458_stdout`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[38;5;239m (no output)[0m
|
||
|
||
MISC:
|
||
[31m[38;5;34m SUCCESS expected_to create_file `TOKEN201703181458_OUTPUT` matching_regex `TOKEN201703181458_stdout`[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/subshell/mixed/inline-environment-variable/001-modifies-the-child-environment-only-1[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that declaring a variable and specifying a binary in a subshell does not result in local variable declaration or a modified parent shell's environment, but only a modified child's environment.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: (TOKEN201703181458_NAME=TOKEN201703181458_VALUE ./display_env)
|
||
02: ./display_env[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703181458_NAME=TOKEN201703181458_VALUE$` once[0m
|
||
[38;5;239m 01: ------------------------------
|
||
02: TERM_PROGRAM=iTerm.app
|
||
03: TERM=screen-256color
|
||
04: SHELL=/bin/zsh
|
||
05: HOMEBREW_TEMP=/tmp/ariard/Homebrew/Temp
|
||
06: TMPDIR=/var/folders/zz/zyxvpxvq6csfxvn_n0002_2m000khn/T/
|
||
07: Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.8FeUPqmXvW/Render
|
||
08: TERM_PROGRAM_VERSION=3.0.10
|
||
09: TERM_SESSION_ID=w0t0p1:84CB76AE-945F-4CD5-ACBE-549A47629FD9
|
||
10: ZSH=/Users/ariard/.oh-my-zsh
|
||
11: USER=ariard
|
||
12: SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.4g7aCI4G8f/Listeners
|
||
13: __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
|
||
14: PAGER=less
|
||
15: TMUX=/private/tmp/tmux-18965/default,63199,0
|
||
16: HOMEBREW_CACHE=/tmp/ariard/Homebrew/Caches
|
||
17: LSCOLORS=Gxfxcxdxbxegedabagacad
|
||
18: PATH=/Users/ariard/.brew/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/munki://Users/ariard/local/bin
|
||
19: MAIL=ariard@student.42.fr
|
||
20: PWD=/Users/ariard/Projects/42sh/42shelltest-tmp/tmp
|
||
21: LANG=en_US.UTF-8
|
||
22: ITERM_PROFILE=Default
|
||
23: XPC_FLAGS=0x0
|
||
24: TMUX_PANE=%2
|
||
25: XPC_SERVICE_NAME=0
|
||
26: SHLVL=4
|
||
27: HOME=/Users/ariard
|
||
28: COLORFGBG=7;0
|
||
29: ITERM_SESSION_ID=w0t0p1:84CB76AE-945F-4CD5-ACBE-549A47629FD9
|
||
30: LOGNAME=ariard
|
||
31: LESS=-R
|
||
32: LC_CTYPE=en_US.UTF-8
|
||
33: TMUX_PLUGIN_MANAGER_PATH=/Users/ariard/.tmux/plugins/
|
||
34: OLDPWD=/Users/ariard/Projects/42sh/42shelltest-tmp
|
||
35: _=../../42sh
|
||
36: ?=127
|
||
37: ------------------------------
|
||
38: TOTAL ENVIRONMENT VARIABLES: 35[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: minishell: command not found: TOKEN201703181458_NAME=TOKEN201703181458_VALUE[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/subshell/mixed/inline-environment-variable/002-modifies-the-child-environment-only-2[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that declaring a variable and specifying a binary in a subshell does not result in local variable declaration or a modified parent shell's environment, but only a modified child's environment.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ( (TOKEN201703181458_NAME=TOKEN201703181458_VALUE ./display_env) ; ./display_env) ; ./display_env
|
||
02: [0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703181458_NAME=TOKEN201703181458_VALUE$` once[0m
|
||
[38;5;239m 01: ------------------------------
|
||
02: TERM_PROGRAM=iTerm.app
|
||
03: TERM=screen-256color
|
||
04: SHELL=/bin/zsh
|
||
05: HOMEBREW_TEMP=/tmp/ariard/Homebrew/Temp
|
||
06: TMPDIR=/var/folders/zz/zyxvpxvq6csfxvn_n0002_2m000khn/T/
|
||
07: Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.8FeUPqmXvW/Render
|
||
08: TERM_PROGRAM_VERSION=3.0.10
|
||
09: TERM_SESSION_ID=w0t0p1:84CB76AE-945F-4CD5-ACBE-549A47629FD9
|
||
10: ZSH=/Users/ariard/.oh-my-zsh
|
||
11: USER=ariard
|
||
12: SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.4g7aCI4G8f/Listeners
|
||
13: __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
|
||
14: PAGER=less
|
||
15: TMUX=/private/tmp/tmux-18965/default,63199,0
|
||
16: HOMEBREW_CACHE=/tmp/ariard/Homebrew/Caches
|
||
17: LSCOLORS=Gxfxcxdxbxegedabagacad
|
||
18: PATH=/Users/ariard/.brew/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/munki://Users/ariard/local/bin
|
||
19: MAIL=ariard@student.42.fr
|
||
20: PWD=/Users/ariard/Projects/42sh/42shelltest-tmp/tmp
|
||
21: LANG=en_US.UTF-8
|
||
22: ITERM_PROFILE=Default
|
||
23: XPC_FLAGS=0x0
|
||
24: TMUX_PANE=%2
|
||
25: XPC_SERVICE_NAME=0
|
||
26: SHLVL=4
|
||
27: HOME=/Users/ariard
|
||
28: COLORFGBG=7;0
|
||
29: ITERM_SESSION_ID=w0t0p1:84CB76AE-945F-4CD5-ACBE-549A47629FD9
|
||
30: LOGNAME=ariard
|
||
31: LESS=-R
|
||
32: LC_CTYPE=en_US.UTF-8
|
||
33: TMUX_PLUGIN_MANAGER_PATH=/Users/ariard/.tmux/plugins/
|
||
34: OLDPWD=/Users/ariard/Projects/42sh/42shelltest-tmp
|
||
35: _=../../42sh
|
||
36: ?=127
|
||
37: ------------------------------
|
||
38: TOTAL ENVIRONMENT VARIABLES: 35[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: minishell: command not found: TOKEN201703181458_NAME=TOKEN201703181458_VALUE[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/subshell/mixed/piping/003-imbricated-subshells-and-pipes[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that pipes and subshells run twice together in harmony.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ( ( (cd / ; /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/display_pwd) | ./read_on_stdin) ) | ( ( (./read_on_stdin) ) | ./read_on_stdin )
|
||
02: ./write_on_stdout TOKEN201703181458[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `/Users/ariard/Projects/42sh/42shelltest-tmp/tmp`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^PWD:/:PWD@@@$`[0m
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `TOKEN201703181458`[0m
|
||
[38;5;239m 01: TOKEN201703181458[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: Broken pipe[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1mbonuses/inline-environment-variable/001-modifies-child-environment-1[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that a binary may have its environment to be modified by appending variables inline.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: unset "TOKEN201703181458_VARIABLE"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: TOKEN201703181458_VARIABLE=TOKEN201703181458_VALUE ./display_env
|
||
02: ./display_env[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703181458_VARIABLE=TOKEN201703181458_VALUE$` once[0m
|
||
[38;5;239m 01: ------------------------------
|
||
02: TERM_PROGRAM=iTerm.app
|
||
03: TERM=screen-256color
|
||
04: SHELL=/bin/zsh
|
||
05: HOMEBREW_TEMP=/tmp/ariard/Homebrew/Temp
|
||
06: TMPDIR=/var/folders/zz/zyxvpxvq6csfxvn_n0002_2m000khn/T/
|
||
07: Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.8FeUPqmXvW/Render
|
||
08: TERM_PROGRAM_VERSION=3.0.10
|
||
09: TERM_SESSION_ID=w0t0p1:84CB76AE-945F-4CD5-ACBE-549A47629FD9
|
||
10: ZSH=/Users/ariard/.oh-my-zsh
|
||
11: USER=ariard
|
||
12: SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.4g7aCI4G8f/Listeners
|
||
13: __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
|
||
14: PAGER=less
|
||
15: TMUX=/private/tmp/tmux-18965/default,63199,0
|
||
16: HOMEBREW_CACHE=/tmp/ariard/Homebrew/Caches
|
||
17: LSCOLORS=Gxfxcxdxbxegedabagacad
|
||
18: PATH=/Users/ariard/.brew/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/munki://Users/ariard/local/bin
|
||
19: MAIL=ariard@student.42.fr
|
||
20: PWD=/Users/ariard/Projects/42sh/42shelltest-tmp/tmp
|
||
21: LANG=en_US.UTF-8
|
||
22: ITERM_PROFILE=Default
|
||
23: XPC_FLAGS=0x0
|
||
24: TMUX_PANE=%2
|
||
25: XPC_SERVICE_NAME=0
|
||
26: SHLVL=4
|
||
27: HOME=/Users/ariard
|
||
28: COLORFGBG=7;0
|
||
29: ITERM_SESSION_ID=w0t0p1:84CB76AE-945F-4CD5-ACBE-549A47629FD9
|
||
30: LOGNAME=ariard
|
||
31: LESS=-R
|
||
32: LC_CTYPE=en_US.UTF-8
|
||
33: TMUX_PLUGIN_MANAGER_PATH=/Users/ariard/.tmux/plugins/
|
||
34: OLDPWD=/Users/ariard/Projects/42sh/42shelltest-tmp
|
||
35: _=../../42sh
|
||
36: ?=127
|
||
37: ------------------------------
|
||
38: TOTAL ENVIRONMENT VARIABLES: 35[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: minishell: command not found: TOKEN201703181458_VARIABLE=TOKEN201703181458_VALUE[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1mbonuses/inline-environment-variable/002-modifies-child-environment-2[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that a binary may have its environment to be modified by appending variables inline.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: unset "TOKEN201703181458_VARIABLE"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: TOKEN201703181458_VARIABLE1=TOKEN201703181458_VALUE1 TOKEN201703181458_VARIABLE2=TOKEN201703181458_VALUE2 TOKEN201703181458_VARIABLE3=TOKEN201703181458_VALUE3 ./display_env
|
||
02: ./display_env[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703181458_VARIABLE1=TOKEN201703181458_VALUE1$` once[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703181458_VARIABLE2=TOKEN201703181458_VALUE2$` once[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703181458_VARIABLE3=TOKEN201703181458_VALUE3$` once[0m
|
||
[38;5;239m 01: ------------------------------
|
||
02: TERM_PROGRAM=iTerm.app
|
||
03: TERM=screen-256color
|
||
04: SHELL=/bin/zsh
|
||
05: HOMEBREW_TEMP=/tmp/ariard/Homebrew/Temp
|
||
06: TMPDIR=/var/folders/zz/zyxvpxvq6csfxvn_n0002_2m000khn/T/
|
||
07: Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.8FeUPqmXvW/Render
|
||
08: TERM_PROGRAM_VERSION=3.0.10
|
||
09: TERM_SESSION_ID=w0t0p1:84CB76AE-945F-4CD5-ACBE-549A47629FD9
|
||
10: ZSH=/Users/ariard/.oh-my-zsh
|
||
11: USER=ariard
|
||
12: SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.4g7aCI4G8f/Listeners
|
||
13: __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
|
||
14: PAGER=less
|
||
15: TMUX=/private/tmp/tmux-18965/default,63199,0
|
||
16: HOMEBREW_CACHE=/tmp/ariard/Homebrew/Caches
|
||
17: LSCOLORS=Gxfxcxdxbxegedabagacad
|
||
18: PATH=/Users/ariard/.brew/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/munki://Users/ariard/local/bin
|
||
19: MAIL=ariard@student.42.fr
|
||
20: PWD=/Users/ariard/Projects/42sh/42shelltest-tmp/tmp
|
||
21: LANG=en_US.UTF-8
|
||
22: ITERM_PROFILE=Default
|
||
23: XPC_FLAGS=0x0
|
||
24: TMUX_PANE=%2
|
||
25: XPC_SERVICE_NAME=0
|
||
26: SHLVL=4
|
||
27: HOME=/Users/ariard
|
||
28: COLORFGBG=7;0
|
||
29: ITERM_SESSION_ID=w0t0p1:84CB76AE-945F-4CD5-ACBE-549A47629FD9
|
||
30: LOGNAME=ariard
|
||
31: LESS=-R
|
||
32: LC_CTYPE=en_US.UTF-8
|
||
33: TMUX_PLUGIN_MANAGER_PATH=/Users/ariard/.tmux/plugins/
|
||
34: OLDPWD=/Users/ariard/Projects/42sh/42shelltest-tmp
|
||
35: _=../../42sh
|
||
36: ?=127
|
||
37: ------------------------------
|
||
38: TOTAL ENVIRONMENT VARIABLES: 35[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: minishell: command not found: TOKEN201703181458_VARIABLE1=TOKEN201703181458_VALUE1[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1mbonuses/inline-environment-variable/003-modifies-PATH-only[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that a binary may have its environment to be modified by appending variables inline.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "temporary_directory"
|
||
02: mkdir -p "temporary_directory"
|
||
03: cd "temporary_directory"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: PATH=.. write_on_stdout TOKEN201703181458
|
||
02: exit_with_status 42[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703181458$`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to_not be_empty[0m
|
||
[31m[1;33m WARNING might match_regex `[Cc]ommand not found`[0m
|
||
[38;5;239m 01: ./lib/main.sh: line 102: ../../42sh: No such file or directory[0m
|
||
|
||
MISC:
|
||
[31m[38;5;34m SUCCESS expected_to_not exit_with_status `42`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not exit_with_status `0`[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1mbonuses/separators/and/errors/001-parse-error-at-beginning[0m [31m[1;33m(WARNING)[0m
|
||
|
||
Description:
|
||
[38;5;239m Parsing test.
|
||
The purpose of this test is to check that the AND operator `&&` must be placed after a valid command.
|
||
If not, the Shell should display an error and exit with an error status code.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: && ./write_on_stdout TOKEN201703181458[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS might_not match_regex `TOKEN201703181458`[0m
|
||
[31m[38;5;34m SUCCESS might be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS might_not be_empty[0m
|
||
[31m[38;5;34m SUCCESS might match_regex `([Ss]yntax|[Pp]arse) error`[0m
|
||
[38;5;239m 01: syntax error near unexpected token `&&'[0m
|
||
|
||
MISC:
|
||
[31m[1;33m WARNING might_not exit_with_status `0`[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1mbonuses/separators/and/errors/002-parse-error-too-much-symbol[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m Parsing test.
|
||
The purpose of this test is to check that more than two '&' operators are detected as a syntax error.
|
||
It should not execute the two commands `write_on_stdout` but display an error and exit with an error status code.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_on_stdout TOKEN201703181458 &&& ./write_on_stdout TOKEN201703181458[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS might_not match_regex `TOKEN201703181458`[0m
|
||
[31m[38;5;34m SUCCESS might be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS might_not be_empty[0m
|
||
[31m[38;5;34m SUCCESS might match_regex `([Ss]yntax|[Pp]arse) error`[0m
|
||
[38;5;239m 01: syntax error near unexpected token `&'[0m
|
||
|
||
MISC:
|
||
[31m[38;5;160m FAILURE expected_to_not exit_with_status `0`[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1mbonuses/separators/or/errors/001-parse-error-at-beginning[0m [31m[1;33m(WARNING)[0m
|
||
|
||
Description:
|
||
[38;5;239m Parsing test.
|
||
The purpose of this test is to check that the OR operator `||` must be placed after a valid command.
|
||
If not, the Shell should display an error and exit with an error status code.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: || ./write_on_stdout TOKEN201703181458[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS might be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS might_not be_empty[0m
|
||
[31m[38;5;34m SUCCESS might match_regex `([Ss]yntax|[Pp]arse) error`[0m
|
||
[38;5;239m 01: syntax error near unexpected token `||'[0m
|
||
|
||
MISC:
|
||
[31m[1;33m WARNING might_not exit_with_status `0`[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1mbonuses/separators/or/errors/002-parse-error-too-much-symbol[0m [31m[1;33m(WARNING)[0m
|
||
|
||
Description:
|
||
[38;5;239m Parsing test.
|
||
The purpose of this test is to check that using more than two pipe symbols `|` is detected as an error.
|
||
The Shell should display an error and exit with a error status code.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_on_stdout TOKEN201703181458 ||| ./write_on_stdout TOKEN201703181458[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS might be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS might_not be_empty[0m
|
||
[31m[38;5;34m SUCCESS might match_regex `([Ss]yntax|[Pp]arse) error`[0m
|
||
[38;5;239m 01: syntax error near unexpected token `|'[0m
|
||
|
||
MISC:
|
||
[31m[1;33m WARNING might_not exit_with_status `0`[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1mbonuses/tilde-expansion/003-expanded-with-PWD-1[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the symbol tilde `~` may be expanded with the environment variable PWD when followed by the symbol `+`.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: export "HOME=/TOKEN201703181458"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_on_stdout ~+[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `~[+]`[0m
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `/TOKEN201703181458[+]`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^/Users/ariard/Projects/42sh/42shelltest-tmp/tmp$`[0m
|
||
[38;5;239m 01: /TOKEN201703181458+[0m
|
||
|
||
STDERR:
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1mbonuses/tilde-expansion/004-expanded-with-PWD-2[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the symbol tilde `~` may be expanded with the environment variable PWD when followed by the symbol `+`.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: export "HOME=/TOKEN201703181458"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_on_stdout ~+/TOKEN201703181458_SUBDIRECTORY[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `~+/TOKEN201703181458_SUBDIRECTORY`[0m
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `/TOKEN201703181458[+]/TOKEN201703181458_SUBDIRECTORY`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^/Users/ariard/Projects/42sh/42shelltest-tmp/tmp/TOKEN201703181458_SUBDIRECTORY$`[0m
|
||
[38;5;239m 01: /TOKEN201703181458+/TOKEN201703181458_SUBDIRECTORY[0m
|
||
|
||
STDERR:
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1mbonuses/tilde-expansion/005-expanded-with-OLDPWD-1[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the symbol tilde `~` may be expanded with the environment variable OLDPWD when followed by the symbol `+`.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "./TOKEN201703181458_SUBDIRECTORY"
|
||
02: mkdir "./TOKEN201703181458_SUBDIRECTORY"
|
||
03: export "HOME=/TOKEN201703181458"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: cd ./TOKEN201703181458_SUBDIRECTORY
|
||
02: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_on_stdout ~-[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `~-`[0m
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `/TOKEN201703181458-`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^/Users/ariard/Projects/42sh/42shelltest-tmp/tmp$`[0m
|
||
[38;5;239m 01: /TOKEN201703181458-[0m
|
||
|
||
STDERR:
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1mbonuses/tilde-expansion/006-expanded-with-OLDPWD-2[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the symbol tilde `~` may be expanded with the environment variable OLDPWD when followed by the symbol `+`.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "./TOKEN201703181458_SUBDIRECTORY"
|
||
02: mkdir "./TOKEN201703181458_SUBDIRECTORY"
|
||
03: export "HOME=/TOKEN201703181458"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: cd ./TOKEN201703181458_SUBDIRECTORY
|
||
02: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_on_stdout ~-/TOKEN201703181458_OTHERDIRECTORY[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `~-/TOKEN201703181458_OTHERDIRECTORY`[0m
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `/TOKEN201703181458-/TOKEN201703181458_OTHERDIRECTORY`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^/Users/ariard/Projects/42sh/42shelltest-tmp/tmp/TOKEN201703181458_OTHERDIRECTORY$`[0m
|
||
[38;5;239m 01: /TOKEN201703181458-/TOKEN201703181458_OTHERDIRECTORY[0m
|
||
|
||
STDERR:
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1mbonuses/tilde-expansion/not-expanded/001-not-expanded-with-HOME-1[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the symbol tilde `~` may be not expanded when not followed by an authorized symbol or user name.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: export "HOME=/TOKEN201703181458"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_on_stdout ~~[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^~~$`[0m
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `/TOKEN201703181458`[0m
|
||
[38;5;239m 01: /TOKEN201703181458~[0m
|
||
|
||
STDERR:
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1mbonuses/tilde-expansion/not-expanded/002-not-expanded-with-HOME-2[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the symbol tilde `~` may be not expanded when not followed by an authorized symbol or user name.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: export "HOME=/TOKEN201703181458"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_on_stdout ~TOKEN201703181458_UNKNOWNUSER[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^~TOKEN201703181458_UNKNOWNUSER$`[0m
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `/TOKEN201703181458TOKEN201703181458_UNKNOWNUSER`[0m
|
||
[38;5;239m 01: /TOKEN201703181458TOKEN201703181458_UNKNOWNUSER[0m
|
||
|
||
STDERR:
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1mbonuses/tilde-expansion/not-expanded/003-not-expanded-with-PWD[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the symbol tilde `~` is not expanded with the environment variable PWD when not followed by the symbol `/`.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: export "HOME=/TOKEN201703181458"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_on_stdout ~+TOKEN201703181458_SUBDIRECTORY[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^~[+]TOKEN201703181458_SUBDIRECTORY$`[0m
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `/TOKEN201703181458[+]TOKEN201703181458_SUBDIRECTORY`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `/Users/ariard/Projects/42sh/42shelltest-tmp/tmpTOKEN201703181458_SUBDIRECTORY`[0m
|
||
[38;5;239m 01: /TOKEN201703181458+TOKEN201703181458_SUBDIRECTORY[0m
|
||
|
||
STDERR:
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1mbonuses/tilde-expansion/not-expanded/004-not-expanded-with-OLDPWD[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the symbol tilde `~` is not expanded with the environment variable OLDPWD when not followed by the symbol `/`.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "./TOKEN201703181458_SUBDIRECTORY"
|
||
02: mkdir "./TOKEN201703181458_SUBDIRECTORY"
|
||
03: export "HOME=/TOKEN201703181458"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: cd ./TOKEN201703181458_SUBDIRECTORY
|
||
02: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/write_on_stdout ~-TOKEN201703181458_OTHERDIRECTORY[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^~-TOKEN201703181458_OTHERDIRECTORY$`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `/TOKEN201703181458-/TOKEN201703181458_OTHERDIRECTORY`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `/Users/ariard/Projects/42sh/42shelltest-tmp/tmp/TOKEN201703181458_OTHERDIRECTORY`[0m
|
||
[38;5;239m 01: /TOKEN201703181458-TOKEN201703181458_OTHERDIRECTORY[0m
|
||
|
||
STDERR:
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1mminishell/binary/004-binary-test-empty-path[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the Shell finds binaries that are located in the current directory when the environment variable PATH is empty.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: export PATH=""[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: write_on_stdout "TOKEN201703181458"[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `TOKEN201703181458`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: minishell: command not found: write_on_stdout[0m
|
||
|
||
MISC:
|
||
[31m[38;5;160m FAILURE expected_to exit_with_status `0`[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1mminishell/binary/006-binary-undefined-path[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the Shell retrieves the default value of the environment variable PATH if not set. This test depends on the presence of the UNIX binary `ls`, located in a path within the default environment variable PATH.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf "TOKEN201703181458_006-BINARY-UNDEFINED-PATH"
|
||
02: touch "TOKEN201703181458_006-BINARY-UNDEFINED-PATH"
|
||
03: unset PATH[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ls[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `TOKEN201703181458_006-BINARY-UNDEFINED-PATH`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: minishell: command not found: ls[0m
|
||
|
||
MISC:
|
||
[31m[38;5;160m FAILURE expected_to exit_with_status `0`[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1mminishell/binary/008-binary-too-many-symbolic-links-encountered[0m [31m[1;33m(WARNING)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that trying to execute a path that encounters an infinite loop of symbolic link results in an error on standard error and a failure exit status.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -rf ./symbolic_link1 ./symbolic_link2 ./symbolic_link3
|
||
02: ln -s ./symbolic_link1 ./symbolic_link2
|
||
03: ln -s ./symbolic_link2 ./symbolic_link3
|
||
04: ln -s ./symbolic_link3 ./symbolic_link1[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./symbolic_link1[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS might be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to_not be_empty[0m
|
||
[31m[1;33m WARNING might match_regex `[Tt]oo many.*symbolic links`[0m
|
||
[38;5;239m 01: minishell: ./symbolic_link1: no such file or directory[0m
|
||
|
||
MISC:
|
||
[31m[38;5;34m SUCCESS expected_to_not exit_with_status 0[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1mminishell/builtins/cd/007-symbolic-link[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that using a symbolic link as first argument with the builtin `cd` results in moving the linked directory.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -f "./symbolic_link"
|
||
02: mkdir -p "./sub_directory"
|
||
03: ln -s "./sub_directory" "./symbolic_link"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: cd symbolic_link
|
||
02: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/display_pwd
|
||
03: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/display_env[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `PWD:/Users/ariard/Projects/42sh/42shelltest-tmp/tmp/sub_directory:PWD$`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^PWD=/Users/ariard/Projects/42sh/42shelltest-tmp/tmp/symbolic_link$`[0m
|
||
[38;5;239m 01: PWD:/Users/ariard/Projects/42sh/42shelltest-tmp/tmp/sub_directory:PWD
|
||
02: ------------------------------
|
||
03: TERM_PROGRAM=iTerm.app
|
||
04: TERM=screen-256color
|
||
05: SHELL=/bin/zsh
|
||
06: HOMEBREW_TEMP=/tmp/ariard/Homebrew/Temp
|
||
07: TMPDIR=/var/folders/zz/zyxvpxvq6csfxvn_n0002_2m000khn/T/
|
||
08: Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.8FeUPqmXvW/Render
|
||
09: TERM_PROGRAM_VERSION=3.0.10
|
||
10: TERM_SESSION_ID=w0t0p1:84CB76AE-945F-4CD5-ACBE-549A47629FD9
|
||
11: ZSH=/Users/ariard/.oh-my-zsh
|
||
12: USER=ariard
|
||
13: SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.4g7aCI4G8f/Listeners
|
||
14: __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
|
||
15: PAGER=less
|
||
16: TMUX=/private/tmp/tmux-18965/default,63199,0
|
||
17: HOMEBREW_CACHE=/tmp/ariard/Homebrew/Caches
|
||
18: LSCOLORS=Gxfxcxdxbxegedabagacad
|
||
19: PATH=/Users/ariard/.brew/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/munki://Users/ariard/local/bin
|
||
20: MAIL=ariard@student.42.fr
|
||
21: PWD=/Users/ariard/Projects/42sh/42shelltest-tmp/tmp/sub_directory
|
||
22: LANG=en_US.UTF-8
|
||
23: ITERM_PROFILE=Default
|
||
24: XPC_FLAGS=0x0
|
||
25: TMUX_PANE=%2
|
||
26: XPC_SERVICE_NAME=0
|
||
27: SHLVL=4
|
||
28: HOME=/Users/ariard
|
||
29: COLORFGBG=7;0
|
||
30: ITERM_SESSION_ID=w0t0p1:84CB76AE-945F-4CD5-ACBE-549A47629FD9
|
||
31: LOGNAME=ariard
|
||
32: LESS=-R
|
||
33: LC_CTYPE=en_US.UTF-8
|
||
34: TMUX_PLUGIN_MANAGER_PATH=/Users/ariard/.tmux/plugins/
|
||
35: OLDPWD=/Users/ariard/Projects/42sh/42shelltest-tmp/tmp
|
||
36: _=../../42sh
|
||
37: ?=0
|
||
38: ------------------------------
|
||
39: TOTAL ENVIRONMENT VARIABLES: 35[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1mminishell/builtins/cd/008-symbolic-link-2[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that using a symbolic link as first argument with the builtin `cd` results in moving to the linked directory. In this test, the directory is linked with to chained symbolic links.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -f "./symbolic_link1" "./symbolic_link2"
|
||
02: mkdir -p "./sub_directory"
|
||
03: ln -s "./sub_directory" "./symbolic_link1"
|
||
04: ln -s "./symbolic_link1" "./symbolic_link2"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: cd symbolic_link2
|
||
02: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/display_pwd
|
||
03: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/display_env[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `PWD:/Users/ariard/Projects/42sh/42shelltest-tmp/tmp/sub_directory:PWD$`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^PWD=/Users/ariard/Projects/42sh/42shelltest-tmp/tmp/symbolic_link2$`[0m
|
||
[38;5;239m 01: PWD:/Users/ariard/Projects/42sh/42shelltest-tmp/tmp/sub_directory:PWD
|
||
02: ------------------------------
|
||
03: TERM_PROGRAM=iTerm.app
|
||
04: TERM=screen-256color
|
||
05: SHELL=/bin/zsh
|
||
06: HOMEBREW_TEMP=/tmp/ariard/Homebrew/Temp
|
||
07: TMPDIR=/var/folders/zz/zyxvpxvq6csfxvn_n0002_2m000khn/T/
|
||
08: Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.8FeUPqmXvW/Render
|
||
09: TERM_PROGRAM_VERSION=3.0.10
|
||
10: TERM_SESSION_ID=w0t0p1:84CB76AE-945F-4CD5-ACBE-549A47629FD9
|
||
11: ZSH=/Users/ariard/.oh-my-zsh
|
||
12: USER=ariard
|
||
13: SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.4g7aCI4G8f/Listeners
|
||
14: __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
|
||
15: PAGER=less
|
||
16: TMUX=/private/tmp/tmux-18965/default,63199,0
|
||
17: HOMEBREW_CACHE=/tmp/ariard/Homebrew/Caches
|
||
18: LSCOLORS=Gxfxcxdxbxegedabagacad
|
||
19: PATH=/Users/ariard/.brew/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/munki://Users/ariard/local/bin
|
||
20: MAIL=ariard@student.42.fr
|
||
21: PWD=/Users/ariard/Projects/42sh/42shelltest-tmp/tmp/sub_directory
|
||
22: LANG=en_US.UTF-8
|
||
23: ITERM_PROFILE=Default
|
||
24: XPC_FLAGS=0x0
|
||
25: TMUX_PANE=%2
|
||
26: XPC_SERVICE_NAME=0
|
||
27: SHLVL=4
|
||
28: HOME=/Users/ariard
|
||
29: COLORFGBG=7;0
|
||
30: ITERM_SESSION_ID=w0t0p1:84CB76AE-945F-4CD5-ACBE-549A47629FD9
|
||
31: LOGNAME=ariard
|
||
32: LESS=-R
|
||
33: LC_CTYPE=en_US.UTF-8
|
||
34: TMUX_PLUGIN_MANAGER_PATH=/Users/ariard/.tmux/plugins/
|
||
35: OLDPWD=/Users/ariard/Projects/42sh/42shelltest-tmp/tmp
|
||
36: _=../../42sh
|
||
37: ?=0
|
||
38: ------------------------------
|
||
39: TOTAL ENVIRONMENT VARIABLES: 35[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1mminishell/builtins/cd/errors/001-not-a-directory[0m [31m[1;33m(WARNING)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that using a file name as first argument with the builtin `cd` results in error and not changing current directory.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: touch "./not_a_directory"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: cd not_a_directory
|
||
02: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/display_pwd[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `PWD:/Users/ariard/Projects/42sh/42shelltest-tmp/tmp:PWD`[0m
|
||
[38;5;239m 01: PWD:/Users/ariard/Projects/42sh/42shelltest-tmp/tmp:PWD[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to_not be_empty[0m
|
||
[31m[1;33m WARNING might match_regex `[Nn]ot a directory`[0m
|
||
[38;5;239m 01: cd: no such file or directory: not_a_directory[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1mminishell/builtins/cd/errors/003-permission-denied[0m [31m[1;33m(WARNING)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that using a directory without any permission as first argument with the builtin `cd` results in error and not changing current directory.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: if [ -d "./permission_denied" ]; then chmod 777 "./permission_denied"; fi
|
||
02: rm -rf "./permission_denied"
|
||
03: mkdir -m 0 "./permission_denied"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: cd permission_denied
|
||
02: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/display_pwd[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `PWD:/Users/ariard/Projects/42sh/42shelltest-tmp/tmp:PWD`[0m
|
||
[38;5;239m 01: PWD:/Users/ariard/Projects/42sh/42shelltest-tmp/tmp:PWD[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to_not be_empty[0m
|
||
[31m[1;33m WARNING might match_regex `[Pp]ermission denied`[0m
|
||
[38;5;239m 01: cd: no such file or directory: permission_denied[0m
|
||
|
||
After test:
|
||
[38;5;239m 01: if [ -d "./permission_denied" ]; then chmod 777 "./permission_denied"; fi
|
||
02: rm -rf "./permission_denied"[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1mminishell/builtins/cd/errors/005-too-many-symbolic-links-encountered[0m [31m[1;33m(WARNING)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that using a symbolic link resulting in ELOOP error as first argument with the builtin `cd` results in error and not changing current directory.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -f "./symbolic_link1" "./symbolic_link2" "./symbolic_link3"
|
||
02: ln -s "./symbolic_link1" "./symbolic_link2"
|
||
03: ln -s "./symbolic_link2" "./symbolic_link3"
|
||
04: ln -s "./symbolic_link3" "./symbolic_link1"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: cd symbolic_link1
|
||
02: /Users/ariard/Projects/42sh/42shelltest-tmp/tmp/display_pwd[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `PWD:/Users/ariard/Projects/42sh/42shelltest-tmp/tmp:PWD`[0m
|
||
[38;5;239m 01: PWD:/Users/ariard/Projects/42sh/42shelltest-tmp/tmp:PWD[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to_not be_empty[0m
|
||
[31m[1;33m WARNING might match_regex `[Tt]oo many.*symbolic links`[0m
|
||
[38;5;239m 01: cd: no such file or directory: symbolic_link1[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1mminishell/builtins/env/003-ignore-environment[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that using the option `-i` with the builtin `env` results in an empty environment sent to the given command.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: env -i ./display_env[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `TOTAL ENVIRONMENT VARIABLES: 0`[0m
|
||
[38;5;239m 01: ------------------------------
|
||
02: ?=0
|
||
03: ------------------------------
|
||
04: TOTAL ENVIRONMENT VARIABLES: 1[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1mminishell/builtins/env/errors/001-command-not-found[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that using the builtin `env` with an invalid binary as argument results in an error and failure exit status.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -f "./invalid_binary"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: env ./invalid_binary[0m
|
||
|
||
STDOUT:
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to_not be_empty[0m
|
||
[31m[1;33m WARNING might match_regex `[Cc]ommand not found`[0m
|
||
[38;5;239m 01: minishell: ./invalid_binary: no such file or directory[0m
|
||
|
||
MISC:
|
||
[31m[38;5;160m FAILURE expected_to_not exit_with_status `0`[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1mminishell/builtins/env/multiple-options/001-ignore-environment-and-set-variable[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that `env -i` works if we use a second argument to set an environment variable, we are also checking if this command unset environments variables for a given binary.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: env -i TESTVARIABLE=TOKEN201703181458 ./display_env[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `TESTVARIABLE=TOKEN201703181458`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `TOTAL ENVIRONMENT VARIABLES: 1`[0m
|
||
[38;5;239m 01: ------------------------------
|
||
02: TESTVARIABLE=TOKEN201703181458
|
||
03: ?=0
|
||
04: ------------------------------
|
||
05: TOTAL ENVIRONMENT VARIABLES: 2[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1mminishell/builtins/exit/errors/001-too-many-args[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that using a wrong number of arguments with the builtin `exit` does not result in the Shell termination but an error on standard error.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: exit 21 42
|
||
02: ./write_on_stdout TOKEN201703181458[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `TOKEN201703181458`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to_not be_empty[0m
|
||
[31m[1;33m WARNING might match_regex `([Tt]oo many arguments|[Aa]rgument list too long)`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
MISC:
|
||
[31m[38;5;160m FAILURE expected_to exit_with_status `0`[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1mminishell/builtins/exit/errors/002-non-numeric-argument[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that using a non-numeric argument with the builtin `exit` results in the Shell termination and an error on standard error.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: exit abc
|
||
02: ./write_on_stdout TOKEN201703181458[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `TOKEN201703181458`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[1;33m WARNING might_not be_empty[0m
|
||
[31m[1;33m WARNING might match_regex `[Nn]umeric argument required`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
MISC:
|
||
[31m[38;5;160m FAILURE expected_to_not exit_with_status `0`[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1mminishell/builtins/setenv/004-invalid-identifier[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that using a wrong variable name with the builtin `setenv` (or `export`) results in error.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: setenv 42
|
||
02: export 42[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS might be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to_not be_empty[0m
|
||
[31m[1;33m WARNING might match_regex `(not.*identifier|must begin.*letter)`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
Total tests: 300
|
||
Total failed tests: 121
|
||
Total pending tests: 3
|