2 Unix SMB/CIFS implementation.
4 test suite for behaviour of object uuids in rpc requests
6 Copyright (C) Stefan Metzmacher 2008
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 3 of the License, or
11 (at your option) any later version.
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program. If not, see <http://www.gnu.org/licenses/>.
23 #include "librpc/gen_ndr/ndr_dssetup.h"
24 #include "librpc/gen_ndr/ndr_lsa.h"
25 #include "torture/rpc/torture_rpc.h"
28 this tests the send object uuids in the dcerpc request
31 static bool test_random_uuid(struct torture_context
*torture
)
34 struct dcerpc_pipe
*p1
, *p2
;
36 struct dssetup_DsRoleGetPrimaryDomainInformation r1
;
37 struct lsa_GetUserName r2
;
38 struct lsa_String
*authority_name_p
= NULL
;
39 struct lsa_String
*account_name_p
= NULL
;
41 torture_comment(torture
, "RPC-OBJECTUUID-RANDOM\n");
43 status
= torture_rpc_connection(torture
, &p1
, &ndr_table_dssetup
);
44 torture_assert_ntstatus_ok(torture
, status
, "opening dsetup pipe1");
46 status
= torture_rpc_connection(torture
, &p2
, &ndr_table_lsarpc
);
47 torture_assert_ntstatus_ok(torture
, status
, "opening lsa pipe1");
51 r1
.in
.level
= DS_ROLE_BASIC_INFORMATION
;
52 status
= dcerpc_binding_handle_call(p1
->binding_handle
,
55 NDR_DSSETUP_DSROLEGETPRIMARYDOMAININFORMATION
,
57 torture_assert_ntstatus_ok(torture
, status
, "DsRoleGetPrimaryDomainInformation failed");
58 torture_assert_werr_ok(torture
, r1
.out
.result
, "DsRoleGetPrimaryDomainInformation failed");
62 r2
.in
.system_name
= "\\";
63 r2
.in
.account_name
= &account_name_p
;
64 r2
.in
.authority_name
= &authority_name_p
;
65 r2
.out
.account_name
= &account_name_p
;
66 r2
.out
.authority_name
= &authority_name_p
;
68 status
= dcerpc_binding_handle_call(p2
->binding_handle
,
73 torture_assert_ntstatus_ok(torture
, status
, "lsaClose failed");
74 torture_assert_ntstatus_ok(torture
, r2
.out
.result
, "lsaClose failed");
79 struct torture_suite
*torture_rpc_object_uuid(TALLOC_CTX
*mem_ctx
)
81 struct torture_suite
*suite
;
82 suite
= torture_suite_create(mem_ctx
, "objectuuid");
83 torture_suite_add_simple_test(suite
, "random-uuid", test_random_uuid
);