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" "3 February 2015" "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".
171 \fBEXPECT-ALL \fIattribute-name \fR[ \fIpredicate(s) \fR]
173 \fBEXPECT-ALL ?\fIattribute-name predicate(s)\fR
174 Specifies that the response must/may include the named attribute and that all occurrences of that attribute must match the given predicates.
177 Specifies a file to include at the end of the request. This is typically used when sending a test print file.
180 Specifies the group tag for subsequent attributes in the request.
182 \fBIGNORE\-ERRORS yes\fR
184 \fBIGNORE\-ERRORS no\fR
187 will ignore errors and continue with subsequent tests.
189 \fBNAME "\fIliteral string\fB"\fR
190 Specifies the human-readable name of the test.
192 \fBOPERATION \fIoperation-code\fR
193 Specifies the operation to be performed.
195 \fBPAUSE "\fImessage\fB"\fR
196 Displays the provided message and waits for the user to press a key to continue.
198 \fBREQUEST\-ID \fInumber\fR\fR
200 \fBREQUEST\-ID random\fR
201 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).
203 \fBRESOURCE \fIpath\fR
204 Specifies an alternate resource path that is used for the HTTP POST request. The default is the resource from the URI provided to the
208 \fBSKIP\-IF\-DEFINED \fIvariable-name\fR
210 \fBSKIP\-IF\-NOT\-DEFINED \fIvariable-name\fR
211 Specifies that the current test should be skipped when the variable is or is not defined.
213 \fBSKIP\-PREVIOUS\-ERROR yes\fR
215 \fBSKIP\-PREVIOUS\-ERROR no\fR
218 will skip the current test if the previous test resulted in an error/failure.
220 \fBSTATUS \fIstatus-code \fR[ \fIpredicate\fR ]
221 Specifies an expected response status-code value. Additional requirements can be added as predicates - see the "STATUS PREDICATES" section for more information on predicates.
223 \fBTEST\-ID "\fIidentifier\fR"
224 Specifies an identifier string for the current test.
227 Specifies that this test will use "Transfer-Encoding: chunked" if it has an attached file or "Content-Length:" otherwise.
229 \fBTRANSFER chunked\fR
230 Specifies that this test will use the HTTP/1.1 "Transfer-Encoding: chunked" header.
232 \fBTRANSFER length\fR
233 Specifies that this test will use the HTTP/1.0 "Content-Length:" header.
244 Specifies the IPP version number to use for this test.
245 .SS EXPECT PREDICATES
246 The following predicates are understood following the \fBEXPECT\fR test directive:
248 \fBCOUNT \fInumber\fR
249 Requires the \fBEXPECT\fR attribute to have the specified number of values.
251 \fBDEFINE\-MATCH \fIvariable-name\fR
252 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.
254 \fBDEFINE\-NO\-MATCH \fIvariable-name\fR
255 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.
257 \fBDEFINE\-VALUE \fIvariable-name\fR
258 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.
260 \fBIF\-DEFINED \fIvariable-name\fR
261 Makes the \fBEXPECT\fR conditions apply only if the specified variable is defined.
263 \fBIF\-NOT\-DEFINED \fIvariable-name\fR
264 Makes the \fBEXPECT\fR conditions apply only if the specified variable is not defined.
266 \fBIN\-GROUP \fItag\fR
267 Requires the \fBEXPECT\fR attribute to be in the specified group tag.
269 \fBOF\-TYPE \fItag[,tag,...]\fR
270 Requires the \fBEXPECT\fR attribute to use one of the specified value tag(s).
272 \fBREPEAT\-LIMIT \fInumber\fR
274 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.
278 \fBREPEAT\-NO\-MATCH\fR
279 Specifies that the current test should be repeated when the \fBEXPECT\fR condition matches or does not match.
281 \fBSAME\-COUNT\-AS \fIattribute-name\fR
282 Requires the \fBEXPECT\fR attribute to have the same number of values as the specified parallel attribute.
284 \fBWITH\-ALL\-HOSTNAMES "\fIliteral string\fB"\fR
286 \fBWITH\-ALL\-HOSTNAMES "/\fIregular expression\fB/"\fR
287 Requires that all URI values contain a matching hostname.
289 \fBWITH\-ALL\-RESOURCES "\fIliteral string\fB"\fR
291 \fBWITH\-ALL\-RESOURCES "/\fIregular expression\fB/"\fR
292 Requires that all URI values contain a matching resource (including leading /).
294 \fBWITH\-ALL\-SCHEMES "\fIliteral string\fB"\fR
296 \fBWITH\-ALL-SCHEMES "/\fIregular expression\fB/"\fR
297 Requires that all URI values contain a matching scheme.
299 \fBWITH\-ALL\-VALUES "\fIliteral string\fB"\fR
300 Requires that all values of the \fBEXPECT\fR attribute match the literal string. Comparisons are case-sensitive.
302 \fBWITH\-ALL\-VALUES <\fInumber\fR
304 \fBWITH\-ALL\-VALUES =\fInumber\fR
306 \fBWITH\-ALL\-VALUES >\fInumber\fR
308 \fBWITH\-ALL\-VALUES \fInumber\fR[\fI,...,number\fR]
309 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.
311 \fBWITH\-ALL\-VALUES "false"\fR
313 \fBWITH\-ALL\-VALUES "true"\fR
314 Requires that all values of the \fBEXPECT\fR attribute match the boolean value given.
316 \fBWITH\-ALL\-VALUES "/\fIregular expression\fB/"\fR
317 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.
319 \fBWITH\-HOSTNAME "\fIliteral string\fB"\fR
321 \fBWITH\-HOSTNAME "/\fIregular expression\fB/"\fR
322 Requires that at least one URI value contains a matching hostname.
324 \fBWITH\-RESOURCE "\fIliteral string\fB"\fR
326 \fBWITH\-RESOURCE "/\fIregular expression\fB/"\fR
327 Requires that at least one URI value contains a matching resource (including leading /).
329 \fBWITH\-SCHEME "\fIliteral string\fB"\fR
331 \fBWITH\-SCHEME "/\fIregular expression\fB/"\fR
332 Requires that at least one URI value contains a matching scheme.
334 \fBWITH\-VALUE "\fIliteral string\fB"\fR
335 Requires that at least one value of the \fBEXPECT\fR attribute matches the literal string. Comparisons are case-sensitive.
337 \fBWITH\-VALUE <\fInumber\fR
339 \fBWITH\-VALUE =\fInumber\fR
341 \fBWITH\-VALUE >\fInumber\fR
343 \fBWITH\-VALUE \fInumber\fR[\fI,...,number\fR]
344 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.
346 \fBWITH\-VALUE "false"\fR
348 \fBWITH\-VALUE "true"\fR
349 Requires that at least one value of the \fBEXPECT\fR attribute matches the boolean value given.
351 \fBWITH\-VALUE "/\fIregular expression\fB/"\fR
352 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.
353 .SS STATUS PREDICATES
354 The following predicates are understood following the \fBSTATUS\fR test directive:
356 \fBDEFINE\-MATCH \fIvariable-name\fR
357 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.
359 \fBDEFINE\-NO\-MATCH \fIvariable-name\fR
360 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.
362 \fBIF\-DEFINED \fIvariable-name\fR
363 Makes the \fBSTATUS\fR apply only if the specified variable is defined.
365 \fBIF\-NOT\-DEFINED \fIvariable-name\fR
366 Makes the \fBSTATUS\fR apply only if the specified variable is not defined.
368 \fBREPEAT\-LIMIT \fInumber\fR
370 Specifies the maximum number of times to repeat. The default value is 1000.
374 \fBREPEAT\-NO\-MATCH\fR
375 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.
377 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
383 CUPS\-Add\-Modify\-Class
384 CUPS\-Add\-Modify\-Printer
385 CUPS\-Authenticate\-Job
387 CUPS\-Delete\-Printer
405 Create\-Job\-Subscriptions
406 Create\-Printer\-Subscriptions
413 Get\-Printer\-Attributes
414 Get\-Printer\-Support\-Files
415 Get\-Printer\-Supported\-Values
416 Get\-Subscription\-Attributes
422 Pause\-Printer\-After\-Current\-Job
427 Release\-Held\-New\-Jobs
438 Send\-Hardcopy\-Document
442 Set\-Printer\-Attributes
445 Suspend\-Current\-Job
450 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
454 client\-error\-account\-authorization\-failed
455 client\-error\-account\-closed
456 client\-error\-account\-info\-needed
457 client\-error\-account\-limit\-reached
458 client\-error\-attributes\-not\-settable
459 client\-error\-attributes\-or\-values\-not\-supported
460 client\-error\-bad\-request
461 client\-error\-charset\-not\-supported
462 client\-error\-compression\-error
463 client\-error\-compression\-not\-supported
464 client\-error\-conflicting\-attributes
465 client\-error\-document\-access\-error
466 client\-error\-document\-format\-error
467 client\-error\-document\-format\-not\-supported
468 client\-error\-document\-password\-error
469 client\-error\-document\-permission\-error
470 client\-error\-document\-security\-error
471 client\-error\-document\-unprintable\-error
472 client\-error\-forbidden
474 client\-error\-ignored\-all\-notifications
475 client\-error\-ignored\-all\-subscriptions
476 client\-error\-not\-authenticated
477 client\-error\-not\-authorized
478 client\-error\-not\-found
479 client\-error\-not\-possible
480 client\-error\-print\-support\-file\-not\-found
481 client\-error\-request\-entity\-too\-large
482 client\-error\-request\-value\-too\-long
483 client\-error\-timeout
484 client\-error\-too\-many\-subscriptions
485 client\-error\-uri\-scheme\-not\-supported
486 cups\-error\-account\-authorization\-failed
487 cups\-error\-account\-closed
488 cups\-error\-account\-info\-needed
489 cups\-error\-account\-limit\-reached
491 redirection\-other\-site
493 server\-error\-device\-error
494 server\-error\-internal\-error
495 server\-error\-job\-canceled
496 server\-error\-multiple\-document\-jobs\-not\-supported
497 server\-error\-not\-accepting\-jobs
498 server\-error\-operation\-not\-supported
499 server\-error\-printer\-is\-deactivated
500 server\-error\-service\-unavailable
501 server\-error\-temporary\-error
502 server\-error\-version\-not\-supported
504 successful\-ok\-but\-cancel\-subscription
505 successful\-ok\-conflicting\-attributes
506 successful\-ok\-events\-complete
507 successful\-ok\-ignored\-notifications
508 successful\-ok\-ignored\-or\-substituted\-attributes
509 successful\-ok\-ignored\-subscriptions
510 successful\-ok\-too\-many\-events
513 Value and group tags correspond to the names from RFC 2911 and other IPP extension specifications. Here are the group tags:
516 document\-attributes\-tag
517 event\-notification\-attributes\-tag
519 operation\-attributes\-tag
520 printer\-attributes\-tag
521 subscription\-attributes\-tag
522 unsupported\-attributes\-tag
525 Here are the value tags:
557 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:
560 Inserts a single "$" character.
562 \fB$ENV[\fIname\fB]\fR
563 Inserts the value of the named environment variable, or an empty string if the environment variable is not defined.
566 Inserts the filename provided to
568 with the \fI-f\fR option.
571 Inserts the MIME media type for the filename provided to
573 with the \fI-f\fR option.
576 Inserts the hostname from the URI provided to
580 Inserts the last "job\-id" attribute value returned in a test response or 0 if no "job\-id" attribute has been seen.
583 Inserts the last "job\-uri" attribute value returned in a test response or an empty string if no "job\-uri" attribute has been seen.
585 \fB$notify\-subscription\-id\fR
586 Inserts the last "notify\-subscription\-id" attribute value returned in a test response or 0 if no "notify\-subscription\-id" attribute has been seen.
589 Inserts the port number from the URI provided to
593 Inserts the resource path from the URI provided to
597 Inserts the scheme from the URI provided to
601 Inserts the URI provided to
605 Inserts the username from the URI provided to
610 Inserts the current user's login name.
613 CUPS Online Help (http://localhost:631/help),
614 IANA IPP Registry (http://www.iana.org/assignments/ipp-registrations),
615 PWG Internet Printing Protocol Workgroup (http://www.pwg.org/ipp),
616 RFC 2911 (http://tools.ietf.org/html/rfc3911)
618 Copyright \[co] 2007-2015 by Apple Inc.