Queue q;
fprintf(fp, "=Ver: 3.0\n");
- if (repo_lookup_type(repo, SOLVID_META, REPOSITORY_TESTCASE_META))
- {
- Dataiterator di;
- dataiterator_init(&di, pool, repo, SOLVID_META, 0, 0, 0);
- dataiterator_prepend_keyname(&di, REPOSITORY_TESTCASE_META);
- while (dataiterator_step(&di))
- {
- const char *value = repodata_stringify(pool, di.data, di.key, &di.kv, di.flags);
- if (!value)
- continue;
- if (strchr(value, '\n'))
- continue;
- fprintf(fp, "=Met: %s \"%s\"\n", pool_id2str(pool, di.key->name), value);
- }
- dataiterator_free(&di);
- }
-
queue_init(&q);
FOR_REPO_SOLVABLES(repo, p, s)
{
int nfilelist = 0;
int tagsversion = 0;
int addselfprovides = 1; /* for compat reasons */
- Id metah = 0;
data = repo_add_repodata(repo, flags);
s = 0;
s->evr = makeevr(pool, sp[1]);
s->arch = strcmp(sp[3], "-") ? pool_str2id(pool, sp[3], 1) : 0;
continue;
- case 'M' << 16 | 'e' << 8 | 't':
- if (split(line + 5, sp, 2) != 2 || !sp[0][0])
- break;
- if (sp[1][0] != '"' || !sp[1][1] || sp[1][strlen(sp[1]) - 1] != '"')
- break;
- sp[1][strlen(sp[1]) - 1] = 0;
- if (!metah)
- {
- metah = repodata_new_handle(data);
- repodata_add_flexarray(data, SOLVID_META, REPOSITORY_TESTCASE_META, metah);
- }
- repodata_set_str(data, metah, pool_str2id(pool, sp[0], 1), sp[1] + 1);
- break;
default:
break;
}
return cnt;
}
-/* convenience: add comments with the meta data */
-static void
-dump_repo_meta(Pool *pool, Strqueue *sq, Repo *repo)
-{
- Dataiterator di;
- dataiterator_init(&di, pool, repo, SOLVID_META, 0, 0, 0);
- dataiterator_prepend_keyname(&di, REPOSITORY_TESTCASE_META);
- char *line;
-
- while (dataiterator_step(&di))
- {
- const char *key = pool_id2str(pool, di.key->name);
- const char *value = repodata_stringify(pool, di.data, di.key, &di.kv, di.flags);
- if (!key || !value || strchr(key, '\n') != 0 || strchr(value, '\n') != 0)
- continue;
- line = pool_tmpjoin(pool, "# ", key, 0);
- line = pool_tmpappend(pool, line, " ", value);
- strqueue_push(sq, line);
- }
- dataiterator_free(&di);
-}
-
char *
testcase_solverresult(Solver *solv, int resultflags)
{
#else
if (mkdir(dir, 0777) && errno != EEXIST)
#endif
- return pool_error(pool, 0, "testcase_write: could not create directory '%s'", dir);
+ return pool_error(solv->pool, 0, "testcase_write: could not create directory '%s'", dir);
strqueue_init(&sq);
FOR_REPOS(repoid, repo)
{
const char *name = testcase_repoid2str(pool, repoid);
char priobuf[50];
- if (repo_lookup_type(repo, SOLVID_META, REPOSITORY_TESTCASE_META))
- dump_repo_meta(pool, &sq, repo);
if (repo->subpriority)
sprintf(priobuf, "%d.%d", repo->priority, repo->subpriority);
else
out = pool_tmpjoin(pool, dir, "/", out);
if (!(fp = solv_xfopen(out, "w")))
{
- pool_error(pool, 0, "testcase_write: could not open '%s' for writing", out);
+ pool_error(solv->pool, 0, "testcase_write: could not open '%s' for writing", out);
strqueue_free(&sq);
return 0;
}
testcase_write_testtags(repo, fp);
if (fclose(fp))
{
- pool_error(pool, 0, "testcase_write: write error");
+ pool_error(solv->pool, 0, "testcase_write: write error");
strqueue_free(&sq);
return 0;
}
if (pool->installed)
cmd = pool_tmpappend(pool, cmd, " ", testcase_repoid2str(pool, pool->installed->repoid));
strqueue_push(&sq, cmd);
- s = testcase_getpoolflags(pool);
+ s = testcase_getpoolflags(solv->pool);
if (*s)
{
cmd = pool_tmpjoin(pool, "poolflags ", s, 0);
out = pool_tmpjoin(pool, dir, "/", resultname);
if (!(fp = fopen(out, "w")))
{
- pool_error(pool, 0, "testcase_write: could not open '%s' for writing", out);
+ pool_error(solv->pool, 0, "testcase_write: could not open '%s' for writing", out);
solv_free(result);
strqueue_free(&sq);
return 0;
}
if (result && *result && fwrite(result, strlen(result), 1, fp) != 1)
{
- pool_error(pool, 0, "testcase_write: write error");
+ pool_error(solv->pool, 0, "testcase_write: write error");
solv_free(result);
strqueue_free(&sq);
fclose(fp);
}
if (fclose(fp))
{
- pool_error(pool, 0, "testcase_write: write error");
+ pool_error(solv->pool, 0, "testcase_write: write error");
solv_free(result);
strqueue_free(&sq);
return 0;
out = pool_tmpjoin(pool, dir, "/", testcasename);
if (!(fp = fopen(out, "w")))
{
- pool_error(pool, 0, "testcase_write: could not open '%s' for writing", out);
+ pool_error(solv->pool, 0, "testcase_write: could not open '%s' for writing", out);
solv_free(result);
return 0;
}
if (*result && fwrite(result, strlen(result), 1, fp) != 1)
{
- pool_error(pool, 0, "testcase_write: write error");
+ pool_error(solv->pool, 0, "testcase_write: write error");
solv_free(result);
fclose(fp);
return 0;
}
if (fclose(fp))
{
- pool_error(pool, 0, "testcase_write: write error");
+ pool_error(solv->pool, 0, "testcase_write: write error");
solv_free(result);
return 0;
}