[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