# ipptoolfile
Format de fichier ipptool
Le programme ipptool accepte les fichiers texte libre qui décrivent une
ou plusieurs requêtes IPP. Par
exemple:
\# This is a comment
{
\# The name of the test
NAME "Print PostScript File"
\# The request to send
OPERATION Print-Job
GROUP operation-attributes-tag
ATTR charset attributes-charset utf-8
ATTR language attributes-natural-language en
ATTR uri printer-uri $uri
ATTR name requesting-user-name $user
FILE testfile.ps
\# The response to expect
STATUS successful-ok
EXPECT job-id OF-TYPE integer WITH-VALUE ؎
EXPECT job-uri OF-TYPE uri
}
{
\# The name of the test
NAME "Get Attributes of PostScript Job"
\# The request to send
OPERATION Get-Job-Attributes
GROUP operation-attributes-tag
ATTR charset attributes-charset utf-8
ATTR language attributes-natural-language en
ATTR uri printer-uri $uri
ATTR integer job-id $job-id
ATTR name requesting-user-name $user
\# The response to expect
STATUS successful-ok
EXPECT job-id OF-TYPE integer WITH-VALUE $job-id
EXPECT job-uri OF-TYPE uri
EXPECT job-state OF-TYPE enum WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-originating-user-name OF-TYPE name WITH-VALUE "$user"
}
## Directives top-level
**{ test }** Définis un test
**DEFINE variable-name value** Définise une variable. Équivalent à -d
variable-name=value.
**DEFINE-DEFAULT variable-name value** Définis la variable si elle n'a
pas de valeur
**FILE-ID "identifier"** Spécifie un identifiant pour le fichier
courant
**IGNORE-ERRORS yes|no** Spécifie si ipptool ignore les erreurs et
continue par défaut.
**INCLUDE "filename"|‹filename›** Inclure un autre fichier de test. La
première forme est relative au fichier courant.
**INCLUDE-IF-DEFINED name "filename"|‹filename›** Inclure un autre
fichier de test si la variable nommée est définie
**INCLUDE-IF-NOT-DEFINED name "filename"|‹filename›** Inclus un autre
fichier de test si la variable nommée n'est pas définie
**SKIP-IF-DEFINED variable-name**
**SKIP-IF-NOT-DEFINED variable-name** Spécifie si le reste du fichier
test devrait être sauté quand la variable est ou n'est pas définie
**STOP-AFTER-INCLUDE-ERROR yes|no** Spécifie si les tests sont stoppés
après une erreur dans un fichier inclus
**TRANSFER auto|chunked|length** Spécifie que les tests, par défaut,
utilisent "Transfer-Encoding: chunked", ou "Content-Length:". auto
utilise le premier avec les fichiers attachés et le second pour les
requêtes sans fichier attaché.
**VERSION 1.0|1.1|2.0|2.1|2.2** Spécifie le numéro de version IPP par
défaut pour les tests.
## Directives de test
**ATTR tag attribute-name value(s)** Ajoute un attribut à la demande de
test. les valeurs sont séparées par ','
**ATTR collection attribute-name { MEMBER tag member-name value(s) ... }
\[ ... ,{ ... } \]** Ajoute une collection d'attribut à la demande de
test. Les attributs membres suivent la même syntaxe que les attributs
réguliers et peuvent eux-même être des collections imbriquées.
Plusieurs collections peuvent être fournis, séparées par ','
**COMPRESSION deflate|gzip|none** Compression à utiliser dans le données
suivant les attributs dans une requêtes Print-Job ou Send-Document
**DELAY seconds** délais avant de lancer ce test
**DISPLAY attribute-name** Spécifique la valeur d'un attribut à sortir
dans le rapport de test
**EXPECT attribute-name \[ predicate(s) \]**
**EXPECT ?attribute-name predicate(s)**
**EXPECT \!attribute-name** Spécifie que la réponse doit|peut|ne doit
pas incluse l'attribut nommé. Des prédicats peuvent être ajoutés. Les
noms d'attribut peuvent spécifier des attributs membre en les séparant
avec un '/' (ex: "media-col/media-size/x-dimension")
**EXPECT-ALL attribute-name \[ predicate(s) \]**
**EXPECT-ALL ?attribute-name predicate(s)** Spécifie que la réponse
doit/peut inclure l'attribut nommé et que toutes les occurrences de cet
attriut doivent correspondre au prédicat donné
**FILE filename** Spécifie un fichier à inclure à la fin de la requête.
Généralement utilisé en envoyant un fichier de test d'impression
**GROUP tag** Spécifie le tag de groupe pour les attributs sous-jacents
dans la requête
**IGNORE-ERRORS yes|no** Spécifie si les erreurs sont ignorées ou non
**NAME "literal string"** Nom "human-readable" du test
**OPERATION operation-code** Spécifie l'opération à effectuer
**PAUSE "message"** Affiche le message fournis et attends que
l'utilisateur appuie sur une touche pour continuer
**REQUEST-ID ‹number›|random** Spécifie le request-id à utiliser dans la
requête.
**RESOURCE path** Chemin de ressource alternatif pour la requête HTTP
POST. Par défaut, est pris dans l'URI fournie à ipptool
**SKIP-IF-DEFINED variable-name**
**SKIP-IF-NOT-DEFINED variable-name** Spécifie que le test courant
devrait sauter quand la variable et ou non définie
**SKIP-PREVIOUS-ERROR yes|no** Indique si ipptool saute le test courant
si le test précédent a généré une erreur
**STATUS status-code \[ predicate \]** Spécifie un valeur de code de
status attendus. Un prédicat peut être ajouté
**TEST-ID "identifier"** Spécifie une chaîne identifiant pour le test
courant
**TRANSFER auto|chunked|length** Spécifie que les tests, par défaut,
utilisent "Transfer-Encoding: chunked", ou "Content-Length:". auto
utilise le premier avec les fichiers attachés et le second pour les
requêtes sans fichier attaché.
**VERSION 1.0|1.1|2.0|2.1|2.2** Spécifie le numéro de version IPP par
défaut pour ce test
## Prédicats attendus
**COUNT number** Nécessite que l'attribut EXPECT ait le nombre spécifié
de valeurs
**DEFINE-MATCH variable-name** Définis la valiable à 1 quand la
condition EXPECT correspond
**DEFINE-NO-MATCH variable-name** Définis la valiable à 1 quand la
condition EXPECT ne correspond pas
**DEFINE-VALUE variable-name** Définis la variable quand la condition
EXPECT correspond
**IF-DEFINED variable-name** Les conditions EXPECT ne s'appliquent que
si la variable spécifiée est définie
**IF-NOT-DEFINED variable-name** Les conditions EXPECT ne s'appliquent
que si la variable spécifiée n'est pas définie
**IN-GROUP tag** Nécessite que l'attribut EXPECT soit dans le group tag
spécifié
**OF-TYPE tag\[,tag,...\]** Nécessite l'attribut EXPECT pour utiliser un
des tag spécifiés
**REPEAT-LIMIT number** Spécifie le nombre max de répétitions si le
prédicat REPEAT-MATCH ou REPEAT-NO-MATCH est spécifié. Défaut: 1000
**REPEAT-MATCH**
**REPEAT-NO-MATCH** Spécifie que le test courant devrait être répété
quand la condition EXPECT correspond ou non
**SAME-COUNT-AS attribute-name** Nécessite que l'attribut EXPECT ait le
même nombre de valeurs que l'attribut parallèle spécifié
**WITH-ALL-HOSTNAMES "literal string"|"/regular expression/"** Nécessite
que toutes les valeurs URI contiennent un hostname correspondant
**WITH-ALL-RESOURCES "literal string"|"/regular expression/"** Nécessite
que toutes les valeurs URI contiennent une ressource correspondante
(incluant le /)
**WITH-ALL-SCHEMES "literal string"|"/regular expression/"** Nécessite
que toutes les valeurs URI contiennent le schéma correspondant
**WITH-ALL-VALUES
‹number|=number|›number|number\[.....number\]|false|true|"/regular
expression/"** Nécessite que toutes les valeurs de l'attribut EXPECT
corresponde à la chaîne littérale ou la valeur booléenne
**WITH-HOSTNAME "literal string"|"/regular expression/"** Nécessite
qu'au moins une valeur URI contienne un nom d'hôte correspondant
**WITH-RESOURCE "literal string"|"/regular expression/"** Nécessite
qu'au moins une valeur URI contienne une ressource correspondante
(incluant le /)
**WITH-SCHEME "literal string"|"/regular expression/"** Nécessite qu'au
moins une valeur URI contienne une schéma correspondant
**WITH-VALUE "literal
string"|‹number|=number|›number|number\[.....number\]|false|true|"/regular
expression/"** Nécessite qu'au moins une valeur de l'attribut EXPECT
corresponde aux nombres spécifiés.
**WITH-VALUE-FROM attribute-name** Nécessite que les valeurs de
l'attribut EXPECT correspondent aux valeurs dans l'attribut spécifié
(ex: "EXPECT job-sheets WITH-VALUE-FROM job-sheets-supported" nécessite
que la valeur job-sheets soit listé dans job-sheets-supported)
## Prédicats de status
**DEFINE-MATCH variable-name** Définis la variable à 1 quand STATUS
correspond
**DEFINE-NO-MATCH variable-name** Définis la variable à 1 quand STATUS
ne correspond pas
**IF-DEFINED variable-name** STATUS s'applique seulement si la variable
spécifiée est définie
**IF-NOT-DEFINED variable-name** STATUS s'applique seulement si la
variable spécifiée n'est pas définie
**REPEAT-LIMIT number** Spécifie le nombre maximum de répetition du test
courant. Défaut: 1000
**REPEAT-MATCH**
**REPEAT-NO-MATCH** Spécifie que le test courant devrait être répété
quand le code de status de réponse correspond ou non à la valeur
spécifiée par la directive STATUS
## Codes d'opération
Les codes d'opération correspondent aux nombres hexadécimal (0xHHHH) et
noms de la rfc2911 et d'autres spécifications d'extension IPP. Voici une
liste complète de noms supportés par
ipptool:
Activate-Printer
CUPS-Accept-Jobs
CUPS-Add-Modify-Class
CUPS-Add-Modify-Printer
CUPS-Authenticate-Job
CUPS-Delete-Class
CUPS-Delete-Printer
CUPS-Get-Classes
CUPS-Get-Default
CUPS-Get-Devices
CUPS-Get-Document
CUPS-Get-PPD
CUPS-Get-PPDs
CUPS-Get-Printers
CUPS-Move-Job
CUPS-Reject-Jobs
CUPS-Set-Default
Cancel-Current-Job
Cancel-Job
Cancel-Jobs
Cancel-My-Jobs
Cancel-Subscription
Close-Job
Create-Job
Create-Job-Subscriptions
Create-Printer-Subscriptions
Deactivate-Printer
Disable-Printer
Enable-Printer
Get-Job-Attributes
Get-Jobs
Get-Notifications
Get-Printer-Attributes
Get-Printer-Support-Files
Get-Printer-Supported-Values
Get-Subscription-Attributes
Get-Subscriptions
Hold-Job
Hold-New-Jobs
Identify-Printer
Pause-Printer
Pause-Printer-After-Current-Job
Print-Job
Print-URI
Promote-Job
Purge-Jobs
Release-Held-New-Jobs
Release-Job
Renew-Subscription
Reprocess-Job
Restart-Job
Restart-Printer
Resubmit-Job
Resume-Job
Resume-Printer
Schedule-Job-After
Send-Document
Send-Hardcopy-Document
Send-Notifications
Send-URI
Set-Job-Attributes
Set-Printer-Attributes
Shutdown-Printer
Startup-Printer
Suspend-Current-Job
Validate-Document
Validate-Job
## Codes de status
Les codes de status correspondent aux nombres hexadécimal (0xHHHH) et
noms de la rfc2911 et d'autres spécifications d'extension IPP. Voici une
liste complète de noms supportés par
ipptool:
client-error-account-authorization-failed
client-error-account-closed
client-error-account-info-needed
client-error-account-limit-reached
client-error-attributes-not-settable
client-error-attributes-or-values-not-supported
client-error-bad-request
client-error-charset-not-supported
client-error-compression-error
client-error-compression-not-supported
client-error-conflicting-attributes
client-error-document-access-error
client-error-document-format-error
client-error-document-format-not-supported
client-error-document-password-error
client-error-document-permission-error
client-error-document-security-error
client-error-document-unprintable-error
client-error-forbidden
client-error-gone
client-error-ignored-all-notifications
client-error-ignored-all-subscriptions
client-error-not-authenticated
client-error-not-authorized
client-error-not-found
client-error-not-possible
client-error-print-support-file-not-found
client-error-request-entity-too-large
client-error-request-value-too-long
client-error-timeout
client-error-too-many-subscriptions
client-error-uri-scheme-not-supported
cups-error-account-authorization-failed
cups-error-account-closed
cups-error-account-info-needed
cups-error-account-limit-reached
cups-see-other
redirection-other-site
server-error-busy
server-error-device-error
server-error-internal-error
server-error-job-canceled
server-error-multiple-document-jobs-not-supported
server-error-not-accepting-jobs
server-error-operation-not-supported
server-error-printer-is-deactivated
server-error-service-unavailable
server-error-temporary-error
server-error-version-not-supported
successful-ok
successful-ok-but-cancel-subscription
successful-ok-conflicting-attributes
successful-ok-events-complete
successful-ok-ignored-notifications
successful-ok-ignored-or-substituted-attributes
successful-ok-ignored-subscriptions
successful-ok-too-many-events
## Tags
Les tags correspondent aux noms de la rfc2911 et autres spécifications
d'extension IPP . Tags de
groupe:
document-attributes-tag
event-notification-attributes-tag
job-attributes-tag
operation-attributes-tag
printer-attributes-tag
subscription-attributes-tag
unsupported-attributes-tag
Tags de
valeurs:
admin-define
boolean
charset
collection
dateTime
default
delete-attribute
enum
integer
keyword
mimeMediaType
nameWithLanguage
nameWithoutLanguage
naturalLanguage
no-value
not-settable
octetString
rangeOfInteger
resolution
textWithLanguage
textWithoutLanguage
unknown
unsupported
uri
uriScheme
## Variables
ipptool maintient une liste de variables qui peuvent être utilisées
dans les chaînes litérales ou les valeurs d'attribut.
**$$** Le caractère $
**$ENV\[name\]** Insert la valeur de la variable d'environnement
spécifiée
**$filename** Insert le fichier fournis à ipptool avec l'option -f
**$filetype** Insert le type mime pour le fichier fournis à ipptool
**$hostname** Insert le nom d'hôte depuis l'URI fournis à ipptool
**$job-id** Insert le dernier job-id retourné dans un test
**$job-uri** Insert le dernier job-uri retourné dans un test
**$notify-subscription-id** Insert le dernier notify-subscription-ip
retourné dans un test
**$port** Insert le port depuis l'URI fournie à ipptool
**$resource** Insert le chemin de la ressource depuis l'URI fournie à
ipptool
**$scheme** Insert le schéma depuis l'URI fournie à ipptool
**$uri** Insert l'URI fournie à ipptool
**$uriuser** Insert le username depuis l'URI fournie à ipptool
**$user** Insert l'utilisateur courant