summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2012-09-21 22:20:20 +0200
committerKarolin Seeger <kseeger@samba.org>2012-09-28 09:23:07 +0200
commit0e5ecc554393b1899c77d9e15868d651beb8d647 (patch)
tree742f3a0fdbbd606adbf7bb9b5f1c7588fff9577a
parentc4d803bcc7baf6282fdb81a147e310ad8713e8f1 (diff)
downloadsamba-0e5ecc554393b1899c77d9e15868d651beb8d647.tar.gz
s4:torture:smb2: extend the compound.invalid1 test
Test that when turning the related flag back off for the last compound request, the return code changes from invalid parameter to file closed. Pair-Programmed-With: Michael Adam <obnox@samba.org> (cherry picked from commit 25437df8a65e56616499dda18c696f58be08f67a) Signed-off-by: Stefan Metzmacher <metze@samba.org>
-rw-r--r--source4/torture/smb2/compound.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/source4/torture/smb2/compound.c b/source4/torture/smb2/compound.c
index 1c2b7cc5a63..596702bd99b 100644
--- a/source4/torture/smb2/compound.c
+++ b/source4/torture/smb2/compound.c
@@ -348,9 +348,9 @@ static bool test_compound_invalid1(struct torture_context *tctx,
const char *fname = "compound_invalid1.dat";
struct smb2_close cl;
bool ret = true;
- struct smb2_request *req[2];
+ struct smb2_request *req[3];
- smb2_transport_credits_ask_num(tree->session->transport, 2);
+ smb2_transport_credits_ask_num(tree->session->transport, 3);
smb2_util_unlink(tree, fname);
@@ -374,7 +374,7 @@ static bool test_compound_invalid1(struct torture_context *tctx,
0x00200000;
cr.in.fname = fname;
- smb2_transport_compound_start(tree->session->transport, 2);
+ smb2_transport_compound_start(tree->session->transport, 3);
/* passing the first request with the related flag is invalid */
smb2_transport_compound_set_related(tree->session->transport, true);
@@ -388,11 +388,16 @@ static bool test_compound_invalid1(struct torture_context *tctx,
cl.in.file.handle = hd;
req[1] = smb2_close_send(tree, &cl);
+ smb2_transport_compound_set_related(tree->session->transport, false);
+ req[2] = smb2_close_send(tree, &cl);
+
status = smb2_create_recv(req[0], tree, &cr);
/* TODO: check why this fails with --signing=required */
CHECK_STATUS(status, NT_STATUS_INVALID_PARAMETER);
status = smb2_close_recv(req[1], &cl);
CHECK_STATUS(status, NT_STATUS_INVALID_PARAMETER);
+ status = smb2_close_recv(req[2], &cl);
+ CHECK_STATUS(status, NT_STATUS_FILE_CLOSED);
smb2_util_unlink(tree, fname);
done: