11 KiB
11 KiB
...x...~......xx........~...........~.....~...........
----------------------------------------------------------------
minishell/binary/004-binary-test-empty-path (FAILED)
Description:
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.
Before test:
01: export PATH=""
STDIN:
01: write_on_stdout "TOKEN201703291625"
STDOUT:
FAILURE expected_to match_regex `TOKEN201703291625`
(no output)
STDERR:
FAILURE expected_to be_empty
01: ../../42sh: command not found: write_on_stdout
MISC:
FAILURE expected_to exit_with_status `0`
----------------------------------------------------------------
minishell/binary/008-binary-too-many-symbolic-links-encountered (WARNING)
Description:
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.
Before test:
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
STDIN:
01: ./symbolic_link1
STDOUT:
SUCCESS might be_empty
(no output)
STDERR:
SUCCESS expected_to_not be_empty
WARNING might match_regex `[Tt]oo many.*symbolic links`
01: ../../42sh: ./symbolic_link1: no such file or directory
MISC:
SUCCESS expected_to_not exit_with_status 0
----------------------------------------------------------------
minishell/builtins/cd/007-symbolic-link (FAILED)
Description:
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.
Before test:
01: rm -f "./symbolic_link"
02: mkdir -p "./sub_directory"
03: ln -s "./sub_directory" "./symbolic_link"
STDIN:
01: cd symbolic_link
02: /Users/ariard/Projects/42sh/42ShellTester/tmp/display_pwd
03: /Users/ariard/Projects/42sh/42ShellTester/tmp/display_env
STDOUT:
SUCCESS expected_to match_regex `PWD:/Users/ariard/Projects/42sh/42ShellTester/tmp/sub_directory:PWD$`
FAILURE expected_to match_regex `^PWD=/Users/ariard/Projects/42sh/42ShellTester/tmp/symbolic_link$`
01: PWD:/Users/ariard/Projects/42sh/42ShellTester/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.4f2AkmTXni/Render
09: TERM_PROGRAM_VERSION=3.0.10
10: TERM_SESSION_ID=w0t0p0:27D68FBB-A085-467A-8F02-568DA11416F0
11: ZSH=/Users/ariard/.oh-my-zsh
12: USER=ariard
13: SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.VotSnLjyD2/Listeners
14: __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
15: PAGER=less
16: TMUX=/private/tmp/tmux-18965/default,460,2
17: HOMEBREW_CACHE=/tmp/ariard/Homebrew/Caches
18: LSCOLORS=Gxfxcxdxbxegedabagacad
19: PATH=/Users/ariard/.brew/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/munki://Users/ariard/local/bin
20: MAIL=ariard@student.42.fr
21: PWD=/Users/ariard/Projects/42sh/42ShellTester/tmp/sub_directory
22: LANG=en_US.UTF-8
23: ITERM_PROFILE=Default
24: XPC_FLAGS=0x0
25: TMUX_PANE=%22
26: XPC_SERVICE_NAME=0
27: SHLVL=5
28: HOME=/Users/ariard
29: COLORFGBG=7;0
30: ITERM_SESSION_ID=w0t0p0:27D68FBB-A085-467A-8F02-568DA11416F0
31: LOGNAME=ariard
32: LESS=-R
33: LC_CTYPE=en_US.UTF-8
34: TMUX_PLUGIN_MANAGER_PATH=/Users/ariard/.tmux/plugins/
35: OLDPWD=/Users/ariard/Projects/42sh/42ShellTester/tmp
36: _=../../42sh
37: ?=0
38: ------------------------------
39: TOTAL ENVIRONMENT VARIABLES: 35
STDERR:
SUCCESS expected_to be_empty
(no output)
----------------------------------------------------------------
minishell/builtins/cd/008-symbolic-link-2 (FAILED)
Description:
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.
Before test:
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"
STDIN:
01: cd symbolic_link2
02: /Users/ariard/Projects/42sh/42ShellTester/tmp/display_pwd
03: /Users/ariard/Projects/42sh/42ShellTester/tmp/display_env
STDOUT:
SUCCESS expected_to match_regex `PWD:/Users/ariard/Projects/42sh/42ShellTester/tmp/sub_directory:PWD$`
FAILURE expected_to match_regex `^PWD=/Users/ariard/Projects/42sh/42ShellTester/tmp/symbolic_link2$`
01: PWD:/Users/ariard/Projects/42sh/42ShellTester/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.4f2AkmTXni/Render
09: TERM_PROGRAM_VERSION=3.0.10
10: TERM_SESSION_ID=w0t0p0:27D68FBB-A085-467A-8F02-568DA11416F0
11: ZSH=/Users/ariard/.oh-my-zsh
12: USER=ariard
13: SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.VotSnLjyD2/Listeners
14: __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
15: PAGER=less
16: TMUX=/private/tmp/tmux-18965/default,460,2
17: HOMEBREW_CACHE=/tmp/ariard/Homebrew/Caches
18: LSCOLORS=Gxfxcxdxbxegedabagacad
19: PATH=/Users/ariard/.brew/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/munki://Users/ariard/local/bin
20: MAIL=ariard@student.42.fr
21: PWD=/Users/ariard/Projects/42sh/42ShellTester/tmp/sub_directory
22: LANG=en_US.UTF-8
23: ITERM_PROFILE=Default
24: XPC_FLAGS=0x0
25: TMUX_PANE=%22
26: XPC_SERVICE_NAME=0
27: SHLVL=5
28: HOME=/Users/ariard
29: COLORFGBG=7;0
30: ITERM_SESSION_ID=w0t0p0:27D68FBB-A085-467A-8F02-568DA11416F0
31: LOGNAME=ariard
32: LESS=-R
33: LC_CTYPE=en_US.UTF-8
34: TMUX_PLUGIN_MANAGER_PATH=/Users/ariard/.tmux/plugins/
35: OLDPWD=/Users/ariard/Projects/42sh/42ShellTester/tmp
36: _=../../42sh
37: ?=0
38: ------------------------------
39: TOTAL ENVIRONMENT VARIABLES: 35
STDERR:
SUCCESS expected_to be_empty
(no output)
----------------------------------------------------------------
minishell/builtins/cd/errors/005-too-many-symbolic-links-encountered (WARNING)
Description:
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.
Before test:
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"
STDIN:
01: cd symbolic_link1
02: /Users/ariard/Projects/42sh/42ShellTester/tmp/display_pwd
STDOUT:
SUCCESS expected_to match_regex `PWD:/Users/ariard/Projects/42sh/42ShellTester/tmp:PWD`
01: PWD:/Users/ariard/Projects/42sh/42ShellTester/tmp:PWD
STDERR:
SUCCESS expected_to_not be_empty
WARNING might match_regex `[Tt]oo many.*symbolic links`
01: ../../42sh: cd : symbolic_link1: No such file or directory
----------------------------------------------------------------
minishell/builtins/env/errors/001-command-not-found (WARNING)
Description:
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.
Before test:
01: rm -f "./invalid_binary"
STDIN:
01: env ./invalid_binary
STDOUT:
(no output)
STDERR:
SUCCESS expected_to_not be_empty
WARNING might match_regex `[Cc]ommand not found`
01: ../../42sh: env: ./invalid_binary: No such file or directory
MISC:
SUCCESS expected_to_not exit_with_status `0`
----------------------------------------------------------------
minishell/builtins/exit/errors/001-too-many-args (WARNING)
Description:
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.
STDIN:
01: exit 21 42
02: ./write_on_stdout TOKEN201703291625
STDOUT:
SUCCESS expected_to match_regex `TOKEN201703291625`
01: TOKEN201703291625
STDERR:
SUCCESS expected_to_not be_empty
WARNING might match_regex `([Tt]oo many arguments|[Aa]rgument list too long)`
01: ../../42sh: exit: too many argument required
MISC:
SUCCESS expected_to exit_with_status `0`
Total tests: 54
Total failed tests: 3
Total pending tests: 0
----------------------------------------------------------------
minishell/binary/004-binary-test-empty-path (FAILED)
Description:
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.
Before test:
01: export PATH=""
STDIN:
01: write_on_stdout "TOKEN201703291625"
STDOUT:
FAILURE expected_to match_regex `TOKEN201703291625`
(no output)
STDERR:
FAILURE expected_to be_empty
01: ../../42sh: command not found: write_on_stdout
MISC:
FAILURE expected_to exit_with_status `0`
----------------------------------------------------------------
minishell/binary/008-binary-too-many-symbolic-links-encountered (WARNING)
Description:
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.
Before test:
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
STDIN:
01: ./symbolic_link1
STDOUT:
SUCCESS might be_empty
(no output)
STDERR:
SUCCESS expected_to_not be_empty
WARNING might match_regex `[Tt]oo many.*symbolic links`
01: ../../42sh: ./symbolic_link1: no such file or directory
MISC:
SUCCESS expected_to_not exit_with_status 0
----------------------------------------------------------------
minishell/builtins/cd/007-symbolic-link (FAILED)
Description:
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.
Before test:
01: rm -f "./symbolic_link"
02: mkdir -p "./sub_directory"
03: ln -s "./sub_directory" "./symbolic_link"
STDIN:
01: cd symbolic_link
02: /Users/ariard/Projects/42sh/42ShellTester/tmp/display_pwd
03: /Users/ariard/Projects/42sh/42ShellTester/tmp/display_env
STDOUT:
SUCCESS expected_to match_regex `PWD:/Users/ariard/Projects/42sh/42ShellTester/tmp/sub_directory:PWD$`
FAILURE expected_to match_regex `^PWD=/Users/ariard/Projects/42sh/42ShellTester/tmp/symbolic_link$`
01: PWD:/Users/ariard/Projects/42sh/42ShellTester/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.4f2AkmTXni/Render
09: TERM_PROGRAM_VERSION=3.0.10
10: TERM_SESSION_ID=w0t0p0:27D68FBB-A085-467A-8F02-568DA11416F0
11: ZSH=/Users/ariard/.oh-my-zsh
12: USER=ariard
13: SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.VotSnLjyD2/Listeners
14: __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
15: PAGER=less
16: TMUX=/private/tmp/tmux-18965/default,460,2
17: HOMEBREW_CACHE=/tmp/ariard/Homebrew/Caches
18: LSCOLORS=Gxfxcxdxbxegedabagacad
19: PATH=/Users/ariard/.brew/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/munki://Users/ariard/local/bin
20: MAIL=ariard@student.42.fr
21: PWD=/Users/ariard/Projects/42sh/42ShellTester/tmp/sub_directory
22: LANG=en_US.UTF-8
23: ITERM_PROFILE=Default
24: XPC_FLAGS=0x0
25: TMUX_PANE=%22
26: XPC_SERVICE_NAME=0
27: SHLVL=5
28: HOME=/Users/ariard
29: COLORFGBG=7;0
30: ITERM_SESSION_ID=w0t0p0:27D68FBB-A085-467A-8F02-568DA11416F0
31: LOGNAME=ariard
32: LESS=-R
33: LC_CTYPE=en_US.UTF-8
34: TMUX_PLUGIN_MANAGER_PATH=/Users/ariard/.tmux/plugins/
35: OLDPWD=/Users/ariard/Projects/42sh/42ShellTester/tmp
36: _=../../42sh
37: ?=0
38: ------------------------------
39: TOTAL ENVIRONMENT VARIABLES: 35
STDERR:
SUCCESS expected_to be_empty
(no output)
----------------------------------------------------------------
minishell/builtins/cd/008-symbolic-link-2 (FAILED)
Description:
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.
Before test:
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"
STDIN:
01: cd symbolic_link2
02: /Users/ariard/Projects/42sh/42ShellTester/tmp/display_pwd
03: /Users/ariard/Projects/42sh/42ShellTester/tmp/display_env
STDOUT:
SUCCESS expected_to match_regex `PWD:/Users/ariard/Projects/42sh/42ShellTester/tmp/sub_directory:PWD$`
FAILURE expected_to match_regex `^PWD=/Users/ariard/Projects/42sh/42ShellTester/tmp/symbolic_link2$`
01: PWD:/Users/ariard/Projects/42sh/42ShellTester/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.4f2AkmTXni/Render
09: TERM_PROGRAM_VERSION=3.0.10
10: TERM_SESSION_ID=w0t0p0:27D68FBB-A085-467A-8F02-568DA11416F0
11: ZSH=/Users/ariard/.oh-my-zsh
12: USER=ariard
13: SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.VotSnLjyD2/Listeners
14: __CF_USER_TEXT_ENCODING=0x4A15:0x0:0x0
15: PAGER=less
16: TMUX=/private/tmp/tmux-18965/default,460,2
17: HOMEBREW_CACHE=/tmp/ariard/Homebrew/Caches
18: LSCOLORS=Gxfxcxdxbxegedabagacad
19: PATH=/Users/ariard/.brew/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/munki://Users/ariard/local/bin
20: MAIL=ariard@student.42.fr
21: PWD=/Users/ariard/Projects/42sh/42ShellTester/tmp/sub_directory
22: LANG=en_US.UTF-8
23: ITERM_PROFILE=Default
24: XPC_FLAGS=0x0
25: TMUX_PANE=%22
26: XPC_SERVICE_NAME=0
27: SHLVL=5
28: HOME=/Users/ariard
29: COLORFGBG=7;0
30: ITERM_SESSION_ID=w0t0p0:27D68FBB-A085-467A-8F02-568DA11416F0
31: LOGNAME=ariard
32: LESS=-R
33: LC_CTYPE=en_US.UTF-8
34: TMUX_PLUGIN_MANAGER_PATH=/Users/ariard/.tmux/plugins/
35: OLDPWD=/Users/ariard/Projects/42sh/42ShellTester/tmp
36: _=../../42sh
37: ?=0
38: ------------------------------
39: TOTAL ENVIRONMENT VARIABLES: 35
STDERR:
SUCCESS expected_to be_empty
(no output)
----------------------------------------------------------------
minishell/builtins/cd/errors/005-too-many-symbolic-links-encountered (WARNING)
Description:
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.
Before test:
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"
STDIN:
01: cd symbolic_link1
02: /Users/ariard/Projects/42sh/42ShellTester/tmp/display_pwd
STDOUT:
SUCCESS expected_to match_regex `PWD:/Users/ariard/Projects/42sh/42ShellTester/tmp:PWD`
01: PWD:/Users/ariard/Projects/42sh/42ShellTester/tmp:PWD
STDERR:
SUCCESS expected_to_not be_empty
WARNING might match_regex `[Tt]oo many.*symbolic links`
01: ../../42sh: cd : symbolic_link1: No such file or directory
----------------------------------------------------------------
minishell/builtins/env/errors/001-command-not-found (WARNING)
Description:
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.
Before test:
01: rm -f "./invalid_binary"
STDIN:
01: env ./invalid_binary
STDOUT:
(no output)
STDERR:
SUCCESS expected_to_not be_empty
WARNING might match_regex `[Cc]ommand not found`
01: ../../42sh: env: ./invalid_binary: No such file or directory
MISC:
SUCCESS expected_to_not exit_with_status `0`
----------------------------------------------------------------
minishell/builtins/exit/errors/001-too-many-args (WARNING)
Description:
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.
STDIN:
01: exit 21 42
02: ./write_on_stdout TOKEN201703291625
STDOUT:
SUCCESS expected_to match_regex `TOKEN201703291625`
01: TOKEN201703291625
STDERR:
SUCCESS expected_to_not be_empty
WARNING might match_regex `([Tt]oo many arguments|[Aa]rgument list too long)`
01: ../../42sh: exit: too many argument required
MISC:
SUCCESS expected_to exit_with_status `0`
Total tests: 54
Total failed tests: 3
Total pending tests: 0