diff options
Diffstat (limited to 'source4/torture/rpc')
-rw-r--r-- | source4/torture/rpc/spoolss.c | 50 | ||||
-rw-r--r-- | source4/torture/rpc/spoolss_notify.c | 36 |
2 files changed, 46 insertions, 40 deletions
diff --git a/source4/torture/rpc/spoolss.c b/source4/torture/rpc/spoolss.c index f2a503b6fd..b1889704a7 100644 --- a/source4/torture/rpc/spoolss.c +++ b/source4/torture/rpc/spoolss.c @@ -1122,6 +1122,7 @@ static bool test_AddJob(struct torture_context *tctx, r.in.handle = handle; r.in.offered = 0; r.out.needed = &needed; + r.in.buffer = r.out.buffer = NULL; torture_comment(tctx, "Testing AddJob\n"); @@ -1381,6 +1382,7 @@ static bool test_GetPrinterDataEx(struct torture_context *tctx, r.in.offered = 0; r.out.type = &type; r.out.needed = &needed; + r.out.buffer = NULL; torture_comment(tctx, "Testing GetPrinterDataEx\n"); @@ -1658,8 +1660,10 @@ static bool test_OpenPrinter(struct torture_context *tctx, ret = false; } - if (!test_SecondaryClosePrinter(tctx, p, &handle)) { - ret = false; + if (!torture_setting_bool(tctx, "samba3", false)) { + if (!test_SecondaryClosePrinter(tctx, p, &handle)) { + ret = false; + } } if (!test_ClosePrinter(tctx, p, &handle)) { @@ -1758,8 +1762,10 @@ static bool test_OpenPrinterEx(struct torture_context *tctx, ret = false; } - if (!test_SecondaryClosePrinter(tctx, p, &handle)) { - ret = false; + if (!torture_setting_bool(tctx, "samba3", false)) { + if (!test_SecondaryClosePrinter(tctx, p, &handle)) { + ret = false; + } } if (!test_ClosePrinter(tctx, p, &handle)) { @@ -1941,41 +1947,6 @@ static bool test_EnumPrinterDrivers_old(struct torture_context *tctx, return true; } -/** Test that makes sure that calling ReplyOpenPrinter() - * on Samba 4 will cause an irpc broadcast call. - */ -static bool test_ReplyOpenPrinter(struct torture_context *tctx, - struct dcerpc_pipe *pipe) -{ - struct spoolss_ReplyOpenPrinter r; - struct spoolss_ReplyClosePrinter s; - struct policy_handle h; - - r.in.server_name = "earth"; - r.in.printer_local = 2; - r.in.type = REG_DWORD; - r.in.bufsize = 0; - r.in.buffer = NULL; - r.out.handle = &h; - - torture_assert_ntstatus_ok(tctx, - dcerpc_spoolss_ReplyOpenPrinter(pipe, tctx, &r), - "spoolss_ReplyOpenPrinter call failed"); - - torture_assert_werr_ok(tctx, r.out.result, "error return code"); - - s.in.handle = &h; - s.out.handle = &h; - - torture_assert_ntstatus_ok(tctx, - dcerpc_spoolss_ReplyClosePrinter(pipe, tctx, &s), - "spoolss_ReplyClosePrinter call failed"); - - torture_assert_werr_ok(tctx, r.out.result, "error return code"); - - return true; -} - bool torture_rpc_spoolss(struct torture_context *torture) { NTSTATUS status; @@ -2029,7 +2000,6 @@ bool torture_rpc_spoolss(struct torture_context *torture) ret &= test_EnumPorts_old(torture, p); ret &= test_EnumPrinters_old(torture, p); ret &= test_EnumPrinterDrivers_old(torture, p); - ret &= test_ReplyOpenPrinter(torture, p); return ret; } diff --git a/source4/torture/rpc/spoolss_notify.c b/source4/torture/rpc/spoolss_notify.c index b7f2d3c410..a8a0ca5df6 100644 --- a/source4/torture/rpc/spoolss_notify.c +++ b/source4/torture/rpc/spoolss_notify.c @@ -289,6 +289,41 @@ static bool test_RFFPCNEx(struct torture_context *tctx, return true; } +/** Test that makes sure that calling ReplyOpenPrinter() + * on Samba 4 will cause an irpc broadcast call. + */ +static bool test_ReplyOpenPrinter(struct torture_context *tctx, + struct dcerpc_pipe *pipe) +{ + struct spoolss_ReplyOpenPrinter r; + struct spoolss_ReplyClosePrinter s; + struct policy_handle h; + + r.in.server_name = "earth"; + r.in.printer_local = 2; + r.in.type = REG_DWORD; + r.in.bufsize = 0; + r.in.buffer = NULL; + r.out.handle = &h; + + torture_assert_ntstatus_ok(tctx, + dcerpc_spoolss_ReplyOpenPrinter(pipe, tctx, &r), + "spoolss_ReplyOpenPrinter call failed"); + + torture_assert_werr_ok(tctx, r.out.result, "error return code"); + + s.in.handle = &h; + s.out.handle = &h; + + torture_assert_ntstatus_ok(tctx, + dcerpc_spoolss_ReplyClosePrinter(pipe, tctx, &s), + "spoolss_ReplyClosePrinter call failed"); + + torture_assert_werr_ok(tctx, r.out.result, "error return code"); + + return true; +} + struct torture_suite *torture_rpc_spoolss_notify(TALLOC_CTX *mem_ctx) { struct torture_suite *suite = torture_suite_create(mem_ctx, "SPOOLSS-NOTIFY"); @@ -297,6 +332,7 @@ struct torture_suite *torture_rpc_spoolss_notify(TALLOC_CTX *mem_ctx) "notify", &ndr_table_spoolss); torture_rpc_tcase_add_test(tcase, "testRFFPCNEx", test_RFFPCNEx); + torture_rpc_tcase_add_test(tcase, "testReplyOpenPrinter", test_ReplyOpenPrinter); return suite; } |