diff options
author | Markus Lehtonen <markus.lehtonen@linux.intel.com> | 2016-08-15 13:38:43 +0300 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-08-25 23:00:02 +0100 |
commit | 759357a3bdbe75a3409b9e58979ab8b45d9b6ae8 (patch) | |
tree | 9fb71aff4800f6f0276151991337d142ddfbdb78 /scripts/oe-build-perf-test | |
parent | c848e1dac68cd859a563a82286f8bc5ddabaa423 (diff) | |
download | openembedded-core-759357a3bdbe75a3409b9e58979ab8b45d9b6ae8.tar.gz openembedded-core-759357a3bdbe75a3409b9e58979ab8b45d9b6ae8.tar.bz2 openembedded-core-759357a3bdbe75a3409b9e58979ab8b45d9b6ae8.zip |
oe-build-perf-test: pre-check Git repo when using --commit-results
Do a pre-check on the path that is specified with --commit-results
before running any tests. The script will create and/or initialize a
fresh Git repository if the given directory does not exist or if it is
an empty directory. It fails if it finds a non-empty directory that is
not a Git repository.
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Diffstat (limited to 'scripts/oe-build-perf-test')
-rwxr-xr-x | scripts/oe-build-perf-test | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/scripts/oe-build-perf-test b/scripts/oe-build-perf-test index 390e4c9519..437611c856 100755 --- a/scripts/oe-build-perf-test +++ b/scripts/oe-build-perf-test @@ -31,6 +31,7 @@ import oeqa.buildperf from oeqa.buildperf import (BuildPerfTestLoader, BuildPerfTestResult, BuildPerfTestRunner, KernelDropCaches) from oeqa.utils.commands import runCmd +from oeqa.utils.git import GitRepo, GitError # Set-up logging @@ -68,7 +69,30 @@ def pre_run_sanity_check(): if ret.status: log.error("bitbake command not found") return False + return True +def init_git_repo(path): + """Check/create Git repository where to store results""" + path = os.path.abspath(path) + if os.path.isfile(path): + log.error("Invalid Git repo %s: path exists but is not a directory", path) + return False + if not os.path.isdir(path): + try: + os.mkdir(path) + except (FileNotFoundError, PermissionError) as err: + log.error("Failed to mkdir %s: %s", path, err) + return False + if not os.listdir(path): + log.info("Initializing a new Git repo at %s", path) + GitRepo.init(path) + try: + GitRepo(path, is_topdir=True) + except GitError: + log.error("No Git repository but a non-empty directory found at %s.\n" + "Please specify a Git repository, an empty directory or " + "a non-existing directory", path) + return False return True @@ -137,6 +161,9 @@ def main(argv=None): if not pre_run_sanity_check(): return 1 + if args.commit_results: + if not init_git_repo(args.commit_results): + return 1 # Check our capability to drop caches and ask pass if needed KernelDropCaches.check() |