diff -r f78a585e1a2f -r 77506ec632a4 src/server/plugins/postgresql/pgtest.c --- a/src/server/plugins/postgresql/pgtest.c Sat Aug 13 15:56:51 2022 +0200 +++ b/src/server/plugins/postgresql/pgtest.c Sun Aug 14 11:40:54 2022 +0200 @@ -52,6 +52,7 @@ static int abort_pg_tests = 0; static PGconn *test_connection; static ResourceData resdata; +static PgRepository test_repo; void debug_print_resources(void) { PGresult *result = PQexec(test_connection, "select * from Resource;"); @@ -67,6 +68,17 @@ printf("\n"); } +static void test_root_lookup(void) { + memset(&test_repo, 0, sizeof(PgRepository)); + + int64_t root_id = -1; + int err = pg_lookup_root(&resdata, "root", &root_id); + test_repo.root_resource_id = root_id; + + if(err || root_id < 0) { + abort_pg_tests = 1; + } +} void register_pg_tests(int argc, char **argv, UcxTestSuite *suite) { @@ -79,9 +91,12 @@ abort_pg_tests = 1; } + resdata.data = test_connection; + test_root_lookup(); + ucx_test_register(suite, test_pg_conn); if(!abort_pg_tests) { - resdata.data = test_connection; + ucx_test_register(suite, test_pg_lookup_root); ucx_test_register(suite, test_pg_vfs_open); ucx_test_register(suite, test_pg_vfs_io); @@ -230,9 +245,18 @@ UCX_TEST_END; } +UCX_TEST(test_pg_lookup_root) { + UCX_TEST_BEGIN; + + // test already done in test_root_lookup() + UCX_TEST_ASSERT(!abort_pg_tests, "Lookup failed"); + + UCX_TEST_END; +} -static VFS* create_test_pgvfs(Session *sn, Request *rq) { - return pg_vfs_create_from_resourcedata(sn, rq, &resdata); + +static VFS* create_test_pgvfs(Session *sn, Request *rq) { + return pg_vfs_create_from_resourcedata(sn, rq, &test_repo, &resdata); } @@ -481,7 +505,7 @@ static WebdavBackend* create_test_pgdav(Session *sn, Request *rq) { - return pg_webdav_create_from_resdata(sn, rq, &resdata); + return pg_webdav_create_from_resdata(sn, rq, &test_repo, &resdata); } UCX_TEST(test_pg_webdav_create_from_resdata) {