testing5/bfc_test.sh
changeset 286 5c57c407e27b
parent 266 ca48ac1d3c3e
equal deleted inserted replaced
285:bd9d142d2cd8 286:5c57c407e27b
       
     1 #!/bin/bash
       
     2 set -e
       
     3 
       
     4 out=${1:-output}
       
     5 
       
     6 echo -e "" > $out
       
     7 
       
     8 echo -e "Below is the feedback for your submission of CW 10, Part 2." >> $out
       
     9 echo -e "" >> $out
       
    10 
       
    11 
       
    12 # compilation tests
       
    13 
       
    14 function scala_compile {
       
    15    (ulimit -t 30; JAVA_OPTS="-Xmx1g" scala "$1" 2>> $out 1>> $out)
       
    16 }
       
    17 
       
    18 # functional tests
       
    19 
       
    20 function scala_assert {
       
    21   (ulimit -t 30; JAVA_OPTS="-Xmx1g" scala -i "$1" -- "$2" 2> /dev/null 1> /dev/null)   
       
    22 }
       
    23 
       
    24 # purity test
       
    25 
       
    26 function scala_vars {
       
    27    (egrep '\bvar\b|\breturn\b|\.par|ListBuffer|mutable|new Array' "$1" 2> /dev/null 1> /dev/null)
       
    28 }
       
    29 
       
    30 
       
    31 # var, return, ListBuffer test
       
    32 #
       
    33 echo -e "bfc.scala does not contain vars, returns etc?" >> $out
       
    34 
       
    35 if (scala_vars bfc.scala)
       
    36 then
       
    37   echo -e "   --> FAIL (make triple-sure your program conforms to the required format)" >> $out  
       
    38   tsts0=$(( 0 ))
       
    39 else
       
    40   echo -e "  --> success" >> $out
       
    41   tsts0=$(( 0 )) 
       
    42 fi
       
    43 
       
    44 
       
    45 # compilation test
       
    46 if  [ $tsts0 -eq 0 ]
       
    47 then    
       
    48   echo -e "bfc.scala runs?" >> $out
       
    49 
       
    50   if (scala_compile bfc.scala)
       
    51   then
       
    52     echo -e "  --> success" >> $out
       
    53     tsts1=$(( 0 ))
       
    54   else
       
    55     echo -e "  -->   --> SCALA DID NOT RUN BFC.SCALA\n" >> $out
       
    56     tsts1=$(( 1 )) 
       
    57   fi
       
    58 else
       
    59   tsts1=$(( 1 ))     
       
    60 fi
       
    61 
       
    62 
       
    63 ### bfc tests
       
    64 
       
    65 if [ $tsts1 -eq 0 ]
       
    66 then
       
    67   echo -e " jtable(\"\"\"+++++[->++++++++++<]>--<+++[->>++++++++++<<]>>++<<----------[+>.>.<+<]\"\"\") ==" >> $out
       
    68   echo -e "     Map(69 -> 61, 5 -> 20, 60 -> 70, 27 -> 44, 43 -> 28, 19 -> 6)" >> $out  
       
    69   
       
    70   if (scala_assert "bfc.scala" "bf_test5.scala")
       
    71   then
       
    72     echo -e "  --> success" >> $out
       
    73   else
       
    74     echo -e "  --> \n ONE TEST FAILED\n" >> $out
       
    75   fi
       
    76 fi
       
    77 
       
    78 
       
    79 
       
    80 if [ $tsts1 -eq 0 ]
       
    81 then
       
    82   echo -e " optimise(load_bff(\"benchmark.bf\")).length == 181" >> $out
       
    83   echo -e " optimise(load_bff(\"mandelbrot.bf\")).length == 11203" >> $out  
       
    84   
       
    85   if (scala_assert "bfc.scala" "bf_test6.scala")
       
    86   then
       
    87     echo -e "  --> success" >> $out
       
    88   else
       
    89     echo -e "  --> \n ONE TEST FAILED\n" >> $out
       
    90   fi
       
    91 fi
       
    92 
       
    93 
       
    94 
       
    95 if [ $tsts1 -eq 0 ]
       
    96 then
       
    97     echo -e " combine(optimise(load_bff(\"benchmark.bf\"))).length == 134" >> $out
       
    98     echo -e " combine(optimise(load_bff(\"mandelbrot.bf\"))).length == 6509" >> $out
       
    99   
       
   100   if (scala_assert "bfc.scala" "bf_test7.scala")
       
   101   then
       
   102     echo -e "  --> success" >> $out
       
   103   else
       
   104     echo -e "  --> \n ONE TEST FAILED\n" >> $out   
       
   105   fi
       
   106 fi
       
   107 
       
   108 
       
   109