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 "torture/torture.h"
24 #include "librpc/gen_ndr/ndr_dssetup.h"
25 #include "librpc/gen_ndr/ndr_dssetup_c.h"
26 #include "librpc/gen_ndr/ndr_lsa.h"
27 #include "librpc/gen_ndr/ndr_lsa_c.h"
28 #include "torture/rpc/rpc.h"
31 this tests the send object uuids in the dcerpc request
34 static bool test_random_uuid(struct torture_context
*torture
)
37 struct dcerpc_pipe
*p1
, *p2
;
38 struct rpc_request
*req
;
40 struct dssetup_DsRoleGetPrimaryDomainInformation r1
;
41 struct lsa_GetUserName r2
;
42 struct lsa_String
*authority_name_p
= NULL
;
43 struct lsa_String
*account_name_p
= NULL
;
45 torture_comment(torture
, "RPC-OBJECTUUID-RANDOM\n");
47 status
= torture_rpc_connection(torture
, &p1
, &ndr_table_dssetup
);
48 torture_assert_ntstatus_ok(torture
, status
, "opening dsetup pipe1");
50 status
= torture_rpc_connection(torture
, &p2
, &ndr_table_lsarpc
);
51 torture_assert_ntstatus_ok(torture
, status
, "opening lsa pipe1");
55 r1
.in
.level
= DS_ROLE_BASIC_INFORMATION
;
56 status
= dcerpc_ndr_request(p1
, &uuid
,
58 NDR_DSSETUP_DSROLEGETPRIMARYDOMAININFORMATION
,
60 torture_assert_ntstatus_ok(torture
, status
, "DsRoleGetPrimaryDomainInformation failed");
61 torture_assert_werr_ok(torture
, r1
.out
.result
, "DsRoleGetPrimaryDomainInformation failed");
65 r2
.in
.system_name
= "\\";
66 r2
.in
.account_name
= &account_name_p
;
67 r2
.in
.authority_name
= &authority_name_p
;
68 r2
.out
.account_name
= &account_name_p
;
69 r2
.out
.authority_name
= &authority_name_p
;
71 status
= dcerpc_ndr_request(p2
, &uuid
,
75 torture_assert_ntstatus_ok(torture
, status
, "lsaClose failed");
76 torture_assert_ntstatus_ok(torture
, r2
.out
.result
, "lsaClose failed");
81 struct torture_suite
*torture_rpc_object_uuid(TALLOC_CTX
*mem_ctx
)
83 struct torture_suite
*suite
;
84 suite
= torture_suite_create(mem_ctx
, "OBJECTUUID");
85 torture_suite_add_simple_test(suite
, "random-uuid", test_random_uuid
);