The branch, master has been updated
       via  94a2328 s3: Avoid calls to cli_dos/nt_error in torture
       via  a7f8d9e s3: Fix formatting in check_error()
       via  34faeb8 s3:test_async_echo: unsure the desired smb message sequence
      from  abf3573 s3:modules fix Bug 8330 NFSv4 ACL merging logic is broken

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 94a2328367b2098bf5e125ddbd1e8c9bfde20efe
Author: Volker Lendecke <[email protected]>
Date:   Wed Jul 27 21:51:45 2011 +0200

    s3: Avoid calls to cli_dos/nt_error in torture
    
    Autobuild-User: Volker Lendecke <[email protected]>
    Autobuild-Date: Wed Jul 27 23:07:51 CEST 2011 on sn-devel-104

commit a7f8d9e798bd5cf4ff16382b45e20e4b2a4c0bf8
Author: Volker Lendecke <[email protected]>
Date:   Wed Jul 27 21:51:13 2011 +0200

    s3: Fix formatting in check_error()

commit 34faeb8bba86fff57466c06682b7dcbffc48a52a
Author: Stefan Metzmacher <[email protected]>
Date:   Wed Jul 27 18:35:00 2011 +0200

    s3:test_async_echo: unsure the desired smb message sequence
    
    We want to start sending echo requests once the rpc related
    smb operation arrived the smb layer.
    
    metze

-----------------------------------------------------------------------

Summary of changes:
 source3/torture/test_async_echo.c |   10 +++++++
 source3/torture/torture.c         |   48 +++++++++++++++++++-----------------
 2 files changed, 35 insertions(+), 23 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/torture/test_async_echo.c 
b/source3/torture/test_async_echo.c
index 6f82939..f1d44ee 100644
--- a/source3/torture/test_async_echo.c
+++ b/source3/torture/test_async_echo.c
@@ -20,6 +20,7 @@
 #include "includes.h"
 #include "torture/proto.h"
 #include "libsmb/libsmb.h"
+#include "async_smb.h"
 #include "rpc_client/cli_pipe.h"
 #include "librpc/gen_ndr/ndr_echo_c.h"
 
@@ -100,6 +101,15 @@ bool run_async_echo(int dummy)
        tevent_req_set_callback(req, rpccli_sleep_done, &num_reqs);
        num_reqs += 1;
 
