2
Unix SMB/CIFS implementation.
4
test suite for browser rpc operations
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_browser_c.h"
25
#include "torture/rpc/rpc.h"
27
bool test_BrowserrQueryOtherDomains(struct torture_context *tctx,
28
struct dcerpc_pipe *p)
30
struct BrowserrQueryOtherDomains r;
31
struct BrowserrSrvInfo info;
32
struct BrowserrSrvInfo100Ctr ctr100;
33
struct srvsvc_NetSrvInfo100 entries100[1];
34
struct BrowserrSrvInfo101Ctr ctr101;
35
struct srvsvc_NetSrvInfo101 entries101[1];
36
uint32_t total_entries;
39
torture_comment(tctx, "dcerpc_BrowserrQueryOtherDomains\n");
44
ZERO_STRUCT(entries100);
46
ZERO_STRUCT(entries101);
49
r.in.server_unc = talloc_asprintf(tctx,"\\\\%s",dcerpc_server_name(p));
52
r.out.total_entries = &total_entries;
55
info.info.info100 = &ctr100;
57
status = dcerpc_BrowserrQueryOtherDomains(p, tctx, &r);
58
torture_assert_ntstatus_ok(tctx, status, "BrowserrQueryOtherDomains failed");
59
torture_assert_werr_ok(tctx, r.out.result, "BrowserrQueryOtherDomains failed");
60
torture_assert_int_equal(tctx, *r.out.total_entries, 0, "BrowserrQueryOtherDomains");
62
info.info.info100 = &ctr100;
63
ctr100.entries_read = ARRAY_SIZE(entries100);
64
ctr100.entries = entries100;
66
status = dcerpc_BrowserrQueryOtherDomains(p, tctx, &r);
67
torture_assert_ntstatus_ok(tctx, status, "BrowserrQueryOtherDomains failed");
68
torture_assert_werr_ok(tctx, r.out.result, "BrowserrQueryOtherDomains failed");
69
torture_assert_int_equal(tctx, *r.out.total_entries, 0, "BrowserrQueryOtherDomains");
71
info.info.info100 = NULL;
72
status = dcerpc_BrowserrQueryOtherDomains(p, tctx, &r);
73
torture_assert_ntstatus_ok(tctx, status, "BrowserrQueryOtherDomains failed");
74
torture_assert_werr_equal(tctx, WERR_INVALID_PARAM, r.out.result,
75
"BrowserrQueryOtherDomains failed");
78
info.info.info101 = &ctr101;
80
status = dcerpc_BrowserrQueryOtherDomains(p, tctx, &r);
81
torture_assert_ntstatus_ok(tctx, status, "BrowserrQueryOtherDomains failed");
82
torture_assert_werr_equal(tctx, WERR_UNKNOWN_LEVEL, r.out.result,
83
"BrowserrQueryOtherDomains");
85
info.info.info101 = &ctr101;
86
ctr101.entries_read = ARRAY_SIZE(entries101);
87
ctr101.entries = entries101;
89
status = dcerpc_BrowserrQueryOtherDomains(p, tctx, &r);
90
torture_assert_ntstatus_ok(tctx, status, "BrowserrQueryOtherDomains failed");
91
torture_assert_werr_equal(tctx, WERR_UNKNOWN_LEVEL, r.out.result,
92
"BrowserrQueryOtherDomains");
94
info.info.info101 = NULL;
95
status = dcerpc_BrowserrQueryOtherDomains(p, tctx, &r);
96
torture_assert_ntstatus_ok(tctx, status, "BrowserrQueryOtherDomains failed");
97
torture_assert_werr_equal(tctx, WERR_UNKNOWN_LEVEL, r.out.result,
98
"BrowserrQueryOtherDomains");
101
status = dcerpc_BrowserrQueryOtherDomains(p, tctx, &r);
102
torture_assert_ntstatus_ok(tctx, status, "BrowserrQueryOtherDomains failed");
103
torture_assert_werr_equal(tctx, WERR_UNKNOWN_LEVEL, r.out.result,
104
"BrowserrQueryOtherDomains");
107
status = dcerpc_BrowserrQueryOtherDomains(p, tctx, &r);
108
torture_assert_ntstatus_ok(tctx, status, "BrowserrQueryOtherDomains failed");
109
torture_assert_werr_equal(tctx, WERR_UNKNOWN_LEVEL, r.out.result,
110
"BrowserrQueryOtherDomains");
115
struct torture_suite *torture_rpc_browser(TALLOC_CTX *mem_ctx)
117
struct torture_suite *suite = torture_suite_create(mem_ctx, "BROWSER");
118
struct torture_rpc_tcase *tcase = torture_suite_add_rpc_iface_tcase(suite, "browser", &ndr_table_browser);
120
torture_rpc_tcase_add_test(tcase, "BrowserrQueryOtherDomains", test_BrowserrQueryOtherDomains);