summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Griffin <aaronmgriffin@gmail.com>2007-11-30 06:39:51 +0100
committerDan McGee <dan@archlinux.org>2007-12-11 06:06:48 +0100
commitf5478d68a67741236a2e9f42f2e524ee1bb26517 (patch)
tree7fcf7d7527a3be7e6706506fed7da8ef6edee5f2
parent685a659656d670acb0d606f8e91c8984d47c98b5 (diff)
downloadpacman-f5478d68a67741236a2e9f42f2e524ee1bb26517.tar.gz
pacman-f5478d68a67741236a2e9f42f2e524ee1bb26517.tar.xz
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>
-rwxr-xr-xpactest/pmtest.py7
-rw-r--r--pactest/tests/scriptlet001.py17
-rw-r--r--pactest/tests/scriptlet002.py17
3 files changed, 19 insertions, 22 deletions
diff --git a/pactest/pmtest.py b/pactest/pmtest.py
index 457028db..be36914b 100755
--- a/pactest/pmtest.py
+++ b/pactest/pmtest.py
@@ -189,6 +189,13 @@ class pmtest:
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"]:
diff --git a/pactest/tests/scriptlet001.py b/pactest/tests/scriptlet001.py
index 3609d167..54a46aae 100644
--- a/pactest/tests/scriptlet001.py
+++ b/pactest/tests/scriptlet001.py
@@ -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)
diff --git a/pactest/tests/scriptlet002.py b/pactest/tests/scriptlet002.py
index 38ed5fd0..dd792b82 100644
--- a/pactest/tests/scriptlet002.py
+++ b/pactest/tests/scriptlet002.py
@@ -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)