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