Add real scriptlet checking for pactest

Due to commit da1222de2e30aabcae9d17bbfa10bbf0672338af, we can now use
fakechroot to completely run scriptlet pactests

Use "which" functionality so as not to REQUIRE it for all users

Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
Aaron Griffin 2007-11-29 23:39:51 -06:00 committed by Dan McGee
parent 685a659656
commit f5478d68a6
3 changed files with 19 additions and 22 deletions

View File

@ -189,6 +189,13 @@ def run(self, pacman):
cmd = [""]
if os.geteuid() != 0:
cmd.append("fakeroot")
fakechroot = which("fakechroot")
if not fakechroot:
print "WARNING: fakechroot not found, scriptlet tests WILL fail!!!"
else:
cmd.append("fakechroot")
if pacman["gdb"]:
cmd.append("libtool gdb --args")
if pacman["valgrind"]:

View File

@ -1,21 +1,16 @@
# quick note here - chroot() is expected to fail. We're not checking the
# validity of the scripts, only that they fire (or try to)
self.description = "Scriptlet test (pre/post install)"
lpsh = pmpkg("sh")
lpsh.files = ['bin/sh']
self.addpkg2db("local", lpsh)
p1 = pmpkg("dummy")
p1.files = ['etc/dummy.conf']
p1.install['pre_install'] = "ls /etc";
p1.install['post_install'] = "ls /etc";
pre = "OUTPUT FROM PRE_INSTALL"
post = "OUTPUT FROM POST_INSTALL"
p1.install['pre_install'] = "echo " + pre
p1.install['post_install'] = "echo " + post
self.addpkg(p1)
# --debug is necessary to check PACMAN_OUTPUT
self.args = "--debug -U %s" % p1.filename()
self.addrule("PACMAN_RETCODE=0")
self.addrule("FILE_EXIST=bin/sh")
self.addrule("PACMAN_OUTPUT=pre_install")
self.addrule("PACMAN_OUTPUT=post_install")
self.addrule("PACMAN_OUTPUT=" + pre)
self.addrule("PACMAN_OUTPUT=" + post)

View File

@ -1,21 +1,16 @@
# quick note here - chroot() is expected to fail. We're not checking the
# validity of the scripts, only that they fire (or try to)
self.description = "Scriptlet test (pre/post remove)"
lpsh = pmpkg("sh")
lpsh.files = ['bin/sh']
self.addpkg2db("local", lpsh)
p1 = pmpkg("dummy")
p1.files = ['etc/dummy.conf']
p1.install['pre_remove'] = "ls /etc";
p1.install['post_remove'] = "ls /etc";
pre = "OUTPUT FROM PRE_REMOVE";
post = "OUTPUT FROM POST_REMOVE";
p1.install['pre_remove'] = "echo " + pre
p1.install['post_remove'] = "echo " + post
self.addpkg2db("local", p1)
# --debug is necessary to check PACMAN_OUTPUT
self.args = "--debug -R %s" % p1.name
self.addrule("PACMAN_RETCODE=0")
self.addrule("FILE_EXIST=bin/sh")
self.addrule("PACMAN_OUTPUT=pre_remove")
self.addrule("PACMAN_OUTPUT=post_remove")
self.addrule("PACMAN_OUTPUT=" + pre)
self.addrule("PACMAN_OUTPUT=" + post)