| #!/usr/bin/env bash |
| |
| # Script to do performance testing. |
| |
| # Invocation |
| # check_performance SRC_DIR BUILD_DIR |
| |
| # 1: variables |
| # |
| SRC_DIR=$1 |
| BUILD_DIR=$2 |
| |
| # Now that we've successfully translated the numerical option into |
| # a symbolic one, we can safely ignore it. |
| shift |
| |
| # This has been true all along. Found out about it the hard way... |
| case $BASH_VERSION in |
| 1*) |
| echo 'You need bash 2.x to run check_performance. Exiting.'; |
| exit 1 ;; |
| *) ;; |
| esac |
| |
| flags_script=$BUILD_DIR/scripts/testsuite_flags |
| INCLUDES="`$flags_script --build-includes` -include bits/stdc++.h" |
| FLAGS=`$flags_script --cxxflags` |
| THREAD_FLAG='-pthread' |
| COMPILER=`$flags_script --build-cxx` |
| SH_FLAG="-Wl,--rpath -Wl,$BUILD_DIR/../../gcc \ |
| -Wl,--rpath -Wl,$BUILD_DIR/src/.libs" |
| ST_FLAG="-static" |
| LINK=$SH_FLAG |
| CXX="$COMPILER $INCLUDES $FLAGS -DNOTHREAD $LINK" |
| CXX_THREAD="$COMPILER $INCLUDES $FLAGS $THREAD_FLAG $LINK" |
| |
| |
| TESTS_FILE="testsuite_files_performance" |
| |
| for NAME in `cat $TESTS_FILE` |
| do |
| RUN=true |
| for CYCLE in `sed -n 's,.*\(TEST_[SB][0-9]*\)$,\1,p' $SRC_DIR/testsuite/$NAME` |
| do |
| RUN=false |
| echo $NAME $CYCLE |
| FILE_NAME="`basename $NAME`" |
| EXE_NAME="`echo $FILE_NAME-$CYCLE | sed 's/cc$/exe/'`" |
| $CXX -D$CYCLE $SRC_DIR/testsuite/$NAME -o $EXE_NAME |
| ./$EXE_NAME |
| echo "" |
| done |
| for CYCLE in `sed -n 's,.*\(TEST_[TB][0-9]*\)$,\1,p' $SRC_DIR/testsuite/$NAME` |
| do |
| RUN=false |
| echo $NAME $CYCLE THREAD |
| FILE_NAME="`basename $NAME`" |
| EXE_NAME="`echo $FILE_NAME-$CYCLE | sed 's/cc$/exe/'`" |
| $CXX_THREAD -D$CYCLE $SRC_DIR/testsuite/$NAME -o $EXE_NAME |
| ./$EXE_NAME |
| echo "" |
| done |
| if $RUN; then |
| echo $NAME |
| FILE_NAME="`basename $NAME`" |
| EXE_NAME="`echo $FILE_NAME | sed 's/cc$/exe/'`" |
| $CXX $SRC_DIR/testsuite/$NAME -o $EXE_NAME |
| ./$EXE_NAME |
| echo "" |
| fi |
| done |
| |
| exit 0 |