]> git.ipfire.org Git - thirdparty/cups.git/blame - doc/stp.html
Load cups into easysw/current.
[thirdparty/cups.git] / doc / stp.html
CommitLineData
ef416fc2 1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
2<HTML>
3<HEAD>
4<TITLE>CUPS Software Test Plan</TITLE>
5<META NAME="author" CONTENT="Easy Software Products">
6<META NAME="copyright" CONTENT="Copyright 1997-2003, All Rights Reserved">
7<META NAME="docnumber" CONTENT="CUPS-STP-1.2">
8<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-8859-1">
9<STYLE TYPE="text/css"><!--
10BODY { font-family: serif }
11H1 { font-family: sans-serif }
12H2 { font-family: sans-serif }
13H3 { font-family: sans-serif }
14H4 { font-family: sans-serif }
15H5 { font-family: sans-serif }
16H6 { font-family: sans-serif }
17SUB { font-size: smaller }
18SUP { font-size: smaller }
19PRE { font-family: monospace }
20--></STYLE>
21</HEAD>
22<BODY>
23<CENTER><A HREF="#CONTENTS"><IMG SRC="images/cups-large.gif" BORDER="0" WIDTH="431" HEIGHT="511"><BR>
24<H1>CUPS Software Test Plan</H1></A><BR>
25CUPS-STP-1.2<BR>
26Easy Software Products<BR>
27Copyright 1997-2003, All Rights Reserved<BR>
28</CENTER>
29<HR>
30<H1 ALIGN="CENTER"><A NAME="CONTENTS">Table of Contents</A></H1>
31<BR>
32<BR><B><A HREF="#1">1 Scope</A></B>
33<UL>
34<LI><A HREF="#1_1">1.1 Identification</A></LI>
35<LI><A HREF="#1_2">1.2 System Overview</A></LI>
36<LI><A HREF="#1_3">1.3 Document Overview</A></LI>
37</UL>
38<B><A HREF="#2">2 References</A></B>
39<UL>
40<LI><A HREF="#2_1">2.1 CUPS Documentation</A></LI>
41<LI><A HREF="#2_2">2.2 Other Documents</A></LI>
42</UL>
43<B><A HREF="#3">3 Test Procedure</A></B>
44<BR>
45<BR><B><A HREF="#4">4 IPP Compliance Tests</A></B>
46<UL>
47<LI><A HREF="#4_1">4.1 Request Tests</A></LI>
48<LI><A HREF="#4_2">4.2 CUPS Printer Operation Tests</A></LI>
49<LI><A HREF="#4_3">4.3 Job Operation Tests</A></LI>
50</UL>
51<B><A HREF="#5">5 Command Tests</A></B>
52<UL>
53<LI><A HREF="#5_1">5.1 lpadmin</A></LI>
54<LI><A HREF="#5_2">5.2 lpc</A></LI>
55<LI><A HREF="#5_3">5.3 lpq</A></LI>
56<LI><A HREF="#5_4">5.4 lpstat</A></LI>
57<LI><A HREF="#5_5">5.5 lp</A></LI>
58<LI><A HREF="#5_6">5.6 lpr</A></LI>
59<LI><A HREF="#5_7">5.7 lprm</A></LI>
60<LI><A HREF="#5_8">5.8 cancel</A></LI>
61<LI><A HREF="#5_9">5.9 lpinfo</A></LI>
62</UL>
63<B><A HREF="#6">A Glossary</A></B>
64<UL>
65<LI><A HREF="#6_1">A.1 Terms</A></LI>
66<LI><A HREF="#6_2">A.2 Acronyms</A></LI>
67</UL>
68<HR>
69<H1><A NAME="1">1 Scope</A></H1>
70<H2><A NAME="1_1">1.1 Identification</A></H2>
71<P>This software test plan provides detailed tests that are used to
72 evaluate the stability and compliance of the Common UNIX Printing
73 System (&quot;CUPS&quot;) Version 1.2.</P>
74<H2><A NAME="1_2">1.2 System Overview</A></H2>
75<P>CUPS provides a portable printing layer for UNIX&reg;-based operating
76 systems. It has been developed by<A HREF="http://www.easysw.com"> Easy
77 Software Products</A> to promote a standard printing solution for all
78 UNIX vendors and users. CUPS provides the System V and Berkeley
79 command-line interfaces.</P>
80<P>CUPS uses the Internet Printing Protocol (&quot;IPP&quot;) as the basis for
81 managing print jobs and queues. The Line Printer Daemon (&quot;LPD&quot;) Server
82 Message Block (&quot;SMB&quot;), and AppSocket (a.k.a. JetDirect) protocols are
83 also supported with reduced functionality. CUPS adds network printer
84 browsing and PostScript Printer Description (&quot;PPD&quot;) based printing
85 options to support real-world printing under UNIX.</P>
86<P>CUPS also includes a customized version of GNU Ghostscript (currently
87 based off GNU Ghostscript 5.50) and an image file RIP that are used to
88 support non-PostScript printers. Sample drivers for HP and EPSON
89 printers are included that use these filters.</P>
90<H2><A NAME="1_3">1.3 Document Overview</A></H2>
91<P>This software test plan is organized into the following sections:</P>
92<UL>
93<LI>1 - Scope</LI>
94<LI>2 - References</LI>
95<LI>3 - Test Procedure</LI>
96<LI>4 - IPP Compliance Tests</LI>
97<LI>5 - Command Tests</LI>
98<LI>A - Glossary</LI>
99</UL>
100<H1><A NAME="2">2 References</A></H1>
101<H2><A NAME="2_1">2.1 CUPS Documentation</A></H2>
102<P>The following CUPS documentation is referenced by this document:</P>
103<UL>
104<LI>CUPS-CMP-1.2: CUPS Configuration Management Plan</LI>
105<LI>CUPS-IDD-1.2: CUPS System Interface Design Description</LI>
106<LI>CUPS-IPP-1.2: CUPS Implementation of IPP</LI>
107<LI>CUPS-SAM-1.2.x: CUPS Software Administrators Manual</LI>
108<LI>CUPS-SDD-1.2: CUPS Software Design Description</LI>
109<LI>CUPS-SPM-1.2.x: CUPS Software Programming Manual</LI>
110<LI>CUPS-SSR-1.2: CUPS Software Security Report</LI>
111<LI>CUPS-STP-1.2: CUPS Software Test Plan</LI>
112<LI>CUPS-SUM-1.2.x: CUPS Software Users Manual</LI>
113<LI>CUPS-SVD-1.2: CUPS Software Version Description</LI>
114</UL>
115<H2><A NAME="2_2">2.2 Other Documents</A></H2>
116<P>The following non-CUPS documents are referenced by this document:</P>
117<UL>
118<LI><A HREF="http://partners.adobe.com/asn/developer/PDFS/TN/5003.PPD_Spec_v4.3.pdf">
119Adobe PostScript Printer Description File Format Specification, Version
120 4.3.</A></LI>
121<LI><A HREF="http://partners.adobe.com/asn/developer/PDFS/TN/PLRM.pdf">
122Adobe PostScript Language Reference, Third Edition.</A></LI>
123<LI>IPP: Job and Printer Set Operations</LI>
124<LI>IPP/1.1: Encoding and Transport</LI>
125<LI>IPP/1.1: Implementers Guide</LI>
126<LI>IPP/1.1: Model and Semantics</LI>
127<LI><A HREF="http://www.ietf.org/rfc/rfc1179.txt">RFC 1179, Line Printer
128 Daemon Protocol</A></LI>
129<LI><A HREF="http://www.ietf.org/rfc/rfc2567.txt">RFC 2567, Design Goals
130 for an Internet Printing Protocol</A></LI>
131<LI><A HREF="http://www.ietf.org/rfc/rfc2568.txt">RFC 2568, Rationale
132 for the Structure of the Model and Protocol for the Internet Printing
133 Protocol</A></LI>
134<LI><A HREF="http://www.ietf.org/rfc/rfc2569.txt">RFC 2569, Mapping
135 between LPD and IPP Protocols</A></LI>
136<LI><A HREF="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616, Hypertext
137 Transfer Protocol -- HTTP/1.1</A></LI>
138<LI><A HREF="http://www.ietf.org/rfc/rfc2617.txt">RFC 2617, HTTP
139 Authentication: Basic and Digest Access</A> Authentication</LI>
140</UL>
141<H1><A NAME="3">3 Test Procedure</A></H1>
142<P>The test software and data files are located in the<VAR> test</VAR>
143 subdirectory of the source distribution. A script is provided to
144 compile the <CODE>ipptest</CODE> program and run all of the tests that
145 follow, producing a success/fail report.</P>
146<P>The <CODE>test</CODE> target of the top-level makefile can be used to
147 run this script:</P>
148<UL>
149<PRE>
150make test
151</PRE>
152</UL>
153<P>or you can run the test script directly:</P>
154<UL>
155<PRE>
156cd test
157./run-stp-tests
158</PRE>
159</UL>
160<P>A Software Test Report is stored in HTML and PDF files that are
161 generated using the<A HREF="http://www.easysw.com/htmldoc"> HTMLDOC</A>
162 software.</P>
163<H1><A NAME="4">4 IPP Compliance Tests</A></H1>
164<P>This section describes the tests used to validate the IPP standards
165 compliance of the CUPS server.</P>
166<H2><A NAME="4_1">4.1 Request Tests</A></H2>
167<P>These tests verify that the CUPS scheduler only accepts valid IPP
168 requests that start with the <CODE>attributes-charset</CODE> and <CODE>
169attributes-natural-language</CODE> attributes and also contain a <CODE>
170printer-uri</CODE> or <CODE>job-uri</CODE> attribute.</P>
171<P>It also verifies that the CUPS scheduler always responds with <CODE>
172attributes-charset</CODE> and <CODE>attributes-natural-language</CODE>
173 attributes, using default values if they are not provided by the
174 client.</P>
175<H2><A NAME="4_2">4.2 CUPS Printer Operation Tests</A></H2>
176<P>These tests verify that the CUPS printer operations are supported and
177 function properly. Two printers called <CODE>Test1</CODE> and <CODE>
178Test2</CODE> are created, one as a PostScript printer and one as a
179 raster printer.</P>
180<H2><A NAME="4_3">4.3 Job Operation Tests</A></H2>
181<P>These test verify that the CUPS scheduler accepts print jobs for all
182 supported file formats and that the <CODE>cancel-job</CODE>, <CODE>
183hold-job</CODE>, and <CODE>resume-job</CODE> operations work.</P>
184<H1><A NAME="5">5 Command Tests</A></H1>
185<P>This section describes the tests used to validate the Berkeley and
186 System V commands included with CUPS.</P>
187<H2><A NAME="5_1">5.1 lpadmin</A></H2>
188<P>This test verifies that printers can be added, modified, and
189 defaulted using the <CODE>lpadmin</CODE> command.</P>
190<H2><A NAME="5_2">5.2 lpc</A></H2>
191<P>This test verifies that the <CODE>lpc</CODE> command can show the
192 current status of all print queues.</P>
193<H2><A NAME="5_3">5.3 lpq</A></H2>
194<P>This test verifies that the <CODE>lpq</CODE> command lists any jobs
195 in the queue.</P>
196<H2><A NAME="5_4">5.4 lpstat</A></H2>
197<P>This test verifies that the <CODE>lpstat</CODE> command works with
198 all reports using the &quot;<CODE>-t</CODE>&quot; option.</P>
199<H2><A NAME="5_5">5.5 lp</A></H2>
200<P>This test verifies that the <CODE>lp</CODE> command works with both
201 the default destination and a specific destination.</P>
202<H2><A NAME="5_6">5.6 lpr</A></H2>
203<P>This test verifies that the <CODE>lpr</CODE> command works with both
204 the default destination and a specific destination.</P>
205<H2><A NAME="5_7">5.7 lprm</A></H2>
206<P>This test verifies that the <CODE>lprm</CODE> command can properly
207 cancel a job.</P>
208<H2><A NAME="5_8">5.8 cancel</A></H2>
209<P>This test verifies that the <CODE>cancel</CODE> command can properly
210 cancel a job or all jobs.</P>
211<H2><A NAME="5_9">5.9 lpinfo</A></H2>
212<P>This test verifies that the <CODE>lpinfo</CODE> command returns a
213 list of available printer drivers and devices.</P>
214<H1 TYPE="A" VALUE="1"><A NAME="6">A Glossary</A></H1>
215<H2><A NAME="6_1">A.1 Terms</A></H2>
216<DL>
217<DT>C</DT>
218<DD>A computer language.</DD>
219<DT>parallel</DT>
220<DD>Sending or receiving data more than 1 bit at a time.</DD>
221<DT>pipe</DT>
222<DD>A one-way communications channel between two programs.</DD>
223<DT>serial</DT>
224<DD>Sending or receiving data 1 bit at a time.</DD>
225<DT>socket</DT>
226<DD>A two-way network communications channel.</DD>
227</DL>
228<H2><A NAME="6_2">A.2 Acronyms</A></H2>
229<DL>
230<DT>ASCII</DT>
231<DD>American Standard Code for Information Interchange</DD>
232<DT>CUPS</DT>
233<DD>Common UNIX Printing System</DD>
234<DT>ESC/P</DT>
235<DD>EPSON Standard Code for Printers</DD>
236<DT>FTP</DT>
237<DD>File Transfer Protocol</DD>
238<DT>HP-GL</DT>
239<DD>Hewlett-Packard Graphics Language</DD>
240<DT>HP-PCL</DT>
241<DD>Hewlett-Packard Page Control Language</DD>
242<DT>HP-PJL</DT>
243<DD>Hewlett-Packard Printer Job Language</DD>
244<DT>IETF</DT>
245<DD>Internet Engineering Task Force</DD>
246<DT>IPP</DT>
247<DD>Internet Printing Protocol</DD>
248<DT>ISO</DT>
249<DD>International Standards Organization</DD>
250<DT>LPD</DT>
251<DD>Line Printer Daemon</DD>
252<DT>MIME</DT>
253<DD>Multimedia Internet Mail Exchange</DD>
254<DT>PPD</DT>
255<DD>PostScript Printer Description</DD>
256<DT>SMB</DT>
257<DD>Server Message Block</DD>
258<DT>TFTP</DT>
259<DD>Trivial File Transfer Protocol</DD>
260</DL>
261</BODY>
262</HTML>