#!/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` PCH_FLAGS=`$flags_script --cxxpchflags` 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 $PCH_FLAGS $FLAGS $LINK" TESTS_FILE="testsuite_files_performance" for NAME in `cat $TESTS_FILE` do RUN=true # TEST_S == single thread # TEST_B == do both single and multi-thread # TEST_T == multi-thread 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`" FILE_NAME="`echo $FILE_NAME | sed 's/.cc//g'`" EXE_NAME="`echo $FILE_NAME-$CYCLE.exe`" $CXX -DNOTHREAD -D$CYCLE $SRC_DIR/testsuite/$NAME -o $EXE_NAME if [ -f $EXE_NAME ]; then ./$EXE_NAME fi 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`" FILE_NAME="`echo $FILE_NAME | sed 's/.cc//g'`" EXE_NAME="`echo $FILE_NAME-$CYCLE.exe`" $CXX $THREAD_FLAG -D$CYCLE $SRC_DIR/testsuite/$NAME -o $EXE_NAME if [ -f $EXE_NAME ]; then ./$EXE_NAME fi 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 if [ -f $EXE_NAME ]; then ./$EXE_NAME fi fi done exit 0