test: improve loading of repositories, fix broken install-if test

cute-signatures
Timo Teräs 2014-05-19 11:48:36 +03:00
parent 2c4f6bb503
commit 7e64edfad6
2 changed files with 23 additions and 3 deletions

View File

@ -513,6 +513,13 @@ int main(int argc, char **argv)
apk_blob_t spec = APK_BLOB_STR(test_repos->item[i]), name, tag;
int repo_tag = 0, repo = APK_REPOSITORY_FIRST_CONFIGURED + i;
if (spec.ptr[0] == '!') {
/* cache's installed repository */
spec.ptr++;
spec.len--;
repo = -2;
}
if (apk_blob_split(spec, APK_BLOB_STR(":"), &tag, &name)) {
repo_tag = apk_db_get_tag_id(&db, tag);
} else {
@ -520,9 +527,14 @@ int main(int argc, char **argv)
}
bs = apk_bstream_from_file(AT_FDCWD, name.ptr);
if (bs != NULL) {
apk_db_index_read(&db, bs, repo);
bs->close(bs, NULL);
if (bs == NULL) {
apk_error("Failed to open repository: " BLOB_FMT, BLOB_PRINTF(name));
goto err;
}
apk_db_index_read(&db, bs, repo);
bs->close(bs, NULL);
if (repo != -2) {
if (!(apk_flags & APK_NO_NETWORK))
db.available_repos |= BIT(repo);
db.repo_tags[repo_tag].allowed_repos |= BIT(repo);

8
test/installif2.repo Normal file
View File

@ -0,0 +1,8 @@
C:Q16m4HrGizBiH4lG6Mxd5EL239FFU=
P:appiif1
V:2
S:1
I:1
D:app broken-deps
i:app foo