END_TEST START_TEST(test_goal_downgrade) { DnfSack *sack = test_globals.sack; DnfPackage *to_be_pkg = get_available_pkg(sack, "baby"); HyGoal goal = hy_goal_create(sack); hy_goal_downgrade_to(goal, to_be_pkg); fail_if(hy_goal_run(goal)); assert_iueo(goal, 0, 0, 0, 0); GPtrArray *plist = hy_goal_list_downgrades(goal, NULL); fail_unless(plist->len == 1); DnfPackage *pkg = g_ptr_array_index(plist, 0); ck_assert_str_eq(dnf_package_get_evr(pkg), "6:4.9-3"); GPtrArray *obsoleted = hy_goal_list_obsoleted_by_package(goal, pkg); fail_unless(obsoleted->len == 1); DnfPackage *old_pkg = g_ptr_array_index(obsoleted, 0); ck_assert_str_eq(dnf_package_get_evr(old_pkg), "6:5.0-11"); g_ptr_array_unref(obsoleted); g_ptr_array_unref(plist); hy_goal_free(goal); g_object_unref(to_be_pkg); }
END_TEST START_TEST(test_goal_downgrade) { HySack sack = test_globals.sack; HyPackage to_be_pkg = get_available_pkg(sack, "baby"); HyGoal goal = hy_goal_create(sack); hy_goal_downgrade_to(goal, to_be_pkg); fail_if(hy_goal_run(goal)); assert_iueo(goal, 0, 0, 0, 0); HyPackageList plist = hy_goal_list_downgrades(goal); fail_unless(hy_packagelist_count(plist) == 1); HyPackage pkg = hy_packagelist_get(plist, 0); ck_assert_str_eq(hy_package_get_evr(pkg), "6:4.9-3"); HyPackageList obsoleted = hy_goal_list_obsoleted_by_package(goal, pkg); fail_unless(hy_packagelist_count(obsoleted) == 1); HyPackage old_pkg = hy_packagelist_get(obsoleted, 0); ck_assert_str_eq(hy_package_get_evr(old_pkg), "6:5.0-11"); hy_packagelist_free(obsoleted); hy_packagelist_free(plist); hy_goal_free(goal); hy_package_free(to_be_pkg); }
static PyObject * obsoleted_by_package(_GoalObject *self, PyObject *pkg) { HifPackage *cpkg = packageFromPyObject(pkg); if (cpkg == NULL) return NULL; GPtrArray *plist = hy_goal_list_obsoleted_by_package(self->goal, cpkg); PyObject *list = packagelist_to_pylist(plist, self->sack); g_ptr_array_unref(plist); return list; }
static PyObject * obsoleted_by_package(_GoalObject *self, PyObject *pkg) { HyPackage cpkg = packageFromPyObject(pkg); if (cpkg == NULL) return NULL; HyPackageList plist = hy_goal_list_obsoleted_by_package(self->goal, cpkg); PyObject *list = packagelist_to_pylist(plist, self->sack); hy_packagelist_free(plist); return list; }
static void update(HySack sack, HyPackage pkg) { HyGoal goal = hy_goal_create(sack); if (hy_goal_upgrade_to_flags(goal, pkg, HY_CHECK_INSTALLED)) { printf("no package of that name installed, trying install\n"); hy_goal_install(goal, pkg); } if (hy_goal_run(goal)) { dump_goal_errors(goal); // handle errors goto finish; } // handle upgrades HyPackageList plist = hy_goal_list_upgrades(goal); printf("upgrade count: %d\n", hy_packagelist_count(plist)); for (int i = 0; i < hy_packagelist_count(plist); ++i) { HyPackage pkg = hy_packagelist_get(plist, i); char *nvra = hy_package_get_nevra(pkg); char *location = hy_package_get_location(pkg); HyPackageList obsoleted = hy_goal_list_obsoleted_by_package(goal, pkg); HyPackage installed = hy_packagelist_get(obsoleted, 0); char *nvra_installed = hy_package_get_nevra(installed); printf("upgrading: %s using %s\n", nvra, location); printf("\tfrom: %s\n", nvra_installed); printf("\tsize: %lld kB\n", hy_package_get_size(pkg) / 1024); hy_free(nvra_installed); hy_packagelist_free(obsoleted); hy_free(location); hy_free(nvra); } hy_packagelist_free(plist); // handle installs plist = hy_goal_list_installs(goal); printf("install count: %d\n", hy_packagelist_count(plist)); for (int i = 0; i < hy_packagelist_count(plist); ++i) { HyPackage pkg = hy_packagelist_get(plist, i); char *nvra = hy_package_get_nevra(pkg); char *location = hy_package_get_location(pkg); printf("installing: %s using %s\n", nvra, location); printf("\tsize: %lld kB\n", hy_package_get_size(pkg) / 1024); hy_free(location); hy_free(nvra); } hy_packagelist_free(plist); finish: hy_goal_free(goal); }
static void update(HifSack *sack, HifPackage *pkg) { HyGoal goal = hy_goal_create(sack); if (hy_goal_upgrade_to_flags(goal, pkg, HY_CHECK_INSTALLED)) { printf("no package of that name installed, trying install\n"); hy_goal_install(goal, pkg); } if (hy_goal_run(goal)) { dump_goal_errors(goal); // handle errors goto finish; } // handle upgrades GPtrArray *plist = hy_goal_list_upgrades(goal, NULL); printf("upgrade count: %d\n", plist->len); for (unsigned int i = 0; i < plist->len; ++i) { HifPackage *upkg = g_ptr_array_index(plist, i); const char *nvra = hif_package_get_nevra(upkg); char *location = hif_package_get_location(upkg); GPtrArray *obsoleted = hy_goal_list_obsoleted_by_package(goal, upkg); HifPackage *installed = g_ptr_array_index(obsoleted, 0); const char *nvra_installed = hif_package_get_nevra(installed); printf("upgrading: %s using %s\n", nvra, location); printf("\tfrom: %s\n", nvra_installed); printf("\tsize: %lu kB\n", hif_package_get_size(upkg) / 1024); g_ptr_array_unref(obsoleted); g_free(location); } g_ptr_array_unref(plist); // handle installs plist = hy_goal_list_installs(goal, NULL); printf("install count: %d\n", plist->len); for (unsigned int i = 0; i < plist->len; ++i) { HifPackage *ipkg = g_ptr_array_index(plist, i); const char *nvra = hif_package_get_nevra(ipkg); char *location = hif_package_get_location(ipkg); printf("installing: %s using %s\n", nvra, location); printf("\tsize: %lu kB\n", hif_package_get_size(ipkg) / 1024); g_free(location); } g_ptr_array_unref(plist); finish: hy_goal_free(goal); }