James Rosten <seinfeld90@gmail.com>

* Two new pactest test cases
* Fix some "required by" / "requires" output by unifying all "dependency types"
  to a single value (PM_DEP_TYPE_DEPEND)
This commit is contained in:
Aaron Griffin 2007-03-19 04:23:45 +00:00
parent cf6f184243
commit bd55cf548c
5 changed files with 40 additions and 7 deletions

View File

@ -371,7 +371,6 @@ typedef enum _pmdepmod_t {
typedef enum _pmdeptype_t {
PM_DEP_TYPE_DEPEND = 1,
PM_DEP_TYPE_REQUIRED,
PM_DEP_TYPE_CONFLICT
} pmdeptype_t;

View File

@ -288,7 +288,7 @@ alpm_list_t *_alpm_checkdeps(pmtrans_t *trans, pmdb_t *db, pmtranstype_t op,
if(!satisfied) {
_alpm_log(PM_LOG_DEBUG, _("checkdeps: updated '%s' won't satisfy a dependency of '%s'"),
alpm_pkg_get_name(oldpkg), alpm_pkg_get_name(p));
miss = _alpm_depmiss_new(p->name, PM_DEP_TYPE_REQUIRED, depend->mod,
miss = _alpm_depmiss_new(p->name, PM_DEP_TYPE_DEPEND, depend->mod,
depend->name, depend->version);
if(!_alpm_depmiss_isin(miss, baddeps)) {
baddeps = alpm_list_add(baddeps, miss);
@ -408,7 +408,7 @@ alpm_list_t *_alpm_checkdeps(pmtrans_t *trans, pmdb_t *db, pmtranstype_t op,
if(!found) {
_alpm_log(PM_LOG_DEBUG, _("checkdeps: found %s as required by %s"),
reqname, alpm_pkg_get_name(tp));
miss = _alpm_depmiss_new(alpm_pkg_get_name(tp), PM_DEP_TYPE_REQUIRED,
miss = _alpm_depmiss_new(alpm_pkg_get_name(tp), PM_DEP_TYPE_DEPEND,
PM_DEP_MOD_ANY, j->data, NULL);
if(!_alpm_depmiss_isin(miss, baddeps)) {
baddeps = alpm_list_add(baddeps, miss);

19
pactest/tests/sync1000.py Normal file
View File

@ -0,0 +1,19 @@
# If someone else can come up with a better name, please do so
self.description = "stonecrest's problem"
sp = pmpkg("dummy", "1.1-1")
sp.requiredby = [ "pkg" ]
self.addpkg2db("sync", sp)
lp1 = pmpkg("dummy", "1.0-1")
lp1.requiredby = [ "pkg" ]
self.addpkg2db("local", lp1)
lp2 = pmpkg("pkg")
lp2.depends = [ "dummy=1.0" ]
self.addpkg2db("local", lp2)
self.args = "-Su"
self.addrule("!PACMAN_RETCODE=0")
self.addrule("!PKG_VERSION=dummy|1.1-1")

View File

@ -0,0 +1,17 @@
self.description = "Upgrade a package that's older version is required by another package."
lp1 = pmpkg("pkg1")
lp1.depends = [ "pkg2=1.0" ]
self.addpkg2db("local", lp1)
lp2 = pmpkg("pkg2", "1.0-1")
lp2.requiredby = [ "pkg1" ]
self.addpkg2db("local", lp2)
p = pmpkg("pkg2", "1.1-1")
self.addpkg(p)
self.args = "-U %s" % p.filename()
self.addrule("PACMAN_RETCODE=1")
self.addrule("!PKG_VERSION=pkg2|1.1")

View File

@ -618,10 +618,8 @@ int pacman_sync(alpm_list_t *targets)
case PM_ERR_UNSATISFIED_DEPS:
for(i = data; i; i = alpm_list_next(i)) {
pmdepmissing_t *miss = alpm_list_getdata(i);
MSG(NL, ":: %s %s %s", alpm_dep_get_target(miss),
alpm_dep_get_type(miss) == PM_DEP_TYPE_DEPEND ?
_("requires") : _("is required by"),
alpm_dep_get_name(miss));
MSG(NL, ":: %s %s %s", alpm_dep_get_target(miss), _("requires"),
alpm_dep_get_name(miss));
switch(alpm_dep_get_mod(miss)) {
case PM_DEP_MOD_ANY:
break;