# scriptlib/_punktest — test-owned scriptlib fixtures These scripts are **fixtures owned by the punk test suite** (`src/tests/shell/testsuites/punkexe/scriptexec.test`), not user sample scripts. They exist so tests can exercise the `lib:` scriptlib-resolution mechanism and the `script` subcommand's Tk main-loop behaviour against **stable, committed** scripts rather than user-editable samples. - Do not hand-edit these files: the tests assert on their exact behaviour and output markers. Changing them will break the suite. - The rest of `scriptlib/` is user-only territory; this `_punktest/` subfolder is the exception, owned and maintained by the test suite. - They resolve via ` script lib:_punktest/` (subpath resolution through `punk::path::scriptlib_resolve`). Fixtures: - `echo.tcl` — emits a marker plus its `::argv0`/`::argv`; used for `lib:` resolution, subpath resolution, and file-form argument passing. - `tk_countdown.tcl ` — Tk window that exits 0 from an `after` callback; proves the `script` subcommand services a registered Tk main loop (the callback runs only if the event loop is serviced). - `tk_noexit.tcl` — Tk window with no explicit exit; used to prove a GUI script stays alive (blocks) under `script`, as it does under tclsh/wish. - `tk_error.tcl` — Tk window then an uncaught error; proves an errored GUI script exits promptly (no hanging window).