diff options
Diffstat (limited to 'contrib/libstdc++/scripts/check_performance')
-rwxr-xr-x | contrib/libstdc++/scripts/check_performance | 66 |
1 files changed, 43 insertions, 23 deletions
diff --git a/contrib/libstdc++/scripts/check_performance b/contrib/libstdc++/scripts/check_performance index 090dae87ff69..b7bbd6d02021 100755 --- a/contrib/libstdc++/scripts/check_performance +++ b/contrib/libstdc++/scripts/check_performance @@ -23,7 +23,8 @@ case $BASH_VERSION in esac flags_script=$BUILD_DIR/scripts/testsuite_flags -INCLUDES="`$flags_script --build-includes` -include bits/stdc++.h" +INCLUDES=`$flags_script --build-includes` +PCH_FLAGS=`$flags_script --cxxpchflags` FLAGS=`$flags_script --cxxflags` THREAD_FLAG='-pthread' COMPILER=`$flags_script --build-cxx` @@ -31,42 +32,61 @@ 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" - - +CXX="$COMPILER $INCLUDES $PCH_FLAGS $FLAGS $LINK" +LIBS="./libtestc++.a" 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` + TESTNAME=$SRC_DIR/testsuite/$NAME + FILE_NAME="`basename $NAME`" + FILE_NAME="`echo $FILE_NAME | sed 's/.cc//g'`" + + # 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' $TESTNAME` 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 "" + EXE_NAME="`echo $FILE_NAME-$CYCLE.exe`" + $CXX -DNOTHREAD -D$CYCLE $TESTNAME $LIBS -o $EXE_NAME + if [ -f $EXE_NAME ]; then + ./$EXE_NAME + else + echo "compile error:" + echo "$CXX -DNOTHREAD -D$CYCLE $TESTNAME $LIBS -o $EXE_NAME" + fi done - for CYCLE in `sed -n 's,.*\(TEST_[TB][0-9]*\)$,\1,p' $SRC_DIR/testsuite/$NAME` + + for CYCLE in `sed -n 's,.*\(TEST_[TB][0-9]*\)$,\1,p' $TESTNAME` 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 "" + echo $NAME $CYCLE thread + EXE_NAME="`echo $FILE_NAME-$CYCLE.exe`" + $CXX $THREAD_FLAG -D$CYCLE $TESTNAME $LIBS -o $EXE_NAME + if [ -f $EXE_NAME ]; then + ./$EXE_NAME + else + echo "compile error:" + echo "$CXX $THREAD_FLAG -D$CYCLE $TESTNAME $LIBS -o $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 - ./$EXE_NAME - echo "" + EXE_NAME="`echo $FILE_NAME.exe`" + $CXX $TESTNAME $LIBS -o $EXE_NAME + if [ -f $EXE_NAME ]; then + ./$EXE_NAME >& tmp.$FILE_NAME + else + echo "compile error:" + echo "$CXX $TESTNAME $LIBS -o $EXE_NAME" + fi + if [ -s tmp.$FILE_NAME ]; then + mv tmp.$FILE_NAME $FILE_NAME.xml + fi fi done |