s4-smbtorture: extend test_QueryServiceConfig2W a bit.
authorGünther Deschner <gd@samba.org>
Thu, 8 Jan 2009 16:28:20 +0000 (17:28 +0100)
committerGünther Deschner <gd@samba.org>
Thu, 8 Jan 2009 16:32:44 +0000 (17:32 +0100)
Guenther

source4/torture/rpc/svcctl.c

index 7d8fc6b3329a42c9c7389684075dc1c445d4ec74..ea1534069cf761f7da02a32b40bfe935244a2bd2 100644 (file)
@@ -157,6 +157,24 @@ static bool test_QueryServiceConfig2W(struct torture_context *tctx, struct dcerp
                torture_assert_werr_ok(tctx, r.out.result, "QueryServiceConfig2W failed!");
        }
 
+       r.in.info_level = SERVICE_CONFIG_FAILURE_ACTIONS;
+       r.in.buf_size = buf_size;
+       r.out.buffer = buffer;
+       r.out.bytes_needed = &bytes_needed;
+
+       status = dcerpc_svcctl_QueryServiceConfig2W(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "QueryServiceConfig2W failed!");
+
+       if (W_ERROR_EQUAL(r.out.result, WERR_INSUFFICIENT_BUFFER)) {
+               r.in.buf_size = bytes_needed;
+               buffer = talloc_array(tctx, uint8_t, bytes_needed);
+               r.out.buffer = buffer;
+
+               status = dcerpc_svcctl_QueryServiceConfig2W(p, tctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "QueryServiceConfig2W failed!");
+               torture_assert_werr_ok(tctx, r.out.result, "QueryServiceConfig2W failed!");
+       }
+
        if (!test_CloseServiceHandle(p, tctx, &s))
                return false;