3075 lines
124 KiB
Text
3075 lines
124 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;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[1;33m~[0m[31m[1;33m~[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;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;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;34m.[0m[31m[38;5;160mx[0m[31m[38;5;160mx[0m[31m[1;33m~[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[1;33m~[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;160mx[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;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;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;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;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;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;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;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 "TOKEN201703172323"
|
||
03: echo '^'$(echo TOKEN201703172323_FILE_TOKEN201703172323_STDOUT | wc -c)'$' > "./size"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: mkdir TOKEN201703172323 ; cd TOKEN201703172323 ; touch TOKEN201703172323_FILE ; ls -1 ; ls | cat | wc -c > TOKEN201703172323_STDOUT ; cat TOKEN201703172323_STDOUT[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `TOKEN201703172323_FILE$`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_each_regex_of_file `./size`[0m
|
||
[38;5;239m 01: TOKEN201703172323_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 TOKEN201703172323_1 TOKEN201703172323_2 &>new_file_stderr_and_stdout[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `TOKEN201703172323_1`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `TOKEN201703172323_2`[0m
|
||
[38;5;239m 01: TOKEN201703172323_1[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `TOKEN201703172323_1`[0m
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `TOKEN201703172323_2`[0m
|
||
[38;5;239m 01: TOKEN201703172323_2[0m
|
||
|
||
MISC:
|
||
[31m[38;5;160m FAILURE expected_to create_file `new_file_stderr_and_stdout` matching_regex `TOKEN201703172323_1$`[0m
|
||
[31m[38;5;160m FAILURE expected_to create_file `new_file_stderr_and_stdout` matching_regex `TOKEN201703172323_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 TOKEN201703172323_1 TOKEN201703172323_2 &> new_file_stderr_and_stdout[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `TOKEN201703172323_1`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `TOKEN201703172323_2`[0m
|
||
[38;5;239m 01: TOKEN201703172323_1[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `TOKEN201703172323_1`[0m
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `TOKEN201703172323_2`[0m
|
||
[38;5;239m 01: TOKEN201703172323_2[0m
|
||
|
||
MISC:
|
||
[31m[38;5;160m FAILURE expected_to create_file `new_file_stderr_and_stdout` matching_regex `TOKEN201703172323_1$`[0m
|
||
[31m[38;5;160m FAILURE expected_to create_file `new_file_stderr_and_stdout` matching_regex `TOKEN201703172323_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 TOKEN201703172323 ; ; ./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/002-export-basic-key-value-1[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.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: unset "TOKEN201703172323_NAME"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: export TOKEN201703172323_NAME=TOKEN201703172323_VALUE
|
||
02: ./display_env[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703172323_NAME=TOKEN201703172323_VALUE$`[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: 66973 Segmentation fault: 11 /Users/ariard/Projects/42sh/42sh[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 "TOKEN201703172323_NAME"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: export TOKEN201703172323_NAME=TOKEN201703172323_VALUE
|
||
02: export[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `TOKEN201703172323_NAME=["]?TOKEN201703172323_VALUE["]?$`[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: 67097 Segmentation fault: 11 /Users/ariard/Projects/42sh/42sh[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 "TOKEN201703172323"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: export TOKEN201703172323
|
||
02: ./display_env[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `TOKEN201703172323`[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.uRjg1YTz1a/Render
|
||
08: TERM_PROGRAM_VERSION=3.0.10
|
||
09: TERM_SESSION_ID=w0t0p1:012161CB-942E-417B-AD70-740FF5490A87
|
||
10: ZSH=/Users/ariard/.oh-my-zsh
|
||
11: USER=ariard
|
||
12: SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.lQz9opv8hX/Listeners
|
||
13: __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
|
||
14: PAGER=less
|
||
15: TMUX=/private/tmp/tmux-18965/default,83855,1
|
||
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/42shelltest-tmp/tmp
|
||
21: LANG=en_US.UTF-8
|
||
22: ITERM_PROFILE=Default
|
||
23: XPC_FLAGS=0x0
|
||
24: TMUX_PANE=%8
|
||
25: XPC_SERVICE_NAME=0
|
||
26: SHLVL=4
|
||
27: HOME=/Users/ariard
|
||
28: COLORFGBG=7;0
|
||
29: ITERM_SESSION_ID=w0t0p1:012161CB-942E-417B-AD70-740FF5490A87
|
||
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/42shelltest-tmp
|
||
35: _=/Users/ariard/Projects/42sh/42sh
|
||
36: ?=0
|
||
37: TOKEN201703172323=
|
||
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 "TOKEN201703172323"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: export TOKEN201703172323
|
||
02: export[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `TOKEN201703172323`[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/006-export-update-env-variable[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that exporting the same variable twice in a row does result in an updated variable, but not in a duplicated variable.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: unset "TOKEN201703172323_NAME"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: export TOKEN201703172323_NAME=TOKEN201703172323_VALUE1
|
||
02: export TOKEN201703172323_NAME=TOKEN201703172323_VALUE2
|
||
03: ./display_env[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `TOKEN201703172323_NAME=TOKEN201703172323_VALUE1`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `TOKEN201703172323_NAME=TOKEN201703172323_VALUE2`[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: 67471 Segmentation fault: 11 /Users/ariard/Projects/42sh/42sh[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/builtins/export/007-existing-environment-variable[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that exporting an existing variable results in an updated variable.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: export "TOKEN201703172323_NAME=TOKEN201703172323_VALUE1"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: export TOKEN201703172323_NAME=TOKEN201703172323_VALUE2
|
||
02: ./display_env[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `TOKEN201703172323_NAME=TOKEN201703172323_VALUE1`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `TOKEN201703172323_NAME=TOKEN201703172323_VALUE2`[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: 67610 Segmentation fault: 11 /Users/ariard/Projects/42sh/42sh[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/builtins/export/008-local-to-environment[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that a declared local variable may be exported to the environment with the builtin `export`.[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: TOKEN201703172323_NAME=TOKEN201703172323_VALUE
|
||
02: export TOKEN201703172323_NAME
|
||
03: ./display_env[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703172323_NAME=TOKEN201703172323_VALUE$`[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: 67739 Segmentation fault: 11 /Users/ariard/Projects/42sh/42sh[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/builtins/export/009-export-with-equal-but-no-value-part1[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 environment variables return.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: unset "TOKEN201703172323"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: export TOKEN201703172323_NAME=
|
||
02: ./display_env[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703172323_NAME=`[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: 67860 Segmentation fault: 11 /Users/ariard/Projects/42sh/42sh[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 "TOKEN201703172323"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: export TOKEN201703172323_NAME=
|
||
02: export[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `TOKEN201703172323_NAME=`[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: 67984 Segmentation fault: 11 /Users/ariard/Projects/42sh/42sh[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/builtins/export/errors/001-invalid-identifier-1[0m [31m[1;33m(WARNING)[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=TOKEN201703172323[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `TOKEN201703172323`[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 `(not.*identifier|must begin.*letter)`[0m
|
||
[38;5;239m 01: ./lib/main.sh: line 102: 68103 Segmentation fault: 11 /Users/ariard/Projects/42sh/42sh[0m
|
||
|
||
MISC:
|
||
[31m[38;5;34m SUCCESS expected_to_not exit_with_status `0`[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/builtins/export/errors/002-invalid-identifier-2[0m [31m[1;33m(WARNING)[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 .=TOKEN201703172323[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `TOKEN201703172323`[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 `(not.*identifier|must begin.*letter)`[0m
|
||
[38;5;239m 01: ./lib/main.sh: line 102: 68240 Segmentation fault: 11 /Users/ariard/Projects/42sh/42sh[0m
|
||
|
||
MISC:
|
||
[31m[38;5;34m SUCCESS 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: /Users/ariard/Projects/42sh/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 "TOKEN201703172323_NAME"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: TOKEN201703172323_NAME=TOKEN201703172323_VALUE export TOKEN201703172323_NAME
|
||
02: export[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `TOKEN201703172323_NAME=["]?TOKEN201703172323_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: TOKEN201703172323_NAME=TOKEN201703172323_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 "TOKEN201703172323_NAME"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: TOKEN201703172323_NAME=TOKEN201703172323_VALUE export TOKEN201703172323_NAME
|
||
02: ./display_env[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `TOKEN201703172323_NAME=TOKEN201703172323_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.uRjg1YTz1a/Render
|
||
08: TERM_PROGRAM_VERSION=3.0.10
|
||
09: TERM_SESSION_ID=w0t0p1:012161CB-942E-417B-AD70-740FF5490A87
|
||
10: ZSH=/Users/ariard/.oh-my-zsh
|
||
11: USER=ariard
|
||
12: SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.lQz9opv8hX/Listeners
|
||
13: __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
|
||
14: PAGER=less
|
||
15: TMUX=/private/tmp/tmux-18965/default,83855,1
|
||
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/42shelltest-tmp/tmp
|
||
21: LANG=en_US.UTF-8
|
||
22: ITERM_PROFILE=Default
|
||
23: XPC_FLAGS=0x0
|
||
24: TMUX_PANE=%8
|
||
25: XPC_SERVICE_NAME=0
|
||
26: SHLVL=4
|
||
27: HOME=/Users/ariard
|
||
28: COLORFGBG=7;0
|
||
29: ITERM_SESSION_ID=w0t0p1:012161CB-942E-417B-AD70-740FF5490A87
|
||
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/42shelltest-tmp
|
||
35: _=/Users/ariard/Projects/42sh/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: TOKEN201703172323_NAME=TOKEN201703172323_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 "TOKEN201703172323_NAME"
|
||
03: export | awk 'BEGIN {FS="="} $0 !~ /^(OLDPWD|_)/ {print $1"="}' > "./stored_env"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: export -p TOKEN201703172323_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 `TOKEN201703172323_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.uRjg1YTz1a/Render
|
||
07: export TERM_PROGRAM_VERSION=3.0.10
|
||
08: export TERM_SESSION_ID=w0t0p1:012161CB-942E-417B-AD70-740FF5490A87
|
||
09: export ZSH=/Users/ariard/.oh-my-zsh
|
||
10: export USER=ariard
|
||
11: export SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.lQz9opv8hX/Listeners
|
||
12: export __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
|
||
13: export PAGER=less
|
||
14: export TMUX=/private/tmp/tmux-18965/default,83855,1
|
||
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/42shelltest-tmp/tmp
|
||
20: export LANG=en_US.UTF-8
|
||
21: export ITERM_PROFILE=Default
|
||
22: export XPC_FLAGS=0x0
|
||
23: export TMUX_PANE=%8
|
||
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:012161CB-942E-417B-AD70-740FF5490A87
|
||
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/42shelltest-tmp
|
||
34: export _=/Users/ariard/Projects/42sh/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 "TOKEN201703172323_NAME"
|
||
03: export | awk 'BEGIN {FS="="} $0 !~ /^(OLDPWD|_)/ {print $1"="}' > "./stored_env"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: export -p TOKEN201703172323_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 `TOKEN201703172323_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.uRjg1YTz1a/Render
|
||
07: export TERM_PROGRAM_VERSION=3.0.10
|
||
08: export TERM_SESSION_ID=w0t0p1:012161CB-942E-417B-AD70-740FF5490A87
|
||
09: export ZSH=/Users/ariard/.oh-my-zsh
|
||
10: export USER=ariard
|
||
11: export SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.lQz9opv8hX/Listeners
|
||
12: export __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
|
||
13: export PAGER=less
|
||
14: export TMUX=/private/tmp/tmux-18965/default,83855,1
|
||
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/42shelltest-tmp/tmp
|
||
20: export LANG=en_US.UTF-8
|
||
21: export ITERM_PROFILE=Default
|
||
22: export XPC_FLAGS=0x0
|
||
23: export TMUX_PANE=%8
|
||
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:012161CB-942E-417B-AD70-740FF5490A87
|
||
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/42shelltest-tmp
|
||
34: export _=/Users/ariard/Projects/42sh/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.uRjg1YTz1a/Render
|
||
43: TERM_PROGRAM_VERSION=3.0.10
|
||
44: TERM_SESSION_ID=w0t0p1:012161CB-942E-417B-AD70-740FF5490A87
|
||
45: ZSH=/Users/ariard/.oh-my-zsh
|
||
46: USER=ariard
|
||
47: SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.lQz9opv8hX/Listeners
|
||
48: __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
|
||
49: PAGER=less
|
||
50: TMUX=/private/tmp/tmux-18965/default,83855,1
|
||
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/42shelltest-tmp/tmp
|
||
56: LANG=en_US.UTF-8
|
||
57: ITERM_PROFILE=Default
|
||
58: XPC_FLAGS=0x0
|
||
59: TMUX_PANE=%8
|
||
60: XPC_SERVICE_NAME=0
|
||
61: SHLVL=4
|
||
62: HOME=/Users/ariard
|
||
63: COLORFGBG=7;0
|
||
64: ITERM_SESSION_ID=w0t0p1:012161CB-942E-417B-AD70-740FF5490A87
|
||
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/42shelltest-tmp
|
||
70: _=/Users/ariard/Projects/42sh/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 TOKEN201703172323_NAME=TOKEN201703172323_VALUE[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: export -n TOKEN201703172323_NAME
|
||
02: export
|
||
03: ./display_env[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `TOKEN201703172323_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: TOKEN201703172323_NAME=
|
||
07: TMPDIR=/var/folders/zz/zyxvpxvq6csfxvn_n0002_2m000khn/T/
|
||
08: Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.uRjg1YTz1a/Render
|
||
09: TERM_PROGRAM_VERSION=3.0.10
|
||
10: OLDPWD=/Users/ariard/42shelltest-tmp
|
||
11: TERM_SESSION_ID=w0t0p1:012161CB-942E-417B-AD70-740FF5490A87
|
||
12: ZSH=/Users/ariard/.oh-my-zsh
|
||
13: USER=ariard
|
||
14: SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.lQz9opv8hX/Listeners
|
||
15: __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
|
||
16: PAGER=less
|
||
17: TMUX=/private/tmp/tmux-18965/default,83855,1
|
||
18: HOMEBREW_CACHE=/tmp/ariard/Homebrew/Caches
|
||
19: LSCOLORS=Gxfxcxdxbxegedabagacad
|
||
20: PATH=/Users/ariard/.brew/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/munki://Users/ariard/local/bin
|
||
21: MAIL=ariard@student.42.fr
|
||
22: PWD=/Users/ariard/42shelltest-tmp/tmp
|
||
23: LANG=en_US.UTF-8
|
||
24: ITERM_PROFILE=Default
|
||
25: XPC_FLAGS=0x0
|
||
26: TMUX_PANE=%8
|
||
27: XPC_SERVICE_NAME=0
|
||
28: SHLVL=4
|
||
29: HOME=/Users/ariard
|
||
30: COLORFGBG=7;0
|
||
31: ITERM_SESSION_ID=w0t0p1:012161CB-942E-417B-AD70-740FF5490A87
|
||
32: LOGNAME=ariard
|
||
33: LESS=-R
|
||
34: LC_CTYPE=en_US.UTF-8
|
||
35: TMUX_PLUGIN_MANAGER_PATH=/Users/ariard/.tmux/plugins/
|
||
36: _=/Users/ariard/Projects/42sh/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: /Users/ariard/Projects/42sh/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/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 TOKEN201703172323{a..e}TOKEN201703172323[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703172323aTOKEN201703172323@TOKEN201703172323bTOKEN201703172323@TOKEN201703172323cTOKEN201703172323@TOKEN201703172323dTOKEN201703172323@TOKEN201703172323eTOKEN201703172323@$`[0m
|
||
[38;5;239m 01: TOKEN201703172323{a..e}TOKEN201703172323@[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 TOKEN201703172323{E..A}TOKEN201703172323[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703172323ETOKEN201703172323@TOKEN201703172323DTOKEN201703172323@TOKEN201703172323CTOKEN201703172323@TOKEN201703172323BTOKEN201703172323@TOKEN201703172323ATOKEN201703172323@$`[0m
|
||
[38;5;239m 01: TOKEN201703172323{E..A}TOKEN201703172323@[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 TOKEN201703172323{e..a}[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703172323e@TOKEN201703172323d@TOKEN201703172323c@TOKEN201703172323b@TOKEN201703172323a@$`[0m
|
||
[38;5;239m 01: TOKEN201703172323{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 TOKEN201703172323{a..b}abc{Z..X}def{s..s}[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703172323aabcZdefs@TOKEN201703172323aabcYdefs@TOKEN201703172323aabcXdefs@TOKEN201703172323babcZdefs@TOKEN201703172323babcYdefs@TOKEN201703172323babcXdefs@$`[0m
|
||
[38;5;239m 01: TOKEN201703172323{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 TOKEN201703172323{1..5}TOKEN201703172323[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN2017031723231TOKEN201703172323@TOKEN2017031723232TOKEN201703172323@TOKEN2017031723233TOKEN201703172323@TOKEN2017031723234TOKEN201703172323@TOKEN2017031723235TOKEN201703172323@$`[0m
|
||
[38;5;239m 01: TOKEN201703172323{1..5}TOKEN201703172323@[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 TOKEN201703172323{1..+5}[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN2017031723231@TOKEN2017031723232@TOKEN2017031723233@TOKEN2017031723234@TOKEN2017031723235@$`[0m
|
||
[38;5;239m 01: TOKEN201703172323{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}TOKEN201703172323[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^-5TOKEN201703172323@-4TOKEN201703172323@-3TOKEN201703172323@-2TOKEN201703172323@-1TOKEN201703172323@0TOKEN201703172323@$`[0m
|
||
[38;5;239m 01: {-5..0}TOKEN201703172323@[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}TOKEN201703172323[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^-100TOKEN201703172323@-99TOKEN201703172323@-98TOKEN201703172323@$`[0m
|
||
[38;5;239m 01: {-100..-98}TOKEN201703172323@[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 TOKEN201703172323{5..1}TOKEN201703172323[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN2017031723235TOKEN201703172323@TOKEN2017031723234TOKEN201703172323@TOKEN2017031723233TOKEN201703172323@TOKEN2017031723232TOKEN201703172323@TOKEN2017031723231TOKEN201703172323@$`[0m
|
||
[38;5;239m 01: TOKEN201703172323{5..1}TOKEN201703172323@[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 TOKEN201703172323{5..+1}[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN2017031723235@TOKEN2017031723234@TOKEN2017031723233@TOKEN2017031723232@TOKEN2017031723231@$`[0m
|
||
[38;5;239m 01: TOKEN201703172323{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}TOKEN201703172323[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^0TOKEN201703172323@-1TOKEN201703172323@-2TOKEN201703172323@-3TOKEN201703172323@-4TOKEN201703172323@-5TOKEN201703172323@$`[0m
|
||
[38;5;239m 01: {0..-5}TOKEN201703172323@[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}TOKEN201703172323[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^-98TOKEN201703172323@-99TOKEN201703172323@-100TOKEN201703172323@$`[0m
|
||
[38;5;239m 01: {-98..-100}TOKEN201703172323@[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 TOKEN201703172323{1..2}abc{-50..-53}def{0..0}[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN2017031723231abc-50def0@TOKEN2017031723231abc-51def0@TOKEN2017031723231abc-52def0@TOKEN2017031723231abc-53def0@TOKEN2017031723232abc-50def0@TOKEN2017031723232abc-51def0@TOKEN2017031723232abc-52def0@TOKEN2017031723232abc-53def0@$`[0m
|
||
[38;5;239m 01: TOKEN201703172323{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/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/42shelltest-tmp/tmp/write_all_arguments_on_stdout [!a-y][42]
|
||
02: /Users/ariard/42shelltest-tmp/tmp/write_all_arguments_on_stdout [^a-y][42][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `42@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `z4@`[0m
|
||
[31m[38;5;34m SUCCESS 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[38;5;34m SUCCESS might match_regex `^42@z2@z4@$`[0m
|
||
[38;5;239m 01: 42@z2@z4@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: syntax error near unexpected token `!'[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/42shelltest-tmp/tmp/write_all_arguments_on_stdout [!]az][[]
|
||
02: /Users/ariard/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 01: [^]az][[]@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: syntax error near unexpected token `!'[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/bracket-expansion/multi/004-simple-bracket+char+range[0m [31m[1;33m(WARNING)[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/42shelltest-tmp/tmp/write_all_arguments_on_stdout [aZ]-[1-9][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `a-1@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `a-2@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `Z-1@`[0m
|
||
[31m[38;5;34m SUCCESS 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 01: a-1@a-2@Z-1@Z-2@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[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/42shelltest-tmp/tmp/write_all_arguments_on_stdout [!a1Z]
|
||
02: /Users/ariard/42shelltest-tmp/tmp/write_all_arguments_on_stdout [^a1Z][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `d@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `e@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `f@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `def@`[0m
|
||
[31m[38;5;34m SUCCESS might match_regex `^d@e@f@$`[0m
|
||
[38;5;239m 01: d@e@f@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: syntax error near unexpected token `!'[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/42shelltest-tmp/tmp/write_all_arguments_on_stdout [!a-z]
|
||
02: /Users/ariard/42shelltest-tmp/tmp/write_all_arguments_on_stdout [^a-z][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `1@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `2@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `3@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `42@`[0m
|
||
[31m[38;5;34m SUCCESS might match_regex `^1@2@3@$`[0m
|
||
[38;5;239m 01: 1@2@3@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: syntax error near unexpected token `!'[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/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;34m SUCCESS 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;160m FAILURE expected_to_not match_regex `[[]]-z]@`[0m
|
||
[31m[1;33m WARNING might match_regex `^]@a@c@$`[0m
|
||
[38;5;239m 01: []-z]@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1m42sh/globbing/bracket-expansion/range-pattern/004-ascii-range-2[0m [31m[1;33m(WARNING)[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/42shelltest-tmp/tmp/write_all_arguments_on_stdout [1-z][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `2@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `a@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `B@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `c@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `Z@`[0m
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `]@`[0m
|
||
[31m[38;5;34m SUCCESS 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 01: 2@[@]@a@B@c@Z@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[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/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 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;160m FAILURE expected_to_not match_regex `[[]][[]]@`[0m
|
||
[31m[1;33m WARNING might match_regex `^[[]@]@$`[0m
|
||
[38;5;239m 01: [][]@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[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/42shelltest-tmp/tmp/write_all_arguments_on_stdout []][0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `]@`[0m
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `[[]]]@`[0m
|
||
[31m[1;33m WARNING might match_regex `^]@$`[0m
|
||
[38;5;239m 01: []]@[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to be_empty[0m
|
||
[38;5;239m (no output)[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: TOKEN201703172323_NAME=
|
||
02: ./write_on_stdout_and_stderr $TOKEN201703172323_NAME $TOKEN201703172323_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 "TOKEN201703172323_UNKNOWN"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_on_stdout $TOKEN201703172323_UNKNOWN TOKEN201703172323_DISPLAYED[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `TOKEN201703172323_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 "TOKEN201703172323_NAME=TOKEN201703172323_VALUE_OLD"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: TOKEN201703172323_NAME=TOKEN201703172323_VALUE_NEW
|
||
02: ./display_env[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703172323_NAME=TOKEN201703172323_VALUE_NEW$`[0m
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `^TOKEN201703172323_NAME=TOKEN201703172323_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: TOKEN201703172323_NAME=TOKEN201703172323_VALUE_OLD
|
||
07: TMPDIR=/var/folders/zz/zyxvpxvq6csfxvn_n0002_2m000khn/T/
|
||
08: Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.uRjg1YTz1a/Render
|
||
09: TERM_PROGRAM_VERSION=3.0.10
|
||
10: OLDPWD=/Users/ariard/42shelltest-tmp
|
||
11: TERM_SESSION_ID=w0t0p1:012161CB-942E-417B-AD70-740FF5490A87
|
||
12: ZSH=/Users/ariard/.oh-my-zsh
|
||
13: USER=ariard
|
||
14: SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.lQz9opv8hX/Listeners
|
||
15: __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
|
||
16: PAGER=less
|
||
17: TMUX=/private/tmp/tmux-18965/default,83855,1
|
||
18: HOMEBREW_CACHE=/tmp/ariard/Homebrew/Caches
|
||
19: LSCOLORS=Gxfxcxdxbxegedabagacad
|
||
20: PATH=/Users/ariard/.brew/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/munki://Users/ariard/local/bin
|
||
21: MAIL=ariard@student.42.fr
|
||
22: PWD=/Users/ariard/42shelltest-tmp/tmp
|
||
23: LANG=en_US.UTF-8
|
||
24: ITERM_PROFILE=Default
|
||
25: XPC_FLAGS=0x0
|
||
26: TMUX_PANE=%8
|
||
27: XPC_SERVICE_NAME=0
|
||
28: SHLVL=4
|
||
29: HOME=/Users/ariard
|
||
30: COLORFGBG=7;0
|
||
31: ITERM_SESSION_ID=w0t0p1:012161CB-942E-417B-AD70-740FF5490A87
|
||
32: LOGNAME=ariard
|
||
33: LESS=-R
|
||
34: LC_CTYPE=en_US.UTF-8
|
||
35: TMUX_PLUGIN_MANAGER_PATH=/Users/ariard/.tmux/plugins/
|
||
36: _=/Users/ariard/Projects/42sh/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 "TOKEN201703172323_NAME=TOKEN201703172323_VALUE"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: TOKEN201703172323_NAME=
|
||
02: ./display_env[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703172323_NAME=$`[0m
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `^TOKEN201703172323_NAME=TOKEN201703172323_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: TOKEN201703172323_NAME=TOKEN201703172323_VALUE
|
||
07: TMPDIR=/var/folders/zz/zyxvpxvq6csfxvn_n0002_2m000khn/T/
|
||
08: Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.uRjg1YTz1a/Render
|
||
09: TERM_PROGRAM_VERSION=3.0.10
|
||
10: OLDPWD=/Users/ariard/42shelltest-tmp
|
||
11: TERM_SESSION_ID=w0t0p1:012161CB-942E-417B-AD70-740FF5490A87
|
||
12: ZSH=/Users/ariard/.oh-my-zsh
|
||
13: USER=ariard
|
||
14: SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.lQz9opv8hX/Listeners
|
||
15: __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
|
||
16: PAGER=less
|
||
17: TMUX=/private/tmp/tmux-18965/default,83855,1
|
||
18: HOMEBREW_CACHE=/tmp/ariard/Homebrew/Caches
|
||
19: LSCOLORS=Gxfxcxdxbxegedabagacad
|
||
20: PATH=/Users/ariard/.brew/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/munki://Users/ariard/local/bin
|
||
21: MAIL=ariard@student.42.fr
|
||
22: PWD=/Users/ariard/42shelltest-tmp/tmp
|
||
23: LANG=en_US.UTF-8
|
||
24: ITERM_PROFILE=Default
|
||
25: XPC_FLAGS=0x0
|
||
26: TMUX_PANE=%8
|
||
27: XPC_SERVICE_NAME=0
|
||
28: SHLVL=4
|
||
29: HOME=/Users/ariard
|
||
30: COLORFGBG=7;0
|
||
31: ITERM_SESSION_ID=w0t0p1:012161CB-942E-417B-AD70-740FF5490A87
|
||
32: LOGNAME=ariard
|
||
33: LESS=-R
|
||
34: LC_CTYPE=en_US.UTF-8
|
||
35: TMUX_PLUGIN_MANAGER_PATH=/Users/ariard/.tmux/plugins/
|
||
36: _=/Users/ariard/Projects/42sh/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: TOKEN201703172323_NAME1=TOKEN201703172323_VALUE1 TOKEN201703172323_NAME2=TOKEN201703172323_VALUE2 TOKEN201703172323_NAME3=TOKEN201703172323_VALUE3
|
||
02: ./write_on_stdout_and_stderr $TOKEN201703172323_NAME1 $TOKEN201703172323_NAME1
|
||
03: ./write_on_stdout $TOKEN201703172323_NAME2
|
||
04: ./write_on_stderr $TOKEN201703172323_NAME3[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `^TOKEN201703172323_VALUE1$`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703172323_VALUE2$`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `^TOKEN201703172323_VALUE3$`[0m
|
||
[38;5;239m 01: TOKEN201703172323_VALUE1
|
||
02: [0m
|
||
|
||
STDERR:
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `^TOKEN201703172323_VALUE1$`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `^TOKEN201703172323_VALUE2$`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703172323_VALUE3$`[0m
|
||
[38;5;239m 01: TOKEN201703172323_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: TOKEN201703172323_NAME=TOKEN201703172323_VALUE1 TOKEN201703172323_NAME=TOKEN201703172323_VALUE2 TOKEN201703172323_NAME=TOKEN201703172323_VALUE3
|
||
02: ./write_on_stdout $TOKEN201703172323_NAME[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `^TOKEN201703172323_VALUE1$`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `^TOKEN201703172323_VALUE2$`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703172323_VALUE3$`[0m
|
||
[38;5;239m 01: TOKEN201703172323_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: TOKEN201703172323_NAME=TOKEN201703172323_VALUE ./display_env
|
||
02: ./write_on_stderr $TOKEN201703172323[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703172323_NAME=TOKEN201703172323_VALUE$`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `TOKEN201703172323_VALUE`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `write on stderr`[0m
|
||
[38;5;239m 01: minishell: command not found: TOKEN201703172323_NAME=TOKEN201703172323_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 "TOKEN201703172323_FILENAME"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: TOKEN201703172323_NAME=TOKEN201703172323_FILENAME
|
||
02: ./write_on_stdout TOKEN201703172323_VALUE > $TOKEN201703172323_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 `TOKEN201703172323_FILENAME` matching_regex `^TOKEN201703172323_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 "TOKEN201703172323_FILENAME"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: TOKEN201703172323_NAME=TOKEN201703172323_FILENAME
|
||
02: ./write_on_stdout TOKEN201703172323_VALUE1 >> $TOKEN201703172323_NAME
|
||
03: ./write_on_stdout TOKEN201703172323_VALUE2 >> $TOKEN201703172323_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 `TOKEN201703172323_FILENAME` matching_regex `^TOKEN201703172323_VALUE1$`[0m
|
||
[31m[38;5;160m FAILURE expected_to create_file `TOKEN201703172323_FILENAME` matching_regex `^TOKEN201703172323_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=/TOKEN201703172323"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: TOKEN201703172323=~
|
||
02: ./write_on_stdout TILDE:$TOKEN201703172323[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `TILDE:~`[0m
|
||
[31m[1;33m WARNING might match_regex `TILDE:/TOKEN201703172323`[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 "TOKEN201703172323 \" TOKEN201703172323"[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703172323 ` TOKEN201703172323$`[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 "TOKEN201703172323\"[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `^TOKEN201703172323$`[0m
|
||
[38;5;239m 01: TOKEN201703172323\[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 \\"TOKEN201703172323\\"[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^\TOKEN201703172323\$`[0m
|
||
[38;5;239m 01: \TOKEN201703172323\\[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/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/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 "TOKEN201703172323_NAME=TOKEN201703172323_VALUE"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_on_stdout "$TOKEN201703172323_NAME"$TOKEN201703172323_NAME'$TOKEN201703172323_NAME'[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `TOKEN201703172323_VALUETOKEN201703172323_VALUE[$]TOKEN201703172323_NAME`[0m
|
||
[38;5;239m 01: TOKEN201703172323_VALUEE$TOKEN201703172323_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/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: (TOKEN201703172323_NAME=TOKEN201703172323_VALUE ./display_env)
|
||
02: ./display_env[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703172323_NAME=TOKEN201703172323_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.uRjg1YTz1a/Render
|
||
08: TERM_PROGRAM_VERSION=3.0.10
|
||
09: TERM_SESSION_ID=w0t0p1:012161CB-942E-417B-AD70-740FF5490A87
|
||
10: ZSH=/Users/ariard/.oh-my-zsh
|
||
11: USER=ariard
|
||
12: SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.lQz9opv8hX/Listeners
|
||
13: __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
|
||
14: PAGER=less
|
||
15: TMUX=/private/tmp/tmux-18965/default,83855,1
|
||
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/42shelltest-tmp/tmp
|
||
21: LANG=en_US.UTF-8
|
||
22: ITERM_PROFILE=Default
|
||
23: XPC_FLAGS=0x0
|
||
24: TMUX_PANE=%8
|
||
25: XPC_SERVICE_NAME=0
|
||
26: SHLVL=4
|
||
27: HOME=/Users/ariard
|
||
28: COLORFGBG=7;0
|
||
29: ITERM_SESSION_ID=w0t0p1:012161CB-942E-417B-AD70-740FF5490A87
|
||
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/42shelltest-tmp
|
||
35: _=/Users/ariard/Projects/42sh/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: TOKEN201703172323_NAME=TOKEN201703172323_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: ( (TOKEN201703172323_NAME=TOKEN201703172323_VALUE ./display_env) ; ./display_env) ; ./display_env
|
||
02: [0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703172323_NAME=TOKEN201703172323_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.uRjg1YTz1a/Render
|
||
08: TERM_PROGRAM_VERSION=3.0.10
|
||
09: TERM_SESSION_ID=w0t0p1:012161CB-942E-417B-AD70-740FF5490A87
|
||
10: ZSH=/Users/ariard/.oh-my-zsh
|
||
11: USER=ariard
|
||
12: SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.lQz9opv8hX/Listeners
|
||
13: __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
|
||
14: PAGER=less
|
||
15: TMUX=/private/tmp/tmux-18965/default,83855,1
|
||
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/42shelltest-tmp/tmp
|
||
21: LANG=en_US.UTF-8
|
||
22: ITERM_PROFILE=Default
|
||
23: XPC_FLAGS=0x0
|
||
24: TMUX_PANE=%8
|
||
25: XPC_SERVICE_NAME=0
|
||
26: SHLVL=4
|
||
27: HOME=/Users/ariard
|
||
28: COLORFGBG=7;0
|
||
29: ITERM_SESSION_ID=w0t0p1:012161CB-942E-417B-AD70-740FF5490A87
|
||
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/42shelltest-tmp
|
||
35: _=/Users/ariard/Projects/42sh/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: TOKEN201703172323_NAME=TOKEN201703172323_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/42shelltest-tmp/tmp/display_pwd) | ./read_on_stdin) ) | ( ( (./read_on_stdin) ) | ./read_on_stdin )
|
||
02: ./write_on_stdout TOKEN201703172323[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `/Users/ariard/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 `TOKEN201703172323`[0m
|
||
[38;5;239m 01: TOKEN201703172323[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 "TOKEN201703172323_VARIABLE"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: TOKEN201703172323_VARIABLE=TOKEN201703172323_VALUE ./display_env
|
||
02: ./display_env[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703172323_VARIABLE=TOKEN201703172323_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.uRjg1YTz1a/Render
|
||
08: TERM_PROGRAM_VERSION=3.0.10
|
||
09: TERM_SESSION_ID=w0t0p1:012161CB-942E-417B-AD70-740FF5490A87
|
||
10: ZSH=/Users/ariard/.oh-my-zsh
|
||
11: USER=ariard
|
||
12: SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.lQz9opv8hX/Listeners
|
||
13: __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
|
||
14: PAGER=less
|
||
15: TMUX=/private/tmp/tmux-18965/default,83855,1
|
||
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/42shelltest-tmp/tmp
|
||
21: LANG=en_US.UTF-8
|
||
22: ITERM_PROFILE=Default
|
||
23: XPC_FLAGS=0x0
|
||
24: TMUX_PANE=%8
|
||
25: XPC_SERVICE_NAME=0
|
||
26: SHLVL=4
|
||
27: HOME=/Users/ariard
|
||
28: COLORFGBG=7;0
|
||
29: ITERM_SESSION_ID=w0t0p1:012161CB-942E-417B-AD70-740FF5490A87
|
||
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/42shelltest-tmp
|
||
35: _=/Users/ariard/Projects/42sh/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: TOKEN201703172323_VARIABLE=TOKEN201703172323_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 "TOKEN201703172323_VARIABLE"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: TOKEN201703172323_VARIABLE1=TOKEN201703172323_VALUE1 TOKEN201703172323_VARIABLE2=TOKEN201703172323_VALUE2 TOKEN201703172323_VARIABLE3=TOKEN201703172323_VALUE3 ./display_env
|
||
02: ./display_env[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703172323_VARIABLE1=TOKEN201703172323_VALUE1$` once[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703172323_VARIABLE2=TOKEN201703172323_VALUE2$` once[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703172323_VARIABLE3=TOKEN201703172323_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.uRjg1YTz1a/Render
|
||
08: TERM_PROGRAM_VERSION=3.0.10
|
||
09: TERM_SESSION_ID=w0t0p1:012161CB-942E-417B-AD70-740FF5490A87
|
||
10: ZSH=/Users/ariard/.oh-my-zsh
|
||
11: USER=ariard
|
||
12: SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.lQz9opv8hX/Listeners
|
||
13: __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
|
||
14: PAGER=less
|
||
15: TMUX=/private/tmp/tmux-18965/default,83855,1
|
||
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/42shelltest-tmp/tmp
|
||
21: LANG=en_US.UTF-8
|
||
22: ITERM_PROFILE=Default
|
||
23: XPC_FLAGS=0x0
|
||
24: TMUX_PANE=%8
|
||
25: XPC_SERVICE_NAME=0
|
||
26: SHLVL=4
|
||
27: HOME=/Users/ariard
|
||
28: COLORFGBG=7;0
|
||
29: ITERM_SESSION_ID=w0t0p1:012161CB-942E-417B-AD70-740FF5490A87
|
||
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/42shelltest-tmp
|
||
35: _=/Users/ariard/Projects/42sh/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: TOKEN201703172323_VARIABLE1=TOKEN201703172323_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 TOKEN201703172323
|
||
02: exit_with_status 42[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^TOKEN201703172323$`[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 `[Cc]ommand not found`[0m
|
||
[38;5;239m 01: minishell: command not found: PATH=..
|
||
02: minishell: command not found: exit_with_status[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 TOKEN201703172323[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS might_not match_regex `TOKEN201703172323`[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 TOKEN201703172323 &&& ./write_on_stdout TOKEN201703172323[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS might_not match_regex `TOKEN201703172323`[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 TOKEN201703172323[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 TOKEN201703172323 ||| ./write_on_stdout TOKEN201703172323[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=/TOKEN201703172323"[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 `/TOKEN201703172323[+]`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^/Users/ariard/42shelltest-tmp/tmp$`[0m
|
||
[38;5;239m 01: /TOKEN201703172323+[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=/TOKEN201703172323"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_on_stdout ~+/TOKEN201703172323_SUBDIRECTORY[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `~+/TOKEN201703172323_SUBDIRECTORY`[0m
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `/TOKEN201703172323[+]/TOKEN201703172323_SUBDIRECTORY`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^/Users/ariard/42shelltest-tmp/tmp/TOKEN201703172323_SUBDIRECTORY$`[0m
|
||
[38;5;239m 01: /TOKEN201703172323+/TOKEN201703172323_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 "./TOKEN201703172323_SUBDIRECTORY"
|
||
02: mkdir "./TOKEN201703172323_SUBDIRECTORY"
|
||
03: export "HOME=/TOKEN201703172323"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: cd ./TOKEN201703172323_SUBDIRECTORY
|
||
02: /Users/ariard/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 `/TOKEN201703172323-`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^/Users/ariard/42shelltest-tmp/tmp$`[0m
|
||
[38;5;239m 01: /TOKEN201703172323-[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 "./TOKEN201703172323_SUBDIRECTORY"
|
||
02: mkdir "./TOKEN201703172323_SUBDIRECTORY"
|
||
03: export "HOME=/TOKEN201703172323"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: cd ./TOKEN201703172323_SUBDIRECTORY
|
||
02: /Users/ariard/42shelltest-tmp/tmp/write_on_stdout ~-/TOKEN201703172323_OTHERDIRECTORY[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `~-/TOKEN201703172323_OTHERDIRECTORY`[0m
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `/TOKEN201703172323-/TOKEN201703172323_OTHERDIRECTORY`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^/Users/ariard/42shelltest-tmp/tmp/TOKEN201703172323_OTHERDIRECTORY$`[0m
|
||
[38;5;239m 01: /TOKEN201703172323-/TOKEN201703172323_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=/TOKEN201703172323"[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 `/TOKEN201703172323`[0m
|
||
[38;5;239m 01: /TOKEN201703172323~[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=/TOKEN201703172323"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_on_stdout ~TOKEN201703172323_UNKNOWNUSER[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^~TOKEN201703172323_UNKNOWNUSER$`[0m
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `/TOKEN201703172323TOKEN201703172323_UNKNOWNUSER`[0m
|
||
[38;5;239m 01: /TOKEN201703172323TOKEN201703172323_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=/TOKEN201703172323"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: ./write_on_stdout ~+TOKEN201703172323_SUBDIRECTORY[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^~[+]TOKEN201703172323_SUBDIRECTORY$`[0m
|
||
[31m[38;5;160m FAILURE expected_to_not match_regex `/TOKEN201703172323[+]TOKEN201703172323_SUBDIRECTORY`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `/Users/ariard/42shelltest-tmp/tmpTOKEN201703172323_SUBDIRECTORY`[0m
|
||
[38;5;239m 01: /TOKEN201703172323+TOKEN201703172323_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 "./TOKEN201703172323_SUBDIRECTORY"
|
||
02: mkdir "./TOKEN201703172323_SUBDIRECTORY"
|
||
03: export "HOME=/TOKEN201703172323"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: cd ./TOKEN201703172323_SUBDIRECTORY
|
||
02: /Users/ariard/42shelltest-tmp/tmp/write_on_stdout ~-TOKEN201703172323_OTHERDIRECTORY[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^~-TOKEN201703172323_OTHERDIRECTORY$`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `/TOKEN201703172323-/TOKEN201703172323_OTHERDIRECTORY`[0m
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `/Users/ariard/42shelltest-tmp/tmp/TOKEN201703172323_OTHERDIRECTORY`[0m
|
||
[38;5;239m 01: /TOKEN201703172323-TOKEN201703172323_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 "TOKEN201703172323"[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `TOKEN201703172323`[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 "TOKEN201703172323_006-BINARY-UNDEFINED-PATH"
|
||
02: touch "TOKEN201703172323_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 `TOKEN201703172323_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/42shelltest-tmp/tmp/display_pwd
|
||
03: /Users/ariard/42shelltest-tmp/tmp/display_env[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `PWD:/Users/ariard/42shelltest-tmp/tmp/sub_directory:PWD$`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^PWD=/Users/ariard/42shelltest-tmp/tmp/symbolic_link$`[0m
|
||
[38;5;239m 01: PWD:/Users/ariard/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.uRjg1YTz1a/Render
|
||
09: TERM_PROGRAM_VERSION=3.0.10
|
||
10: TERM_SESSION_ID=w0t0p1:012161CB-942E-417B-AD70-740FF5490A87
|
||
11: ZSH=/Users/ariard/.oh-my-zsh
|
||
12: USER=ariard
|
||
13: SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.lQz9opv8hX/Listeners
|
||
14: __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
|
||
15: PAGER=less
|
||
16: TMUX=/private/tmp/tmux-18965/default,83855,1
|
||
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/42shelltest-tmp/tmp/sub_directory
|
||
22: LANG=en_US.UTF-8
|
||
23: ITERM_PROFILE=Default
|
||
24: XPC_FLAGS=0x0
|
||
25: TMUX_PANE=%8
|
||
26: XPC_SERVICE_NAME=0
|
||
27: SHLVL=4
|
||
28: HOME=/Users/ariard
|
||
29: COLORFGBG=7;0
|
||
30: ITERM_SESSION_ID=w0t0p1:012161CB-942E-417B-AD70-740FF5490A87
|
||
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/42shelltest-tmp/tmp
|
||
36: _=/Users/ariard/Projects/42sh/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/42shelltest-tmp/tmp/display_pwd
|
||
03: /Users/ariard/42shelltest-tmp/tmp/display_env[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `PWD:/Users/ariard/42shelltest-tmp/tmp/sub_directory:PWD$`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `^PWD=/Users/ariard/42shelltest-tmp/tmp/symbolic_link2$`[0m
|
||
[38;5;239m 01: PWD:/Users/ariard/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.uRjg1YTz1a/Render
|
||
09: TERM_PROGRAM_VERSION=3.0.10
|
||
10: TERM_SESSION_ID=w0t0p1:012161CB-942E-417B-AD70-740FF5490A87
|
||
11: ZSH=/Users/ariard/.oh-my-zsh
|
||
12: USER=ariard
|
||
13: SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.lQz9opv8hX/Listeners
|
||
14: __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
|
||
15: PAGER=less
|
||
16: TMUX=/private/tmp/tmux-18965/default,83855,1
|
||
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/42shelltest-tmp/tmp/sub_directory
|
||
22: LANG=en_US.UTF-8
|
||
23: ITERM_PROFILE=Default
|
||
24: XPC_FLAGS=0x0
|
||
25: TMUX_PANE=%8
|
||
26: XPC_SERVICE_NAME=0
|
||
27: SHLVL=4
|
||
28: HOME=/Users/ariard
|
||
29: COLORFGBG=7;0
|
||
30: ITERM_SESSION_ID=w0t0p1:012161CB-942E-417B-AD70-740FF5490A87
|
||
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/42shelltest-tmp/tmp
|
||
36: _=/Users/ariard/Projects/42sh/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/42shelltest-tmp/tmp/display_pwd[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `PWD:/Users/ariard/42shelltest-tmp/tmp:PWD`[0m
|
||
[38;5;239m 01: PWD:/Users/ariard/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/42shelltest-tmp/tmp/display_pwd[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `PWD:/Users/ariard/42shelltest-tmp/tmp:PWD`[0m
|
||
[38;5;239m 01: PWD:/Users/ariard/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/42shelltest-tmp/tmp/display_pwd[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to match_regex `PWD:/Users/ariard/42shelltest-tmp/tmp:PWD`[0m
|
||
[38;5;239m 01: PWD:/Users/ariard/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 (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: minishell: no such file or directory: ./display_env[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1mminishell/builtins/env/005-set-variables[0m [31m[38;5;160m(FAILED)[0m
|
||
|
||
Description:
|
||
[38;5;239m The purpose of this test is to check that the builtin `env` can modify or set multiple environment variables before executing the given command.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: export VARTEST1="OLD_VALUE"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: env VARTEST1=TOKEN201703172323_1 VARTEST2=TOKEN201703172323_2 VARTEST3=TOKEN201703172323_3 ./display_env[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `VARTEST1=TOKEN201703172323_1`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `VARTEST2=TOKEN201703172323_2`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `VARTEST3=TOKEN201703172323_3`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: minishell: no such file or directory: ./display_env[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: no such file or directory: ./invalid_binary[0m
|
||
|
||
MISC:
|
||
[31m[38;5;160m FAILURE expected_to_not exit_with_status `0`[0m
|
||
|
||
----------------------------------------------------------------
|
||
|
||
[37;1mminishell/builtins/env/errors/002-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 `env` with an invalid option results in an error and failure exit status.[0m
|
||
|
||
Before test:
|
||
[38;5;239m 01: rm -f -- "-w"[0m
|
||
|
||
STDIN:
|
||
[38;5;239m 01: env -w[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 `([Ii]nvalid|[Ii]llegal) (option|argument)`[0m
|
||
[38;5;239m 01: env: option requires an argument -- w
|
||
02: usage: env [-iv] [-P utilpath] [-S string] [-u name]
|
||
03: [name=value ...] [utility [argument ...]][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=TOKEN201703172323 ./display_env[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `TESTVARIABLE=TOKEN201703172323`[0m
|
||
[31m[38;5;160m FAILURE expected_to match_regex `TOTAL ENVIRONMENT VARIABLES: 1`[0m
|
||
[38;5;239m (no output)[0m
|
||
|
||
STDERR:
|
||
[31m[38;5;160m FAILURE expected_to be_empty[0m
|
||
[38;5;239m 01: minishell: no such file or directory: ./display_env[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 TOKEN201703172323[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;160m FAILURE expected_to match_regex `TOKEN201703172323`[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 TOKEN201703172323[0m
|
||
|
||
STDOUT:
|
||
[31m[38;5;34m SUCCESS expected_to_not match_regex `TOKEN201703172323`[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: 296
|
||
Total failed tests: 105
|
||
Total pending tests: 3
|