From bd7eb9475cdf3bd6dff62e4a38243cac18ba0c8e Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Wed, 28 Feb 2007 04:00:21 +0000 Subject: * Added another test as suggested by Nagy on the ML- a package both provides for and is a dependency of another package. (upgrade057) * Removed man2html stuff from doc/Makefile.am. * Patch: improved depends checking in _alpm_checkdeps Nagy Gabor * Slight revisions to pmrule.py to allow for a PKG_PROVIDES test. * Very quick updates to the pactest README. * Added rules to some of the newer upgrade tests. Note: upgrade055 now fails due to requiredby entries not being written packages that are dependencies in a provides role. --- pactest/README | 22 ++++++++++++++++------ pactest/pmrule.py | 3 +++ pactest/tests/upgrade052.py | 1 + pactest/tests/upgrade053.py | 1 + pactest/tests/upgrade054.py | 1 + pactest/tests/upgrade055.py | 2 ++ pactest/tests/upgrade056.py | 2 ++ pactest/tests/upgrade057.py | 23 +++++++++++++++++++++++ 8 files changed, 49 insertions(+), 6 deletions(-) create mode 100644 pactest/tests/upgrade057.py (limited to 'pactest') diff --git a/pactest/README b/pactest/README index 7ef24b1d..b995edc1 100644 --- a/pactest/README +++ b/pactest/README @@ -102,7 +102,7 @@ Example: option ------ -A dictionnary that holds the data used in the pacman configuration file. +A dictionary that holds the data used in the pacman configuration file. It has 3 keys, each one of them pointing at a list of strings: - noupgrade - noextract @@ -269,9 +269,8 @@ Possible rules are: PACMAN_RETCODE=value PACMAN_OUTPUT=value -For the RETCODE one, pactest will compare pacman return code with the value -provided as an item. -For the OUTPUT one, pactest will grep pacman outputs for the given value. +For RETCODE, pactest will ensure the pacman return code is the value given. +For OUTPUT, pactest will grep pacman outputs for the given value. Note: PACMAN_OUTPUT should not be used. Pacman outputs are likely to change from one release to another, so that it's reliability is quite low. @@ -286,14 +285,19 @@ Possible rules are: PKG_EXIST=name PKG_MODIFIED=name PKG_VERSION=name|version + PKG_GROUPS=name|group + PKG_PROVIDES=name|providename PKG_DEPENDS=name|depname PKG_REQUIREDBY=name|reqbyname + PKG_REASON=name|intvalue + PKG_FILES=name|filename + PKG_BACKUP=name|backupname Example: PKG_DEPENDS=ncurses|glibc -pactest will test the local database entry "ncurses" has "glibc" in its -DEPENDS field. +pactest will test to ensure the local database entry "ncurses" has "glibc" in +its DEPENDS field. . FILE rules @@ -302,3 +306,9 @@ DEPENDS field. FILE_PACNEW=path/to/file FILE_PACSAVE=path/to/file FILE_PACORIG=path/to/file + +Example: + FILE_EXIST=etc/test.conf + +pactest will ensure the file /etc/test.conf exists in the filesystem. + diff --git a/pactest/pmrule.py b/pactest/pmrule.py index 78811957..33a29f0e 100755 --- a/pactest/pmrule.py +++ b/pactest/pmrule.py @@ -76,6 +76,9 @@ def check(self, root, retcode, localdb, files): elif case == "GROUPS": if not value in newpkg.groups: success = 0 + elif case == "PROVIDES": + if not value in newpkg.provides: + success = 0 elif case == "DEPENDS": if not value in newpkg.depends: success = 0 diff --git a/pactest/tests/upgrade052.py b/pactest/tests/upgrade052.py index 5579edb1..7db85df9 100644 --- a/pactest/tests/upgrade052.py +++ b/pactest/tests/upgrade052.py @@ -18,3 +18,4 @@ self.addrule("PACMAN_RETCODE=1") self.addrule("PKG_EXIST=pkg1") self.addrule("PKG_VERSION=pkg2|1.0-1") +self.addrule("PKG_PROVIDES=pkg2|imaginary") diff --git a/pactest/tests/upgrade053.py b/pactest/tests/upgrade053.py index 78de0b5e..4cbaa1f8 100644 --- a/pactest/tests/upgrade053.py +++ b/pactest/tests/upgrade053.py @@ -17,3 +17,4 @@ self.addrule("PACMAN_RETCODE=0") self.addrule("PKG_VERSION=pkg1|1.0-2") self.addrule("PKG_EXIST=pkg2") +self.addrule("PKG_REQUIREDBY=pkg2|pkg1") diff --git a/pactest/tests/upgrade054.py b/pactest/tests/upgrade054.py index 817d1b3d..b60f15f4 100644 --- a/pactest/tests/upgrade054.py +++ b/pactest/tests/upgrade054.py @@ -17,3 +17,4 @@ self.addrule("PACMAN_RETCODE=0") self.addrule("PKG_VERSION=pkg1|1.0-2") self.addrule("PKG_EXIST=pkg2") +self.addrule("PKG_REQUIREDBY=pkg2|pkg1") diff --git a/pactest/tests/upgrade055.py b/pactest/tests/upgrade055.py index c70c08da..7cdf6b5d 100644 --- a/pactest/tests/upgrade055.py +++ b/pactest/tests/upgrade055.py @@ -24,3 +24,5 @@ self.addrule("PKG_EXIST=pkg1") self.addrule("PKG_VERSION=pkg2|1.0-2") self.addrule("PKG_EXIST=pkg3") +self.addrule("PKG_REQUIREDBY=pkg2|pkg1") +self.addrule("PKG_DEPENDS=pkg1|imaginary") diff --git a/pactest/tests/upgrade056.py b/pactest/tests/upgrade056.py index 74394b36..db34266b 100644 --- a/pactest/tests/upgrade056.py +++ b/pactest/tests/upgrade056.py @@ -22,3 +22,5 @@ self.addrule("PKG_EXIST=pkg1") self.addrule("PKG_VERSION=pkg2|1.0-2") self.addrule("PKG_EXIST=pkg3") +self.addrule("!PKG_REQUIREDBY=pkg1|pkg2") +self.addrule("PKG_REQUIREDBY=pkg1|pkg3") diff --git a/pactest/tests/upgrade057.py b/pactest/tests/upgrade057.py new file mode 100644 index 00000000..fd3e7138 --- /dev/null +++ b/pactest/tests/upgrade057.py @@ -0,0 +1,23 @@ +self.description = "Upgrade a package that both provides and is a dependency" + +lp1 = pmpkg("pkg1") +lp1.depends = ["pkg2", "imag3"] +self.addpkg2db("local", lp1) + +lp2 = pmpkg("pkg2") +lp2.provides = ["imag3"] +lp2.requiredby = ["pkg1"] +self.addpkg2db("local", lp2) + +p = pmpkg("pkg2", "1.0-2") +p.provides = ["imag3"] +self.addpkg(p) + +self.args = "-U %s" % p.filename() + +self.addrule("PACMAN_RETCODE=0") +self.addrule("PKG_EXIST=pkg1") +self.addrule("PKG_VERSION=pkg2|1.0-2") +self.addrule("PKG_REQUIREDBY=pkg2|pkg1") +self.addrule("PKG_DEPENDS=pkg1|pkg2") +self.addrule("PKG_DEPENDS=pkg1|imag3") -- cgit v1.2.3-54-g00ecf