wiki:Layout Test Protocol

Version 3 (modified by dfarler@apple.com, 10 years ago) (diff)

--

The Layout Test Protocol (LTP) is a line-based protocol for requesting layout tests from DumpRenderTree (DRT) or WebKitTestRunner (WKTR). Requests come into DRT/WKTR from standard input or into a socket. Responses leave DRT/WKTR via standard output/error or into a socket. The protocol works similarly to HTTP, where a content type and length are sent before blocks of data. A response consists of multiple chunks, all of which are optional:

  • RenderTree: The textual representation of the render tree
  • Image: An image capture of the web view
  • Audio: An audio capture during the test
  • Error: Other textual output corresponding to standard error
  • DumpMalloc: Number of committed virtual memory bytes

Requests

Request -> Path Newline
Path -> [^\n]+

Responses

Response -> RenderTree Image Audio Error DumpMalloc EOF
ContentLength: -> 'Content-Length: %lu' Newline
EOF -> '#EOF' Newline
Newline -> '\n'

RenderTree -> ContentTypeText ContentLength Data
ContentTypeText -> 'Content-type: text/plain' Newline
Data -> bytes

Image -> ContentTypePNG ContentLength Data
ContentTypePNG -> 'Content-type: image/png' Newline

Audio -> ContentTypeAudio ContentLength Data
ContentTypeAudio -> 'Content-type: audio/wav' newline

Error -> ContentTypeText ContentLength Text

DumpMalloc -> 'DumpMalloc: %li'