]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
selftest: add "smb2.dirlease" test suite
authorRalph Boehme <slow@samba.org>
Fri, 18 Oct 2024 12:51:09 +0000 (14:51 +0200)
committerRalph Boehme <slow@samba.org>
Tue, 5 Nov 2024 14:39:31 +0000 (14:39 +0000)
Move all existing Directory Leases tests to this test suite and require
SMB2_CAP_DIRECTORY_LEASING.

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
source3/selftest/tests.py
source4/torture/smb2/lease.c
source4/torture/smb2/smb2.c

index 097b127979b0278cc3446a3946c815b94db0a574..6b690e2fc1f2fe3830c9ac478156f93195205592 100755 (executable)
@@ -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":
index 9cf3adcf0b30605760bf8af25c76abc5f8238299..c5b7276580308b6f8a8219e434e6f5706b96d0e9 100644 (file)
@@ -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;
+}
index 9e411e1a5f96f3329201f445ad53077ed2814b86..cf426b2252a947e1a81b694626da2ff0a786a9a8 100644 (file)
@@ -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));