[pacman-dev] [PATCH] pactest: remove PACMAN_OUTPUT from ldconfig tests

Dan McGee dan at archlinux.org
Thu Sep 1 15:38:03 EDT 2011


This removes the last usages of this rule that aren't explicitly looking
at real output from pacman. Notably, these tests depended on one
particular debug logger not ever being changed, which is too fragile,
not to mention doesn't work at all with --nolog.

Signed-off-by: Dan McGee <dan at archlinux.org>
---
 test/pacman/ldconfig.stub        |    4 ++++
 test/pacman/pmtest.py            |    7 ++++++-
 test/pacman/tests/ldconfig001.py |    9 +++------
 test/pacman/tests/ldconfig002.py |    7 ++-----
 test/pacman/tests/ldconfig003.py |    7 +------
 test/pacman/util.py              |    1 +
 6 files changed, 17 insertions(+), 18 deletions(-)
 create mode 100755 test/pacman/ldconfig.stub

diff --git a/test/pacman/ldconfig.stub b/test/pacman/ldconfig.stub
new file mode 100755
index 0000000..d261a04
--- /dev/null
+++ b/test/pacman/ldconfig.stub
@@ -0,0 +1,4 @@
+#!/bin/sh
+# A simple stub to copy into the chroot to fake ldconfig.
+# Simply appends a line to /etc/ld.so.cache if called.
+echo "ldconfig called" >> /etc/ld.so.cache
diff --git a/test/pacman/pmtest.py b/test/pacman/pmtest.py
index 3acf5d8..4e1ecd0 100644
--- a/test/pacman/pmtest.py
+++ b/test/pacman/pmtest.py
@@ -119,13 +119,18 @@ def generate(self):
         logdir = os.path.join(self.root, os.path.dirname(util.LOGFILE))
         etcdir = os.path.join(self.root, os.path.dirname(util.PACCONF))
         bindir = os.path.join(self.root, "bin")
-        sys_dirs = [dbdir, cachedir, syncdir, tmpdir, logdir, etcdir, bindir]
+        sbindir = os.path.join(self.root, "sbin")
+        sys_dirs = [dbdir, cachedir, syncdir, tmpdir, logdir, etcdir, bindir, sbindir]
         for sys_dir in sys_dirs:
             if not os.path.isdir(sys_dir):
                 vprint("\t%s" % sys_dir[len(self.root)+1:])
                 os.makedirs(sys_dir, 0755)
         # Only the dynamically linked binary is needed for fakechroot
         shutil.copy("/bin/sh", bindir)
+        shutil.copy(os.path.join(util.SELFPATH, "ldconfig.stub"),
+            os.path.join(sbindir, "ldconfig"))
+        ld_so_conf = open(os.path.join(etcdir, "ld.so.conf"), "w")
+        ld_so_conf.close()
 
         # Configuration file
         vprint("    Creating configuration file")
diff --git a/test/pacman/tests/ldconfig001.py b/test/pacman/tests/ldconfig001.py
index aa029ba..a264326 100644
--- a/test/pacman/tests/ldconfig001.py
+++ b/test/pacman/tests/ldconfig001.py
@@ -1,12 +1,9 @@
-# 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 = "Make sure ldconfig runs on an add operation"
+self.description = "Make sure ldconfig runs on an upgrade operation"
 
 p = pmpkg("dummy")
 self.addpkg(p)
 
-# --debug is necessary to check PACMAN_OUTPUT
-self.args = "--debug -U %s" % p.filename()
+self.args = "-U %s" % p.filename()
 
 self.addrule("PACMAN_RETCODE=0")
-self.addrule("PACMAN_OUTPUT=running ldconfig")
+self.addrule("FILE_EXIST=/etc/ld.so.cache")
diff --git a/test/pacman/tests/ldconfig002.py b/test/pacman/tests/ldconfig002.py
index c028ce3..2628dc7 100644
--- a/test/pacman/tests/ldconfig002.py
+++ b/test/pacman/tests/ldconfig002.py
@@ -1,5 +1,3 @@
-# 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 = "Make sure ldconfig runs on an upgrade operation"
 
 lp = pmpkg("dummy")
@@ -8,9 +6,8 @@
 p = pmpkg("dummy", "1.0-2")
 self.addpkg(p)
 
-# --debug is necessary to check PACMAN_OUTPUT
-self.args = "--debug -U %s" % p.filename()
+self.args = "-U %s" % p.filename()
 
 self.addrule("PACMAN_RETCODE=0")
 self.addrule("PKG_VERSION=dummy|1.0-2")
-self.addrule("PACMAN_OUTPUT=running ldconfig")
+self.addrule("FILE_EXIST=/etc/ld.so.cache")
diff --git a/test/pacman/tests/ldconfig003.py b/test/pacman/tests/ldconfig003.py
index 69618c6..8d1babb 100644
--- a/test/pacman/tests/ldconfig003.py
+++ b/test/pacman/tests/ldconfig003.py
@@ -1,5 +1,3 @@
-# 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 = "Make sure ldconfig runs on a sync operation"
 
 sp = pmpkg("dummy")
@@ -7,8 +5,5 @@
 
 self.args = "-S %s" % sp.name
 
-# --debug is necessary to check PACMAN_OUTPUT
-self.args = "--debug -S %s" % sp.name
-
 self.addrule("PACMAN_RETCODE=0")
-self.addrule("PACMAN_OUTPUT=running ldconfig")
+self.addrule("FILE_EXIST=/etc/ld.so.cache")
diff --git a/test/pacman/util.py b/test/pacman/util.py
index cde44c6..81dcc90 100644
--- a/test/pacman/util.py
+++ b/test/pacman/util.py
@@ -20,6 +20,7 @@
 import re
 import hashlib
 
+SELFPATH    = os.path.abspath(os.path.dirname(__file__))
 
 # ALPM
 PM_ROOT     = "/"
-- 
1.7.6



More information about the pacman-dev mailing list