From 13e21110459aaf99dd739802c2b07b3d5b9e2a68 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Wed, 28 Feb 2007 16:37:24 +0000 Subject: [PATCH] * Unifying placement of REPLACES in desc file, as pacman2 does. We'll worry about bigger DB changes later, but lets not screw anything up for release. * Removed some weird uses of "not ... ==" usage in pactest- correct me if I'm wrong, but isn't "!=" a lot more clean and concise? * Print description of failed tests in the pactest summary. This could get dirty with a lot of failed tests though, so watch out. --- lib/libalpm/be_files.c | 21 ++++++++++----------- lib/libalpm/package.c | 3 ++- pactest/pmdb.py | 25 ++++++++++++++----------- pactest/pmenv.py | 11 ++++++++--- pactest/pmfile.py | 4 ++-- pactest/pmrule.py | 2 +- pactest/util.py | 9 +++++---- 7 files changed, 42 insertions(+), 33 deletions(-) diff --git a/lib/libalpm/be_files.c b/lib/libalpm/be_files.c index 41349048..ac268788 100644 --- a/lib/libalpm/be_files.c +++ b/lib/libalpm/be_files.c @@ -365,10 +365,6 @@ int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq) if(fgets(info->md5sum, sizeof(info->md5sum), fp) == NULL) { goto error; } - /* XXX: these are only here as backwards-compatibility for pacman 2.x - * sync repos.... in pacman3, they have been moved to DEPENDS. - * Remove this when we move to pacman3 repos. - */ } else if(!strcmp(line, "%REPLACES%")) { /* the REPLACES tag is special -- it only appears in sync repositories, * not the local one. */ @@ -434,17 +430,20 @@ int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq) while(fgets(line, 512, fp) && strlen(_alpm_strtrim(line))) { info->provides = alpm_list_add(info->provides, strdup(line)); } - } else if(!strcmp(line, "%REPLACES%")) { - /* the REPLACES tag is special -- it only appears in sync repositories, - * not the local one. */ + } + /* TODO: we were going to move these things here, but it should wait. + * A better change would be to figure out how to restructure the DB. */ + /* else if(!strcmp(line, "%REPLACES%")) { + * the REPLACES tag is special -- it only appears in sync repositories, + * not the local one. * while(fgets(line, 512, fp) && strlen(_alpm_strtrim(line))) { info->replaces = alpm_list_add(info->replaces, strdup(line)); - } + } } else if(!strcmp(line, "%FORCE%")) { - /* FORCE tag only appears in sync repositories, - * not the local one. */ + * FORCE tag only appears in sync repositories, + * not the local one. * info->force = 1; - } + } */ } fclose(fp); fp = NULL; diff --git a/lib/libalpm/package.c b/lib/libalpm/package.c index fbacda5e..91fb3333 100644 --- a/lib/libalpm/package.c +++ b/lib/libalpm/package.c @@ -178,7 +178,8 @@ int _alpm_pkg_cmp(const void *p1, const void *p2) } /* Parses the package description file for the current package - * + * TODO: this should ALL be in a backend interface (be_files), we should + * be dealing with the abstracted concepts only in this file * Returns: 0 on success, 1 on error * */ diff --git a/pactest/pmdb.py b/pactest/pmdb.py index ba707bd8..3720bcea 100755 --- a/pactest/pmdb.py +++ b/pactest/pmdb.py @@ -193,11 +193,12 @@ class pmdb: pkg.conflicts = _getsection(fd) elif line == "%PROVIDES%": pkg.provides = _getsection(fd) - elif line == "%REPLACES%": - pkg.replaces = _getsection(fd) - elif line == "%FORCE%": - fd.readline() - pkg.force = 1 + # TODO this was going to be changed, but isn't anymore + #elif line == "%REPLACES%": + # pkg.replaces = _getsection(fd) + #elif line == "%FORCE%": + # fd.readline() + # pkg.force = 1 fd.close() pkg.checksum["depends"] = getmd5sum(filename) pkg.mtime["depends"] = getmtime(filename) @@ -253,6 +254,8 @@ class pmdb: else: if pkg.replaces: data.append(_mksection("REPLACES", pkg.replaces)) + if pkg.force: + data.append(_mksection("FORCE", "")) if pkg.csize: data.append(_mksection("CSIZE", pkg.csize)) if pkg.md5sum: @@ -293,11 +296,11 @@ class pmdb: data.append(_mksection("CONFLICTS", pkg.conflicts)) if pkg.provides: data.append(_mksection("PROVIDES", pkg.provides)) - if not self.treename == "local": - if pkg.replaces: - data.append(_mksection("REPLACES", pkg.replaces)) - if pkg.force: - data.append(_mksection("FORCE", "")) + #if self.treename != "local": + # if pkg.replaces: + # data.append(_mksection("REPLACES", pkg.replaces)) + # if pkg.force: + # data.append(_mksection("FORCE", "")) if data: data.append("") filename = os.path.join(path, "depends") @@ -354,7 +357,7 @@ class pmdb: and oldpkg.mtime[key] == (0, 0, 0) \ and pkg.mtime[key] == (0, 0, 0): continue - if not oldpkg.mtime[key][1:3] == pkg.mtime[key][1:3]: + if oldpkg.mtime[key][1:3] != pkg.mtime[key][1:3]: modified += 1 return modified diff --git a/pactest/pmenv.py b/pactest/pmenv.py index 3a2ecb14..56af2e9a 100755 --- a/pactest/pmenv.py +++ b/pactest/pmenv.py @@ -104,11 +104,16 @@ class pmenv: fail = test.result["fail"] rules = len(test.rules) if fail == 0: - print "[PASSED]", + result = "[PASSED]" else: - print "[FAILED]", + result = "[FAILED]" + print result, print "%s Rules: OK = %2u FAIL = %2u SKIP = %2u" \ - % (test.testname.ljust(32), success, fail, rules - (success + fail)) + % (test.testname.ljust(32), success, fail, \ + rules - (success + fail)) + if fail != 0: + # print test description if test failed + print " ", test.description print "=========="*8 print "Results" diff --git a/pactest/pmfile.py b/pactest/pmfile.py index 71a0cd7c..99b14a8b 100755 --- a/pactest/pmfile.py +++ b/pactest/pmfile.py @@ -52,8 +52,8 @@ class pmfile: vprint("\t\told: %s / %s" % (self.checksum, self.mtime)) vprint("\t\tnew: %s / %s" % (checksum, mtime)) - if not self.checksum == checksum \ - or not (self.mtime[1], self.mtime[2]) == (mtime[1], mtime[2]): + if self.checksum != checksum \ + or (self.mtime[1], self.mtime[2]) != (mtime[1], mtime[2]): retval = 1 return retval diff --git a/pactest/pmrule.py b/pactest/pmrule.py index 33a29f0e..dc04cf1a 100755 --- a/pactest/pmrule.py +++ b/pactest/pmrule.py @@ -86,7 +86,7 @@ class pmrule: if not value in newpkg.requiredby: success = 0 elif case == "REASON": - if not newpkg.reason == int(value): + if newpkg.reason != int(value): success = 0 elif case == "FILES": if not value in newpkg.files: diff --git a/pactest/util.py b/pactest/util.py index a633e869..2b384098 100755 --- a/pactest/util.py +++ b/pactest/util.py @@ -62,7 +62,7 @@ def getfilename(name): """ filename = "" link = "" - if not name.find(" -> ") == -1: + if name.find(" -> ") != -1: filename, link = name.split(" -> ") elif name[-1] == "*": filename = name.rstrip("*") @@ -80,7 +80,7 @@ def mkfile(name, data = ""): link = "" filename = "" - if not name.find(" -> ") == -1: + if name.find(" -> ") != -1: islink = 1 filename, link = name.split(" -> ") elif name[-1] == "*": @@ -181,8 +181,9 @@ def mkcfgfile(filename, root, option, db): # Repositories data.extend(["[%s]\n" \ "server = file://%s\n" \ - % (value.treename, os.path.join(root, SYNCREPO, value.treename)) \ - for key, value in db.iteritems() if not key == "local"]) + % (value.treename, \ + os.path.join(root, SYNCREPO, value.treename)) \ + for key, value in db.iteritems() if key != "local"]) mkfile(os.path.join(root, filename), "\n".join(data))