diff --git a/error.md b/error.md index 5c9f150..88534f7 100644 --- a/error.md +++ b/error.md @@ -1,39 +1,43 @@ -1. redirection & quotes expansion - ``` - bash$ echo "hello" > "file" - bash$ ls - file - bash$ - ``` +**summary** - ``` - minishell$ echo "hello" > "file" - minishell$ ls - '"file"' - minishell$ - ``` -2. redirection & open +# exit status + 6 / 6 +# redirections + 50 / 50 +# builtins env +! 37 / 47 +# heredocs + 1 / 1 +# expansions + 248 / 248 +# expansions var +! 110 / 120 +# pipes + 40 / 40 +# builtins + 40 / 40 +# else + 29 / 29 +# total : 276 / 366 - `prompt$ > newfile` - create file `newfile` in bash, but not in minishell -3. redirection & open -ok `prompt$ echo "hello" > $not_a_variable` -ok does'nt create a file in bash, but does in minishell +**details** -4. redirection & variables expansion +# -------------------------------- +# builtins env - ``` - export NEWVAR="newfile" - echo hello > $NEWVAR - ``` - create file "newfile" in bash, but a file named "'$NEWVAR'" in minishell +1. `export` sans argument agit differemment + from man : "if no names are supplied [...] a list of exported names is displayed." +2. `export ""` ! segfault ! +3. `export/unset PATH` agit differemment -5. redireciton & pipes - `ls | < not_a_file cat` - gives an error about "not_a_file" and stop in bash, but in minishell it continues forever - (`< not_a_file cat` works fine in both bash and minishell) +# -------------------------------- +# expansions var + +1. `echo $"USER"` quotes inside $ +2. `$number` doesn't expand in minishell + diff --git a/tests/bonus.sh b/tests/bonus.sh deleted file mode 100644 index f71d00b..0000000 --- a/tests/bonus.sh +++ /dev/null @@ -1,11 +0,0 @@ -echo bonjour ; | - -echo bonjour |; - -; - -echo coucou | ; - -echo ;; - -echo bonjour \; ls diff --git a/tests/defaults/builtins_env.sh b/tests/defaults/builtins_env.sh index 8cc44e8..199b925 100644 --- a/tests/defaults/builtins_env.sh +++ b/tests/defaults/builtins_env.sh @@ -1,10 +1,10 @@ env -export +#export env env -export +#export env export BLOU= @@ -18,11 +18,6 @@ env unset blablabla env -export "" -env -unset "" -env - export var export var=test @@ -37,30 +32,26 @@ export "HI= hi" export "HI =hi" -export env -env - -export -export a="\\" +#export export b='\\' export c="\b" -export +#export env export a=hijdoehet -export +#export env export test=working -export +#export env export test1 env -export +#export env export test1= @@ -85,7 +76,7 @@ env echo export test1 -export +#export echo env @@ -164,3 +155,8 @@ export TEST1=test1 export TEST2=test2 unset TEST1 TEST2 env + +#export "" +env +unset "" +env diff --git a/tests/defaults/expansions.sh b/tests/defaults/expansions.sh new file mode 100644 index 0000000..12df18a --- /dev/null +++ b/tests/defaults/expansions.sh @@ -0,0 +1,499 @@ +echo '\' + +echo '\\' + +echo "\n \n \n" + +echo hi";" hihi + +echo hi " ; " hihi + +echo "\s" + +echo "ls -la b" + +echo ok "" ok + +echo ok "" "" "" "" "" "" "" "" "" ok + +echo "exit" + +echo "exit\n" + +cat < ../ + +echo ";;;;;" + +echo “./hello”. + +echo ./hello + +echo ello + +echo ' \n this is the; "first line"' + +echo "and right here;;; 'We have the second'" + +echo and" a fe"'w 'here'; with some slash and quotes .' '\' + +echo '\\' + +echo "\poep" + +echo" + +" + +export a="\\" + +export b='\\' + +export c="\b" + +echo > ilovewords.txt count me +wc ilovewords.txt + +awk '{ print }' /etc/passwd + +echo 'how are you' + +"echo" hallo daar +echo "hallo daar" + +"ls" + +hallo ma\ran siemons Hij ziet de \ niet als escape, print gewoon \ + +echo 'ma\' + +echo "\poep" + +echo hallo"" + +123"456 + +123"456"" + +echo "\poep" + +echo 'poep''poep2'"maran"'ellende'END + +echo poeppoep2maranellendeEND + +echo 'poep2'"maran"'ellende' + +echo poep2maranellende + +echo hallo + +echo echt bash + +echo halloUSER + +echo halloPOEP + +echo halloUSER + +echo "\hallo" + +echo "123\!456" + +echo "1234" + +echo "12\34" + +echo "1\a234" + +echo "\1234" + +echo '1234\\' + +echo '1234' + +echo '12\34' + +echo '1234\' + +echo '1\a234' + +echo '\1234' + +echo '1234\\' + +echo '1234\\' + +echo "\!" + +echo "\#" + +echo "\%" + +echo "\&" + +echo "\'" + +echo "\(" + +echo "\)" + +echo "\*" + +echo "\+" + +echo "\," + +echo "\-" + +echo "\." + +echo "\/" + +echo "\0" + +echo "\1" + +echo "\2" + +echo "\3" + +echo "\4" + +echo "\5" + +echo "\6" + +echo "\7" + +echo "\8" + +echo "\9" + +echo "\:" + +echo "\<" + +echo "\=" + +echo "\>" + +echo "\?" + +echo "\@" + +echo "\A" + +echo "\B" + +echo "\C" + +echo "\D" + +echo "\E" + +echo "\F" + +echo "\G" + +echo "\H" + +echo "\I" + +echo "\J" + +echo "\K" + +echo "\L" + +echo "\M" + +echo "\N" + +echo "\O" + +echo "\P" + +echo "\Q" + +echo "\R" + +echo "\S" + +echo "\T" + +echo "\U" + +echo "\V" + +echo "\W" + +echo "\X" + +echo "\Y" + +echo "\Z" + +echo "\[" + +echo "\]" + +echo "\^" + +echo "\_" + +echo "\a" + +echo "\b" + +echo "\c" + +echo "\d" + +echo "\e" + +echo "\f" + +echo "\g" + +echo "\h" + +echo "\i" + +echo "\j" + +echo "\k" + +echo "\l" + +echo "\m" + +echo "\n" + +echo "\o" + +echo "\p" + +echo "\q" + +echo "\r" + +echo "\s" + +echo "\t" + +echo "\u" + +echo "\v" + +echo "\w" + +echo "\x" + +echo "\y" + +echo "\z" + +echo "\{" + +echo "\|" + +echo "\}" + +echo "\~" + +echo '\!' + +echo '\"' + +echo '\#' + +echo '\%' + +echo '\&' + +#echo '\'' + +echo '\(' + +echo '\)' + +echo '\*' + +echo '\+' + +echo '\,' + +echo '\-' + +echo '\.' + +echo '\/' + +echo '\0' + +echo '\1' + +echo '\2' + +echo '\3' + +echo '\4' + +echo '\5' + +echo '\6' + +echo '\7' + +echo '\8' + +echo '\9' + +echo '\:' + +echo '\<' + +echo '\=' + +echo '\>' + +echo '\?' + +echo '\@' + +echo '\A' + +echo '\B' + +echo '\C' + +echo '\D' + +echo '\E' + +echo '\F' + +echo '\G' + +echo '\H' + +echo '\I' + +echo '\J' + +echo '\K' + +echo '\L' + +echo '\M' + +echo '\N' + +echo '\O' + +echo '\P' + +echo '\Q' + +echo '\R' + +echo '\S' + +echo '\T' + +echo '\U' + +echo '\V' + +echo '\W' + +echo '\X' + +echo '\Y' + +echo '\Z' + +echo '\[' + +echo '\\' + +echo '\]' + +echo '\^' + +echo '\_' + +echo '\a' + +echo '\b' + +echo '\c' + +echo '\d' + +echo '\e' + +echo '\f' + +echo '\g' + +echo '\h' + +echo '\i' + +echo '\j' + +echo '\k' + +echo '\l' + +echo '\m' + +echo '\n' + +echo '\o' + +echo '\p' + +echo '\q' + +echo '\r' + +echo '\s' + +echo '\t' + +echo '\u' + +echo '\v' + +echo '\w' + +echo '\x' + +echo '\y' + +echo '\z' + +echo '\{' + +echo '\|' + +echo '\}' + +echo '\~' + +echo '\;' + +echo "\;" + +echo '\>' + +echo "\>" + +echo '\<' + +echo "\<" + +echo '\|' + +echo "\|" diff --git a/tests/defaults/expansions_var.sh b/tests/defaults/expansions_var.sh new file mode 100644 index 0000000..59a07ac --- /dev/null +++ b/tests/defaults/expansions_var.sh @@ -0,0 +1,273 @@ +# ERROR : + +# quotes inside $ +echo $"USER" + +echo $"etet" + +echo $"hallo" + +echo /$"123$USER" + +echo hallo$"USER" + +echo hallo$"POEP" + +echo hallo$'USER' + +# "$number" +echo "$222" + +echo "hallo$USER***$USER$2$" + +echo "$53535" + +# OK : + +mkdir directory1 +export POEP=directory1 +cd $POEP $MEERPOEP .. +pwd + +mkdir directory1 +mkdir directory1/directory2 +export POEP=directory1 +export MEERPOEP=directory2 +cd $POEP $MEERPOEP .. +pwd + +export vat=at +c$var Makefile + +$blablabla + +$LESS$VAR + +echo "$HOME" + +echo '$HOME' + +echo "hallo$" + +hallo$ + +export ECHO="echo" +$ECHO "hello" + +export A=p +export B=w +$A"$B"d +"$A"'$B'd + +export A="s -la" +l$A + +export OK="ok ok" +echo $OK + +$ + +echo $POEP hallo + +echo $/ + +echo $ + +echo $PWD + +export LS="ls -la" +$LS + +echo $PWD + +echo $HOME + +echo "$PWD" + +echo '$PWD' + +echo "$HOME" + +cd $IETSONBESTAANDS + +cd $GEK .. + +cd $NOTHING $MORENOTHING .. + +echo '$PWD' + +echo $USER"" + +echo $USER_ + +echo 123$USER---- + +echo 123$USER----$ + +echo abc$USERdef + +echo abc$USER123 + +echo abc$POEPdef + +echo $USER "$USER" '$USER' + +export TEST_$USER=hallo$LOGNAME + +echo $POEP + +echo $POEP $MEERPOEP + +echo hallo $POEP + +echo $POEP hallo + +IETSONBESTAANDS=".." +cd $IETSONBESTAANDS +cd $IETSONBESTAANDS + +cd $IETSONBESTAANDS +cd $IETSONBESTAANDS +pwd + +echo 'hallo$USER' + +echo hallo$USER + +echo 'hallo\$USER' + +echo '\$?' + +echo '$USER' + +echo '\$USER' + +echo '"\$USER"' + +echo "hoi$USERmaran" + +echo "$USER" + +export TWO=" two " +echo "one "$TWO" three" +echo "one"$TWO" three" +echo "one"$TWO"three" +echo "one" $TWO "three" + +export TWO="two" +echo "one"$TWO"three" +echo "one "$TWO"three" +echo "one "$TWO" three" + +echo "one"$TWO"three" + +echo "one "$TWO"three" + +echo "one "$TWO" three" + +echo "one" $TWO "three" + +echo "hallo$" + +echo hallo$ + +echo '$USER'$USER + +echo $USERmaran + +echo hallo"1234"maran"$USER"'/$USER'"/$USER"'poep''poep2'"maran"'ellende'END + +echo hallo1234maranmaran/$USER/maranpoeppoep2maranellendeEND + +echo "$USER"'/$USER' + +echo maran/$USER + +echo 123"hallo$"456 + +echo $_1234 + +echo $USERhallo + +echo $hallo"poep" + +echo $a5aap + +echo $_poep + +echo hallo$abc + +echo $halllo### + +echo $USER9582309582529 + +echo $ + +echo $USER + +echo '$USER' + +echo "$USER" + +echo 123$USER---- + +echo 123$USER----$ + +echo abc$USERdef + +echo abc$USER123 + +echo abc$POEPdef + +echo $%%%%jlkjtwejt + +echo %%$ + +echo "$_poep" + +echo "$a5aap" + +echo "$halllo###" + +echo "$USER9582309582529" + +echo "$" + +echo hallo"$"abc + +echo hallo"$POEP"abc + +echo hallo"$USER"abc + +echo "$USER" + +echo "$USER'" + +echo "$USER_" + +echo "abc$USERdef" + +echo "abc$USER123" + +echo "abc$POEPdef" + +echo "$%%%%jlkjtwejt" + +echo "%%$" + +echo $hallo + +echo $hallo"poep" + +echo "hallo$USER" + +echo "hallo$USER" + +echo hallo$abc + +echo hallo$abc + +echo “$rewtwet” + +echo '\$' + diff --git a/tests/defaults/expensions.sh b/tests/defaults/expensions.sh deleted file mode 100644 index a6cfab2..0000000 --- a/tests/defaults/expensions.sh +++ /dev/null @@ -1,633 +0,0 @@ -export vat=at -c$var Makefile - -$blablabla - -$LESS$VAR - -echo '\' - -echo '\\' - -echo "\" - -echo "\n \n \n" - -echo "\n \\n \\\n" - -echo hi";" hihi - -echo hi " ; " hihi - -echo "\s" - -echo "\\s" - -echo \> - -echo "$HOME" - -echo '$HOME' - -echo \$HOME - -export A="s -la" -l$A - -export A=p -export B=w -$A"$B"d -"$A"'$B'd - -echo "ls -la b" - -echo ok "" ok - -echo ok "" "" "" "" "" "" "" "" "" ok - -export OK="ok ok" -echo $OK - -$ - -echo "exit" - -echo "exit\n" - -cat < ../ - -echo ";;;;;" - -echo 00\\\'pp - -echo 00\\\\\'pp - -echo 00\\\\'pp' - -echo “./hello”. - -echo ./hello - -echo ello - -echo \n ' \n this is the; "first line"' - -echo "and right here;;; 'We have the second'" - -echo and" a fe"'w 'here'; with some slash and quotes .' '\' - -echo '\\' - -echo "\\" - -echo "\"" - -echo \' - -echo \" "\\" "\"" \\ \' \" - -echo /$"123$USER" - -echo $POEP hallo - -echo "hallo$" - -echo "\poep" - -echo $/ - -echo $ - -echo "123\"456" - -echo $PWD - -echo \"test\" - -echo" - -" - -hallo$ - -export a="\\" - -export b='\\' - -export c="\b" - -export LS="ls -la" -$LS - -echo $PWD - -echo $HOME - -echo "$PWD" - -echo '$PWD' - -echo "$HOME" - -cd $IETSONBESTAANDS - -cd $GEK .. - -cd $NOTHING $MORENOTHING .. - -echo > ilovewords.txt count me -wc ilovewords.txt - -awk '{ print }' /etc/passwd - -echo 'how are you' - -echo '$PWD' - -"echo" hallo daar -echo "hallo daar" - -echo $USER"" - -echo $USER" -echo $"USER" -echo "$USER - -echo $USER_ - -echo 123$USER---- - -echo 123$USER----$ - -echo abc$USERdef - -echo abc$USER123 - -echo abc$POEPdef - -echo $USER "$USER" '$USER' - -export TEST_$USER=hallo$LOGNAME - -echo $POEP - -echo $POEP $MEERPOEP - -echo hallo $POEP - -echo $POEP hallo - -IETSONBESTAANDS=".." -cd $IETSONBESTAANDS -cd $IETSONBESTAANDS - -cd $IETSONBESTAANDS -cd $IETSONBESTAANDS -pwd - -mkdir directory1 -POEP=directory1 -cd $POEP $MEERPOEP .. -pwd - -mkdir directory1 -mkdir directory1/directory2 -POEP=directory1 -MEERPOEP=directory2 -cd $POEP $MEERPOEP .. -pwd - -"ls" - -echo hallo 'ma\"ran' siemons - -hallo ma\"ran siemons - -echo hallo 'ma\'ran' siemons -echo hallo 'ma'ran' siemons - -echo hallo 'ma\'ran'' siemons - -hallo ma\ran siemons Hij ziet de \ niet als escape, print gewoon \ - -echo 'ma\' Hij ziet de \ niet als escape, print gewoon \ -echo 'ma\' Hij ziet de \ niet als escape, print gewoon \ - -echo 'ma\' -echo ma\ - -echo 'hallo$USER' -echo hallo$USER - -echo 'hallo\$USER' -echo hallo\$USER - -echo '\$?' -echo \$? - -echo '$USER' -$USER - -echo '\$USER' -echo \$USER - -echo '"\$USER"' - -echo "\$USER" - -echo "hallo"maran" -echp hallo" - -export ECHO="echo" -$ECHO "hello" - -echo "\poep" - -echo "poep\"" - -echo poep" -echo poep""" - -echo "poep\'" -echo """ - -poep\' -echo "poep\" -echo "hallo\"\poep" -hallo"\poep -echo " " " - -echo hallo"" -hallo -echo "hoi$USERmaran" -echo "$USER" -maran - -export TWO=" two " -echo "one "$TWO" three" -echo "one"$TWO" three" -echo "one"$TWO"three" -echo "one" $TWO "three" - -export TWO="two" -echo "one"$TWO"three" -echo "one "$TWO"three" -echo "one "$TWO" three" - -echo "one"$TWO"three" -echo "one "$TWO"three" -echo "one "$TWO" three" -echo "one" $TWO "three" - -echo "'\$USER'" -'$USER' -echo "\$USER" -$USER - -echo "123\"456" -123"456 -123"456"" - -echo "\poep" -echo \poep -echo "123\'456" -echo 123\'456 - -echo "hallo$" -echo hallo$ -echo \" -echo " -echo """ - -echo \$? -echo '$USER'$USER -echo $USERmaran - -echo '$USER'$USER\$USER/"$USER" - -echo hallo"1234"maran"$USER"'/$USER'"/$USER"'poep''poep2'"maran"'ellende'END -echo hallo1234maranmaran/$USER/maranpoeppoep2maranellendeEND - -echo "$USER"'/$USER' -echo maran/$USER - -echo 'poep''poep2'"maran"'ellende'END -echo poeppoep2maranellendeEND - -echo 'poep2'"maran"'ellende' -echo poep2maranellende - -echo 123"hallo$"456 - -echo $_1234 -echo hallo -echo echt bash - -echo $USERhallo -echo $hallo"poep" -echo /$"123$USER" - -echo $a5aap -echo $_poep - -echo hallo$\abc -echo hallo$abc - -echo hallo$\\abc -echo hallo$\abc - -echo hallo$"USER" - -echo halloUSER - -echo hallo$"POEP" - -echo halloPOEP -echo hallo$'USER' - -echo hallo$'USER' ' -echo $USER' - -echo halloUSER - -echo $halllo### -echo $USER9582309582529 -echo $ -echo $USER -echo $USER' -echo $' - -echo '$USER' -echo "$USER" -echo 123$USER---- -echo 123$USER----$ - -echo abc$USERdef -echo abc$USER123 -echo abc$POEPdef - -echo $%%%%jlkjtwejt -echo %%$ -echo $"USERhallo" -echo "$222" -echo "hallo$USER***$USER$2$" - -echo "$_poep" -echo "$a5aap" -echo "$halllo###" - -echo "$USER9582309582529" -echo "$" - -echo hallo"$"abc -echo hallo"$POEP"abc -echo hallo"$USER"abc - -echo "$USER" -echo "$USER'" -echo "$USER_" - -echo "abc$USERdef" -echo "abc$USER123" -echo "abc$POEPdef" -echo "$%%%%jlkjtwejt" -echo "%%$" - -echo $"hallo" -echo $hallo -echo $hallo"poep" -echo "hallo\"\poep" - -echo $"etet" -echo "$53535" -echo “$\hallo” -echo $"\hallo" -echo "\\hallo" -echo "hallo\\hoi" -echo "\\$USER" -echo "123\"456" - -echo "hallo$USER" -echo "hallo$USER" - -echo hallo$abc -echo hallo$abc - -echo “$rewtwet” - -echo "\hallo" -echo \hallo - -echo "123\$456" -echo "123\\456" -echo "123\!456" -echo "1234" -echo "12\34" -echo "1234\" -echo \"1234" -echo "1\a234" -echo "\1234" -echo "1234\\" -echo '1234\\' -echo '1234' -echo '12\34' -echo '1234\' -echo \'1234' -echo '1\a234' -echo '\1234' -echo '1234\\' -echo '1234\\' -echo ' - -echo "\!" -echo "\"" -echo "\#" -echo "\$" -echo "\%" -echo "\&" -echo "\'" -echo "\(" -echo "\)" -echo "\*" -echo "\+" -echo "\," -echo "\-" -echo "\." -echo "\/" -echo "\0" -echo "\1" -echo "\2" -echo "\3" -echo "\4" -echo "\5" -echo "\6" -echo "\7" -echo "\8" -echo "\9" -echo "\:" -echo "\<" -echo "\=" -echo "\>" -echo "\?" -echo "\@" -echo "\A" -echo "\B" -echo "\C" -echo "\D" -echo "\E" -echo "\F" -echo "\G" -echo "\H" -echo "\I" -echo "\J" -echo "\K" -echo "\L" -echo "\M" -echo "\N" -echo "\O" -echo "\P" -echo "\Q" -echo "\R" -echo "\S" -echo "\T" -echo "\U" -echo "\V" -echo "\W" -echo "\X" -echo "\Y" -echo "\Z" -echo "\[" -echo "\\" -echo "\]" -echo "\^" -echo "\_" -echo "\a" -echo "\b" -echo "\c" -echo "\d" -echo "\e" -echo "\f" -echo "\g" -echo "\h" -echo "\i" -echo "\j" -echo "\k" -echo "\l" -echo "\m" -echo "\n" -echo "\o" -echo "\p" -echo "\q" -echo "\r" -echo "\s" -echo "\t" -echo "\u" -echo "\v" -echo "\w" -echo "\x" -echo "\y" -echo "\z" -echo "\{" -echo "\|" -echo "\}" -echo "\~" -echo '\!' -echo '\"' -echo '\#' -echo '\$' -echo '\%' -echo '\&' -echo '\'' -echo '\(' -echo '\)' -echo '\*' -echo '\+' -echo '\,' -echo '\-' -echo '\.' -echo '\/' -echo '\0' -echo '\1' -echo '\2' -echo '\3' -echo '\4' -echo '\5' -echo '\6' -echo '\7' -echo '\8' -echo '\9' -echo '\:' -echo '\<' -echo '\=' -echo '\>' -echo '\?' -echo '\@' -echo '\A' -echo '\B' -echo '\C' -echo '\D' -echo '\E' -echo '\F' -echo '\G' -echo '\H' -echo '\I' -echo '\J' -echo '\K' -echo '\L' -echo '\M' -echo '\N' -echo '\O' -echo '\P' -echo '\Q' -echo '\R' -echo '\S' -echo '\T' -echo '\U' -echo '\V' -echo '\W' -echo '\X' -echo '\Y' -echo '\Z' -echo '\[' -echo '\\' -echo '\]' -echo '\^' -echo '\_' -echo '\a' -echo '\b' -echo '\c' -echo '\d' -echo '\e' -echo '\f' -echo '\g' -echo '\h' -echo '\i' -echo '\j' -echo '\k' -echo '\l' -echo '\m' -echo '\n' -echo '\o' -echo '\p' -echo '\q' -echo '\r' -echo '\s' -echo '\t' -echo '\u' -echo '\v' -echo '\w' -echo '\x' -echo '\y' -echo '\z' -echo '\{' -echo '\|' -echo '\}' -echo '\~' -echo '\;' -echo "\;" -echo '\>' -echo "\>" -echo '\<' -echo "\<" -echo '\|' -echo "\|" diff --git a/tests/heredocs.sh b/tests/defaults/heredocs.sh similarity index 100% rename from tests/heredocs.sh rename to tests/defaults/heredocs.sh diff --git a/tests/false_positive.sh b/tests/false_positive.sh index 452879e..5c09a51 100644 --- a/tests/false_positive.sh +++ b/tests/false_positive.sh @@ -14,15 +14,6 @@ echo $? echo DOET HET NIET > test1 | cat test1 -#---------------------------------------------- -# \ Backslash - -echo "bip | bip ; coyotte > < \" " - -echo bonjour > test\ 1 -ls -rm test - #---------------------------------------------- # ; Semicolon separator @@ -32,6 +23,17 @@ echo hallo ; echo poep >x1 >x2 echo hallo | echo hoi > y1 >y2 ; cat -e echo "hello | this is some stuff > touch this file" | grep more +echo bonjour ; | + +echo bonjour |; + +; + +echo coucou | ; + +echo ;; + + #---------------------------------------------- # Export builtins @@ -40,8 +42,169 @@ export | grep -e "HOME=" export | grep -e "PWD=" +export a="\\" + +# var without export +POEP=directory1 +MEERPOEP=directory2 + + #---------------------------------------------- -# \ Echo Backslash +# ' " single quotes + +echo hallo 'ma'ran' siemons + +echo hallo 'ma\"ran' siemons + +echo hallo 'ma\'ran'' siemons + +echo "hallo"maran" + +echo hallo" + +echo poep" + +echo poep""" + +echo hallo"\poep + +echo " " " + +echo " + +echo """ + +echo ' + +echo $USER" + +echo "$USER + +echo hallo$'USER' ' + +echo $USER' + +echo $USER' + +echo $' + +echo $"USERhallo" + + + + +#---------------------------------------------- +# \ Backslash + +echo "bip | bip ; coyotte > < \" " + +echo bonjour > test\ 1 +ls +rm test + +echo bonjour \; ls + +echo \"test\" + +echo "123\"456" + +echo poep\' + +echo "poep\" + +echo "hallo\"\poep" + +#echo "\$" + +#echo "\"" + +#echo \'1234' + +#echo \hallo + +#echo "123\$456" + +#echo "123\\456" + +#echo “$\hallo” + +#echo $"\hallo" + +#echo "\\hallo" + +#echo "hallo\\hoi" + +#echo "\\$USER" + +#echo "123\"456" + +#echo "hallo\"\poep" + +#echo hallo$\\abc + +#echo hallo$\abc + +#echo hallo$\abc + +#echo '$USER'$USER\$USER/"$USER" + +#echo \$? + +#echo \" + +#echo \poep + +#echo "123\'456" + +#echo 123\'456 + +#echo "'\$USER'" + +#echo "\$USER" + +#echo "123\"456" + +#echo "poep\'" + +#echo "poep\"" + +#echo "\$USER" + +#echo \$USER + +#echo \$? + +#echo hallo\$USER + +#echo ma\ + +#echo 'ma\' Hij ziet de \ niet als escape, print gewoon \ + +#echo 'ma\' Hij ziet de \ niet als escape, print gewoon \ + +#echo hallo ma\"ran siemons + +#echo hallo 'ma\'ran' siemons + +#echo "\"" + +#echo \' + +#echo \n ' \n this is the; "first line"' + +#echo 00\\\'pp + +#echo \$HOME + +#echo "\\s" + +#echo "\n \\n \\\n" + +#echo \> + +#echo 00\\\\\'pp + +#echo 00\\\\'pp' echo \\ @@ -55,190 +218,112 @@ echo 123\!456 echo 123\456 +echo "\" + +echo \" "\\" "\"" \\ \' \" + +echo "\\" + +echo \"1234" + +echo "1234\" + +echo "1234\\" + +echo "\\" + echo \a - echo \b - echo \c - echo \d - echo \e - echo \! - echo \" - echo \# - echo \$ - echo \% - echo \& - echo \' - echo \( - echo \) - echo \* - echo \+ - echo \, - echo \- - echo \. - echo \/ - echo \0 - echo \1 - echo \2 - echo \3 - echo \4 - echo \5 - echo \6 - echo \7 - echo \8 - echo \9 - echo \: - echo \= - echo \? - echo \@ - echo \A - echo \B - echo \C - echo \D - echo \E - echo \F - echo \G - echo \H - echo \I - echo \J - echo \K - echo \L - echo \M - echo \N - echo \O - echo \P - echo \Q - echo \R - echo \S - echo \T - echo \U - echo \V - echo \W - echo \X - echo \Y - echo \Z - echo \[ - echo \\ - echo \] - echo \^ - echo \_ - echo \a - echo \b - echo \c - echo \d - echo \e - echo \f - echo \g - echo \h - echo \i - echo \j - echo \k - echo \l - echo \m - echo \n - echo \o - echo \p - echo \q - echo \r - echo \s - echo \t - echo \u - echo \v - echo \w - echo \x - echo \y - echo \z - echo \{ - echo \} - echo \~ + diff --git a/unitests.sh b/unitests.sh index 38b9175..6ac33fa 100644 --- a/unitests.sh +++ b/unitests.sh @@ -22,6 +22,7 @@ cd $(dirname $0) # copy the executable to current directory MINISHELL="../minishell" + make -C ../ &>/dev/null cp $MINISHELL . # globale variables @@ -88,6 +89,10 @@ cd $(dirname $0) file="${file_ori/#/$x}" file="${file%.sh}" file="${file/%/.sh}" + if [ -e "$file" ] + then + break + fi done } @@ -162,6 +167,10 @@ cd $(dirname $0) minishell_execution=$( echo "$@" | $CURRENT_D/minishell 2>/dev/null ) rm -rf $CURRENT_D/tmp/* + # for env, special treatment + bash_execution="$( echo "$bash_execution" | sort | grep -v -e "LINES=" -e "COLUMNS=" -e "_=" -e"LESSCLOSE=" -e "LESSOPEN=" )" + minishell_execution="$( echo "$minishell_execution" | sort | grep -v -e "LINES=" -e "COLUMNS=" -e "_=" -e"LESSCLOSE=" -e "LESSOPEN=" )" + #compare output if [ "$bash_execution" = "$minishell_execution" ] then