s4:torture/smb2: adjust durable v2 tests to pass against Windows Server 2019
authorStefan Metzmacher <metze@samba.org>
Wed, 24 Jun 2020 15:48:24 +0000 (17:48 +0200)
committerJeremy Allison <jra@samba.org>
Sat, 27 Jun 2020 04:20:39 +0000 (04:20 +0000)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
selftest/knownfail.d/durable-v2-timeout [new file with mode: 0644]
source4/torture/smb2/durable_v2_open.c
source4/torture/smb2/replay.c

diff --git a/selftest/knownfail.d/durable-v2-timeout b/selftest/knownfail.d/durable-v2-timeout
new file mode 100644 (file)
index 0000000..a34c860
--- /dev/null
@@ -0,0 +1,24 @@
+^samba3.smb2.durable-v2-open.create-blob.nt4_dc
+^samba3.smb2.durable-v2-open.reopen1.nt4_dc
+^samba3.smb2.durable-v2-open.reopen1a.nt4_dc
+^samba3.smb2.durable-v2-open.reopen1a-lease.nt4_dc
+^samba3.smb2.durable-v2-open.reopen2.nt4_dc
+^samba3.smb2.durable-v2-open.reopen2b.nt4_dc
+^samba3.smb2.durable-v2-open.reopen2-lease.nt4_dc
+^samba3.smb2.durable-v2-open.reopen2-lease-v2.nt4_dc
+^samba3.smb2.durable-v2-open.create-blob.ad_dc
+^samba3.smb2.durable-v2-open.reopen1.ad_dc
+^samba3.smb2.durable-v2-open.reopen1a.ad_dc
+^samba3.smb2.durable-v2-open.reopen2.ad_dc
+^samba3.smb2.durable-v2-open.reopen2b.ad_dc
+^samba3.smb2.replay.replay-dhv2-oplock1.nt4_dc
+^samba3.smb2.replay.replay-dhv2-oplock2.nt4_dc
+^samba3.smb2.replay.replay-dhv2-oplock3.nt4_dc
+^samba3.smb2.replay.replay-dhv2-oplock-lease.nt4_dc
+^samba3.smb2.replay.replay-dhv2-lease1.nt4_dc
+^samba3.smb2.replay.replay-dhv2-lease2.nt4_dc
+^samba3.smb2.replay.replay-dhv2-lease3.nt4_dc
+^samba3.smb2.replay.replay-dhv2-lease-oplock.nt4_dc
+^samba3.smb2.replay.replay-dhv2-oplock1.ad_dc
+^samba3.smb2.replay.replay-dhv2-oplock2.ad_dc
+^samba3.smb2.replay.replay-dhv2-oplock3.ad_dc
index b2c519db3f67a46aba5bf82dbd71f72b54b27752..014ff192ad1790c8cf3720f6df7a1345e5289151 100644 (file)
@@ -123,7 +123,7 @@ bool test_durable_v2_open_create_blob(struct torture_context *tctx,
        CHECK_VAL(io.out.durable_open, false);
        CHECK_VAL(io.out.durable_open_v2, true);
        CHECK_VAL(io.out.persistent_open, false);
-       CHECK_VAL(io.out.timeout, io.in.timeout);
+       CHECK_VAL(io.out.timeout, 300*1000);
 
        /* disconnect */
        TALLOC_FREE(tree);
@@ -547,7 +547,7 @@ bool test_durable_v2_open_reopen1(struct torture_context *tctx,
        CHECK_VAL(io.out.durable_open, false);
        CHECK_VAL(io.out.durable_open_v2, true);
        CHECK_VAL(io.out.persistent_open, false);
-       CHECK_VAL(io.out.timeout, io.in.timeout);
+       CHECK_VAL(io.out.timeout, 300*1000);
 
        /* try a durable reconnect while the file is still open */
        ZERO_STRUCT(io);
@@ -623,7 +623,7 @@ bool test_durable_v2_open_reopen1a(struct torture_context *tctx,
        CHECK_VAL(io.out.durable_open, false);
        CHECK_VAL(io.out.durable_open_v2, true);
        CHECK_VAL(io.out.persistent_open, false);
-       CHECK_VAL(io.out.timeout, io.in.timeout);
+       CHECK_VAL(io.out.timeout, 300*1000);
 
        /*
         * a session reconnect on a second tcp connection
@@ -666,7 +666,7 @@ bool test_durable_v2_open_reopen1a(struct torture_context *tctx,
        CHECK_VAL(io.out.durable_open, false);
        CHECK_VAL(io.out.durable_open_v2, false); /* no dh2q response blob */
        CHECK_VAL(io.out.persistent_open, false);
-       CHECK_VAL(io.out.timeout, io.in.timeout);
+       CHECK_VAL(io.out.timeout, 0);
        _h = io.out.file.handle;
        h = &_h;
 
@@ -710,7 +710,7 @@ bool test_durable_v2_open_reopen1a(struct torture_context *tctx,
        CHECK_VAL(io.out.durable_open, false);
        CHECK_VAL(io.out.durable_open_v2, false); /* no dh2q response blob */
        CHECK_VAL(io.out.persistent_open, false);
-       CHECK_VAL(io.out.timeout, io.in.timeout);
+       CHECK_VAL(io.out.timeout, 0);
        _h = io.out.file.handle;
        h = &_h;
 
@@ -795,7 +795,7 @@ bool test_durable_v2_open_reopen1a_lease(struct torture_context *tctx,
        CHECK_VAL(io.out.durable_open, false);
        CHECK_VAL(io.out.durable_open_v2, true);
        CHECK_VAL(io.out.persistent_open, false);
-       CHECK_VAL(io.out.timeout, io.in.timeout);
+       CHECK_VAL(io.out.timeout, 300*1000);
        CHECK_VAL(io.out.oplock_level, SMB2_OPLOCK_LEVEL_LEASE);
        CHECK_VAL(io.out.lease_response.lease_key.data[0], lease_key);
        CHECK_VAL(io.out.lease_response.lease_key.data[1], ~lease_key);
@@ -885,7 +885,7 @@ bool test_durable_v2_open_reopen1a_lease(struct torture_context *tctx,
        CHECK_VAL(io.out.durable_open, false);
        CHECK_VAL(io.out.durable_open_v2, false); /* no dh2q response blob */
        CHECK_VAL(io.out.persistent_open, false);
-       CHECK_VAL(io.out.timeout, io.in.timeout);
+       CHECK_VAL(io.out.timeout, 0);
        CHECK_VAL(io.out.oplock_level, SMB2_OPLOCK_LEVEL_LEASE);
        CHECK_VAL(io.out.lease_response.lease_key.data[0], lease_key);
        CHECK_VAL(io.out.lease_response.lease_key.data[1], ~lease_key);
@@ -961,7 +961,7 @@ bool test_durable_v2_open_reopen2(struct torture_context *tctx,
        CHECK_VAL(io.out.durable_open, false);
        CHECK_VAL(io.out.durable_open_v2, true);
        CHECK_VAL(io.out.persistent_open, false);
-       CHECK_VAL(io.out.timeout, io.in.timeout);
+       CHECK_VAL(io.out.timeout, 300*1000);
 
        /* disconnect, leaving the durable open */
        TALLOC_FREE(tree);
@@ -1122,7 +1122,7 @@ bool test_durable_v2_open_reopen2b(struct torture_context *tctx,
        CHECK_VAL(io.out.durable_open, false);
        CHECK_VAL(io.out.durable_open_v2, true);
        CHECK_VAL(io.out.persistent_open, false);
-       CHECK_VAL(io.out.timeout, io.in.timeout);
+       CHECK_VAL(io.out.timeout, 300*1000);
 
        /* disconnect, leaving the durable open */
        TALLOC_FREE(tree);
@@ -1294,7 +1294,7 @@ bool test_durable_v2_open_reopen2_lease(struct torture_context *tctx,
        CHECK_VAL(io.out.durable_open, false);
        CHECK_VAL(io.out.durable_open_v2, true);
        CHECK_VAL(io.out.persistent_open, false);
-       CHECK_VAL(io.out.timeout, io.in.timeout);
+       CHECK_VAL(io.out.timeout, 300*1000);
        CHECK_VAL(io.out.oplock_level, SMB2_OPLOCK_LEVEL_LEASE);
        CHECK_VAL(io.out.lease_response.lease_key.data[0], lease_key);
        CHECK_VAL(io.out.lease_response.lease_key.data[1], ~lease_key);
@@ -1547,7 +1547,7 @@ bool test_durable_v2_open_reopen2_lease_v2(struct torture_context *tctx,
        CHECK_VAL(io.out.durable_open, false);
        CHECK_VAL(io.out.durable_open_v2, true);
        CHECK_VAL(io.out.persistent_open, false);
-       CHECK_VAL(io.out.timeout, io.in.timeout);
+       CHECK_VAL(io.out.timeout, 300*1000);
        CHECK_VAL(io.out.oplock_level, SMB2_OPLOCK_LEVEL_LEASE);
        CHECK_VAL(io.out.lease_response_v2.lease_key.data[0], lease_key);
        CHECK_VAL(io.out.lease_response_v2.lease_key.data[1], ~lease_key);
@@ -1787,7 +1787,7 @@ bool test_durable_v2_open_app_instance(struct torture_context *tctx,
        CHECK_VAL(io1.out.durable_open, false);
        CHECK_VAL(io1.out.durable_open_v2, true);
        CHECK_VAL(io1.out.persistent_open, false);
-       CHECK_VAL(io1.out.timeout, io1.in.timeout);
+       CHECK_VAL(io1.out.timeout, 300*1000);
 
        /*
         * try to open the file as durable from a second tree with
@@ -1814,7 +1814,7 @@ bool test_durable_v2_open_app_instance(struct torture_context *tctx,
        CHECK_VAL(io2.out.durable_open, false);
        CHECK_VAL(io2.out.durable_open_v2, true);
        CHECK_VAL(io2.out.persistent_open, false);
-       CHECK_VAL(io2.out.timeout, io2.in.timeout);
+       CHECK_VAL(io2.out.timeout, 300*1000);
 
        CHECK_VAL(break_info.count, 0);
 
index 9f6fadccf45876259146e815b574a9e5c28dc727..7399777a36769a252f04a5f66da805e6784297f9 100644 (file)
@@ -402,7 +402,7 @@ static bool test_replay_dhv2_oplock1(struct torture_context *tctx,
        } else {
                CHECK_VAL(io.out.oplock_level, smb2_util_oplock_level("b"));
                CHECK_VAL(io.out.durable_open_v2, true);
-               CHECK_VAL(io.out.timeout, io.in.timeout);
+               CHECK_VAL(io.out.timeout, 300*1000);
        }
 
        /*
@@ -493,7 +493,7 @@ static bool test_replay_dhv2_oplock2(struct torture_context *tctx,
        } else {
                CHECK_VAL(io.out.oplock_level, smb2_util_oplock_level("b"));
                CHECK_VAL(io.out.durable_open_v2, true);
-               CHECK_VAL(io.out.timeout, io.in.timeout);
+               CHECK_VAL(io.out.timeout, 300*1000);
        }
 
        /*
@@ -628,7 +628,7 @@ static bool test_replay_dhv2_oplock3(struct torture_context *tctx,
        } else {
                CHECK_VAL(io.out.oplock_level, smb2_util_oplock_level("b"));
                CHECK_VAL(io.out.durable_open_v2, true);
-               CHECK_VAL(io.out.timeout, io.in.timeout);
+               CHECK_VAL(io.out.timeout, 300*1000);
        }
 
        /*
@@ -760,7 +760,7 @@ static bool test_replay_dhv2_oplock_lease(struct torture_context *tctx,
        } else {
                CHECK_VAL(io.out.oplock_level, smb2_util_oplock_level("b"));
                CHECK_VAL(io.out.durable_open_v2, true);
-               CHECK_VAL(io.out.timeout, io.in.timeout);
+               CHECK_VAL(io.out.timeout, 300*1000);
        }
 
        /*
@@ -877,7 +877,7 @@ static bool test_replay_dhv2_lease1(struct torture_context *tctx,
                CHECK_VAL(io1.out.lease_response.lease_state,
                          smb2_util_lease_state("RH"));
                CHECK_VAL(io1.out.durable_open_v2, true);
-               CHECK_VAL(io1.out.timeout, io1.in.timeout);
+               CHECK_VAL(io1.out.timeout, 300*1000);
        }
 
        /*
@@ -1015,7 +1015,7 @@ static bool test_replay_dhv2_lease2(struct torture_context *tctx,
                CHECK_VAL(io1.out.lease_response.lease_state,
                          smb2_util_lease_state("RH"));
                CHECK_VAL(io1.out.durable_open_v2, true);
-               CHECK_VAL(io1.out.timeout, io1.in.timeout);
+               CHECK_VAL(io1.out.timeout, 300*1000);
        }
        ref1 = io1;
        _h1 = io1.out.file.handle;
@@ -1159,7 +1159,7 @@ static bool test_replay_dhv2_lease3(struct torture_context *tctx,
                CHECK_VAL(io1.out.lease_response.lease_state,
                          smb2_util_lease_state("RH"));
                CHECK_VAL(io1.out.durable_open_v2, true);
-               CHECK_VAL(io1.out.timeout, io1.in.timeout);
+               CHECK_VAL(io1.out.timeout, 300*1000);
        }
        _h1 = io1.out.file.handle;
        h1 = &_h1;
@@ -1296,7 +1296,7 @@ static bool test_replay_dhv2_lease_oplock(struct torture_context *tctx,
                CHECK_VAL(io1.out.lease_response.lease_state,
                          smb2_util_lease_state("RH"));
                CHECK_VAL(io1.out.durable_open_v2, true);
-               CHECK_VAL(io1.out.timeout, io1.in.timeout);
+               CHECK_VAL(io1.out.timeout, 300*1000);
        }
 
        /*
@@ -1696,7 +1696,7 @@ static bool test_replay3(struct torture_context *tctx, struct smb2_tree *tree1)
        } else {
                CHECK_VAL(io.out.oplock_level, smb2_util_oplock_level("b"));
                CHECK_VAL(io.out.durable_open_v2, true);
-               CHECK_VAL(io.out.timeout, io.in.timeout);
+               CHECK_VAL(io.out.timeout, 300*1000);
        }
        CHECK_VAL(io.out.durable_open, false);
        CHECK_VAL(break_info.count, 0);
@@ -1751,7 +1751,7 @@ static bool test_replay3(struct torture_context *tctx, struct smb2_tree *tree1)
        } else {
                CHECK_VAL(io.out.oplock_level, smb2_util_oplock_level("b"));
                CHECK_VAL(io.out.durable_open_v2, true);
-               CHECK_VAL(io.out.timeout, io.in.timeout);
+               CHECK_VAL(io.out.timeout, 300*1000);
        }
        CHECK_VAL(io.out.durable_open, false);
        CHECK_VAL(break_info.count, 0);
@@ -1858,7 +1858,7 @@ static bool test_replay4(struct torture_context *tctx, struct smb2_tree *tree1)
        } else {
                CHECK_VAL(io.out.oplock_level, smb2_util_oplock_level("b"));
                CHECK_VAL(io.out.durable_open_v2, true);
-               CHECK_VAL(io.out.timeout, io.in.timeout);
+               CHECK_VAL(io.out.timeout, 300*1000);
        }
        CHECK_VAL(io.out.durable_open, false);
        CHECK_VAL(break_info.count, 0);
@@ -2101,7 +2101,7 @@ static bool test_replay5(struct torture_context *tctx, struct smb2_tree *tree)
        CHECK_VAL(io.out.durable_open, false);
        CHECK_VAL(io.out.durable_open_v2, true);
        CHECK_VAL(io.out.persistent_open, true);
-       CHECK_VAL(io.out.timeout, io.in.timeout);
+       CHECK_VAL(io.out.timeout, 300*1000);
        CHECK_VAL(break_info.count, 0);
 
        /* disconnect, leaving the durable open */