BuildPerfTestRunner determines these from the Git repository under which it is being run (i.e. where the build directory exists). The branch and revision may be defined/overridden with OE_BUILDPERFTEST_GIT_BRANCH and OE_BUILDPERFTEST_GIT_BRANCH environment variables, if needed. This makes it possible to run the build performance test script even if the top directory is not a git repository clone, for example.
Signed-off-by: Markus Lehtonen <markus.lehto...@linux.intel.com> --- meta/lib/oeqa/buildperf/base.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/meta/lib/oeqa/buildperf/base.py b/meta/lib/oeqa/buildperf/base.py index c0318a1..e10cbf4 100644 --- a/meta/lib/oeqa/buildperf/base.py +++ b/meta/lib/oeqa/buildperf/base.py @@ -22,6 +22,7 @@ import traceback from datetime import datetime, timedelta from oeqa.utils.commands import runCmd, get_bb_vars +from oeqa.utils.git import GitError, GitRepo # Get logger for this module log = logging.getLogger('build-perf') @@ -85,10 +86,41 @@ class BuildPerfTestRunner(object): if not os.path.exists(self.out_dir): os.makedirs(self.out_dir) + # Get Git parameters + try: + self.repo = GitRepo('.') + except GitError: + self.repo = None + self.git_rev, self.git_branch = self.get_git_revision() + log.info("Using Git branch:revision %s:%s", self.git_branch, + self.git_rev) + + def get_git_revision(self): + """Get git branch and revision under testing""" + rev = os.getenv('OE_BUILDPERFTEST_GIT_REVISION') + branch = os.getenv('OE_BUILDPERFTEST_GIT_BRANCH') + if not self.repo and (not rev or not branch): + log.info("The current working directory doesn't seem to be a Git " + "repository clone. You can specify branch and revision " + "used in test results with OE_BUILDPERFTEST_GIT_REVISION " + "and OE_BUILDPERFTEST_GIT_BRANCH environment variables") + else: + if not rev: + rev = self.repo.run_cmd(['rev-parse', 'HEAD']) + if not branch: + try: + # Strip 11 chars, i.e. 'refs/heads' from the beginning + branch = self.repo.run_cmd(['symbolic-ref', 'HEAD'])[11:] + except GitError: + log.debug('Currently on detached HEAD') + branch = None + return str(rev), str(branch) def run_tests(self): """Method that actually runs the tests""" self.results['schema_version'] = 1 + self.results['git_revision'] = self.git_rev + self.results['git_branch'] = self.git_branch self.results['tester_host'] = socket.gethostname() start_time = datetime.utcnow() self.results['start_time'] = start_time -- 2.6.6 -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core