END_TEST START_TEST(test_query_name) { HyQuery q; q = hy_query_create(test_globals.sack); hy_query_filter(q, HY_PKG_NAME, HY_SUBSTR, "penny"); fail_unless(query_count_results(q) == 2); hy_query_free(q); q = hy_query_create(test_globals.sack); hy_query_filter(q, HY_PKG_NAME, HY_EQ, "lane"); fail_if(query_count_results(q)); hy_query_free(q); }
static int size_and_free(HyQuery query) { int c = query_count_results(query); hy_query_free(query); return c; }
END_TEST START_TEST(test_query_empty) { HyQuery q = hy_query_create(test_globals.sack); fail_if(hy_query_filter_empty(q)); fail_unless(query_count_results(q) == 0); hy_query_free(q); }
END_TEST START_TEST(test_query_glob) { HyQuery q = hy_query_create(test_globals.sack); hy_query_filter(q, HY_PKG_NAME, HY_GLOB, "pen*"); fail_unless(query_count_results(q) == 2); hy_query_free(q); }
END_TEST START_TEST(test_downgradable) { HyQuery q = hy_query_create(test_globals.sack); hy_query_filter_downgradable(q, 1); ck_assert_int_eq(query_count_results(q), 2); hy_query_free(q); }
END_TEST START_TEST(test_query_fileprovides) { HyQuery q = hy_query_create(test_globals.sack); hy_query_filter(q, HY_PKG_FILE, HY_EQ, "/no/answers"); fail_unless(query_count_results(q) == 1); hy_query_free(q); }
END_TEST START_TEST(test_query_release) { HyQuery q = hy_query_create(test_globals.sack); hy_query_filter(q, HY_PKG_RELEASE, HY_EQ, "11"); fail_unless(query_count_results(q) == 1); hy_query_free(q); q = hy_query_create(test_globals.sack); hy_query_filter(q, HY_PKG_RELEASE, HY_GT, "9"); fail_unless(query_count_results(q) == 1); hy_query_free(q); q = hy_query_create(test_globals.sack); hy_query_filter(q, HY_PKG_RELEASE, HY_GT|HY_EQ, "9"); fail_unless(query_count_results(q) == 2); hy_query_free(q); }
END_TEST START_TEST(test_query_epoch) { HyQuery q = hy_query_create(test_globals.sack); fail_unless(hy_query_filter(q, HY_PKG_EPOCH, HY_GT|HY_EQ, "1")); fail_if(hy_query_filter_num(q, HY_PKG_EPOCH, HY_GT|HY_EQ, 1)); fail_unless(query_count_results(q) == 1); hy_query_free(q); }
END_TEST START_TEST(test_filter_obsoletes) { HySack sack = test_globals.sack; HyQuery q = hy_query_create(sack); HyPackageSet pset = hy_packageset_create(sack); // empty fail_if(hy_query_filter_package_in(q, HY_PKG_OBSOLETES, HY_EQ, pset)); fail_unless(query_count_results(q) == 0); hy_query_clear(q); hy_packageset_add(pset, by_name(sack, "penny")); hy_query_filter_package_in(q, HY_PKG_OBSOLETES, HY_EQ, pset); fail_unless(query_count_results(q) == 1); hy_query_free(q); hy_packageset_free(pset); }
END_TEST START_TEST(test_query_version) { HyQuery q = hy_query_create(test_globals.sack); hy_query_filter(q, HY_PKG_VERSION, HY_EQ, "5.0"); fail_unless(query_count_results(q) == 2); hy_query_free(q); q = hy_query_create(test_globals.sack); hy_query_filter(q, HY_PKG_VERSION, HY_GT, "5.2.1"); fail_unless(query_count_results(q) == 1); hy_query_free(q); q = hy_query_create(test_globals.sack); hy_query_filter(q, HY_PKG_VERSION, HY_GT|HY_EQ, "5."); fail_unless(query_count_results(q) == 3); hy_query_free(q); }
END_TEST START_TEST(test_query_repo) { HyQuery q; q = hy_query_create(test_globals.sack); hy_query_filter(q, HY_PKG_REPONAME, HY_EQ, HY_SYSTEM_REPO_NAME); fail_unless(query_count_results(q) == TEST_EXPECT_SYSTEM_NSOLVABLES); hy_query_free(q); q = hy_query_create(test_globals.sack); hy_query_filter(q, HY_PKG_REPONAME, HY_NEQ, HY_SYSTEM_REPO_NAME); fail_if(query_count_results(q)); hy_query_free(q); }
END_TEST START_TEST(test_query_neq) { HyQuery q; q = hy_query_create(test_globals.sack); hy_query_filter(q, HY_PKG_NAME, HY_NEQ, "penny-lib"); fail_unless(query_count_results(q) == TEST_EXPECT_SYSTEM_PKGS - 1); hy_query_free(q); }
END_TEST START_TEST(test_query_anded) { HyQuery q; q = hy_query_create(test_globals.sack); hy_query_filter(q, HY_PKG_NAME, HY_SUBSTR, "penny"); hy_query_filter(q, HY_PKG_SUMMARY, HY_SUBSTR, "ears"); fail_unless(query_count_results(q) == 1); hy_query_free(q); }
END_TEST START_TEST(test_upgrades) { const char *installonly[] = {"fool", NULL}; hy_sack_set_installonly(test_globals.sack, installonly); HyQuery q = hy_query_create(test_globals.sack); hy_query_filter_upgrades(q, 1); fail_unless(query_count_results(q) == TEST_EXPECT_UPDATES_NSOLVABLES - 2); hy_query_free(q); }
END_TEST START_TEST(test_query_in) { HyQuery q; const char *namelist[] = {"penny", "fool", NULL}; q = hy_query_create(test_globals.sack); hy_query_filter_in(q, HY_PKG_NAME, HY_EQ, namelist); fail_unless(query_count_results(q) == 2); hy_query_free(q); }
END_TEST START_TEST(test_query_clear) { HyQuery q; q = hy_query_create(test_globals.sack); hy_query_filter(q, HY_PKG_NAME, HY_NEQ, "fool"); hy_query_clear(q); hy_query_filter(q, HY_PKG_NAME, HY_EQ, "fool"); fail_unless(query_count_results(q) == 1); hy_query_free(q); }
END_TEST START_TEST(test_excluded) { HySack sack = test_globals.sack; HyQuery q = hy_query_create_flags(sack, HY_IGNORE_EXCLUDES); hy_query_filter(q, HY_PKG_NAME, HY_EQ, "jay"); HyPackageSet pset = hy_query_run_set(q); hy_sack_add_excludes(sack, pset); hy_packageset_free(pset); hy_query_free(q); q = hy_query_create_flags(sack, 0); hy_query_filter(q, HY_PKG_NAME, HY_EQ, "jay"); fail_unless(query_count_results(q) == 0); hy_query_free(q); q = hy_query_create_flags(sack, HY_IGNORE_EXCLUDES); hy_query_filter(q, HY_PKG_NAME, HY_EQ, "jay"); fail_unless(query_count_results(q) > 0); hy_query_free(q); }
END_TEST START_TEST(test_query_conflicts) { HySack sack = test_globals.sack; HyQuery q = hy_query_create(sack); HyReldep reldep = hy_reldep_create(sack, "custard", HY_GT|HY_EQ, "1.0.1"); fail_unless(reldep != NULL); hy_query_filter_reldep(q, HY_PKG_CONFLICTS, reldep); fail_unless(query_count_results(q) == 1); hy_reldep_free(reldep); hy_query_free(q); }
END_TEST START_TEST(test_query_reldep_arbitrary) { HySack sack = test_globals.sack; HyQuery query = hy_query_create(sack); HyReldep reldep = hy_reldep_create(sack, "P-lib", HY_GT, "3-0"); fail_if(reldep == NULL); hy_query_filter_reldep(query, HY_PKG_PROVIDES, reldep); fail_unless(query_count_results(query) == 3); hy_reldep_free(reldep); hy_query_free(query); }
END_TEST START_TEST(test_query_reldep) { HySack sack = test_globals.sack; HyPackage flying = by_name(sack, "flying"); HyReldepList reldeplist = hy_package_get_requires(flying); HyReldep reldep = hy_reldeplist_get_clone(reldeplist, 0); HyQuery q = hy_query_create(test_globals.sack); fail_if(hy_query_filter_reldep(q, HY_PKG_PROVIDES, reldep)); fail_unless(query_count_results(q) == 3); hy_reldep_free(reldep); hy_reldeplist_free(reldeplist); hy_package_free(flying); 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); }
END_TEST START_TEST(test_query_requires) { HyQuery q; const char *repolist[] = {"main", NULL}; q = hy_query_create(test_globals.sack); hy_query_filter_in(q, HY_PKG_REPONAME, HY_EQ, repolist); hy_query_filter_requires(q, HY_EQ, "P-lib", "1"); fail_unless(query_count_results(q) == 1); hy_query_free(q); q = hy_query_create(test_globals.sack); hy_query_filter_in(q, HY_PKG_REPONAME, HY_EQ, repolist); hy_query_filter_requires(q, HY_GT, "P-lib", "5"); fail_unless(query_count_results(q) == 1); hy_query_free(q); q = hy_query_create(test_globals.sack); hy_query_filter_in(q, HY_PKG_REPONAME, HY_EQ, repolist); hy_query_filter_requires(q, HY_LT, "P-lib", "0.1"); fail_unless(query_count_results(q) == 1); hy_query_free(q); q = hy_query_create(test_globals.sack); hy_query_filter_in(q, HY_PKG_REPONAME, HY_EQ, repolist); hy_query_filter_requires(q, HY_EQ, "semolina", NULL); fail_unless(query_count_results(q) == 1); hy_query_free(q); q = hy_query_create(test_globals.sack); hy_query_filter_in(q, HY_PKG_REPONAME, HY_EQ, repolist); hy_query_filter_requires(q, HY_EQ|HY_LT, "semolina", "3.0"); fail_unless(query_count_results(q) == 1); hy_query_free(q); q = hy_query_create(test_globals.sack); hy_query_filter_in(q, HY_PKG_REPONAME, HY_EQ, repolist); hy_query_filter_requires(q, HY_GT, "semolina", "1.0"); fail_unless(query_count_results(q) == 1); hy_query_free(q); q = hy_query_create(test_globals.sack); hy_query_filter_in(q, HY_PKG_REPONAME, HY_EQ, repolist); hy_query_filter_requires(q, HY_NEQ, "semolina", NULL); fail_unless(query_count_results(q) == TEST_EXPECT_MAIN_NSOLVABLES-1); hy_query_free(q); q = hy_query_create(test_globals.sack); hy_query_filter_in(q, HY_PKG_REPONAME, HY_EQ, repolist); hy_query_filter_requires(q, HY_NEQ, "semolina", "2"); fail_unless(query_count_results(q) == TEST_EXPECT_MAIN_NSOLVABLES-1); hy_query_free(q); q = hy_query_create(test_globals.sack); hy_query_filter_in(q, HY_PKG_REPONAME, HY_EQ, repolist); hy_query_filter_requires(q, HY_NEQ, "semolina", "2.1"); fail_unless(query_count_results(q) == TEST_EXPECT_MAIN_NSOLVABLES); hy_query_free(q); }