From 42c859e4cc38f91a1236cd93eae9e9f9a1bc1e62 Mon Sep 17 00:00:00 2001 From: Andrew Gregory Date: Mon, 6 Oct 2014 03:01:40 -0400 Subject: pmtest: allow tests to specify test binary Adds a cmd property to tests (defaults to pacman) which is resolved using directories specified with --bindir (defaults to PATH). The ability to manually specify a particular binary is preserved in order to allow running individual tests with differently named binaries such as lt-pacman. Signed-off-by: Andrew Gregory Signed-off-by: Allan McRae --- test/pacman/pmtest.py | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'test/pacman/pmtest.py') diff --git a/test/pacman/pmtest.py b/test/pacman/pmtest.py index 36829632..5a79919e 100644 --- a/test/pacman/pmtest.py +++ b/test/pacman/pmtest.py @@ -39,6 +39,11 @@ class pmtest(object): self.root = root self.dbver = 9 self.cachepkgs = True + self.cmd = ["pacman", "--noconfirm", + "--config", os.path.join(self.root, util.PACCONF), + "--root", self.root, + "--dbpath", os.path.join(self.root, util.PM_DBPATH), + "--cachedir", os.path.join(self.root, util.PM_CACHEDIR)] def __str__(self): return "name = %s\n" \ @@ -234,16 +239,24 @@ class pmtest(object): "--log-file=%s" % os.path.join(self.root, "var/log/valgrind"), "--suppressions=%s" % suppfile]) self.addrule("FILE_EMPTY=var/log/valgrind") - cmd.extend([pacman["bin"], "--noconfirm", - "--config", os.path.join(self.root, util.PACCONF), - "--root", self.root, - "--dbpath", os.path.join(self.root, util.PM_DBPATH), - "--cachedir", os.path.join(self.root, util.PM_CACHEDIR)]) + + # replace program name with absolute path + prog = pacman["bin"] + if not prog: + prog = util.which(self.cmd[0], pacman["bindir"]) + if not prog or not os.access(prog, os.X_OK): + if not prog: + tap.bail("could not locate '%s' binary" % (self.cmd[0])) + return + + cmd.append(os.path.abspath(prog)) + cmd.extend(self.cmd[1:]) if pacman["manual-confirm"]: cmd.append("--confirm") if pacman["debug"]: cmd.append("--debug=%s" % pacman["debug"]) cmd.extend(shlex.split(self.args)) + if not (pacman["gdb"] or pacman["nolog"]): output = open(os.path.join(self.root, util.LOGFILE), 'w') else: -- cgit v1.2.3-24-g4f1b