1.1 --- a/sets.xml Fri Feb 15 15:08:38 2008 -0500
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,24 +0,0 @@
1.4 -<test-sets>
1.5 -
1.6 - <set name="b">
1.7 - <package name="bash" version="3.2-18.fc8">
1.8 - <requires name="libc.so.6"/>
1.9 - <requires name="config(bash)" eq="3.2-18.fc8"/>
1.10 - <provides name="bash" eq="3.2-18.fc8"/>
1.11 - <file name="/bin"/>
1.12 - <file name="/bin/bash"/>
1.13 - </package>
1.14 - </set>
1.15 -
1.16 - <set name="c">
1.17 - <package name="nss" version="1.8-fc10">
1.18 - <provides name="nss" eq="1.8-fc10"/>
1.19 - <file name="/bin/nss"/>
1.20 - </package>
1.21 -
1.22 - <package name="x" version="2">
1.23 - <conflicts name="y" eq="1.1"/>
1.24 - </package>
1.25 - </set>
1.26 -
1.27 -</test-sets>
2.1 --- a/test-driver.c Fri Feb 15 15:08:38 2008 -0500
2.2 +++ b/test-driver.c Fri Feb 15 15:09:37 2008 -0500
2.3 @@ -50,17 +50,16 @@
2.4 close(fd);
2.5 }
2.6
2.7 -struct test_set {
2.8 - char *name;
2.9 - struct razor_set *set;
2.10 - struct test_set *next;
2.11 -};
2.12 +struct test_context {
2.13 + struct razor_set *system_set, *repo_set, *result_set;
2.14
2.15 -struct test_context {
2.16 struct razor_importer *importer;
2.17 - struct test_set *sets;
2.18 - struct razor_package_iterator *package_iterator;
2.19 - struct razor_property_iterator *property_iterator;
2.20 + struct razor_set **importer_set;
2.21 +
2.22 + char *install_pkgs[3], *remove_pkgs[3];
2.23 + int n_install_pkgs, n_remove_pkgs;
2.24 +
2.25 + int in_result, result_errors;
2.26 };
2.27
2.28 static void
2.29 @@ -82,234 +81,267 @@
2.30 va_end(ap);
2.31 }
2.32
2.33 -static void
2.34 -parse_property(struct test_context *ctx, const char **atts,
2.35 - enum razor_property_type type)
2.36 +static enum razor_version_relation
2.37 +parse_relation (const char *rel_str)
2.38 {
2.39 - const char *name = NULL, *version = NULL;
2.40 -
2.41 - get_atts(atts, "name", &name, "eq", &version, NULL);
2.42 -
2.43 - if (name == NULL) {
2.44 - fprintf(stderr, "no name specified for property\n");
2.45 - exit(-1);
2.46 - }
2.47 -
2.48 - razor_importer_add_property(ctx->importer, name,
2.49 - RAZOR_VERSION_EQUAL, version, type);
2.50 + if (!rel_str)
2.51 + return -1;
2.52 + if (rel_str[0] == 'l')
2.53 + return rel_str[1] == 'e' ? RAZOR_VERSION_LESS_OR_EQUAL : RAZOR_VERSION_LESS;
2.54 + else if (rel_str[0] == 'g')
2.55 + return rel_str[1] == 'e' ? RAZOR_VERSION_GREATER_OR_EQUAL : RAZOR_VERSION_GREATER;
2.56 + else if (rel_str[0] == 'e' || rel_str[1] == 'q')
2.57 + return RAZOR_VERSION_EQUAL;
2.58 + else
2.59 + return -1;
2.60 }
2.61
2.62 static void
2.63 -start_set_element(void *data, const char *element, const char **atts)
2.64 +start_test(struct test_context *ctx, const char **atts)
2.65 {
2.66 - struct test_context *ctx = data;
2.67 - struct test_set *set;
2.68 - const char *name, *version;
2.69 + const char *name = NULL;
2.70
2.71 - if (strcmp(element, "set") == 0) {
2.72 - get_atts(atts, "name", &name, NULL);
2.73 - ctx->importer = razor_importer_new();
2.74 - set = malloc(sizeof *set);
2.75 - set->name = strdup(name);
2.76 - set->next = ctx->sets;
2.77 - ctx->sets = set;
2.78 - } else if (strcmp(element, "package") == 0) {
2.79 - get_atts(atts, "name", &name, "version", &version, NULL);
2.80 - razor_importer_begin_package(ctx->importer, name, version);
2.81 - } else if (strcmp(element, "requires") == 0) {
2.82 - parse_property(ctx, atts, RAZOR_PROPERTY_REQUIRES);
2.83 - } else if (strcmp(element, "provides") == 0) {
2.84 - parse_property(ctx, atts, RAZOR_PROPERTY_PROVIDES);
2.85 - } else if (strcmp(element, "obsoletes") == 0) {
2.86 - parse_property(ctx, atts, RAZOR_PROPERTY_OBSOLETES);
2.87 - } else if (strcmp(element, "conflicts") == 0) {
2.88 - parse_property(ctx, atts, RAZOR_PROPERTY_CONFLICTS);
2.89 - } else if (strcmp(element, "file") == 0) {
2.90 - get_atts(atts, "name", &name, NULL);
2.91 - razor_importer_add_file(ctx->importer, name);
2.92 - } else if (strcmp(element, "dir") == 0) {
2.93 - get_atts(atts, "name", &name, NULL);
2.94 - razor_importer_add_file(ctx->importer, name);
2.95 + get_atts(atts, "name", &name, NULL);
2.96 + if (!name) {
2.97 + fprintf(stderr, "Test with no name\n");
2.98 + exit(1);
2.99 + }
2.100 + printf("%s\n", name);
2.101 +}
2.102 +
2.103 +static void
2.104 +end_test(struct test_context *ctx)
2.105 +{
2.106 + if (ctx->system_set) {
2.107 + razor_set_destroy(ctx->system_set);
2.108 + ctx->system_set = NULL;
2.109 + }
2.110 + if (ctx->repo_set) {
2.111 + razor_set_destroy(ctx->repo_set);
2.112 + ctx->repo_set = NULL;
2.113 + }
2.114 + if (ctx->result_set) {
2.115 + razor_set_destroy(ctx->result_set);
2.116 + ctx->result_set = NULL;
2.117 }
2.118 }
2.119
2.120 static void
2.121 -end_set_element (void *data, const char *name)
2.122 +start_set(struct test_context *ctx, const char **atts)
2.123 {
2.124 - struct test_context *ctx = data;
2.125 + const char *name = NULL;
2.126
2.127 - if (strcmp(name, "set") == 0) {
2.128 - ctx->sets->set = razor_importer_finish(ctx->importer);
2.129 - } else if (strcmp(name, "package") == 0) {
2.130 - razor_importer_finish_package(ctx->importer);
2.131 - }
2.132 -}
2.133 -
2.134 -static struct razor_set *
2.135 -lookup_set(struct test_context *ctx, const char *name)
2.136 -{
2.137 - struct test_set *set;
2.138 -
2.139 - for (set = ctx->sets; set != NULL; set = set->next) {
2.140 - if (strcmp(set->name, name) == 0)
2.141 - return set->set;
2.142 - }
2.143 -
2.144 - return NULL;
2.145 -}
2.146 -
2.147 -static void
2.148 -verify_begin(struct test_context *ctx, const char **atts)
2.149 -{
2.150 - struct razor_set *set;
2.151 - const char *type, *name;
2.152 -
2.153 - get_atts(atts, "type", &type, "set", &name, NULL);
2.154 - set = lookup_set(ctx, name);
2.155 - if (set == NULL) {
2.156 - fprintf(stderr, "set %s not found\n", name);
2.157 - exit(-1);
2.158 - }
2.159 -
2.160 - if (strcmp(type, "packages") == 0) {
2.161 - ctx->package_iterator =
2.162 - razor_package_iterator_create(set);
2.163 - } else if (strcmp(type, "properties") == 0) {
2.164 - ctx->property_iterator =
2.165 - razor_property_iterator_create(set, NULL);
2.166 - } else {
2.167 - fprintf(stderr,
2.168 - "unknown compare type \"%s\"\n", type);
2.169 - exit(-1);
2.170 + ctx->importer = razor_importer_new();
2.171 + get_atts(atts, "name", &name, NULL);
2.172 + if (!name)
2.173 + ctx->importer_set = &ctx->result_set;
2.174 + else if (!strcmp(name, "system"))
2.175 + ctx->importer_set = &ctx->system_set;
2.176 + else if (!strcmp(name, "repo"))
2.177 + ctx->importer_set = &ctx->repo_set;
2.178 + else {
2.179 + fprintf(stderr, " bad set name '%s'\n", name);
2.180 + exit(1);
2.181 }
2.182 }
2.183
2.184 static void
2.185 -verify_end(struct test_context *ctx)
2.186 +end_set(struct test_context *ctx)
2.187 {
2.188 - struct razor_package *package;
2.189 - struct razor_property *property;
2.190 - const char *name, *version;
2.191 - enum razor_property_type type;
2.192 - enum razor_version_relation relation;
2.193 + *ctx->importer_set = razor_importer_finish(ctx->importer);
2.194 + ctx->importer = NULL;
2.195 +}
2.196
2.197 - if (ctx->package_iterator != NULL) {
2.198 - if (razor_package_iterator_next(ctx->package_iterator,
2.199 - &package,
2.200 - &name, &version)) {
2.201 - fprintf(stderr, "too few packages in set\n");
2.202 - exit(-1);
2.203 - }
2.204 -
2.205 - razor_package_iterator_destroy(ctx->package_iterator);
2.206 - ctx->package_iterator = NULL;
2.207 +static void
2.208 +start_package(struct test_context *ctx, const char **atts)
2.209 +{
2.210 + const char *name = NULL, *version = NULL, *arch = NULL;
2.211 +
2.212 + get_atts(atts, "name", &name, "version", &version, "arch", &arch, NULL);
2.213 + if (!name) {
2.214 + fprintf(stderr, " package with no name\n");
2.215 + exit(1);
2.216 }
2.217
2.218 - if (ctx->property_iterator != NULL) {
2.219 - if (razor_property_iterator_next(ctx->property_iterator,
2.220 - &property,
2.221 - &name, &relation, &version,
2.222 - &type)) {
2.223 - fprintf(stderr, "too few properties in set\n");
2.224 - exit(-1);
2.225 + razor_importer_begin_package(ctx->importer, name, version);
2.226 + razor_importer_add_property(ctx->importer, name,
2.227 + RAZOR_VERSION_EQUAL, version,
2.228 + RAZOR_PROPERTY_PROVIDES);
2.229 +}
2.230 +
2.231 +static void
2.232 +end_package(struct test_context *ctx)
2.233 +{
2.234 + razor_importer_finish_package(ctx->importer);
2.235 +}
2.236 +
2.237 +static void
2.238 +start_property(struct test_context *ctx, enum razor_property_type type, const char **atts)
2.239 +{
2.240 + const char *name = NULL, *rel_str = NULL, *version = NULL;
2.241 + enum razor_version_relation rel;
2.242 +
2.243 + get_atts(atts, "name", &name, "rel", &rel_str, "version", &version, NULL);
2.244 + if (name == NULL) {
2.245 + fprintf(stderr, " no name specified for property\n");
2.246 + exit(1);
2.247 + }
2.248 + if (version) {
2.249 + rel = parse_relation(rel_str);
2.250 + if (rel == -1) {
2.251 + fprintf(stderr, " bad or missing version relation for property %s\n", name);
2.252 + exit(1);
2.253 }
2.254 + } else
2.255 + rel = RAZOR_VERSION_EQUAL;
2.256 +
2.257 + razor_importer_add_property(ctx->importer, name,
2.258 + rel, version, type);
2.259 +}
2.260
2.261 - razor_property_iterator_destroy(ctx->property_iterator);
2.262 - ctx->property_iterator = NULL;
2.263 +static void
2.264 +start_transaction(struct test_context *ctx, const char **atts)
2.265 +{
2.266 + ctx->n_install_pkgs = 0;
2.267 + ctx->n_remove_pkgs = 0;
2.268 +}
2.269 +
2.270 +static void
2.271 +end_transaction(struct test_context *ctx)
2.272 +{
2.273 + /* FIXME: removes */
2.274 + ctx->system_set = razor_set_update(ctx->system_set,
2.275 + ctx->repo_set,
2.276 + ctx->n_install_pkgs,
2.277 + (const char **)ctx->install_pkgs);
2.278 +
2.279 + while (ctx->n_install_pkgs--)
2.280 + free(ctx->install_pkgs[ctx->n_install_pkgs]);
2.281 + while (ctx->n_remove_pkgs--)
2.282 + free(ctx->remove_pkgs[ctx->n_remove_pkgs]);
2.283 +}
2.284 +
2.285 +static void
2.286 +start_install_or_update(struct test_context *ctx, const char **atts)
2.287 +{
2.288 + const char *name = NULL;
2.289 +
2.290 + get_atts(atts, "name", &name, NULL);
2.291 + if (!name) {
2.292 + fprintf(stderr, " install/update with no name\n");
2.293 + exit(1);
2.294 + }
2.295 +
2.296 + ctx->install_pkgs[ctx->n_install_pkgs++] = strdup(name);
2.297 +}
2.298 +
2.299 +static void
2.300 +start_remove(struct test_context *ctx, const char **atts)
2.301 +{
2.302 + const char *name = NULL;
2.303 +
2.304 + get_atts(atts, "name", &name, NULL);
2.305 + if (!name) {
2.306 + fprintf(stderr, " remove with no name\n");
2.307 + exit(1);
2.308 + }
2.309 +
2.310 + ctx->remove_pkgs[ctx->n_remove_pkgs++] = strdup(name);
2.311 +}
2.312 +
2.313 +static void
2.314 +start_result(struct test_context *ctx, const char **atts)
2.315 +{
2.316 + ctx->in_result = 1;
2.317 +}
2.318 +
2.319 +static void
2.320 +diff_callback(const char *name,
2.321 + const char *old_version, const char *new_version,
2.322 + void *data)
2.323 +{
2.324 + struct test_context *ctx = data;
2.325 +
2.326 + ctx->result_errors++;
2.327 + if (old_version) {
2.328 + fprintf(stderr, " result set should not contain %s %s\n",
2.329 + name, old_version);
2.330 + } else {
2.331 + fprintf(stderr, " result set should contain %s %s\n",
2.332 + name, new_version);
2.333 }
2.334 }
2.335
2.336 static void
2.337 -verify_package(struct test_context *ctx, const char **atts)
2.338 +end_result(struct test_context *ctx)
2.339 {
2.340 - struct razor_package *package;
2.341 - const char *name, *version, *ref_name, *ref_version;
2.342 + ctx->in_result = 0;
2.343
2.344 - if (ctx->package_iterator == NULL) {
2.345 - fprintf(stderr,
2.346 - "\"package\" element seen, "
2.347 - "but not in package verify mode\n");
2.348 - exit(-1);
2.349 + /* FIXME */
2.350 + if (ctx->n_remove_pkgs) {
2.351 + printf (" (ignoring because of unimplemented remove)\n");
2.352 + return;
2.353 }
2.354
2.355 - get_atts(atts, "name", &ref_name, "version", &ref_version, NULL);
2.356 - if (!razor_package_iterator_next(ctx->package_iterator,
2.357 - &package, &name, &version)) {
2.358 - fprintf(stderr, "too many packages in set\n");
2.359 - exit(-1);
2.360 + if (ctx->system_set && ctx->result_set) {
2.361 + ctx->result_errors = 0;
2.362 + razor_set_diff(ctx->system_set, ctx->result_set,
2.363 + diff_callback, ctx);
2.364 + if (ctx->result_errors)
2.365 + exit(1);
2.366 }
2.367 -
2.368 - if (strcmp(name, ref_name) != 0 || strcmp(version, ref_version) != 0) {
2.369 - fprintf(stderr,
2.370 - "package mismatch; expected %s-%s, got %s-%s\n",
2.371 - ref_name, ref_version, name, version);
2.372 - exit(-1);
2.373 - }
2.374 +
2.375 }
2.376
2.377 static void
2.378 -verify_property(struct test_context *ctx,
2.379 - enum razor_property_type ref_type, const char **atts)
2.380 +start_unsatisfied(struct test_context *ctx, const char **atts)
2.381 {
2.382 - struct razor_property *property;
2.383 - const char *name, *version, *ref_name, *ref_version;
2.384 - enum razor_property_type type;
2.385 - enum razor_version_relation relation;
2.386 - int same_version;
2.387 + /* FIXME */
2.388 + fprintf(stderr, "Can't handle <unsatisfied>\n");
2.389 + exit(1);
2.390 +}
2.391
2.392 - if (ctx->property_iterator == NULL) {
2.393 - fprintf(stderr,
2.394 - "\"requires/provides\" element seen, "
2.395 - "but not in property verify mode\n");
2.396 - exit(-1);
2.397 - }
2.398 -
2.399 - get_atts(atts, "name", &ref_name, "eq", &ref_version, NULL);
2.400 - if (!razor_property_iterator_next(ctx->property_iterator, &property,
2.401 - &name, &relation, &version, &type)) {
2.402 - fprintf(stderr, "too many properties in set\n");
2.403 - exit(-1);
2.404 - }
2.405 -
2.406 - if (version != NULL && ref_version != NULL)
2.407 - same_version = strcmp(version, ref_version) == 0;
2.408 - else if (version == NULL && ref_version == NULL)
2.409 - same_version = 1;
2.410 - else
2.411 - same_version = 0;
2.412 -
2.413 - if (strcmp(name, ref_name) != 0 || !same_version || type != ref_type) {
2.414 - fprintf(stderr,
2.415 - "property mismatch; expected %s-%s/%d, got %s-%s/%d\n",
2.416 - ref_name, ref_version, ref_type,
2.417 - name, version, type);
2.418 - exit(-1);
2.419 - }
2.420 +static void
2.421 +end_unsatisfied(struct test_context *ctx)
2.422 +{
2.423 }
2.424
2.425 static void
2.426 start_test_element(void *data, const char *element, const char **atts)
2.427 {
2.428 struct test_context *ctx = data;
2.429 - const char *name;
2.430
2.431 - if (strcmp(element, "import") == 0) {
2.432 - get_atts(atts, "file", &name, NULL);
2.433 - parse_xml_file(name, start_set_element, end_set_element, ctx);
2.434 - } else if (strcmp(element, "update") == 0) {
2.435 - /* run update to create new set */
2.436 - } else if (strcmp(element, "verify") == 0) {
2.437 - verify_begin(ctx, atts);
2.438 + if (strcmp(element, "tests") == 0) {
2.439 + ;
2.440 + } else if (strcmp(element, "test") == 0) {
2.441 + start_test(ctx, atts);
2.442 + } else if (strcmp(element, "set") == 0) {
2.443 + start_set(ctx, atts);
2.444 + } else if (strcmp(element, "transaction") == 0) {
2.445 + start_transaction(ctx, atts);
2.446 + } else if (strcmp(element, "install") == 0) {
2.447 + start_install_or_update(ctx, atts);
2.448 + } else if (strcmp(element, "install") == 0) {
2.449 + start_install_or_update(ctx, atts);
2.450 + } else if (strcmp(element, "remove") == 0) {
2.451 + start_remove(ctx, atts);
2.452 + } else if (strcmp(element, "result") == 0) {
2.453 + start_result(ctx, atts);
2.454 + } else if (strcmp(element, "unsatisfied") == 0) {
2.455 + start_unsatisfied(ctx, atts);
2.456 } else if (strcmp(element, "package") == 0) {
2.457 - verify_package(ctx, atts);
2.458 + start_package(ctx, atts);
2.459 } else if (strcmp(element, "requires") == 0) {
2.460 - verify_property(ctx, RAZOR_PROPERTY_REQUIRES, atts);
2.461 + start_property(ctx, RAZOR_PROPERTY_REQUIRES, atts);
2.462 } else if (strcmp(element, "provides") == 0) {
2.463 - verify_property(ctx, RAZOR_PROPERTY_PROVIDES, atts);
2.464 + start_property(ctx, RAZOR_PROPERTY_PROVIDES, atts);
2.465 } else if (strcmp(element, "conflicts") == 0) {
2.466 - verify_property(ctx, RAZOR_PROPERTY_CONFLICTS, atts);
2.467 + start_property(ctx, RAZOR_PROPERTY_CONFLICTS, atts);
2.468 } else if (strcmp(element, "obsoletes") == 0) {
2.469 - verify_property(ctx, RAZOR_PROPERTY_OBSOLETES, atts);
2.470 + start_property(ctx, RAZOR_PROPERTY_OBSOLETES, atts);
2.471 + } else {
2.472 + fprintf(stderr, "Unrecognized element '%s'\n", element);
2.473 + exit(1);
2.474 }
2.475 }
2.476
2.477 @@ -318,8 +350,19 @@
2.478 {
2.479 struct test_context *ctx = data;
2.480
2.481 - if (strcmp(element, "verify") == 0)
2.482 - verify_end(ctx);
2.483 + if (strcmp(element, "test") == 0) {
2.484 + end_test(ctx);
2.485 + } else if (strcmp(element, "set") == 0) {
2.486 + end_set(ctx);
2.487 + } else if (strcmp(element, "package") == 0) {
2.488 + end_package(ctx);
2.489 + } else if (strcmp(element, "transaction") == 0) {
2.490 + end_transaction(ctx);
2.491 + } else if (strcmp(element, "result") == 0) {
2.492 + end_result(ctx);
2.493 + } else if (strcmp(element, "unsatisfied") == 0) {
2.494 + end_unsatisfied(ctx);
2.495 + }
2.496 }
2.497
2.498 int main(int argc, char *argv[])
3.1 --- a/test.xml Fri Feb 15 15:08:38 2008 -0500
3.2 +++ b/test.xml Fri Feb 15 15:09:37 2008 -0500
3.3 @@ -1,16 +1,852 @@
3.4 -<test title="gah">
3.5 +<tests>
3.6
3.7 - <import file="sets.xml"/>
3.8 + <test name="testEmpty">
3.9 + <set name="system"/>
3.10 + <set name="repo">
3.11 + <package name="zsh" version="1-1" arch="i386"/>
3.12 + </set>
3.13 + <transaction>
3.14 + <install name="zsh"/>
3.15 + <remove name="zsh"/>
3.16 + </transaction>
3.17 + <result>
3.18 + <set/>
3.19 + </result>
3.20 + </test>
3.21
3.22 - <update name="c" from="a" to="b"/>
3.23 + <test name="testInstallSinglePackageNoRequires">
3.24 + <set name="system"/>
3.25 + <set name="repo">
3.26 + <package name="zsh" version="1-1" arch="i386"/>
3.27 + </set>
3.28 + <transaction>
3.29 + <install name="zsh"/>
3.30 + </transaction>
3.31 + <result>
3.32 + <set>
3.33 + <package name="zsh" version="1-1" arch="i386"/>
3.34 + </set>
3.35 + </result>
3.36 + </test>
3.37
3.38 - <verify set="b" type="packages">
3.39 - <package name="bash" version="3.2-18.fc8"/>
3.40 - </verify>
3.41 + <test name="testInstallSinglePackageRequireNotProvided">
3.42 + <set name="system"/>
3.43 + <set name="repo">
3.44 + <package name="zsh" version="1-1" arch="i386">
3.45 + <requires name="zip"/>
3.46 + </package>
3.47 + </set>
3.48 + <transaction>
3.49 + <install name="zsh"/>
3.50 + </transaction>
3.51 + <result>
3.52 + <unsatisfiable>
3.53 + <requires name="zip"/>
3.54 + </unsatisfiable>
3.55 + </result>
3.56 + </test>
3.57
3.58 - <verify set="c" type="properties">
3.59 - <provides name="nss" eq="1.8-fc10"/>
3.60 - <conflicts name="y" eq="1.1"/>
3.61 - </verify>
3.62 + <test name="testInstallSinglePackageRequireInstalled">
3.63 + <set name="system">
3.64 + <package name="zip" version="1-1" arch="i386"/>
3.65 + </set>
3.66 + <set name="repo">
3.67 + <package name="zsh" version="1-1" arch="i386">
3.68 + <requires name="zip"/>
3.69 + </package>
3.70 + </set>
3.71 + <transaction>
3.72 + <install name="zsh"/>
3.73 + </transaction>
3.74 + <result>
3.75 + <set>
3.76 + <package name="zip" version="1-1" arch="i386"/>
3.77 + <package name="zsh" version="1-1" arch="i386"/>
3.78 + </set>
3.79 + </result>
3.80 + </test>
3.81
3.82 -</test>
3.83 + <test name="testInstallSinglePackageRequireInstalledRequireNotProvided">
3.84 + <set name="system">
3.85 + <package name="zip" version="1-2" arch="i386">
3.86 + <requires name="zap"/>
3.87 + </package>
3.88 + </set>
3.89 + <set name="repo">
3.90 + <package name="zsh" version="1-1" arch="i386">
3.91 + <requires name="zip"/>
3.92 + </package>
3.93 + </set>
3.94 + <transaction>
3.95 + <install name="zsh"/>
3.96 + </transaction>
3.97 + <result>
3.98 + <unsatisfiable>
3.99 + <requires name="zap"/>
3.100 + </unsatisfiable>
3.101 + </result>
3.102 + </test>
3.103 +
3.104 + <test name="testInstallSinglePackageRequireInstalledRequireInstall">
3.105 + <set name="system">
3.106 + <package name="zip" version="1-3" arch="i386">
3.107 + <requires name="zap"/>
3.108 + </package>
3.109 + </set>
3.110 + <set name="repo">
3.111 + <package name="zsh" version="1-1" arch="i386">
3.112 + <requires name="zip"/>
3.113 + </package>
3.114 + <package name="zap" version="1-2" arch="i386"/>
3.115 + </set>
3.116 + <transaction>
3.117 + <install name="zsh"/>
3.118 + <install name="zap"/>
3.119 + </transaction>
3.120 + <result>
3.121 + <set>
3.122 + <package name="zap" version="1-2" arch="i386"/>
3.123 + <package name="zip" version="1-3" arch="i386"/>
3.124 + <package name="zsh" version="1-1" arch="i386"/>
3.125 + </set>
3.126 + </result>
3.127 + </test>
3.128 +
3.129 + <test name="testInstallSinglePackageRequireVer1NotProvided">
3.130 + <set name="system">
3.131 + <package name="zip" version="1.0-2" arch="i386"/>
3.132 + </set>
3.133 + <set name="repo">
3.134 + <package name="zsh" version="1-1" arch="i386">
3.135 + <requires name="zip" relation="EQ" version="1.3-2"/>
3.136 + </package>
3.137 + </set>
3.138 + <transaction>
3.139 + <install name="zsh"/>
3.140 + </transaction>
3.141 + <result>
3.142 + <unsatisfiable>
3.143 + <requires name="zip" relation="EQ" version="1.3-2"/>
3.144 + </unsatisfiable>
3.145 + </result>
3.146 + </test>
3.147 +
3.148 + <test name="testInstallSinglePackageRequireVer1Installed">
3.149 + <set name="system">
3.150 + <package name="zip" version="1.3-2" arch="i386"/>
3.151 + </set>
3.152 + <set name="repo">
3.153 + <package name="zsh" version="1-1" arch="i386">
3.154 + <requires name="zip" relation="EQ" version="1.3-2"/>
3.155 + </package>
3.156 + </set>
3.157 + <transaction>
3.158 + <install name="zsh"/>
3.159 + </transaction>
3.160 + <result>
3.161 + <set>
3.162 + <package name="zip" version="1.3-2" arch="i386"/>
3.163 + <package name="zsh" version="1-1" arch="i386"/>
3.164 + </set>
3.165 + </result>
3.166 + </test>
3.167 +
3.168 + <test name="testInstallSinglePackageRequireVer2NotProvided">
3.169 + <set name="system">
3.170 + <package name="zip" version="1.3-2" arch="i386"/>
3.171 + </set>
3.172 + <set name="repo">
3.173 + <package name="zsh" version="1-1" arch="i386">
3.174 + <requires name="zip" relation="EQ" version="1.3-4"/>
3.175 + </package>
3.176 + </set>
3.177 + <transaction>
3.178 + <install name="zsh"/>
3.179 + </transaction>
3.180 + <result>
3.181 + <unsatisfiable>
3.182 + <requires name="zip" relation="EQ" version="1.3-4"/>
3.183 + </unsatisfiable>
3.184 + </result>
3.185 + </test>
3.186 +
3.187 + <test name="testInstallSinglePackageRequireVer2Installed">
3.188 + <set name="system">
3.189 + <package name="zip" version="1.3-4" arch="i386"/>
3.190 + </set>
3.191 + <set name="repo">
3.192 + <package name="zsh" version="1-1" arch="i386">
3.193 + <requires name="zip" relation="EQ" version="1.3-4"/>
3.194 + </package>
3.195 + </set>
3.196 + <transaction>
3.197 + <install name="zsh"/>
3.198 + </transaction>
3.199 + <result>
3.200 + <set>
3.201 + <package name="zip" version="1.3-4" arch="i386"/>
3.202 + <package name="zsh" version="1-1" arch="i386"/>
3.203 + </set>
3.204 + </result>
3.205 + </test>
3.206 +
3.207 + <test name="testInstallSinglePackageRequireVer3NotProvided">
3.208 + <set name="system">
3.209 + <package name="zip" version="0:1.3-4" arch="i386"/>
3.210 + </set>
3.211 + <set name="repo">
3.212 + <package name="zsh" version="1-1" arch="i386">
3.213 + <requires name="zip" relation="GE" version="1:1.3-4"/>
3.214 + </package>
3.215 + </set>
3.216 + <transaction>
3.217 + <install name="zsh"/>
3.218 + </transaction>
3.219 + <result>
3.220 + <unsatisfiable>
3.221 + <requires name="zip" relation="GE" version="1:1.3-4"/>
3.222 + </unsatisfiable>
3.223 + </result>
3.224 + </test>
3.225 +
3.226 + <test name="testInstallSinglePackageRequireVer3Installed">
3.227 + <set name="system">
3.228 + <package name="zip" version="2:1.3-4" arch="i386"/>
3.229 + </set>
3.230 + <set name="repo">
3.231 + <package name="zsh" version="1-1" arch="i386">
3.232 + <requires name="zip" relation="GE" version="2:1.3-4"/>
3.233 + </package>
3.234 + </set>
3.235 + <transaction>
3.236 + <install name="zsh"/>
3.237 + </transaction>
3.238 + <result>
3.239 + <set>
3.240 + <package name="zip" version="2:1.3-4" arch="i386"/>
3.241 + <package name="zsh" version="1-1" arch="i386"/>
3.242 + </set>
3.243 + </result>
3.244 + </test>
3.245 +
3.246 + <test name="testInstallSinglePackageRequireVer4NotProvided">
3.247 + <set name="system">
3.248 + <package name="zip" version="2:1.3-4" arch="i386"/>
3.249 + </set>
3.250 + <set name="repo">
3.251 + <package name="zsh" version="1-1" arch="i386">
3.252 + <requires name="zip" relation="LT" version="2:1.3-4"/>
3.253 + </package>
3.254 + </set>
3.255 + <transaction>
3.256 + <install name="zsh"/>
3.257 + </transaction>
3.258 + <result>
3.259 + <unsatisfiable>
3.260 + <requires name="zip" relation="LT" version="2:1.3-4"/>
3.261 + </unsatisfiable>
3.262 + </result>
3.263 + </test>
3.264 +
3.265 + <test name="testInstallSinglePackageRequireVer4_1Installed">
3.266 + <set name="system">
3.267 + <package name="zip" version="2:1.0-4" arch="i386"/>
3.268 + </set>
3.269 + <set name="repo">
3.270 + <package name="zsh" version="1-1" arch="i386">
3.271 + <requires name="zip" relation="LT" version="2:1.3-4"/>
3.272 + </package>
3.273 + </set>
3.274 + <transaction>
3.275 + <install name="zsh"/>
3.276 + </transaction>
3.277 + <result>
3.278 + <set>
3.279 + <package name="zip" version="2:1.0-4" arch="i386"/>
3.280 + <package name="zsh" version="1-1" arch="i386"/>
3.281 + </set>
3.282 + </result>
3.283 + </test>
3.284 +
3.285 + <test name="testInstallSinglePackageRequireVer4_2Installed">
3.286 + <set name="system">
3.287 + <package name="zip" version="2:1.3-3" arch="i386"/>
3.288 + </set>
3.289 + <set name="repo">
3.290 + <package name="zsh" version="1-1" arch="i386">
3.291 + <requires name="zip" relation="LT" version="2:1.3-4"/>
3.292 + </package>
3.293 + </set>
3.294 + <transaction>
3.295 + <install name="zsh"/>
3.296 + </transaction>
3.297 + <result>
3.298 + <set>
3.299 + <package name="zip" version="2:1.3-3" arch="i386"/>
3.300 + <package name="zsh" version="1-1" arch="i386"/>
3.301 + </set>
3.302 + </result>
3.303 + </test>
3.304 +
3.305 + <test name="testInstallSinglePackageRequireVer4_3Installed">
3.306 + <set name="system">
3.307 + <package name="zip" version="1.3-4" arch="i386"/>
3.308 + </set>
3.309 + <set name="repo">
3.310 + <package name="zsh" version="1-1" arch="i386">
3.311 + <requires name="zip" relation="LT" version="2:1.3-4"/>
3.312 + </package>
3.313 + </set>
3.314 + <transaction>
3.315 + <install name="zsh"/>
3.316 + </transaction>
3.317 + <result>
3.318 + <set>
3.319 + <package name="zip" version="1.3-4" arch="i386"/>
3.320 + <package name="zsh" version="1-1" arch="i386"/>
3.321 + </set>
3.322 + </result>
3.323 + </test>
3.324 +
3.325 + <test name="testInstallSinglePackageRequireVer4_4Installed">
3.326 + <set name="system">
3.327 + <package name="zip" version="1:1.3-4" arch="i386"/>
3.328 + </set>
3.329 + <set name="repo">
3.330 + <package name="zsh" version="1-1" arch="i386">
3.331 + <requires name="zip" relation="LT" version="2:1.3-4"/>
3.332 + </package>
3.333 + </set>
3.334 + <transaction>
3.335 + <install name="zsh"/>
3.336 + </transaction>
3.337 + <result>
3.338 + <set>
3.339 + <package name="zip" version="1:1.3-4" arch="i386"/>
3.340 + <package name="zsh" version="1-1" arch="i386"/>
3.341 + </set>
3.342 + </result>
3.343 + </test>
3.344 +
3.345 + <test name="testInstallSinglePackageRequireVer4_5Installed">
3.346 + <set name="system">
3.347 + <package name="zip" version="2:0.3-4" arch="i386"/>
3.348 + </set>
3.349 + <set name="repo">
3.350 + <package name="zsh" version="1-1" arch="i386">
3.351 + <requires name="zip" relation="LT" version="2:1.3-4"/>
3.352 + </package>
3.353 + </set>
3.354 + <transaction>
3.355 + <install name="zsh"/>
3.356 + </transaction>
3.357 + <result>
3.358 + <set>
3.359 + <package name="zip" version="2:0.3-4" arch="i386"/>
3.360 + <package name="zsh" version="1-1" arch="i386"/>
3.361 + </set>
3.362 + </result>
3.363 + </test>
3.364 +
3.365 + <test name="testInstallSinglePackageRequireXtraBadVer">
3.366 + <set name="system">
3.367 + <package name="zip" version="2:1.3-4" arch="i386"/>
3.368 + </set>
3.369 + <set name="repo">
3.370 + <package name="zsh" version="1-1" arch="i386">
3.371 + <requires name="zip" relation="EQ" version="2:1.3-4"/>
3.372 + <requires name="zap" relation="EQ" version="2:1.3-4"/>
3.373 + </package>
3.374 + <package name="zap" version="0:1.3-4" arch="i386"/>
3.375 + </set>
3.376 + <transaction>
3.377 + <install name="zsh"/>
3.378 + </transaction>
3.379 + <result>
3.380 + <unsatisfiable>
3.381 + <requires name="zap" relation="EQ" version="2:1.3-4"/>
3.382 + </unsatisfiable>
3.383 + </result>
3.384 + </test>
3.385 +
3.386 + <test name="testInstallSinglePackageRequireXtra">
3.387 + <set name="system">
3.388 + <package name="zip" version="2:1.3-4" arch="i386"/>
3.389 + </set>
3.390 + <set name="repo">
3.391 + <package name="zsh" version="1-1" arch="i386">
3.392 + <requires name="zip" relation="EQ" version="2:1.3-4"/>
3.393 + <requires name="zap" relation="EQ" version="4:2.6-8"/>
3.394 + </package>
3.395 + <package name="zap" version="4:2.6-8" arch="i386"/>
3.396 + </set>
3.397 + <transaction>
3.398 + <install name="zsh"/>
3.399 + </transaction>
3.400 + <result>
3.401 + <set>
3.402 + <package name="zap" version="4:2.6-8" arch="i386"/>
3.403 + <package name="zip" version="2:1.3-4" arch="i386"/>
3.404 + <package name="zsh" version="1-1" arch="i386"/>
3.405 + </set>
3.406 + </result>
3.407 + </test>
3.408 +
3.409 + <test name="testInstallSinglePackageRequireInstalledRequireXtra">
3.410 + <set name="system">
3.411 + <package name="zip" version="2:1.3-4" arch="i386">
3.412 + <requires name="zap" relation="EQ" version="4:2.6-8"/>
3.413 + </package>
3.414 + </set>
3.415 + <set name="repo">
3.416 + <package name="zsh" version="1-1" arch="i386">
3.417 + <requires name="zip" relation="EQ" version="2:1.3-4"/>
3.418 + </package>
3.419 + <package name="zap" version="4:2.6-8" arch="i386"/>
3.420 + </set>
3.421 + <transaction>
3.422 + <install name="zsh"/>
3.423 + </transaction>
3.424 + <result>
3.425 + <set>
3.426 + <package name="zip" version="2:1.3-4" arch="i386"/>
3.427 + <package name="zsh" version="1-1" arch="i386"/>
3.428 + </set>
3.429 + </result>
3.430 + </test>
3.431 +
3.432 + <test name="testInstallSinglePackageRequireUpgradeRequireXtraErr">
3.433 + <set name="system">
3.434 + <package name="zip" version="2:1.3-4" arch="i386">
3.435 + <requires name="zap" relation="EQ" version="2:1.3-3"/>
3.436 + </package>
3.437 + </set>
3.438 + <set name="repo">
3.439 + <package name="zsh" version="1-1" arch="i386">
3.440 + <requires name="zip" relation="EQ" version="4:2.6-8"/>
3.441 + </package>
3.442 + <package name="zip" version="4:2.6-8" arch="i386">
3.443 + <requires name="zap" relation="EQ" version="2:1.3-4"/>
3.444 + </package>
3.445 + <package name="zap" version="2:1.3-4" arch="i386">
3.446 + <requires name="zsh" relation="EQ" version="2:4-8"/>
3.447 + </package>
3.448 + </set>
3.449 + <transaction>
3.450 + <install name="zsh"/>
3.451 + </transaction>
3.452 + <result>
3.453 + <unsatisfiable>
3.454 + <requires name="zsh" relation="EQ" version="2:4-8"/>
3.455 + </unsatisfiable>
3.456 + </result>
3.457 + </test>
3.458 +
3.459 + <test name="testInstallSinglePackageRequireUpgradeRequireXtraOk">
3.460 + <set name="system">
3.461 + <package name="zip" version="2:1.3-4" arch="i386">
3.462 + <requires name="zap" relation="EQ" version="2:1.3-3"/>
3.463 + </package>
3.464 + </set>
3.465 + <set name="repo">
3.466 + <package name="zsh" version="1-1" arch="i386">
3.467 + <requires name="zip" relation="EQ" version="4:2.6-8"/>
3.468 + </package>
3.469 + <package name="zip" version="4:2.6-8" arch="i386">
3.470 + <requires name="zap" relation="EQ" version="2:1.3-4"/>
3.471 + </package>
3.472 + <package name="zap" version="2:1.3-4" arch="i386"/>
3.473 + </set>
3.474 + <transaction>
3.475 + <install name="zsh"/>
3.476 + </transaction>
3.477 + <result>
3.478 + <set>
3.479 + <package name="zap" version="2:1.3-4" arch="i386"/>
3.480 + <package name="zip" version="4:2.6-8" arch="i386"/>
3.481 + <package name="zsh" version="1-1" arch="i386"/>
3.482 + </set>
3.483 + </result>
3.484 + </test>
3.485 +
3.486 + <test name="testInstallSinglePackageRequireMultiXtra">
3.487 + <set name="system"/>
3.488 + <set name="repo">
3.489 + <package name="zsh" version="1-1" arch="i386">
3.490 + <requires name="zip" relation="EQ" version="4:2.6-8"/>
3.491 + </package>
3.492 + <package name="zip" version="4:2.6-8" arch="i386">
3.493 + <requires name="zap" relation="EQ" version="2:1.3-4"/>
3.494 + </package>
3.495 + <package name="zap" version="2:1.3-4" arch="i386"/>
3.496 + </set>
3.497 + <transaction>
3.498 + <install name="zsh"/>
3.499 + </transaction>
3.500 + <result>
3.501 + <set>
3.502 + <package name="zap" version="2:1.3-4" arch="i386"/>
3.503 + <package name="zip" version="4:2.6-8" arch="i386"/>
3.504 + <package name="zsh" version="1-1" arch="i386"/>
3.505 + </set>
3.506 + </result>
3.507 + </test>
3.508 +
3.509 + <test name="testInstallSinglePackageRequireInstalledMultiLib">
3.510 + <set name="system">
3.511 + <package name="zip" version="1-3" arch="i386"/>
3.512 + </set>
3.513 + <set name="repo">
3.514 + <package name="zsh" version="1-1" arch="x86_64">
3.515 + <requires name="zip"/>
3.516 + </package>
3.517 + <package name="zip" version="1-3" arch="x86_64"/>
3.518 + </set>
3.519 + <transaction>
3.520 + <install name="zsh"/>
3.521 + </transaction>
3.522 + <result>
3.523 + <set>
3.524 + <package name="zip" version="1-3" arch="i386"/>
3.525 + <package name="zsh" version="1-1" arch="x86_64"/>
3.526 + </set>
3.527 + </result>
3.528 + </test>
3.529 +
3.530 + <test name="testInstallSinglePackageRequireXtra1MultiLib">
3.531 + <set name="system"/>
3.532 + <set name="repo">
3.533 + <package name="zsh" version="1-1" arch="x86_64">
3.534 + <requires name="zip"/>
3.535 + </package>
3.536 + <package name="zip" version="1-3" arch="i386"/>
3.537 + </set>
3.538 + <transaction>
3.539 + <install name="zsh"/>
3.540 + </transaction>
3.541 + <result>
3.542 + <set>
3.543 + <package name="zip" version="1-3" arch="i386"/>
3.544 + <package name="zsh" version="1-1" arch="x86_64"/>
3.545 + </set>
3.546 + </result>
3.547 + </test>
3.548 +
3.549 + <test name="testInstallSinglePackageRequireXtra2_64MultiLib">
3.550 + <set name="system"/>
3.551 + <set name="repo">
3.552 + <package name="zsh" version="1-1" arch="x86_64">
3.553 + <requires name="zip"/>
3.554 + </package>
3.555 + <package name="zip" version="1-3" arch="i386"/>
3.556 + <package name="zip" version="1-3" arch="x86_64"/>
3.557 + </set>
3.558 + <transaction>
3.559 + <install name="zsh"/>
3.560 + </transaction>
3.561 + <result>
3.562 + <set>
3.563 + <package name="zsh" version="1-1" arch="x86_64"/>
3.564 + <package name="zip" version="1-3" arch="x86_64"/>
3.565 + </set>
3.566 + </result>
3.567 + </test>
3.568 +
3.569 + <test name="testInstallSinglePackageRequireXtra2_32MultiLib">
3.570 + <set name="system"/>
3.571 + <set name="repo">
3.572 + <package name="zsh" version="1-1" arch="i386">
3.573 + <requires name="zip"/>
3.574 + </package>
3.575 + <package name="zip" version="1-3" arch="i386"/>
3.576 + <package name="zip" version="1-3" arch="x86_64"/>
3.577 + </set>
3.578 + <transaction>
3.579 + <install name="zsh"/>
3.580 + </transaction>
3.581 + <result>
3.582 + <set>
3.583 + <package name="zip" version="1-3" arch="i386"/>
3.584 + <package name="zsh" version="1-1" arch="i386"/>
3.585 + </set>
3.586 + </result>
3.587 + </test>
3.588 +
3.589 + <test name="testUpdateSinglePackage">
3.590 + <set name="system">
3.591 + <package name="zsh" version="1-1" arch="i386"/>
3.592 + </set>
3.593 + <set name="repo">
3.594 + <package name="zsh" version="1-3" arch="i386"/>
3.595 + </set>
3.596 + <transaction>
3.597 + <update name="zsh"/>
3.598 + </transaction>
3.599 + <result>
3.600 + <set>
3.601 + <package name="zsh" version="1-3" arch="i386"/>
3.602 + </set>
3.603 + </result>
3.604 + </test>
3.605 +
3.606 + <test name="testUpdateForDependency">
3.607 + <set name="system">
3.608 + <package name="zip" version="0:1-1" arch="i386"/>
3.609 + </set>
3.610 + <set name="repo">
3.611 + <package name="zsh" version="0:1-1" arch="i386">
3.612 + <requires name="zip" relation="EQ" version="0:2-1"/>
3.613 + </package>
3.614 + <package name="zip" version="0:2-1" arch="i386"/>
3.615 + </set>
3.616 + <transaction>
3.617 + <install name="zsh"/>
3.618 + </transaction>
3.619 + <result>
3.620 + <set>
3.621 + <package name="zip" version="0:2-1" arch="i386"/>
3.622 + <package name="zsh" version="0:1-1" arch="i386"/>
3.623 + </set>
3.624 + </result>
3.625 + </test>
3.626 +
3.627 + <test name="testUpdateSplitPackage">
3.628 + <set name="system">
3.629 + <package name="zip" version="0:1-1" arch="i386">
3.630 + <provides name="libzip" relation="EQ" version="0:1-1"/>
3.631 + </package>
3.632 + </set>
3.633 + <set name="repo">
3.634 + <package name="zsh" version="0:1-1" arch="i386">
3.635 + <requires name="libzip" relation="EQ" version="0:2-1"/>
3.636 + </package>
3.637 + <package name="zip" version="0:2-1" arch="i386">
3.638 + <requires name="zip-libs" relation="EQ" version="0:2-1"/>
3.639 + </package>
3.640 + <package name="zip-libs" version="0:2-1" arch="i386">
3.641 + <provides name="libzip" relation="EQ" version="0:2-1"/>
3.642 + </package>
3.643 + </set>
3.644 + <transaction>
3.645 + <install name="zsh"/>
3.646 + </transaction>
3.647 + <result>
3.648 + <set>
3.649 + <package name="zip" version="0:1-1" arch="i386"/>
3.650 + <package name="zip-libs" version="0:2-1" arch="i386"/>
3.651 + <package name="zsh" version="0:1-1" arch="i386"/>
3.652 + </set>
3.653 + </result>
3.654 + </test>
3.655 +
3.656 + <test name="testUpdateSinglePackageNewRequires">
3.657 + <set name="system">
3.658 + <package name="zsh" version="1-1" arch="i386"/>
3.659 + </set>
3.660 + <set name="repo">
3.661 + <package name="zsh" version="1-3" arch="i386">
3.662 + <requires name="zip"/>
3.663 + </package>
3.664 + <package name="zip" version="1-3" arch="x86_64"/>
3.665 + </set>
3.666 + <transaction>
3.667 + <update name="zsh"/>
3.668 + </transaction>
3.669 + <result>
3.670 + <set>
3.671 + <package name="zsh" version="1-3" arch="i386"/>
3.672 + <package name="zip" version="1-3" arch="x86_64"/>
3.673 + </set>
3.674 + </result>
3.675 + </test>
3.676 +
3.677 + <test name="testUpdateSinglePackageOldRequires">
3.678 + <set name="system">
3.679 + <package name="zsh" version="1-1" arch="i386">
3.680 + <requires name="zip"/>
3.681 + </package>
3.682 + <package name="zip" version="1-3" arch="x86_64"/>
3.683 + </set>
3.684 + <set name="repo">
3.685 + <package name="zsh" version="1-3" arch="i386">
3.686 + <requires name="zip"/>
3.687 + </package>
3.688 + </set>
3.689 + <transaction>
3.690 + <update name="zsh"/>
3.691 + </transaction>
3.692 + <result>
3.693 + <set>
3.694 + <package name="zip" version="1-3" arch="x86_64"/>
3.695 + <package name="zsh" version="1-3" arch="i386"/>
3.696 + </set>
3.697 + </result>
3.698 + </test>
3.699 +
3.700 + <test name="testUpdateSinglePackageOldRequiresGone">
3.701 + <set name="system">
3.702 + <package name="zsh" version="1-1" arch="i386">
3.703 + <requires name="zip"/>
3.704 + </package>
3.705 + <package name="zip" version="1-3" arch="x86_64"/>
3.706 + </set>
3.707 + <set name="repo">
3.708 + <package name="zsh" version="1-3" arch="i386"/>
3.709 + </set>
3.710 + <transaction>
3.711 + <update name="zsh"/>
3.712 + </transaction>
3.713 + <result>
3.714 + <set>
3.715 + <package name="zip" version="1-3" arch="x86_64"/>
3.716 + <package name="zsh" version="1-3" arch="i386"/>
3.717 + </set>
3.718 + </result>
3.719 + </test>
3.720 +
3.721 + <test name="testUpdateSinglePackageObsoletesOldRequirement">
3.722 + <set name="system">
3.723 + <package name="zsh" version="1-1" arch="i386">
3.724 + <requires name="zip"/>
3.725 + </package>
3.726 + <package name="zip" version="1-1" arch="i386"/>
3.727 + </set>
3.728 + <set name="repo">
3.729 + <package name="zsh" version="1-3" arch="i386">
3.730 + <!-- depsolvetests.py actually adds the obsoletes
3.731 + to the installed zsh rather than the new zsh,
3.732 + but I'm assuming that's a bug -->
3.733 + <obsoletes name="zip"/>
3.734 + </package>
3.735 + </set>
3.736 + <transaction>
3.737 + <update name="zsh"/>
3.738 + </transaction>
3.739 + <result>
3.740 + <set>
3.741 + <package name="zsh" version="1-3" arch="i386"/>
3.742 + </set>
3.743 + </result>
3.744 + </test>
3.745 +
3.746 + <test name="testUpdateForConflict">
3.747 + <set name="system">
3.748 + <package name="zip" version="0:1-1" arch="i386"/>
3.749 + </set>
3.750 + <set name="repo">
3.751 + <package name="zsh" version="0:1-1" arch="i386">
3.752 + <conflicts name="zip" relation="LE" version="0:1-1"/>
3.753 + </package>
3.754 + <package name="zip" version="0:2-1" arch="i386"/>
3.755 + </set>
3.756 + <transaction>
3.757 + <install name="zsh"/>
3.758 + </transaction>
3.759 + <result>
3.760 + <set>
3.761 + <package name="zip" version="0:2-1" arch="i386"/>
3.762 + <package name="zsh" version="0:1-1" arch="i386"/>
3.763 + </set>
3.764 + </result>
3.765 + </test>
3.766 +
3.767 + <test name="testUpdateForConflict2">
3.768 + <set name="system">
3.769 + <package name="zip" version="0:1-1" arch="i386">
3.770 + <conflicts name="zsh" relation="LE" version="0:1-1"/>
3.771 + </package>
3.772 + </set>
3.773 + <set name="repo">
3.774 + <package name="zsh" version="0:1-1" arch="i386"/>
3.775 + <package name="zip" version="0:2-1" arch="i386"/>
3.776 + </set>
3.777 + <transaction>
3.778 + <install name="zsh"/>
3.779 + </transaction>
3.780 + <result>
3.781 + <set>
3.782 + <package name="zsh" version="0:1-1" arch="i386"/>
3.783 + <package name="zip" version="0:2-1" arch="i386"/>
3.784 + </set>
3.785 + </result>
3.786 + </test>
3.787 +
3.788 + <test name="testUpdateForConflictProvide">
3.789 + <set name="system">
3.790 + <package name="zip" version="0:1-1" arch="i386">
3.791 + <provides name="zippy" relation="EQ" version="0:1-1"/>
3.792 + </package>
3.793 + </set>
3.794 + <set name="repo">
3.795 + <package name="zsh" version="0:1-1" arch="i386">
3.796 + <conflicts name="zippy" relation="LE" version="0:1-1"/>
3.797 + </package>
3.798 + <package name="zip" version="0:2-1" arch="i386"/>
3.799 + </set>
3.800 + <transaction>
3.801 + <install name="zsh"/>
3.802 + </transaction>
3.803 + <result>
3.804 + <set>
3.805 + <package name="zip" version="0:2-1" arch="i386"/>
3.806 + <package name="zsh" version="0:1-1" arch="i386"/>
3.807 + </set>
3.808 + </result>
3.809 + </test>
3.810 +
3.811 + <test name="testUpdateForConflictProvide2">
3.812 + <set name="system">
3.813 + <package name="zip" version="0:1-1" arch="i386">
3.814 + <conflicts name="zippy" relation="GT" version="0:1-1"/>
3.815 + <conflicts name="zippy" relation="LT" version="0:1-1"/>
3.816 + </package>
3.817 + </set>
3.818 + <set name="repo">
3.819 + <package name="zsh" version="0:1-1" arch="i386">
3.820 + <provides name="zippy" relation="EQ" version="0:2-1"/>
3.821 + </package>
3.822 + <package name="zip" version="0:2-1" arch="i386">
3.823 + <conflicts name="zippy" relation="GT" version="0:2-1"/>
3.824 + <conflicts name="zippy" relation="LT" version="0:2-1"/>
3.825 + </package>
3.826 + </set>
3.827 + <transaction>
3.828 + <install name="zsh"/>
3.829 + </transaction>
3.830 + <result>
3.831 + <set>
3.832 + <package name="zip" version="0:2-1" arch="i386"/>
3.833 + <package name="zsh" version="0:1-1" arch="i386"/>
3.834 + </set>
3.835 + </result>
3.836 + </test>
3.837 +
3.838 + <test name="testEraseSinglePackage">
3.839 + <set name="system">
3.840 + <package name="zsh" version="0:1-1" arch="i386"/>
3.841 + </set>
3.842 + <set name="repo"/>
3.843 + <transaction>
3.844 + <remove name="zsh"/>
3.845 + </transaction>
3.846 + <result>
3.847 + <set/>
3.848 + </result>
3.849 + </test>
3.850 +
3.851 + <test name="testEraseSinglePackageRequiredByOneInstalled">
3.852 + <set name="system">
3.853 + <package name="zippy" version="0:1-1" arch="i386">
3.854 + <requires name="zsh"/>
3.855 + </package>
3.856 + <package name="zsh" version="0:1-1" arch="i386"/>
3.857 + </set>
3.858 + <set name="repo"/>
3.859 + <transaction>
3.860 + <remove name="zsh"/>
3.861 + </transaction>
3.862 + <result>
3.863 + <set/>
3.864 + </result>
3.865 + </test>
3.866 +</tests>