summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Peres <martin.peres@linux.intel.com>2015-09-07 20:55:07 +0300
committerMartin Peres <martin.peres@linux.intel.com>2015-09-07 20:55:07 +0300
commit06cda615766c102725deef212c6a4205d0d0ea84 (patch)
treec40059079c4635631540dbbfbc090d9ee9614e37
parent67549424aa38579c0eb5becb00dc3ef1d57dfed4 (diff)
core: allow adding more data to a test
This was long overdue and I had to fix a few tests so as they would not output their run data over previous run files.
-rwxr-xr-xezbench.sh23
-rw-r--r--tests.d/mesa/UnrealEngine4.test18
-rw-r--r--tests.d/mesa/glxgears.test19
-rw-r--r--tests.d/mesa/gputest.test14
-rw-r--r--tests.d/mesa/lightsmark.test2
-rw-r--r--tests.d/mesa/unigine-heaven.test4
-rw-r--r--tests.d/mesa/unigine-valley.test4
7 files changed, 57 insertions, 27 deletions
diff --git a/ezbench.sh b/ezbench.sh
index 4c84ad4..af4a7cf 100755
--- a/ezbench.sh
+++ b/ezbench.sh
@@ -333,19 +333,34 @@ do
fps_logs=$logsFolder/${commit}_bench_${testNames[$t]}
error_logs=${fps_logs}.errors
- # Run the benchmark
- echo "FPS of '${testNames[$t]}' using commit ${commit}" > $fps_logs
+ # add the csv header and find the first run id available
+ if [ -f "$fps_logs" ]; then
+ # The logs file exist, look for the number of runs
+ run=0
+ while [ -f "${fps_logs}#${run}" ]
+ do
+ run=$((run+1))
+ done
+ else
+ # The file did not exist, create it
+ echo "FPS of '${testNames[$t]}' using commit ${commit}" > $fps_logs
+ run=0
+ fi
+
+ # display the run name
printf "%28s: " ${testNames[$t]}
+ # compute the different hook names
runFuncName=${testNames[$t]}_run
preHookFuncName=${testNames[$t]}_run_pre_hook
postHookFuncName=${testNames[$t]}_run_post_hook
processHookFuncName=${testNames[$t]}_process
- unset ERROR
+ # Run the benchmark
+ unset ERROR
callIfDefined $preHookFuncName
callIfDefined benchmark_run_pre_hook
- output=$($runFuncName $rounds $fps_logs 2>$error_logs || ERROR=1)
+ output=$($runFuncName $rounds $fps_logs $run 2>$error_logs || ERROR=1)
callIfDefined benchmark_run_post_hook
callIfDefined $postHookFuncName
diff --git a/tests.d/mesa/UnrealEngine4.test b/tests.d/mesa/UnrealEngine4.test
index f3210bc..03ba9f0 100644
--- a/tests.d/mesa/UnrealEngine4.test
+++ b/tests.d/mesa/UnrealEngine4.test
@@ -2,18 +2,19 @@
test -e "$LIBFRAMETIME64_SO" || return 1
test -d "$UE4_FOLDER" || return 1
+# 5 arguments: $rounds $fps_logs_file $runID $benchmark $benchmark_params
__ue4__() {
- eval benchmark="$3"
+ eval benchmark="$4"
test -d "$benchmark" || return 1
benchmark=$(find "$benchmark" -type f -executable ! -name CrashReportClient)
- for (( c=0; c<$1; c++ ))
+ for (( c=$3; c<$1+$3; c++ ))
do
rm -f /tmp/frametime.log
LIBFRAMETIME_FILE=/tmp/frametime.log LD_PRELOAD=$LIBFRAMETIME64_SO \
vblank_mode=0 $frametime taskset 1 timeout 60 \
- "$benchmark" -NOSOUND -BENCHMARK $4 > /dev/null
+ "$benchmark" -NOSOUND -BENCHMARK $5 > /dev/null
# read back the result, skip the first frames since they are the loading frames
cat /tmp/frametime.log | awk '{if (++n > 10) {print 1000000/$2}}' > $2#$c
@@ -21,21 +22,24 @@ __ue4__() {
done
}
+# 4 arguments: $rounds $fps_logs_file $runID $benchmark
__ue4:fullscreen__() {
read width height <<< $(xdpyinfo | sed '/dimensions/!d; s/.*dimensions:\(.*\)x\(.*\) pixels.*/\1 \2/')
- __ue4__ "$1" "$2" "$3" "-ResX=$width -ResY=$height"
+ __ue4__ "$1" "$2" "$3" "$4" "-ResX=$width -ResY=$height"
}
+# 4 arguments: $rounds $fps_logs_file $runID $benchmark
__ue4:window__() {
- __ue4__ "$1" "$2" "$3" "-ResX=$UE4_WINDOW_SIZE_X -ResY=$UE4_WINDOW_SIZE_Y"
+ __ue4__ "$1" "$2" "$3" "$4" "-ResX=$UE4_WINDOW_SIZE_X -ResY=$UE4_WINDOW_SIZE_Y"
}
+# 3 arguments: $rounds $fps_logs_file $runID
eval $(IFS= find "$UE4_FOLDER" -mindepth 1 -maxdepth 1 -type d | \
while read benchmark; do
name=$(cat "$benchmark"/name 2>/dev/null || basename "$benchmark" | cut -f1 -d\ )
- echo "ue4:${name}:fullscreen_run() { __ue4:fullscreen__ \$1 \$2 \"\\\"$benchmark\\\"\"; };"
+ echo "ue4:${name}:fullscreen_run() { __ue4:fullscreen__ \$1 \$2 \$3 \"\\\"$benchmark\\\"\"; };"
echo "test_name=\"\$test_name ue4:${name}:fullscreen\";"
- echo "ue4:${name}:window_run() { __ue4:window__ \$1 \$2 \"\\\"$benchmark\\\"\"; };"
+ echo "ue4:${name}:window_run() { __ue4:window__ \$1 \$2 \$3 \"\\\"$benchmark\\\"\"; };"
echo "test_name=\"\$test_name ue4:${name}:window\";"
done; )
diff --git a/tests.d/mesa/glxgears.test b/tests.d/mesa/glxgears.test
index 3677dd1..668463d 100644
--- a/tests.d/mesa/glxgears.test
+++ b/tests.d/mesa/glxgears.test
@@ -3,35 +3,40 @@ test_exec_time=21
which glxgears >/dev/null 2>&1 || return 1
+# 4 arguments: $glxgears_flags $rounds $fps_logs_file $runID
__glxgears__() {
local unbuf="stdbuf -oL"
local extract_fps="$unbuf cut -d ' ' -f7"
- for (( c=0; c<$1; c++ ))
+ for (( c=$4; c<$2+$4; c++ ))
do
vblank_mode=0 $unbuf taskset 1 timeout 21 \
- glxgears $3 2> /dev/null | eval $extract_fps > $2#$c
- awk '{sum=sum+$1} END {print sum/NR}' $2#$c
+ glxgears $1 2> /dev/null | eval $extract_fps > $3#$c
+ awk '{sum=sum+$1} END {print sum/NR}' $3#$c
done
}
+# 3 arguments: $rounds $fps_logs_file $runID
glxgears:window_run() {
- __glxgears__ $1 $2
+ __glxgears__ "" $1 $2 $3
}
+# 3 arguments: $rounds $fps_logs_file $runID
glxgears:cpu_run() {
- INTEL_NO_HW=1 glxgears:window_run $1 $2
+ INTEL_NO_HW=1 glxgears:window_run "" $1 $2 $3
}
+# 3 arguments: $rounds $fps_logs_file $runID
glxgears:fullscreen_run() {
- __glxgears__ $1 $2 -fullscreen
+ __glxgears__ -fullscreen $1 $2 $3
}
+# 3 arguments: $rounds $fps_logs_file $runID
glxgears16_run() {
local unbuf="stdbuf -oL"
local extract_fps="$unbuf cut -d ' ' -f7"
- for (( c=0; c<$1; c++ )); do
+ for (( c=$3; c<$1+$3; c++ )); do
for (( n=0; n<15; n++ )); do
vblank_mode=0 timeout 25 glxgears >&/dev/null 2>/dev/null &
done
diff --git a/tests.d/mesa/gputest.test b/tests.d/mesa/gputest.test
index d5db295..c4bbf8a 100644
--- a/tests.d/mesa/gputest.test
+++ b/tests.d/mesa/gputest.test
@@ -3,18 +3,19 @@
test -e "$GPUTEST_FOLDER/GpuTest" || return 1
test -e "$LIBFRAMETIME64_SO" || return 1
+# 5 arguments: $rounds $fps_logs_file $runID $benchmark $benchmark_opts
__gputest__() {
cd "$GPUTEST_FOLDER" # Set this variable in test_options.sh
local benchmark="/benchmark /no_scorebox"
- for (( c=0; c<$1; c++ )); do
+ for (( c=$3; c<$1+$3; c++ )); do
rm -f /tmp/frametime.log
- echo ./GpuTest /test=$3 $benchmark $4 >> /tmp/gputest
+ echo ./GpuTest /test=$3 $benchmark $5 >> /tmp/gputest
LIBFRAMETIME_FILE=/tmp/frametime.log LD_PRELOAD=$LIBFRAMETIME64_SO \
- ./GpuTest /test=$3 $benchmark $4 > /dev/null || return 1
-
+ ./GpuTest /test=$4 $benchmark $5 > /dev/null || return 1
+
# read back the result, skip the first frames since they are the loading frames
cat /tmp/frametime.log | awk '{if (++n > 10) {print 1000000/$2}}' > $2#$c
awk '{sum=sum+$1} END {print sum/NR}' $2#$c
@@ -28,14 +29,15 @@ GL2_1="fur pixmark_julia_fp32 pixmark_piano pixmark_volplosion plot3d triangle"
GL3_3="gi"
GL4_0="tess_x8 tess_x16 tess_x32 tess_x64 pixmark_julia_fp64"
+# 3 arguments: $rounds $fps_logs_file $runID
for t in $GL2_1 $GL3_3 $GL4_0; do
name="gputest:$t:fullscreen"
test_name="$test_name $name"
- eval "${name}_run() { __gputest__ \$1 \$2 $t \"$fullscreen\"; }"
+ eval "${name}_run() { __gputest__ \$1 \$2 \$3 $t \"$fullscreen\"; }"
name="gputest:$t:window"
test_name="$test_name $name"
- eval "${name}_run() { __gputest__ \$1 \$2 $t \"$window\"; }"
+ eval "${name}_run() { __gputest__ \$1 \$2 \$3 $t \"$window\"; }"
done
test_exec_time=60
diff --git a/tests.d/mesa/lightsmark.test b/tests.d/mesa/lightsmark.test
index 6864f09..9f76bb8 100644
--- a/tests.d/mesa/lightsmark.test
+++ b/tests.d/mesa/lightsmark.test
@@ -14,7 +14,7 @@ lightsmark_run() {
cd $LIGHTSMARK_FOLDER/bin/pc-linux64
- for (( c=0; c<$1; c++ )); do
+ for (( c=$3; c<$1+$3; c++ )); do
vblank_mode=0 LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH ./backend silent 1920x1080 | eval $extract_fps
done
}
diff --git a/tests.d/mesa/unigine-heaven.test b/tests.d/mesa/unigine-heaven.test
index 8173c8e..974e31d 100644
--- a/tests.d/mesa/unigine-heaven.test
+++ b/tests.d/mesa/unigine-heaven.test
@@ -3,10 +3,11 @@
test -e "$UNIGINE_HEAVEN_FOLDER/bin/heaven_x64" || return 1
test -e "$LIBFRAMETIME64_SO" || return 1
+# 3 arguments: $rounds $fps_logs_file $runID
unigine:heaven_run() {
cd "$UNIGINE_HEAVEN_FOLDER" # Set this variable in test_options.sh
- for (( c=0; c<$1; c++ )); do
+ for (( c=$3; c<$1+$3; c++ )); do
rm -f /tmp/frametime.log
LIBFRAMETIME_FILE=/tmp/frametime.log LD_PRELOAD=$LIBFRAMETIME64_SO \
@@ -28,6 +29,7 @@ unigine:heaven_run() {
done
}
+# 3 arguments: $rounds $fps_logs_file $runID
unigine:heaven:cpu_run() { INTEL_NO_HW=1 unigine:heaven_run $@; }
test_name="unigine:heaven unigine:heaven:cpu"
diff --git a/tests.d/mesa/unigine-valley.test b/tests.d/mesa/unigine-valley.test
index a56b3c2..87b8f46 100644
--- a/tests.d/mesa/unigine-valley.test
+++ b/tests.d/mesa/unigine-valley.test
@@ -3,10 +3,11 @@
test -e "$UNIGINE_VALLEY_FOLDER/bin/valley_x64" || return 1
test -e "$LIBFRAMETIME64_SO" || return 1
+# 3 arguments: $rounds $fps_logs_file $runID
unigine:valley_run() {
cd "$UNIGINE_VALLEY_FOLDER" # Set this variable in test_options.sh
- for (( c=0; c<$1; c++ )); do
+ for (( c=$3; c<$1+$3; c++ )); do
rm -f /tmp/frametime.log
LIBFRAMETIME_FILE=/tmp/frametime.log LD_PRELOAD=$LIBFRAMETIME64_SO \
@@ -28,6 +29,7 @@ unigine:valley_run() {
done
}
+# 3 arguments: $rounds $fps_logs_file $runID
unigine:valley:cpu_run() { INTEL_NO_HW=1 unigine:valley_run $@; }
test_name="unigine:valley unigine:valley:cpu"