perf/run: add run_subsection()

Let's actually use the subsections we find in the config file
to run the perf tests separately for each subsection.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Christian Couder 2017-09-23 19:55:56 +00:00 committed by Junio C Hamano
parent 9ba95ed23c
commit afda85c25d

View File

@ -125,23 +125,46 @@ get_var_from_env_or_config () {
test -n "${4+x}" && eval "$env_var=\"$4\"" test -n "${4+x}" && eval "$env_var=\"$4\""
} }
get_var_from_env_or_config "GIT_PERF_REPEAT_COUNT" "perf" "repeatCount" 3 run_subsection () {
export GIT_PERF_REPEAT_COUNT get_var_from_env_or_config "GIT_PERF_REPEAT_COUNT" "perf" "repeatCount" 3
export GIT_PERF_REPEAT_COUNT
get_var_from_env_or_config "GIT_PERF_DIRS_OR_REVS" "perf" "dirsOrRevs" get_var_from_env_or_config "GIT_PERF_DIRS_OR_REVS" "perf" "dirsOrRevs"
set -- $GIT_PERF_DIRS_OR_REVS "$@" set -- $GIT_PERF_DIRS_OR_REVS "$@"
get_var_from_env_or_config "GIT_PERF_MAKE_COMMAND" "perf" "makeCommand" get_var_from_env_or_config "GIT_PERF_MAKE_COMMAND" "perf" "makeCommand"
get_var_from_env_or_config "GIT_PERF_MAKE_OPTS" "perf" "makeOpts" get_var_from_env_or_config "GIT_PERF_MAKE_OPTS" "perf" "makeOpts"
GIT_PERF_AGGREGATING_LATER=t GIT_PERF_AGGREGATING_LATER=t
export GIT_PERF_AGGREGATING_LATER export GIT_PERF_AGGREGATING_LATER
if test $# = 0 -o "$1" = -- -o -f "$1"; then
set -- . "$@"
fi
run_dirs "$@"
./aggregate.perl "$@"
}
cd "$(dirname $0)" cd "$(dirname $0)"
. ../../GIT-BUILD-OPTIONS . ../../GIT-BUILD-OPTIONS
if test $# = 0 -o "$1" = -- -o -f "$1"; then mkdir -p test-results
set -- . "$@" get_subsections "perf" >test-results/run_subsections.names
if test $(wc -l <test-results/run_subsections.names) -eq 0
then
(
run_subsection "$@"
)
else
while read -r subsec
do
(
GIT_PERF_SUBSECTION="$subsec"
export GIT_PERF_SUBSECTION
echo "======== Run for subsection '$GIT_PERF_SUBSECTION' ========"
run_subsection "$@"
)
done <test-results/run_subsections.names
fi fi
run_dirs "$@"
./aggregate.perl "$@"