# HG changeset patch # User Olaf Wintermann # Date 1769541909 -3600 # Node ID 7109de6bfad5c66f40f4b29a51ca9cf37490de02 # Parent 457faa53fd7e7bbeb5cba50bb231099fa8585dc5 add test_dav_store_stream_webdav diff -r 457faa53fd7e -r 7109de6bfad5 test/main.c --- a/test/main.c Sun Jan 25 17:53:31 2026 +0100 +++ b/test/main.c Tue Jan 27 20:25:09 2026 +0100 @@ -89,6 +89,7 @@ cx_test_register(suite_webdav, test_dav_exists_webdav); cx_test_register(suite_webdav, test_dav_create_webdav); cx_test_register(suite_webdav, test_dav_store_content_webdav); + cx_test_register(suite_webdav, test_dav_store_stream_webdav); } cx_test_run_stdout(suite); diff -r 457faa53fd7e -r 7109de6bfad5 test/webdav_resource.c --- a/test/webdav_resource.c Sun Jan 25 17:53:31 2026 +0100 +++ b/test/webdav_resource.c Tue Jan 27 20:25:09 2026 +0100 @@ -29,6 +29,8 @@ #include "webdav.h" #include "webdav_resource.h" +#include + CX_TEST_SUBROUTINE(test_default_properties, DavResource *res) { CX_TEST_ASSERT(res->contentlength > 0); CX_TEST_ASSERT(res->creationdate > 0); @@ -103,3 +105,28 @@ dav_session_destroy(sn); } } + +CX_TEST(test_dav_store_stream_webdav) { + CX_TEST_DO { + CX_TEST_DO { + FILE *f = fopen("test_dav_store_stream_webdav.txt", "w+"); + cxstring line = cx_str("test_dav_store_stream_webdav test content\n"); + for(int i=0;i<1000;i++) { + fwrite(line.ptr, 1, line.length, f); + } + fseek(f, 0, SEEK_SET); + size_t len = 1000 * line.length; + + DavSession *sn = get_test_webdav_session(); + DavResource *res = dav_resource_new(sn, "/test_store_file.txt"); + dav_set_content(res, f, (dav_read_func)fread, (dav_seek_func)fseek); + + int ret = dav_store(res); + CX_TEST_ASSERT(!ret); + CX_TEST_ASSERT(!dav_load(res)); + CX_TEST_ASSERT(res->contentlength == len); + dav_session_destroy(sn); + fclose(f); + } + } +} diff -r 457faa53fd7e -r 7109de6bfad5 test/webdav_resource.h --- a/test/webdav_resource.h Sun Jan 25 17:53:31 2026 +0100 +++ b/test/webdav_resource.h Tue Jan 27 20:25:09 2026 +0100 @@ -39,6 +39,7 @@ CX_TEST(test_dav_exists_webdav); CX_TEST(test_dav_create_webdav); CX_TEST(test_dav_store_content_webdav); +CX_TEST(test_dav_store_stream_webdav); #ifdef __cplusplus