1#!/usr/bin/env bash 2 3# Script to do performance testing. 4 5# Invocation 6# check_performance SRC_DIR BUILD_DIR 7 8# 1: variables 9# 10SRC_DIR=$1 11BUILD_DIR=$2 12 13# Now that we've successfully translated the numerical option into 14# a symbolic one, we can safely ignore it. 15shift 16 17# This has been true all along. Found out about it the hard way... 18case $BASH_VERSION in 19 1*) 20 echo 'You need bash 2.x to run check_performance. Exiting.'; 21 exit 1 ;; 22 *) ;; 23esac 24 25flags_script=$BUILD_DIR/scripts/testsuite_flags 26INCLUDES=`$flags_script --build-includes` 27PCH_FLAGS=`$flags_script --cxxpchflags` 28FLAGS=`$flags_script --cxxflags` 29THREAD_FLAG='-pthread' 30COMPILER=`$flags_script --build-cxx` 31SH_FLAG="-Wl,--rpath -Wl,$BUILD_DIR/../../gcc \ 32 -Wl,--rpath -Wl,$BUILD_DIR/src/.libs" 33ST_FLAG="-static" 34LINK=$SH_FLAG 35CXX="$COMPILER $INCLUDES $PCH_FLAGS $FLAGS $LINK" 36TESTS_FILE="testsuite_files_performance" 37 38for NAME in `cat $TESTS_FILE` 39do 40 RUN=true 41 42 # TEST_S == single thread 43 # TEST_B == do both single and multi-thread 44 # TEST_T == multi-thread 45 for CYCLE in `sed -n 's,.*\(TEST_[SB][0-9]*\)$,\1,p' $SRC_DIR/testsuite/$NAME` 46 do 47 RUN=false 48 echo $NAME $CYCLE 49 FILE_NAME="`basename $NAME`" 50 FILE_NAME="`echo $FILE_NAME | sed 's/.cc//g'`" 51 EXE_NAME="`echo $FILE_NAME-$CYCLE.exe`" 52 $CXX -DNOTHREAD -D$CYCLE $SRC_DIR/testsuite/$NAME -o $EXE_NAME 53 if [ -f $EXE_NAME ]; then 54 ./$EXE_NAME 55 fi 56 done 57 58 for CYCLE in `sed -n 's,.*\(TEST_[TB][0-9]*\)$,\1,p' $SRC_DIR/testsuite/$NAME` 59 do 60 RUN=false 61 echo $NAME $CYCLE thread 62 FILE_NAME="`basename $NAME`" 63 FILE_NAME="`echo $FILE_NAME | sed 's/.cc//g'`" 64 EXE_NAME="`echo $FILE_NAME-$CYCLE.exe`" 65 $CXX $THREAD_FLAG -D$CYCLE $SRC_DIR/testsuite/$NAME -o $EXE_NAME 66 if [ -f $EXE_NAME ]; then 67 ./$EXE_NAME 68 fi 69 done 70 71 if $RUN; then 72 echo $NAME 73 FILE_NAME="`basename $NAME`" 74 EXE_NAME="`echo $FILE_NAME | sed 's/cc$/exe/'`" 75 $CXX $SRC_DIR/testsuite/$NAME -o $EXE_NAME 76 if [ -f $EXE_NAME ]; then 77 ./$EXE_NAME 78 fi 79 fi 80done 81 82exit 0 83