From 21d0a2a9ffe31e3731ffc623fc575444bd93f5a6 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 18 Oct 2024 14:51:09 +0200 Subject: [PATCH] selftest: add "smb2.dirlease" test suite Move all existing Directory Leases tests to this test suite and require SMB2_CAP_DIRECTORY_LEASING. Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher --- source3/selftest/tests.py | 2 ++ source4/torture/smb2/lease.c | 25 ++++++++++++++++--------- source4/torture/smb2/smb2.c | 1 + 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py index 097b127979b..6b690e2fc1f 100755 --- a/source3/selftest/tests.py +++ b/source3/selftest/tests.py @@ -1380,6 +1380,8 @@ for t in tests: plansmbtorture4testsuite(t, "fileserver", '//$SERVER_IP/nfs4acl_simple_40 -U$USERNAME%$PASSWORD') elif t == "smb2.lease": plansmbtorture4testsuite(t, "fileserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD') + elif t == "smb2.dirlease": + plansmbtorture4testsuite(t, "fileserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD') elif t == "rpc.wkssvc": plansmbtorture4testsuite(t, "ad_member", '//$SERVER/tmp -U$DC_USERNAME%$DC_PASSWORD') elif t == "rpc.srvsvc": diff --git a/source4/torture/smb2/lease.c b/source4/torture/smb2/lease.c index 9cf3adcf0b3..c5b72765803 100644 --- a/source4/torture/smb2/lease.c +++ b/source4/torture/smb2/lease.c @@ -1453,9 +1453,8 @@ static bool test_lease_v2_request_parent(struct torture_context *tctx, caps = smb2cli_conn_server_capabilities(tree->session->transport->conn); torture_assert_goto(tctx, caps & SMB2_CAP_LEASING, ret, done, "leases are not supported"); - if (!(caps & SMB2_CAP_DIRECTORY_LEASING)) { - torture_skip(tctx, "directory leases are not supported"); - } + torture_assert_goto(tctx, caps & SMB2_CAP_DIRECTORY_LEASING, ret, done, + "SMB3 Directory Leases are not supported\n"); protocol = smbXcli_conn_protocol(tree->session->transport->conn); if (protocol < PROTOCOL_SMB3_00) { @@ -1584,9 +1583,8 @@ static bool test_lease_v2_request(struct torture_context *tctx, caps = smb2cli_conn_server_capabilities(tree->session->transport->conn); torture_assert_goto(tctx, caps & SMB2_CAP_LEASING, ret, done, "leases are not supported"); - if (!(caps & SMB2_CAP_DIRECTORY_LEASING)) { - torture_skip(tctx, "directory leases are not supported"); - } + torture_assert_goto(tctx, caps & SMB2_CAP_DIRECTORY_LEASING, ret, done, + "SMB3 Directory Leases are not supported\n"); protocol = smbXcli_conn_protocol(tree->session->transport->conn); if (protocol < PROTOCOL_SMB3_00) { @@ -5491,9 +5489,6 @@ struct torture_suite *torture_smb2_lease_init(TALLOC_CTX *ctx) torture_suite_add_1smb2_test(suite, "breaking6", test_lease_breaking6); torture_suite_add_2smb2_test(suite, "lock1", test_lease_lock1); torture_suite_add_1smb2_test(suite, "complex1", test_lease_complex1); - torture_suite_add_1smb2_test(suite, "v2_request_parent", - test_lease_v2_request_parent); - torture_suite_add_1smb2_test(suite, "v2_request", test_lease_v2_request); torture_suite_add_1smb2_test(suite, "v2_epoch1", test_lease_v2_epoch1); torture_suite_add_1smb2_test(suite, "v2_epoch2", test_lease_v2_epoch2); torture_suite_add_1smb2_test(suite, "v2_epoch3", test_lease_v2_epoch3); @@ -5529,3 +5524,15 @@ struct torture_suite *torture_smb2_lease_init(TALLOC_CTX *ctx) return suite; } + +struct torture_suite *torture_smb2_dirlease_init(TALLOC_CTX *ctx) +{ + struct torture_suite *suite = + torture_suite_create(ctx, "dirlease"); + + suite->description = talloc_strdup(suite, "SMB3 Directory Lease tests"); + + torture_suite_add_1smb2_test(suite, "v2_request_parent", test_lease_v2_request_parent); + torture_suite_add_1smb2_test(suite, "v2_request", test_lease_v2_request); + return suite; +} diff --git a/source4/torture/smb2/smb2.c b/source4/torture/smb2/smb2.c index 9e411e1a5f9..cf426b2252a 100644 --- a/source4/torture/smb2/smb2.c +++ b/source4/torture/smb2/smb2.c @@ -174,6 +174,7 @@ NTSTATUS torture_smb2_init(TALLOC_CTX *ctx) torture_smb2_durable_v2_regressions_init(suite)); torture_suite_add_suite(suite, torture_smb2_dir_init(suite)); torture_suite_add_suite(suite, torture_smb2_lease_init(suite)); + torture_suite_add_suite(suite, torture_smb2_dirlease_init(suite)); torture_suite_add_suite(suite, torture_smb2_compound_init(suite)); torture_suite_add_suite(suite, torture_smb2_compound_find_init(suite)); torture_suite_add_suite(suite, torture_smb2_compound_async_init(suite)); -- 2.47.3