diff options
author | Martin Peres <martin.peres@linux.intel.com> | 2015-09-07 20:55:07 +0300 |
---|---|---|
committer | Martin Peres <martin.peres@linux.intel.com> | 2015-09-07 20:55:07 +0300 |
commit | 06cda615766c102725deef212c6a4205d0d0ea84 (patch) | |
tree | c40059079c4635631540dbbfbc090d9ee9614e37 | |
parent | 67549424aa38579c0eb5becb00dc3ef1d57dfed4 (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-x | ezbench.sh | 23 | ||||
-rw-r--r-- | tests.d/mesa/UnrealEngine4.test | 18 | ||||
-rw-r--r-- | tests.d/mesa/glxgears.test | 19 | ||||
-rw-r--r-- | tests.d/mesa/gputest.test | 14 | ||||
-rw-r--r-- | tests.d/mesa/lightsmark.test | 2 | ||||
-rw-r--r-- | tests.d/mesa/unigine-heaven.test | 4 | ||||
-rw-r--r-- | tests.d/mesa/unigine-valley.test | 4 |
7 files changed, 57 insertions, 27 deletions
@@ -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" |