Author: abartlet Date: 2005-01-12 03:19:48 +0000 (Wed, 12 Jan 2005) New Revision: 4699
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=4699 Log: Move the test_EnumTrustDom() test into the test_CreateTrustedDomain test. This way, it must have at least one domain to enumerate. Andrew Bartlett Modified: branches/SAMBA_4_0/source/torture/rpc/lsa.c Changeset: Modified: branches/SAMBA_4_0/source/torture/rpc/lsa.c =================================================================== --- branches/SAMBA_4_0/source/torture/rpc/lsa.c 2005-01-12 02:40:25 UTC (rev 4698) +++ branches/SAMBA_4_0/source/torture/rpc/lsa.c 2005-01-12 03:19:48 UTC (rev 4699) @@ -631,45 +631,6 @@ } -static BOOL test_CreateTrustedDomain(struct dcerpc_pipe *p, - TALLOC_CTX *mem_ctx, - struct policy_handle *handle) -{ - NTSTATUS status; - struct lsa_CreateTrustedDomain r; - struct lsa_TrustInformation trustinfo; - struct dom_sid *domsid; - struct policy_handle trustdom_handle; - - printf("Testing CreateTrustedDomain\n"); - - domsid = dom_sid_parse_talloc(mem_ctx, "S-1-5-21-97398-379795-12345"); - - trustinfo.sid = domsid; - init_lsa_String(&trustinfo.name, "torturedomain"); - - r.in.handle = handle; - r.in.info = &trustinfo; - r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED; - r.out.trustdom_handle = &trustdom_handle; - - status = dcerpc_lsa_CreateTrustedDomain(p, mem_ctx, &r); - if (NT_STATUS_EQUAL(status, NT_STATUS_OBJECT_NAME_COLLISION)) { - test_DeleteTrustedDomain(p, mem_ctx, handle, trustinfo.name); - status = dcerpc_lsa_CreateTrustedDomain(p, mem_ctx, &r); - } - if (!NT_STATUS_IS_OK(status)) { - printf("CreateTrustedDomain failed - %s\n", nt_errstr(status)); - return False; - } - - if (!test_Delete(p, mem_ctx, &trustdom_handle)) { - return False; - } - - return True; -} - static BOOL test_CreateSecret(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct policy_handle *handle) @@ -1423,6 +1384,69 @@ return ret; } +static BOOL test_CreateTrustedDomain(struct dcerpc_pipe *p, + TALLOC_CTX *mem_ctx, + struct policy_handle *handle) +{ + NTSTATUS status; + BOOL ret = True; + struct lsa_CreateTrustedDomain r; + struct lsa_TrustInformation trustinfo; + struct dom_sid *domsid; + struct policy_handle trustdom_handle; + struct lsa_QueryTrustedDomainInfo q; + + printf("Testing CreateTrustedDomain\n"); + + domsid = dom_sid_parse_talloc(mem_ctx, "S-1-5-21-97398-379795-12345"); + + trustinfo.sid = domsid; + init_lsa_String(&trustinfo.name, "torturedomain"); + + r.in.handle = handle; + r.in.info = &trustinfo; + r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED; + r.out.trustdom_handle = &trustdom_handle; + + status = dcerpc_lsa_CreateTrustedDomain(p, mem_ctx, &r); + if (NT_STATUS_EQUAL(status, NT_STATUS_OBJECT_NAME_COLLISION)) { + test_DeleteTrustedDomain(p, mem_ctx, handle, trustinfo.name); + status = dcerpc_lsa_CreateTrustedDomain(p, mem_ctx, &r); + } + if (!NT_STATUS_IS_OK(status)) { + printf("CreateTrustedDomain failed - %s\n", nt_errstr(status)); + return False; + } + + q.in.trustdom_handle = &trustdom_handle; + q.in.level = LSA_TRUSTED_DOMAIN_INFO_NAME; + status = dcerpc_lsa_QueryTrustedDomainInfo(p, mem_ctx, &q); + if (!NT_STATUS_IS_OK(status)) { + printf("QueryTrustedDomainInfo level 1 failed - %s\n", nt_errstr(status)); + ret = False; + } + if (!q.out.info) { + ret = False; + } else { + if (strcmp(q.out.info->name.netbios_name.string, trustinfo.name.string) != 0) { + printf("QueryTrustedDomainInfo returned inconsistant short name: %s != %s\n", + q.out.info->name.netbios_name.string, trustinfo.name.string); + ret = False; + } + } + + /* now that we have some domains to look over, we can test the enum calls */ + if (!test_EnumTrustDom(p, mem_ctx, handle)) { + ret = False; + } + + if (!test_Delete(p, mem_ctx, &trustdom_handle)) { + ret = False; + } + + return ret; +} + static BOOL test_QueryInfoPolicy(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct policy_handle *handle) @@ -1598,10 +1622,6 @@ ret = False; } - if (!test_EnumTrustDom(p, mem_ctx, &handle)) { - ret = False; - } - if (!test_QueryInfoPolicy(p, mem_ctx, &handle)) { ret = False; }
