From 0d4dd09993971924d379be4d0944d72f4c77b021 Mon Sep 17 00:00:00 2001
From: Dan McGee <dan@archlinux.org>
Date: Tue, 11 Jan 2011 18:43:28 -0600
Subject: pactest: build the filelist using a set()

This will prevent duplicates, which we had plenty of once I made a few tests
that had a list of files greater than the normal two. The previous logic was
not working quite right.

Signed-off-by: Dan McGee <dan@archlinux.org>
---
 test/pacman/pmdb.py | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

(limited to 'test')

diff --git a/test/pacman/pmdb.py b/test/pacman/pmdb.py
index 60460ce2..b4d0e2d5 100755
--- a/test/pacman/pmdb.py
+++ b/test/pacman/pmdb.py
@@ -38,16 +38,14 @@ def _mkfilelist(files):
         usr/local/bin/
         usr/local/bin/dummy
     """
-    i = []
+    file_list = set()
     for f in files:
         dir = getfilename(f)
-        i.append(dir)
+        file_list.add(dir)
         while "/" in dir:
             [dir, tmp] = dir.rsplit("/", 1)
-            if not dir + "/" in files:
-                i.append(dir + "/")
-    i.sort()
-    return i
+            file_list.add(dir + "/")
+    return sorted(file_list)
 
 def _mkbackuplist(backup):
     """
-- 
cgit v1.2.3-70-g09d2


From b04a56dbe90f43622158410234fabea96d0d7f07 Mon Sep 17 00:00:00 2001
From: Dan McGee <dan@archlinux.org>
Date: Tue, 11 Jan 2011 18:44:26 -0600
Subject: Add two pactests with non-trivial file counts

These are probably useful anyway, but also exposed the double file list bug
that will be fixed in a later commit.

Signed-off-by: Dan McGee <dan@archlinux.org>
---
 test/pacman/tests/remove002.py  | 12 ++++++++++++
 test/pacman/tests/upgrade006.py | 18 ++++++++++++++++++
 2 files changed, 30 insertions(+)
 create mode 100644 test/pacman/tests/remove002.py
 create mode 100644 test/pacman/tests/upgrade006.py

(limited to 'test')

diff --git a/test/pacman/tests/remove002.py b/test/pacman/tests/remove002.py
new file mode 100644
index 00000000..1deffb0d
--- /dev/null
+++ b/test/pacman/tests/remove002.py
@@ -0,0 +1,12 @@
+self.description = "Remove a package with several files"
+
+p = pmpkg("foo")
+p.files = ["usr/share/file_%d" % n for n in range(1000)]
+self.addpkg2db("local", p)
+
+self.args = "-R %s" % p.name
+
+self.addrule("PACMAN_RETCODE=0")
+self.addrule("!PKG_EXIST=foo")
+self.addrule("!FILE_EXIST=usr/share/file_0")
+self.addrule("!FILE_EXIST=usr/share/file_999")
diff --git a/test/pacman/tests/upgrade006.py b/test/pacman/tests/upgrade006.py
new file mode 100644
index 00000000..5e5173b5
--- /dev/null
+++ b/test/pacman/tests/upgrade006.py
@@ -0,0 +1,18 @@
+self.description = "Upgrade a package with several files"
+
+lp = pmpkg("dummy")
+lp.files = ["usr/share/file_%d" % n for n in range(250, 750)]
+self.addpkg2db("local", lp)
+
+p = pmpkg("dummy", "1.1-1")
+p.files = ["usr/share/file_%d" % n for n in range(600, 1000)]
+self.addpkg(p)
+
+self.args = "-U %s" % p.filename()
+
+self.addrule("PACMAN_RETCODE=0")
+self.addrule("PKG_VERSION=dummy|1.1-1")
+self.addrule("!FILE_EXIST=usr/share/file_250")
+self.addrule("!FILE_EXIST=usr/share/file_599")
+self.addrule("FILE_EXIST=usr/share/file_600")
+self.addrule("FILE_EXIST=usr/share/file_999")
-- 
cgit v1.2.3-70-g09d2