+       /* Wait until the rpc operation arrives at the smb layer */
+       while (tevent_req_is_in_progress(req) &&
+              !cli_has_async_calls(cli)) {
+               if (tevent_loop_once(ev) != 0) {
+                       printf("tevent_loop_once failed\n");
+                       goto fail;
+               }
+       }
+
        req = cli_echo_send(ev, ev, cli, 1, data_blob_const("hello", 5));
        if (req == NULL) {
                printf("cli_echo_send failed\n");
diff --git a/source3/torture/torture.c b/source3/torture/torture.c
index 36d263d..90a9068 100644
--- a/source3/torture/torture.c
+++ b/source3/torture/torture.c
@@ -503,35 +503,35 @@ static bool check_both_error(int line, NTSTATUS status,
 
 
 /* check if the server produced the expected error code */
-static bool check_error(int line, struct cli_state *c, 
+static bool check_error(int line, NTSTATUS status,
                        uint8 eclass, uint32 ecode, NTSTATUS nterr)
 {
-        if (cli_is_dos_error(c)) {
+       if (NT_STATUS_IS_DOS(status)) {
                 uint8 cclass;
                 uint32 num;
 
                 /* Check DOS error */
 
-                cli_dos_error(c, &cclass, &num);
+               cclass = NT_STATUS_DOS_CLASS(status);
+               num = NT_STATUS_DOS_CODE(status);
 
                 if (eclass != cclass || ecode != num) {
                         printf("unexpected error code class=%d code=%d\n", 
                                (int)cclass, (int)num);
                         printf(" expected %d/%d %s (line=%d)\n", 
-                               (int)eclass, (int)ecode, nt_errstr(nterr), 
line);
+                               (int)eclass, (int)ecode, nt_errstr(nterr),
+                              line);
                         return False;
                 }
 
         } else {
-                NTSTATUS status;
-
                 /* Check NT error */
 
-                status = cli_nt_error(c);
-
                 if (NT_STATUS_V(nterr) != NT_STATUS_V(status)) {
-                        printf("unexpected error code %s\n", 
nt_errstr(status));
-                        printf(" expected %s (line=%d)\n", nt_errstr(nterr), 
line);
+                        printf("unexpected error code %s\n",
+                              nt_errstr(status));
+                        printf(" expected %s (line=%d)\n", nt_errstr(nterr),
+                              line);
                         return False;
                 }
         }
@@ -2921,7 +2921,7 @@ static bool run_unlinktest(int dummy)
                printf("error: server allowed unlink on an open file\n");
                correct = False;
        } else {
-               correct = check_error(__LINE__, cli, ERRDOS, ERRbadshare, 
+               correct = check_error(__LINE__, status, ERRDOS, ERRbadshare,
                                      NT_STATUS_SHARING_VIOLATION);
        }
 
@@ -4874,9 +4874,9 @@ static bool run_opentest(int dummy)
        }
 
        /* This will fail - but the error should be ERRnoaccess, not 
ERRbadshare. */
-       cli_open(cli1, fname, O_RDWR, DENY_ALL, &fnum2);
+       status = cli_open(cli1, fname, O_RDWR, DENY_ALL, &fnum2);
 
-        if (check_error(__LINE__, cli1, ERRDOS, ERRnoaccess, 
+        if (check_error(__LINE__, status, ERRDOS, ERRnoaccess,
                        NT_STATUS_ACCESS_DENIED)) {
                printf("correct error code ERRDOS/ERRnoaccess returned\n");
        }
@@ -4896,9 +4896,9 @@ static bool run_opentest(int dummy)
        }
 
        /* This will fail - but the error should be ERRshare. */
-       cli_open(cli1, fname, O_RDWR, DENY_ALL, &fnum2);
+       status = cli_open(cli1, fname, O_RDWR, DENY_ALL, &fnum2);
 
-       if (check_error(__LINE__, cli1, ERRDOS, ERRbadshare, 
+       if (check_error(__LINE__, status, ERRDOS, ERRbadshare,
                        NT_STATUS_SHARING_VIOLATION)) {
                printf("correct error code ERRDOS/ERRbadshare returned\n");
        }
@@ -6012,23 +6012,25 @@ bool torture_chkpath_test(int dummy)
 
        status = cli_chkpath(cli, "\\chkpath.dir\\foo.txt");
        if (!NT_STATUS_IS_OK(status)) {
-               ret = check_error(__LINE__, cli, ERRDOS, ERRbadpath, 
+               ret = check_error(__LINE__, status, ERRDOS, ERRbadpath,
                                  NT_STATUS_NOT_A_DIRECTORY);
        } else {
                printf("* chkpath on a file should fail\n");
                ret = False;
        }
 
-       if (!NT_STATUS_IS_OK(cli_chkpath(cli, "\\chkpath.dir\\bar.txt"))) {
-               ret = check_error(__LINE__, cli, ERRDOS, ERRbadfile, 
+       status = cli_chkpath(cli, "\\chkpath.dir\\bar.txt");
+       if (!NT_STATUS_IS_OK(status)) {
+               ret = check_error(__LINE__, status, ERRDOS, ERRbadfile,
                                  NT_STATUS_OBJECT_NAME_NOT_FOUND);
        } else {
                printf("* chkpath on a non existant file should fail\n");
                ret = False;
        }
 
-       if (!NT_STATUS_IS_OK(cli_chkpath(cli, 
"\\chkpath.dir\\dirxx\\bar.txt"))) {
-               ret = check_error(__LINE__, cli, ERRDOS, ERRbadpath, 
+       status = cli_chkpath(cli, "\\chkpath.dir\\dirxx\\bar.txt");
+       if (!NT_STATUS_IS_OK(status)) {
+               ret = check_error(__LINE__, status, ERRDOS, ERRbadpath,
                                  NT_STATUS_OBJECT_PATH_NOT_FOUND);
        } else {
                printf("* chkpath on a non existent component should fail\n");
@@ -7168,8 +7170,8 @@ static bool run_uid_regression_test(int dummy)
                goto out;
        } else {
                /* Should be bad uid. */
-               if (!check_error(__LINE__, cli, ERRSRV, ERRbaduid,
-                               NT_STATUS_USER_SESSION_DELETED)) {
+               if (!check_error(__LINE__, status, ERRSRV, ERRbaduid,
+                                NT_STATUS_USER_SESSION_DELETED)) {
                        correct = false;
                        goto out;
                }
@@ -7202,7 +7204,7 @@ static bool run_uid_regression_test(int dummy)
                goto out;
        } else {
                /* Should be bad tid. */
-               if (!check_error(__LINE__, cli, ERRSRV, ERRinvnid,
+               if (!check_error(__LINE__, status, ERRSRV, ERRinvnid,
                                NT_STATUS_NETWORK_NAME_DELETED)) {
                        correct = false;
                        goto out;


-- 
Samba Shared Repository

Reply via email to