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` -include bits/stdc++.h" 27FLAGS=`$flags_script --cxxflags` 28THREAD_FLAG='-pthread' 29COMPILER=`$flags_script --build-cxx` 30SH_FLAG="-Wl,--rpath -Wl,$BUILD_DIR/../../gcc \ 31 -Wl,--rpath -Wl,$BUILD_DIR/src/.libs" 32ST_FLAG="-static" 33LINK=$SH_FLAG 34CXX="$COMPILER $INCLUDES $FLAGS -DNOTHREAD $LINK" 35CXX_THREAD="$COMPILER $INCLUDES $FLAGS $THREAD_FLAG $LINK" 36 37 38TESTS_FILE="testsuite_files_performance" 39 40for NAME in `cat $TESTS_FILE` 41do 42 RUN=true 43 for CYCLE in `sed -n 's,.*\(TEST_[SB][0-9]*\)$,\1,p' $SRC_DIR/testsuite/$NAME` 44 do 45 RUN=false 46 echo $NAME $CYCLE 47 FILE_NAME="`basename $NAME`" 48 EXE_NAME="`echo $FILE_NAME-$CYCLE | sed 's/cc$/exe/'`" 49 $CXX -D$CYCLE $SRC_DIR/testsuite/$NAME -o $EXE_NAME 50 ./$EXE_NAME 51 echo "" 52 done 53 for CYCLE in `sed -n 's,.*\(TEST_[TB][0-9]*\)$,\1,p' $SRC_DIR/testsuite/$NAME` 54 do 55 RUN=false 56 echo $NAME $CYCLE THREAD 57 FILE_NAME="`basename $NAME`" 58 EXE_NAME="`echo $FILE_NAME-$CYCLE | sed 's/cc$/exe/'`" 59 $CXX_THREAD -D$CYCLE $SRC_DIR/testsuite/$NAME -o $EXE_NAME 60 ./$EXE_NAME 61 echo "" 62 done 63 if $RUN; then 64 echo $NAME 65 FILE_NAME="`basename $NAME`" 66 EXE_NAME="`echo $FILE_NAME | sed 's/cc$/exe/'`" 67 $CXX $SRC_DIR/testsuite/$NAME -o $EXE_NAME 68 ./$EXE_NAME 69 echo "" 70 fi 71done 72 73exit 0 74