--- a/src/server/test/vfs.c Sat Nov 22 12:49:20 2025 +0100 +++ b/src/server/test/vfs.c Sat Nov 22 14:27:01 2025 +0100 @@ -364,190 +364,190 @@ // /* ------------------------------------------------------------------------- */ -UCX_TEST(test_vfs_open) { +CX_TEST(test_vfs_open) { Session *sn = testutil_session(); Request *rq = testutil_request(sn->pool, "PUT", "/"); rq->vfs = testvfs_create(sn); VFSContext *vfs = vfs_request_context(sn, rq); - UCX_TEST_BEGIN; - - UCX_TEST_ASSERT(vfs, "vfs is NULL"); + CX_TEST_DO { - SYS_FILE f1 = vfs_open(vfs, "/file1", O_CREAT); - UCX_TEST_ASSERT(f1, "f1 not opened"); + CX_TEST_ASSERT(vfs); + + SYS_FILE f1 = vfs_open(vfs, "/file1", O_CREAT); + CX_TEST_ASSERT(f1); + + SYS_FILE f2 = vfs_open(vfs, "/file1", 0); + CX_TEST_ASSERT(f2); - SYS_FILE f2 = vfs_open(vfs, "/file1", 0); - UCX_TEST_ASSERT(f2, "f2 not opened"); - - UCX_TEST_END; + } testutil_destroy_session(sn); } -UCX_TEST(test_vfs_mkdir) { +CX_TEST(test_vfs_mkdir) { Session *sn = testutil_session(); Request *rq = testutil_request(sn->pool, "PUT", "/"); rq->vfs = testvfs_create(sn); VFSContext *vfs = vfs_request_context(sn, rq); - UCX_TEST_BEGIN; - - int err = vfs_mkdir(vfs, "/dir"); - UCX_TEST_ASSERT(err == 0, "error not 0"); + CX_TEST_DO { - SYS_FILE fd = vfs_open(vfs, "/dir", 0); - UCX_TEST_ASSERT(fd, "no fd"); + int err = vfs_mkdir(vfs, "/dir"); + CX_TEST_ASSERT(err == 0); + + SYS_FILE fd = vfs_open(vfs, "/dir", 0); + CX_TEST_ASSERT(fd); - UCX_TEST_END; + } testutil_destroy_session(sn); } -UCX_TEST(test_vfs_opendir) { +CX_TEST(test_vfs_opendir) { Session *sn = testutil_session(); Request *rq = testutil_request(sn->pool, "PUT", "/"); rq->vfs = testvfs_create(sn); VFSContext *vfs = vfs_request_context(sn, rq); - UCX_TEST_BEGIN; - - int err = vfs_mkdir(vfs, "/dir"); - UCX_TEST_ASSERT(err == 0, "error not 0"); + CX_TEST_DO { - VFSDir *dir = vfs_opendir(vfs, "/dir"); - UCX_TEST_ASSERT(dir, "no dir"); + int err = vfs_mkdir(vfs, "/dir"); + CX_TEST_ASSERT(err == 0); + + VFSDir *dir = vfs_opendir(vfs, "/dir"); + CX_TEST_ASSERT(dir); - UCX_TEST_END; + } testutil_destroy_session(sn); } -UCX_TEST(test_vfs_readdir) { +CX_TEST(test_vfs_readdir) { Session *sn = testutil_session(); Request *rq = testutil_request(sn->pool, "PUT", "/"); rq->vfs = testvfs_create(sn); VFSContext *vfs = vfs_request_context(sn, rq); - UCX_TEST_BEGIN; - - int err = vfs_mkdir(vfs, "/dir"); - UCX_TEST_ASSERT(err == 0, "error not 0"); - - // add some test file to /dir - UCX_TEST_ASSERT(vfs_open(vfs, "/dir/file1", O_CREAT), "creation of file1 failed"); - UCX_TEST_ASSERT(vfs_open(vfs, "/dir/file2", O_CREAT), "creation of file2 failed"); - UCX_TEST_ASSERT(vfs_open(vfs, "/dir/file3", O_CREAT), "creation of file3 failed"); - UCX_TEST_ASSERT(vfs_open(vfs, "/dir/file4", O_CREAT), "creation of file4 failed"); - - VFSDir *dir = vfs_opendir(vfs, "/dir"); - UCX_TEST_ASSERT(dir, "dir not opened"); + CX_TEST_DO { - CxMap *files = cxHashMapCreate(cxDefaultAllocator, CX_STORE_POINTERS, 8); - - VFSEntry entry; - while(vfs_readdir(dir, &entry)) { - cxMapPut(files, cx_hash_key_str(entry.name), dir); - } + int err = vfs_mkdir(vfs, "/dir"); + CX_TEST_ASSERT(err == 0); + + // add some test file to /dir + CX_TEST_ASSERT(vfs_open(vfs, "/dir/file1", O_CREAT)); + CX_TEST_ASSERT(vfs_open(vfs, "/dir/file2", O_CREAT)); + CX_TEST_ASSERT(vfs_open(vfs, "/dir/file3", O_CREAT)); + CX_TEST_ASSERT(vfs_open(vfs, "/dir/file4", O_CREAT)); + + VFSDir *dir = vfs_opendir(vfs, "/dir"); + CX_TEST_ASSERT(dir); + + CxMap *files = cxHashMapCreate(cxDefaultAllocator, CX_STORE_POINTERS, 8); + + VFSEntry entry; + while(vfs_readdir(dir, &entry)) { + cxMapPut(files, cx_hash_key_str(entry.name), dir); + } + + CX_TEST_ASSERT(cxMapSize(files)== 4); + CX_TEST_ASSERT(cxMapGet(files, cx_hash_key_str("file1"))); + CX_TEST_ASSERT(cxMapGet(files, cx_hash_key_str("file2"))); + CX_TEST_ASSERT(cxMapGet(files, cx_hash_key_str("file3"))); + CX_TEST_ASSERT(cxMapGet(files, cx_hash_key_str("file4"))); + + cxMapFree(files); - UCX_TEST_ASSERT(cxMapSize(files)== 4, "wrong files count"); - UCX_TEST_ASSERT(cxMapGet(files, cx_hash_key_str("file1")), "file1 missing"); - UCX_TEST_ASSERT(cxMapGet(files, cx_hash_key_str("file2")), "file2 missing"); - UCX_TEST_ASSERT(cxMapGet(files, cx_hash_key_str("file3")), "file3 missing"); - UCX_TEST_ASSERT(cxMapGet(files, cx_hash_key_str("file4")), "file4 missing"); - - cxMapFree(files); - - UCX_TEST_END; + } testutil_destroy_session(sn); } -UCX_TEST(test_vfs_unlink) { +CX_TEST(test_vfs_unlink) { Session *sn = testutil_session(); Request *rq = testutil_request(sn->pool, "PUT", "/"); rq->vfs = testvfs_create(sn); VFSContext *vfs = vfs_request_context(sn, rq); - UCX_TEST_BEGIN; - // prepare test - int err; - err = vfs_mkdir(vfs, "/dir1"); - UCX_TEST_ASSERT(err == 0, "mkdir 1: error not 0"); - err = vfs_mkdir(vfs, "/dir2"); - UCX_TEST_ASSERT(err == 0, "mkdir 1: error not 0"); - - SYS_FILE f1 = vfs_open(vfs, "/file1", O_CREAT); - UCX_TEST_ASSERT(f1, "f1 not opened"); - - SYS_FILE f2 = vfs_open(vfs, "/file2", O_CREAT); - UCX_TEST_ASSERT(f1, "f2 not opened"); - - SYS_FILE f3 = vfs_open(vfs, "/dir1/file3", O_CREAT); - UCX_TEST_ASSERT(f1, "f3 not opened"); + CX_TEST_DO { + // prepare test + int err; + err = vfs_mkdir(vfs, "/dir1"); + CX_TEST_ASSERT(err == 0); + err = vfs_mkdir(vfs, "/dir2"); + CX_TEST_ASSERT(err == 0); + + SYS_FILE f1 = vfs_open(vfs, "/file1", O_CREAT); + CX_TEST_ASSERT(f1); + + SYS_FILE f2 = vfs_open(vfs, "/file2", O_CREAT); + CX_TEST_ASSERT(f1); + + SYS_FILE f3 = vfs_open(vfs, "/dir1/file3", O_CREAT); + CX_TEST_ASSERT(f1); + + // test unlink + err = vfs_unlink(vfs, "/file1"); + CX_TEST_ASSERT(err == 0); + err = vfs_unlink(vfs, "/dir1/file3"); + CX_TEST_ASSERT(err == 0); + + err = vfs_unlink(vfs, "/filex"); + CX_TEST_ASSERT(err != 0); + + // check if files were removed + SYS_FILE o1 = vfs_open(vfs, "/file1", O_RDONLY); + CX_TEST_ASSERT(o1 == NULL); + SYS_FILE o3 = vfs_open(vfs, "/dir1/file3", O_RDONLY); + CX_TEST_ASSERT(o1 == NULL); + + // file2 should still be there + SYS_FILE o2 = vfs_open(vfs, "/file2", O_RDONLY); + CX_TEST_ASSERT(o2); + + // check if dir unlink fails + err = vfs_unlink(vfs, "/dir1"); + CX_TEST_ASSERT(err != 0); - // test unlink - err = vfs_unlink(vfs, "/file1"); - UCX_TEST_ASSERT(err == 0, "unlink /file1 failed"); - err = vfs_unlink(vfs, "/dir1/file3"); - UCX_TEST_ASSERT(err == 0, "unlink /dir1/file3 failed"); - - err = vfs_unlink(vfs, "/filex"); - UCX_TEST_ASSERT(err != 0, "unlink /filex should fail"); - - // check if files were removed - SYS_FILE o1 = vfs_open(vfs, "/file1", O_RDONLY); - UCX_TEST_ASSERT(o1 == NULL, "/file1 not deleted"); - SYS_FILE o3 = vfs_open(vfs, "/dir1/file3", O_RDONLY); - UCX_TEST_ASSERT(o1 == NULL, "/dir1/file3 not deleted"); - - // file2 should still be there - SYS_FILE o2 = vfs_open(vfs, "/file2", O_RDONLY); - UCX_TEST_ASSERT(o2, "/file2 deleted"); - - // check if dir unlink fails - err = vfs_unlink(vfs, "/dir1"); - UCX_TEST_ASSERT(err != 0, "unlink dir1 should fail"); - - UCX_TEST_END; + } testutil_destroy_session(sn); } -UCX_TEST(test_vfs_rmdir) { +CX_TEST(test_vfs_rmdir) { Session *sn = testutil_session(); Request *rq = testutil_request(sn->pool, "PUT", "/"); rq->vfs = testvfs_create(sn); VFSContext *vfs = vfs_request_context(sn, rq); - UCX_TEST_BEGIN; - // prepare test - int err; - err = vfs_mkdir(vfs, "/dir1"); - UCX_TEST_ASSERT(err == 0, "mkdir 1: error not 0"); - err = vfs_mkdir(vfs, "/dir2"); - UCX_TEST_ASSERT(err == 0, "mkdir 1: error not 0"); - - SYS_FILE f1 = vfs_open(vfs, "/dir1/file1", O_CREAT); - UCX_TEST_ASSERT(f1, "f1 not opened"); + CX_TEST_DO { + // prepare test + int err; + err = vfs_mkdir(vfs, "/dir1"); + CX_TEST_ASSERT(err == 0); + err = vfs_mkdir(vfs, "/dir2"); + CX_TEST_ASSERT(err == 0); + + SYS_FILE f1 = vfs_open(vfs, "/dir1/file1", O_CREAT); + CX_TEST_ASSERT(f1); + + err = vfs_rmdir(vfs, "/dir1"); + CX_TEST_ASSERT(err != 0); + err = vfs_rmdir(vfs, "/dir2"); + CX_TEST_ASSERT(err == 0); + + err = vfs_unlink(vfs, "/dir1/file1"); + CX_TEST_ASSERT(err == 0); + err = vfs_rmdir(vfs, "/dir1"); + CX_TEST_ASSERT(err == 0); - err = vfs_rmdir(vfs, "/dir1"); - UCX_TEST_ASSERT(err != 0, "rmdir /dir1 should fail"); - err = vfs_rmdir(vfs, "/dir2"); - UCX_TEST_ASSERT(err == 0, "rmdir /dir2 failed"); - - err = vfs_unlink(vfs, "/dir1/file1"); - UCX_TEST_ASSERT(err == 0, "unlink failed"); - err = vfs_rmdir(vfs, "/dir1"); - UCX_TEST_ASSERT(err == 0, "rmdir /dir1 (2) failed"); - - UCX_TEST_END; + } testutil_destroy_session(sn); }