stp.html   [plain text]


<!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-2005, All Rights Reserved">
<META NAME="docnumber" CONTENT="CUPS-STP-1.1">
<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 BGCOLOR="white">
<CENTER><A HREF="#CONTENTS"><IMG SRC="images/cups-large.gif" BORDER="0" WIDTH="431" HEIGHT="511" ALT="CUPS Software Test Plan"><BR>
<H1>CUPS Software Test Plan</H1></A><BR>
CUPS-STP-1.1<BR>
Easy Software Products<BR>
Copyright 1997-2005, All Rights Reserved<BR>
</CENTER>
<HR NOSHADE>
<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 NOSHADE>
<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 (&quot;CUPS&quot;) Version 1.1.</P>
<H2><A NAME="1_2">1.2 System Overview</A></H2>
<P>CUPS provides a portable printing layer for UNIX&reg;-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 (&quot;IPP&quot;) as the basis for
 managing print jobs and queues. The Line Printer Daemon (&quot;LPD&quot;) Server
 Message Block (&quot;SMB&quot;), and AppSocket (a.k.a. JetDirect) protocols are
 also supported with reduced functionality. CUPS adds network printer
 browsing and PostScript Printer Description (&quot;PPD&quot;) based printing
 options to support real-world printing under UNIX.</P>
<P>CUPS includes an image file RIP that supports printing of image files
 to non-PostScript printers. A customized version of GNU Ghostscript
 7.05 for CUPS called ESP Ghostscript is available separately to support
 printing of PostScript files within the CUPS driver framework. Sample
 drivers for Dymo, EPSON, HP, and OKIDATA printers are included that use
 these filters.</P>
<P>Drivers for thousands of printers are provided with our ESP Print Pro
 software, available at:</P>
<PRE>
    <A HREF="http://www.easysw.com/printpro/">http://www.easysw.com/printpro/</A>
</PRE>
<P>CUPS is licensed under the GNU General Public License and GNU Library
 General Public License. Please contact Easy Software Products for
 commercial support and &quot;binary distribution&quot; rights.</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.1: CUPS Configuration Management Plan</LI>
<LI>CUPS-IDD-1.1: CUPS System Interface Design Description</LI>
<LI>CUPS-IPP-1.1: CUPS Implementation of IPP</LI>
<LI>CUPS-SAM-1.1.x: CUPS Software Administrators Manual</LI>
<LI>CUPS-SDD-1.1: CUPS Software Design Description</LI>
<LI>CUPS-SPM-1.1.x: CUPS Software Programming Manual</LI>
<LI>CUPS-SSR-1.1: CUPS Software Security Report</LI>
<LI>CUPS-STP-1.1: CUPS Software Test Plan</LI>
<LI>CUPS-SUM-1.1.x: CUPS Software Users Manual</LI>
<LI>CUPS-SVD-1.1: 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/1.1: Implementers Guide</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/rfc2396.txt">RFC 2396, Uniform
 Resource Identifiers (URI): Generic Syntax</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>
<LI><A HREF="http://www.ietf.org/rfc/rfc2910.txt">RFC 2910, IPP/1.1:
 Encoding and Transport</A></LI>
<LI><A HREF="http://www.ietf.org/rfc/rfc2911.txt">RFC 2911, IPP/1.1:
 Model and Semantics</A></LI>
<LI><A HREF="http://www.ietf.org/rfc/rfc3380.txt">RFC 3380, IPP: Job and
 Printer Set Operations</A></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 &quot;<CODE>-t</CODE>&quot; 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>