@@ -1996,6 +1996,7 @@
$(LTGOCOMPILE) -I . -c -fgo-pkgpath=`echo $@ | sed -e 's/.lo$$//' -e 's/-go$$//'` -o $@ $$files
GOTESTFLAGS =
+GOBENCH =
# Check a package.
CHECK = \
@@ -2015,6 +2016,8 @@
rm -f $@-testsum $@-testlog; \
if test "$(USE_DEJAGNU)" = "yes"; then \
$(SHELL) $(srcdir)/testsuite/gotest --dejagnu=yes --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$(go_$(subst /,_,$(@D))_files)" --testname="$(@D)" --goarch="$(GOARCH)" $(GOTESTFLAGS) $(go_$(subst /,_,$(@D))_test_files); \
+ elif test "$(GOBENCH)" != ""; then \
+ $(SHELL) $(srcdir)/testsuite/gotest --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$(go_$(subst /,_,$(@D))_files)" --goarch="$(GOARCH)" --bench="$(GOBENCH)" $(GOTESTFLAGS) $(go_$(subst /,_,$(@D))_test_files); \
else \
if $(SHELL) $(srcdir)/testsuite/gotest --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$(go_$(subst /,_,$(@D))_files)" --goarch="$(GOARCH)" $(GOTESTFLAGS) $(go_$(subst /,_,$(@D))_test_files) >>$@-testlog 2>&1; then \
echo "PASS: $(@D)" >> $@-testlog; \
@@ -3845,6 +3848,9 @@
check-multi:
$(MULTIDO) $(AM_MAKEFLAGS) DO=check-am multi-do # $(MAKE)
+bench:
+ -@$(MAKE) -k $(TEST_PACKAGES) GOBENCH=.
+
MOSTLYCLEAN_FILES = libgo.head libgo.sum.sep libgo.log.sep
mostlyclean-local:
@@ -36,6 +36,7 @@
GOARCH=""
timeout=240
testname=""
+bench=""
trace=false
while $loop; do
case "x$1" in
@@ -124,6 +125,15 @@
testname=`echo $1 | sed -e 's/^--testname=//'`
shift
;;
+ x--bench)
+ bench=$2
+ shift
+ shift
+ ;;
+ x--bench=*)
+ bench=`echo $1 | sed -e 's/^--bench=//'`
+ shift
+ ;;
x--trace)
trace=true
shift
@@ -473,20 +483,28 @@
fi
${GL} *.o ${GOLIBS}
- if test "$trace" = "true"; then
- echo ./a.out -test.short -test.timeout=${timeout}s "$@"
- fi
- ./a.out -test.short -test.timeout=${timeout}s "$@" &
- pid=$!
- (sleep `expr $timeout + 10`
- echo > gotest-timeout
- echo "timed out in gotest" 1>&2
- kill -9 $pid) &
- alarmpid=$!
- wait $pid
- status=$?
- if ! test -f gotest-timeout; then
- kill $alarmpid
+ if test "$bench" = ""; then
+ if test "$trace" = "true"; then
+ echo ./a.out -test.short -test.timeout=${timeout}s "$@"
+ fi
+ ./a.out -test.short -test.timeout=${timeout}s "$@" &
+ pid=$!
+ (sleep `expr $timeout + 10`
+ echo > gotest-timeout
+ echo "timed out in gotest" 1>&2
+ kill -9 $pid) &
+ alarmpid=$!
+ wait $pid
+ status=$?
+ if ! test -f gotest-timeout; then
+ kill $alarmpid
+ fi
+ else
+ if test "$trace" = "true"; then
+ echo ./a.out -test.run=^\$ -test.bench="${bench}" "$@"
+ fi
+ ./a.out -test.run=^\$ -test.bench="${bench}" "$@"
+ status=$?
fi
exit $status
;;