mirror of
https://github.com/samba-team/samba.git
synced 2025-02-02 09:47:23 +03:00
r24900: - if we use try to create a 3rd dcerpc_pipe then use a 3rd variable
instead of overwritting the one of the 2nd connection - make it possible to specify the expected ntstatus for DsRoleGetPrimaryDomainInformation as the alter_context wants it to fail when used on the wrong pipe metze (This used to be commit c7c72ab36b15c5ffac1740b7df93fa92fe4620e9)
This commit is contained in:
parent
c7e8bcfdc9
commit
c009104626
@ -28,8 +28,8 @@
|
||||
|
||||
bool torture_rpc_alter_context(struct torture_context *torture)
|
||||
{
|
||||
NTSTATUS status;
|
||||
struct dcerpc_pipe *p, *p2;
|
||||
NTSTATUS status;
|
||||
struct dcerpc_pipe *p, *p2, *p3;
|
||||
struct policy_handle *handle;
|
||||
struct ndr_interface_table tmptbl;
|
||||
struct ndr_syntax_id syntax;
|
||||
@ -51,7 +51,7 @@ bool torture_rpc_alter_context(struct torture_context *torture)
|
||||
tmptbl = ndr_table_dssetup;
|
||||
tmptbl.syntax_id.if_version += 100;
|
||||
torture_comment(torture, "Opening bad secondary connection\n");
|
||||
status = dcerpc_secondary_context(p, &p2, &tmptbl);
|
||||
status = dcerpc_secondary_context(p, &p3, &tmptbl);
|
||||
torture_assert_ntstatus_equal(torture, status, NT_STATUS_RPC_UNSUPPORTED_NAME_SYNTAX,
|
||||
"dcerpc_alter_context with wrong version should fail");
|
||||
|
||||
@ -59,9 +59,7 @@ bool torture_rpc_alter_context(struct torture_context *torture)
|
||||
ret &= test_DsRoleGetPrimaryDomainInformation(torture, p2);
|
||||
|
||||
if (handle) {
|
||||
if (!test_lsa_Close(p, torture, handle)) {
|
||||
ret = false;
|
||||
}
|
||||
ret &= test_lsa_Close(p, torture, handle);
|
||||
}
|
||||
|
||||
syntax = p->syntax;
|
||||
@ -72,18 +70,12 @@ bool torture_rpc_alter_context(struct torture_context *torture)
|
||||
torture_assert_ntstatus_ok(torture, status, "dcerpc_alter_context failed");
|
||||
|
||||
torture_comment(torture, "testing DSSETUP pipe operations - should fault\n");
|
||||
if (test_DsRoleGetPrimaryDomainInformation(torture, p)) {
|
||||
ret = false;
|
||||
}
|
||||
ret &= test_DsRoleGetPrimaryDomainInformation_ext(torture, p, NT_STATUS_NET_WRITE_FAULT);
|
||||
|
||||
if (!test_lsa_OpenPolicy2(p, torture, &handle)) {
|
||||
ret = false;
|
||||
}
|
||||
ret &= test_lsa_OpenPolicy2(p, torture, &handle);
|
||||
|
||||
if (handle) {
|
||||
if (!test_lsa_Close(p, torture, handle)) {
|
||||
ret = false;
|
||||
}
|
||||
ret &= test_lsa_Close(p, torture, handle);
|
||||
}
|
||||
|
||||
torture_comment(torture, "testing DSSETUP pipe operations\n");
|
||||
|
@ -25,8 +25,9 @@
|
||||
#include "torture/rpc/rpc.h"
|
||||
|
||||
|
||||
bool test_DsRoleGetPrimaryDomainInformation(struct torture_context *tctx,
|
||||
struct dcerpc_pipe *p)
|
||||
bool test_DsRoleGetPrimaryDomainInformation_ext(struct torture_context *tctx,
|
||||
struct dcerpc_pipe *p,
|
||||
NTSTATUS ext_status)
|
||||
{
|
||||
struct dssetup_DsRoleGetPrimaryDomainInformation r;
|
||||
NTSTATUS status;
|
||||
@ -37,13 +38,21 @@ bool test_DsRoleGetPrimaryDomainInformation(struct torture_context *tctx,
|
||||
torture_comment(tctx, "dcerpc_dssetup_DsRoleGetPrimaryDomainInformation level %d\n", i);
|
||||
|
||||
status = dcerpc_dssetup_DsRoleGetPrimaryDomainInformation(p, tctx, &r);
|
||||
torture_assert_ntstatus_ok(tctx, status, "DsRoleGetPrimaryDomainInformation failed");
|
||||
torture_assert_werr_ok(tctx, r.out.result, "DsRoleGetPrimaryDomainInformation failed");
|
||||
torture_assert_ntstatus_equal(tctx, ext_status, status, "DsRoleGetPrimaryDomainInformation failed");
|
||||
if (NT_STATUS_IS_OK(ext_status)) {
|
||||
torture_assert_werr_ok(tctx, r.out.result, "DsRoleGetPrimaryDomainInformation failed");
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool test_DsRoleGetPrimaryDomainInformation(struct torture_context *tctx,
|
||||
struct dcerpc_pipe *p)
|
||||
{
|
||||
return test_DsRoleGetPrimaryDomainInformation_ext(tctx, p, NT_STATUS_OK);
|
||||
}
|
||||
|
||||
struct torture_suite *torture_rpc_dssetup(TALLOC_CTX *mem_ctx)
|
||||
{
|
||||
struct torture_suite *suite = torture_suite_create(mem_ctx, "DSSETUP");
|
||||
|
Loading…
x
Reference in New Issue
Block a user