summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Chantry <chantry.xavier@gmail.com>2010-10-11 01:05:04 +0200
committerDan McGee <dan@archlinux.org>2010-10-11 10:06:57 -0500
commitfa933df65b9e024ec3291fcc1f995be3dc000e0c (patch)
tree35854a375dc5c8bf62d13ca0758b91dba445f155
parent67068b64b9da96a0122591ede25c50ab307a1612 (diff)
downloadpacman-fa933df65b9e024ec3291fcc1f995be3dc000e0c.tar.xz
pactest: fix gensync
gensync generated a sync.db file with PKGINFO syntax, this is not quite what pacman expects. Also the file was only added to the Server path: root/var/pub/sync/sync.db but it was not available in the normal sync db path: root/var/lib/pacman/sync/sync.db Change gensync() to generate var/lib/pacman/sync/sync.db and then copy it to var/pub/sync/sync.db (this is used by sync200 -Sy test). Signed-off-by: Dan McGee <dan@archlinux.org>
-rwxr-xr-xtest/pacman/pmdb.py30
-rwxr-xr-xtest/pacman/pmtest.py12
-rwxr-xr-xtest/pacman/util.py1
3 files changed, 21 insertions, 22 deletions
diff --git a/test/pacman/pmdb.py b/test/pacman/pmdb.py
index 11083db0..efd0cc27 100755
--- a/test/pacman/pmdb.py
+++ b/test/pacman/pmdb.py
@@ -81,11 +81,15 @@ class pmdb:
"""Database object
"""
- def __init__(self, treename, dbdir):
+ def __init__(self, treename, root):
self.treename = treename
- self.dbdir = dbdir
self.pkgs = []
self.option = {}
+ if self.treename == "local":
+ self.dbdir = os.path.join(root, PM_DBPATH, treename)
+ else:
+ self.dbdir = os.path.join(root, PM_SYNCDBPATH, treename)
+ self.dbfile = os.path.join(root, PM_SYNCDBPATH, treename + ".db")
def __str__(self):
return "%s" % self.treename
@@ -101,7 +105,7 @@ class pmdb:
"""
"""
- path = os.path.join(self.dbdir, self.treename)
+ path = self.dbdir
if not os.path.isdir(path):
return None
@@ -227,10 +231,7 @@ class pmdb:
"""
"""
- if self.treename == "local":
- path = os.path.join(self.dbdir, self.treename, pkg.fullname())
- else:
- path = os.path.join(self.dbdir, "sync", self.treename, pkg.fullname())
+ path = os.path.join(self.dbdir, pkg.fullname())
mkdir(path)
# desc
@@ -331,27 +332,22 @@ class pmdb:
pkg.checksum["install"] = getmd5sum(filename)
pkg.mtime["install"] = getmtime(filename)
- def gensync(self, path):
+ def gensync(self):
"""
"""
+ if not self.dbfile:
+ return
curdir = os.getcwd()
- tmpdir = tempfile.mkdtemp()
- os.chdir(tmpdir)
-
- for pkg in self.pkgs:
- mkdescfile(pkg.fullname(), pkg)
+ os.chdir(self.dbdir)
# Generate database archive
- mkdir(path)
- archive = os.path.join(path, "%s.db" % (self.treename))
- tar = tarfile.open(archive, "w:gz")
+ tar = tarfile.open(self.dbfile, "w:gz")
for i in os.listdir("."):
tar.add(i)
tar.close()
os.chdir(curdir)
- shutil.rmtree(tmpdir)
def ispkgmodified(self, pkg):
"""
diff --git a/test/pacman/pmtest.py b/test/pacman/pmtest.py
index 5c8881c8..c4769298 100755
--- a/test/pacman/pmtest.py
+++ b/test/pacman/pmtest.py
@@ -47,7 +47,7 @@ class pmtest:
"""
"""
if not treename in self.db:
- self.db[treename] = pmdb.pmdb(treename, os.path.join(self.root, PM_DBPATH))
+ self.db[treename] = pmdb.pmdb(treename, self.root)
self.db[treename].pkgs.append(pkg)
def addpkg(self, pkg):
@@ -73,7 +73,7 @@ class pmtest:
self.args = ""
self.retcode = 0
self.db = {
- "local": pmdb.pmdb("local", os.path.join(self.root, PM_DBPATH))
+ "local": pmdb.pmdb("local", self.root)
}
self.localpkgs = []
self.filesystem = []
@@ -152,9 +152,11 @@ class pmtest:
vprint(" Creating sync database archives")
for key, value in self.db.iteritems():
if key == "local": continue
- archive = value.treename + ".db"
- vprint("\t" + os.path.join(SYNCREPO, archive))
- value.gensync(os.path.join(syncdir, value.treename))
+ vprint("\t" + value.treename)
+ value.gensync()
+ serverpath = os.path.join(syncdir, value.treename)
+ mkdir(serverpath)
+ shutil.copy(value.dbfile, serverpath)
# Filesystem
vprint(" Populating file system")
diff --git a/test/pacman/util.py b/test/pacman/util.py
index 657230ee..802f22ec 100755
--- a/test/pacman/util.py
+++ b/test/pacman/util.py
@@ -25,6 +25,7 @@ import stat
# ALPM
PM_ROOT = "/"
PM_DBPATH = "var/lib/pacman"
+PM_SYNCDBPATH = "var/lib/pacman/sync"
PM_LOCK = "var/lib/pacman/db.lck"
PM_CACHEDIR = "var/cache/pacman/pkg"
PM_EXT_PKG = ".pkg.tar.gz"