From: Michael Tremer Date: Thu, 27 Oct 2022 10:30:01 +0000 (+0000) Subject: tests: Add a test that writes a filelist and reads it back X-Git-Tag: 0.9.28~195 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=385195e2042b0d44e968f4173f7d09f139efdf00;p=pakfire.git tests: Add a test that writes a filelist and reads it back Signed-off-by: Michael Tremer --- diff --git a/tests/libpakfire/package.c b/tests/libpakfire/package.c index 3e59401cb..7bddda754 100644 --- a/tests/libpakfire/package.c +++ b/tests/libpakfire/package.c @@ -240,11 +240,74 @@ FAIL: return r; } +static int test_filelist(const struct test* t) { + struct pakfire_filelist* filelist = NULL; + struct pakfire_file* file = NULL; + struct pakfire_package* pkg = NULL; + int r = EXIT_FAILURE; + + // Create a filelist + ASSERT_SUCCESS(pakfire_filelist_create(&filelist, t->pakfire)); + + // Create a file + ASSERT_SUCCESS(pakfire_file_create(&file, t->pakfire)); + + // Store some path + ASSERT_SUCCESS(pakfire_file_set_path(file, "/bin/bash")); + + // Append the file to the filelist + ASSERT_SUCCESS(pakfire_filelist_append(filelist, file)); + + // Free the file + pakfire_file_unref(file); + file = NULL; + + ASSERT_EQUALS(pakfire_filelist_size(filelist), 1); + + // Create a new package + ASSERT_SUCCESS(pakfire_package_create(&pkg, t->pakfire, NULL, + "bash", "1.0-1", "i386")); + + // Set filelist + ASSERT_SUCCESS(pakfire_package_set_filelist(pkg, filelist)); + + // Drop the filelist + pakfire_filelist_unref(filelist); + filelist = NULL; + + // Fetch the filelist back from the package + ASSERT(filelist = pakfire_package_get_filelist(pkg)); + + // The filelist must have a length of one + ASSERT_EQUALS(pakfire_filelist_size(filelist), 1); + + for (unsigned int i = 0; i < pakfire_filelist_size(filelist); i++) { + ASSERT(file = pakfire_filelist_get(filelist, i)); + + // Check the path + ASSERT_STRING_EQUALS(pakfire_file_get_path(file), "/bin/bash"); + } + + // Everything passed + r = EXIT_SUCCESS; + +FAIL: + if (filelist) + pakfire_filelist_unref(filelist); + if (file) + pakfire_file_unref(file); + if (pkg) + pakfire_package_unref(pkg); + + return r; +} + int main(int argc, const char* argv[]) { testsuite_add_test(test_create); testsuite_add_test(test_invalid_inputs); testsuite_add_test(test_uuid); testsuite_add_test(test_deps); + testsuite_add_test(test_filelist); return testsuite_run(argc, argv); }