]> git.ipfire.org Git - people/stevee/pakfire.git/commitdiff
tests: Add a simple test for filelists
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 21 Feb 2023 18:15:37 +0000 (18:15 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 21 Feb 2023 18:15:37 +0000 (18:15 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
tests/libpakfire/file.c

index ae1716723f0d0b8747c0deaf87192e5be63e09ff..d32f5dd4c9a7225d0c8cf430129e8d0d9a81d6ab 100644 (file)
@@ -19,6 +19,7 @@
 #############################################################################*/
 
 #include <pakfire/file.h>
+#include <pakfire/filelist.h>
 
 #include "../testsuite.h"
 
@@ -62,10 +63,58 @@ FAIL:
        return EXIT_FAILURE;
 }
 
+static int test_create_filelist(const struct test* t) {
+       struct pakfire_filelist* list = NULL;
+       struct pakfire_file* file1 = NULL;
+       struct pakfire_file* file2 = NULL;
+       struct pakfire_file* file3 = NULL;
+       int r = EXIT_FAILURE;
+
+       // Create a new filelist
+       ASSERT_SUCCESS(pakfire_filelist_create(&list, t->pakfire));
+
+       // Create some files
+       ASSERT_SUCCESS(pakfire_file_create(&file1, t->pakfire));
+       ASSERT_SUCCESS(pakfire_file_create(&file2, t->pakfire));
+       ASSERT_SUCCESS(pakfire_file_create(&file3, t->pakfire));
+
+       // Set some paths
+       ASSERT_SUCCESS(pakfire_file_set_path(file1, "/1"));
+       ASSERT_SUCCESS(pakfire_file_set_path(file2, "/2"));
+       ASSERT_SUCCESS(pakfire_file_set_path(file3, "/3"));
+
+       // Add the files to the list
+       ASSERT_SUCCESS(pakfire_filelist_add(list, file1));
+       ASSERT_SUCCESS(pakfire_filelist_add(list, file3));
+       ASSERT_SUCCESS(pakfire_filelist_add(list, file2));
+
+       // Dump the filelist
+       pakfire_filelist_dump(list, 0);
+
+       ASSERT(pakfire_filelist_length(list) == 3);
+
+       // Success
+       r = EXIT_SUCCESS;
+
+FAIL:
+       if (list)
+               pakfire_filelist_unref(list);
+       if (file1)
+               pakfire_file_unref(file1);
+       if (file2)
+               pakfire_file_unref(file2);
+       if (file3)
+               pakfire_file_unref(file3);
+
+       return r;
+}
+
 
 int main(int argc, const char* argv[]) {
        testsuite_add_test(test_create);
        testsuite_add_test(test_create_invalid);
 
+       testsuite_add_test(test_create_filelist);
+
        return testsuite_run(argc, argv);
 }