--- a/test/main.c Fri Jan 23 17:38:59 2026 +0100 +++ b/test/main.c Sat Jan 24 13:56:19 2026 +0100 @@ -29,10 +29,15 @@ #include <stdio.h> #include <stdlib.h> +#include "wsgidav.h" + #include "base64.h" #include "crypto.h" #include "utils.h" +#include "webdav.h" +#include "webdav_resource.h" + #include <cx/test.h> int test_main(int argc, char **argv); @@ -47,11 +52,18 @@ } #endif -int test_main(int argc, char **argv) { - printf("libidav tests\n"); - printf("-------------\n\n"); +int test_main(int argc, char **argv) { + int dav_client_tests = wsgidav_is_available(); + if(!dav_client_tests) { + printf("wsgidav not available: skipping some libidav webdav tests\n"); + } else { + if(wsgidav_start()) { + printf("Error: wsgidav_start failed: skipping some libidav webdav tests\n"); + dav_client_tests = 0; + } + } - CxTestSuite* suite = cx_test_suite_new("libidav"); + CxTestSuite* suite = cx_test_suite_new("libidav basic"); cx_test_register(suite, test_util_base64decode); cx_test_register(suite, test_util_base64decode_len); @@ -70,9 +82,22 @@ cx_test_register(suite, test_util_path_normalize); cx_test_register(suite, test_util_parent_path); + CxTestSuite* suite_webdav = cx_test_suite_new("libidav webdav"); + test_webdav_init(); + if(dav_client_tests) { + cx_test_register(suite_webdav, test_dav_load_webdav); + } + cx_test_run_stdout(suite); cx_test_suite_free(suite); + cx_test_run_stdout(suite_webdav); + cx_test_suite_free(suite_webdav); + + if(dav_client_tests) { + wsgidav_stop(); + } + return 0; }