/* assert on installed-upgraded-erased-obsoleted numbers */ static void assert_iueo(HyGoal goal, int i, int u, int e, int o) { ck_assert_int_eq(size_and_free(hy_goal_list_installs(goal, NULL)), i); ck_assert_int_eq(size_and_free(hy_goal_list_upgrades(goal, NULL)), u); ck_assert_int_eq(size_and_free(hy_goal_list_erasures(goal, NULL)), e); ck_assert_int_eq(size_and_free(hy_goal_list_obsoleted(goal, NULL)), o); }
END_TEST START_TEST(test_filter_description) { HyQuery q = hy_query_create(test_globals.sack); fail_if(hy_query_filter(q, HY_PKG_DESCRIPTION, HY_SUBSTR, "Magical development files for mystery.")); fail_unless(size_and_free(q) == 1); }
END_TEST START_TEST(test_filter_sourcerpm) { HyQuery q = hy_query_create(test_globals.sack); fail_unless(hy_query_filter(q, HY_PKG_SOURCERPM, HY_GT, "tour-4-6.src.rpm")); fail_if(hy_query_filter(q, HY_PKG_SOURCERPM, HY_EQ, "tour-4-6.src.rpm")); fail_unless(size_and_free(q) == 1); q = hy_query_create(test_globals.sack); hy_query_filter(q, HY_PKG_SOURCERPM, HY_EQ, "mystery-19.67-1.src.rpm"); fail_unless(size_and_free(q) == 1); q = hy_query_create(test_globals.sack); hy_query_filter(q, HY_PKG_SOURCERPM, HY_EQ, "mystery-devel-19.67-1.noarch.rpm"); fail_unless(size_and_free(q) == 0); }
END_TEST START_TEST(test_query_provides) { HySack sack = test_globals.sack; HyQuery q; q = hy_query_create(sack); hy_query_filter_provides(q, HY_LT, "fool", "2.0"); fail_unless(size_and_free(q) == 1); q = hy_query_create(sack); hy_query_filter_provides(q, HY_GT, "fool", "2.0"); fail_unless(size_and_free(q) == 0); q = hy_query_create(sack); hy_query_filter_provides(q, HY_EQ, "P", "3-3"); fail_unless(size_and_free(q) == 1); }
END_TEST START_TEST(test_goal_clone) { DnfSack *sack = test_globals.sack; HyGoal goal = hy_goal_create(sack); hy_goal_upgrade_all(goal); HyGoal goal2 = hy_goal_clone(goal); fail_if(hy_goal_run(goal)); assert_iueo(goal, 0, 1, 0, 0); fail_unless(size_and_free(hy_goal_list_reinstalls(goal, NULL)) == 1); hy_goal_free(goal); fail_if(hy_goal_run(goal2)); assert_iueo(goal2, 0, 1, 0, 0); fail_unless(size_and_free(hy_goal_list_reinstalls(goal2, NULL)) == 1); hy_goal_free(goal2); }
END_TEST START_TEST(test_query_location) { HyQuery q = hy_query_create(test_globals.sack); fail_unless(hy_query_filter(q, HY_PKG_LOCATION, HY_GT, "tour-4-6.noarch.rpm")); fail_if(hy_query_filter(q, HY_PKG_LOCATION, HY_EQ, "tour-4-6.noarch.rpm")); fail_unless(size_and_free(q) == 1); q = hy_query_create(test_globals.sack); hy_query_filter(q, HY_PKG_LOCATION, HY_EQ, "mystery-devel-19.67-1.noarch.rpm"); fail_unless(size_and_free(q) == 1); q = hy_query_create(test_globals.sack); hy_query_filter(q, HY_PKG_LOCATION, HY_EQ, "mystery-19.67-1.src.rpm"); fail_unless(size_and_free(q) == 0); }
END_TEST START_TEST(test_disabled_repo) { HySack sack = test_globals.sack; HyQuery q; q = hy_query_create(sack); hy_query_filter(q, HY_PKG_EVR, HY_EQ, "4.9-0"); fail_unless(size_and_free(q) == 1); q = hy_query_create(sack); hy_query_filter(q, HY_PKG_NAME, HY_EQ, "jay"); ck_assert_int_eq(size_and_free(q), 5); hy_sack_repo_enabled(sack, "main", 0); q = hy_query_create(sack); hy_query_filter(q, HY_PKG_EVR, HY_EQ, "4.9-0"); fail_unless(size_and_free(q) == 0); q = hy_query_create(sack); hy_query_filter(q, HY_PKG_NAME, HY_EQ, "jay"); ck_assert_int_eq(size_and_free(q), 2); }
END_TEST START_TEST(test_goal_change) { // test that changes are handled like reinstalls DnfSack *sack = test_globals.sack; HyGoal goal = hy_goal_create(sack); hy_goal_upgrade_all(goal); fail_if(hy_goal_run(goal)); assert_iueo(goal, 0, 1, 0, 0); fail_unless(size_and_free(hy_goal_list_reinstalls(goal, NULL)) == 1); hy_goal_free(goal); }
END_TEST START_TEST(test_goal_upgrade_disabled_repo) { DnfSack *sack = test_globals.sack; HyGoal goal = hy_goal_create(sack); hy_goal_upgrade_all(goal); hy_goal_run(goal); fail_unless(size_and_free(hy_goal_list_upgrades(goal, NULL)) == 5); hy_goal_free(goal); dnf_sack_repo_enabled(sack, "updates", 0); goal = hy_goal_create(sack); hy_goal_upgrade_all(goal); hy_goal_run(goal); assert_iueo(goal, 0, 1, 0, 0); hy_goal_free(goal); }
END_TEST START_TEST(test_goal_upgrade_all_excludes) { DnfSack *sack = test_globals.sack; HyQuery q = hy_query_create_flags(sack, HY_IGNORE_EXCLUDES); hy_query_filter(q, HY_PKG_NAME, HY_EQ, "pilchard"); DnfPackageSet *pset = hy_query_run_set(q); dnf_sack_add_excludes(sack, pset); g_object_unref(pset); hy_query_free(q); HyGoal goal = hy_goal_create(sack); hy_goal_upgrade_all(goal); hy_goal_run(goal); fail_unless(size_and_free(hy_goal_list_upgrades(goal, NULL)) == 3); hy_goal_free(goal); }
END_TEST START_TEST(test_query_provides_in) { HyPackage pkg; HyPackageList plist; char* pkg_names[] = { "P", "fool <= 2.0", "fool-lib > 3-3", NULL }; HyQuery q = hy_query_create(test_globals.sack); hy_query_filter_provides_in(q, pkg_names); plist = hy_query_run(q); pkg = hy_packagelist_get(plist, 0); ck_assert_str_eq(hy_package_get_name(pkg), "fool"); ck_assert_str_eq(hy_package_get_evr(pkg), "1-3"); pkg = hy_packagelist_get(plist, 1); ck_assert_str_eq(hy_package_get_name(pkg), "penny"); pkg = hy_packagelist_get(plist, 2); ck_assert_str_eq(hy_package_get_name(pkg), "fool"); ck_assert_str_eq(hy_package_get_evr(pkg), "1-5"); fail_unless(size_and_free(q) == 3); hy_packagelist_free(plist); }