Browse Source

[enh] Add unit tests shell script \o/.

Moul 4 years ago
parent
commit
67dec70f3f
1 changed files with 71 additions and 0 deletions
  1. 71 0
      tests.sh

+ 71 - 0
tests.sh

@@ -0,0 +1,71 @@
+#!/bin/zsh
+
+tests=(
+## Execution ##
+"ls" # test execution simple
+"cat auteur" # execution simple
+"ls -l" # avec option
+"ls ~" # avec tilde
+"/bin/ls" # execution avec le chemin entier
+"/sbin/yubikey_shell" # execution sans les droits d’execution
+"yubikey_shell" # 
+"naritse" # cmd, élément qui n’existe pas
+"./21sh -c ls" # execution avec './'
+"./anrsiute" # execution élément qui n’existe pas
+"cd /tmp ; touch toto ; chmod 000 toto ; ./toto" # execution toto sans les droits avec './'
+"/tmp/toto" # execution toto sans les droits avec le path entier
+"rm -f /tmp/toto"
+
+## Builtin ##
+## CD ##
+"cd ; pwd"
+"cd ~ ; pwd"
+"cd / ; pwd"
+"cd - ; pwd"
+"cd . ; pwd"
+"cd .. ; pwd"
+"cd ~/. ; pwd"
+"cd nasrt" # élément qui n’éxiste pas
+"cd auteur" # cd fichier
+
+## ENV ##
+"env"
+"export TOTO=toto" # test setenv
+#"unsetenv TOTO"
+
+## Other ##
+"pwd"
+"exit ; ls" # test exit: exit and don't display ls result
+
+## Point-virgule
+"cat auteur ; cat auteur" # test un point-virgule
+"cat auteur ; cat auteur ; cat auteur" # test deux points-virgule
+
+## Parsing ##
+";;;;,;;;; ;;;;"
+#"    \t  " # espaces, tabulations
+
+## Pipe
+#"ls | cat" pipe
+#
+
+## Redirections
+#"ls > /tmp/toto ; cat /tmp/toto" # simple
+#"ls >> /tmp/toto ; cat /tmp/toto" # double
+#"cat < /tmp/toto"
+#"<<"
+#"cat riri 2>&-" # avec fd spécifiés
+#" mkdir test ; cd test ; ls -a ; ls | cat | wc -c > fifi ; cat fifi ; rm fifi"
+)
+
+folder=/tmp
+clear
+echo "\033[0;35m##### TESTS UNITAIRES DU SHELL #####\033[0m"
+for tu in $tests
+do
+	echo "\033[0;32m>>>> Test \"$tu\" <<<<\033[0m"
+	./21sh -c $tu > $folder/21sh
+	zsh -c $tu > $folder/sh
+	diff $folder/21sh $folder/sh
+	echo ""
+done