1132720Skan#!/usr/bin/env bash 2132720Skan 3132720Skan# Script to do performance testing. 4132720Skan 5132720Skan# Invocation 6132720Skan# check_performance SRC_DIR BUILD_DIR 7132720Skan 8132720Skan# 1: variables 9132720Skan# 10132720SkanSRC_DIR=$1 11132720SkanBUILD_DIR=$2 12132720Skan 13132720Skan# Now that we've successfully translated the numerical option into 14132720Skan# a symbolic one, we can safely ignore it. 15132720Skanshift 16132720Skan 17132720Skan# This has been true all along. Found out about it the hard way... 18132720Skancase $BASH_VERSION in 19132720Skan 1*) 20132720Skan echo 'You need bash 2.x to run check_performance. Exiting.'; 21132720Skan exit 1 ;; 22132720Skan *) ;; 23132720Skanesac 24132720Skan 25132720Skanflags_script=$BUILD_DIR/scripts/testsuite_flags 26169691SkanINCLUDES=`$flags_script --build-includes` 27169691SkanPCH_FLAGS=`$flags_script --cxxpchflags` 28132720SkanFLAGS=`$flags_script --cxxflags` 29132720SkanTHREAD_FLAG='-pthread' 30132720SkanCOMPILER=`$flags_script --build-cxx` 31132720SkanSH_FLAG="-Wl,--rpath -Wl,$BUILD_DIR/../../gcc \ 32132720Skan -Wl,--rpath -Wl,$BUILD_DIR/src/.libs" 33132720SkanST_FLAG="-static" 34132720SkanLINK=$SH_FLAG 35169691SkanCXX="$COMPILER $INCLUDES $PCH_FLAGS $FLAGS $LINK" 36169691SkanLIBS="./libtestc++.a" 37132720SkanTESTS_FILE="testsuite_files_performance" 38132720Skan 39132720Skanfor NAME in `cat $TESTS_FILE` 40132720Skando 41132720Skan RUN=true 42169691Skan TESTNAME=$SRC_DIR/testsuite/$NAME 43169691Skan FILE_NAME="`basename $NAME`" 44169691Skan FILE_NAME="`echo $FILE_NAME | sed 's/.cc//g'`" 45169691Skan 46169691Skan # TEST_S == single thread 47169691Skan # TEST_B == do both single and multi-thread 48169691Skan # TEST_T == multi-thread 49169691Skan for CYCLE in `sed -n 's,.*\(TEST_[SB][0-9]*\)$,\1,p' $TESTNAME` 50132720Skan do 51132720Skan RUN=false 52132720Skan echo $NAME $CYCLE 53169691Skan EXE_NAME="`echo $FILE_NAME-$CYCLE.exe`" 54169691Skan $CXX -DNOTHREAD -D$CYCLE $TESTNAME $LIBS -o $EXE_NAME 55169691Skan if [ -f $EXE_NAME ]; then 56169691Skan ./$EXE_NAME 57169691Skan else 58169691Skan echo "compile error:" 59169691Skan echo "$CXX -DNOTHREAD -D$CYCLE $TESTNAME $LIBS -o $EXE_NAME" 60169691Skan fi 61132720Skan done 62169691Skan 63169691Skan for CYCLE in `sed -n 's,.*\(TEST_[TB][0-9]*\)$,\1,p' $TESTNAME` 64132720Skan do 65132720Skan RUN=false 66169691Skan echo $NAME $CYCLE thread 67169691Skan EXE_NAME="`echo $FILE_NAME-$CYCLE.exe`" 68169691Skan $CXX $THREAD_FLAG -D$CYCLE $TESTNAME $LIBS -o $EXE_NAME 69169691Skan if [ -f $EXE_NAME ]; then 70169691Skan ./$EXE_NAME 71169691Skan else 72169691Skan echo "compile error:" 73169691Skan echo "$CXX $THREAD_FLAG -D$CYCLE $TESTNAME $LIBS -o $EXE_NAME" 74169691Skan fi 75132720Skan done 76169691Skan 77132720Skan if $RUN; then 78132720Skan echo $NAME 79169691Skan EXE_NAME="`echo $FILE_NAME.exe`" 80169691Skan $CXX $TESTNAME $LIBS -o $EXE_NAME 81169691Skan if [ -f $EXE_NAME ]; then 82169691Skan ./$EXE_NAME >& tmp.$FILE_NAME 83169691Skan else 84169691Skan echo "compile error:" 85169691Skan echo "$CXX $TESTNAME $LIBS -o $EXE_NAME" 86169691Skan fi 87169691Skan if [ -s tmp.$FILE_NAME ]; then 88169691Skan mv tmp.$FILE_NAME $FILE_NAME.xml 89169691Skan fi 90132720Skan fi 91132720Skandone 92132720Skan 93132720Skanexit 0 94