r6717: - torture test of async useradd function and monitor messages.
authorRafal Szczesniak <mimir@samba.org>
Tue, 10 May 2005 18:17:40 +0000 (18:17 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:16:37 +0000 (13:16 -0500)
- make message handling functions static.

rafal
(This used to be commit 96446e5e1e53eb519cbfeb64d0dd2f4052d75b0f)

source4/torture/libnet/userinfo.c
source4/torture/libnet/userman.c

index 4efd23f9a70b09c6476108969b879e165e9d2810..0c47ef4ae6381cf76c512a609da2872946baf49a 100644 (file)
@@ -204,7 +204,7 @@ static BOOL test_userinfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 }
 
 
-void msg_handler(struct monitor_msg *m)
+static void msg_handler(struct monitor_msg *m)
 {
        switch (m->type) {
        case rpc_open_user:
index 6add42232025328c26889b284d10835462d0d5cc..6a0a41434a8e871f6c51188e7d4f7c5e28cfede6 100644 (file)
@@ -22,6 +22,7 @@
 #include "includes.h"
 #include "librpc/gen_ndr/ndr_samr.h"
 #include "libnet/composite.h"
+#include "libcli/composite/monitor.h"
 
 #define TEST_USERNAME  "libnetusermantest"
 
@@ -88,6 +89,8 @@ static BOOL test_useradd(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        user.in.domain_handle = *domain_handle;
        user.in.username      = name;
 
+       printf("Testing rpc_composite_useradd\n");
+
        status = rpc_composite_useradd(p, mem_ctx, &user);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Failed to call sync rpc_composite_userinfo - %s\n", nt_errstr(status));
@@ -98,6 +101,46 @@ static BOOL test_useradd(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 }
 
 
+static void msg_handler(struct monitor_msg *m)
+{
+       switch (m->type) {
+       case rpc_create_user:
+               printf("monitor_msg: user created (rid=%d)\n", m->data.rpc_create_user.rid);
+               break;
+       }
+}
+
+
+static BOOL test_useradd_async(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+                              struct policy_handle *handle, const char* username)
+{
+       NTSTATUS status;
+       BOOL ret = True;
+       struct composite_context *c;
+       struct rpc_composite_useradd user;
+
+       user.in.domain_handle = *handle;
+       user.in.username      = username;
+       
+       printf("Testing async rpc_composite_useradd\n");
+       
+       c = rpc_composite_useradd_send(p, &user, msg_handler);
+       if (!c) {
+               printf("Failed to call async rpc_composite_useradd\n");
+               return False;
+       }
+
+       status = rpc_composite_useradd_recv(c, mem_ctx, &user);
+       if (!NT_STATUS_IS_OK(status)) {
+               printf("Calling async rpc_composite_useradd failed - %s\n", nt_errstr(status));
+               return False;
+       }
+
+       return True;
+
+}
+
+
 static BOOL test_cleanup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                         struct policy_handle *domain_handle, const char *username)
 {
@@ -269,6 +312,21 @@ BOOL torture_useradd(void)
                goto done;
        }
 
+       if (!test_opendomain(p, mem_ctx, &h, &domain_name)) {
+               ret = False;
+               goto done;
+       }
+
+       if (!test_useradd_async(p, mem_ctx, &h, name)) {
+               ret = False;
+               goto done;
+       }
+
+       if (!test_cleanup(p, mem_ctx, &h, name)) {
+               ret = False;
+               goto done;
+       }
+
 done:
        talloc_free(mem_ctx);
        return ret;