END_TEST START_TEST(test_filter_latest_archs) { HyQuery q = hy_query_create(test_globals.sack); hy_query_filter(q, HY_PKG_NAME, HY_EQ, "penny-lib"); hy_query_filter_latest_per_arch(q, 1); HyPackageList plist = hy_query_run(q); fail_unless(hy_packagelist_count(plist) == 2); /* both architectures */ hy_query_free(q); hy_packagelist_free(plist); }
END_TEST START_TEST(test_filter_latest) { HyQuery q = hy_query_create(test_globals.sack); hy_query_filter(q, HY_PKG_NAME, HY_EQ, "fool"); hy_query_filter_latest_per_arch(q, 1); HyPackageList plist = hy_query_run(q); fail_unless(hy_packagelist_count(plist) == 1); HyPackage pkg = hy_packagelist_get(plist, 0); fail_if(strcmp(hy_package_get_name(pkg), "fool")); fail_if(strcmp(hy_package_get_evr(pkg), "1-5")); hy_query_free(q); hy_packagelist_free(plist); }
static DnfPackage * get_latest_pkg(DnfSack *sack, const char *name) { HyQuery q = hy_query_create(sack); hy_query_filter(q, HY_PKG_NAME, HY_EQ, name); hy_query_filter(q, HY_PKG_REPONAME, HY_NEQ, HY_SYSTEM_REPO_NAME); hy_query_filter_latest_per_arch(q, 1); GPtrArray *plist = hy_query_run(q); fail_unless(plist->len == 1, "get_latest_pkg() failed finding '%s'.", name); DnfPackage *pkg = g_object_ref(g_ptr_array_index(plist, 0)); hy_query_free(q); g_ptr_array_unref(plist); return pkg; }
static HyPackage get_latest_pkg(HySack sack, const char *name) { HyQuery q = hy_query_create(sack); hy_query_filter(q, HY_PKG_NAME, HY_EQ, name); hy_query_filter(q, HY_PKG_REPONAME, HY_NEQ, HY_SYSTEM_REPO_NAME); hy_query_filter_latest_per_arch(q, 1); HyPackageList plist = hy_query_run(q); fail_unless(hy_packagelist_count(plist) == 1, "get_latest_pkg() failed finding '%s'.", name); HyPackage pkg = hy_packagelist_get_clone(plist, 0); hy_query_free(q); hy_packagelist_free(plist); return pkg; }
static void update_remote(HifSack *sack, const char *name) { HyQuery q = hy_query_create(sack); GPtrArray *plist; hy_query_filter(q, HY_PKG_NAME, HY_EQ, name); hy_query_filter(q, HY_PKG_REPONAME, HY_NEQ, HY_SYSTEM_REPO_NAME); hy_query_filter_latest_per_arch(q, 1); plist = hy_query_run(q); if (plist->len == 0) { printf("no updatables found\n"); goto finish; } if (plist->len > 1) printf("(more than one updatables found, selecting the first one)\n"); update(sack, g_ptr_array_index(plist, 0)); finish: g_ptr_array_unref(plist); hy_query_free(q); }
static void update_remote(HySack sack, const char *name) { HyQuery q = hy_query_create(sack); HyPackageList plist; hy_query_filter(q, HY_PKG_NAME, HY_EQ, name); hy_query_filter(q, HY_PKG_REPONAME, HY_NEQ, HY_SYSTEM_REPO_NAME); hy_query_filter_latest_per_arch(q, 1); plist = hy_query_run(q); if (hy_packagelist_count(plist) == 0) { printf("no updatables found\n"); goto finish; } if (hy_packagelist_count(plist) > 1) printf("(more than one updatables found, selecting the first one)\n"); update(sack, hy_packagelist_get(plist, 0)); finish: hy_packagelist_free(plist); hy_query_free(q); }
END_TEST START_TEST(test_query_pkg) { HyPackageSet pset; HyQuery q, q2; // setup q = hy_query_create(test_globals.sack); hy_query_filter(q, HY_PKG_NAME, HY_EQ, "jay"); pset = hy_query_run_set(q); hy_query_free(q); fail_unless(hy_packageset_count(pset), 2); // use hy_query_filter_package_in(): q = hy_query_create(test_globals.sack); // check validation works: fail_unless(hy_query_filter_package_in(q, HY_PKG, HY_GT, pset)); // add the filter: fail_if(hy_query_filter_package_in(q, HY_PKG, HY_EQ, pset)); hy_packageset_free(pset); // cloning must work q2 = hy_query_clone(q); fail_unless(query_count_results(q) == 2); hy_query_free(q); // filter on hy_query_filter_latest_per_arch(q2, 1); pset = hy_query_run_set(q2); fail_unless(hy_packageset_count(pset) == 1); HyPackage pkg = hy_packageset_get_clone(pset, 0); char *nvra = hy_package_get_nevra(pkg); ck_assert_str_eq(nvra, "jay-6.0-0.x86_64"); solv_free(nvra); hy_package_free(pkg); hy_packageset_free(pset); hy_query_free(q2); }