1 /******************************************************************
\r
2 * SPOOLSS regression testing code for Samba print servers
\r
4 *****************************************************************/
\r
11 #include "printlib.h"
\r
14 int main (int argc, char* argv[])
\r
22 PRINTER_DEFAULTS print_defaults;
\r
26 fprintf (stderr, "useage: %s <printername> <filename>\n", argv[0]);
\r
30 printf ("This test program exercises the following win32 functions:\n");
\r
31 printf ("\tResetPrinter()\n");
\r
32 printf ("\tStartDocPrinter()\n");
\r
33 printf ("\tEndDocPrinter()\n");
\r
34 printf ("\tStartPagePrinter()\n");
\r
35 printf ("\tEndPagePrinter()\n");
\r
36 printf ("\tWritePrinter()\n");
\r
39 printf ("This test program exercises both the StartPagePrinter()\n");
\r
40 printf ("and EndPagePrinter() Win32 functions.\n\n");
\r
42 if (!OpenPrinter (argv[1], &printer, NULL))
\r
44 fprintf (stderr, "Unable to open %s!\n", argv[1]);
\r
49 printf ("Printer [%s] opened successfully.\n\n", argv[1]);
\r
52 /* set the printer defaults */
\r
53 print_defaults.pDatatype = strdup ("RAW");
\r
54 print_defaults.DesiredAccess = NULL;
\r
55 print_defaults.pDevMode = NULL;
\r
56 if (ResetPrinter(printer, &print_defaults))
\r
57 printf ("ResetPrinter call succeeded\n");
\r
62 /* StartDocPrinter */
\r
63 buffer1.pDocName = strdup("Testing Printer");
\r
64 buffer1.pDatatype = strdup("RAW");
\r
65 buffer1.pOutputFile = NULL;
\r
67 printf ("Attempting to call StartDocPrinter() using DOC_INFO_1 :\n");
\r
68 print_doc_info_1 (&buffer1);
\r
71 if (StartDocPrinter (printer, 1, (LPBYTE)&buffer1))
\r
72 printf ("StartDocPrinter called successfully\n");
\r
78 if (StartPagePrinter(printer))
\r
80 printf ("StartPagePrinter returned success.\n");
\r
82 if ((fd=_open(argv[2], _O_RDONLY)) == -1)
\r
84 fprintf (stderr, "ERROR: Unable to open [%s] for read access!\n", argv[2]);
\r
85 ClosePrinter (printer);
\r
89 while ((bytes=_read(fd, buffer, 256)) != 0)
\r
91 if (!WritePrinter(printer, (LPVOID)buffer, bytes, &wrote))
\r
93 fprintf (stderr, "ERROR: WritePrinter failed for [%d] bytes!\n", bytes);
\r
97 printf ("Successfully wrote [%d] bytes to the printer\n", bytes);
\r
101 if (EndPagePrinter (printer))
\r
102 printf ("EndPagePrinter returned success.\n");
\r
110 printf ("Attempting to call EndDocPrinter\n");
\r
111 if (EndDocPrinter (printer))
\r
112 printf ("EndDocPrinter called successfully\n");
\r
119 if (!ClosePrinter(printer))
\r
121 fprintf (stderr, "Error closing printer!\n");
\r
126 printf ("Printer [%s] closed successfully.\n", argv[1]);
\r