ipptoolfile(5) ipptool-Dateiformat

BESCHREIBUNG

Das Programm ipptool(1) akzeptiert frei formatierte einfache Textdateien, die eine oder mehrere IPP-Anfragen beschreiben. Kommentare beginnen mit dem Zeichen »#« und gehen bis zum Zeilenende. Jede Anfrage ist in geschweiften Klammern eingeschlossen. Beispiel:
    # Dies ist ein Kommentar
    {
      # Der Name des Tests
      NAME "Drucke PostScript-Datei"
      # Die zu sendende Anfrage
      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 Testdatei.ps
      # Die zu erwartende Antwort
      STATUS successful-ok
      EXPECT job-id OF-TYPE integer WITH-VALUE >0
      EXPECT job-uri OF-TYPE uri
    }
    {
      # Der Name des Tests
      NAME "Ermittele Attribute vom PostScript-Auftrag"
      # Die zu sendende Anfrage
      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
      # Die zu erwartende Antwort
      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"
    }

OBERSTE DIREKTIVEN

Die folgenden Direktiven können außerhalb eines Tests verwandt werden:
{ Test }
Definiert einen Test.
DEFINE Variablennamen Wert
Definiert die benannte Variable auf den angegebenen Wert. Dies ist zur Angabe von -d Variablennamen=Wert auf der ipptool(8)-Befehlszeile äquivalent.
DEFINE-DEFAULT Variablennamen Wert
Definiert die benannte Variable auf den angegebenen Wert, falls sie nicht bereits einen Wert hat.
FILE-ID "Identifikator"
Legt die Identifikatorzeichenkette für die aktuelle Datei fest.
IGNORE-ERRORS yes
IGNORE-ERRORS no
Legt fest, ob ipptool(8) standardmäßig Fehler ignorieren und mit folgenden Tests fortfahren wird.
INCLUDE "Dateiname"
INCLUDE <Dateiname>
Bindet eine andere Testdatei ein. Die erste Form bindet eine Datei relativ zu der aktuellen Testdatei ein, während die zweite Form eine Datei aus dem ipptool(8)-Einbindeverzeichnis einbindet.
INCLUDE-IF-DEFINED Name "Dateiname"
INCLUDE-IF-DEFINED Name <Dateiname>
Bindet eine andere Testdatei ein, falls die benannte Variable definiert ist. Die erste Form bindet eine Datei relativ zu der aktuellen Testdatei ein, während die zweite Form eine Datei aus dem ipptool(8)-Einbindeverzeichnis einbindet.
INCLUDE-IF-NOT-DEFINED Name "Dateiname"
INCLUDE-IF-NOT-DEFINED Name <Dateiname>
Bindet eine andere Testdatei ein, falls die benannte Variable nicht definiert ist. Die erste Form bindet eine Datei relativ zu der aktuellen Testdatei ein, während die zweite Form eine Datei aus dem ipptool(8)-Einbindeverzeichnis einbindet.
SKIP-IF-DEFINED variablenname
SKIP-IF-NOT-DEFINED Variablenname
Legt fest, dass der Rest der Testdatei übersprungen werden soll, wenn die Variable (nicht) definiert ist.
STOP-AFTER-INCLUDE-ERROR no
STOP-AFTER-INCLUDE-ERROR yes
Legt fest, ob Tests nach einem Fehler in einer eingebundenen Datei angehalten werden oder nicht.
TRANSFER auto
Legt fest, dass der Test standardmäßig »Transfer-Encoding: chunked« für Anfragen mit angehängten Dateien und »Content-Length:« für Anfragen ohne angehängte Dateien verwenden wird.
TRANSFER chunked
Legt fest, dass die Tests standardmäßig den HTTP/1.1-Header »Transfer-Encoding: chunked« verwenden. Dies ist die Vorgabe und äquivalent zur Angabe von -c auf der Befehlszeile von ipptool(8). Die Unterstützung für blockweise Abfragen wird für die Konformität mit allen Versionen von IPP benötigt.
TRANSFER length
Legt fest, dass die Tests standardmäßig den HTTP/1.0-Header »Content-Length« verwenden. Dies ist die Vorgabe und äquivalent zur Angabe von -l auf der Befehlszeile von ipptool(8). Die Unterstützung für Inhaltslängen-Abfragen wird für die Konformität mit allen Versionen von IPP benötigt.
VERSION 1.0
VERSION 1.1
VERSION 2.0
VERSION 2.1
VERSION 2.2
Legt die Standard-IPP-Versionsnummer, die für die nachfolgenden Tests verwandt werden soll, fest.

