CUPS Software Test Plan

This software test plan provides detailed tests that are used to evaluate the stability and compliance of CUPS.

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 ipptool 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 a HTML file in the test subdirectory at the conclusion of the test.

IPP Compliance Tests

This section describes the tests used to validate the IPP standards compliance of the CUPS server.

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.

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.

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.

Subscription Operation Tests

These test verify that the CUPS scheduler accepts subscriptions with print jobs and that all subscription operations work as required by the IPP notification and mailto specifications.

Command Tests

This section describes the tests used to validate the Berkeley and System V commands included with CUPS.

lpadmin

This test verifies that printers can be added, modified, and defaulted using the lpadmin command.

lpc

This test verifies that the lpc command can show the current status of all print queues.

lpq

This test verifies that the lpq command lists any jobs in the queue.

lpstat

This test verifies that the lpstat command works with all reports using the "-t" option.

lp

This test verifies that the lp command works with both the default destination and a specific destination.

lpr

This test verifies that the lpr command works with both the default destination and a specific destination.

lprm

This test verifies that the lprm command can properly cancel a job.

cancel

This test verifies that the cancel command can properly cancel a job or all jobs.

lpinfo

This test verifies that the lpinfo command returns a list of available printer drivers and devices.