From 76fb3903ff11fb0c4c2cd7b9c0a7f88df5c591f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Kr=C3=BCger?= Date: Mon, 17 Mar 2014 02:10:02 +0100 Subject: [PATCH] tools: times.sh: show more information in stdout (while still printing it to the log), compute averages of runs, automatically compile and run "times" binary after generating the log. --- tools/times.sh | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/tools/times.sh b/tools/times.sh index 586e8bfc7..438c3a76e 100755 --- a/tools/times.sh +++ b/tools/times.sh @@ -2,26 +2,31 @@ # # Simple script to generate times.log that contains timing information for the last 20 revisions # Typically these commands shall be used to get times.txt: -# mkdir src -# cp lib/* src/ <- fill src/ with some source code -# tools/times.sh -# gcc -o tools/times tools/times.c -# tools/times +mkdir -p src +cp lib/* src/ # fill src/ with some source code +#NOTE: also try with some files other then from cppcheck! -git checkout -b old + + +# if "old" already exists for some reason, do NOT work on current branch but bail out +git checkout -b old || exit make clean git reset --hard HEAD > times.log -for i in `seq 1 50`; - do - make SRCDIR=build CXXFLAGS=-O2 -j4 - echo "$i" - ./cppcheck -q --showtime=summary --enable=all --inconclusive src 2> /dev/null >> times.log - ./cppcheck -q --showtime=summary --enable=all --inconclusive src 2> /dev/null >> times.log - ./cppcheck -q --showtime=summary --enable=all --inconclusive src 2> /dev/null >> times.log - ./cppcheck -q --showtime=summary --enable=all --inconclusive src 2> /dev/null >> times.log - git reset --hard HEAD^1 >> times.log - done +for i in `seq 1 50`; do + git_head=`git log -1 --format=%h` + # if build fails, make clean and try again + make SRCDIR=build CXXFLAGS=-O2 -j4 || make clean ; make SRCDIR=build CXXFLAGS=-O2 -j4 + echo "Run number $i" + ./cppcheck -q --showtime=summary --enable=all --inconclusive src 2> /dev/null | tee -a times.log + ./cppcheck -q --showtime=summary --enable=all --inconclusive src 2> /dev/null | tee -a times.log + ./cppcheck -q --showtime=summary --enable=all --inconclusive src 2> /dev/null | tee -a times.log + ./cppcheck -q --showtime=summary --enable=all --inconclusive src 2> /dev/null | tee -a times.log + grep "Overall" times.log | tail -4 | sed s/s// | awk -v "i=$i" -v "git_head=$git_head" '{ sum+=$3} END {print "Run " i", "git_head " Average: " sum/4}' | tee -a times.log + git reset --hard HEAD^1 | tee -a times.log +done +gcc -o tools/times tools/times.c +tools/times