From 359422c97cce93bbb27051f9df3efb45bd0b9052 Mon Sep 17 00:00:00 2001 From: Aldrik Ramaekers Date: Sat, 23 Aug 2025 11:18:44 +0200 Subject: settings file writing --- libs/zip/test/test_open.c | 90 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 libs/zip/test/test_open.c (limited to 'libs/zip/test/test_open.c') diff --git a/libs/zip/test/test_open.c b/libs/zip/test/test_open.c new file mode 100644 index 0000000..234edfa --- /dev/null +++ b/libs/zip/test/test_open.c @@ -0,0 +1,90 @@ +#include +#include + +#include + +#include "minunit.h" + +#if defined(_WIN32) || defined(_WIN64) +#include + +#define MKTEMP _mktemp +#else +#define MKTEMP mkstemp +#endif + +static char ZIPNAME[L_tmpnam + 1] = {0}; + +void test_setup(void) { + strncpy(ZIPNAME, "z-XXXXXX\0", L_tmpnam); + MKTEMP(ZIPNAME); +} + +void test_teardown(void) { remove(ZIPNAME); } + +MU_TEST(test_openwitherror) { + int errnum; + struct zip_t *zip = + zip_openwitherror(ZIPNAME, ZIP_DEFAULT_COMPRESSION_LEVEL, 'r', &errnum); + mu_check(zip == NULL); + mu_assert_int_eq(ZIP_ERINIT, errnum); + + zip = zip_openwitherror(ZIPNAME, ZIP_DEFAULT_COMPRESSION_LEVEL, 'w', &errnum); + mu_check(zip != NULL); + mu_assert_int_eq(0, errnum); + + zip_close(zip); +} + +MU_TEST(test_stream_openwitherror) { + int errnum; + struct zip_t *zip = zip_stream_openwitherror( + NULL, 0, ZIP_DEFAULT_COMPRESSION_LEVEL, 'r', &errnum); + mu_check(zip == NULL); + mu_assert_int_eq(ZIP_EINVMODE, errnum); + + zip = zip_stream_openwitherror(NULL, 0, ZIP_DEFAULT_COMPRESSION_LEVEL, 'w', + &errnum); + mu_check(zip != NULL); + mu_assert_int_eq(0, errnum); + + zip_stream_close(zip); +} + +MU_TEST(test_cstream_openwitherror) { + int errnum; + FILE *ZIPFILE = NULL; + + struct zip_t *zip = zip_cstream_openwitherror( + ZIPFILE, ZIP_DEFAULT_COMPRESSION_LEVEL, 'r', &errnum); + mu_check(zip == NULL); + mu_assert_int_eq(ZIP_ENOFILE, errnum); + + ZIPFILE = fopen(ZIPNAME, "w"); + zip = zip_cstream_openwitherror(ZIPFILE, ZIP_DEFAULT_COMPRESSION_LEVEL, 'w', + &errnum); + mu_check(zip != NULL); + mu_assert_int_eq(0, errnum); + + zip_cstream_close(zip); + fclose(ZIPFILE); +} + +MU_TEST_SUITE(test_entry_suite) { + MU_SUITE_CONFIGURE(&test_setup, &test_teardown); + + MU_RUN_TEST(test_openwitherror); + MU_RUN_TEST(test_stream_openwitherror); + MU_RUN_TEST(test_cstream_openwitherror); +} + +#define UNUSED(x) (void)x + +int main(int argc, char *argv[]) { + UNUSED(argc); + UNUSED(argv); + + MU_RUN_SUITE(test_entry_suite); + MU_REPORT(); + return MU_EXIT_CODE; +} -- cgit v1.2.3-70-g09d2