diff options
Diffstat (limited to 'meta/lib/oeqa/buildperf/base.py')
| -rw-r--r-- | meta/lib/oeqa/buildperf/base.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/meta/lib/oeqa/buildperf/base.py b/meta/lib/oeqa/buildperf/base.py index c0318a18e0..e10cbf4572 100644 --- a/meta/lib/oeqa/buildperf/base.py +++ b/meta/lib/oeqa/buildperf/base.py | |||
| @@ -22,6 +22,7 @@ import traceback | |||
| 22 | from datetime import datetime, timedelta | 22 | from datetime import datetime, timedelta |
| 23 | 23 | ||
| 24 | from oeqa.utils.commands import runCmd, get_bb_vars | 24 | from oeqa.utils.commands import runCmd, get_bb_vars |
| 25 | from oeqa.utils.git import GitError, GitRepo | ||
| 25 | 26 | ||
| 26 | # Get logger for this module | 27 | # Get logger for this module |
| 27 | log = logging.getLogger('build-perf') | 28 | log = logging.getLogger('build-perf') |
| @@ -85,10 +86,41 @@ class BuildPerfTestRunner(object): | |||
| 85 | if not os.path.exists(self.out_dir): | 86 | if not os.path.exists(self.out_dir): |
| 86 | os.makedirs(self.out_dir) | 87 | os.makedirs(self.out_dir) |
| 87 | 88 | ||
| 89 | # Get Git parameters | ||
| 90 | try: | ||
| 91 | self.repo = GitRepo('.') | ||
| 92 | except GitError: | ||
| 93 | self.repo = None | ||
| 94 | self.git_rev, self.git_branch = self.get_git_revision() | ||
| 95 | log.info("Using Git branch:revision %s:%s", self.git_branch, | ||
| 96 | self.git_rev) | ||
| 97 | |||
| 98 | def get_git_revision(self): | ||
| 99 | """Get git branch and revision under testing""" | ||
| 100 | rev = os.getenv('OE_BUILDPERFTEST_GIT_REVISION') | ||
| 101 | branch = os.getenv('OE_BUILDPERFTEST_GIT_BRANCH') | ||
| 102 | if not self.repo and (not rev or not branch): | ||
| 103 | log.info("The current working directory doesn't seem to be a Git " | ||
| 104 | "repository clone. You can specify branch and revision " | ||
| 105 | "used in test results with OE_BUILDPERFTEST_GIT_REVISION " | ||
| 106 | "and OE_BUILDPERFTEST_GIT_BRANCH environment variables") | ||
| 107 | else: | ||
| 108 | if not rev: | ||
| 109 | rev = self.repo.run_cmd(['rev-parse', 'HEAD']) | ||
| 110 | if not branch: | ||
| 111 | try: | ||
| 112 | # Strip 11 chars, i.e. 'refs/heads' from the beginning | ||
| 113 | branch = self.repo.run_cmd(['symbolic-ref', 'HEAD'])[11:] | ||
| 114 | except GitError: | ||
| 115 | log.debug('Currently on detached HEAD') | ||
| 116 | branch = None | ||
| 117 | return str(rev), str(branch) | ||
| 88 | 118 | ||
| 89 | def run_tests(self): | 119 | def run_tests(self): |
| 90 | """Method that actually runs the tests""" | 120 | """Method that actually runs the tests""" |
| 91 | self.results['schema_version'] = 1 | 121 | self.results['schema_version'] = 1 |
| 122 | self.results['git_revision'] = self.git_rev | ||
| 123 | self.results['git_branch'] = self.git_branch | ||
| 92 | self.results['tester_host'] = socket.gethostname() | 124 | self.results['tester_host'] = socket.gethostname() |
| 93 | start_time = datetime.utcnow() | 125 | start_time = datetime.utcnow() |
| 94 | self.results['start_time'] = start_time | 126 | self.results['start_time'] = start_time |