TESTDIREKTIVEN

Die nachfolgenden Direktiven werden innerhalb eines Test verstanden:
ATTR Markierung Attributname Wert(e)
Adds an attribute to the test request. Values are separated by the comma (",") character - escape commas using the "
ATTR collection Attributname { MEMBER Markierung Mitgliedsname Wert(e) … } [ ,{ } ]
Fügt der Testanfrage ein Sammlungsattribut hinzu. Mitgliedsattribute folgen der gleichen Syntax wie reguläre Attribute und können selbst wieder verschachtelte Sammlungen sein. Mehrere Sammlungswerte können, durch Kommata getrennt, wie benötigt angegeben werden.
COMPRESSION deflate
COMPRESSION gzip
COMPRESSION none
Verwendet die angegebene Komprimierung auf die Dokumentendaten, die den Attributen in einer Print-Job- oder Send-Document-Anfrage folgen.
DELAY Sekunden
Legt eine Verzögerung, bevor der Test ausgeführt wird, fest.
DISPLAY Attributname
Legt fest, dass der Wert des benannten Attributes als Teil des Testberichts ausgegeben werden soll.
EXPECT Attributname [ Eigenschaft(en) ]
EXPECT ?Attributname Eigenschaft(en)
EXPECT !Attributname
Legt fest, dass die Antwort das benannte Attribut enthalten muss/kann/nicht darf. Zusätzliche Anforderungen können als Eigenschaften hinzugefügt werden - siehe den Abschnitt »EXPECT-EIGENSCHAFTEN« für weitere Informationen über Eigenschaften. Attributnamen können weitere Mitgliederattribute festlegen, indem die Attribut- und Mitgliedernamen durch einen normalen Schrägstrich getrennt werden. Beispiel: »media-col/media-size/x-dimension«.
EXPECT-ALL Attributname [ Eigenschaft(en) ]
EXPECT-ALL ?Attributname Eigenschaft(en)
Legt fest, dass die Antwort das benannte Attribut enthalten muss/kann und dass alle Vorkommen dieses Attributs auf die angegebenen Eigenschaften passen müssen.
FILE Dateiname
Legt eine Datei, die am Ende der Anfrage eingefügt werden soll, fest. Dies wird typischerweise verwandt, wenn eine Testausdrucksdatei gesandt wird.
GROUP Markierung
Legt die Gruppenmarkierung für nachfolgende Attribute in der Anfrage fest.
IGNORE-ERRORS yes
IGNORE-ERRORS no
Legt fest, ob ipptool(8) Fehler in nachfolgenden Tests ignorieren und fortfahren soll.
NAME " Zeichenkette"
Legt den menschenlesbaren Namen des Tests fest.
OPERATION Vorgangscode
Spezifziert den auszuführenden Vorgang.
PAUSE "Nachricht"
Zeigt die bereitgestellte Nachricht an und warten darauf, dass der Benutzer eine Taste zum Fortfahren drückt.
REQUEST-ID Nummer
REQUEST-ID random
Legt die in der Anfrage zu verwendene Anfrage-ID, entweder eine Ganzzahl oder das Wort »random«, um einen zufällig erzeugten Wert zu verwenden (Vorgabe), fest.
RESOURCE Pfad
Legt einen alternativen Ressourcen-Pfad, der für HTTP-POST-Anfragen verwandt wird, fest. Die Vorgabe ist die Ressource, die aus der an das Programm ipptool(8) übergebenen URI entstammt.
SKIP-IF-DEFINED variablenname
SKIP-IF-NOT-DEFINED Variablenname
Legt fest, dass der aktuelle Test übersprungen werden soll, wenn die Variable (nicht) definiert ist.
SKIP-PREVIOUS-ERROR yes
SKIP-PREVIOUS-ERROR no
Legt fest, ob ipptool(8) den aktuellen Test überspringt, falls der vorhergehende Test zu einem Fehler/Fehlschlag führte.
STATUS Status-Code [ Eigenschaft ]
Legt den Status-Code-Wert einer erwarteten Antwort fest. Zusätzliche Anforderungen können als Eigenschaften hinzugefügt werden - siehe den Abschnitt »EXPECT-EIGENSCHAFTEN« für weitere Informationen über Eigenschaften.
TEST-ID "Identifikator"
Legt eine Identifikatorzeichenkette für den aktuellen Test fest.
TRANSFER auto
Legt fest, dass dieser Test »Transfer-Encoding: chunked« verwendet, falls er eine angehängt Datei hat und »Content-Length:« andernfalls.
TRANSFER chunked
Legt fest, dass dieser Test den HTTP/1.1-Header »Transfer-Encoding: chunked« verwenden wird.
TRANSFER length
Legt fest, dass dieser Test den HTTP/1.0-Header »Content-Length:« verwenden wird.
VERSION 1.0
VERSION 1.1
VERSION 2.0
VERSION 2.1
VERSION 2.2
Legt die für diesen Test zu verwendende IPP-Versionsnummer fest.

