summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Gregory <andrew.gregory.8@gmail.com>2014-07-04 22:49:52 +0200
committerAllan McRae <allan@archlinux.org>2014-08-03 10:46:31 +0200
commit6650c43fcafd144c78349aca9eb80c0ae3886a9d (patch)
tree57869b4abafe4b76538a9ff3a71850c6a86379d2
parent0c5e80c3b42b2fc02e8b800bada7f6bb30a56578 (diff)
downloadpacman-6650c43fcafd144c78349aca9eb80c0ae3886a9d.tar.gz
pacman-6650c43fcafd144c78349aca9eb80c0ae3886a9d.tar.xz
pactest: check for pacman binary before running
Using fakeroot or fakechroot as the command with subprocess.call prevents the detection and reporting of a missing pacman binary. Some tests even pass when run with a non-existent binary. Checking manually allows us to provide a meaningful error message and prevent the false positives. Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
-rwxr-xr-xtest/pacman/pactest.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/test/pacman/pactest.py b/test/pacman/pactest.py
index b2b9c289..cba439c3 100755
--- a/test/pacman/pactest.py
+++ b/test/pacman/pactest.py
@@ -49,7 +49,7 @@ def create_parser():
help = "set debug level for pacman")
parser.add_option("-p", "--pacman", action = "callback",
callback = resolve_binary_path, type = "string",
- dest = "bin", default = "pacman",
+ dest = "bin", default = util.which("pacman"),
help = "specify location of the pacman binary")
parser.add_option("--keep-root", action = "store_true",
dest = "keeproot", default = False,
@@ -86,6 +86,10 @@ if __name__ == "__main__":
opt_parser = create_parser()
(opts, args) = opt_parser.parse_args()
+ if opts.bin is None or not os.access(opts.bin, os.X_OK):
+ tap.bail("cannot locate pacman binary")
+ sys.exit(2)
+
# instantiate env
root_path = tempfile.mkdtemp(prefix='pactest-')
env = pmenv.pmenv(root=root_path)