]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/libstdc++-v3/contrib/libstdc++-v3-4.1.0/scripts/check_performance
update
[l4.git] / l4 / pkg / libstdc++-v3 / contrib / libstdc++-v3-4.1.0 / 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 TESTS_FILE="testsuite_files_performance"
37
38 for NAME in `cat $TESTS_FILE`
39 do
40   RUN=true
41
42   # TEST_S == single thread
43   # TEST_B == do both single and multi-thread
44   # TEST_T == multi-thread
45   for CYCLE in `sed -n 's,.*\(TEST_[SB][0-9]*\)$,\1,p' $SRC_DIR/testsuite/$NAME`
46   do
47     RUN=false
48     echo $NAME $CYCLE
49     FILE_NAME="`basename $NAME`"
50     FILE_NAME="`echo $FILE_NAME | sed 's/.cc//g'`"
51     EXE_NAME="`echo $FILE_NAME-$CYCLE.exe`"
52     $CXX -DNOTHREAD -D$CYCLE $SRC_DIR/testsuite/$NAME -o $EXE_NAME
53     if [ -f $EXE_NAME ]; then
54       ./$EXE_NAME
55     fi
56   done
57
58   for CYCLE in `sed -n 's,.*\(TEST_[TB][0-9]*\)$,\1,p' $SRC_DIR/testsuite/$NAME`
59   do
60     RUN=false
61     echo $NAME $CYCLE thread
62     FILE_NAME="`basename $NAME`"
63     FILE_NAME="`echo $FILE_NAME | sed 's/.cc//g'`"
64     EXE_NAME="`echo $FILE_NAME-$CYCLE.exe`"
65     $CXX $THREAD_FLAG -D$CYCLE $SRC_DIR/testsuite/$NAME -o $EXE_NAME
66     if [ -f $EXE_NAME ]; then
67       ./$EXE_NAME
68     fi
69   done
70
71   if $RUN; then
72     echo $NAME
73     FILE_NAME="`basename $NAME`"
74     EXE_NAME="`echo $FILE_NAME | sed 's/cc$/exe/'`"
75     $CXX $SRC_DIR/testsuite/$NAME -o $EXE_NAME
76     if [ -f $EXE_NAME ]; then
77       ./$EXE_NAME
78     fi
79   fi
80 done
81
82 exit 0