diff --git a/test.sh b/test.sh index 1575d6b..fbb9624 100755 --- a/test.sh +++ b/test.sh @@ -6,7 +6,7 @@ # By: houtworm // \ \ __| | | \ \/ / # # (| | )|_| |_| |> < # # Created: 2023/02/20 12:46:49 by houtworm /'\_ _/`\__|\__,_/_/\_\ # -# Updated: 2023/02/25 02:41:01 by houtworm \___)=(___/ # +# Updated: 2023/03/01 17:06:54 by houtworm \___)=(___/ # # # # **************************************************************************** # @@ -16,11 +16,11 @@ OS=$(uname -s) SLEEP=1 FAULTS=0 CATLOC=$(which cat) -mkdir -p tests -echo "Hallo\nHallo\nHallo" > tests/input -touch tests/perm tests/cmd -chmod 000 tests/perm -echo cat > tests/cmd +mkdir -p tmp +echo "Hallo\nHallo\nHallo" > tmp/input +touch tmp/perm tmp/cmd +chmod 000 tmp/perm +echo cat > tmp/cmd if [ $1 ] then SLEEP=$1 @@ -32,7 +32,7 @@ checkfile() if [ $? -ne $2 ] then printf "\e[1;31mMakefile does not create $1\e[0;00m\n" - rm -rf tests/files + rm -rf tmp/files exit 1 fi } @@ -70,72 +70,72 @@ checkrule() errorpermdenied() { - ERRMSG=$(cat tests/error | grep "mission denied" | wc -l) + ERRMSG=$(cat tmp/error | grep "mission denied" | wc -l) if [ $ERRMSG -eq $1 ] then printf "\e[1;32mError Message OK\e[0;00m\n" else printf "\e[1;31mWrong Error Message \e[0;00m\n" - cat tests/error + cat tmp/error FAULTS=$(($FAULTS+1)) fi } errorfiledescri() { - ERRMSG=$(cat tests/error | grep "file descri" | wc -l) + ERRMSG=$(cat tmp/error | grep "file descri" | wc -l) if [ $ERRMSG -eq $1 ] then printf "\e[1;32mError Message OK\e[0;00m\n" else printf "\e[1;31mWrong Error Message\e[0;00m\n" - cat tests/error + cat tmp/error FAULTS=$(($FAULTS+1)) fi } errornotfound() { - ERRMSG=$(cat tests/error | grep "not found" | wc -l) + ERRMSG=$(cat tmp/error | grep "not found" | wc -l) if [ $ERRMSG -eq $1 ] then printf "\e[1;32mError Message OK\e[0;00m\n" else printf "\e[1;31mWrong Error Message\e[0;00m\n" - cat tests/error + cat tmp/error FAULTS=$(($FAULTS+1)) fi } errorinvalid() { - ERRMSG=$(cat tests/error | grep "option --" | wc -l) + ERRMSG=$(cat tmp/error | grep "option --" | wc -l) if [ $ERRMSG -eq $1 ] then printf "\e[1;32mError Message OK\e[0;00m\n" else printf "\e[1;31mWrong Error Message\e[0;00m\n" - cat tests/error + cat tmp/error FAULTS=$(($FAULTS+1)) fi } errorsuchfile() { - ERRMSG=$(cat tests/error | grep "such file" | wc -l) + ERRMSG=$(cat tmp/error | grep "such file" | wc -l) if [ $ERRMSG -eq $1 ] then printf "\e[1;32mError Message OK\e[0;00m\n" else printf "\e[1;31mWrong Error Message\e[0;00m\n" - cat tests/error + cat tmp/error FAULTS=$(($FAULTS+1)) fi } errorclean() { - ERRMSG=$(cat tests/error | grep " " | wc -l) + ERRMSG=$(cat tmp/error | grep " " | wc -l) if [ $ERRMSG -eq 0 ] then printf "\e[1;32mError Message OK\e[0;00m\n" @@ -147,9 +147,9 @@ errorclean() fourargs() { - ./pipex $1 "$2" "$3" $4 2> tests/error + ./pipex $1 "$2" "$3" $4 2> tmp/error RTRN=$? - < $1 $2 2> /dev/null | $3 > tests/expected 2> /dev/null + < $1 $2 2> /dev/null | $3 > tmp/expected 2> /dev/null if [ $? -eq $RTRN ] then printf "\e[1;32mReturn value OK\e[0;00m\n" @@ -157,7 +157,7 @@ fourargs() printf "\e[1;31mWrong return value should be $? is $RTRN\e[0;00m\n" FAULTS=$(($FAULTS+1)) fi - diff $4 tests/expected + diff $4 tmp/expected if [ $? -eq 0 ] then printf "\e[1;32mOutput file OK\e[0;00m\n" @@ -169,9 +169,9 @@ fourargs() fournodiff() { - timeout 2 ./pipex $1 "$2" "$3" $4 2> tests/error + timeout 2 ./pipex $1 "$2" "$3" $4 2> tmp/error RTRN=$? - < $1 $2 2> /dev/null | $3 > tests/expected 2> /dev/null + < $1 $2 2> /dev/null | $3 > tmp/expected 2> /dev/null if [ $? -eq $RTRN ] then printf "\e[1;32mEndless command OK\e[0;00m\n" @@ -183,9 +183,9 @@ fournodiff() fiveargs() { - ./pipex $1 "$2" "$3" "$4" $5 2> tests/error + ./pipex $1 "$2" "$3" "$4" $5 2> tmp/error RTRN=$? - < $1 $2 2> /dev/null | $3 2> /dev/null | $4 > tests/expected 2> /dev/null + < $1 $2 2> /dev/null | $3 2> /dev/null | $4 > tmp/expected 2> /dev/null if [ $? -eq $RTRN ] then printf "\e[1;32mEndless command OK\e[0;00m\n" @@ -193,7 +193,7 @@ fiveargs() printf "\e[1;31mOutput files don't match\e[0;00m\n" FAULTS=$(($FAULTS+1)) fi - diff $5 tests/expected + diff $5 tmp/expected if [ $? -eq 0 ] then printf "\e[1;32mOutput file OK\e[0;00m\n" @@ -205,9 +205,9 @@ fiveargs() fivenodiff() { - timeout 2 ./pipex $1 "$2" "$3" "$4" $5 2> tests/error + timeout 2 ./pipex $1 "$2" "$3" "$4" $5 2> tmp/error RTRN=$? - < $1 $2 2> /dev/null | $3 2> /dev/null | $4 > tests/expected 2> /dev/null + < $1 $2 2> /dev/null | $3 2> /dev/null | $4 > tmp/expected 2> /dev/null if [ $? -eq $RTRN ] then printf "\e[1;32mReturn value OK\e[0;00m\n" @@ -309,26 +309,26 @@ sleep $SLEEP # Test 10 printf "\e[1;36mTest 10: Running pipex properly with basic commands\e[0;00m\n" -fourargs tests/input "cat" "cat" tests/output +fourargs tmp/input "cat" "cat" tmp/output errorclean sleep $SLEEP # Test 11 printf "\e[1;36mTest 11: Running pipex with commands with options\e[0;00m\n" -fourargs tests/input "cat -e" "cat -v" tests/output +fourargs tmp/input "cat -e" "cat -v" tmp/output errorclean sleep $SLEEP # Test 12 printf "\e[1;36mTest 12: Running pipex with commands with multiple options\e[0;00m\n" -fourargs tests/input "cat -u -v -e" "cat -v -b -e" tests/output +fourargs tmp/input "cat -u -v -e" "cat -v -b -e" tmp/output errorclean sleep $SLEEP # Test 13 printf "\e[1;36mTest 13: Running pipex with empty commands\e[0;00m\n" -./pipex tests/input "" "" tests/output 2> tests/error -< tests/input "" 2> /dev/null | "" > tests/expected 2> /dev/null +./pipex tmp/input "" "" tmp/output 2> tmp/error +< tmp/input "" 2> /dev/null | "" > tmp/expected 2> /dev/null if [ $? -eq 127 ] then printf "\e[1;32mReturn value OK\e[0;00m\n" @@ -336,7 +336,7 @@ else printf "\e[1;31mWrong return value should be 127 is $?\e[0;00m\n" FAULTS=$(($FAULTS+1)) fi -diff tests/output tests/expected +diff tmp/output tmp/expected if [ $? -eq 0 ] then printf "\e[1;32mOutput file OK\e[0;00m\n" @@ -349,9 +349,9 @@ sleep $SLEEP # Test 14 printf "\e[1;36mTest 14: Running pipex with space commands\e[0;00m\n" -./pipex tests/input " " " " tests/output 2> tests/error +./pipex tmp/input " " " " tmp/output 2> tmp/error RTRN=$? -< tests/input " " 2> /dev/null | " " > tests/expected 2> /dev/null +< tmp/input " " 2> /dev/null | " " > tmp/expected 2> /dev/null if [ 127 -eq $RTRN ] then printf "\e[1;32mReturn value OK\e[0;00m\n" @@ -359,7 +359,7 @@ else printf "\e[1;31mWrong return value should be 127 is $?\e[0;00m\n" FAULTS=$(($FAULTS+1)) fi -diff tests/output tests/expected +diff tmp/output tmp/expected if [ $? -eq 0 ] then printf "\e[1;32mOutput file OK\e[0;00m\n" @@ -372,7 +372,7 @@ sleep $SLEEP # Test 15 printf "\e[1;36mTest 15: Running pipex with backticks\e[0;00m\n" -./pipex tests/input "`cat tests/cmd`" "`echo cat`" tests/output 2> tests/error +./pipex tmp/input "`cat tmp/cmd`" "`echo cat`" tmp/output 2> tmp/error if [ $? -eq 0 ] then printf "\e[1;32mReturn value OK\e[0;00m\n" @@ -380,8 +380,8 @@ else printf "\e[1;31mWrong return value should be 0 is $?\e[0;00m\n" FAULTS=$(($FAULTS+1)) fi -< tests/input `cat tests/cmd` 2> /dev/null | `echo cat` > tests/expected 2> /dev/null -diff tests/output tests/expected +< tmp/input `cat tmp/cmd` 2> /dev/null | `echo cat` > tmp/expected 2> /dev/null +diff tmp/output tmp/expected if [ $? -eq 0 ] then printf "\e[1;32mOutput file OK\e[0;00m\n" @@ -394,69 +394,69 @@ sleep $SLEEP # Test 16 printf "\e[1;36mTest 16: Running pipex with \$()\e[0;00m\n" -fourargs tests/input "$(cat tests/cmd)" "$(echo cat)" tests/output +fourargs tmp/input "$(cat tmp/cmd)" "$(echo cat)" tmp/output errorclean sleep $SLEEP # Test 17 printf "\e[1;36mTest 17: Running pipex with non existing input\e[0;00m\n" -fourargs doesnotexist "cat" "cat" tests/output +fourargs doesnotexist "cat" "cat" tmp/output errorsuchfile 1 sleep $SLEEP # Test 18 printf "\e[1;36mTest 18: Running pipex with nonexisting command 1\e[0;00m\n" -fourargs tests/input "doesnotexist" "cat" tests/output +fourargs tmp/input "doesnotexist" "cat" tmp/output errornotfound 1 sleep $SLEEP # Test 19 printf "\e[1;36mTest 19: Running pipex with nonexisting command 2\e[0;00m\n" -fourargs tests/input "cat" "doesnotexist" tests/output +fourargs tmp/input "cat" "doesnotexist" tmp/output errornotfound 1 sleep $SLEEP # Test 20 printf "\e[1;36mTest 20: Running pipex with nonexisting command 1 & 2\e[0;00m\n" -fourargs tests/input "doesnotexist" "doesnotexist" tests/output +fourargs tmp/input "doesnotexist" "doesnotexist" tmp/output errornotfound 2 sleep $SLEEP # Test 21 printf "\e[1;36mTest 21: Running pipex with nonexisting input and command 1 \e[0;00m\n" -fourargs doesnotexist "doesnotexist" "cat" tests/output +fourargs doesnotexist "doesnotexist" "cat" tmp/output errorsuchfile 1 sleep $SLEEP # Test 22 printf "\e[1;36mTest 22: Running pipex with nonexisting option 1\e[0;00m\n" -fourargs tests/input "cat -r" "cat" tests/output +fourargs tmp/input "cat -r" "cat" tmp/output errorinvalid 1 sleep $SLEEP # Test 23 printf "\e[1;36mTest 23: Running pipex with nonexisting option command 2\e[0;00m\n" -fourargs tests/input "cat" "cat -r" tests/output +fourargs tmp/input "cat" "cat -r" tmp/output errorinvalid 1 sleep $SLEEP # Test 24 printf "\e[1;36mTest 24: Running pipex with nonexisting option command 1 & 2\e[0;00m\n" -fourargs tests/input "cat -r" "cat -r" tests/output +fourargs tmp/input "cat -r" "cat -r" tmp/output errorinvalid 2 sleep $SLEEP # Test 25 printf "\e[1;36mTest 25: Running pipex with no read permissions on input\e[0;00m\n" -fourargs tests/perm "cat" "cat" tests/output +fourargs tmp/perm "cat" "cat" tmp/output errorpermdenied 1 sleep $SLEEP # Test 26 printf "\e[1;36mTest 26: Running pipex with no write permissions on existing output\e[0;00m\n" -./pipex tests/input "cat" "cat" tests/perm 2> tests/error +./pipex tmp/input "cat" "cat" tmp/perm 2> tmp/error RTRN=$? -< tests/input "cat" 2> /dev/null | "cat" > tests/perm 2> /dev/null +< tmp/input "cat" 2> /dev/null | "cat" > tmp/perm 2> /dev/null if [ $? -eq $RTRN ] then printf "\e[1;32mReturn value OK\e[0;00m\n" @@ -469,31 +469,31 @@ sleep $SLEEP # Test 27 printf "\e[1;36mTest 27: Running pipex with no execute permissions on command 1\e[0;00m\n" -fourargs tests/input tests/perm cat tests/output +fourargs tmp/input tmp/perm cat tmp/output errorpermdenied 1 sleep $SLEEP # Test 28 printf "\e[1;36mTest 28: Running pipex with no execute permissions on command 2\e[0;00m\n" -fourargs tests/input cat tests/perm tests/output +fourargs tmp/input cat tmp/perm tmp/output errorpermdenied 1 sleep $SLEEP # Test 29 printf "\e[1;36mTest 29: Running pipex with no execute permissions on command 1 & 2\e[0;00m\n" -fourargs tests/input tests/perm tests/perm tests/output +fourargs tmp/input tmp/perm tmp/perm tmp/output errorpermdenied 2 sleep $SLEEP # Test 30 printf "\e[1;36mTest 30: Running pipex with no execute permissions on command 1 and input\e[0;00m\n" -fourargs tests/perm tests/perm cat tests/output +fourargs tmp/perm tmp/perm cat tmp/output errorpermdenied 1 sleep $SLEEP # Test 31 printf "\e[1;36mTest 31: Running pipex with no execute permissions on command 2 and input\e[0;00m\n" -fourargs tests/perm cat tests/perm tests/output +fourargs tmp/perm cat tmp/perm tmp/output errorpermdenied 2 sleep $SLEEP @@ -501,8 +501,8 @@ sleep $SLEEP printf "\e[1;36mTest 32: Running pipex without the PATH env variable\e[0;00m\n" export ATH=$PATH unset PATH -./pipex tests/input "cat" "cat" tests/output 2> tests/error -< tests/input cat 2> /dev/null | cat > tests/expected 2> /dev/null +./pipex tmp/input "cat" "cat" tmp/output 2> tmp/error +< tmp/input cat 2> /dev/null | cat > tmp/expected 2> /dev/null if [ $? -eq 127 ] then printf "\e[1;32mReturn value OK\e[0;00m\n" @@ -511,7 +511,7 @@ else FAULTS=$(($FAULTS+1)) fi export PATH=$ATH -diff tests/output tests/expected +diff tmp/output tmp/expected if [ $? -eq 0 ] then printf "\e[1;32mOutput file OK\e[0;00m\n" @@ -524,52 +524,52 @@ sleep $SLEEP # Test 33 printf "\e[1;36mTest 33: Running pipex with double quotes\e[0;00m\n" -fourargs tests/input "echo ""hallo hallo""" "echo ""hallo hallo""" tests/output +fourargs tmp/input "echo ""hallo hallo""" "echo ""hallo hallo""" tmp/output errorclean sleep $SLEEP # Test 34 printf "\e[1;36mTest 34: Running pipex with single quotes\e[0;00m\n" -fourargs tests/input 'echo ''hallo hallo''' 'echo ''hallo hallo''' tests/output +fourargs tmp/input 'echo ''hallo hallo''' 'echo ''hallo hallo''' tmp/output errorclean sleep $SLEEP # Test 35 printf "\e[1;36mTest 35: Running pipex with double quotes in single quotes\e[0;00m\n" -fourargs tests/input 'echo "hallo hallo"' 'echo "hallo hallo"' tests/output +fourargs tmp/input 'echo "hallo hallo"' 'echo "hallo hallo"' tmp/output errorclean sleep $SLEEP # Test 36 printf "\e[1;36mTest 36: Running pipex with single quotes in double quotes\e[0;00m\n" -fourargs tests/input "echo 'hallo hallo'" "echo 'hallo hallo'" tests/output +fourargs tmp/input "echo 'hallo hallo'" "echo 'hallo hallo'" tmp/output errorclean sleep $SLEEP # Test 37 printf "\e[1;36mTest 37: Running pipex with Absolute paths\e[0;00m\n" -fourargs tests/input "$CATLOC" "$CATLOC" tests/output +fourargs tmp/input "$CATLOC" "$CATLOC" tmp/output errorclean sleep $SLEEP # Test 38 -cp $CATLOC tests/cat +cp $CATLOC tmp/cat printf "\e[1;36mTest 38: Running pipex with Relative paths\e[0;00m\n" -fourargs tests/input "tests/cat" "tests/cat" tests/output +fourargs tmp/input "tmp/cat" "tmp/cat" tmp/output errorclean sleep $SLEEP # Test 39 printf "\e[1;36mTest 39: Running pipex here_doc as inputfile\e[0;00m\n" -fourargs here_doc "cat" "cat" tests/output +fourargs here_doc "cat" "cat" tmp/output errorsuchfile 1 sleep $SLEEP # Test 40 printf "\e[1;36mTest 40: Running pipex with 2 sleep commands\e[0;00m\n" -(time < tests/input sleep 1 | sleep 1 > tests/expected) 2>&1 > /dev/null | grep real | awk '{print substr($0,6,4);}' > tests/timereal -(time ./pipex tests/input "sleep 1" "sleep 1" tests/output) 2>&1 > /dev/null | grep real | awk '{print substr($0,6,4);}' > tests/timepipe -diff tests/timereal tests/timepipe +(time < tmp/input sleep 1 | sleep 1 > tmp/expected) 2>&1 > /dev/null | grep real | awk '{print substr($0,6,4);}' > tmp/timereal +(time ./pipex tmp/input "sleep 1" "sleep 1" tmp/output) 2>&1 > /dev/null | grep real | awk '{print substr($0,6,4);}' > tmp/timepipe +diff tmp/timereal tmp/timepipe if [ $? -eq 0 ] then printf "\e[1;32mTime is OK\e[0;00m\n" @@ -581,7 +581,7 @@ sleep $SLEEP # Test 41 printf "\e[1;36mTest 41: Running pipex with an endless command\e[0;00m\n" -fournodiff tests/input "cat /dev/random" "head -c 100" tests/expected +fournodiff tmp/input "cat /dev/random" "head -c 100" tmp/expected errorclean sleep $SLEEP @@ -595,13 +595,13 @@ then if [ $FAULTS -eq 0 ] then printf "\e[1;35mBut we got no errors, Congratulations\e[0;00m\n" - rm -rf tests + rm -rf tmp make fclean > /dev/null exit 0 else printf "\e[1;31mAnd we got $FAULTS errors\nSo that's a bummer\e[0;00m\n" make fclean > /dev/null - rm -rf tests + rm -rf tmp exit 1 fi fi @@ -622,25 +622,25 @@ sleep $SLEEP # Test 44 printf "\e[1;36mTest 44: Running pipex properly with basic commands\e[0;00m\n" -fiveargs tests/input "cat" "cat" "cat" tests/output +fiveargs tmp/input "cat" "cat" "cat" tmp/output errorclean sleep $SLEEP # Test 45 printf "\e[1;36mTest 45: Running pipex with commands with options\e[0;00m\n" -fiveargs tests/input "cat -e" "cat -b" "cat -v" tests/output +fiveargs tmp/input "cat -e" "cat -b" "cat -v" tmp/output errorclean sleep $SLEEP # Test 46 printf "\e[1;36mTest 46: Running pipex with commands with multiple options\e[0;00m\n" -fiveargs tests/input "cat -u -b -e" "cat -v -b -e" "cat -v -b -e" tests/output +fiveargs tmp/input "cat -u -b -e" "cat -v -b -e" "cat -v -b -e" tmp/output errorclean sleep $SLEEP # Test 47 printf "\e[1;36mTest 47: Running pipex with empty commands\e[0;00m\n" -./pipex tests/input "" "" "" tests/output 2> tests/error +./pipex tmp/input "" "" "" tmp/output 2> tmp/error if [ $? -eq 127 ] then printf "\e[1;32mReturn value OK\e[0;00m\n" @@ -648,8 +648,8 @@ else printf "\e[1;31mWrong return value should be 127 is $?\e[0;00m\n" FAULTS=$(($FAULTS+1)) fi -< tests/input "" 2> /dev/null | "" 2> /dev/null | "" > tests/expected 2> /dev/null -diff tests/output tests/expected +< tmp/input "" 2> /dev/null | "" 2> /dev/null | "" > tmp/expected 2> /dev/null +diff tmp/output tmp/expected if [ $? -eq 0 ] then printf "\e[1;32mOutput file OK\e[0;00m\n" @@ -662,9 +662,9 @@ sleep $SLEEP # Test 48 printf "\e[1;36mTest 48: Running pipex with space commands\e[0;00m\n" -./pipex tests/input " " " " " " tests/output 2> tests/error +./pipex tmp/input " " " " " " tmp/output 2> tmp/error RTRN=$? -< tests/input " " 2> /dev/null | " " 2> /dev/null | " " > tests/expected 2> /dev/null +< tmp/input " " 2> /dev/null | " " 2> /dev/null | " " > tmp/expected 2> /dev/null if [ 127 -eq $RTRN ] then printf "\e[1;32mReturn value OK\e[0;00m\n" @@ -672,7 +672,7 @@ else printf "\e[1;31mWrong return value should be 127 is $?\e[0;00m\n" FAULTS=$(($FAULTS+1)) fi -diff tests/output tests/expected +diff tmp/output tmp/expected if [ $? -eq 0 ] then printf "\e[1;32mOutput file OK\e[0;00m\n" @@ -685,44 +685,44 @@ sleep $SLEEP # Test 49 printf "\e[1;36mTest 49: Running pipex with double quotes\e[0;00m\n" -fiveargs tests/input "echo ""hallo hallo""" "echo ""hallo hallo""" "echo ""hallo hallo""" tests/output +fiveargs tmp/input "echo ""hallo hallo""" "echo ""hallo hallo""" "echo ""hallo hallo""" tmp/output errorclean sleep $SLEEP # Test 50 printf "\e[1;36mTest 50: Running pipex with single quotes\e[0;00m\n" -fiveargs tests/input 'echo ''hallo hallo''' 'echo ''hallo hallo''' 'echo ''hallo hallo''' tests/output +fiveargs tmp/input 'echo ''hallo hallo''' 'echo ''hallo hallo''' 'echo ''hallo hallo''' tmp/output errorclean sleep $SLEEP # Test 51 printf "\e[1;36mTest 51: Running pipex with double quotes in single quotes\e[0;00m\n" -fiveargs tests/input 'echo "hallo hallo"' 'echo "hallo hallo"' 'echo "hallo hallo"' tests/output +fiveargs tmp/input 'echo "hallo hallo"' 'echo "hallo hallo"' 'echo "hallo hallo"' tmp/output errorclean sleep $SLEEP # Test 52 printf "\e[1;36mTest 52: Running pipex with single quotes in double quotes\e[0;00m\n" -fiveargs tests/input "echo 'hallo hallo'" "echo 'hallo hallo'" "echo 'hallo hallo'" tests/output +fiveargs tmp/input "echo 'hallo hallo'" "echo 'hallo hallo'" "echo 'hallo hallo'" tmp/output errorclean sleep $SLEEP # Test 53 printf "\e[1;36mTest 53: Running pipex with Absolute paths\e[0;00m\n" -fiveargs tests/input "$CATLOC" "$CATLOC" "$CATLOC" tests/output +fiveargs tmp/input "$CATLOC" "$CATLOC" "$CATLOC" tmp/output errorclean sleep $SLEEP # Test 54 -cp $CATLOC tests/cat +cp $CATLOC tmp/cat printf "\e[1;36mTest 54: Running pipex with Relative paths\e[0;00m\n" -fiveargs tests/input "tests/cat" "tests/cat" "tests/cat" tests/output +fiveargs tmp/input "tmp/cat" "tmp/cat" "tmp/cat" tmp/output errorclean sleep $SLEEP # Test 55 printf "\e[1;36mTest 55: Running pipex with backticks\e[0;00m\n" -./pipex tests/input "`cat tests/cmd`" "`echo cat`" "`cat tests/cmd`" tests/output 2> tests/error +./pipex tmp/input "`cat tmp/cmd`" "`echo cat`" "`cat tmp/cmd`" tmp/output 2> tmp/error if [ $? -eq 0 ] then printf "\e[1;32mReturn value OK\e[0;00m\n" @@ -730,8 +730,8 @@ else printf "\e[1;31mWrong return value should be 0 is $?\e[0;00m\n" FAULTS=$(($FAULTS+1)) fi -< tests/input `cat tests/cmd` 2> /dev/null | `echo cat` > tests/expected 2> /dev/null -diff tests/output tests/expected +< tmp/input `cat tmp/cmd` 2> /dev/null | `echo cat` > tmp/expected 2> /dev/null +diff tmp/output tmp/expected if [ $? -eq 0 ] then printf "\e[1;32mOutput file OK\e[0;00m\n" @@ -744,75 +744,75 @@ sleep $SLEEP # Test 56 printf "\e[1;36mTest 56: Running pipex with \$()\e[0;00m\n" -fiveargs tests/input "$(cat tests/cmd)" "$(echo cat)" "$(cat tests/cmd)" tests/output +fiveargs tmp/input "$(cat tmp/cmd)" "$(echo cat)" "$(cat tmp/cmd)" tmp/output errorclean sleep $SLEEP # Test 57 printf "\e[1;36mTest 57: Running pipex with non existing input\e[0;00m\n" -fiveargs doesnotexist "cat" "cat" "cat" tests/output +fiveargs doesnotexist "cat" "cat" "cat" tmp/output errorsuchfile 1 sleep $SLEEP # Test 58 printf "\e[1;36mTest 58: Running pipex with nonexisting command 1\e[0;00m\n" -fiveargs tests/input "doesnotexist" "cat" "cat" tests/output +fiveargs tmp/input "doesnotexist" "cat" "cat" tmp/output errornotfound 1 sleep $SLEEP # Test 59 printf "\e[1;36mTest 59: Running pipex with nonexisting command 2\e[0;00m\n" -fiveargs tests/input "cat" "doesnotexist" "cat" tests/output +fiveargs tmp/input "cat" "doesnotexist" "cat" tmp/output errornotfound 1 sleep $SLEEP # Test 60 printf "\e[1;36mTest 60: Running pipex with nonexisting command 3\e[0;00m\n" -fiveargs tests/input "cat" "cat" "doesnotexist" tests/output +fiveargs tmp/input "cat" "cat" "doesnotexist" tmp/output errornotfound 1 sleep $SLEEP # Test 61 printf "\e[1;36mTest 61: Running pipex with nonexisting command 1, 2 & 3\e[0;00m\n" -fiveargs tests/input "doesnotexist" "doesnotexist" "doesnotexist" tests/output +fiveargs tmp/input "doesnotexist" "doesnotexist" "doesnotexist" tmp/output errornotfound 3 sleep $SLEEP # Test 62 printf "\e[1;36mTest 62: Running pipex with nonexisting input and command 1 \e[0;00m\n" -fiveargs doesnotexist "doesnotexist" "cat" "cat" tests/output +fiveargs doesnotexist "doesnotexist" "cat" "cat" tmp/output errorsuchfile 1 sleep $SLEEP # Test 63 printf "\e[1;36mTest 63: Running pipex with nonexisting option 1\e[0;00m\n" -fiveargs tests/input "cat -r" "cat" "cat" tests/output +fiveargs tmp/input "cat -r" "cat" "cat" tmp/output errorinvalid 1 sleep $SLEEP # Test 64 printf "\e[1;36mTest 64: Running pipex with nonexisting option command 3\e[0;00m\n" -fiveargs tests/input "cat" "cat" "cat -r" tests/output +fiveargs tmp/input "cat" "cat" "cat -r" tmp/output errorinvalid 1 sleep $SLEEP # Test 65 printf "\e[1;36mTest 65: Running pipex with nonexisting option command 1, 2 & 3\e[0;00m\n" -fiveargs tests/input "cat -r" "cat -r" "cat -r" tests/output +fiveargs tmp/input "cat -r" "cat -r" "cat -r" tmp/output errorinvalid 3 sleep $SLEEP # Test 66 printf "\e[1;36mTest 66: Running pipex with no read permissions on input\e[0;00m\n" -fiveargs tests/perm "cat" "cat" "cat" tests/output +fiveargs tmp/perm "cat" "cat" "cat" tmp/output errorpermdenied 1 sleep $SLEEP # Test 67 printf "\e[1;36mTest 67: Running pipex with no write permissions on existing output\e[0;00m\n" -./pipex tests/input "cat" "cat" "cat" tests/perm 2> tests/error +./pipex tmp/input "cat" "cat" "cat" tmp/perm 2> tmp/error RTRN=$? -< tests/input "cat" 2> /dev/null | "cat" 2> /dev/null | "cat" > tests/perm 2> /dev/null +< tmp/input "cat" 2> /dev/null | "cat" 2> /dev/null | "cat" > tmp/perm 2> /dev/null if [ $? -eq $RTRN ] then printf "\e[1;32mReturn value OK\e[0;00m\n" @@ -825,46 +825,46 @@ sleep $SLEEP # Test 68 printf "\e[1;36mTest 68: Running pipex with no execute permissions on command 1\e[0;00m\n" -fiveargs tests/input tests/perm cat cat tests/output +fiveargs tmp/input tmp/perm cat cat tmp/output errorpermdenied 1 sleep $SLEEP # Test 69 printf "\e[1;36mTest 69: Running pipex with no execute permissions on command 2\e[0;00m\n" -fiveargs tests/input cat tests/perm cat tests/output +fiveargs tmp/input cat tmp/perm cat tmp/output errorpermdenied 1 sleep $SLEEP # Test 70 printf "\e[1;36mTest 70: Running pipex with no execute permissions on command 3\e[0;00m\n" -fiveargs tests/input cat cat tests/perm tests/output +fiveargs tmp/input cat cat tmp/perm tmp/output errorpermdenied 1 sleep $SLEEP # Test 71 printf "\e[1;36mTest 71: Running pipex with no execute permissions on command 1, 2 & 3\e[0;00m\n" -fiveargs tests/input tests/perm tests/perm tests/perm tests/output +fiveargs tmp/input tmp/perm tmp/perm tmp/perm tmp/output errorpermdenied 3 sleep $SLEEP # Test 72 printf "\e[1;36mTest 72: Running pipex with no execute permissions on command 1 and input\e[0;00m\n" -fiveargs tests/perm tests/perm cat cat tests/output +fiveargs tmp/perm tmp/perm cat cat tmp/output errorpermdenied 1 sleep $SLEEP # Test 73 printf "\e[1;36mTest 73: Running pipex with no execute permissions on command 3 and input\e[0;00m\n" -fiveargs tests/perm cat cat tests/perm tests/output +fiveargs tmp/perm cat cat tmp/perm tmp/output errorpermdenied 2 sleep $SLEEP # Test 74 printf "\e[1;36mTest 74: Running pipex with heredoc empty lines\e[0;00m\n" printf "press enter twice, type EOF and press enter again\n" -./pipex here_doc EOF "cat" "cat" tests/output 2> tests/error +./pipex here_doc EOF "cat" "cat" tmp/output 2> tmp/error RTRN=$? -<< EOF cat 2> /dev/null | cat >> tests/expected 2> /dev/null +<< EOF cat 2> /dev/null | cat >> tmp/expected 2> /dev/null EOF @@ -875,7 +875,7 @@ else printf "\e[1;31mWrong return value should be $? is $RTRN\e[0;00m\n" FAULTS=$(($FAULTS+1)) fi -diff tests/output tests/expected > /dev/null 2>&1 +diff tmp/output tmp/expected > /dev/null 2>&1 if [ $? -eq 0 ] then printf "\e[1;32mOutput file OK\e[0;00m\n" @@ -889,9 +889,9 @@ sleep $SLEEP # Test 75 printf "\e[1;36mTest 75: Running pipex with heredoc space before and after delimiter\e[0;00m\n" printf "type ' EOF', press enter, type 'EOF', press enter again. without quotes, and notice the spaces\n" -./pipex here_doc EOF "cat" "cat" tests/output 2> tests/error +./pipex here_doc EOF "cat" "cat" tmp/output 2> tmp/error RTRN=$? -<< EOF cat 2> /dev/null | cat >> tests/expected 2> /dev/null +<< EOF cat 2> /dev/null | cat >> tmp/expected 2> /dev/null EOF EOF if [ $? -eq $RTRN ] @@ -901,7 +901,7 @@ else printf "\e[1;31mWrong return value should be $? is $RTRN\e[0;00m\n" FAULTS=$(($FAULTS+1)) fi -diff tests/output tests/expected > /dev/null 2>&1 +diff tmp/output tmp/expected > /dev/null 2>&1 if [ $? -eq 0 ] then printf "\e[1;32mOutput file OK\e[0;00m\n" @@ -918,9 +918,9 @@ printf "\e[1;36mTest 76: Running pipex with well over a thousand pipes\e[0;00m\n if [ $OS == "Linux" ] then printf "\e[1;35mNote that this can have unpredictable behavior\e[0;00m\n" - ./pipex tests/input cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat tests/output 2> /dev/null + ./pipex tmp/input cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat tmp/output 2> /dev/null RTRN=$? - < tests/input cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat > tests/expected 2> /dev/null + < tmp/input cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat | cat > tmp/expected 2> /dev/null if [ $? -eq $RTRN ] then printf "\e[1;32mReturn value OK\e[0;00m\n" @@ -929,7 +929,7 @@ then printf "\e[1;31mWrong return value should be $? is $RTRN\e[0;00m\n" FAULTS=$(($FAULTS+1)) fi - diff tests/output tests/expected > /dev/null 2>&1 + diff tmp/output tmp/expected > /dev/null 2>&1 if [ $? -eq 0 ] then printf "\e[1;32mOutput file OK\e[0;00m\n" @@ -945,9 +945,9 @@ sleep $SLEEP # Test 77 printf "\e[1;36mTest 77: Running pipex with all wrong options except the last\e[0;00m\n" -./pipex tests/input "cat -r" "cat -r" "cat -r" "cat -r" "cat -r" "cat -r" "cat -r" "cat -r" "cat -r" cat tests/output 2> tests/error +./pipex tmp/input "cat -r" "cat -r" "cat -r" "cat -r" "cat -r" "cat -r" "cat -r" "cat -r" "cat -r" cat tmp/output 2> tmp/error RTRN=$? -< tests/input cat -r 2> /dev/null | cat -r 2> /dev/null | cat -r 2> /dev/null | cat -r 2> /dev/null | cat -r 2> /dev/null | cat -r 2> /dev/null | cat -r 2> /dev/null | cat -r 2> /dev/null | cat -r 2> /dev/null | cat > tests/expected 2> /dev/null +< tmp/input cat -r 2> /dev/null | cat -r 2> /dev/null | cat -r 2> /dev/null | cat -r 2> /dev/null | cat -r 2> /dev/null | cat -r 2> /dev/null | cat -r 2> /dev/null | cat -r 2> /dev/null | cat -r 2> /dev/null | cat > tmp/expected 2> /dev/null if [ $? -eq $RTRN ] then printf "\e[1;32mReturn value OK\e[0;00m\n" @@ -955,7 +955,7 @@ else printf "\e[1;31mWrong return value should be $? is $RTRN\e[0;00m\n" FAULTS=$(($FAULTS+1)) fi -diff tests/output tests/expected > /dev/null 2>&1 +diff tmp/output tmp/expected > /dev/null 2>&1 if [ $? -eq 0 ] then printf "\e[1;32mOutput file OK\e[0;00m\n" @@ -968,9 +968,9 @@ sleep $SLEEP # Test 78 printf "\e[1;36mTest 78: Running pipex with 3 sleep commands\e[0;00m\n" -(time < tests/input sleep 1 | sleep 1 > tests/expected) 2>&1 > /dev/null | grep real | awk '{print substr($0,6,4);}' > tests/timereal -(time ./pipex tests/input "sleep 1" "sleep 1" tests/output) 2>&1 > /dev/null | grep real | awk '{print substr($0,6,4);}' > tests/timepipe -diff tests/timereal tests/timepipe +(time < tmp/input sleep 1 | sleep 1 > tmp/expected) 2>&1 > /dev/null | grep real | awk '{print substr($0,6,4);}' > tmp/timereal +(time ./pipex tmp/input "sleep 1" "sleep 1" tmp/output) 2>&1 > /dev/null | grep real | awk '{print substr($0,6,4);}' > tmp/timepipe +diff tmp/timereal tmp/timepipe if [ $? -eq 0 ] then printf "\e[1;32mTime is OK\e[0;00m\n" @@ -982,7 +982,7 @@ sleep $SLEEP # Test 79 printf "\e[1;36mTest 79: Running pipex with an endless command\e[0;00m\n" -fivenodiff tests/input "cat /dev/random" "base64" "head -c 100" tests/expected +fivenodiff tmp/input "cat /dev/random" "base64" "head -c 100" tmp/expected errorclean sleep $SLEEP @@ -991,10 +991,10 @@ then printf "\e[1;35mwe got no errors, Congratulations\e[0;00m\n" else printf "\e[1;31mwe got $FAULTS errors\nSo that's a bummer\e[0;00m\n" - rm -rf tests + rm -rf tmp make fclean > /dev/null exit 1 fi -rm -rf tests +rm -rf tmp make fclean > /dev/null exit 0