s4-smbtorture: Make test names lowercase and dot-separated.
[kai/samba-autobuild/.git] / source4 / torture / rpc / object_uuid.c
1 /*
2    Unix SMB/CIFS implementation.
3
4    test suite for behaviour of object uuids in rpc requests
5
6    Copyright (C) Stefan Metzmacher 2008
7
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.
12
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.
17
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/>.
20 */
21
22 #include "includes.h"
23 #include "librpc/gen_ndr/ndr_dssetup.h"
24 #include "librpc/gen_ndr/ndr_lsa.h"
25 #include "torture/rpc/torture_rpc.h"
26
27 /*
28   this tests the send object uuids in the dcerpc request
29 */
30
31 static bool test_random_uuid(struct torture_context *torture)
32 {
33         NTSTATUS status;
34         struct dcerpc_pipe *p1, *p2;
35         struct GUID uuid;
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;
40
41         torture_comment(torture, "RPC-OBJECTUUID-RANDOM\n");
42
43         status = torture_rpc_connection(torture, &p1, &ndr_table_dssetup);
44         torture_assert_ntstatus_ok(torture, status, "opening dsetup pipe1");
45
46         status = torture_rpc_connection(torture, &p2, &ndr_table_lsarpc);
47         torture_assert_ntstatus_ok(torture, status, "opening lsa pipe1");
48
49         uuid = GUID_random();
50
51         r1.in.level = DS_ROLE_BASIC_INFORMATION;
52         status = dcerpc_ndr_request(p1, &uuid,
53                                     &ndr_table_dssetup,
54                                     NDR_DSSETUP_DSROLEGETPRIMARYDOMAININFORMATION,
55                                     torture, &r1);
56         torture_assert_ntstatus_ok(torture, status, "DsRoleGetPrimaryDomainInformation failed");
57         torture_assert_werr_ok(torture, r1.out.result, "DsRoleGetPrimaryDomainInformation failed");
58
59         uuid = GUID_random();
60
61         r2.in.system_name = "\\";
62         r2.in.account_name = &account_name_p;
63         r2.in.authority_name = &authority_name_p;
64         r2.out.account_name = &account_name_p;
65         r2.out.authority_name = &authority_name_p;
66
67         status = dcerpc_ndr_request(p2, &uuid,
68                                     &ndr_table_lsarpc,
69                                     NDR_LSA_GETUSERNAME,
70                                     torture, &r2);
71         torture_assert_ntstatus_ok(torture, status, "lsaClose failed");
72         torture_assert_ntstatus_ok(torture, r2.out.result, "lsaClose failed");
73
74         return true;
75 }
76
77 struct torture_suite *torture_rpc_object_uuid(TALLOC_CTX *mem_ctx)
78 {
79         struct torture_suite *suite;
80         suite = torture_suite_create(mem_ctx, "objectuuid");
81         torture_suite_add_simple_test(suite, "random-uuid", test_random_uuid);
82         return suite;
83 }