# Copyright 2018 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

AUTHOR = "The Chromium OS Authors"
NAME = "platform_PrinterPpds.core_test_debug"
TIME = "SHORT"
TEST_TYPE = "client"
CRITERIA = """
The test fails in case of malfunctioning of CUPS printing stack (cupsd,
cupstestppd, cups filters) for at least one of tested PPD files or when at least
one of produced outputs differs from expected output (it is checked by comparing
digests).
"""
TEST_CATEGORY = "Functional"
TEST_CLASS = "platform"
JOB_RETRIES = 0

DOC = """
This test runs the following procedure for PPD files from ppds_core directory:
1. Add an Generic printer to CUPS server (user-provided ppd file).
2. Print test PDF documents (from docs directory).
3. Check CUPS logs for any errors.
4. Extract a printing pipeline from CUPS logs and rerun it as a shell script.
5. Compare digests of obtained outputs with expected ones (from digests
    directory).
6. Remove the printer.
When printing the PDF, the printing request sent to a printer is caught by
a fake printer. Intercepted output is verified when possible by comparing
its digest with the expected one.
See readme.txt for details.
"""

job.run_test(
        'platform_PrinterPpds',
        path_docs='docs',
        path_ppds='ppds_core',
        path_digests='digests',
        debug_mode=True)
