s4:torture:smb2: extend the compound.invalid1 test
authorStefan Metzmacher <metze@samba.org>
Fri, 21 Sep 2012 20:20:20 +0000 (22:20 +0200)
committerKarolin Seeger <kseeger@samba.org>
Fri, 28 Sep 2012 07:12:46 +0000 (09:12 +0200)
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>
source4/torture/smb2/compound.c

index cd074471bca96d5469c140937c5ee42488c8837c..e0fda08d8e51017664bc36fac1c402b82c8c5ae7 100644 (file)
@@ -252,9 +252,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);
 
@@ -278,7 +278,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);
@@ -292,11 +292,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: