Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/pactest
diff options
context:
space:
mode:
Diffstat (limited to 'pactest')
-rw-r--r--pactest/README22
-rwxr-xr-xpactest/pmrule.py3
-rw-r--r--pactest/tests/upgrade052.py1
-rw-r--r--pactest/tests/upgrade053.py1
-rw-r--r--pactest/tests/upgrade054.py1
-rw-r--r--pactest/tests/upgrade055.py2
-rw-r--r--pactest/tests/upgrade056.py2
-rw-r--r--pactest/tests/upgrade057.py23
8 files changed, 49 insertions, 6 deletions
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 @@ class pmrule:
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.args = "-U %s" % p.filename()
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.args = "-U %s" % p.filename()
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.args = "-U %s" % p.filename()
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("PACMAN_RETCODE=0")
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("PACMAN_RETCODE=0")
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")