🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥 ██ ██ █ ██ █ █ █████ █ █ █████ █ █ ██████ █████ █████ ██████ █████ █████ ███ ███ █ ███ █ █ █ █ █ █ █ █ ██ █ █ ██ █ █ ██ █ ████ █ █ █ ██ █ █ █████ █████ ████ █ █ ██ ████ █████ ██ ████ █████ █ ██ █ █ █ ██ █ █ █ █ █ █ █ █ ██ █ █ ██ █ █ ██ █ █ █ █ ███ █ █████ █ █ █████ █████ █████ ██ █████ █████ ██ █████ █ ██ 🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥 ———————————— builtins Test 1: ✅ echo hello world Test 2: ❌ echo "hello world" mini output = (echohello world) bash output = (hello world) Test 3: ❌ echo 'hello world' mini output = (echohello world) bash output = (hello world) Test 4: ❌ echo hello'world' mini output = (echohelloworld) bash output = (helloworld) Test 5: ❌ echo hello""world mini output = (echohelloworld) bash output = (helloworld) Test 6: ❌ echo '' mini output = (echo) bash output = () Test 7: ❌ echo "$PWD" mini output = (echo/Users/ecozturk/Desktop/minishell/minishell_tester) bash output = (/Users/ecozturk/Desktop/minishell/minishell_tester) Test 8: ❌ echo '$PWD' mini output = (echo$PWD) bash output = ($PWD) Test 9: ❌ echo "aspas ->'" mini output = (echoaspas ->') bash output = (aspas ->') Test 10: ❌ echo "aspas -> ' " mini output = (echoaspas -> ' ) bash output = (aspas -> ' ) Test 11: ❌ echo 'aspas ->"' mini output = (echoaspas ->") bash output = (aspas ->") Test 12: ❌ echo 'aspas -> " ' mini output = (echoaspas -> " ) bash output = (aspas -> " ) Test 13: ✅ echo "> >> < * ? [ ] | ; [ ] || && ( ) & # $ <<" Test 14: ✅ echo '> >> < * ? [ ] | ; [ ] || && ( ) & # $ <<' Test 15: ❌ echo "exit_code ->$? user ->$USER home -> $HOME" mini output = () bash output = (exit_code ->0 user ->ecozturk home -> /Users/ecozturk) Test 16: ❌ echo 'exit_code ->$? user ->$USER home -> $HOME' mini output = () bash output = (exit_code ->$? user ->$USER home -> $HOME) Test 17: ❌ echo "$" mini output = (echo$) bash output = ($) Test 18: ❌ echo '$' mini output = (echo$) bash output = ($) Test 19: ✅ echo $ Test 20: ✅ echo $? Test 21: ✅ echo $?HELLO Test 22: ✅ pwd Test 23: ✅ pwd oi Test 24: ✅ export hello Test 25: ✅ export HELLO=123 Test 26: ❌ export A- mini exit code = 0 bash exit code = 1 mini error = () bash error = ( not a valid identifier) Test 27: ✅ export HELLO=123 A Test 28: ✅ export HELLO="123 A-" Test 29: ✅ export hello world Test 30: ❌ export HELLO-=123 mini exit code = 0 bash exit code = 1 mini error = () bash error = ( not a valid identifier) Test 31: ✅ export = Test 32: ❌ export 123 mini exit code = 0 bash exit code = 1 mini error = () bash error = ( not a valid identifier) Test 33: ✅ unset Test 34: ✅ unset HELLO Test 35: ✅ unset HELLO1 HELLO2 Test 36: ✅ unset HOME Test 37: ✅ unset PATH Test 38: ✅ unset SHELL Test 39: ✅ cd $PWD Test 40: ✅ cd $PWD hi Test 41: ✅ cd 123123 Test 42: ✅ exit 123 Test 43: ✅ exit 298 Test 44: ✅ exit +100 Test 45: ❌ exit "+100" mini exit code = 255 bash exit code = 100 mini error = ( numeric argument required) bash error = () Test 46: ❌ exit +"100" mini exit code = 255 bash exit code = 100 mini error = ( numeric argument required) bash error = () Test 47: ✅ exit -100 Test 48: ❌ exit "-100" mini exit code = 255 bash exit code = 156 mini error = ( numeric argument required) bash error = () Test 49: ❌ exit -"100" mini exit code = 255 bash exit code = 156 mini error = ( numeric argument required) bash error = () Test 50: ✅ exit hello Test 51: ✅ exit 42 world Test 52: ✅ exit 9223372036854775807 Test 53: ❌ exit 9223372036854775808 mini exit code = 0 bash exit code = 255 mini error = () bash error = ( numeric argument required) Test 54: ✅ exit -9223372036854775807 Test 55: ✅ exit -9223372036854775808 Test 56: ✅⚠️  exit -9223372036854775809 mini error = () bash error = ( numeric argument required) ———————————— pipes Test 57: ✅ env | sort | grep -v SHLVL | grep -v ^_ Test 58: ❌ export | sort | grep -v SHLVL | grep -v "declare -x _" | grep -v "PS.=" mini output = () bash output = (declare -x COLORTERM="truecolor" declare -x COMMAND_MODE="unix2003" declare -x GIT_ASKPASS="/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass.sh" declare -x HOME="/Users/ecozturk" declare -x LANG="tr_TR.UTF-8" declare -x LESS="-R" declare -x LOGNAME="ecozturk" declare -x LSCOLORS="Gxfxcxdxbxegedabagacad" declare -x LS_COLORS="di=1;36:ln=35:so=32:pi=33:ex=31:bd=34;46:cd=34;43:su=30;41:sg=30;46:tw=30;42:ow=30;43" declare -x LaunchInstanceID="37B6AC90-B16A-42BE-878E-CBCF5AC3F56B" declare -x MallocNanoZone="0" declare -x OLDPWD declare -x ORIGINAL_XDG_CURRENT_DESKTOP="undefined" declare -x PAGER="less" declare -x PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/munki:/Library/Apple/usr/bin" declare -x PWD="/Users/ecozturk/Desktop/minishell/minishell_tester" declare -x SECURITYSESSIONID="186a7" declare -x SHELL="/bin/zsh" declare -x SSH_AUTH_SOCK="/private/tmp/com.apple.launchd.l5cjJO60Wb/Listeners" declare -x TERM="xterm-256color" declare -x TERM_PROGRAM="vscode" declare -x TERM_PROGRAM_VERSION="1.71.2" declare -x TMPDIR="/var/folders/zz/zyxvpxvq6csfxvn_n000cj7m00349x/T/" declare -x USER="ecozturk" declare -x VSCODE_GIT_ASKPASS_EXTRA_ARGS="--ms-enable-electron-run-as-node" declare -x VSCODE_GIT_ASKPASS_MAIN="/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass-main.js" declare -x VSCODE_GIT_ASKPASS_NODE="/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper.app/Contents/MacOS/Code Helper" declare -x VSCODE_GIT_IPC_HANDLE="/var/folders/zz/zyxvpxvq6csfxvn_n000cj7m00349x/T/vscode-git-6ecf7fe2dd.sock" declare -x VSCODE_INJECTION="1" declare -x XPC_FLAGS="0x0" declare -x XPC_SERVICE_NAME="0" declare -x ZDOTDIR="/var/folders/zz/zyxvpxvq6csfxvn_n000cj7m00349x/T/vscode-zsh" declare -x ZSH="/Users/ecozturk/.oh-my-zsh") mini exit code = 2 bash exit code = 0 mini error = ( unknown --directories option grep [-abcDEFGHhIiJLlmnOoqRSsUVvwxZ] [-A num] [-B num] [-C[num]] [-e pattern] [-f file] [--binary-files=value] [--color=when] [--context[=num]] [--directories=action] [--label] [--line-buffered] [--null] [pattern] [file ...]) bash error = () Test 59: ✅ cat ./test_files/infile_big | grep oi Test 60: ❌ cat minishell.h | grep ");"$ mini exit code = 139 bash exit code = 1 mini error = () bash error = ( No such file or directory) Test 61: ✅ export GHOST=123 | env | grep GHOST ———————————— redirects Test 62: ✅ grep hi <./test_files/infile Test 63: ✅ grep hi "./outfiles/outfile01 Test 87: ✅ ls > ./outfiles/outfile01 Test 88: ✅ echo hi > ./outfiles/outfile01 bye Test 89: ✅ ls >./outfiles/outfile01 >./outfiles/outfile02 Test 90: ✅⚠️  ls >./outfiles/outfile01 >./test_files/invalid_permission mini error = ( No such file or directory) bash error = ( Permission denied) Test 91: ✅ ls >"./outfiles/outfile with spaces" Test 92: ✅ ls >"./outfiles/outfile""1""2""3""4""5" Test 93: ❌ ls >"./outfiles/outfile01" >./test_files/invalid_permission >"./outfiles/outfile02" Only in ./mini_outfiles: outfile02 mini outfiles: README.md bash.supp bash_outfiles bonus bonus_bonus builtins extras local.supp loop.out manual_tests mini_outfiles os_specific outfiles pipes redirects syntax test_files tester wildcards bash outfiles: mini exit code = 0 bash exit code = 1 mini error = ( No such file or directory) bash error = ( Permission denied) Test 94: ❌ ls >./test_files/invalid_permission >"./outfiles/outfile01" >./test_files/invalid_permission Only in ./mini_outfiles: outfile01 mini outfiles: bash outfiles: mini error = ( No such file or directory No such file or directory) bash error = ( Permission denied) Test 95: ✅ cat <"./test_files/infile" >"./outfiles/outfile01" Test 96: ✅ echo hi >./outfiles/outfile01 | echo bye Test 97: ✅ echo hi >./outfiles/outfile01 >./outfiles/outfile02 | echo bye Test 98: ✅ echo hi | echo >./outfiles/outfile01 bye Test 99: ✅ echo hi | echo bye >./outfiles/outfile01 >./outfiles/outfile02 Test 100: ✅ echo hi >./outfiles/outfile01 | echo bye >./outfiles/outfile02 Test 101: ✅⚠️  echo hi >./outfiles/outfile01 >./test_files/invalid_permission | echo bye mini error = ( No such file or directory) bash error = ( Permission denied) Test 102: ✅⚠️  echo hi >./test_files/invalid_permission | echo bye mini error = ( No such file or directory) bash error = ( Permission denied) Test 103: ❌ echo hi >./test_files/invalid_permission >./outfiles/outfile01 | echo bye Only in ./mini_outfiles: outfile01 mini outfiles: hi bash outfiles: mini error = ( No such file or directory) bash error = ( Permission denied) Test 104: ✅⚠️  echo hi | echo bye >./test_files/invalid_permission mini error = ( No such file or directory) bash error = ( Permission denied) Test 105: ✅⚠️  echo hi | >./outfiles/outfile01 echo bye >./test_files/invalid_permission mini error = ( No such file or directory) bash error = ( Permission denied) Test 106: ❌ echo hi | echo bye >./test_files/invalid_permission >./outfiles/outfile01 Only in ./mini_outfiles: outfile01 mini outfiles: bye bash outfiles: mini exit code = 0 bash exit code = 1 mini error = ( No such file or directory) bash error = ( Permission denied) Test 107: ✅⚠️  cat <"./test_files/infile" >./test_files/invalid_permission mini error = ( No such file or directory) bash error = ( Permission denied) Test 108: ✅⚠️  cat >./test_files/invalid_permission <"./test_files/infile" mini error = ( No such file or directory) bash error = ( Permission denied) Test 109: ❌ cat ./outfiles/outfile01 Only in ./mini_outfiles: outfile01 mini outfiles: bash outfiles: Test 110: ✅ cat >./outfiles/outfile01 ./test_files/invalid_permission mini error = ( No such file or directory No such file or directory) bash error = ( No such file or directory) Test 112: ✅⚠️  cat >./test_files/invalid_permission ./outfiles/outfile01 ./test_files/invalid_permission mini error = ( No such file or directory No such file or directory) bash error = ( No such file or directory) Test 114: ✅ ls >>./outfiles/outfile01 Test 115: ✅ ls >> ./outfiles/outfile01 Test 116: ✅ ls >>./outfiles/outfile01 >./outfiles/outfile01 Test 117: ✅ ls >./outfiles/outfile01 >>./outfiles/outfile01 Test 118: ✅ ls >./outfiles/outfile01 >>./outfiles/outfile01 >./outfiles/outfile02 Test 119: ✅ ls >>./outfiles/outfile01 >>./outfiles/outfile02 Test 120: ✅⚠️  ls >>./test_files/invalid_permission mini error = ( No such file or directory) bash error = ( Permission denied) Test 121: ❌ ls >>./test_files/invalid_permission >>./outfiles/outfile01 Only in ./mini_outfiles: outfile01 mini outfiles: README.md bash.supp bash_outfiles bonus bonus_bonus builtins extras local.supp loop.out manual_tests mini_outfiles os_specific outfiles pipes redirects syntax test_files tester wildcards bash outfiles: mini exit code = 0 bash exit code = 1 mini error = ( No such file or directory) bash error = ( Permission denied) Test 122: ✅⚠️  ls >>./outfiles/outfile01 >>./test_files/invalid_permission mini error = ( No such file or directory) bash error = ( Permission denied) Test 123: ❌ ls >./outfiles/outfile01 >>./test_files/invalid_permission >>./outfiles/outfile02 Only in ./mini_outfiles: outfile02 mini outfiles: README.md bash.supp bash_outfiles bonus bonus_bonus builtins extras local.supp loop.out manual_tests mini_outfiles os_specific outfiles pipes redirects syntax test_files tester wildcards bash outfiles: mini exit code = 0 bash exit code = 1 mini error = ( No such file or directory) bash error = ( Permission denied) Test 124: ❌ ls >./test_files/invalid_permission >>./outfiles/outfile02 Only in ./mini_outfiles: outfile02 mini outfiles: bash outfiles: mini error = ( No such file or directory No such file or directory) bash error = ( No such file or directory) Test 125: ❌ ls >>./test_files/invalid_permission >>./outfiles/outfile02 >./outfiles/outfile01 | echo bye Test 127: ✅ echo hi >>./outfiles/outfile01 >>./outfiles/outfile02 | echo bye Test 128: ✅ echo hi | echo >>./outfiles/outfile01 bye Test 129: ✅ echo hi | echo bye >>./outfiles/outfile01 >>./outfiles/outfile02 Test 130: ✅ echo hi >>./outfiles/outfile01 | echo bye >>./outfiles/outfile02 Test 131: ✅⚠️  echo hi >>./test_files/invalid_permission | echo bye mini error = ( No such file or directory) bash error = ( Permission denied) Test 132: ❌ echo hi >>./test_files/invalid_permission >./outfiles/outfile01 | echo bye Only in ./mini_outfiles: outfile01 mini outfiles: hi bash outfiles: mini error = ( No such file or directory) bash error = ( Permission denied) Test 133: ✅⚠️  echo hi | echo bye >>./test_files/invalid_permission mini error = ( No such file or directory) bash error = ( Permission denied) Test 134: ✅⚠️  echo hi | echo >>./outfiles/outfile01 bye >./test_files/invalid_permission mini error = ( No such file or directory) bash error = ( Permission denied) Test 135: ❌ cat ./outfiles/outfile Only in ./mini_outfiles: outfile mini outfiles: bash outfiles: Test 136: ✅ cat