1.1 --- a/src/test-driver.c Fri Jun 20 19:04:47 2008 -0400
1.2 +++ b/src/test-driver.c Thu Jun 26 10:37:45 2008 -0400
1.3 @@ -88,17 +88,17 @@
1.4 va_end(ap);
1.5 }
1.6
1.7 -static enum razor_version_relation
1.8 +static enum razor_property_flags
1.9 parse_relation (const char *rel_str)
1.10 {
1.11 if (!rel_str)
1.12 return -1;
1.13 if (rel_str[0] == 'L')
1.14 - return rel_str[1] == 'E' ? RAZOR_VERSION_LESS_OR_EQUAL : RAZOR_VERSION_LESS;
1.15 + return rel_str[1] == 'E' ? RAZOR_PROPERTY_LESS | RAZOR_PROPERTY_EQUAL : RAZOR_PROPERTY_LESS;
1.16 else if (rel_str[0] == 'G')
1.17 - return rel_str[1] == 'E' ? RAZOR_VERSION_GREATER_OR_EQUAL : RAZOR_VERSION_GREATER;
1.18 + return rel_str[1] == 'E' ? RAZOR_PROPERTY_GREATER | RAZOR_PROPERTY_EQUAL : RAZOR_PROPERTY_GREATER;
1.19 else if (rel_str[0] == 'E' || rel_str[1] == 'Q')
1.20 - return RAZOR_VERSION_EQUAL;
1.21 + return RAZOR_PROPERTY_EQUAL;
1.22 else
1.23 return -1;
1.24 }
1.25 @@ -142,7 +142,7 @@
1.26 {
1.27 const char *name = NULL;
1.28
1.29 - ctx->importer = razor_importer_new();
1.30 + ctx->importer = razor_importer_create();
1.31 get_atts(atts, "name", &name, NULL);
1.32 if (!name)
1.33 ctx->importer_set = &ctx->result_set;
1.34 @@ -180,8 +180,8 @@
1.35
1.36 razor_importer_begin_package(ctx->importer, name, version, arch);
1.37 razor_importer_add_property(ctx->importer, name,
1.38 - RAZOR_VERSION_EQUAL, version,
1.39 - RAZOR_PROPERTY_PROVIDES);
1.40 + RAZOR_PROPERTY_EQUAL | RAZOR_PROPERTY_PROVIDES,
1.41 + version);
1.42 }
1.43
1.44 static void
1.45 @@ -191,38 +191,53 @@
1.46 }
1.47
1.48 static void
1.49 -add_property(struct test_context *ctx, enum razor_property_type type, const char *name, enum razor_version_relation rel, const char *version)
1.50 +add_property(struct test_context *ctx, enum razor_property_flags type, const char *name, enum razor_property_flags rel, const char *version)
1.51 {
1.52 razor_importer_add_property(ctx->importer, name,
1.53 - rel, version, type);
1.54 + rel | type, version);
1.55 +}
1.56 +
1.57 +static const char*
1.58 +razor_property_flags_relation_to_string(enum razor_property_flags rel)
1.59 +{
1.60 + if (rel == RAZOR_PROPERTY_LESS)
1.61 + return "<";
1.62 + if (rel == (RAZOR_PROPERTY_EQUAL | RAZOR_PROPERTY_LESS))
1.63 + return "<=";
1.64 + if (rel == RAZOR_PROPERTY_EQUAL)
1.65 + return "=";
1.66 + if (rel == (RAZOR_PROPERTY_EQUAL | RAZOR_PROPERTY_GREATER))
1.67 + return ">=";
1.68 + if (rel == RAZOR_PROPERTY_GREATER)
1.69 + return ">";
1.70 +
1.71 + return "";
1.72 }
1.73
1.74 static void
1.75 check_unsatisfiable_property(struct test_context *ctx,
1.76 - enum razor_property_type type,
1.77 + enum razor_property_flags type,
1.78 const char *name,
1.79 - enum razor_version_relation rel,
1.80 + enum razor_property_flags rel,
1.81 const char *version)
1.82 {
1.83 - static const char *relation_string[] = { "<", "<=", "=", ">=", ">" };
1.84 -
1.85 if (!version)
1.86 version = "";
1.87
1.88 if (razor_transaction_unsatisfied_property(ctx->trans,
1.89 - name, rel, version, type))
1.90 + name, rel | type, version))
1.91 return;
1.92
1.93 fprintf(stderr, " didn't get unsatisfiable '%s %s %s'\n",
1.94 - name, relation_string[rel], version);
1.95 + name, razor_property_flags_relation_to_string(rel), version);
1.96 ctx->errors++;
1.97 }
1.98
1.99 static void
1.100 -start_property(struct test_context *ctx, enum razor_property_type type, const char **atts)
1.101 +start_property(struct test_context *ctx, enum razor_property_flags type, const char **atts)
1.102 {
1.103 const char *name = NULL, *rel_str = NULL, *version = NULL;
1.104 - enum razor_version_relation rel;
1.105 + enum razor_property_flags rel;
1.106
1.107 get_atts(atts, "name", &name, "relation", &rel_str, "version", &version, NULL);
1.108 if (name == NULL) {
1.109 @@ -236,7 +251,7 @@
1.110 exit(1);
1.111 }
1.112 } else
1.113 - rel = RAZOR_VERSION_EQUAL;
1.114 + rel = RAZOR_PROPERTY_EQUAL;
1.115
1.116 if (ctx->unsat)
1.117 check_unsatisfiable_property(ctx, type, name, rel, version);
1.118 @@ -273,7 +288,8 @@
1.119 razor_transaction_remove_package(ctx->trans, pkg);
1.120 }
1.121
1.122 - errors = razor_transaction_resolve(ctx->trans);
1.123 + razor_transaction_resolve(ctx->trans);
1.124 + errors = razor_transaction_describe(ctx->trans);
1.125 printf("\n");
1.126
1.127 while (ctx->n_install_pkgs--)
1.128 @@ -324,21 +340,22 @@
1.129 }
1.130
1.131 static void
1.132 -diff_callback(const char *name,
1.133 - const char *old_version,
1.134 - const char *new_version,
1.135 +diff_callback(enum razor_diff_action action,
1.136 + struct razor_package *package,
1.137 + const char *name,
1.138 + const char *version,
1.139 const char *arch,
1.140 void *data)
1.141 {
1.142 struct test_context *ctx = data;
1.143
1.144 ctx->errors++;
1.145 - if (old_version) {
1.146 + if (action == RAZOR_DIFF_ACTION_REMOVE) {
1.147 fprintf(stderr, " result set should not contain %s %s\n",
1.148 - name, old_version);
1.149 + name, version);
1.150 } else {
1.151 fprintf(stderr, " result set should contain %s %s\n",
1.152 - name, new_version);
1.153 + name, version);
1.154 }
1.155 }
1.156