2015-05-14 21:18:00 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
2017-07-15 21:18:38 +00:00
|
|
|
# allow user to override go executable by running as GOEXE=xxx make ...
|
|
|
|
GOEXE="${GOEXE-go}"
|
2015-05-14 21:18:00 +00:00
|
|
|
|
|
|
|
# Convenience script to
|
|
|
|
# - For a given branch
|
|
|
|
# - Run benchmark tests for a given package
|
|
|
|
# - Do the same for master
|
|
|
|
# - then compare the two runs with benchcmp
|
|
|
|
|
2015-07-21 19:01:56 +00:00
|
|
|
benchFilter=".*"
|
|
|
|
|
|
|
|
if (( $# < 2 ));
|
2015-05-14 21:18:00 +00:00
|
|
|
then
|
2015-07-21 19:01:56 +00:00
|
|
|
echo "USAGE: ./bench.sh <git-branch> <package-to-bench> (and <benchmark filter> (regexp, optional))"
|
2015-05-14 21:18:00 +00:00
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
2015-07-21 19:01:56 +00:00
|
|
|
|
|
|
|
if [ $# -eq 3 ]; then
|
|
|
|
benchFilter=$3
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
2015-05-14 21:18:00 +00:00
|
|
|
BRANCH=$1
|
|
|
|
PACKAGE=$2
|
|
|
|
|
|
|
|
git checkout $BRANCH
|
2017-07-15 21:18:38 +00:00
|
|
|
"${GOEXE}" test -test.run=NONE -bench="$benchFilter" -test.benchmem=true ./$PACKAGE > /tmp/bench-$PACKAGE-$BRANCH.txt
|
2015-05-14 21:18:00 +00:00
|
|
|
|
|
|
|
git checkout master
|
2017-07-15 21:18:38 +00:00
|
|
|
"${GOEXE}" test -test.run=NONE -bench="$benchFilter" -test.benchmem=true ./$PACKAGE > /tmp/bench-$PACKAGE-master.txt
|
2015-05-14 21:18:00 +00:00
|
|
|
|
|
|
|
|
2017-07-15 21:18:38 +00:00
|
|
|
benchcmp /tmp/bench-$PACKAGE-master.txt /tmp/bench-$PACKAGE-$BRANCH.txt
|