EXPECT-EIGENSCHAFTEN

Die folgenden Eigenschaften (Prädikate) werden angehängt an die EXPECT-Test-Direktiven verstanden:
COUNT Anzahl
Verlangt, dass das Attribut von EXPECT die angegebene Anzahl an Werten hat.
DEFINE-MATCH Variablenname
Setzt die Variable auf »1«, wenn die EXPECT-Bedingung passt. Ein Seiteneffekt dieser Eigenschaft ist, dass dieser EXPECT niemals bei einem Test fehlschlägt.
DEFINE-NO-MATCH Variablenname
Setzt die Variable auf »1«, wenn die EXPECT-Bedingung nicht passt. Ein Seiteneffekt dieser Eigenschaft ist, dass dieser EXPECT niemals bei einem Test fehlschlägt.
DEFINE-VALUE Variablenname
Setzt die Variable auf den Wert des Attributes, wenn die EXPECT-Bedingung passt. Ein Seiteneffekt dieser Eigenschaft ist, dass dieser EXPECT niemals bei einem Test fehlschlägt.
IF-DEFINED Variablenname
Die EXPECT-Bedingung wird nur angewandt, falls die angegebene Variable definiert ist.
IF-NOT-DEFINED Variablenname
Die EXPECT-Bedingung wird nur angewandt, falls die angegebene Variable nicht definiert ist.
IN-GROUP Markierung
Verlangt, dass das EXPECT-Attribut in der angegebenen Gruppenmarkierung ist.
OF-TYPE Markierung[,Markierung,…]
Verlangt, dass das EXPECT-Attribut die angegebenen Wertemarkierung(en) verwendet.
REPEAT-LIMIT Anzahl

