Advertisement
IvoB1n

test_script

Nov 22nd, 2020 (edited)
1,105
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/bin/sh
  2.  
  3. # use ./tests/test_script.sh tests/add/add (-l for less information, -go to run ic20) to run script
  4.  
  5. dir_to_search=$1;
  6. less_flag=$2
  7.  
  8. search() {
  9.     for file in "$1"/*; do
  10.         if [ -f "$file" ]; then
  11.             test "$file"
  12.         elif [ -d "$file" ]; then
  13.         echo "  "
  14.         echo "  "
  15.         echo "  "
  16.         echo "----$file----"
  17.         echo "  "
  18.        
  19.             search "$file";
  20.         fi
  21.     done
  22. }
  23.  
  24. test() {
  25.         if [ "$less_flag" = "-l" ]; then
  26.             echo "$1"
  27.             ./compiler < "$1" >/dev/null 2>/dev/null
  28.             ret_val=$?
  29.             line=$(head -n 1 $1)
  30.             echo "  "
  31.             echo "return value:       \e[0;36m $ret_val \e[0m   \e[0;36m ///// \e[0m"
  32.             echo "expected:\e[0;33m $line \e[0m  \e[0;33m ///// \e[0m"
  33.             echo "                         /"
  34.             echo "                        /"
  35.         elif [ "$less_flag" = "-v" ]; then
  36.             echo "$1"
  37.             valgrind --leak-check=full --track-origins=yes --verbose ./compiler < "$1"
  38.             ret_val=$?
  39.             line=$(head -n 1 $1)
  40.             echo "  "
  41.             echo "return value:       \e[0;36m $ret_val \e[0m   \e[0;36m ///// \e[0m"
  42.             echo "expected:\e[0;33m $line \e[0m  \e[0;33m ///// \e[0m"
  43.             echo "                         /"
  44.             echo "                        /"
  45.         elif [ "$less_flag" = "-lv" ]; then
  46.             echo "$1"
  47.             valgrind ./compiler < "$1" >/dev/null # 2>/dev/null
  48.             ret_val=$?
  49.             line=$(head -n 1 $1)
  50.             echo "  "
  51.             echo "return value:       \e[0;36m $ret_val \e[0m   \e[0;36m ///// \e[0m"
  52.             echo "expected:\e[0;33m $line \e[0m  \e[0;33m ///// \e[0m"
  53.             echo "                         /"
  54.             echo "                        /"
  55.         elif [ "$less_flag" = "-gl" ]; then
  56.             echo "$1"
  57.             ./compiler < "$1"   2>/dev/null > output.out
  58.             ret_val=$?
  59.             # line=$(head -n 1 $1)
  60.             # echo "  "
  61.             # echo "return value:       \e[0;36m $ret_val \e[0m   \e[0;36m ///// \e[0m"
  62.             # echo "expected:\e[0;33m $line \e[0m  \e[0;33m ///// \e[0m"
  63.             # echo "                         /"
  64.             # echo "                        /"
  65.         elif [ "$less_flag" = "-g" ]; then
  66.             echo "$1"
  67.             ./compiler < "$1" #> output.out  2>/dev/null
  68.             ret_val=$?
  69.             line=$(head -n 1 $1)
  70.             echo "  "
  71.             echo "return value:       \e[0;36m $ret_val \e[0m   \e[0;36m ///// \e[0m"
  72.             echo "expected:\e[0;33m $line \e[0m  \e[0;33m ///// \e[0m"
  73.             echo "                         /"
  74.             echo "                        /"
  75.         elif [ "$less_flag" = "-go" ]; then
  76.             echo "$1"
  77.             rm gen.code
  78.             ./compiler < "$1" >gen.code #2>/dev/null
  79.             ret_valcom=$?
  80.             echo " ~~~~~~~~~ "
  81.             ./ic20int gen.code
  82.             echo ""
  83.             echo " ~~~~~~~~~ "
  84.             ret_valint=$?
  85.            
  86.             line=$(head -n 1 $1)
  87.             echo "return value comp:   $ret_valcom "
  88.             echo "expected: $line "
  89.             echo "return value inter:  $ret_valint "
  90.  
  91.         else
  92.             echo "$1"
  93.             ./compiler < "$1"
  94.             ret_val=$?
  95.             line=$(head -n 1 $1)
  96.             echo "  "
  97.             echo "return value:       \e[0;36m $ret_val \e[0m   \e[0;36m ///// \e[0m"
  98.             echo "expected:\e[0;33m $line \e[0m  \e[0;33m ///// \e[0m"
  99.             echo "                         /"
  100.             echo "                        /"
  101.         fi
  102.         echo "  "
  103. }
  104.  
  105. if [ $1 = "-h" ]; then
  106.     echo "./tests/test_script.sh /tests/add/add (-l for less information)"
  107. elif [ -f $dir_to_search ]; then
  108.     test $dir_to_search
  109. else
  110.     search "$dir_to_search"
  111. fi
Advertisement
RAW Paste Data Copied
Advertisement