s4-smbtorture: add test for rap_NetPrintQEnum.
authorGünther Deschner <gd@samba.org>
Wed, 28 Apr 2010 16:29:18 +0000 (18:29 +0200)
committerGünther Deschner <gd@samba.org>
Wed, 28 Apr 2010 21:23:38 +0000 (23:23 +0200)
Guenther

source4/torture/rap/printing.c

index ab32dbb1d74cba464770313cc2e0fac9391627c7..b57151aee199edde173112fd362265b88a1b22c5 100644 (file)
@@ -63,6 +63,41 @@ static bool test_raw_print(struct torture_context *tctx,
        return true;
 }
 
+static bool test_netprintqenum(struct torture_context *tctx,
+                              struct smbcli_state *cli)
+{
+       struct rap_NetPrintQEnum r;
+       int i, q;
+       uint16_t levels[] = { 0, 1 };
+       NTSTATUS status;
+
+       for (i=0; i < ARRAY_SIZE(levels); i++) {
+
+               r.in.level = levels[i];
+               r.in.bufsize = 8192;
+
+               torture_comment(tctx,
+                       "Testing rap_NetPrintQEnum level %d\n", r.in.level);
+
+               status = smbcli_rap_netprintqenum(cli->tree, lp_iconv_convenience(tctx->lp_ctx), tctx, &r);
+               if (!NT_STATUS_IS_OK(status)) {
+                       torture_warning(tctx, "smbcli_rap_netprintqenum failed with %s\n", nt_errstr(status));
+                       continue;
+               }
+
+               for (q=0; q<r.out.count; q++) {
+                       switch (r.in.level) {
+                       case 0:
+                               printf("%s\n", r.out.info[q].info0.PrintQName);
+                               break;
+                       }
+               }
+       }
+
+       return true;
+}
+
+
 static bool test_rap_print(struct torture_context *tctx,
                           struct smbcli_state *cli)
 {
@@ -83,6 +118,7 @@ struct torture_suite *torture_rap_printing(TALLOC_CTX *mem_ctx)
 
        torture_suite_add_1smb_test(suite, "raw_print", test_raw_print);
        torture_suite_add_1smb_test(suite, "rap_print", test_rap_print);
+       torture_suite_add_1smb_test(suite, "rap_printq_enum", test_netprintqenum);
 
        return suite;
 }