| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> |
| <HTML> |
| <HEAD> |
| <TITLE>CUPS Software Test Plan</TITLE> |
| <META NAME="author" CONTENT="Easy Software Products"> |
| <META NAME="copyright" CONTENT="Copyright 1997-2003, All Rights Reserved"> |
| <META NAME="docnumber" CONTENT="CUPS-STP-1.2"> |
| <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-8859-1"> |
| <STYLE TYPE="text/css"><!-- |
| BODY { font-family: serif } |
| H1 { font-family: sans-serif } |
| H2 { font-family: sans-serif } |
| H3 { font-family: sans-serif } |
| H4 { font-family: sans-serif } |
| H5 { font-family: sans-serif } |
| H6 { font-family: sans-serif } |
| SUB { font-size: smaller } |
| SUP { font-size: smaller } |
| PRE { font-family: monospace } |
| --></STYLE> |
| </HEAD> |
| <BODY> |
| <CENTER><A HREF="#CONTENTS"><IMG SRC="images/cups-large.gif" BORDER="0" WIDTH="431" HEIGHT="511"><BR> |
| <H1>CUPS Software Test Plan</H1></A><BR> |
| CUPS-STP-1.2<BR> |
| Easy Software Products<BR> |
| Copyright 1997-2003, All Rights Reserved<BR> |
| </CENTER> |
| <HR> |
| <H1 ALIGN="CENTER"><A NAME="CONTENTS">Table of Contents</A></H1> |
| <BR> |
| <BR><B><A HREF="#1">1 Scope</A></B> |
| <UL> |
| <LI><A HREF="#1_1">1.1 Identification</A></LI> |
| <LI><A HREF="#1_2">1.2 System Overview</A></LI> |
| <LI><A HREF="#1_3">1.3 Document Overview</A></LI> |
| </UL> |
| <B><A HREF="#2">2 References</A></B> |
| <UL> |
| <LI><A HREF="#2_1">2.1 CUPS Documentation</A></LI> |
| <LI><A HREF="#2_2">2.2 Other Documents</A></LI> |
| </UL> |
| <B><A HREF="#3">3 Test Procedure</A></B> |
| <BR> |
| <BR><B><A HREF="#4">4 IPP Compliance Tests</A></B> |
| <UL> |
| <LI><A HREF="#4_1">4.1 Request Tests</A></LI> |
| <LI><A HREF="#4_2">4.2 CUPS Printer Operation Tests</A></LI> |
| <LI><A HREF="#4_3">4.3 Job Operation Tests</A></LI> |
| </UL> |
| <B><A HREF="#5">5 Command Tests</A></B> |
| <UL> |
| <LI><A HREF="#5_1">5.1 lpadmin</A></LI> |
| <LI><A HREF="#5_2">5.2 lpc</A></LI> |
| <LI><A HREF="#5_3">5.3 lpq</A></LI> |
| <LI><A HREF="#5_4">5.4 lpstat</A></LI> |
| <LI><A HREF="#5_5">5.5 lp</A></LI> |
| <LI><A HREF="#5_6">5.6 lpr</A></LI> |
| <LI><A HREF="#5_7">5.7 lprm</A></LI> |
| <LI><A HREF="#5_8">5.8 cancel</A></LI> |
| <LI><A HREF="#5_9">5.9 lpinfo</A></LI> |
| </UL> |
| <B><A HREF="#6">A Glossary</A></B> |
| <UL> |
| <LI><A HREF="#6_1">A.1 Terms</A></LI> |
| <LI><A HREF="#6_2">A.2 Acronyms</A></LI> |
| </UL> |
| <HR> |
| <H1><A NAME="1">1 Scope</A></H1> |
| <H2><A NAME="1_1">1.1 Identification</A></H2> |
| <P>This software test plan provides detailed tests that are used to |
| evaluate the stability and compliance of the Common UNIX Printing |
| System ("CUPS") Version 1.2.</P> |
| <H2><A NAME="1_2">1.2 System Overview</A></H2> |
| <P>CUPS provides a portable printing layer for UNIX®-based operating |
| systems. It has been developed by<A HREF="http://www.easysw.com"> Easy |
| Software Products</A> to promote a standard printing solution for all |
| UNIX vendors and users. CUPS provides the System V and Berkeley |
| command-line interfaces.</P> |
| <P>CUPS uses the Internet Printing Protocol ("IPP") as the basis for |
| managing print jobs and queues. The Line Printer Daemon ("LPD") Server |
| Message Block ("SMB"), and AppSocket (a.k.a. JetDirect) protocols are |
| also supported with reduced functionality. CUPS adds network printer |
| browsing and PostScript Printer Description ("PPD") based printing |
| options to support real-world printing under UNIX.</P> |
| <P>CUPS also includes a customized version of GNU Ghostscript (currently |
| based off GNU Ghostscript 5.50) and an image file RIP that are used to |
| support non-PostScript printers. Sample drivers for HP and EPSON |
| printers are included that use these filters.</P> |
| <H2><A NAME="1_3">1.3 Document Overview</A></H2> |
| <P>This software test plan is organized into the following sections:</P> |
| <UL> |
| <LI>1 - Scope</LI> |
| <LI>2 - References</LI> |
| <LI>3 - Test Procedure</LI> |
| <LI>4 - IPP Compliance Tests</LI> |
| <LI>5 - Command Tests</LI> |
| <LI>A - Glossary</LI> |
| </UL> |
| <H1><A NAME="2">2 References</A></H1> |
| <H2><A NAME="2_1">2.1 CUPS Documentation</A></H2> |
| <P>The following CUPS documentation is referenced by this document:</P> |
| <UL> |
| <LI>CUPS-CMP-1.2: CUPS Configuration Management Plan</LI> |
| <LI>CUPS-IDD-1.2: CUPS System Interface Design Description</LI> |
| <LI>CUPS-IPP-1.2: CUPS Implementation of IPP</LI> |
| <LI>CUPS-SAM-1.2.x: CUPS Software Administrators Manual</LI> |
| <LI>CUPS-SDD-1.2: CUPS Software Design Description</LI> |
| <LI>CUPS-SPM-1.2.x: CUPS Software Programming Manual</LI> |
| <LI>CUPS-SSR-1.2: CUPS Software Security Report</LI> |
| <LI>CUPS-STP-1.2: CUPS Software Test Plan</LI> |
| <LI>CUPS-SUM-1.2.x: CUPS Software Users Manual</LI> |
| <LI>CUPS-SVD-1.2: CUPS Software Version Description</LI> |
| </UL> |
| <H2><A NAME="2_2">2.2 Other Documents</A></H2> |
| <P>The following non-CUPS documents are referenced by this document:</P> |
| <UL> |
| <LI><A HREF="http://partners.adobe.com/asn/developer/PDFS/TN/5003.PPD_Spec_v4.3.pdf"> |
| Adobe PostScript Printer Description File Format Specification, Version |
| 4.3.</A></LI> |
| <LI><A HREF="http://partners.adobe.com/asn/developer/PDFS/TN/PLRM.pdf"> |
| Adobe PostScript Language Reference, Third Edition.</A></LI> |
| <LI>IPP: Job and Printer Set Operations</LI> |
| <LI>IPP/1.1: Encoding and Transport</LI> |
| <LI>IPP/1.1: Implementers Guide</LI> |
| <LI>IPP/1.1: Model and Semantics</LI> |
| <LI><A HREF="http://www.ietf.org/rfc/rfc1179.txt">RFC 1179, Line Printer |
| Daemon Protocol</A></LI> |
| <LI><A HREF="http://www.ietf.org/rfc/rfc2567.txt">RFC 2567, Design Goals |
| for an Internet Printing Protocol</A></LI> |
| <LI><A HREF="http://www.ietf.org/rfc/rfc2568.txt">RFC 2568, Rationale |
| for the Structure of the Model and Protocol for the Internet Printing |
| Protocol</A></LI> |
| <LI><A HREF="http://www.ietf.org/rfc/rfc2569.txt">RFC 2569, Mapping |
| between LPD and IPP Protocols</A></LI> |
| <LI><A HREF="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616, Hypertext |
| Transfer Protocol -- HTTP/1.1</A></LI> |
| <LI><A HREF="http://www.ietf.org/rfc/rfc2617.txt">RFC 2617, HTTP |
| Authentication: Basic and Digest Access</A> Authentication</LI> |
| </UL> |
| <H1><A NAME="3">3 Test Procedure</A></H1> |
| <P>The test software and data files are located in the<VAR> test</VAR> |
| subdirectory of the source distribution. A script is provided to |
| compile the <CODE>ipptest</CODE> program and run all of the tests that |
| follow, producing a success/fail report.</P> |
| <P>The <CODE>test</CODE> target of the top-level makefile can be used to |
| run this script:</P> |
| <UL> |
| <PRE> |
| make test |
| </PRE> |
| </UL> |
| <P>or you can run the test script directly:</P> |
| <UL> |
| <PRE> |
| cd test |
| ./run-stp-tests |
| </PRE> |
| </UL> |
| <P>A Software Test Report is stored in HTML and PDF files that are |
| generated using the<A HREF="http://www.easysw.com/htmldoc"> HTMLDOC</A> |
| software.</P> |
| <H1><A NAME="4">4 IPP Compliance Tests</A></H1> |
| <P>This section describes the tests used to validate the IPP standards |
| compliance of the CUPS server.</P> |
| <H2><A NAME="4_1">4.1 Request Tests</A></H2> |
| <P>These tests verify that the CUPS scheduler only accepts valid IPP |
| requests that start with the <CODE>attributes-charset</CODE> and <CODE> |
| attributes-natural-language</CODE> attributes and also contain a <CODE> |
| printer-uri</CODE> or <CODE>job-uri</CODE> attribute.</P> |
| <P>It also verifies that the CUPS scheduler always responds with <CODE> |
| attributes-charset</CODE> and <CODE>attributes-natural-language</CODE> |
| attributes, using default values if they are not provided by the |
| client.</P> |
| <H2><A NAME="4_2">4.2 CUPS Printer Operation Tests</A></H2> |
| <P>These tests verify that the CUPS printer operations are supported and |
| function properly. Two printers called <CODE>Test1</CODE> and <CODE> |
| Test2</CODE> are created, one as a PostScript printer and one as a |
| raster printer.</P> |
| <H2><A NAME="4_3">4.3 Job Operation Tests</A></H2> |
| <P>These test verify that the CUPS scheduler accepts print jobs for all |
| supported file formats and that the <CODE>cancel-job</CODE>, <CODE> |
| hold-job</CODE>, and <CODE>resume-job</CODE> operations work.</P> |
| <H1><A NAME="5">5 Command Tests</A></H1> |
| <P>This section describes the tests used to validate the Berkeley and |
| System V commands included with CUPS.</P> |
| <H2><A NAME="5_1">5.1 lpadmin</A></H2> |
| <P>This test verifies that printers can be added, modified, and |
| defaulted using the <CODE>lpadmin</CODE> command.</P> |
| <H2><A NAME="5_2">5.2 lpc</A></H2> |
| <P>This test verifies that the <CODE>lpc</CODE> command can show the |
| current status of all print queues.</P> |
| <H2><A NAME="5_3">5.3 lpq</A></H2> |
| <P>This test verifies that the <CODE>lpq</CODE> command lists any jobs |
| in the queue.</P> |
| <H2><A NAME="5_4">5.4 lpstat</A></H2> |
| <P>This test verifies that the <CODE>lpstat</CODE> command works with |
| all reports using the "<CODE>-t</CODE>" option.</P> |
| <H2><A NAME="5_5">5.5 lp</A></H2> |
| <P>This test verifies that the <CODE>lp</CODE> command works with both |
| the default destination and a specific destination.</P> |
| <H2><A NAME="5_6">5.6 lpr</A></H2> |
| <P>This test verifies that the <CODE>lpr</CODE> command works with both |
| the default destination and a specific destination.</P> |
| <H2><A NAME="5_7">5.7 lprm</A></H2> |
| <P>This test verifies that the <CODE>lprm</CODE> command can properly |
| cancel a job.</P> |
| <H2><A NAME="5_8">5.8 cancel</A></H2> |
| <P>This test verifies that the <CODE>cancel</CODE> command can properly |
| cancel a job or all jobs.</P> |
| <H2><A NAME="5_9">5.9 lpinfo</A></H2> |
| <P>This test verifies that the <CODE>lpinfo</CODE> command returns a |
| list of available printer drivers and devices.</P> |
| <H1 TYPE="A" VALUE="1"><A NAME="6">A Glossary</A></H1> |
| <H2><A NAME="6_1">A.1 Terms</A></H2> |
| <DL> |
| <DT>C</DT> |
| <DD>A computer language.</DD> |
| <DT>parallel</DT> |
| <DD>Sending or receiving data more than 1 bit at a time.</DD> |
| <DT>pipe</DT> |
| <DD>A one-way communications channel between two programs.</DD> |
| <DT>serial</DT> |
| <DD>Sending or receiving data 1 bit at a time.</DD> |
| <DT>socket</DT> |
| <DD>A two-way network communications channel.</DD> |
| </DL> |
| <H2><A NAME="6_2">A.2 Acronyms</A></H2> |
| <DL> |
| <DT>ASCII</DT> |
| <DD>American Standard Code for Information Interchange</DD> |
| <DT>CUPS</DT> |
| <DD>Common UNIX Printing System</DD> |
| <DT>ESC/P</DT> |
| <DD>EPSON Standard Code for Printers</DD> |
| <DT>FTP</DT> |
| <DD>File Transfer Protocol</DD> |
| <DT>HP-GL</DT> |
| <DD>Hewlett-Packard Graphics Language</DD> |
| <DT>HP-PCL</DT> |
| <DD>Hewlett-Packard Page Control Language</DD> |
| <DT>HP-PJL</DT> |
| <DD>Hewlett-Packard Printer Job Language</DD> |
| <DT>IETF</DT> |
| <DD>Internet Engineering Task Force</DD> |
| <DT>IPP</DT> |
| <DD>Internet Printing Protocol</DD> |
| <DT>ISO</DT> |
| <DD>International Standards Organization</DD> |
| <DT>LPD</DT> |
| <DD>Line Printer Daemon</DD> |
| <DT>MIME</DT> |
| <DD>Multimedia Internet Mail Exchange</DD> |
| <DT>PPD</DT> |
| <DD>PostScript Printer Description</DD> |
| <DT>SMB</DT> |
| <DD>Server Message Block</DD> |
| <DT>TFTP</DT> |
| <DD>Trivial File Transfer Protocol</DD> |
| </DL> |
| </BODY> |
| </HTML> |