diff --git a/.gitignore b/.gitignore index b24d71e..648fe2a 100644 --- a/.gitignore +++ b/.gitignore @@ -48,3 +48,5 @@ Thumbs.db *.mov *.wmv +# 42 +a.out diff --git a/builds/microshell.o b/builds/microshell.o index 96350c0..7935d7b 100644 Binary files a/builds/microshell.o and b/builds/microshell.o differ diff --git a/microshell b/microshell index 4d6ea3d..90f11be 100755 Binary files a/microshell and b/microshell differ diff --git a/test.sh b/test.sh new file mode 100644 index 0000000..cb63159 --- /dev/null +++ b/test.sh @@ -0,0 +1,71 @@ +#!/bin/bash + +# COLORS +RED="\e[0;31m" +GREEN="\e[0;32m" +YELLOW="\e[0;33m" +BLUE="\e[0;34m" +MAGENTA="\e[0;35m" +CYAN="\e[0;36m" +WHITE="\e[0;37m" + +B_RED="\e[1;31m" +B_GREEN="\e[1;32m" +B_YELLOW="\e[1;33m" +B_BLUE="\e[1;34m" +B_MAGENTA="\e[1;35m" +B_CYAN="\e[1;36m" +B_WHITE="\e[1;37m" + +ENDCO="\e[0m" + + +test_line () { + echo -e $CYAN $@ $ENDCO + local CMD_MICRO=$(./microshell $@) + #echo $CMD_MICRO + local CMD_SHELL=$(eval $@) + #echo $CMD_SHELL + if [ "$CMD_SHELL" = "$CMD_MICRO" ] + then + echo -e $B_GREEN"yes !"$ENDCO + else + echo -e $B_RED"ho nooo"$ENDCO + fi +} + +printf "\e[1;32mCompile\n" +gcc -g -Wall -Werror -Wextra -DTEST_SH microshell.c -o microshell +printf "\e[1;36mTest\n\e[0m" +rm -f out.res leaks.res out + +test_line /bin/ls +test_line /bin/cat microshell.c +test_line /bin/ls microshell.c +test_line /bin/ls salut +test_line ";" +test_line ";" ";" +test_line ";" ";" /bin/echo OK +test_line ";" ";" /bin/echo OK ";" +test_line ";" ";" /bin/echo OK ";" ";" +test_line ";" ";" /bin/echo OK ";" ";" ";" /bin/echo OK +test_line /bin/ls "|" /usr/bin/grep microshell +test_line /bin/ls "|" /usr/bin/grep microshell "|" /usr/bin/grep micro +test_line /bin/ls "|" /usr/bin/grep microshell "|" /usr/bin/grep micro "|" /usr/bin/grep shell "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro +test_line /bin/ls "|" /usr/bin/grep microshell "|" /usr/bin/grep micro "|" /usr/bin/grep shell "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep micro "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell "|" /usr/bin/grep shell +test_line /bin/ls ewqew "|" /usr/bin/grep micro "|" /bin/cat -n ";" /bin/echo dernier ";" /bin/echo +test_line /bin/ls "|" /usr/bin/grep micro "|" /bin/cat -n ";" /bin/echo dernier ";" /bin/echo ftest ";" +test_line /bin/echo ftest ";" /bin/echo ftewerwerwerst ";" /bin/echo werwerwer ";" /bin/echo qweqweqweqew ";" /bin/echo qwewqeqrtregrfyukui ";" +test_line /bin/ls ftest ";" /bin/ls ";" /bin/ls werwer ";" /bin/ls microshell.c ";" /bin/ls subject.fr.txt ";" +test_line /bin/ls "|" /usr/bin/grep micro ";" /bin/ls "|" /usr/bin/grep micro ";" /bin/ls "|" /usr/bin/grep micro ";" /bin/ls "|" /usr/bin/grep micro ";" +test_line /bin/cat subject.fr.txt "|" /usr/bin/grep a "|" /usr/bin/grep b ";" /bin/cat subject.fr.txt ";" +test_line /bin/cat subject.fr.txt "|" /usr/bin/grep a "|" /usr/bin/grep w ";" /bin/cat subject.fr.txt ";" +test_line /bin/cat subject.fr.txt "|" /usr/bin/grep a "|" /usr/bin/grep w ";" /bin/cat subject.fr.txt +test_line /bin/cat subject.fr.txt ";" /bin/cat subject.fr.txt "|" /usr/bin/grep a "|" /usr/bin/grep b "|" /usr/bin/grep z ";" /bin/cat subject.fr.txt +test_line ";" /bin/cat subject.fr.txt ";" /bin/cat subject.fr.txt "|" /usr/bin/grep a "|" /usr/bin/grep b "|" /usr/bin/grep z ";" /bin/cat subject.fr.txt +test_line blah "|" /bin/echo OK +test_line blah "|" /bin/echo OK ";" + +echo -e $B_MAGENTA"Done"$ENDCO +rm -rf microshell.dSYM leaks.res +