torture: test printing using "XPS_PASS" datatype
authorArvid Requate <requate@univention.de>
Thu, 21 Nov 2013 11:40:15 +0000 (12:40 +0100)
committerAndreas Schneider <asn@cryptomilk.org>
Thu, 21 Nov 2013 14:01:30 +0000 (15:01 +0100)
The "XPS_PASS" datatype is used by Windows 8.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=10267

Reviewed-by: David Disseldorp <ddiss@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org>
Autobuild-Date(master): Thu Nov 21 15:01:30 CET 2013 on sn-devel-104

source4/torture/rpc/spoolss.c

index f2a44c9c46d018d69888c221f6d758599291c0f2..d216e07aeb571976858f3c148123d0c4e641aef5 100644 (file)
@@ -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");
        }