r17857: A couple of new tests.
authorRafal Szczesniak <mimir@samba.org>
Sun, 27 Aug 2006 20:39:50 +0000 (20:39 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:16:49 +0000 (14:16 -0500)
rafal
(This used to be commit 6db488cc6e29704ae2ae17b2875a76ded5d86b88)

source4/torture/libnet/libnet.c
source4/torture/libnet/libnet_lookup.c
source4/torture/libnet/libnet_user.c

index 588b06bafac9bf4424b222d263dcbe90ed614f29..2d4699c024d6ea928f611a9a8fe93020a06f50eb 100644 (file)
@@ -32,9 +32,11 @@ NTSTATUS torture_net_init(void)
        register_torture_op("NET-API-LOOKUP", torture_lookup);
        register_torture_op("NET-API-LOOKUPHOST", torture_lookup_host);
        register_torture_op("NET-API-LOOKUPPDC", torture_lookup_pdc);
+       register_torture_op("NET-API-LOOKUPNAME", torture_lookup_sam_name);
        register_torture_op("NET-API-CREATEUSER", torture_createuser);
        register_torture_op("NET-API-DELETEUSER", torture_deleteuser);
        register_torture_op("NET-API-MODIFYUSER", torture_modifyuser);
+       register_torture_op("NET-API-USERINFO", torture_userinfo_api);
        register_torture_op("NET-API-RPCCONN-BIND", torture_rpc_connect_binding);
        register_torture_op("NET-API-RPCCONN-SRV", torture_rpc_connect_srv);
        register_torture_op("NET-API-RPCCONN-PDC", torture_rpc_connect_pdc);
@@ -42,6 +44,8 @@ NTSTATUS torture_net_init(void)
        register_torture_op("NET-API-RPCCONN-DCINFO", torture_rpc_connect_dc_info);
        register_torture_op("NET-API-LISTSHARES", torture_listshares);
        register_torture_op("NET-API-DELSHARE", torture_delshare);
+       register_torture_op("NET-API-DOMOPENLSA", torture_domain_open_lsa);
+       register_torture_op("NET-API-DOMCLOSELSA", torture_domain_close_lsa);
 
        return NT_STATUS_OK;
 }
index ac2f19b983d4774c7970755bd465e938de6b2e85..eb03eb5eca7f652c3f382fe8b69aaf60893bec94 100644 (file)
@@ -165,3 +165,28 @@ done:
        talloc_free(mem_ctx);
        return ret;
 }
+
+
+BOOL torture_lookup_sam_name(struct torture_context *torture)
+{
+       NTSTATUS status;
+       TALLOC_CTX *mem_ctx;
+       struct libnet_context *ctx;
+       struct libnet_LookupName r;
+
+       ctx = libnet_context_init(NULL);
+       ctx->cred = cmdline_credentials;
+
+       mem_ctx = talloc_init("torture lookup sam name");
+       if (mem_ctx == NULL) return False;
+
+       r.in.name = "Administrator";
+       r.in.domain_name = lp_workgroup();
+
+       status = libnet_LookupName(ctx, mem_ctx, &r);
+
+       talloc_free(mem_ctx);
+       talloc_free(ctx);
+
+       return True;
+}
index fca73a2977d31e6c0b965cba0f976de1a1ac674e..085796130fb2835af802262dcba6be9af781ca69 100644 (file)
@@ -509,3 +509,64 @@ done:
        talloc_free(mem_ctx);
        return ret;
 }
+
+
+BOOL torture_userinfo_api(struct torture_context *torture)
+{
+       const char *name = TEST_USERNAME;
+       const char *binding;
+       BOOL ret = True;
+       NTSTATUS status;
+       TALLOC_CTX *mem_ctx, *prep_mem_ctx;
+       struct libnet_context *ctx;
+       struct dcerpc_pipe *p;
+       struct policy_handle h;
+       struct lsa_String domain_name;
+       struct libnet_UserInfo req;
+
+       prep_mem_ctx = talloc_init("torture user info");
+       binding = lp_parm_string(-1, "torture", "binding");
+
+       ctx = libnet_context_init(NULL);
+       ctx->cred = cmdline_credentials;
+
+       status = torture_rpc_connection(prep_mem_ctx,
+                                       &p,
+                                       &dcerpc_table_samr);
+       if (!NT_STATUS_IS_OK(status)) {
+               return False;
+       }
+
+       domain_name.string = lp_workgroup();
+       if (!test_opendomain(p, prep_mem_ctx, &h, &domain_name)) {
+               ret = False;
+               goto done;
+       }
+
+       if (!test_createuser(p, prep_mem_ctx, &h, name)) {
+               ret = False;
+               goto done;
+       }
+
+       ZERO_STRUCT(req);
+       
+       req.in.domain_name = domain_name.string;
+       req.in.user_name   = name;
+
+       status = libnet_UserInfo(ctx, mem_ctx, &req);
+       if (!NT_STATUS_IS_OK(status)) {
+               printf("libnet_UserInfo call failed: %s\n", nt_errstr(status));
+               ret = False;
+       }
+
+       if (!test_cleanup(ctx->samr.pipe, mem_ctx, &ctx->samr.handle, TEST_USERNAME)) {
+               printf("cleanup failed\n");
+               ret = False;
+               goto done;
+       }
+
+done:
+       talloc_free(ctx);
+       talloc_free(mem_ctx);
+       return ret;
+}