diff options
author | Aleš Matěj <amatej@redhat.com> | 2022-03-17 16:29:47 +0300 |
---|---|---|
committer | Neal Gompa (ニール・ゴンパ) <ngompa13@gmail.com> | 2022-03-29 07:56:13 +0300 |
commit | dc4542488c09f4d51f04f79ea146d6d79085bbc1 (patch) | |
tree | e613c4a49cea0776162f7030868e092afb9f5ab8 | |
parent | a5a5cf64c73dcd2c07f4902efef44ec07ae365d7 (diff) |
Remove C API for cr_xml_parse_main_metadata_together
It is obsoleted by cr_PkgIterator_new and its API.
It also converts some of the tests to using cr_PkgIterator.
-rw-r--r-- | src/xml_parser.h | 38 | ||||
-rw-r--r-- | src/xml_parser_main_metadata_together.c | 59 | ||||
-rw-r--r-- | tests/test_xml_parser_main_metadata_together.c | 327 |
3 files changed, 115 insertions, 309 deletions
diff --git a/src/xml_parser.h b/src/xml_parser.h index 6e1e3f1..26bd06c 100644 --- a/src/xml_parser.h +++ b/src/xml_parser.h @@ -278,44 +278,6 @@ cr_xml_parse_updateinfo(const char *path, void *warningcb_data, GError **err); -/** Parse all 3 main metadata types (primary, filelists and other) at the same time. - * Once a package is fully parsed pkgcb is called, if a cr_Package wasn't provided using - * newpkgcb new cr_Package is created and its ownership is transferred to the user by the - * pkgcb call. - * This means we don't have store all the packages in memory at the same time, which - * significantly reduces the memory footprint. - * Input metadata files can be compressed. - * Metadata primary, filelists and other have to have the packages in the same order. - * @param primary_path Path to a primary xml file. - * @param filelists_path Path to a filelists xml file. - * @param other_path Path to an other xml file. - * @param newpkgcb Callback for a new package. Called when the new package - * xml chunk is found and a package object to store the data - * is needed. If this callback is used, the user has full - * ownership of the package, it will not be freed if the - * parsing is interrupted or there is an error. - * @param newpkgcb_data User data for the newpkgcb. - * @param pkgcb Package callback. Called when a package is completely - * parsed containing information from all 3 main metadata - * files. Could be NULL if newpkgcb is not NULL. - * @param pkgcb_data User data for the pkgcb. - * @param warningcb Callback for warning messages. - * @param warningcb_data User data for the warningcb. - * @param err GError ** - * @return cr_Error code. - */ -int -cr_xml_parse_main_metadata_together(const char *primary_path, - const char *filelists_path, - const char *other_path, - cr_XmlParserNewPkgCb newpkgcb, - void *newpkgcb_data, - cr_XmlParserPkgCb pkgcb, - void *pkgcb_data, - cr_XmlParserWarningCb warningcb, - void *warningcb_data, - GError **err); - typedef struct _cr_PkgIterator cr_PkgIterator; cr_PkgIterator * diff --git a/src/xml_parser_main_metadata_together.c b/src/xml_parser_main_metadata_together.c index 3836fbb..684cf27 100644 --- a/src/xml_parser_main_metadata_together.c +++ b/src/xml_parser_main_metadata_together.c @@ -319,65 +319,6 @@ parse_next_section(CR_FILE *target_file, const char *path, cr_ParserData *pd, GE //TODO(amatej): there is quite some overlap with this and cr_load_xml_files, // consider using this api to implement cr_load_xml_files? -int cr_xml_parse_main_metadata_together(const char *primary_path, - const char *filelists_path, - const char *other_path, - cr_XmlParserNewPkgCb newpkgcb, - void *newpkgcb_data, - cr_XmlParserPkgCb pkgcb, - void *pkgcb_data, - cr_XmlParserWarningCb warningcb, - void *warningcb_data, - GError **err) -{ - assert(pkgcb || newpkgcb); - cr_PkgIterator* pkg_iterator = cr_PkgIterator_new( - primary_path, filelists_path, other_path, newpkgcb, newpkgcb_data, warningcb, warningcb_data, err - ); - - if (*err) { - return (*err)->code; - } - - assert(pkg_iterator); - cr_Package* package = NULL; - GError* tmp_err = NULL; - - while (package = cr_PkgIterator_parse_next(pkg_iterator, err)) { - if (pkgcb) { - // call user package callback - // pkgcb() destroys the package!! - if (pkgcb(package, pkgcb_data, &tmp_err)) { - // Error condition - if (tmp_err) { - g_propagate_prefixed_error(err, tmp_err, "Parsing interrupted: "); - } else { - g_set_error(err, ERR_DOMAIN, CRE_CBINTERRUPTED, "Parsing interrupted"); - } - cr_PkgIterator_free(pkg_iterator, err); - return CRE_CBINTERRUPTED; - } else { - // If callback return CRE_OK but it simultaneously set - // the tmp_err then it's a programming error. - assert(tmp_err == NULL); - } - } else { - // Free the package if there is no external callback to do so and we have no newpkgcb - if (!newpkgcb) { - cr_package_free(package); - } - } - } - - cr_PkgIterator_free(pkg_iterator, err); - - if (*err) { - return (*err)->code; - } else { - return CRE_OK; - } -} - // TODO: maybe whether or not individual files are parsed could be controlled by NULL paths? I think cr_load_xml_files // already works that way. cr_PkgIterator * diff --git a/tests/test_xml_parser_main_metadata_together.c b/tests/test_xml_parser_main_metadata_together.c index 8ce417d..09a53dd 100644 --- a/tests/test_xml_parser_main_metadata_together.c +++ b/tests/test_xml_parser_main_metadata_together.c @@ -29,54 +29,6 @@ #include "createrepo/xml_parser_internal.h" // Callbacks - -static int -pkgcb(cr_Package *pkg, void *cbdata, GError **err) -{ - g_assert(pkg); - g_assert(!err || *err == NULL); - if (cbdata) *((int *)cbdata) += 1; - cr_package_free(pkg); - return CR_CB_RET_OK; -} - -static int -pkgcb_interrupt(cr_Package *pkg, void *cbdata, GError **err) -{ - g_assert(pkg); - g_assert(!err || *err == NULL); - if (cbdata) *((int *)cbdata) += 1; - cr_package_free(pkg); - return CR_CB_RET_ERR; -} - -static int -newpkgcb(cr_Package **pkg, - G_GNUC_UNUSED const char *pkgId, - const char *name, - G_GNUC_UNUSED const char *arch, - G_GNUC_UNUSED void *cbdata, - GError **err) -{ - g_assert(pkg != NULL); - g_assert(*pkg == NULL); - g_assert(pkgId != NULL); - g_assert(!err || *err == NULL); - - *pkg = cr_package_new(); - cr_Package **list; - - if (cbdata) { - cr_Package **pkgl = cbdata; - for (; *pkgl; pkgl++) { - continue; - } - *pkgl = *pkg; - } - - return CR_CB_RET_OK; -} - static int newpkgcb_skip_fake_bash(cr_Package **pkg, G_GNUC_UNUSED const char *pkgId, @@ -146,230 +98,193 @@ warningcb_interrupt(G_GNUC_UNUSED cr_XmlParserWarningType type, return CR_CB_RET_ERR; } -// Tests - static void -test_cr_xml_parse_main_metadata_together_00(void) +test_cr_xml_package_iterator_00(void) { int parsed = 0; GError *tmp_err = NULL; - int ret = cr_xml_parse_main_metadata_together(TEST_REPO_02_PRIMARY, TEST_REPO_02_FILELISTS, TEST_REPO_02_OTHER, - NULL, NULL, pkgcb, &parsed, NULL, NULL, &tmp_err); + cr_Package *package = NULL; + + cr_PkgIterator *pkg_iterator = cr_PkgIterator_new( + TEST_REPO_02_PRIMARY, TEST_REPO_02_FILELISTS, TEST_REPO_02_OTHER, NULL, NULL, NULL, NULL, &tmp_err); + + while ((package = cr_PkgIterator_parse_next(pkg_iterator, &tmp_err))) { + parsed++; + cr_package_free(package); + } + + g_assert(cr_PkgIterator_is_finished(pkg_iterator)); + cr_PkgIterator_free(pkg_iterator, &tmp_err); + g_assert(tmp_err == NULL); - g_assert_cmpint(ret, ==, CRE_OK); g_assert_cmpint(parsed, ==, 2); } -static void -test_cr_xml_parse_main_metadata_together_01_out_of_order_pkgs(void) -{ - int parsed = 0; - GError *tmp_err = NULL; - int ret = cr_xml_parse_main_metadata_together(TEST_REPO_02_PRIMARY, - TEST_DIFF_ORDER_FILELISTS, - TEST_REPO_02_OTHER, - NULL, NULL, pkgcb, &parsed, NULL, NULL, &tmp_err); - g_assert(tmp_err != NULL); - g_assert_cmpint(ret, ==, CRE_XMLPARSER); - g_clear_error(&tmp_err); -} static void -test_cr_xml_parse_main_metadata_together_02_invalid_path(void) +test_cr_xml_package_iterator_01_warningcb_interrupt(void) { int parsed = 0; + int numofwarnings = 0; GError *tmp_err = NULL; - int ret = cr_xml_parse_main_metadata_together("/non/existent/file", TEST_REPO_02_FILELISTS, TEST_REPO_02_OTHER, - NULL, NULL, pkgcb, &parsed, NULL, NULL, &tmp_err); - g_assert(tmp_err != NULL); - g_assert_cmpint(ret, ==, CRE_NOFILE); - g_error_free(tmp_err); -} + cr_Package *package = NULL; -static void -test_cr_xml_parse_main_metadata_together_03_newpkgcb_returns_null(void) -{ - int parsed = 0; - GError *tmp_err = NULL; - int ret = cr_xml_parse_main_metadata_together(TEST_REPO_02_PRIMARY, TEST_REPO_02_FILELISTS, TEST_REPO_02_OTHER, - newpkgcb_skip_fake_bash, NULL, pkgcb, &parsed, NULL, NULL, &tmp_err); - g_assert(tmp_err == NULL); - g_assert_cmpint(ret, ==, CRE_OK); - g_assert_cmpint(parsed, ==, 1); + cr_PkgIterator *pkg_iterator = cr_PkgIterator_new( + TEST_REPO_02_PRIMARY, TEST_MRF_BAD_TYPE_FIL, TEST_REPO_02_OTHER, NULL, NULL, warningcb_interrupt, &numofwarnings, &tmp_err); - parsed = 0; - ret = cr_xml_parse_main_metadata_together(TEST_REPO_02_PRIMARY, TEST_DIFF_ORDER_FILELISTS, TEST_REPO_02_OTHER, - newpkgcb_skip_fake_bash, NULL, pkgcb, &parsed, NULL, NULL, &tmp_err); - g_assert(tmp_err == NULL); - g_assert_cmpint(ret, ==, CRE_OK); - g_assert_cmpint(parsed, ==, 1); + while ((package = cr_PkgIterator_parse_next(pkg_iterator, &tmp_err))) { + parsed++; + cr_package_free(package); + } - parsed = 0; - ret = cr_xml_parse_main_metadata_together(TEST_REPO_02_PRIMARY, TEST_DIFF_ORDER_FILELISTS, TEST_REPO_02_OTHER, - newpkgcb_skip_fake_bash, NULL, pkgcb, &parsed, NULL, NULL, &tmp_err); - g_assert(tmp_err == NULL); - g_assert_cmpint(ret, ==, CRE_OK); - g_assert_cmpint(parsed, ==, 1); -} + cr_PkgIterator_free(pkg_iterator, &tmp_err); -static void -test_cr_xml_parse_main_metadata_together_04_newpkgcb_interrupt(void) -{ - int parsed = 0; - GError *tmp_err = NULL; - int ret = cr_xml_parse_main_metadata_together(TEST_REPO_02_PRIMARY, TEST_REPO_02_FILELISTS, TEST_REPO_02_OTHER, - newpkgcb_interrupt, &parsed, NULL, NULL, NULL, NULL, &tmp_err); g_assert(tmp_err != NULL); - g_error_free(tmp_err); - g_assert_cmpint(ret, ==, CRE_CBINTERRUPTED); - g_assert_cmpint(parsed, ==, 1); + g_assert_cmpint(parsed, ==, 0); + g_assert_cmpint(tmp_err->code, ==, CRE_CBINTERRUPTED); + g_assert_cmpint(numofwarnings, ==, 1); + g_clear_error(&tmp_err); } static void -test_cr_xml_parse_main_metadata_together_05_pkgcb_interrupt(void) +test_cr_xml_package_iterator_02_long_primary(void) { int parsed = 0; GError *tmp_err = NULL; - int ret = cr_xml_parse_main_metadata_together(TEST_REPO_02_PRIMARY, TEST_REPO_02_FILELISTS, TEST_REPO_02_OTHER, - NULL, NULL, pkgcb_interrupt, &parsed, NULL, NULL, &tmp_err); - g_assert(tmp_err != NULL); - g_error_free(tmp_err); - g_assert_cmpint(ret, ==, CRE_CBINTERRUPTED); - g_assert_cmpint(parsed, ==, 1); -} + cr_Package *package = NULL; + + cr_PkgIterator *pkg_iterator = cr_PkgIterator_new( + TEST_LONG_PRIMARY, TEST_REPO_02_FILELISTS, TEST_REPO_02_OTHER, NULL, NULL, NULL, NULL, &tmp_err); + + while ((package = cr_PkgIterator_parse_next(pkg_iterator, &tmp_err))) { + parsed++; + cr_package_free(package); + } + + g_assert(cr_PkgIterator_is_finished(pkg_iterator)); + cr_PkgIterator_free(pkg_iterator, &tmp_err); -static void -test_cr_xml_parse_main_metadata_together_06_warnings_bad_file_type(void) -{ - int parsed = 0; - char *warnmsgs; - GError *tmp_err = NULL; - GString *warn_strings = g_string_new(0); - int ret = cr_xml_parse_main_metadata_together(TEST_REPO_02_PRIMARY, TEST_MRF_BAD_TYPE_FIL, TEST_REPO_02_OTHER, - NULL, NULL, pkgcb, &parsed, warningcb, warn_strings, &tmp_err); g_assert(tmp_err == NULL); - g_assert_cmpint(ret, ==, CRE_OK); g_assert_cmpint(parsed, ==, 2); - warnmsgs = g_string_free(warn_strings, FALSE); - g_assert_cmpstr(warnmsgs, ==, "Unknown file type \"foo\";"); - g_free(warnmsgs); } static void -test_cr_xml_parse_main_metadata_together_07_warningcb_interrupt(void) +test_cr_xml_package_iterator_03_out_of_order_pkgs(void) { - int numofwarnings = 0; GError *tmp_err = NULL; - int ret = cr_xml_parse_main_metadata_together(TEST_REPO_02_PRIMARY, TEST_MRF_BAD_TYPE_FIL, TEST_REPO_02_OTHER, - NULL, NULL, pkgcb, NULL, warningcb_interrupt, &numofwarnings, - &tmp_err); + cr_Package *package = NULL; + + cr_PkgIterator *pkg_iterator = cr_PkgIterator_new( + TEST_REPO_02_PRIMARY, TEST_DIFF_ORDER_FILELISTS, TEST_REPO_02_OTHER, NULL, NULL, NULL, NULL, &tmp_err); + + package = cr_PkgIterator_parse_next(pkg_iterator, &tmp_err); + + g_assert(package == NULL); g_assert(tmp_err != NULL); - g_error_free(tmp_err); - g_assert_cmpint(ret, ==, CRE_CBINTERRUPTED); - g_assert_cmpint(numofwarnings, ==, 1); + + cr_PkgIterator_free(pkg_iterator, &tmp_err); } static void -test_cr_xml_parse_main_metadata_together_071_multiple_warningcb(void) +test_cr_xml_package_iterator_04_invalid_path(void) { - char *warnmsgs; - GString *warn_strings = g_string_new(0); - cr_Package *list_of_pkgs[2] = {NULL, NULL}; GError *tmp_err = NULL; - int ret = cr_xml_parse_main_metadata_together(TEST_PRIMARY_MULTI_WARN_00, TEST_FILELISTS_MULTI_WARN_00, TEST_OTHER_MULTI_WARN_00, - newpkgcb, &list_of_pkgs, NULL, NULL, warningcb, warn_strings, &tmp_err); - g_assert(tmp_err == NULL); - g_assert(list_of_pkgs[0] != NULL); - g_assert(list_of_pkgs[1] != NULL); - cr_package_free(list_of_pkgs[0]); - cr_package_free(list_of_pkgs[1]); - g_assert_cmpint(ret, ==, CRE_OK); - warnmsgs = g_string_free(warn_strings, FALSE); - g_assert_cmpstr(warnmsgs, ==, "Unknown element \"fooelement\";Missing attribute \"type\" of a package element;Unknown element \"foo\";Conversion of \"foobar\" to integer failed;Unknown element \"bar\";Missing attribute \"arch\" of a package element;Unknown file type \"xxx\";Unknown element \"bar\";Missing attribute \"name\" of a package element;Unknown element \"bar\";Conversion of \"xxx\" to integer failed;"); - g_free(warnmsgs); -} + cr_PkgIterator *pkg_iterator = cr_PkgIterator_new( + "/non/existing/file.xml", TEST_REPO_02_FILELISTS, TEST_REPO_02_OTHER, NULL, NULL, NULL, NULL, &tmp_err); -static void -test_cr_xml_parse_main_metadata_together_08_long_primary(void) -{ - int parsed = 0; - GError *tmp_err = NULL; - int ret = cr_xml_parse_main_metadata_together(TEST_LONG_PRIMARY, TEST_REPO_02_FILELISTS, TEST_REPO_02_OTHER, - NULL, NULL, pkgcb, &parsed, NULL, NULL, &tmp_err); - g_assert(tmp_err == NULL); - g_assert_cmpint(ret, ==, CRE_OK); - g_assert_cmpint(parsed, ==, 2); + g_assert(pkg_iterator == NULL); + g_assert(tmp_err != NULL); } static void -test_cr_xml_package_iterator_00(void) +test_cr_xml_package_iterator_05_newpkgcb_returns_null(void) { int parsed = 0; GError *tmp_err = NULL; cr_Package *package = NULL; cr_PkgIterator *pkg_iterator = cr_PkgIterator_new( - TEST_REPO_02_PRIMARY, TEST_REPO_02_FILELISTS, TEST_REPO_02_OTHER, NULL, NULL, NULL, NULL, &tmp_err); + TEST_REPO_02_PRIMARY, TEST_REPO_02_FILELISTS, TEST_REPO_02_OTHER, newpkgcb_skip_fake_bash, NULL, NULL, NULL, &tmp_err); while ((package = cr_PkgIterator_parse_next(pkg_iterator, &tmp_err))) { parsed++; cr_package_free(package); } - g_assert(cr_PkgIterator_is_finished(pkg_iterator)); cr_PkgIterator_free(pkg_iterator, &tmp_err); g_assert(tmp_err == NULL); - g_assert_cmpint(parsed, ==, 2); + g_assert_cmpint(parsed, ==, 1); } +static void +test_cr_xml_package_iterator_06_newpkgcb_interrupt(void) +{ + GError *tmp_err = NULL; + cr_Package *package = NULL; + int new_cb_count = 0; + + cr_PkgIterator *pkg_iterator = cr_PkgIterator_new( + TEST_REPO_02_PRIMARY, TEST_REPO_02_FILELISTS, TEST_REPO_02_OTHER, newpkgcb_interrupt, &new_cb_count, NULL, NULL, &tmp_err); + + package = cr_PkgIterator_parse_next(pkg_iterator, &tmp_err); + + g_assert(package == NULL); + g_assert(tmp_err != NULL); + g_assert_cmpint(new_cb_count, ==, 1); + + cr_PkgIterator_free(pkg_iterator, &tmp_err); +} static void -test_cr_xml_package_iterator_01_warningcb_interrupt(void) +test_cr_xml_package_iterator_07_warnings_bad_file_type(void) { - int parsed = 0; - int numofwarnings = 0; GError *tmp_err = NULL; cr_Package *package = NULL; + GString *warn_strings = g_string_new(0); + int parsed = 0; cr_PkgIterator *pkg_iterator = cr_PkgIterator_new( - TEST_REPO_02_PRIMARY, TEST_MRF_BAD_TYPE_FIL, TEST_REPO_02_OTHER, NULL, NULL, warningcb_interrupt, &numofwarnings, &tmp_err); + TEST_REPO_02_PRIMARY, TEST_MRF_BAD_TYPE_FIL, TEST_REPO_02_OTHER, NULL, NULL, warningcb, warn_strings, &tmp_err); while ((package = cr_PkgIterator_parse_next(pkg_iterator, &tmp_err))) { parsed++; cr_package_free(package); } - cr_PkgIterator_free(pkg_iterator, &tmp_err); + g_assert(tmp_err == NULL); + g_assert_cmpint(parsed, ==, 2); + char *warnmsgs = g_string_free(warn_strings, FALSE); + g_assert_cmpstr(warnmsgs, ==, "Unknown file type \"foo\";"); + g_free(warnmsgs); - g_assert(tmp_err != NULL); - g_assert_cmpint(parsed, ==, 0); - g_assert_cmpint(tmp_err->code, ==, CRE_CBINTERRUPTED); - g_assert_cmpint(numofwarnings, ==, 1); - g_clear_error(&tmp_err); + cr_PkgIterator_free(pkg_iterator, &tmp_err); } static void -test_cr_xml_package_iterator_02_long_primary(void) +test_cr_xml_package_iterator_08_multiple_warningscb(void) { - int parsed = 0; GError *tmp_err = NULL; cr_Package *package = NULL; + GString *warn_strings = g_string_new(0); + int parsed = 0; cr_PkgIterator *pkg_iterator = cr_PkgIterator_new( - TEST_LONG_PRIMARY, TEST_REPO_02_FILELISTS, TEST_REPO_02_OTHER, NULL, NULL, NULL, NULL, &tmp_err); + TEST_PRIMARY_MULTI_WARN_00, TEST_FILELISTS_MULTI_WARN_00, TEST_OTHER_MULTI_WARN_00, NULL, NULL, warningcb, warn_strings, &tmp_err); while ((package = cr_PkgIterator_parse_next(pkg_iterator, &tmp_err))) { parsed++; cr_package_free(package); } - g_assert(cr_PkgIterator_is_finished(pkg_iterator)); - cr_PkgIterator_free(pkg_iterator, &tmp_err); - g_assert(tmp_err == NULL); g_assert_cmpint(parsed, ==, 2); + char *warnmsgs = g_string_free(warn_strings, FALSE); + g_assert_cmpstr(warnmsgs, ==, "Unknown element \"fooelement\";Missing attribute \"type\" of a package element;Unknown element \"foo\";Conversion of \"foobar\" to integer failed;Unknown element \"bar\";Missing attribute \"arch\" of a package element;Unknown file type \"xxx\";Unknown element \"bar\";Missing attribute \"name\" of a package element;Unknown element \"bar\";Conversion of \"xxx\" to integer failed;"); + g_free(warnmsgs); + + cr_PkgIterator_free(pkg_iterator, &tmp_err); } int @@ -377,36 +292,6 @@ main(int argc, char *argv[]) { g_test_init(&argc, &argv, NULL); - g_test_add_func("/xml_parser_main_metadata/test_cr_xml_parse_main_metadata_together_00", - test_cr_xml_parse_main_metadata_together_00); - - g_test_add_func("/xml_parser_main_metadata/test_cr_xml_parse_main_metadata_together_01_out_of_order_pkgs", - test_cr_xml_parse_main_metadata_together_01_out_of_order_pkgs); - - g_test_add_func("/xml_parser_main_metadata/test_cr_xml_parse_main_metadata_together_02_invalid_path", - test_cr_xml_parse_main_metadata_together_02_invalid_path); - - g_test_add_func("/xml_parser_main_metadata/test_cr_xml_parse_main_metadata_together_03_newpkgcb_returns_null", - test_cr_xml_parse_main_metadata_together_03_newpkgcb_returns_null); - - g_test_add_func("/xml_parser_main_metadata/test_cr_xml_parse_main_metadata_together_04_newpkgcb_interrupt", - test_cr_xml_parse_main_metadata_together_04_newpkgcb_interrupt); - - g_test_add_func("/xml_parser_main_metadata/test_cr_xml_parse_main_metadata_together_05_pkgcb_interrupt", - test_cr_xml_parse_main_metadata_together_05_pkgcb_interrupt); - - g_test_add_func("/xml_parser_main_metadata/test_cr_xml_parse_main_metadata_together_06_warnings_bad_file_type", - test_cr_xml_parse_main_metadata_together_06_warnings_bad_file_type); - - g_test_add_func("/xml_parser_main_metadata/test_cr_xml_parse_main_metadata_together_07_warningcb_interrupt", - test_cr_xml_parse_main_metadata_together_07_warningcb_interrupt); - - g_test_add_func("/xml_parser_main_metadata/test_cr_xml_parse_main_metadata_together_08_long_primary", - test_cr_xml_parse_main_metadata_together_08_long_primary); - - g_test_add_func("/xml_parser_main_metadata/test_cr_xml_parse_main_metadata_together_071_multiple_warningcb", - test_cr_xml_parse_main_metadata_together_071_multiple_warningcb); - g_test_add_func("/xml_parser_main_metadata/test_cr_xml_package_iterator_00", test_cr_xml_package_iterator_00); @@ -416,5 +301,23 @@ main(int argc, char *argv[]) g_test_add_func("/xml_parser_main_metadata/test_cr_xml_package_iterator_02_long_primary", test_cr_xml_package_iterator_02_long_primary); + g_test_add_func("/xml_parser_main_metadata/test_cr_xml_package_iterator_03_out_of_order_pkgs", + test_cr_xml_package_iterator_03_out_of_order_pkgs); + + g_test_add_func("/xml_parser_main_metadata/test_cr_xml_package_iterator_04_invalid_path", + test_cr_xml_package_iterator_04_invalid_path); + + g_test_add_func("/xml_parser_main_metadata/test_cr_xml_package_iterator_05_newpkgcb_returns_null", + test_cr_xml_package_iterator_05_newpkgcb_returns_null); + + g_test_add_func("/xml_parser_main_metadata/test_cr_xml_package_iterator_06_newpkgcb_interrupt", + test_cr_xml_package_iterator_06_newpkgcb_interrupt); + + g_test_add_func("/xml_parser_main_metadata/test_cr_xml_package_iterator_07_warnings_bad_file_type", + test_cr_xml_package_iterator_07_warnings_bad_file_type); + + g_test_add_func("/xml_parser_main_metadata/test_cr_xml_package_iterator_08_multiple_warningscb", + test_cr_xml_package_iterator_08_multiple_warningscb); + return g_test_run(); } |