4 .\" ipptoolfile man page for CUPS.
6 .\" Copyright 2010-2014 by Apple Inc.
8 .\" These coded instructions, statements, and computer programs are the
9 .\" property of Apple Inc. and are protected by Federal copyright
10 .\" law. Distribution and use rights are outlined in the file "LICENSE.txt"
11 .\" which should have been included with this file. If this file is
12 .\" file is missing or damaged, see the license at "http://www.cups.org/".
14 .TH ipptoolfile 5 "CUPS" "9 April 2014" "Apple Inc."
16 ipptoolfile \- ipptool file format
20 program accepts free-form plain text files that describe one or more IPP requests. Comments start with the "#" character and continue to the end of the line. Each request is enclosed by curly braces, for example:
25 # The name of the test
26 NAME "Print PostScript File"
30 GROUP operation\-attributes\-tag
31 ATTR charset attributes\-charset utf\-8
32 ATTR language attributes\-natural\-language en
33 ATTR uri printer\-uri $uri
34 ATTR name requesting\-user\-name $user
37 # The response to expect
39 EXPECT job\-id OF\-TYPE integer WITH\-VALUE >0
40 EXPECT job\-uri OF\-TYPE uri
43 # The name of the test
44 NAME "Get Attributes of PostScript Job"
47 OPERATION Get\-Job\-Attributes
48 GROUP operation\-attributes\-tag
49 ATTR charset attributes\-charset utf\-8
50 ATTR language attributes\-natural\-language en
51 ATTR uri printer\-uri $uri
52 ATTR integer job\-id $job\-id
53 ATTR name requesting\-user\-name $user
55 # The response to expect
57 EXPECT job\-id OF\-TYPE integer WITH\-VALUE $job\-id
58 EXPECT job\-uri OF\-TYPE uri
59 EXPECT job\-state OF\-TYPE enum WITH\-VALUE 3,4,5,6,7,8,9
60 EXPECT job\-originating\-user\-name OF\-TYPE name WITH\-VALUE "$user"
63 .SS TOP-LEVEL DIRECTIVES
64 The following directives can be used outside of a \fItest\fR:
69 \fBDEFINE \fIvariable-name value\fR
70 Defines the named variable to the given value. This is equivalent to specifying \fI\-d variable-name=value\fR on the
74 \fBDEFINE\-DEFAULT \fIvariable-name value\fR
75 Defines the named variable to the given value if it does not already have a value.
77 \fBFILE\-ID "\fIidentifier\fB"\fR
78 Specifies an identifier string for the current file.
80 \fBIGNORE\-ERRORS yes\fR
82 \fBIGNORE\-ERRORS no\fR
83 Specifies whether, by default,
85 will ignore errors and continue with subsequent tests.
87 \fBINCLUDE "\fIfilename\fB"\fR
89 \fBINCLUDE <\fIfilename\fB>\fR
90 Includes another test file. The first form includes a file relative to the current test file, while the second form includes a file from the
94 \fBINCLUDE\-IF\-DEFINED \fIname \fB"\fIfilename\fB"\fR
96 \fBINCLUDE\-IF\-DEFINED \fIname \fB<\fIfilename\fB>\fR
97 Includes another test file if the named variable is defined. The first form includes a file relative to the current test file, while the second form includes a file from the
101 \fBINCLUDE\-IF\-NOT\-DEFINED \fIname \fB"\fIfilename\fB"\fR
103 \fBINCLUDE\-IF\-NOT\-DEFINED \fIname \fB<\fIfilename\fB>\fR
104 Includes another test file if the named variable is not defined. The first form includes a file relative to the current test file, while the second form includes a file from the
108 \fBSKIP\-IF\-DEFINED \fIvariable-name\fR
110 \fBSKIP\-IF\-NOT\-DEFINED \fIvariable-name\fR
111 Specifies that the remainder of the test file should be skipped when the variable is or is not defined.
113 \fBSTOP\-AFTER\-INCLUDE\-ERROR no\fR
115 \fBSTOP\-AFTER\-INCLUDE\-ERROR yes\fR
116 Specifies whether tests will be stopped after an error in an included file.
119 Specifies that tests will, by default, use "Transfer-Encoding: chunked" for requests with attached files and "Content-Length:" for requests without attached files.
121 \fBTRANSFER chunked\fR
122 Specifies that tests will, by default, use the HTTP/1.1 "Transfer-Encoding: chunked" header. This is the default and is equivalent to specifying \fI\-c\fR on the
124 command-line. Support for chunked requests is required for conformance with all versions of IPP.
126 \fBTRANSFER length\fR
127 Specifies that tests will, by default, use the HTTP/1.0 "Content-Length:" header. This is equivalent to specifying \fI\-l\fR on the
129 command-line. Support for content length requests is required for conformance with all versions of IPP.
140 Specifies the default IPP version number to use for the tests that follow.
142 The following directives are understood within a \fItest\fR:
144 \fBATTR \fItag attribute-name value(s)\fR
145 Adds an attribute to the test request. Values are separated by the comma (",") character - escape commas using the "\" character. Common attributes and values are listed in the IANA IPP registry - see references below.
147 \fBATTR collection \fIattribute-name \fB{ MEMBER \fItag member-name value(s) ... \fB}\fR [ \fI... \fB,{ \fI... \fB} \fR]
148 Adds a collection attribute to the test request. Member attributes follow the same syntax as regular attributes and can themselves be nested collections. Multiple collection values can be supplied as needed, separated by commas.
150 \fBCOMPRESSION deflate\fR
152 \fBCOMPRESSION gzip\fR
154 \fBCOMPRESSION none\fR
155 Uses the specified compression on the document data following the attributes in a Print-Job or Send-Document request.
157 \fBDELAY \fIseconds\fR
158 Specifies a delay before this test will be run.
160 \fBDISPLAY \fIattribute-name\fR
161 Specifies that value of the named attribute should be output as part of the
164 \fBEXPECT \fIattribute-name \fR[ \fIpredicate(s) \fR]
166 \fBEXPECT ?\fIattribute-name predicate(s)\fR
168 \fBEXPECT !\fIattribute-name\fR
169 Specifies that the response must/may/must not include the named attribute. Additional requirements can be added as predicates - see the "EXPECT PREDICATES" section for more information on predicates. Attribute names can specify member attributes by separating the attribute and member names with the forward slash, for example "media\-col/media\-size/x\-dimension".
172 Specifies a file to include at the end of the request. This is typically used when sending a test print file.
175 Specifies the group tag for subsequent attributes in the request.
177 \fBIGNORE\-ERRORS yes\fR
179 \fBIGNORE\-ERRORS no\fR
182 will ignore errors and continue with subsequent tests.
184 \fBNAME "\fIliteral string\fB"\fR
185 Specifies the human-readable name of the test.
187 \fBOPERATION \fIoperation-code\fR
188 Specifies the operation to be performed.
190 \fBREQUEST\-ID \fInumber\fR\fR
192 \fBREQUEST\-ID random\fR
193 Specifies the request-id value to use in the request, either an integer or the word "random" to use a randomly generated value (the default).
195 \fBRESOURCE \fIpath\fR
196 Specifies an alternate resource path that is used for the HTTP POST request. The default is the resource from the URI provided to the
200 \fBSKIP\-IF\-DEFINED \fIvariable-name\fR
202 \fBSKIP\-IF\-NOT\-DEFINED \fIvariable-name\fR
203 Specifies that the current test should be skipped when the variable is or is not defined.
205 \fBSKIP\-PREVIOUS\-ERROR yes\fR
207 \fBSKIP\-PREVIOUS\-ERROR no\fR
210 will skip the current test if the previous test resulted in an error/failure.
212 \fBSTATUS \fIstatus-code \fR[ \fIpredicate\fR ]
213 Specifies an expected response status-code value. Additional requirements can be added as predicates - see the "STATUS PREDICATES" section for more information on predicates.
215 \fBTEST\-ID "\fIidentifier\fR"
216 Specifies an identifier string for the current test.
219 Specifies that this test will use "Transfer-Encoding: chunked" if it has an attached file or "Content-Length:" otherwise.
221 \fBTRANSFER chunked\fR
222 Specifies that this test will use the HTTP/1.1 "Transfer-Encoding: chunked" header.
224 \fBTRANSFER length\fR
225 Specifies that this test will use the HTTP/1.0 "Content-Length:" header.
236 Specifies the IPP version number to use for this test.
237 .SS EXPECT PREDICATES
238 The following predicates are understood following the \fBEXPECT\fR test directive:
240 \fBCOUNT \fInumber\fR
241 Requires the \fBEXPECT\fR attribute to have the specified number of values.
243 \fBDEFINE\-MATCH \fIvariable-name\fR
244 Defines the variable to "1" when the \fBEXPECT\fR condition matches. A side-effect of this predicate is that this \fBEXPECT\fR will never fail a test.
246 \fBDEFINE\-NO\-MATCH \fIvariable-name\fR
247 Defines the variable to "1" when the \fBEXPECT\fR condition does not match. A side-effect of this predicate is that this \fBEXPECT\fR will never fail a test.
249 \fBDEFINE\-VALUE \fIvariable-name\fR
250 Defines the variable to the value of the attribute when the \fBEXPECT\fR condition matches. A side-effect of this predicate is that this \fBEXPECT\fR will never fail a test.
252 \fBIF\-DEFINED \fIvariable-name\fR
253 Makes the \fBEXPECT\fR conditions apply only if the specified variable is defined.
255 \fBIF\-NOT\-DEFINED \fIvariable-name\fR
256 Makes the \fBEXPECT\fR conditions apply only if the specified variable is not defined.
258 \fBIN\-GROUP \fItag\fR
259 Requires the \fBEXPECT\fR attribute to be in the specified group tag.
261 \fBOF\-TYPE \fItag[,tag,...]\fR
262 Requires the \fBEXPECT\fR attribute to use one of the specified value tag(s).
264 \fBREPEAT\-LIMIT \fInumber\fR
266 Specifies the maximum number of times to repeat if the \fBREPEAT-MATCH\fR or \fBREPEAT-NO-MATCH\fR predicate is specified. The default value is 1000.
270 \fBREPEAT\-NO\-MATCH\fR
271 Specifies that the current test should be repeated when the \fBEXPECT\fR condition matches or does not match.
273 \fBSAME\-COUNT\-AS \fIattribute-name\fR
274 Requires the \fBEXPECT\fR attribute to have the same number of values as the specified parallel attribute.
276 \fBWITH\-ALL\-HOSTNAMES "\fIliteral string\fB"\fR
278 \fBWITH\-ALL\-HOSTNAMES "/\fIregular expression\fB/"\fR
279 Requires that all URI values contain a matching hostname.
281 \fBWITH\-ALL\-RESOURCES "\fIliteral string\fB"\fR
283 \fBWITH\-ALL\-RESOURCES "/\fIregular expression\fB/"\fR
284 Requires that all URI values contain a matching resource (including leading /).
286 \fBWITH\-ALL\-SCHEMES "\fIliteral string\fB"\fR
288 \fBWITH\-ALL-SCHEMES "/\fIregular expression\fB/"\fR
289 Requires that all URI values contain a matching scheme.
291 \fBWITH\-ALL\-VALUES "\fIliteral string\fB"\fR
292 Requires that all values of the \fBEXPECT\fR attribute match the literal string. Comparisons are case-sensitive.
294 \fBWITH\-ALL\-VALUES <\fInumber\fR
296 \fBWITH\-ALL\-VALUES =\fInumber\fR
298 \fBWITH\-ALL\-VALUES >\fInumber\fR
300 \fBWITH\-ALL\-VALUES \fInumber\fR[\fI,...,number\fR]
301 Requires that all values of the \fBEXPECT\fR attribute match the number(s) or numeric comparison. When comparing rangeOfInteger values, the "<" and ">" operators only check the upper bound of the range.
303 \fBWITH\-ALL\-VALUES "false"\fR
305 \fBWITH\-ALL\-VALUES "true"\fR
306 Requires that all values of the \fBEXPECT\fR attribute match the boolean value given.
308 \fBWITH\-ALL\-VALUES "/\fIregular expression\fB/"\fR
309 Requires that all values of the \fBEXPECT\fR attribute match the regular expression, which must conform to the POSIX regular expression syntax. Comparisons are case-sensitive.
311 \fBWITH\-HOSTNAME "\fIliteral string\fB"\fR
313 \fBWITH\-HOSTNAME "/\fIregular expression\fB/"\fR
314 Requires that at least one URI value contains a matching hostname.
316 \fBWITH\-RESOURCE "\fIliteral string\fB"\fR
318 \fBWITH\-RESOURCE "/\fIregular expression\fB/"\fR
319 Requires that at least one URI value contains a matching resource (including leading /).
321 \fBWITH\-SCHEME "\fIliteral string\fB"\fR
323 \fBWITH\-SCHEME "/\fIregular expression\fB/"\fR
324 Requires that at least one URI value contains a matching scheme.
326 \fBWITH\-VALUE "\fIliteral string\fB"\fR
327 Requires that at least one value of the \fBEXPECT\fR attribute matches the literal string. Comparisons are case-sensitive.
329 \fBWITH\-VALUE <\fInumber\fR
331 \fBWITH\-VALUE =\fInumber\fR
333 \fBWITH\-VALUE >\fInumber\fR
335 \fBWITH\-VALUE \fInumber\fR[\fI,...,number\fR]
336 Requires that at least one value of the \fBEXPECT\fR attribute matches the number(s) or numeric comparison. When comparing rangeOfInteger values, the "<" and ">" operators only check the upper bound of the range.
338 \fBWITH\-VALUE "false"\fR
340 \fBWITH\-VALUE "true"\fR
341 Requires that at least one value of the \fBEXPECT\fR attribute matches the boolean value given.
343 \fBWITH\-VALUE "/\fIregular expression\fB/"\fR
344 Requires that at least one value of the \fBEXPECT\fR attribute matches the regular expression, which must conform to the POSIX regular expression syntax. Comparisons are case-sensitive.
345 .SS STATUS PREDICATES
346 The following predicates are understood following the \fBSTATUS\fR test directive:
348 \fBDEFINE\-MATCH \fIvariable-name\fR
349 Defines the variable to "1" when the \fBSTATUS\fR matches. A side-effect of this predicate is that this \fBSTATUS\fR will never fail a test.
351 \fBDEFINE\-NO\-MATCH \fIvariable-name\fR
352 Defines the variable to "1" when the \fBSTATUS\fR does not match. A side-effect of this predicate is that this \fBSTATUS\fR will never fail a test.
354 \fBIF\-DEFINED \fIvariable-name\fR
355 Makes the \fBSTATUS\fR apply only if the specified variable is defined.
357 \fBIF\-NOT\-DEFINED \fIvariable-name\fR
358 Makes the \fBSTATUS\fR apply only if the specified variable is not defined.
360 \fBREPEAT\-LIMIT \fInumber\fR
362 Specifies the maximum number of times to repeat. The default value is 1000.
366 \fBREPEAT\-NO\-MATCH\fR
367 Specifies that the current test should be repeated when the response status-code matches or does not match the value specified by the STATUS directive.
369 Operation codes correspond to the hexadecimal numbers (0xHHHH) and names from RFC 2911 and other IPP extension specifications. Here is a complete list of names supported by
375 CUPS\-Add\-Modify\-Class
376 CUPS\-Add\-Modify\-Printer
377 CUPS\-Authenticate\-Job
379 CUPS\-Delete\-Printer
397 Create\-Job\-Subscriptions
398 Create\-Printer\-Subscriptions
405 Get\-Printer\-Attributes
406 Get\-Printer\-Support\-Files
407 Get\-Printer\-Supported\-Values
408 Get\-Subscription\-Attributes
414 Pause\-Printer\-After\-Current\-Job
419 Release\-Held\-New\-Jobs
430 Send\-Hardcopy\-Document
434 Set\-Printer\-Attributes
437 Suspend\-Current\-Job
442 Status codes correspond to the hexadecimal numbers (0xHHHH) and names from RFC 2911 and other IPP extension specifications. Here is a complete list of the names supported by
446 client\-error\-account\-authorization\-failed
447 client\-error\-account\-closed
448 client\-error\-account\-info\-needed
449 client\-error\-account\-limit\-reached
450 client\-error\-attributes\-not\-settable
451 client\-error\-attributes\-or\-values\-not\-supported
452 client\-error\-bad\-request
453 client\-error\-charset\-not\-supported
454 client\-error\-compression\-error
455 client\-error\-compression\-not\-supported
456 client\-error\-conflicting\-attributes
457 client\-error\-document\-access\-error
458 client\-error\-document\-format\-error
459 client\-error\-document\-format\-not\-supported
460 client\-error\-document\-password\-error
461 client\-error\-document\-permission\-error
462 client\-error\-document\-security\-error
463 client\-error\-document\-unprintable\-error
464 client\-error\-forbidden
466 client\-error\-ignored\-all\-notifications
467 client\-error\-ignored\-all\-subscriptions
468 client\-error\-not\-authenticated
469 client\-error\-not\-authorized
470 client\-error\-not\-found
471 client\-error\-not\-possible
472 client\-error\-print\-support\-file\-not\-found
473 client\-error\-request\-entity\-too\-large
474 client\-error\-request\-value\-too\-long
475 client\-error\-timeout
476 client\-error\-too\-many\-subscriptions
477 client\-error\-uri\-scheme\-not\-supported
478 cups\-error\-account\-authorization\-failed
479 cups\-error\-account\-closed
480 cups\-error\-account\-info\-needed
481 cups\-error\-account\-limit\-reached
483 redirection\-other\-site
485 server\-error\-device\-error
486 server\-error\-internal\-error
487 server\-error\-job\-canceled
488 server\-error\-multiple\-document\-jobs\-not\-supported
489 server\-error\-not\-accepting\-jobs
490 server\-error\-operation\-not\-supported
491 server\-error\-printer\-is\-deactivated
492 server\-error\-service\-unavailable
493 server\-error\-temporary\-error
494 server\-error\-version\-not\-supported
496 successful\-ok\-but\-cancel\-subscription
497 successful\-ok\-conflicting\-attributes
498 successful\-ok\-events\-complete
499 successful\-ok\-ignored\-notifications
500 successful\-ok\-ignored\-or\-substituted\-attributes
501 successful\-ok\-ignored\-subscriptions
502 successful\-ok\-too\-many\-events
505 Value and group tags correspond to the names from RFC 2911 and other IPP extension specifications. Here are the group tags:
508 document\-attributes\-tag
509 event\-notification\-attributes\-tag
511 operation\-attributes\-tag
512 printer\-attributes\-tag
513 subscription\-attributes\-tag
514 unsupported\-attributes\-tag
517 Here are the value tags:
549 program maintains a list of variables that can be used in any literal string or attribute value by specifying "\fI$variable-name\fR". Aside from variables defined using the \fI-d\fR option or \fBDEFINE\fR directive, the following pre-defined variables are available:
552 Inserts a single "$" character.
554 \fB$ENV[\fIname\fB]\fR
555 Inserts the value of the named environment variable, or an empty string if the environment variable is not defined.
558 Inserts the filename provided to
560 with the \fI-f\fR option.
563 Inserts the MIME media type for the filename provided to
565 with the \fI-f\fR option.
568 Inserts the hostname from the URI provided to
572 Inserts the last "job\-id" attribute value returned in a test response or 0 if no "job\-id" attribute has been seen.
575 Inserts the last "job\-uri" attribute value returned in a test response or an empty string if no "job\-uri" attribute has been seen.
577 \fB$notify\-subscription\-id\fR
578 Inserts the last "notify\-subscription\-id" attribute value returned in a test response or 0 if no "notify\-subscription\-id" attribute has been seen.
581 Inserts the port number from the URI provided to
585 Inserts the resource path from the URI provided to
589 Inserts the scheme from the URI provided to
593 Inserts the URI provided to
597 Inserts the username from the URI provided to
602 Inserts the current user's login name.
605 CUPS Online Help (http://localhost:631/help),
606 IANA IPP Registry (http://www.iana.org/assignments/ipp-registrations),
607 PWG Internet Printing Protocol Workgroup (http://www.pwg.org/ipp),
608 RFC 2911 (http://tools.ietf.org/html/rfc3911)
610 Copyright \[co] 2007-2014 by Apple Inc.