summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>2017-04-03 18:58:36 +0300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-04-05 12:36:45 +0100
commitbe3d1718a99e59e636f349586e0a64eb8e2824a4 (patch)
tree7e2fce51c5ca91aecf47734c3501167ed13725d4
parent0a05ccfeba2f185ef9ea78a23bc376d4b97ec547 (diff)
downloadopenembedded-core-be3d1718a99e59e636f349586e0a64eb8e2824a4.tar.gz
openembedded-core-be3d1718a99e59e636f349586e0a64eb8e2824a4.tar.bz2
openembedded-core-be3d1718a99e59e636f349586e0a64eb8e2824a4.zip
build-perf-test-wrapper.sh: make it possible to specify Git branch name
Support <branch>:<commit> format for the -c argument. This makes it possible to test older commits of a certain branch (not just the tip of it) so that the branch name will still be correctly recorded in the test report data. Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
-rwxr-xr-xscripts/contrib/build-perf-test-wrapper.sh31
1 files changed, 25 insertions, 6 deletions
diff --git a/scripts/contrib/build-perf-test-wrapper.sh b/scripts/contrib/build-perf-test-wrapper.sh
index 234652d7ef..7b7e4dddc6 100755
--- a/scripts/contrib/build-perf-test-wrapper.sh
+++ b/scripts/contrib/build-perf-test-wrapper.sh
@@ -29,7 +29,8 @@ Optional arguments:
-h show this help and exit.
-a ARCHIVE_DIR archive results tarball here, give an empty string to
disable tarball archiving (default: $archive_dir)
- -c COMMITISH test (checkout) this commit
+ -c COMMITISH test (checkout) this commit, <branch>:<commit> can be
+ specified to test specific commit of certain branch
-C GIT_REPO commit results into Git
-w WORK_DIR work dir for this script
(default: GIT_TOP_DIR/build-perf-test)
@@ -90,15 +91,33 @@ fi
cd "$git_topdir"
if [ -n "$commitish" ]; then
- # Checkout correct revision
- echo "Checking out $commitish"
+ echo "Running git fetch"
git fetch &> /dev/null
git checkout HEAD^0 &> /dev/null
- git branch -D $commitish &> /dev/null
- if ! git checkout -f $commitish &> /dev/null; then
- echo "Git checkout failed"
+
+ # Handle <branch>:<commit> format
+ if echo "$commitish" | grep -q ":"; then
+ commit=`echo "$commitish" | cut -d":" -f2`
+ branch=`echo "$commitish" | cut -d":" -f1`
+ else
+ commit="$commitish"
+ branch="$commitish"
+ fi
+
+ echo "Checking out $commitish"
+ git branch -D $branch &> /dev/null
+ if ! git checkout -f $branch &> /dev/null; then
+ echo "ERROR: Git checkout failed"
+ exit 1
+ fi
+
+ # Check that the specified branch really contains the commit
+ commit_hash=`git rev-parse --revs-only $commit --`
+ if [ -z "$commit_hash" -o "`git merge-base $branch $commit`" != "$commit_hash" ]; then
+ echo "ERROR: branch $branch does not contain commit $commit"
exit 1
fi
+ git reset --hard $commit > /dev/null
fi
# Setup build environment