#! /bin/sh # This is a script for the CGAL test suite. Such a script must obey # the following rules: # # - the name of the script is cgal_test # - for every target two one line messages are written to the file 'error.txt' # the first one indicates if the compilation was successful # the second one indicates if the execution was successful # if one of the two was not successful, the line should start with 'ERROR:' # - running the script should not require any user interaction # - the script should clean up object files and executables ERRORFILE=error.txt #---------------------------------------------------------------------# # compile_and_run #---------------------------------------------------------------------# compile_and_run() { echo "Compiling $1 ... " SUCCES="y" if eval 'make CGAL_MAKEFILE=$CGAL_MAKEFILE \ TESTSUITE_CXXFLAGS="$TESTSUITE_CXXFLAGS" \ TESTSUITE_LDFLAGS="$TESTSUITE_LDFLAGS" $1' ; then echo " succesful compilation of $1" >> $ERRORFILE else echo " ERROR: compilation of $1" >> $ERRORFILE SUCCES="" fi if [ -n "${SUCCES}" ] ; then OUTPUTFILE=ProgramOutput.$1.$PLATFORM rm -f $OUTPUTFILE COMMAND="./$1" if [ -f $1.cmd ] ; then COMMAND="$COMMAND `cat $1.cmd`" fi if [ -f $1.cin ] ; then COMMAND="cat $1.cin | $COMMAND" fi echo "Executing $1 ... " echo ulimit -t 1200 if eval $COMMAND > $OUTPUTFILE 2>&1 ; then echo " succesful execution of $1" >> $ERRORFILE else echo " ERROR: execution of $1" >> $ERRORFILE fi else echo " ERROR: not executed $1" >> $ERRORFILE fi eval "make CGAL_MAKEFILE=$CGAL_MAKEFILE clean > /dev/null 2>&1 " } #---------------------------------------------------------------------# # remove the previous error file #---------------------------------------------------------------------# rm -f $ERRORFILE touch $ERRORFILE #---------------------------------------------------------------------# # compile and run the tests #---------------------------------------------------------------------# if [ $# -ne 0 ] ; then for file in $* ; do compile_and_run $file done else compile_and_run Cartesian compile_and_run Dimension compile_and_run Filtered_cartesian compile_and_run Filtered_homogeneous compile_and_run Homogeneous compile_and_run Kernel_checker compile_and_run Simple_cartesian compile_and_run Simple_homogeneous compile_and_run test_kernel_archetype_2 compile_and_run test_kernel_archetype_3 compile_and_run test_kernel__ fi