tools/times: added simple scripts to generate time stats for cppcheck

This commit is contained in:
Daniel Marjamäki 2012-11-27 06:08:26 +01:00
parent f3029ce6bb
commit 1ebab4a442
2 changed files with 68 additions and 0 deletions

41
tools/times.c Normal file
View File

@ -0,0 +1,41 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() {
FILE *f = fopen("times.log", "rt");
if (!f)
return 1;
char lines[64][64] = {0};
int n = 0;
float mintime=0.0f, maxtime=0.0f;
char rev[10] = {0};
char line[128] = {0};
while (fgets(line,sizeof(line),f) && n < 64) {
if (strchr(line,'\r'))
*strchr(line,'\r') = 0;
if (strchr(line,'\n'))
*strchr(line,'\n') = 0;
if (strncmp(line,"HEAD is now at ", 15) == 0) {
if (rev[0])
sprintf(lines[n++],"%s: %.1f - %.1f", rev, mintime, maxtime);
strncpy(rev, line+15, 7);
mintime = 0.0f;
maxtime = 0.0f;
}
if (strncmp(line,"Overall time:",13)==0) {
float time = atof(line+14);
if (mintime < 0.1f || time < mintime)
mintime = time;
else if (time > maxtime)
maxtime = time;
}
}
while (n > 0)
printf("%s\n", lines[--n]);
return 0;
}

27
tools/times.sh Normal file
View File

@ -0,0 +1,27 @@
#!/bin/bash
#
# 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
git checkout -b old
make clean
git reset --hard HEAD > times.log
for i in {0..20}
do
make 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