Browse Source

perf/run: add --subsection option

This new option makes it possible to run perf tests as defined
in only one subsection of a config file.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Christian Couder 7 years ago committed by Junio C Hamano
parent
commit
8796b307ea
  1. 56
      t/perf/run

56
t/perf/run

@ -1,21 +1,34 @@ @@ -1,21 +1,34 @@
#!/bin/sh

case "$1" in
die () {
echo >&2 "error: $*"
exit 1
}

while [ $# -gt 0 ]; do
arg="$1"
case "$arg" in
--)
break ;;
--help)
echo "usage: $0 [--config file] [other_git_tree...] [--] [test_scripts]"
exit 0
;;
echo "usage: $0 [--config file] [--subsection subsec] [other_git_tree...] [--] [test_scripts]"
exit 0 ;;
--config)
shift
GIT_PERF_CONFIG_FILE=$(cd "$(dirname "$1")"; pwd)/$(basename "$1")
export GIT_PERF_CONFIG_FILE
shift ;;
esac

die () {
echo >&2 "error: $*"
exit 1
}
--subsection)
shift
GIT_PERF_SUBSECTION="$1"
export GIT_PERF_SUBSECTION
shift ;;
--*)
die "unrecognised option: '$arg'" ;;
*)
break ;;
esac
done

run_one_dir () {
if test $# -eq 0; then
@ -172,9 +185,32 @@ get_subsections "perf" >test-results/run_subsections.names @@ -172,9 +185,32 @@ get_subsections "perf" >test-results/run_subsections.names

if test $(wc -l <test-results/run_subsections.names) -eq 0
then
if test -n "$GIT_PERF_SUBSECTION"
then
if test -n "$GIT_PERF_CONFIG_FILE"
then
die "no subsections are defined in config file '$GIT_PERF_CONFIG_FILE'"
else
die "subsection '$GIT_PERF_SUBSECTION' defined without a config file"
fi
fi
(
run_subsection "$@"
)
elif test -n "$GIT_PERF_SUBSECTION"
then
egrep "^$GIT_PERF_SUBSECTION\$" test-results/run_subsections.names >/dev/null ||
die "subsection '$GIT_PERF_SUBSECTION' not found in '$GIT_PERF_CONFIG_FILE'"

egrep "^$GIT_PERF_SUBSECTION\$" test-results/run_subsections.names | while read -r subsec
do
(
GIT_PERF_SUBSECTION="$subsec"
export GIT_PERF_SUBSECTION
echo "======== Run for subsection '$GIT_PERF_SUBSECTION' ========"
run_subsection "$@"
)
done
else
while read -r subsec
do

Loading…
Cancel
Save