]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/libstdc++/scripts/check_performance
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / libstdc++ / scripts / check_performance
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 #
10 SRC_DIR=$1
11 BUILD_DIR=$2
12
13 # Now that we've successfully translated the numerical option into
14 # a symbolic one, we can safely ignore it.
15 shift
16
17 # This has been true all along.  Found out about it the hard way...
18 case $BASH_VERSION in
19     1*)  
20         echo 'You need bash 2.x to run check_performance.  Exiting.'; 
21         exit 1 ;;
22     *)   ;;  
23 esac
24
25 flags_script=$BUILD_DIR/scripts/testsuite_flags
26 INCLUDES=`$flags_script --build-includes`
27 PCH_FLAGS=`$flags_script --cxxpchflags`
28 FLAGS=`$flags_script --cxxflags`
29 THREAD_FLAG='-pthread'
30 COMPILER=`$flags_script --build-cxx`
31 SH_FLAG="-Wl,--rpath -Wl,$BUILD_DIR/../../gcc \
32          -Wl,--rpath -Wl,$BUILD_DIR/src/.libs"
33 ST_FLAG="-static"
34 LINK=$SH_FLAG
35 CXX="$COMPILER $INCLUDES $PCH_FLAGS $FLAGS $LINK"
36 LIBS="./libtestc++.a"
37 TESTS_FILE="testsuite_files_performance"
38
39 for NAME in `cat $TESTS_FILE`
40 do
41   RUN=true
42   TESTNAME=$SRC_DIR/testsuite/$NAME
43   FILE_NAME="`basename $NAME`"
44   FILE_NAME="`echo $FILE_NAME | sed 's/.cc//g'`"
45
46   # TEST_S == single thread
47   # TEST_B == do both single and multi-thread
48   # TEST_T == multi-thread
49   for CYCLE in `sed -n 's,.*\(TEST_[SB][0-9]*\)$,\1,p' $TESTNAME`
50   do
51     RUN=false
52     echo $NAME $CYCLE
53     EXE_NAME="`echo $FILE_NAME-$CYCLE.exe`"
54     $CXX -DNOTHREAD -D$CYCLE $TESTNAME $LIBS -o $EXE_NAME
55     if [ -f $EXE_NAME ]; then
56       ./$EXE_NAME
57     else
58       echo "compile error:"
59       echo "$CXX -DNOTHREAD -D$CYCLE $TESTNAME $LIBS -o $EXE_NAME"
60     fi
61   done
62
63   for CYCLE in `sed -n 's,.*\(TEST_[TB][0-9]*\)$,\1,p' $TESTNAME`
64   do
65     RUN=false
66     echo $NAME $CYCLE thread
67     EXE_NAME="`echo $FILE_NAME-$CYCLE.exe`"
68     $CXX $THREAD_FLAG -D$CYCLE $TESTNAME $LIBS -o $EXE_NAME
69     if [ -f $EXE_NAME ]; then
70       ./$EXE_NAME
71     else
72       echo "compile error:"
73       echo "$CXX $THREAD_FLAG -D$CYCLE $TESTNAME $LIBS -o $EXE_NAME"
74     fi
75   done
76
77   if $RUN; then
78     echo $NAME
79     EXE_NAME="`echo $FILE_NAME.exe`"
80     $CXX $TESTNAME $LIBS -o $EXE_NAME
81     if [ -f $EXE_NAME ]; then
82         ./$EXE_NAME >& tmp.$FILE_NAME
83     else
84       echo "compile error:"
85       echo "$CXX $TESTNAME $LIBS -o $EXE_NAME"
86     fi
87     if [ -s tmp.$FILE_NAME ]; then
88         mv tmp.$FILE_NAME $FILE_NAME.xml
89     fi
90   fi
91 done
92
93 exit 0