[prev in list] [next in list] [prev in thread] [next in thread]
List: cups-commit
Subject: [cups.commit] [CUPS] r10031 - in branches/branch-1.5: . cups test
From: cups-dev () easysw ! com
Date: 2011-09-30 5:24:11
Message-ID: 10803-cups.commit () news ! easysw ! com
[Download RAW message or body]
Author: mike
Date: 2011-09-29 22:24:10 -0700 (Thu, 29 Sep 2011)
New Revision: 10031
Log:
Mirror changes from trunk.
Modified:
branches/branch-1.5/CHANGES.txt
branches/branch-1.5/cups/http.c
branches/branch-1.5/cups/ipp-support.c
branches/branch-1.5/cups/ipp.h
branches/branch-1.5/test/ipp-1.1.test
branches/branch-1.5/test/ipp-2.0.test
branches/branch-1.5/test/ipp-2.2.test
branches/branch-1.5/test/ippserver.c
branches/branch-1.5/test/ipptool.c
Modified: branches/branch-1.5/CHANGES.txt
===================================================================
--- branches/branch-1.5/CHANGES.txt 2011-09-30 03:39:35 UTC (rev 10030)
+++ branches/branch-1.5/CHANGES.txt 2011-09-30 05:24:10 UTC (rev 10031)
@@ -1,15 +1,17 @@
-CHANGES.txt - 2011-09-20
+CHANGES.txt - 2011-09-30
------------------------
CHANGES IN CUPS V1.5.1
- Documentation updates (STR #3885)
+ - 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-
Modified: branches/branch-1.5/cups/http.c
===================================================================
--- branches/branch-1.5/cups/http.c 2011-09-30 03:39:35 UTC (rev 10030)
+++ branches/branch-1.5/cups/http.c 2011-09-30 05:24:10 UTC (rev 10031)
@@ -167,8 +167,10 @@
# 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);
Modified: branches/branch-1.5/cups/ipp-support.c
===================================================================
--- branches/branch-1.5/cups/ipp-support.c 2011-09-30 03:39:35 UTC (rev 10030)
+++ branches/branch-1.5/cups/ipp-support.c 2011-09-30 05:24:10 UTC (rev 10031)
@@ -100,8 +100,8 @@
static char * const ipp_std_ops[] =
{
/* 0x0000 - 0x000f */
- "unknown-00",
- "unknown-01",
+ "0x00",
+ "0x01",
"Print-Job",
"Print-URI",
"Validate-Job",
@@ -115,7 +115,7 @@
"Hold-Job",
"Release-Job",
"Restart-Job",
- "unknown-0f",
+ "0x0f",
/* 0x0010 - 0x001f */
"Pause-Printer",
@@ -132,11 +132,11 @@
"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",
@@ -156,7 +156,7 @@
/* 0x0030 - 0x003b */
"Promote-Job",
"Schedule-Job-After",
- "unknown-32",
+ "0x32",
"Cancel-Document",
"Get-Document-Attributes",
"Get-Documents",
@@ -206,46 +206,47 @@
/* 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 */
@@ -254,18 +255,18 @@
"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 */
@@ -556,10 +557,10 @@
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);
}
@@ -629,7 +630,7 @@
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);
Modified: branches/branch-1.5/cups/ipp.h
===================================================================
--- branches/branch-1.5/cups/ipp.h 2011-09-30 03:39:35 UTC (rev 10030)
+++ branches/branch-1.5/cups/ipp.h 2011-09-30 05:24:10 UTC (rev 10031)
@@ -73,6 +73,7 @@
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 */
Modified: branches/branch-1.5/test/ipp-1.1.test
===================================================================
--- branches/branch-1.5/test/ipp-1.1.test 2011-09-30 03:39:35 UTC (rev 10030)
+++ branches/branch-1.5/test/ipp-1.1.test 2011-09-30 05:24:10 UTC (rev 10031)
@@ -204,21 +204,42 @@
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 ?copies-supported OF-TYPE rangeOfInteger IN-GROUP \
printer-attributes-tag @@ -226,6 +247,8 @@
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 @@ -281,6 \
+304,8 @@ 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 @@ -299,24 +324,6 @@
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 }
Modified: branches/branch-1.5/test/ipp-2.0.test
===================================================================
--- branches/branch-1.5/test/ipp-2.0.test 2011-09-30 03:39:35 UTC (rev 10030)
+++ branches/branch-1.5/test/ipp-2.0.test 2011-09-30 05:24:10 UTC (rev 10031)
@@ -51,6 +51,7 @@
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-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-supported OF-TYPE \
enum IN-GROUP printer-attributes-tag WITH-VALUE 3,4,5,6 @@ -63,6 +64,40 @@
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 begCollection \
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
Modified: branches/branch-1.5/test/ipp-2.2.test
===================================================================
--- branches/branch-1.5/test/ipp-2.2.test 2011-09-30 03:39:35 UTC (rev 10030)
+++ branches/branch-1.5/test/ipp-2.2.test 2011-09-30 05:24:10 UTC (rev 10031)
@@ -46,6 +46,8 @@
# 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
Modified: branches/branch-1.5/test/ippserver.c
===================================================================
--- branches/branch-1.5/test/ippserver.c 2011-09-30 03:39:35 UTC (rev 10030)
+++ branches/branch-1.5/test/ippserver.c 2011-09-30 05:24:10 UTC (rev 10031)
@@ -265,6 +265,7 @@
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,
@@ -803,7 +804,7 @@
_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,
@@ -1124,15 +1125,11 @@
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" : "");
@@ -1157,6 +1154,26 @@
/*
+ * '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.
*/
@@ -1192,8 +1209,10 @@
*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;
@@ -1275,9 +1294,10 @@
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"
@@ -1624,6 +1644,18 @@
(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",
@@ -1631,6 +1663,13 @@
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",
@@ -1742,13 +1781,13 @@
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,
Modified: branches/branch-1.5/test/ipptool.c
===================================================================
--- branches/branch-1.5/test/ipptool.c 2011-09-30 03:39:35 UTC (rev 10030)
+++ branches/branch-1.5/test/ipptool.c 2011-09-30 05:24:10 UTC (rev 10031)
@@ -744,6 +744,7 @@
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 */
/*
@@ -2324,14 +2325,50 @@
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))
@@ -2339,8 +2376,21 @@
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 &&
@@ -2705,18 +2755,71 @@
(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 &&
@@ -2832,6 +2935,8 @@
if (Output == _CUPS_OUTPUT_PLIST)
puts("</dict>");
+ fflush(stdout);
+
ippDelete(response);
response = NULL;
_______________________________________________
cups-commit mailing list
cups-commit@easysw.com
http://lists.easysw.com/mailman/listinfo/cups-commit
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic