CUPS Software Test Plan

Easy Software Products
Copyright 1997-2003, All Rights Reserved

Table of Contents

1 Scope 2 References 3 Test Procedure

4 IPP Compliance Tests 5 Command Tests A Glossary

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 Easy 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:

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:

2 References

2.1 CUPS Documentation

The following CUPS documentation is referenced by this document:

2.2 Other Documents

The following non-CUPS documents are referenced by this document:

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:

or you can run the test script directly:

A Software Test Report is stored in HTML and PDF files that are generated using the HTMLDOC 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

A computer language.
Sending or receiving data more than 1 bit at a time.
A one-way communications channel between two programs.
Sending or receiving data 1 bit at a time.
A two-way network communications channel.

A.2 Acronyms

American Standard Code for Information Interchange
Common UNIX Printing System
EPSON Standard Code for Printers
File Transfer Protocol
Hewlett-Packard Graphics Language
Hewlett-Packard Page Control Language
Hewlett-Packard Printer Job Language
Internet Engineering Task Force
Internet Printing Protocol
International Standards Organization
Line Printer Daemon
Multimedia Internet Mail Exchange
PostScript Printer Description
Server Message Block
Trivial File Transfer Protocol