#CONTENTSCUPS Software Test PlanCUPS Software Test Plan
CUPS-STP-1.1
Easy Software Products
Copyright 1997-2005, All Rights Reserved
Table of Contents 
#11 Scope #1_11.1 Identification #1_21.2 System Overview #1_31.3 Document Overview #22 References #2_12.1 CUPS Documentation #2_22.2 Other Documents #33 Test Procedure #44 IPP Compliance Tests #4_14.1 Request Tests #4_24.2 CUPS Printer Operation Tests #4_34.3 Job Operation Tests #55 Command Tests #5_15.1 lpadmin #5_25.2 lpc #5_35.3 lpq #5_45.4 lpstat #5_55.5 lp #5_65.6 lpr #5_75.7 lprm #5_85.8 cancel #5_95.9 lpinfo #6A Glossary #6_1A.1 Terms #6_2A.2 Acronyms 1 Scope 
1.1 Identification 
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.
1.2 System Overview 
CUPS provides a portable printing layer for UNIX®-based operating
 systems. It has been developed by 
http://www.easysw.comEasy
 Software Products
 to promote a standard printing solution for all
 UNIX vendors and users. CUPS provides the System V and Berkeley
 command-line interfaces.
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.
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.
Drivers for thousands of printers are provided with our ESP Print Pro
 software, available at:
    
http://www.easysw.com/printpro/http://www.easysw.com/printpro/ CUPS is licensed under the GNU General Public License and GNU Library
 General Public License. Please contact Easy Software Products for
 commercial support and "binary distribution" rights.
1.3 Document Overview 
This software test plan is organized into the following sections:
1 - Scope2 - References3 - Test Procedure4 - IPP Compliance Tests5 - Command TestsA - Glossary 2 References 
2.1 CUPS Documentation 
The following CUPS documentation is referenced by this document:
CUPS-CMP-1.1: CUPS Configuration Management PlanCUPS-IDD-1.1: CUPS System Interface Design DescriptionCUPS-IPP-1.1: CUPS Implementation of IPPCUPS-SAM-1.1.x: CUPS Software Administrators ManualCUPS-SDD-1.1: CUPS Software Design DescriptionCUPS-SPM-1.1.x: CUPS Software Programming ManualCUPS-SSR-1.1: CUPS Software Security ReportCUPS-STP-1.1: CUPS Software Test PlanCUPS-SUM-1.1.x: CUPS Software Users ManualCUPS-SVD-1.1: CUPS Software Version Description 2.2 Other Documents 
The following non-CUPS documents are referenced by this document:
http://partners.adobe.com/asn/developer/PDFS/TN/5003.PPD_Spec_v4.3.pdfAdobe PostScript Printer Description File Format Specification, Version
 4.3.
http://partners.adobe.com/asn/developer/PDFS/TN/PLRM.pdfAdobe PostScript Language Reference, Third Edition.
IPP/1.1: Implementers Guide http://www.ietf.org/rfc/rfc1179.txtRFC 1179, Line Printer
 Daemon Protocol
http://www.ietf.org/rfc/rfc2396.txtRFC 2396, Uniform
 Resource Identifiers (URI): Generic Syntax
http://www.ietf.org/rfc/rfc2567.txtRFC 2567, Design Goals
 for an Internet Printing Protocol
http://www.ietf.org/rfc/rfc2568.txtRFC 2568, Rationale
 for the Structure of the Model and Protocol for the Internet Printing
 Protocol
http://www.ietf.org/rfc/rfc2569.txtRFC 2569, Mapping
 between LPD and IPP Protocols
http://www.ietf.org/rfc/rfc2616.txtRFC 2616, Hypertext
 Transfer Protocol -- HTTP/1.1
http://www.ietf.org/rfc/rfc2617.txtRFC 2617, HTTP
 Authentication: Basic and Digest Access
 Authentication http://www.ietf.org/rfc/rfc2910.txtRFC 2910, IPP/1.1:
 Encoding and Transport
http://www.ietf.org/rfc/rfc2911.txtRFC 2911, IPP/1.1:
 Model and Semantics
http://www.ietf.org/rfc/rfc3380.txtRFC 3380, IPP: Job and
 Printer Set Operations
3 Test Procedure 
The test software and data files are located in the test subdirectory of the source distribution. A script is provided to
 compile the 
ipptest program and run all of the tests that
 follow, producing a success/fail report.
The test target of the top-level makefile can be used to
 run this script:
make test
or you can run the test script directly:
cd test
./run-stp-tests
A Software Test Report is stored in HTML and PDF files that are
 generated using the 
http://www.easysw.com/htmldocHTMLDOC  software.
4 IPP Compliance Tests 
This section describes the tests used to validate the IPP standards
 compliance of the CUPS server.
4.1 Request Tests 
These tests verify that the CUPS scheduler only accepts valid IPP
 requests that start with the 
attributes-charset and attributes-natural-language
 attributes and also contain a printer-uri
 or job-uri attribute.
It also verifies that the CUPS scheduler always responds with attributes-charset
 and attributes-natural-language attributes, using default values if they are not provided by the
 client.
4.2 CUPS Printer Operation Tests 
These tests verify that the CUPS printer operations are supported and
 function properly. Two printers called 
Test1 and Test2
 are created, one as a PostScript printer and one as a
 raster printer.
4.3 Job Operation Tests 
These test verify that the CUPS scheduler accepts print jobs for all
 supported file formats and that the 
cancel-job, hold-job
, and resume-job operations work.
5 Command Tests 
This section describes the tests used to validate the Berkeley and
 System V commands included with CUPS.
5.1 lpadmin 
This test verifies that printers can be added, modified, and
 defaulted using the 
lpadmin command.
5.2 lpc 
This test verifies that the lpc command can show the
 current status of all print queues.
5.3 lpq 
This test verifies that the lpq command lists any jobs
 in the queue.
5.4 lpstat 
This test verifies that the lpstat command works with
 all reports using the "
-t" option.
5.5 lp 
This test verifies that the lp command works with both
 the default destination and a specific destination.
5.6 lpr 
This test verifies that the lpr command works with both
 the default destination and a specific destination.
5.7 lprm 
This test verifies that the lprm command can properly
 cancel a job.
5.8 cancel 
This test verifies that the cancel command can properly
 cancel a job or all jobs.
5.9 lpinfo 
This test verifies that the lpinfo command returns a
 list of available printer drivers and devices.
A Glossary 
A.1 Terms 
CA computer language.parallelSending or receiving data more than 1 bit at a time.pipeA one-way communications channel between two programs.serialSending or receiving data 1 bit at a time.socketA two-way network communications channel. A.2 Acronyms 
ASCIIAmerican Standard Code for Information InterchangeCUPSCommon UNIX Printing SystemESC/PEPSON Standard Code for PrintersFTPFile Transfer ProtocolHP-GLHewlett-Packard Graphics LanguageHP-PCLHewlett-Packard Page Control LanguageHP-PJLHewlett-Packard Printer Job LanguageIETFInternet Engineering Task ForceIPPInternet Printing ProtocolISOInternational Standards OrganizationLPDLine Printer DaemonMIMEMultimedia Internet Mail ExchangePPDPostScript Printer DescriptionSMBServer Message BlockTFTPTrivial File Transfer Protocol