From: Michael Tremer Date: Fri, 19 Aug 2022 11:45:02 +0000 (+0000) Subject: tests: Add some basic tests for files X-Git-Tag: 0.9.28~429 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=af2fb35f5477f50f60ce7416c4d44227c9e5500f;p=pakfire.git tests: Add some basic tests for files Signed-off-by: Michael Tremer --- diff --git a/.gitignore b/.gitignore index 2baa3d327..62da71d58 100644 --- a/.gitignore +++ b/.gitignore @@ -23,6 +23,7 @@ /tests/libpakfire/dependencies /tests/libpakfire/downloader /tests/libpakfire/execute +/tests/libpakfire/file /tests/libpakfire/jail /tests/libpakfire/key /tests/libpakfire/main diff --git a/Makefile.am b/Makefile.am index 429035545..2182053fc 100644 --- a/Makefile.am +++ b/Makefile.am @@ -381,6 +381,7 @@ check_PROGRAMS += \ tests/libpakfire/db \ tests/libpakfire/dependencies \ tests/libpakfire/downloader \ + tests/libpakfire/file \ tests/libpakfire/jail \ tests/libpakfire/key \ tests/libpakfire/makefile \ @@ -512,6 +513,18 @@ tests_libpakfire_downloader_CFLAGS = \ tests_libpakfire_downloader_LDADD = \ $(TESTSUITE_LDADD) +dist_tests_libpakfire_file_SOURCES = \ + tests/libpakfire/file.c + +tests_libpakfire_file_CPPFLAGS = \ + $(TESTSUITE_CPPFLAGS) + +tests_libpakfire_file_CFLAGS = \ + $(TESTSUITE_CFLAGS) + +tests_libpakfire_file_LDADD = \ + $(TESTSUITE_LDADD) + dist_tests_libpakfire_jail_SOURCES = \ tests/libpakfire/jail.c diff --git a/tests/libpakfire/file.c b/tests/libpakfire/file.c new file mode 100644 index 000000000..6565ec2af --- /dev/null +++ b/tests/libpakfire/file.c @@ -0,0 +1,72 @@ +/*############################################################################# +# # +# Pakfire - The IPFire package management system # +# Copyright (C) 2022 Pakfire development team # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see . # +# # +#############################################################################*/ + +#include + +#include "../testsuite.h" + +static int test_create(const struct test* t) { + struct pakfire_file* file = NULL; + + // Create a new file + ASSERT_SUCCESS(pakfire_file_create(&file, t->pakfire)); + + // Set path & check + ASSERT_SUCCESS(pakfire_file_set_path(file, "/abc")); + ASSERT_STRING_EQUALS(pakfire_file_get_path(file), "/abc"); + + // Destroy it + ASSERT_NULL(pakfire_file_unref(file)); + + return EXIT_SUCCESS; + +FAIL: + return EXIT_FAILURE; +} + +static int test_create_invalid(const struct test* t) { + struct pakfire_file* file = NULL; + + // Create a new file + ASSERT_SUCCESS(pakfire_file_create(&file, t->pakfire)); + + // Set path + ASSERT_ERRNO(pakfire_file_set_path(file, NULL), EINVAL); + + // It should not be possible to set relative paths + ASSERT_ERRNO(pakfire_file_set_path(file, "abc/abc"), EINVAL); + ASSERT_ERRNO(pakfire_file_set_abspath(file, "abc/abc"), EINVAL); + + // Destroy it + ASSERT_NULL(pakfire_file_unref(file)); + + return EXIT_SUCCESS; + +FAIL: + return EXIT_FAILURE; +} + + +int main(int argc, const char* argv[]) { + testsuite_add_test(test_create); + testsuite_add_test(test_create_invalid); + + return testsuite_run(argc, argv); +}