From 330bdf4728613196df229ca2a11d83af4996168b Mon Sep 17 00:00:00 2001 From: Hugo LAMY Date: Tue, 28 Jun 2022 09:23:43 +0200 Subject: [PATCH] wip tests --- .gitignore | 2 ++ builds/microshell.o | Bin 3216 -> 3368 bytes microshell | Bin 12864 -> 19120 bytes test.sh | 61 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 63 insertions(+) create mode 100644 test.sh 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 96350c06190bccba7298e7ea7c633f9187f7f663..7935d7bdb463bc08a36df833183d3ad32794808b 100644 GIT binary patch delta 967 zcmZ`&O=uHA6rS1LZZf;sG$EwxO0gRdn>4y^qF4m6i&E@Gv8V{8hbn}&3TZ97hhD5F zr9CA+FW$U}i3g#07V621f(1dLAbP7uaBe;g=a&WgnbIosq{>9ibxt_$v0895X!=3zZryd&b`TO?!I*1P!}_)G%knH&Tt;l-E`qNdrgeC%TxVfDOzFa&@__B|Ef76eANWWM za6>ie0cfkHRgHx33I_VW{zSM4uTi}%sQiM78bB#!S{r@TM_i>ZU>e6Q?yr3iA`8Mk zbNp5aY*^U5cu5vwhc~f^mek$Y7auj4kcWNZ-$(qp{|bESldvoBLqg#a|97it>bAs@HIV?Z!Y-_XTBLY z%PULEjTL_tPP41fVm5sTn`}JaQKK|3uB5{rJ1!YAzMdg`OXbA9rDA(w cI5Rm;1{Do{>s85CVJvf&x$!USLroj`3#5GEX#fBK delta 854 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 literal 12864 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 diff --git a/test.sh b/test.sh new file mode 100644 index 0000000..24fa174 --- /dev/null +++ b/test.sh @@ -0,0 +1,61 @@ +#!/bin/bash + +test_line () { + local CMD_MICRO=$@ + echo $CMD_MICRO + #local CMD_SHELL=${CMD_MICRO/"|"/|} + #echo $CMD_SHELL + $CMD_MICRO + +# echo $@ +# echo $@ >> out.res +# ./microshell $@ >> out.res & +# sleep .250 +# echo >> out.res +# leaks microshell > leaks.res 2> /dev/null +# if grep "ROOT LEAK" < leaks.res > /dev/null 2> /dev/null ; then +# printf "\e[0;31mLEAKS\n\e[0m" +# fi +# pid=$( pgrep microshell ) +# printf "\e[0;31m" +# lsof -c microshell | grep $pid | grep -v cwd | grep -v txt | grep -v 0r | grep -v 1w | grep -v 2u | grep microshel +# printf "\e[0m" +# kill -9 $pid +# wait $pid 2>/dev/null + #cat -e out.res > out +} + +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 ";" +printf "\e[1;32mDone\e[0m\n" +rm -rf microshell.dSYM leaks.res +