# Host integration tests All host integration tests share the `it` executable. Each module keeps its former file name. ```sh cargo test -p sausage --test it cargo test -p sausage --test it -- chain:: cargo test -p sausage --test it -- --test-threads=1 ``` Use `nix develop -c` and the required build slot wrapper for these commands. Set `CARGO_TARGET_DIR` to your executor's target directory. The journal timing benchmark keeps its 10% threshold but does not run in the default suite. Run it by hand on an idle machine: ```sh cargo test --release -p sausage --test it -- --ignored undo_cost ``` Add new modules under `host/tests/it/` and declare them in `it/main.rs`. Cargo does not discover separate test executables in `host/tests/`. Fixture sources remain in `builder-fixture/`. The bundle-copy regression preserves relative symlink targets, including broken links. `common.rs` shares the target lookup and the cached userland Git build. The goal/questions and harness API fixtures copy the complete extension tree through its shared helper. A shared mutex protects the cwd-init output and the brush checkout during fixture builds. The cwd-init build runs at most once per process when its output is absent. The first parallel run reproduced a collision when two compiler processes wrote `init.o`. Tests use temporary worlds and ephemeral listener ports. Child processes receive environment variables through `Command`, not through changes to the test process. SIGKILL parents use fully qualified test filters with `--exact`. The `hook::hook_git` and `hook_git` registrations both existed before this move. Both remain as wrappers around one shared helper to preserve the test count. The shared `hook_guest` module now builds its fixture once per process.