CHANGES IN CUPS V1.5.1
- - Documentation updates (STR #3885)
+ - Documentation updates (STR #3885, STR #3946)
+ - The DBUS notifier could crash (STR #3947)
+ - Relaxed some of the page size checks in cupstestppd.
+ - The ipptool program now reports attributes that are repeated within
+ the same attribute group.
- Updated the PWG raster support to match the current draft
specification.
- Fixed some IPP conformance issues in the scheduler.
- Added ipptool support for repeating requests.
- - Added IPP/2.2 conformance tests and greatly improved the IPP/1.1
- conformance testing.
+ - Added IPP/2.2 conformance tests and greatly improved the IPP/1.1,
+ IPP/2.0, and IPP/2.1 conformance testing.
- IPP messages containing mixed integer/rangeOfInteger values did not
work (STR #3942)
- The ipptool program now provides additional diagnostics for badly-
-CHANGES-IPPTOOL.txt - 2011-09-28
+CHANGES-IPPTOOL.txt - 2011-10-04
--------------------------------
This file provides a list of changes to the ipptool binary distribution posted
on cups.org.
+2011-10-04
+
+ - Fixed a crasher bug that showed up on Windows.
+ - Fixed a typo in the IPP/2.0 test.
+
+
+2011-10-03
+
+ - Using OF-TYPE with the "no-value" or "unknown" out-of-band value tags
+ now works without special WITH-VALUE strings.
+ - ipptool now shows an error when an attribute appears more than once
+ within the same attribute group.
+ - ipptool did not display attributes as specified by the DISPLAY
+ directive when a test error failed.
+ - Fixed one spot where DEFINE-VALUE was still treated as an error when
+ the EXPECT test failed.
+ - uriScheme values were not displayed properly.
+ - Updated the IPP/1.1 tests to properly validate support for
+ job-hold-until-default and job-hold-until-supported when the Hold-Job
+ operation is supported.
+ - Updated the IPP/1.1 tests to properly check for the various standard
+ media sizes for the printing tests.
+ - Updated the IPP/1.1 tests to accept "no-value" for media-default an
+ orientation-requested-default.
+ - Updated the IPP/1.1 tests to accept "unknown" for job-state.
+ - Updated the IPP/1.1 tests to not perform the bogus URI printing tests
+ unless the "document-uri" variable is defined.
+ - Updated the IPP/2.0 tests to properly validate media-col
+ "media-xxx-supported" attributes.
+ - Updated the IPP/2.2 tests to properly validate media-ready and
+ media-col-ready.
+
+
2011-09-28
- Test output now includes a summary and overall score at the end.
* Include necessary headers...
*/
-# include "array.h"
+# include <cups/array.h>
/*
# if defined(HAVE_CDSASSL) && defined(HAVE_SECCERTIFICATECOPYDATA)
static int http_set_credentials(http_t *http);
# endif /* HAVE_CDSASSL ** HAVE_SECCERTIFICATECOPYDATA */
+#endif /* HAVE_SSL */
static void http_set_timeout(int fd, double timeout);
static void http_set_wait(http_t *http);
+#ifdef HAVE_SSL
static int http_setup_ssl(http_t *http);
static void http_shutdown_ssl(http_t *http);
static int http_upgrade(http_t *http);
static char * const ipp_std_ops[] =
{
/* 0x0000 - 0x000f */
- "unknown-00",
- "unknown-01",
+ "0x00",
+ "0x01",
"Print-Job",
"Print-URI",
"Validate-Job",
"Hold-Job",
"Release-Job",
"Restart-Job",
- "unknown-0f",
+ "0x0f",
/* 0x0010 - 0x001f */
"Pause-Printer",
"Cancel-Subscription",
"Get-Notifications",
"Send-Notifications",
- "unknown-1e",
- "unknown-1f",
+ "0x1e",
+ "0x1f",
/* 0x0020 - 0x002f */
- "unknown-20",
+ "0x20",
"Get-Printer-Support-Files",
"Enable-Printer",
"Disable-Printer",
/* 0x0030 - 0x003b */
"Promote-Job",
"Schedule-Job-After",
- "unknown-32",
+ "0x32",
"Cancel-Document",
"Get-Document-Attributes",
"Get-Documents",
/* 0x06 */
"event-notification-attributes-tag",
/* 0x07 */
- "unknown-08", /* 0x08 */
- "unknown-09", /* 0x09 */
- "unknown-0a", /* 0x0a */
- "unknown-0b", /* 0x0b */
- "unknown-0c", /* 0x0c */
- "unknown-0d", /* 0x0d */
- "unknown-0e", /* 0x0e */
- "unknown-0f", /* 0x0f */
+ "0x08", /* 0x08 */
+ "document-attributes-tag",
+ /* 0x09 */
+ "0x0a", /* 0x0a */
+ "0x0b", /* 0x0b */
+ "0x0c", /* 0x0c */
+ "0x0d", /* 0x0d */
+ "0x0e", /* 0x0e */
+ "0x0f", /* 0x0f */
"unsupported", /* 0x10 */
"default", /* 0x11 */
"unknown", /* 0x12 */
"no-value", /* 0x13 */
- "unknown-14", /* 0x14 */
+ "0x14", /* 0x14 */
"not-settable", /* 0x15 */
"delete-attribute", /* 0x16 */
"admin-define", /* 0x17 */
- "unknown-18", /* 0x18 */
- "unknown-19", /* 0x19 */
- "unknown-1a", /* 0x1a */
- "unknown-1b", /* 0x1b */
- "unknown-1c", /* 0x1c */
- "unknown-1d", /* 0x1d */
- "unknown-1e", /* 0x1e */
- "unknown-1f", /* 0x1f */
- "unknown-20", /* 0x20 */
+ "0x18", /* 0x18 */
+ "0x19", /* 0x19 */
+ "0x1a", /* 0x1a */
+ "0x1b", /* 0x1b */
+ "0x1c", /* 0x1c */
+ "0x1d", /* 0x1d */
+ "0x1e", /* 0x1e */
+ "0x1f", /* 0x1f */
+ "0x20", /* 0x20 */
"integer", /* 0x21 */
"boolean", /* 0x22 */
"enum", /* 0x23 */
- "unknown-24", /* 0x24 */
- "unknown-25", /* 0x25 */
- "unknown-26", /* 0x26 */
- "unknown-27", /* 0x27 */
- "unknown-28", /* 0x28 */
- "unknown-29", /* 0x29 */
- "unknown-2a", /* 0x2a */
- "unknown-2b", /* 0x2b */
- "unknown-2c", /* 0x2c */
- "unknown-2d", /* 0x2d */
- "unknown-2e", /* 0x2e */
- "unknown-2f", /* 0x2f */
+ "0x24", /* 0x24 */
+ "0x25", /* 0x25 */
+ "0x26", /* 0x26 */
+ "0x27", /* 0x27 */
+ "0x28", /* 0x28 */
+ "0x29", /* 0x29 */
+ "0x2a", /* 0x2a */
+ "0x2b", /* 0x2b */
+ "0x2c", /* 0x2c */
+ "0x2d", /* 0x2d */
+ "0x2e", /* 0x2e */
+ "0x2f", /* 0x2f */
"octetString", /* 0x30 */
"dateTime", /* 0x31 */
"resolution", /* 0x32 */
"textWithLanguage", /* 0x35 */
"nameWithLanguage", /* 0x36 */
"endCollection", /* 0x37 */
- "unknown-38", /* 0x38 */
- "unknown-39", /* 0x39 */
- "unknown-3a", /* 0x3a */
- "unknown-3b", /* 0x3b */
- "unknown-3c", /* 0x3c */
- "unknown-3d", /* 0x3d */
- "unknown-3e", /* 0x3e */
- "unknown-3f", /* 0x3f */
- "unknown-40", /* 0x40 */
+ "0x38", /* 0x38 */
+ "0x39", /* 0x39 */
+ "0x3a", /* 0x3a */
+ "0x3b", /* 0x3b */
+ "0x3c", /* 0x3c */
+ "0x3d", /* 0x3d */
+ "0x3e", /* 0x3e */
+ "0x3f", /* 0x3f */
+ "0x40", /* 0x40 */
"textWithoutLanguage",/* 0x41 */
"nameWithoutLanguage",/* 0x42 */
- "unknown-43", /* 0x43 */
+ "0x43", /* 0x43 */
"keyword", /* 0x44 */
"uri", /* 0x45 */
"uriScheme", /* 0x46 */
case IPP_TAG_KEYWORD :
case IPP_TAG_CHARSET :
case IPP_TAG_URI :
+ case IPP_TAG_URISCHEME :
case IPP_TAG_MIMETYPE :
case IPP_TAG_LANGUAGE :
case IPP_TAG_TEXTLANG :
return (ipp_status_1000s[error - IPP_AUTHENTICATION_CANCELED]);
/*
- * No, build an "unknown-xxxx" error string...
+ * No, build an "0xxxxx" error string...
*/
- sprintf(cg->ipp_unknown, "unknown-%04x", error);
+ sprintf(cg->ipp_unknown, "0x%04x", error);
return (cg->ipp_unknown);
}
return (ipp_cups_ops2[0]);
/*
- * No, build an "unknown-xxxx" operation string...
+ * No, build an "0xxxxx" operation string...
*/
sprintf(cg->ipp_unknown, "0x%04x", op);
n = (((((buffer[0] << 8) | buffer[1]) << 8) | buffer[2]) << 8) |
buffer[3];
- if (value_tag == IPP_TAG_RANGE)
+ if (attr->value_tag == IPP_TAG_RANGE)
value->range.lower = value->range.upper = n;
else
value->integer = n;
IPP_TAG_UNSUPPORTED_GROUP, /* Unsupported attributes group */
IPP_TAG_SUBSCRIPTION, /* Subscription group */
IPP_TAG_EVENT_NOTIFICATION, /* Event group */
+ IPP_TAG_DOCUMENT = 0x09, /* Document group */
IPP_TAG_UNSUPPORTED_VALUE = 0x10, /* Unsupported value */
IPP_TAG_DEFAULT, /* Default value */
IPP_TAG_UNKNOWN, /* Unknown value */
.\" which should have been included with this file. If this file is
.\" file is missing or damaged, see the license at "http://www.cups.org/".
.\"
-.TH lp 1 "CUPS" "31 March 2011" "Apple Inc."
+.TH lp 1 "CUPS" "3 October 2011" "Apple Inc."
.SH NAME
lp - print files
.SH SYNOPSIS
.br
Sets the job name.
.TP 5
--u username
-.br
-Submits jobs as \fIusername\fR.
-.TP 5
-H hh:mm
.TP 5
-H hold
* D-Bus notifier for CUPS.
*
* Copyright 2008-2010 by Apple Inc.
- * Copyright (C) 2007 Red Hat, Inc.
+ * Copyright (C) 2011 Red Hat, Inc.
* Copyright (C) 2007 Tim Waugh <twaugh@redhat.com>
* Copyright 1997-2005 by Easy Software Products.
*
/*
* Create and send the new message...
*/
-
+
fprintf(stderr, "DEBUG: %s\n", signame);
message = dbus_message_new_signal("/org/cups/cupsd/Notifier",
"org.cups.cupsd.Notifier",
p = printer_reasons;
for (i = 0; i < attr->num_values; i++)
{
- strcpy(p, attr->values[i].string.text);
- p += strlen(p);
if (i)
*p++ = ',';
+
+ strcpy(p, attr->values[i].string.text);
+ p += strlen(p);
}
dbus_message_iter_append_string(&iter, &printer_reasons);
}
/*
* Verify that the size name is Adobe standard name if it's a standard size
- * and the dementional name if it's not a standard size. Suffix should be
+ * and the dimentional name if it's not a standard size. Suffix should be
* .Fullbleed, etc., or numeric, e.g., Letter, Letter.Fullbleed,
* Letter.Transverse, Letter1, Letter2, 4x8, 55x91mm, 55x91mm.Fullbleed, etc.
*/
if (pwg_media && pwg_media->ppd)
{
+ size_t ppdlen = strlen(pwg_media->ppd);
+ /* Length of standard PPD name */
+
strlcpy(buf, pwg_media->ppd, sizeof(buf));
if (size->left == 0 && size->bottom == 0 &&
size->right == size->width && size->top == size->length)
{
snprintf(buf, sizeof(buf), "%s.Fullbleed", pwg_media->ppd);
- if (strcmp(size->name, buf))
- is_ok = 0;
- }
- else if (size->width > size->length)
- {
- if ((ptr = pwg_media->ppd + strlen(pwg_media->ppd) - 7)
- >= pwg_media->ppd && !strcmp(ptr, "Rotated"))
+ if (_cups_strcasecmp(size->name, buf))
{
- if (strcmp(size->name, buf))
+ /*
+ * Allow an additional qualifier such as ".WithTab"...
+ */
+
+ size_t buflen = strlen(buf);/* Length of full bleed name */
+
+ if (_cups_strncasecmp(size->name, buf, buflen) ||
+ size->name[buflen] != '.')
is_ok = 0;
}
- else
- {
+ }
+ else if (strcmp(size->name, buf) && size->width > size->length)
+ {
+ if (!strcmp(pwg_media->ppd, "DoublePostcardRotated"))
+ strlcpy(buf, "DoublePostcard", sizeof(buf));
+ else
snprintf(buf, sizeof(buf), "%sRotated", pwg_media->ppd);
+
+ if (strcmp(size->name, buf))
+ {
+ snprintf(buf, sizeof(buf), "%s.Transverse", pwg_media->ppd);
if (strcmp(size->name, buf))
- {
- snprintf(buf, sizeof(buf), "%s.Transverse", pwg_media->ppd);
- if (strcmp(size->name, buf))
- is_ok = 0;
- }
+ is_ok = 0;
}
}
- else
- {
- if ((!strncmp(size->name, pwg_media->ppd, strlen(pwg_media->ppd))))
+ else if (!strncmp(size->name, pwg_media->ppd, ppdlen))
+ {
+ /*
+ * Check for a proper qualifier (number, "Small", or .something)...
+ */
+
+ ptr = size->name + ppdlen;
+
+ if (isdigit(*ptr & 255))
{
- for (ptr = size->name + strlen(pwg_media->ppd); *ptr; ptr ++)
+ for (ptr ++; *ptr; ptr ++)
{
if (!isdigit(*ptr & 255))
{
}
}
}
- else
- is_ok = 0;
+ else if (*ptr != '.' && *ptr && strcmp(ptr, "Small"))
+ is_ok = 0;
}
+ else
+ {
+ /*
+ * Check for EnvSizeName as well...
+ */
+
+ snprintf(buf, sizeof(buf), "Env%s", pwg_media->ppd);
+
+ if (strcmp(size->name, buf))
+ is_ok = 0;
+ }
if (!is_ok)
_cupsLangPrintf(stdout,
length_tmp = (fabs(size->length - ceil(size->length)) < 0.1) ?
ceil(size->length) : size->length;
- if (fmod(width_tmp, 18.0) == 0.0 && fmod(length_tmp, 18.0) == 0.0)
+ if (fmod(width_tmp, 18.0) == 0.0 || fmod(length_tmp, 18.0) == 0.0)
{
width_inch = width_tmp / 72.0;
length_inch = length_tmp / 72.0;
else if (size->width > size->length)
strlcat(buf, ".Transverse", sizeof(buf));
- if (strcmp(size->name, buf))
- _cupsLangPrintf(stdout,
- _(" %s Size \"%s\" should be \"%s\"."),
- prefix, size->name, buf);
+ if (_cups_strcasecmp(size->name, buf))
+ {
+ size_t buflen = strlen(buf); /* Length of proposed name */
+
+ if (_cups_strncasecmp(size->name, buf, buflen) ||
+ strcmp(size->name + buflen, "in"))
+ _cupsLangPrintf(stdout,
+ _(" %s Size \"%s\" should be \"%s\"."),
+ prefix, size->name, buf);
+ }
}
}
}
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state WITH-VALUE 7,8,9 DEFINE-MATCH PRINT_JOB_COMPLETED
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
STATUS successful-ok
# Display some useful information to identify the test
- DISPLAY printer-name
- DISPLAY printer-make-and-model
DISPLAY color-supported
- DISPLAY pages-per-minute
- DISPLAY pages-per-minute-color
+ DISPLAY compression-supported
DISPLAY document-format-supported
DISPLAY finishings-supported
+ DISPLAY ipp-versions-supported
DISPLAY job-sheets-supported
DISPLAY media-supported
DISPLAY number-up-supported
DISPLAY operations-supported
+ DISPLAY pages-per-minute
+ DISPLAY pages-per-minute-color
DISPLAY print-quality-supported
+ DISPLAY printer-uri-supported
DISPLAY reference-uri-schemes-supported
DISPLAY sizes-supported
+ DISPLAY uri-authentication-supported
+ DISPLAY uri-security-supported
+
+ # Operations
+ EXPECT operations-supported OF-TYPE enum IN-GROUP printer-attributes-tag WITH-VALUE 0x0002 # Print-Job
+ EXPECT operations-supported WITH-VALUE 0x0003 DEFINE-MATCH OPTIONAL_PRINT_URI # Print-URI
+ EXPECT operations-supported WITH-VALUE 0x0004 # Validate-Job
+ EXPECT operations-supported WITH-VALUE 0x0005 DEFINE-MATCH OPTIONAL_CREATE_JOB # Create-Job
+ EXPECT operations-supported WITH-VALUE 0x0006 DEFINE-MATCH OPTIONAL_SEND_DOCUMENT # Send-Document
+ EXPECT operations-supported WITH-VALUE 0x0007 DEFINE-MATCH OPTIONAL_SEND_URI # Send-URI
+ EXPECT operations-supported WITH-VALUE 0x0008 # Cancel-Job
+ EXPECT operations-supported WITH-VALUE 0x0009 # Get-Job-Attributes
+ EXPECT operations-supported WITH-VALUE 0x000a # Get-Jobs
+ EXPECT operations-supported WITH-VALUE 0x000b # Get-Printer-Attributes
+ EXPECT operations-supported WITH-VALUE 0x000c DEFINE-MATCH OPTIONAL_HOLD_JOB # Hold-Job
+ EXPECT operations-supported WITH-VALUE 0x000d DEFINE-MATCH OPTIONAL_RELEASE_JOB # Release-Job
+ EXPECT operations-supported WITH-VALUE 0x000e DEFINE-MATCH OPTIONAL_RESTART_JOB # Restart-Job
+ EXPECT operations-supported WITH-VALUE 0x0010 DEFINE-MATCH OPTIONAL_PAUSE_PRINTER # Pause-Printer
+ EXPECT operations-supported WITH-VALUE 0x0011 DEFINE-MATCH OPTIONAL_RESUME_PRINTER # Resume-Printer
+ EXPECT operations-supported WITH-VALUE 0x0012 DEFINE-MATCH OPTIONAL_PURGE_JOBS # Purge-Jobs
# Job template attributes
EXPECT ?copies-default OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0
EXPECT ?finishings-supported OF-TYPE enum IN-GROUP printer-attributes-tag WITH-VALUE 3
EXPECT ?job-hold-until-default OF-TYPE keyword|name IN-GROUP printer-attributes-tag COUNT 1
EXPECT ?job-hold-until-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag WITH-VALUE no-hold
+ EXPECT job-hold-until-default IF-DEFINED OPTIONAL_HOLD_JOB
+ EXPECT job-hold-until-supported IF-DEFINED OPTIONAL_HOLD_JOB
EXPECT ?job-priority-default OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0,<101
EXPECT ?job-priority-supported OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0,<101
EXPECT ?job-sheets-default OF-TYPE keyword|name IN-GROUP printer-attributes-tag
EXPECT ?job-sheets-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag WITH-VALUE none
- EXPECT ?media-default OF-TYPE keyword|name IN-GROUP printer-attributes-tag COUNT 1
+ EXPECT ?media-default OF-TYPE no-value|keyword|name IN-GROUP printer-attributes-tag COUNT 1
EXPECT ?media-ready OF-TYPE keyword|name IN-GROUP printer-attributes-tag
EXPECT ?media-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag
EXPECT ?multiple-document-handling-default OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "/^(single-document|separate-documents-uncollated-copies|separate-documents-collated-copies|single-document-new-sheet)$$/"
EXPECT ?number-up-default OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0
EXPECT ?number-up-supported OF-TYPE integer|rangeOfInteger IN-GROUP printer-attributes-tag WITH-VALUE >0
EXPECT ?number-up-supported WITH-VALUE 1
- EXPECT ?orientation-requested-default OF-TYPE enum,no-value IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE no-value,3,4,5,6
+ EXPECT ?orientation-requested-default OF-TYPE no-value|enum IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE 3,4,5,6
EXPECT ?orientation-requested-supported OF-TYPE enum IN-GROUP printer-attributes-tag WITH-VALUE 3,4,5,6
EXPECT ?pages-ranges-supported OF-TYPE boolean IN-GROUP printer-attributes-tag
EXPECT ?print-quality-default OF-TYPE enum IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE 3,4,5
EXPECT document-format-supported WITH-VALUE "application/postscript" DEFINE-MATCH OPTIONAL_POSTSCRIPT
EXPECT document-format-supported WITH-VALUE "image/jpeg" DEFINE-MATCH OPTIONAL_JPEG
EXPECT job-sheets-supported WITH-VALUE "standard" DEFINE-MATCH OPTIONAL_STANDARD_SHEET
- EXPECT media-supported WITH-VALUE "/^(a4|iso-a4|iso_a4_210x297mm)$$/" DEFINE-VALUE OPTIONAL_A4_MEDIA
- EXPECT media-supported WITH-VALUE "/^(letter|na-letter|na_letter_8.5x11in)$$/" DEFINE-VALUE OPTIONAL_LETTER_MEDIA
- EXPECT media-supported WITH-VALUE "/^(index-4x6|na_index-4x6_4x6in)$$/" DEFINE-VALUE OPTIONAL_4X6_MEDIA
+ EXPECT media-supported WITH-VALUE "a4" DEFINE-VALUE OPTIONAL_A4_MEDIA
+ EXPECT media-supported WITH-VALUE "iso-a4" DEFINE-VALUE OPTIONAL_A4_MEDIA
+ EXPECT media-supported WITH-VALUE "iso_a4_210x297mm" DEFINE-VALUE OPTIONAL_A4_MEDIA
+ EXPECT media-supported WITH-VALUE "letter" DEFINE-VALUE OPTIONAL_LETTER_MEDIA
+ EXPECT media-supported WITH-VALUE "na-letter" DEFINE-VALUE OPTIONAL_LETTER_MEDIA
+ EXPECT media-supported WITH-VALUE "na_letter_8.5x11in" DEFINE-VALUE OPTIONAL_LETTER_MEDIA
+ EXPECT media-supported WITH-VALUE "index-4x6" DEFINE-VALUE OPTIONAL_4X6_MEDIA
+ EXPECT media-supported WITH-VALUE "na_index-4x6_4x6in" DEFINE-VALUE OPTIONAL_4X6_MEDIA
EXPECT number-up-supported WITH-VALUE 2 DEFINE-MATCH OPTIONAL_2UP
EXPECT print-quality WITH-VALUE 3 DEFINE-MATCH OPTIONAL_DRAFT_QUALITY
EXPECT print-quality WITH-VALUE 4 DEFINE-MATCH OPTIONAL_NORMAL_QUALITY
EXPECT ?printer-more-info-manufacturer OF-TYPE uri IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "$HTTP_URI_SCHEME"
EXPECT ?printer-state-message OF-TYPE text IN-GROUP printer-attributes-tag
EXPECT ?reference-uri-schemes-supported OF-TYPE uriScheme IN-GROUP printer-attributes-tag
+ EXPECT reference-uri-schemes-supported WITH-VALUE "ftp" IF-DEFINED OPTIONAL_PRINT_URI
+ EXPECT reference-uri-schemes-supported WITH-VALUE "ftp" IF-DEFINED OPTIONAL_SEND_URI IF-NOT-DEFINED OPTIONAL_PRINT_URI
EXPECT charset-configured OF-TYPE charset IN-GROUP printer-attributes-tag COUNT 1
EXPECT charset-supported OF-TYPE charset IN-GROUP printer-attributes-tag WITH-VALUE utf-8
EXPECT compression-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE none
EXPECT queued-job-count OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1
EXPECT uri-authentication-supported OF-TYPE keyword IN-GROUP printer-attributes-tag
EXPECT uri-security-supported OF-TYPE keyword IN-GROUP printer-attributes-tag SAME-COUNT-AS uri-authentication-supported
-
- # Operations
- EXPECT operations-supported OF-TYPE enum IN-GROUP printer-attributes-tag WITH-VALUE 0x0002 # Print-Job
- EXPECT operations-supported WITH-VALUE 0x0003 DEFINE-MATCH OPTIONAL_PRINT_URI # Print-URI
- EXPECT operations-supported WITH-VALUE 0x0004 # Validate-Job
- EXPECT operations-supported WITH-VALUE 0x0005 DEFINE-MATCH OPTIONAL_CREATE_JOB # Create-Job
- EXPECT operations-supported WITH-VALUE 0x0006 DEFINE-MATCH OPTIONAL_SEND_DOCUMENT # Send-Document
- EXPECT operations-supported WITH-VALUE 0x0007 DEFINE-MATCH OPTIONAL_SEND_URI # Send-URI
- EXPECT operations-supported WITH-VALUE 0x0008 # Cancel-Job
- EXPECT operations-supported WITH-VALUE 0x0009 # Get-Job-Attributes
- EXPECT operations-supported WITH-VALUE 0x000a # Get-Jobs
- EXPECT operations-supported WITH-VALUE 0x000b # Get-Printer-Attributes
- EXPECT operations-supported WITH-VALUE 0x000c DEFINE-MATCH OPTIONAL_HOLD_JOB # Hold-Job
- EXPECT operations-supported WITH-VALUE 0x000d DEFINE-MATCH OPTIONAL_RELEASE_JOB # Release-Job
- EXPECT operations-supported WITH-VALUE 0x000e DEFINE-MATCH OPTIONAL_RESTART_JOB # Restart-Job
- EXPECT operations-supported WITH-VALUE 0x0010 DEFINE-MATCH OPTIONAL_PAUSE_PRINTER # Pause-Printer
- EXPECT operations-supported WITH-VALUE 0x0011 DEFINE-MATCH OPTIONAL_RESUME_PRINTER # Resume-Printer
- EXPECT operations-supported WITH-VALUE 0x0012 DEFINE-MATCH OPTIONAL_PURGE_JOBS # Purge-Jobs
}
EXPECT ?job-more-info OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$HTTP_URI_SCHEME"
EXPECT job-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1
EXPECT job-originating-user-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1
- EXPECT job-state OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >2,<10
+ EXPECT job-state OF-TYPE unknown|enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >2,<10
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag COUNT 1
EXPECT ?job-detailed-status-messages OF-TYPE text IN-GROUP job-attributes-tag
EXPECT ?number-of-documents OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1
EXPECT ?output-device-assigned OF-TYPE name IN-GROUP job-attributes-tag COUNT 1
- EXPECT time-at-creation OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE no-value,>-1
- EXPECT time-at-processing OF-TYPE no-value,integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE no-value,>-1
- EXPECT time-at-completed OF-TYPE no-value,integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE no-value,>-1
- EXPECT job-printer-up-time OF-TYPE no-value,integer IN-GROUP job-attributes-tag COUNT 1
- EXPECT ?date-time-at-creation OF-TYPE no-value,dateTime IN-GROUP job-attributes-tag COUNT 1
- EXPECT ?date-time-at-processing OF-TYPE no-value,dateTime IN-GROUP job-attributes-tag COUNT 1
- EXPECT ?date-time-at-completed OF-TYPE no-value,dateTime IN-GROUP job-attributes-tag COUNT 1
+ EXPECT time-at-creation OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1
+ EXPECT time-at-processing OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1
+ EXPECT time-at-completed OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1
+ EXPECT job-printer-up-time OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1
+ EXPECT ?date-time-at-creation OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1
+ EXPECT ?date-time-at-processing OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1
+ EXPECT ?date-time-at-completed OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1
EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1
EXPECT ?job-message-from-operator OF-TYPE text IN-GROUP job-attributes-tag COUNT 1
EXPECT ?job-k-octets OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1
}
+# Wait for job to complete...
+{
+ NAME "Get-Job-Attributes Until Job Complete"
+ OPERATION Get-Job-Attributes
+ GROUP operation-attributes-tag
+ ATTR charset attributes-charset utf-8
+ ATTR naturalLanguage attributes-natural-language en
+ ATTR uri printer-uri $uri
+ ATTR integer job-id $job-id
+ ATTR name requesting-user-name $user
+
+ STATUS successful-ok
+ EXPECT job-state OF-TYPE unknown|enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >6,<10 REPEAT-NO-MATCH
+}
+
+
# Test Get-Jobs operation
#
# Required by: RFC 2911 section 3.2.6
ATTR uri printer-uri $uri
ATTR name requesting-user-name $user
ATTR keyword which-jobs completed
- DELAY 20
STATUS successful-ok
EXPECT job-id OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0
EXPECT ?job-more-info OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$HTTP_URI_SCHEME"
EXPECT job-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1
EXPECT job-originating-user-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1
- EXPECT job-state OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >2,<10
+ EXPECT job-state OF-TYPE unknown|enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >2,<10
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag COUNT 1
EXPECT ?job-detailed-status-messages OF-TYPE text IN-GROUP job-attributes-tag
EXPECT ?number-of-documents OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1
EXPECT ?output-device-assigned OF-TYPE name IN-GROUP job-attributes-tag COUNT 1
- EXPECT time-at-creation OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE no-value,>-1
- EXPECT time-at-processing OF-TYPE no-value,integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE no-value,>-1
- EXPECT time-at-completed OF-TYPE no-value,integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE no-value,>-1
- EXPECT job-printer-up-time OF-TYPE no-value,integer IN-GROUP job-attributes-tag COUNT 1
- EXPECT ?date-time-at-creation OF-TYPE no-value,dateTime IN-GROUP job-attributes-tag COUNT 1
- EXPECT ?date-time-at-processing OF-TYPE no-value,dateTime IN-GROUP job-attributes-tag COUNT 1
- EXPECT ?date-time-at-completed OF-TYPE no-value,dateTime IN-GROUP job-attributes-tag COUNT 1
+ EXPECT time-at-creation OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1
+ EXPECT time-at-processing OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1
+ EXPECT time-at-completed OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1
+ EXPECT job-printer-up-time OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1
+ EXPECT ?date-time-at-creation OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1
+ EXPECT ?date-time-at-processing OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1
+ EXPECT ?date-time-at-completed OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1
EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1
EXPECT ?job-message-from-operator OF-TYPE text IN-GROUP job-attributes-tag COUNT 1
EXPECT ?job-k-octets OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT ?job-more-info OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$HTTP_URI_SCHEME"
EXPECT job-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1
EXPECT job-originating-user-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1
- EXPECT job-state OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >2,<10
+ EXPECT job-state OF-TYPE unknown|enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >2,<10
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag COUNT 1
EXPECT ?job-detailed-status-messages OF-TYPE text IN-GROUP job-attributes-tag
EXPECT ?number-of-documents OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1
EXPECT ?output-device-assigned OF-TYPE name IN-GROUP job-attributes-tag COUNT 1
- EXPECT time-at-creation OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE no-value,>-1
- EXPECT time-at-processing OF-TYPE no-value,integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE no-value,>-1
- EXPECT time-at-completed OF-TYPE no-value,integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE no-value,>-1
- EXPECT job-printer-up-time OF-TYPE no-value,integer IN-GROUP job-attributes-tag COUNT 1
- EXPECT ?date-time-at-creation OF-TYPE no-value,dateTime IN-GROUP job-attributes-tag COUNT 1
- EXPECT ?date-time-at-processing OF-TYPE no-value,dateTime IN-GROUP job-attributes-tag COUNT 1
- EXPECT ?date-time-at-completed OF-TYPE no-value,dateTime IN-GROUP job-attributes-tag COUNT 1
+ EXPECT time-at-creation OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1
+ EXPECT time-at-processing OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1
+ EXPECT time-at-completed OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1
+ EXPECT job-printer-up-time OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1
+ EXPECT ?date-time-at-creation OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1
+ EXPECT ?date-time-at-processing OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1
+ EXPECT ?date-time-at-completed OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1
EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1
EXPECT ?job-message-from-operator OF-TYPE text IN-GROUP job-attributes-tag COUNT 1
EXPECT ?job-k-octets OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
# Defined by: RFC 2911 section 3.2.2
{
SKIP-IF-NOT-DEFINED OPTIONAL_PRINT_URI
+ SKIP-IF-NOT-DEFINED document-uri
NAME "Print-URI with bad URI: Print-URI Operation"
OPERATION Print-URI
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
{
SKIP-IF-NOT-DEFINED OPTIONAL_CREATE_JOB
SKIP-IF-NOT-DEFINED OPTIONAL_SEND_URI
+ SKIP-IF-NOT-DEFINED document-uri
SKIP-PREVIOUS-ERROR yes
NAME "Send-URI with bad URI: Send-URI Operation (bad URI)"
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME"
EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE >0
- EXPECT job-state OF-TYPE enum COUNT 1 IN-GROUP job-attributes-tag
+ EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag
WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag
EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag
#
# IPP/2.0 test suite.
#
-# Copyright 2007-2010 by Apple Inc.
+# Copyright 2007-2011 by Apple Inc.
# Copyright 2001-2006 by Easy Software Products. All rights reserved.
#
# These coded instructions, statements, and computer programs are the
EXPECT copies-supported OF-TYPE rangeOfInteger IN-GROUP printer-attributes-tag
EXPECT finishings-default OF-TYPE enum IN-GROUP printer-attributes-tag
EXPECT finishings-supported OF-TYPE enum IN-GROUP printer-attributes-tag WITH-VALUE 3
- EXPECT media-default OF-TYPE keyword|name IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "$MEDIA_REGEX"
+ EXPECT media-default OF-TYPE no-value|keyword|name IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "$MEDIA_REGEX"
+ EXPECT ?media-ready OF-TYPE keyword|name IN-GROUP printer-attributes-tag WITH-VALUE "$MEDIA_REGEX"
EXPECT media-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag WITH-VALUE "$MEDIA_REGEX"
- EXPECT orientation-requested-default OF-TYPE enum,no-value IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE no-value,3,4,5,6
+ EXPECT orientation-requested-default OF-TYPE no-value|enum IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE 3,4,5,6
EXPECT orientation-requested-supported OF-TYPE enum IN-GROUP printer-attributes-tag WITH-VALUE 3,4,5,6
EXPECT output-bin-default OF-TYPE keyword|name IN-GROUP printer-attributes-tag COUNT 1
EXPECT output-bin-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag
EXPECT sides-default OF-TYPE keyword IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^(one-sided|two-sided-long-edge|two-sided-short-edge)$$/"
EXPECT sides-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "/^(one-sided|two-sided-long-edge|two-sided-short-edge)$$/"
+ # Optional media-col support
+ EXPECT ?media-col-default OF-TYPE collection IN-GROUP printer-attributes-tag COUNT 1
+ EXPECT ?media-col-ready OF-TYPE collection IN-GROUP printer-attributes-tag
+ EXPECT ?media-col-supported OF-TYPE keyword IN-GROUP printer-attributes-tag
+ EXPECT media-col-supported WITH-VALUE media-back-coating DEFINE-MATCH HAVE_MEDIA_BACK_COATING
+ EXPECT media-col-supported WITH-VALUE media-color DEFINE-MATCH HAVE_MEDIA_COLOR
+ EXPECT media-col-supported WITH-VALUE media-front-coating DEFINE-MATCH HAVE_MEDIA_FRONT_COATING
+ EXPECT media-col-supported WITH-VALUE media-grain DEFINE-MATCH HAVE_MEDIA_GRAIN
+ EXPECT media-col-supported WITH-VALUE media-hole-count DEFINE-MATCH HAVE_MEDIA_HOLE_COUNT
+ EXPECT media-col-supported WITH-VALUE media-info DEFINE-MATCH HAVE_MEDIA_INFO
+ EXPECT media-col-supported WITH-VALUE media-key DEFINE-MATCH HAVE_MEDIA_KEY
+ EXPECT media-col-supported WITH-VALUE media-order-count DEFINE-MATCH HAVE_MEDIA_ORDER_COUNT
+ EXPECT media-col-supported WITH-VALUE media-pre-printed DEFINE-MATCH HAVE_MEDIA_PRE_PRINTED
+ EXPECT media-col-supported WITH-VALUE media-recycled DEFINE-MATCH HAVE_MEDIA_RECYCLED
+ EXPECT media-col-supported WITH-VALUE media-size DEFINE-MATCH HAVE_MEDIA_SIZE
+ EXPECT media-col-supported WITH-VALUE media-tooth DEFINE-MATCH HAVE_MEDIA_TOOTH
+ EXPECT media-col-supported WITH-VALUE media-type DEFINE-MATCH HAVE_MEDIA_TYPE
+ EXPECT media-col-supported WITH-VALUE media-weight-metric DEFINE-MATCH HAVE_MEDIA_WEIGHT_METRIC
+
+ EXPECT media-back-coating-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_BACK_COATING
+ EXPECT media-color-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_COLOR
+ EXPECT media-front-coating-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_FRONT_COATING
+ EXPECT media-grain-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_GRAIN
+ EXPECT media-hole-count-supported OF-TYPE rangeOfInteger IN-GROUP printer-attributes-tag WITH-VALUE >-1 IF-DEFINED HAVE_MEDIA_HOLE_COUNT
+ EXPECT media-info-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_INFO
+ EXPECT media-key-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_KEY
+ EXPECT media-order-count-supported OF-TYPE rangeOfInteger IN-GROUP printer-attributes-tag WITH-VALUE >0 IF-DEFINED HAVE_MEDIA_ORDER_COUNT
+ EXPECT media-pre-printed-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_PRE_PRINTED
+ EXPECT media-recycled-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_RECYCLED
+ EXPECT media-size-supported OF-TYPE collection IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_SIZE
+ EXPECT media-tooth-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_TOOTH
+ EXPECT media-type-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_TYPE
+ EXPECT media-weight-metric-supported OF-TYPE rangeOfInteger IN-GROUP printer-attributes-tag WITH-VALUE >-1 IF-DEFINED HAVE_MEDIA_WEIGHT_METRIC
+
# Printer description attributes
EXPECT color-supported OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1
EXPECT pages-per-minute OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1
# Printer description attributes
EXPECT job-creation-attributes-supported OF-TYPE keyword IN-GROUP printer-attributes-tag
EXPECT job-ids-supported OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE 1
+ EXPECT media-col-ready
+ EXPECT media-ready
EXPECT multiple-document-jobs-supported OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE 1
EXPECT printer-alert OF-TYPE octetString IN-GROUP printer-attributes-tag
EXPECT printer-alert-description OF-TYPE text IN-GROUP printer-attributes-tag SAME-COUNT-AS printer-alert
static int create_listener(int family, int *port);
static ipp_t *create_media_col(const char *media, const char *type,
int width, int length, int margins);
+static ipp_t *create_media_size(int width, int length);
static _ipp_printer_t *create_printer(const char *servername,
const char *name, const char *location,
const char *make, const char *model,
_ipp_job_t *job, /* I - Job */
cups_array_t *ra) /* I - requested-attributes */
{
- copy_attributes(client->response, job->attrs, ra, IPP_TAG_ZERO, 0);
+ copy_attributes(client->response, job->attrs, ra, IPP_TAG_JOB, 0);
if (!ra || cupsArrayFind(ra, "job-printer-up-time"))
ippAddInteger(client->response, IPP_TAG_JOB, IPP_TAG_INTEGER,
int margins) /* I - Value for margins */
{
ipp_t *media_col = ippNew(), /* media-col value */
- *media_size = ippNew(); /* media-size value */
+ *media_size = create_media_size(width, length);
+ /* media-size value */
char media_key[256]; /* media-key value */
- ippAddInteger(media_size, IPP_TAG_PRINTER, IPP_TAG_INTEGER, "x-dimension",
- width);
- ippAddInteger(media_size, IPP_TAG_PRINTER, IPP_TAG_INTEGER, "y-dimension",
- length);
-
snprintf(media_key, sizeof(media_key), "%s_%s%s", media, type,
margins == 0 ? "_borderless" : "");
}
+/*
+ * 'create_media_size()' - Create a media-size value.
+ */
+
+static ipp_t * /* O - media-col collection */
+create_media_size(int width, /* I - x-dimension in 2540ths */
+ int length) /* I - y-dimension in 2540ths */
+{
+ ipp_t *media_size = ippNew(); /* media-size value */
+
+
+ ippAddInteger(media_size, IPP_TAG_PRINTER, IPP_TAG_INTEGER, "x-dimension",
+ width);
+ ippAddInteger(media_size, IPP_TAG_PRINTER, IPP_TAG_INTEGER, "y-dimension",
+ length);
+
+ return (media_size);
+}
+
+
/*
* 'create_printer()' - Create, register, and listen for connections to a
* printer object.
*ptr; /* Pointer into string */
const char *prefix; /* Prefix string */
int num_database; /* Number of database values */
- ipp_attribute_t *media_col_database;
+ ipp_attribute_t *media_col_database,
/* media-col-database value */
+ *media_size_supported;
+ /* media-size-supported value */
ipp_t *media_col_default;
/* media-col-default value */
ipp_value_t *media_col_value;
IPP_QUALITY_NORMAL,
IPP_QUALITY_HIGH
};
- static const char * const referenced_uri_scheme_supported[] =
- { /* referenced-uri-scheme-supported */
+ static const char * const reference_uri_schemes_supported[] =
+ { /* reference-uri-schemes-supported */
"file",
+ "ftp",
"http"
#ifdef HAVE_SSL
, "https"
(int)(sizeof(media_supported) / sizeof(media_supported[0])),
NULL, media_supported);
+ /* media-size-supported */
+ media_size_supported = ippAddCollections(printer->attrs, IPP_TAG_PRINTER,
+ "media-size-supported",
+ (int)(sizeof(media_col_sizes) /
+ sizeof(media_col_sizes[0])),
+ NULL);
+ for (i = 0;
+ i < (int)(sizeof(media_col_sizes) / sizeof(media_col_sizes[0]));
+ i ++)
+ media_size_supported->values[i].collection =
+ create_media_size(media_col_sizes[i][0], media_col_sizes[i][1]);
+
/* media-top-margin-supported */
ippAddIntegers(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_INTEGER,
"media-top-margin-supported",
sizeof(media_xxx_margin_supported[0])),
media_xxx_margin_supported);
+ /* media-type-supported */
+ ippAddStrings(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD | IPP_TAG_COPY,
+ "media-type-supported",
+ (int)(sizeof(media_type_supported) /
+ sizeof(media_type_supported[0])),
+ NULL, media_type_supported);
+
/* multiple-document-handling-supported */
ippAddStrings(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD | IPP_TAG_COPY,
"multiple-document-handling-supported",
ippAddString(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_URI,
"printer-uri-supported", NULL, uri);
- /* referenced-uri-scheme-supported */
+ /* reference-uri-scheme-supported */
ippAddStrings(printer->attrs, IPP_TAG_PRINTER,
IPP_TAG_URISCHEME | IPP_TAG_COPY,
- "referenced-uri-scheme-supported",
- (int)(sizeof(referenced_uri_scheme_supported) /
- sizeof(referenced_uri_scheme_supported[0])),
- NULL, referenced_uri_scheme_supported);
+ "reference-uri-schemes-supported",
+ (int)(sizeof(reference_uri_schemes_supported) /
+ sizeof(reference_uri_schemes_supported[0])),
+ NULL, reference_uri_schemes_supported);
/* sides-default */
ippAddString(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD | IPP_TAG_COPY,
int num_displayed = 0; /* Number of displayed attributes */
char *displayed[200]; /* Displayed attributes */
size_t widths[200]; /* Width of columns */
+ cups_array_t *a; /* Duplicate attribute array */
/*
print_attr(attrptr, NULL);
}
- printf(" %-69.69s [", name);
+ printf(" %-68.68s [", name);
fflush(stdout);
}
strlen(attrptr->values[0].string.text) > 1023)))
prev_pass = pass = 0;
+ a = cupsArrayNew((cups_array_func_t)strcmp, NULL);
+
for (attrptr = response->attrs, group = attrptr->group_tag;
attrptr;
attrptr = attrptr->next)
{
- if (attrptr->group_tag < group && attrptr->group_tag != IPP_TAG_ZERO)
+ if (attrptr->group_tag != group)
{
- prev_pass = pass = 0;
- break;
+ cupsArrayClear(a);
+
+ switch (attrptr->group_tag)
+ {
+ case IPP_TAG_OPERATION :
+ prev_pass = pass = 0;
+ break;
+
+ case IPP_TAG_UNSUPPORTED_GROUP :
+ if (group != IPP_TAG_OPERATION)
+ prev_pass = pass = 0;
+ break;
+
+ case IPP_TAG_JOB :
+ case IPP_TAG_PRINTER :
+ if (group != IPP_TAG_OPERATION &&
+ group != IPP_TAG_UNSUPPORTED_GROUP)
+ prev_pass = pass = 0;
+ break;
+
+ case IPP_TAG_SUBSCRIPTION :
+ if (group > attrptr->group_tag &&
+ group != IPP_TAG_DOCUMENT)
+ prev_pass = pass = 0;
+ break;
+
+ default :
+ if (group > attrptr->group_tag)
+ prev_pass = pass = 0;
+ break;
+ }
+
+ if (!pass)
+ break;
+
+ group = attrptr->group_tag;
}
if (!validate_attr(attrptr, 0))
prev_pass = pass = 0;
break;
}
+
+ if (attrptr->name)
+ {
+ if (cupsArrayFind(a, attrptr->name))
+ {
+ prev_pass = pass = 0;
+ break;
+ }
+
+ cupsArrayAdd(a, attrptr->name);
+ }
}
+ cupsArrayDelete(a);
+
for (i = 0; i < num_statuses; i ++)
{
if (statuses[i].if_defined &&
if (i == num_statuses && num_statuses > 0)
prev_pass = pass = 0;
- else
+
+ for (i = num_expects, expect = expects; i > 0; i --, expect ++)
{
- for (i = num_expects, expect = expects; i > 0; i --, expect ++)
+ if (expect->if_defined && !get_variable(vars, expect->if_defined))
+ continue;
+
+ if (expect->if_not_defined &&
+ get_variable(vars, expect->if_not_defined))
+ continue;
+
+ found = ippFindAttribute(response, expect->name, IPP_TAG_ZERO);
+
+ if ((found && expect->not_expect) ||
+ (!found && !(expect->not_expect || expect->optional)) ||
+ (found && !expect_matches(expect, found->value_tag)) ||
+ (found && expect->in_group &&
+ found->group_tag != expect->in_group))
{
- if (expect->if_defined && !get_variable(vars, expect->if_defined))
- continue;
+ if (expect->define_no_match)
+ set_variable(vars, expect->define_no_match, "1");
+ else if (!expect->define_match && !expect->define_value)
+ prev_pass = pass = 0;
- if (expect->if_not_defined &&
- get_variable(vars, expect->if_not_defined))
- continue;
+ if (expect->repeat_no_match)
+ repeat_test = 1;
- found = ippFindAttribute(response, expect->name, IPP_TAG_ZERO);
+ continue;
+ }
- if ((found && expect->not_expect) ||
- (!found && !(expect->not_expect || expect->optional)) ||
- (found && !expect_matches(expect, found->value_tag)) ||
- (found && expect->in_group &&
- found->group_tag != expect->in_group))
- {
- if (expect->define_no_match)
- set_variable(vars, expect->define_no_match, "1");
- else if (!expect->define_match)
- prev_pass = pass = 0;
+ if (found)
+ _ippAttrString(found, buffer, sizeof(buffer));
- if (expect->repeat_no_match)
- repeat_test = 1;
+ if (found &&
+ !with_value(expect->with_value, expect->with_regex, found, 0,
+ buffer, sizeof(buffer)))
+ {
+ if (expect->define_no_match)
+ set_variable(vars, expect->define_no_match, "1");
+ else if (!expect->define_match && !expect->define_value)
+ prev_pass = pass = 0;
- continue;
- }
+ if (expect->repeat_no_match)
+ repeat_test = 1;
- if (found)
- _ippAttrString(found, buffer, sizeof(buffer));
+ continue;
+ }
- if (found &&
- !with_value(expect->with_value, expect->with_regex, found, 0,
- buffer, sizeof(buffer)))
- {
- if (expect->define_no_match)
- set_variable(vars, expect->define_no_match, "1");
- else if (!expect->define_match && !expect->define_value)
- prev_pass = pass = 0;
+ if (found && expect->count > 0 &&
+ found->num_values != expect->count)
+ {
+ if (expect->define_no_match)
+ set_variable(vars, expect->define_no_match, "1");
+ else if (!expect->define_match && !expect->define_value)
+ prev_pass = pass = 0;
- if (expect->repeat_no_match)
- repeat_test = 1;
+ if (expect->repeat_no_match)
+ repeat_test = 1;
- continue;
- }
+ continue;
+ }
+
+ if (found && expect->same_count_as)
+ {
+ attrptr = ippFindAttribute(response, expect->same_count_as,
+ IPP_TAG_ZERO);
- if (found && expect->count > 0 &&
- found->num_values != expect->count)
+ if (!attrptr || attrptr->num_values != found->num_values)
{
if (expect->define_no_match)
set_variable(vars, expect->define_no_match, "1");
else if (!expect->define_match && !expect->define_value)
prev_pass = pass = 0;
- if (expect->repeat_no_match)
- repeat_test = 1;
+ if (expect->repeat_no_match)
+ repeat_test = 1;
continue;
}
+ }
- if (found && expect->same_count_as)
- {
- attrptr = ippFindAttribute(response, expect->same_count_as,
- IPP_TAG_ZERO);
-
- if (!attrptr || attrptr->num_values != found->num_values)
- {
- if (expect->define_no_match)
- set_variable(vars, expect->define_no_match, "1");
- else if (!expect->define_match && !expect->define_value)
- prev_pass = pass = 0;
-
- if (expect->repeat_no_match)
- repeat_test = 1;
-
- continue;
- }
- }
-
- if (found && expect->define_match)
- set_variable(vars, expect->define_match, "1");
+ if (found && expect->define_match)
+ set_variable(vars, expect->define_match, "1");
- if (found && expect->define_value)
- set_variable(vars, expect->define_value, buffer);
+ if (found && expect->define_value)
+ set_variable(vars, expect->define_value, buffer);
- if (found && expect->repeat_match)
- repeat_test = 1;
- }
+ if (found && expect->repeat_match)
+ repeat_test = 1;
}
}
else if (!prev_pass)
fprintf(stderr, "%s\n", cupsLastErrorString());
- if (prev_pass && Output != _CUPS_OUTPUT_PLIST &&
- Output != _CUPS_OUTPUT_QUIET && !Verbosity && num_displayed > 0)
+ if (prev_pass && Output >= _CUPS_OUTPUT_LIST && !Verbosity &&
+ num_displayed > 0)
{
- if (Output >= _CUPS_OUTPUT_LIST)
+ size_t width; /* Length of value */
+
+ for (i = 0; i < num_displayed; i ++)
{
- size_t width; /* Length of value */
+ widths[i] = strlen(displayed[i]);
+ for (attrptr = ippFindAttribute(response, displayed[i], IPP_TAG_ZERO);
+ attrptr;
+ attrptr = ippFindNextAttribute(response, displayed[i],
+ IPP_TAG_ZERO))
+ {
+ width = _ippAttrString(attrptr, NULL, 0);
+ if (width > widths[i])
+ widths[i] = width;
+ }
+ }
- for (i = 0; i < num_displayed; i ++)
- {
- widths[i] = strlen(displayed[i]);
+ if (Output == _CUPS_OUTPUT_CSV)
+ print_csv(NULL, num_displayed, displayed, widths);
+ else
+ print_line(NULL, num_displayed, displayed, widths);
- for (attrptr = ippFindAttribute(response, displayed[i], IPP_TAG_ZERO);
- attrptr;
- attrptr = ippFindNextAttribute(response, displayed[i],
- IPP_TAG_ZERO))
- {
- width = _ippAttrString(attrptr, NULL, 0);
- if (width > widths[i])
- widths[i] = width;
- }
- }
+ attrptr = response->attrs;
- if (Output == _CUPS_OUTPUT_CSV)
- print_csv(NULL, num_displayed, displayed, widths);
- else
- print_line(NULL, num_displayed, displayed, widths);
+ while (attrptr)
+ {
+ while (attrptr && attrptr->group_tag <= IPP_TAG_OPERATION)
+ attrptr = attrptr->next;
- attrptr = response->attrs;
+ if (attrptr)
+ {
+ if (Output == _CUPS_OUTPUT_CSV)
+ print_csv(attrptr, num_displayed, displayed, widths);
+ else
+ print_line(attrptr, num_displayed, displayed, widths);
- while (attrptr)
- {
- while (attrptr && attrptr->group_tag <= IPP_TAG_OPERATION)
+ while (attrptr && attrptr->group_tag > IPP_TAG_OPERATION)
attrptr = attrptr->next;
-
- if (attrptr)
- {
- if (Output == _CUPS_OUTPUT_CSV)
- print_csv(attrptr, num_displayed, displayed, widths);
- else
- print_line(attrptr, num_displayed, displayed, widths);
-
- while (attrptr && attrptr->group_tag > IPP_TAG_OPERATION)
- attrptr = attrptr->next;
- }
- }
- }
- else
- {
- for (attrptr = response->attrs;
- attrptr != NULL;
- attrptr = attrptr->next)
- {
- if (attrptr->name)
- {
- for (i = 0; i < num_displayed; i ++)
- {
- if (!strcmp(displayed[i], attrptr->name))
- {
- print_attr(attrptr, NULL);
- break;
- }
- }
- }
}
}
}
(int)strlen(attrptr->values[0].string.text));
}
+ a = cupsArrayNew((cups_array_func_t)strcmp, NULL);
+
for (attrptr = response->attrs, group = attrptr->group_tag;
attrptr;
attrptr = attrptr->next)
{
- if (attrptr->group_tag < group && attrptr->group_tag != IPP_TAG_ZERO)
- print_test_error("Attribute groups out of order (%s < %s)",
- ippTagString(attrptr->group_tag),
- ippTagString(group));
+ if (attrptr->group_tag != group)
+ {
+ cupsArrayClear(a);
+
+ switch (attrptr->group_tag)
+ {
+ case IPP_TAG_OPERATION :
+ prev_pass = pass = 0;
+ break;
+
+ case IPP_TAG_UNSUPPORTED_GROUP :
+ if (group != IPP_TAG_OPERATION)
+ print_test_error("Attribute groups out of order (%s < %s)",
+ ippTagString(attrptr->group_tag),
+ ippTagString(group));
+ break;
+
+ case IPP_TAG_JOB :
+ case IPP_TAG_PRINTER :
+ if (group != IPP_TAG_OPERATION &&
+ group != IPP_TAG_UNSUPPORTED_GROUP)
+ print_test_error("Attribute groups out of order (%s < %s)",
+ ippTagString(attrptr->group_tag),
+ ippTagString(group));
+ break;
+
+ case IPP_TAG_SUBSCRIPTION :
+ if (group > attrptr->group_tag &&
+ group != IPP_TAG_DOCUMENT)
+ print_test_error("Attribute groups out of order (%s < %s)",
+ ippTagString(attrptr->group_tag),
+ ippTagString(group));
+ break;
+
+ default :
+ if (group > attrptr->group_tag)
+ print_test_error("Attribute groups out of order (%s < %s)",
+ ippTagString(attrptr->group_tag),
+ ippTagString(group));
+ break;
+ }
+
+ group = attrptr->group_tag;
+ }
validate_attr(attrptr, 1);
+
+ if (attrptr->name)
+ {
+ if (cupsArrayFind(a, attrptr->name))
+ print_test_error("Duplicate \"%s\" attribute in %s group",
+ attrptr->name, ippTagString(group));
+
+ cupsArrayAdd(a, attrptr->name);
+ }
}
+ cupsArrayDelete(a);
+
for (i = 0; i < num_statuses; i ++)
{
if (statuses[i].if_defined &&
puts("</array>");
}
+ if (num_displayed > 0 && !Verbosity &&
+ (Output == _CUPS_OUTPUT_TEST || Output == _CUPS_OUTPUT_PLIST))
+ {
+ for (attrptr = response->attrs;
+ attrptr != NULL;
+ attrptr = attrptr->next)
+ {
+ if (attrptr->name)
+ {
+ for (i = 0; i < num_displayed; i ++)
+ {
+ if (!strcmp(displayed[i], attrptr->name))
+ {
+ print_attr(attrptr, NULL);
+ break;
+ }
+ }
+ }
+ }
+ }
+
skip_error:
if (Output == _CUPS_OUTPUT_PLIST)
puts("</dict>");
+ fflush(stdout);
+
ippDelete(response);
response = NULL;
valptr = value;
- if (!strncmp(valptr, "no-value,", 9))
- valptr += 9;
while (isspace(*valptr & 255) || isdigit(*valptr & 255) ||
*valptr == '-' || *valptr == ',' || *valptr == '<' ||
valptr = value;
- if (!strncmp(valptr, "no-value,", 9))
- valptr += 9;
while (isspace(*valptr & 255) || isdigit(*valptr & 255) ||
*valptr == '-' || *valptr == ',' || *valptr == '<' ||
break;
case IPP_TAG_NOVALUE :
- if (!strcmp(value, "no-value") || !strncmp(value, "no-value,", 9))
- {
- strlcpy(matchbuf, "no-value", matchlen);
- return (1);
- }
- else
- return (0);
+ case IPP_TAG_UNKNOWN :
+ return (1);
case IPP_TAG_CHARSET :
case IPP_TAG_KEYWORD :
7263EE3913330EC500BA4D44 /* libldap.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libldap.dylib; path = SDKs/MacOSX10.6.sdk/usr/lib/libldap.dylib; sourceTree = DEVELOPER_DIR; };
726AD6F7135E88F0002C930D /* ippserver */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = ippserver; sourceTree = BUILT_PRODUCTS_DIR; };
726AD701135E8A90002C930D /* ippserver.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ippserver.c; path = ../test/ippserver.c; sourceTree = "<group>"; };
- 7271881613746EA8001A2036 /* bannertops.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bannertops.c; path = ../filter/bannertops.c; sourceTree = "<group>"; };
7271881713746EA8001A2036 /* commandtops.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = commandtops.c; path = ../filter/commandtops.c; sourceTree = "<group>"; };
7271881813746EA8001A2036 /* common.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = common.c; path = ../filter/common.c; sourceTree = "<group>"; };
7271881913746EA8001A2036 /* common.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = common.h; path = ../filter/common.h; sourceTree = "<group>"; };
7271881A13746EA8001A2036 /* gziptoany.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = gziptoany.c; path = ../filter/gziptoany.c; sourceTree = "<group>"; };
- 7271881B13746EA8001A2036 /* imagetops.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = imagetops.c; path = ../filter/imagetops.c; sourceTree = "<group>"; };
- 7271881C13746EA8001A2036 /* imagetoraster.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = imagetoraster.c; path = ../filter/imagetoraster.c; sourceTree = "<group>"; };
- 7271881D13746EA8001A2036 /* pdftops.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pdftops.c; path = ../filter/pdftops.c; sourceTree = "<group>"; };
- 7271881E13746EA8001A2036 /* pstext.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pstext.c; path = ../filter/pstext.c; sourceTree = "<group>"; };
- 7271881F13746EA8001A2036 /* pstext.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = pstext.h; path = ../filter/pstext.h; sourceTree = "<group>"; };
7271882013746EA8001A2036 /* pstops.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pstops.c; path = ../filter/pstops.c; sourceTree = "<group>"; };
7271882113746EA8001A2036 /* rastertoepson.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = rastertoepson.c; path = ../filter/rastertoepson.c; sourceTree = "<group>"; };
7271882213746EA8001A2036 /* rastertohp.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = rastertohp.c; path = ../filter/rastertohp.c; sourceTree = "<group>"; };
7271882313746EA8001A2036 /* rastertolabel.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = rastertolabel.c; path = ../filter/rastertolabel.c; sourceTree = "<group>"; };
- 7271882413746EA8001A2036 /* textcommon.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = textcommon.c; path = ../filter/textcommon.c; sourceTree = "<group>"; };
- 7271882513746EA8001A2036 /* textcommon.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = textcommon.h; path = ../filter/textcommon.h; sourceTree = "<group>"; };
- 7271882613746EA8001A2036 /* texttops.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = texttops.c; path = ../filter/texttops.c; sourceTree = "<group>"; };
- 7271882B137498E4001A2036 /* image-bmp.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "image-bmp.c"; path = "../filter/image-bmp.c"; sourceTree = "<group>"; };
- 7271882C137498E4001A2036 /* image-colorspace.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "image-colorspace.c"; path = "../filter/image-colorspace.c"; sourceTree = "<group>"; };
- 7271882D137498E4001A2036 /* image-gif.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "image-gif.c"; path = "../filter/image-gif.c"; sourceTree = "<group>"; };
- 7271882E137498E4001A2036 /* image-jpeg.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "image-jpeg.c"; path = "../filter/image-jpeg.c"; sourceTree = "<group>"; };
- 7271882F137498E4001A2036 /* image-photocd.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "image-photocd.c"; path = "../filter/image-photocd.c"; sourceTree = "<group>"; };
- 72718830137498E4001A2036 /* image-pix.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "image-pix.c"; path = "../filter/image-pix.c"; sourceTree = "<group>"; };
- 72718831137498E4001A2036 /* image-png.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "image-png.c"; path = "../filter/image-png.c"; sourceTree = "<group>"; };
- 72718832137498E4001A2036 /* image-pnm.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "image-pnm.c"; path = "../filter/image-pnm.c"; sourceTree = "<group>"; };
- 72718833137498E4001A2036 /* image-private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "image-private.h"; path = "../filter/image-private.h"; sourceTree = "<group>"; };
- 72718834137498E4001A2036 /* image-sgi.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "image-sgi.c"; path = "../filter/image-sgi.c"; sourceTree = "<group>"; };
- 72718835137498E4001A2036 /* image-sgi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "image-sgi.h"; path = "../filter/image-sgi.h"; sourceTree = "<group>"; };
- 72718836137498E4001A2036 /* image-sgilib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "image-sgilib.c"; path = "../filter/image-sgilib.c"; sourceTree = "<group>"; };
- 72718837137498E4001A2036 /* image-sun.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "image-sun.c"; path = "../filter/image-sun.c"; sourceTree = "<group>"; };
- 72718838137498E4001A2036 /* image-tiff.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "image-tiff.c"; path = "../filter/image-tiff.c"; sourceTree = "<group>"; };
- 72718839137498E4001A2036 /* image-zoom.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "image-zoom.c"; path = "../filter/image-zoom.c"; sourceTree = "<group>"; };
- 7271883A137498E4001A2036 /* image.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = image.c; path = ../filter/image.c; sourceTree = "<group>"; };
- 7271883B137498E4001A2036 /* image.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = image.h; path = ../filter/image.h; sourceTree = "<group>"; };
7271883C1374AB14001A2036 /* mime-private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "mime-private.h"; path = "../scheduler/mime-private.h"; sourceTree = "<group>"; };
72C16CB8137B195D007E4BF4 /* file.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = file.c; path = ../scheduler/file.c; sourceTree = SOURCE_ROOT; };
72F75A4C1336F31B004BB496 /* libcups_static.a */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libcups_static.a; sourceTree = BUILT_PRODUCTS_DIR; };
7258EADC134594A8009286F1 /* filters */ = {
isa = PBXGroup;
children = (
- 7271881613746EA8001A2036 /* bannertops.c */,
7271881713746EA8001A2036 /* commandtops.c */,
7271881813746EA8001A2036 /* common.c */,
7271881913746EA8001A2036 /* common.h */,
7271881A13746EA8001A2036 /* gziptoany.c */,
- 7271881B13746EA8001A2036 /* imagetops.c */,
- 7271881C13746EA8001A2036 /* imagetoraster.c */,
- 7271881D13746EA8001A2036 /* pdftops.c */,
- 7271881E13746EA8001A2036 /* pstext.c */,
- 7271881F13746EA8001A2036 /* pstext.h */,
7271882013746EA8001A2036 /* pstops.c */,
7271882113746EA8001A2036 /* rastertoepson.c */,
7271882213746EA8001A2036 /* rastertohp.c */,
7271882313746EA8001A2036 /* rastertolabel.c */,
7258EAEC134594EB009286F1 /* rastertopwg.c */,
- 7271882413746EA8001A2036 /* textcommon.c */,
- 7271882513746EA8001A2036 /* textcommon.h */,
- 7271882613746EA8001A2036 /* texttops.c */,
);
name = filters;
sourceTree = "<group>";
};
- 7271882A1374988C001A2036 /* Unused */ = {
- isa = PBXGroup;
- children = (
- 7271882B137498E4001A2036 /* image-bmp.c */,
- 7271882C137498E4001A2036 /* image-colorspace.c */,
- 7271882D137498E4001A2036 /* image-gif.c */,
- 7271882E137498E4001A2036 /* image-jpeg.c */,
- 7271882F137498E4001A2036 /* image-photocd.c */,
- 72718830137498E4001A2036 /* image-pix.c */,
- 72718831137498E4001A2036 /* image-png.c */,
- 72718832137498E4001A2036 /* image-pnm.c */,
- 72718833137498E4001A2036 /* image-private.h */,
- 72718834137498E4001A2036 /* image-sgi.c */,
- 72718835137498E4001A2036 /* image-sgi.h */,
- 72718836137498E4001A2036 /* image-sgilib.c */,
- 72718837137498E4001A2036 /* image-sun.c */,
- 72718838137498E4001A2036 /* image-tiff.c */,
- 72718839137498E4001A2036 /* image-zoom.c */,
- 7271883A137498E4001A2036 /* image.c */,
- 7271883B137498E4001A2036 /* image.h */,
- );
- name = Unused;
- sourceTree = "<group>";
- };
72BF96351333042100B1EAD7 = {
isa = PBXGroup;
children = (
72F75A681336FA42004BB496 /* libcupsimage */ = {
isa = PBXGroup;
children = (
- 7271882A1374988C001A2036 /* Unused */,
72F75A691336FA8A004BB496 /* error.c */,
72F75A6A1336FA8A004BB496 /* interpret.c */,
72F75A6B1336FA8A004BB496 /* raster.c */,
72BF96371333042100B1EAD7 /* Project object */ = {
isa = PBXProject;
attributes = {
- LastUpgradeCheck = 0410;
+ LastUpgradeCheck = 0420;
ORGANIZATIONNAME = "Apple Inc.";
};
buildConfigurationList = 72BF963A1333042100B1EAD7 /* Build configuration list for PBXProject "CUPS" */;