s4:torture/smb2: verify lease_flags in CHECK_LEASE_BREAK()
authorStefan Metzmacher <metze@samba.org>
Wed, 12 Nov 2014 16:00:44 +0000 (17:00 +0100)
committerStefan Metzmacher <metze@samba.org>
Thu, 27 Nov 2014 15:45:05 +0000 (16:45 +0100)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source4/torture/smb2/lease.c

index ef8847380c64b83b35e82e36c01a9852d8710566..999c9d4aa794f796ccbc4e1570a3fbe2352003ce 100644 (file)
@@ -377,10 +377,18 @@ static bool test_lease_upgrade2(struct torture_context *tctx,
 
 #define CHECK_LEASE_BREAK(__lb, __oldstate, __state, __key)            \
        do {                                                            \
-               CHECK_VAL((__lb)->new_lease_state, smb2_util_lease_state(__state));     \
-               CHECK_VAL((__lb)->current_lease.lease_state, smb2_util_lease_state(__oldstate)); \
+               uint16_t __new = smb2_util_lease_state(__state); \
+               uint16_t __old = smb2_util_lease_state(__oldstate); \
+               CHECK_VAL((__lb)->new_lease_state, __new);      \
+               CHECK_VAL((__lb)->current_lease.lease_state, __old); \
                CHECK_VAL((__lb)->current_lease.lease_key.data[0], (__key)); \
                CHECK_VAL((__lb)->current_lease.lease_key.data[1], ~(__key)); \
+               if (__old & (SMB2_LEASE_WRITE | SMB2_LEASE_HANDLE)) { \
+                       CHECK_VAL((__lb)->break_flags, \
+                                 SMB2_NOTIFY_BREAK_LEASE_FLAG_ACK_REQUIRED);   \
+               } else { \
+                       CHECK_VAL((__lb)->break_flags, 0); \
+               } \
        } while(0)
 
 #define CHECK_LEASE_BREAK_ACK(__lba, __state, __key)                   \