s4-smbtorture: add RAP-PRINTING suite.
authorGünther Deschner <gd@samba.org>
Fri, 23 Apr 2010 22:45:40 +0000 (00:45 +0200)
committerGünther Deschner <gd@samba.org>
Wed, 28 Apr 2010 21:23:37 +0000 (23:23 +0200)
Guenther

source4/torture/config.mk
source4/torture/rap/printing.c [new file with mode: 0644]
source4/torture/rap/rap.c
source4/torture/wscript_build

index 3315865cec338415eba3bfcbb1877dbc874cfda9..53ba269c9ad5813fe432abcc78d5f8179c35ea98 100644 (file)
@@ -140,7 +140,7 @@ PRIVATE_DEPENDENCIES = TORTURE_UTIL LIBCLI_SMB
 # End SUBSYSTEM TORTURE_RAP
 #################################
 
-TORTURE_RAP_OBJ_FILES = $(torturesrcdir)/rap/rap.o $(torturesrcdir)/rap/rpc.o
+TORTURE_RAP_OBJ_FILES = $(torturesrcdir)/rap/rap.o $(torturesrcdir)/rap/rpc.o $(torturesrcdir)/rap/printing.o
 
 $(eval $(call proto_header_template,$(torturesrcdir)/rap/proto.h,$(TORTURE_RAP_OBJ_FILES:.o=.c)))
 
diff --git a/source4/torture/rap/printing.c b/source4/torture/rap/printing.c
new file mode 100644 (file)
index 0000000..ab32dbb
--- /dev/null
@@ -0,0 +1,88 @@
+/*
+   Unix SMB/CIFS implementation.
+   test suite for SMB printing operations
+
+   Copyright (C) Guenther Deschner 2010
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "includes.h"
+#include "libcli/raw/libcliraw.h"
+#include "libcli/libcli.h"
+#include "torture/torture.h"
+#include "torture/util.h"
+#include "system/filesys.h"
+
+#include "torture/smbtorture.h"
+#include "torture/util.h"
+#include "../librpc/gen_ndr/rap.h"
+#include "torture/rap/proto.h"
+#include "param/param.h"
+
+
+#define TORTURE_PRINT_FILE "torture_print_file"
+
+static bool test_raw_print(struct torture_context *tctx,
+                          struct smbcli_state *cli)
+{
+       int fnum;
+       DATA_BLOB data;
+       ssize_t size_written;
+       const char *str;
+
+       fnum = smbcli_open(cli->tree, TORTURE_PRINT_FILE, O_RDWR|O_CREAT|O_TRUNC, DENY_NONE);
+       if (fnum == -1) {
+               torture_fail(tctx, "failed to open file");
+       }
+
+       str = talloc_asprintf(tctx, "TortureTestPage: %d\nData\n",0);
+
+       data = data_blob_string_const(str);
+
+       size_written = smbcli_write(cli->tree, fnum, 0, data.data, 0, data.length);
+       if (size_written != data.length) {
+               torture_fail(tctx, "failed to write file");
+       }
+
+       torture_assert_ntstatus_ok(tctx,
+               smbcli_close(cli->tree, fnum),
+               "failed to close file");
+
+       return true;
+}
+
+static bool test_rap_print(struct torture_context *tctx,
+                          struct smbcli_state *cli)
+{
+       /*
+       pause printer
+       print printfile
+       enumjobs printer
+       delete job
+       start printer
+       */
+
+       return true;
+}
+
+struct torture_suite *torture_rap_printing(TALLOC_CTX *mem_ctx)
+{
+       struct torture_suite *suite = torture_suite_create(mem_ctx, "PRINTING");
+
+       torture_suite_add_1smb_test(suite, "raw_print", test_raw_print);
+       torture_suite_add_1smb_test(suite, "rap_print", test_rap_print);
+
+       return suite;
+}
index 6e88b3017a6664bd1e4a616bac72b5a34e49df93..3add8d4db76921eeed5531650323d504577b62f2 100644 (file)
@@ -661,6 +661,7 @@ NTSTATUS torture_rap_init(void)
 
        torture_suite_add_suite(suite, suite_basic);
        torture_suite_add_suite(suite, torture_rap_rpc(suite));
+       torture_suite_add_suite(suite, torture_rap_printing(suite));
 
        torture_suite_add_1smb_test(suite_basic, "netserverenum", 
                                    test_netserverenum);
index 3fa66b6d700ae7f7a58e9b0f19e5890a4cd39c48..fa69b1da04b281f6c00330206cfb6be5630d28ae 100644 (file)
@@ -51,7 +51,7 @@ bld.SAMBA_MODULE('torture_rpc',
 bld.RECURSE('drs')
 
 bld.SAMBA_MODULE('TORTURE_RAP',
-       source='rap/rap.c rap/rpc.c',
+       source='rap/rap.c rap/rpc.c rap/printing.c',
        autoproto='rap/proto.h',
        subsystem='smbtorture',
        init_function='torture_rap_init',