From addabf151377c8c0ab75fb591bc85d8ea5c8acfa Mon Sep 17 00:00:00 2001 From: Arvid Requate Date: Thu, 21 Nov 2013 12:40:15 +0100 Subject: torture: test printing using "XPS_PASS" datatype The "XPS_PASS" datatype is used by Windows 8. BUG: https://bugzilla.samba.org/show_bug.cgi?id=10267 Reviewed-by: David Disseldorp Reviewed-by: Andreas Schneider Autobuild-User(master): Andreas Schneider Autobuild-Date(master): Thu Nov 21 15:01:30 CET 2013 on sn-devel-104 --- source4/torture/rpc/spoolss.c | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/source4/torture/rpc/spoolss.c b/source4/torture/rpc/spoolss.c index f2a44c9c46..d216e07aeb 100644 --- a/source4/torture/rpc/spoolss.c +++ b/source4/torture/rpc/spoolss.c @@ -3368,11 +3368,11 @@ static bool test_JobPropertyDelete(struct torture_context *tctx, return true; } - -static bool test_DoPrintTest_add_one_job(struct torture_context *tctx, +static bool test_DoPrintTest_add_one_job_common(struct torture_context *tctx, struct dcerpc_binding_handle *b, struct policy_handle *handle, const char *document_name, + const char *datatype, uint32_t *job_id) { NTSTATUS status; @@ -3394,7 +3394,7 @@ static bool test_DoPrintTest_add_one_job(struct torture_context *tctx, info1.document_name = document_name; info1.output_file = NULL; - info1.datatype = "RAW"; + info1.datatype = datatype; info_ctr.level = 1; info_ctr.info.info1 = &info1; @@ -3443,6 +3443,25 @@ static bool test_DoPrintTest_add_one_job(struct torture_context *tctx, return true; } +static bool test_DoPrintTest_add_one_job(struct torture_context *tctx, + struct dcerpc_binding_handle *b, + struct policy_handle *handle, + const char *document_name, + uint32_t *job_id) +{ + test_DoPrintTest_add_one_job_common(tctx, b, handle, document_name, "RAW", job_id); +} + +static bool test_DoPrintTest_add_one_job_v4(struct torture_context *tctx, + struct dcerpc_binding_handle *b, + struct policy_handle *handle, + const char *document_name, + uint32_t *job_id) +{ + test_DoPrintTest_add_one_job_common(tctx, b, handle, document_name, "XPS_PASS", job_id); +} + + static bool test_DoPrintTest_check_jobs(struct torture_context *tctx, struct dcerpc_binding_handle *b, struct policy_handle *handle, @@ -3545,6 +3564,14 @@ static bool test_DoPrintTest(struct torture_context *tctx, ret &= test_SetJob(tctx, b, handle, job_ids[i], NULL, SPOOLSS_JOB_CONTROL_DELETE); } + for (i=0; i < num_jobs; i++) { + ret &= test_DoPrintTest_add_one_job_v4(tctx, b, handle, "TorturePrintJob v4", &job_ids[i]); + } + + for (i=0; i < num_jobs; i++) { + ret &= test_SetJob(tctx, b, handle, job_ids[i], NULL, SPOOLSS_JOB_CONTROL_DELETE); + } + if (ret == true) { torture_comment(tctx, "real print operations test succeeded\n\n"); } -- cgit