Home | History | Annotate | Download | only in full_bisect_test
      1 #!/bin/bash -u
      2 #
      3 # This script is one of the required scripts that get passed to
      4 # binary_search_state.py.  It's job is to test the executable that
      5 # was generated by mixing/matching good & bad object files, and determine
      6 # whether the resulting binary is good or bad.
      7 #
      8 # In this particular case, the generated binary is 'bin-trees'.  This
      9 # script runs the binary, captures its output, and compares the output
     10 # to a file containg the correct (good) output, and three files containing
     11 # what the bad output might look like, depending on if one of the two
     12 # possile bad .o files was used, or if both bad .o files were used.
     13 #
     14 # If the output matches the known good output, this returns 0.
     15 # If the output matches any known bad output, this returns 1.
     16 # If the output does not match the good or bad outputs, this returns 125.
     17 #
     18 
     19 source full_bisect_test/common.sh
     20 
     21 full_bisect_test/bin-trees > full_bisect_test/temp_output.txt
     22 
     23 diff full_bisect_test/temp_output.txt full_bisect_test/good-output.txt &> /dev/null
     24 retval=$?
     25 
     26 if [[ ${retval} -eq 0 ]]; then
     27   rm -f full_bisect_test/temp_output.txt
     28   exit 0
     29 fi
     30 
     31 diff full_bisect_test/temp_output.txt full_bisect_test/bad-output-1.txt &> /dev/null
     32 retval=$?
     33 
     34 if [[ ${retval} -eq 0 ]]; then
     35   rm -f full_bisect_test/temp_output.txt
     36   exit 1
     37 else
     38   diff full_bisect_test/temp_output.txt full_bisect_test/bad-output-2.txt &> /dev/null
     39   retval=$?
     40   if [[ ${retval} -eq 0 ]]; then
     41     rm -f full_bisect_test/temp_output.txt
     42     exit 1
     43   else
     44     diff full_bisect_test/temp_output.txt full_bisect_test/bad-output-3.txt &> /dev/null
     45     retval=$?
     46     if [[ ${retval} -eq 0 ]]; then
     47       rm -f full_bisect_test/temp_output.txt
     48       exit 1
     49     fi
     50   fi
     51 fi
     52 
     53 rm -f full_bisect_test/temp_output.txt
     54 exit 125
     55 
     56 
     57