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);
}