diff --git a/test/pacman/ldconfig.stub b/test/pacman/ldconfig.stub new file mode 100755 index 00000000..d261a04a --- /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 3acf5d81..4e1ecd0b 100644 --- a/test/pacman/pmtest.py +++ b/test/pacman/pmtest.py @@ -119,13 +119,18 @@ class pmtest(object): 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 aa029ba5..a264326d 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 c028ce38..2628dc7a 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 @@ self.addpkg2db("local", lp) 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 69618c68..8d1babb7 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.addpkg2db("sync", sp) 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 cde44c6e..81dcc906 100644 --- a/test/pacman/util.py +++ b/test/pacman/util.py @@ -20,6 +20,7 @@ import os import re import hashlib +SELFPATH = os.path.abspath(os.path.dirname(__file__)) # ALPM PM_ROOT = "/"