### Every program a test runs is written by a process of its own - **One helper, for every test that makes a program and runs it.** `wai`'s tests write stand-ins for the tools it runs (the keychain's `security`, a packer, a room service, a browser, a corpus generator) and copy `wai` itself under other names. Most were written by the test process. A program another test's thread started in that moment kept the file open for writing until it ran its own program, so the stand-in could not start ("Text file busy"): a test of `wai auth`'s keychain failed so in CI. Every one is now written by `sh`, or copied by `cp` (`tests/support/program.rs`, shared by the binary's own tests and the integration tests), and that process has exited before the test goes on, so nothing holds the file when it runs. What each test asserts is unchanged, and only the tests change.