summaryrefslogtreecommitdiff
path: root/source4/torture/rpc
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2008-11-14 00:30:11 +0100
committerGünther Deschner <gd@samba.org>2008-11-17 13:13:20 +0100
commitfea323bdf3e4b87af87a8b69e9e528e04e34fe07 (patch)
treee05664188f56958317005296fba48a2f937f2aca /source4/torture/rpc
parent7d5f3f51b0f576d99e22fdb95e013b857071f978 (diff)
downloadsamba-fea323bdf3e4b87af87a8b69e9e528e04e34fe07.tar.gz
samba-fea323bdf3e4b87af87a8b69e9e528e04e34fe07.tar.bz2
samba-fea323bdf3e4b87af87a8b69e9e528e04e34fe07.zip
s4-smbtorture: add PNP_GetDeviceRegProp test for ntsvcs testsuite.
Guenther
Diffstat (limited to 'source4/torture/rpc')
-rw-r--r--source4/torture/rpc/ntsvcs.c40
1 files changed, 40 insertions, 0 deletions
diff --git a/source4/torture/rpc/ntsvcs.c b/source4/torture/rpc/ntsvcs.c
index 3db79ac8bf..5453102039 100644
--- a/source4/torture/rpc/ntsvcs.c
+++ b/source4/torture/rpc/ntsvcs.c
@@ -108,6 +108,44 @@ static bool test_PNP_GetDeviceList(struct torture_context *tctx,
return true;
}
+static bool test_PNP_GetDeviceRegProp(struct torture_context *tctx,
+ struct dcerpc_pipe *p)
+{
+ NTSTATUS status;
+ struct PNP_GetDeviceRegProp r;
+
+ enum winreg_Type reg_data_type = REG_NONE;
+ uint32_t buffer_size = 0;
+ uint32_t needed = 0;
+ uint8_t *buffer;
+
+ buffer = talloc(tctx, uint8_t);
+
+ r.in.devicepath = "ACPI\\ACPI0003\\1";
+ r.in.property = DEV_REGPROP_DESC;
+ r.in.flags = 0;
+ r.in.reg_data_type = &reg_data_type;
+ r.in.buffer_size = &buffer_size;
+ r.in.needed = &needed;
+ r.out.buffer = buffer;
+ r.out.reg_data_type = &reg_data_type;
+ r.out.buffer_size = &buffer_size;
+ r.out.needed = &needed;
+
+ status = dcerpc_PNP_GetDeviceRegProp(p, tctx, &r);
+ torture_assert_ntstatus_ok(tctx, status, "PNP_GetDeviceRegProp");
+
+ if (W_ERROR_EQUAL(r.out.result, WERR_CM_BUFFER_SMALL)) {
+
+ buffer = talloc_array(tctx, uint8_t, needed);
+ r.in.buffer_size = &needed;
+
+ status = dcerpc_PNP_GetDeviceRegProp(p, tctx, &r);
+ torture_assert_ntstatus_ok(tctx, status, "PNP_GetDeviceRegProp");
+ }
+
+ return true;
+}
struct torture_suite *torture_rpc_ntsvcs(TALLOC_CTX *mem_ctx)
{
@@ -118,6 +156,8 @@ struct torture_suite *torture_rpc_ntsvcs(TALLOC_CTX *mem_ctx)
tcase = torture_suite_add_rpc_iface_tcase(suite, "ntsvcs",
&ndr_table_ntsvcs);
+ test = torture_rpc_tcase_add_test(tcase, "PNP_GetDeviceRegProp",
+ test_PNP_GetDeviceRegProp);
test = torture_rpc_tcase_add_test(tcase, "PNP_GetDeviceList",
test_PNP_GetDeviceList);
test = torture_rpc_tcase_add_test(tcase, "PNP_GetDeviceListSize",