Going it alone: the primitives ============================== The runner (`testmarktest_rule_basic` and `testmarktest_run`) is built on a handful of primitives, and you can call them yourself. Reach for them when the runner doesn't fit: when you want to read testmark docs as plain data, or rewrite them, or check output in a shape the runner doesn't have. They give you more control, but also more to get right. If the runner fits, use it. The functions ------------- Every primitive takes a handle: a name you pick when you parse a doc, and use for that doc in every other call. | function | does | | --- | --- | | `testmark_parse HANDLE FILE` | parses FILE, and names it HANDLE for the other calls | | `testmark_names HANDLE` | prints the hunk names, one per line, in document order | | `testmark_body HANDLE NAME` | prints a hunk's body, exactly | | `testmark_info HANDLE NAME` | prints a hunk's info string (`text` in ```` ```text ````) | | `testmark_check HANDLE NAME