Legt die maximale Anzahl an Wiederholungen, falls die Eigenschaft REPEAT-MATCH oder REPEAT-NO-MATCH festgelegt ist, fest. Die Vorgabe ist 1000.
REPEAT-MATCH
REPEAT-NO-MATCH
Legt fest, dass der aktuelle Test wiederholt werden soll, wenn die EXPECT-Bedingung (nicht) passt.
SAME-COUNT-AS Attributname
Verlangt, dass das EXPECT-Attribut die gleiche Anzahl von Werten wie das festgelegte parallele Attribut hat.
WITH-ALL-HOSTNAMES "Zeichenkette"
WITH-ALL-HOSTNAMES "/regulärer Ausdruck/"
Verlangt, dass alle URI-Werte einen passenden Rechnernamen enthalten.
WITH-ALL-RESOURCES "Zeichenkette"
WITH-ALL-RESOURCES "/regulärer Ausdruck/"
Verlangt, dass alle URI-Werte eine passende Ressource (einschließlich des führenden /) enthalten.
WITH-ALL-SCHEMES "Zeichenkette"
WITH-ALL-SCHEMES "/regulärer Ausdruck/"
Verlangt, dass alle URI-Werte ein passendes Schema enthalten.
WITH-ALL-VALUES "Zeichenkette"
Verlangt, dass alle Werte des EXPECT-Attributs auf die Zeichenkette passen. Vergleiche berücksichtigen die Groß- und Kleinschreibung.
WITH-ALL-VALUES <Zahl
WITH-ALL-VALUES =Zahl
WITH-ALL-VALUES >Zahl
WITH-ALL-VALUES Zahl[,…,Zahl]
Verlangt, dass alle Werte des EXPECT-Attributs auf die Zahl(en) passen oder den numerischen Vergleich erfüllen. Beim Vergleich von rangeOfInteger-Werten prüfen die Operatoren »<« und »>« nur die obere Grenze der Bereiche.
WITH-ALL-VALUES "false"
WITH-ALL-VALUES "true"
Verlangt, dass alle Werte des EXPECT-Attributs auf den übergebenen logischen Wert passen.
WITH-ALL-VALUES "/regulärer Ausdruck/"
Verlangt, dass alle Werte des EXPECT-Attributes auf den regulären Ausdruck passen. Dieser muss die Syntax regulärer POSIX-Ausdrücke erfüllen. Vergleiche berücksichtigen Groß- und Kleinschreibung.
WITH-HOSTNAME "Zeichenkette"
WITH-HOSTNAME "/regulärer Ausdruck/"
Verlangt, dass mindestens ein URI-Wert einen passenden Rechnernamen enthält.
WITH-RESOURCE "Zeichenkette"
WITH-RESOURCE "/regulärer Ausdruck/"
Verlangt, dass mindestens ein URI-Wert eine passende Ressource (einschließlich des führenden /) enthält.
WITH-SCHEME "Zeichenkette"
WITH-SCHEME "/regulärer Ausdruck/"
Verlangt, dass mindestens ein URI-Wert ein passendes Schema enthält.
WITH-VALUE "Zeichenkette"
Verlangt, dass mindestens ein Wert des EXPECT-Attributs auf die Zeichenkette passt. Vergleiche berücksichtigen Groß- und Kleinschreibung.
WITH-VALUE <Zahl
WITH-VALUE =Zahl
WITH-VALUE >Zahl
WITH-VALUE Zahl[,…,Zahl]
Verlangt, dass mindestens ein Wert des EXPECT-Attributs auf die Zahl(en) passt oder den numerischen Vergleich erfüllt. Beim Vergleich von rangeOfInteger-Werten prüfen die Operatoren »<« und »>« nur die obere Grenze der Bereiche.
WITH-VALUE "false"
WITH-VALUE "true"
Verlangt, dass mindestens ein Wert des EXPECT-Attributs auf den übergebenen logischen Wert passt.
WITH-VALUE "/regulärer Ausdruck/"
Verlangt, dass mindestens ein Wert des EXPECT-Attributes auf den regulären Ausdruck passt. Dieser muss die Syntax regulärer POSIX-Ausdrücke erfüllen. Vergleiche berücksichtigen Groß- und Kleinschreibung.
WITH-VALUE-FROM Attributname
Verlangt, dass der Wert/die Werte des Attributes EXPECT auf den Wert/die Werte in dem angegebenen Attribut passt/passen. Beispielsweise verlangt »EXPECT job-sheets WITH-VALUE-FROM job-sheets-supported«, dass der Wert »job-sheets« als Wert im Attribut »job-sheets-supported« aufgeführt ist.

STATUS-EIGENSCHAFTEN

