<!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.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"><BR> <H1>CUPS Software Test Plan</H1></A><BR> CUPS-STP-1.1<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.1.</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.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 "<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>