# Command version **Fixture:** `fixture-cli-version@1` ## Given The built `termux-janitor` executable starts with standard input disconnected from a terminal and an empty isolated working directory. The executable receives exactly one argument, `--version`. ## When The executable starts. ## Required invariants - **`INV-VERSION-SUCCESS`:** The process exits with the registered success status. - **`INV-VERSION-STDOUT`:** Standard output names the executable and the one canonical package version. - **`INV-VERSION-CHARSET`:** The reported version is nonempty and uses only ASCII letters, digits, `.`, `-`, `_`, and `+`. ## Forbidden effects - **`NO-VERSION-STDERR`:** Standard error remains empty. - **`NO-VERSION-FIXTURE-MUTATION`:** The isolated working directory remains empty. ## Instrumentation ```zig tj-test try fixture.given_program("termux-janitor"); try fixture.given_standard_input(.ignored); try fixture.given_working_directory(.empty); try fixture.given_arguments(&.{"--version"}); try fixture.when_run(); try fixture.then_inv_version_success(); try fixture.then_inv_version_stdout(); try fixture.then_inv_version_charset(); try fixture.forbid_no_version_stderr(); try fixture.forbid_no_version_fixture_mutation(); ``` ## Variations Rejected invocations, including `--version` combined with any other argument, belong to the usage fixture. Manual-page and release-archive version synchronization are separate scenarios. ## Limitations This fixture observes the version reported by the locally built executable. It does not prove that a published release tag, archive name, or downstream package version carries the same value.