Die folgenden Eigenschaften werden nach der STATUS-Testdirektive verstanden:
DEFINE-MATCH Variablenname
Setzt die Variable auf »1« wenn der STATUS passt. Ein Seiteneffekt dieser Eigenschaft ist, dass dieser STATUS niemals bei einem Test fehlschlägt.
DEFINE-NO-MATCH Variablenname
Setzt die Variable auf »1« wenn der STATUS nicht passt. Ein Seiteneffekt dieser Eigenschaft ist, dass dieser STATUS niemals bei einem Test fehlschlägt.
IF-DEFINED Variablenname
Führt dazu, dass der STATUS nur angewandt wird, falls die angegebene Variable definiert ist.
IF-NOT-DEFINED Variablenname
Führt dazu, dass der STATUS nur angewandt wird, falls die angegebene Variable nicht definiert ist.
REPEAT-LIMIT Anzahl

Legt die maximale Anzahl an Wiederholungen fest. Die Vorgabe ist 1000.
REPEAT-MATCH
REPEAT-NO-MATCH
Legt fest, dass der aktuelle Test wiederholt werden soll, wenn der Rückgabestatuscode (nicht) auf den durch die STATUS-Direktive angegebenen Wert passt.

VORGANGSCODES

Vorgangscodes entsprechen hexadezimalen Zahlen (0xHHHH) und Namen aus RFC 2911 und anderen IPP-Erweiterungsspezifikationen. Hier ist die komplette Liste der von ipptool(8) unterstützten Namen:
    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

STATUS-CODES

Status-Codes entsprechend den hexadezimalen Zahlen (0xHHHH) und Namen aus RFC 2911 und anderen IPP-Erweiterungsspezifikationen. Hier ist die komplette Liste der von ipptool(8) unterstützten Namen:
    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

MARKIERUNGEN

Werte- und Gruppenmarkierungen entsprechen den Namen aus RFC 2911 und anderen IPP-Erweiterungsspezifikationen. Hier sind die Gruppenmarkierungen:
    document-attributes-tag
    event-notification-attributes-tag
    job-attributes-tag
    operation-attributes-tag
    printer-attributes-tag
    subscription-attributes-tag
    unsupported-attributes-tag

Hier sind die Wertemarkierungen:

    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

VARIABLEN

Das Programm ipptool(8) verwaltet eine Liste von Variablen, die in jeder Zeichenkette oder jedem Attributswert über Angabe von »$variable-name« verwandt werden können. Neben den durch die Option -d oder der Direktiven DEFINE angegebenen Variablen sind folgende vordefinierte Variablen verfügbar:
$$
Fügt ein einzelnes »$«-Zeichen ein.
$ENV[Name]
Fügt den Wert der benannten Umgebungsvariablen oder eine leere Zeichenkette, falls die Umgebungsvariable nicht definiert ist, ein.
$filename
Fügt den mit der Option -f an ipptool(8) bereitgestellten Dateinamen ein.
$filetype
Fügt den MIME-Medientyp für den mit der Option -f an ipptool(8) bereitgestellten Dateinamen ein.
$hostname
Fügt den Rechnernamen aus der ipptool(8) bereitgestellten URI ein.
$job-id
Fügt den letzten in einer Testantwort zurückgelieferten »job-id«-Attributwert oder 0, falls kein Attribut »job-id« gesehen wurde, ein.
$job-uri
Fügt den letzten in einer Testantwort zurückgelieferten »job-uri«-Attributwert oder eine leere Zeichenkette, falls keine Attribut »job-uri« gesehen wurde, ein.
$notify-subscription-id
Fügt den letzten in einer Testantwort zurückgelieferten »notify-subscription-id«-Attributwert oder 0, falls keine Attribut »notify-subscription-id« gesehen wurde, ein.
$port
Fügt die Portnummer aus der an ipptool(8) übergebenen URI ein.
$resource
Fügt den Ressourcenpfad aus der an ipptool(8) übergebenen URI ein.
$scheme
Fügt das Schema aus der ipptool(8) übergebenen URI ein.
$uri
Fügt die an ipptool(8) übergebene URI ein.
$uriuser
Fügt den Benutzernamen aus der ipptool(8) übergebenen URI ein, falls vorhanden.
$user
Fügt den Anmeldenamen des aktuellen Benutzers ein.

COPYRIGHT

Copyright © 2007-2015 by Apple Inc.