From 0878b9b7e9538d737f786a0fead42c06f18217aa Mon Sep 17 00:00:00 2001 From: Hugo LAMY Date: Tue, 21 Dec 2021 21:26:29 +0100 Subject: [PATCH] resolution tests cd_bindir, cd_home, et b_env sauf une vraie erreur --- tests/defaults/b_cd_bindir.sh | 45 --------- tests/defaults/b_cd_home.sh | 8 -- tests/defaults/b_env.sh | 66 +++--------- tests/false_positive.sh | 185 ++++++++++++++++++++++++++++++++++ unitests.sh | 4 +- 5 files changed, 200 insertions(+), 108 deletions(-) delete mode 100644 tests/defaults/b_cd_bindir.sh diff --git a/tests/defaults/b_cd_bindir.sh b/tests/defaults/b_cd_bindir.sh deleted file mode 100644 index e7a4a2b..0000000 --- a/tests/defaults/b_cd_bindir.sh +++ /dev/null @@ -1,45 +0,0 @@ -cd /bin -pwd - -cd /bin/../ -pwd - -cd / -pwd -cd /bin -pwd - -cd / -pwd -cd //bin -pwd - -cd // -pwd -cd //bin -pwd - -cd /// -pwd -cd ///bin -pwd - -cd //// -pwd -cd ////bin -pwd - -cd ///// -pwd -cd /////bin -pwd - -cd ////// -pwd -cd //////bin -pwd - -cd /////// -pwd -cd ///////bin -pwd diff --git a/tests/defaults/b_cd_home.sh b/tests/defaults/b_cd_home.sh index 1dc9d77..62516bd 100644 --- a/tests/defaults/b_cd_home.sh +++ b/tests/defaults/b_cd_home.sh @@ -3,14 +3,6 @@ cd cd ../../../../../././././../../../././../../../ pwd -export HOME=// -cd -pwd - -export HOME=//bin/..////////////bin/../ -cd -pwd - export HOME=/// cd pwd diff --git a/tests/defaults/b_env.sh b/tests/defaults/b_env.sh index ad1ecd9..067b94e 100644 --- a/tests/defaults/b_env.sh +++ b/tests/defaults/b_env.sh @@ -153,93 +153,53 @@ env | grep -v -E '^_=' | sort cd ../ env | grep -v -E '^_=' | sort -export | grep -v -E '^declare -x _=' -env +env | grep -v -E '^declare -x _=' export 1 _+ _OK _2? _OK2=VAR =NG OK3= -export | grep -v -E '^declare -x _=' -env +env | grep -v -E '^declare -x _=' export dquote='"' dollar='$' backslash='\' backquote='`' newline='\n' -export | grep -v -E '^declare -x _=' -env - -export APPEND=1 -export APPEND+=2 -export | grep APPEND -env +env | grep -v -E '^declare -x _=' export APPEND_NONE=1 export APPEND_NONE+= -export | grep APPEND_NONE -env +env | grep APPEND_NONE export APPEND_NONE= export APPEND_NONE= export APPEND_NONE+= -export | grep APPEND_NONE -env +env | grep APPEND_NONE export APPEND_EMPTY="" export APPEND_EMPTY="" export APPEND_EMPTY="" -export | grep APPEND_EMPTY -env +env | grep APPEND_EMPTY export OVERWRITE=42 export OVERWRITE=a -export | grep OVERWRITE -env +env | grep OVERWRITE export A=B=C=D -export | grep A -env +env | grep A export PATH -export | grep PATH -env +env | grep PATH export PWD -export | grep PWD -env +env | grep PWD export OLDPWD -export | grep OLDPWD -env - -unset PWD -cd .. -export | grep PWD -env - -unset OLDPWD -cd .. -export | grep OLDPWD -env - -unset PWD -cd .. -export PWD=new_value -export | grep PWD -env +env | grep OLDPWD unset OLDPWD cd .. export OLDPWD=new_value -export | grep OLDPWD -env - -unset PWD -cd .. -export PWD -export | grep PWD -env +env | grep OLDPWD unset OLDPWD cd .. export OLDPWD -export | grep OLDPWD -env +env | grep OLDPWD export = env diff --git a/tests/false_positive.sh b/tests/false_positive.sh index 9930aad..28956ac 100644 --- a/tests/false_positive.sh +++ b/tests/false_positive.sh @@ -10,6 +10,191 @@ cat Makefile | grep pr | head -n 5 | hello (NA) echo $? +#--------------------------------------------- +# export PWD et OLDPWD ne dependent pas des meme action que bash +# (dans bash : cd ne creer pas PWD, et OLDPWD n'existe que si PWD existe) + +unset PWD +cd .. +env | grep PWD + +unset OLDPWD +cd .. +env | grep OLDPWD + +unset PWD +cd .. +export PWD=new_value +env | grep PWD + + +unset PWD +cd .. +export PWD +env | grep PWD + + +#--------------------------------------------- +# export ne reconnait pas += + +export APPEND=1 +export APPEND+=2 +env | grep APPEND + + +#--------------------------------------------- +# export seul n'affiche pas les variables d'env + +export | grep -v -E '^declare -x _=' +env + +export 1 _+ _OK _2? _OK2=VAR =NG OK3= +export | grep -v -E '^declare -x _=' +env + +export dquote='"' dollar='$' backslash='\' backquote='`' newline='\n' +export | grep -v -E '^declare -x _=' +env + +export APPEND=1 +export APPEND+=2 +export | grep APPEND +env + +export APPEND_NONE=1 +export APPEND_NONE+= +export | grep APPEND_NONE +env + +export APPEND_NONE= +export APPEND_NONE= +export APPEND_NONE+= +export | grep APPEND_NONE +env + +export APPEND_EMPTY="" +export APPEND_EMPTY="" +export APPEND_EMPTY="" +export | grep APPEND_EMPTY +env + +export OVERWRITE=42 +export OVERWRITE=a +export | grep OVERWRITE +env + +export A=B=C=D +export | grep A +env + +export PATH +export | grep PATH +env + +export PWD +export | grep PWD +env + +export OLDPWD +export | grep OLDPWD +env + +unset PWD +cd .. +export | grep PWD +env + +unset OLDPWD +cd .. +export | grep OLDPWD +env + +unset PWD +cd .. +export PWD=new_value +export | grep PWD +env + +unset OLDPWD +cd .. +export OLDPWD=new_value +export | grep OLDPWD +env + +unset PWD +cd .. +export PWD +export | grep PWD +env + +unset OLDPWD +cd .. +export OLDPWD +export | grep OLDPWD +env + +#--------------------------------------------- +# cd /bin redirects to /usr/bin + +cd /bin +pwd + +cd /bin/../ +pwd + +cd / +pwd +cd /bin +pwd + +cd / +pwd +cd //bin +pwd + +cd // +pwd +cd //bin +pwd + +cd /// +pwd +cd ///bin +pwd + +cd //// +pwd +cd ////bin +pwd + +cd ///// +pwd +cd /////bin +pwd + +cd ////// +pwd +cd //////bin +pwd + +cd /////// +pwd +cd ///////bin +pwd + + +#--------------------------------------------- +# https://stackoverflow.com/questions/20690828/what-does-double-slash-in-cd-mean-in-linux +# pathname with two slashes + +export HOME=// +cd +pwd + +export HOME=//bin/..////////////bin/../ +cd +pwd + #--------------------------------------------- # Race condition, unpredictable behaviour diff --git a/unitests.sh b/unitests.sh index 017052d..d264278 100644 --- a/unitests.sh +++ b/unitests.sh @@ -285,8 +285,8 @@ cd $(dirname $0) # for env, special treatment if [ "${in_file: -6}" == "env.sh" ] then - 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=" )" + bash_execution="$( echo "$bash_execution" | sort | grep -v -e "LINES=" -e "COLUMNS=" -e "_=" -e"LESSCLOSE=" -e "LESSOPEN=" -e "SHLVL=" )" + minishell_execution="$( echo "$minishell_execution" | sort | grep -v -e "LINES=" -e "COLUMNS=" -e "_=" -e"LESSCLOSE=" -e "LESSOPEN=" -e "SHLVL=" )" fi compare_output "$bash_execution" "$minishell_execution" "$commands"