✔ the host boots the broker, binds a launch in process, and the notifier DMs a blocking decision exactly once (869.755109ms)
✔ a notifier that dies takes the host down with exit 1, so the unit restarts the pair (218.974197ms)
✔ a second host for the same data root refuses with exit 3 while the first runs (100.4374ms)
✔ two bus starts racing for one data root leave one host running; the other refuses that a host already runs (515.28979ms)
✔ a host takes over a host.lock its dead host left, and puts back a live claim that replaced it meanwhile (11.33672ms)
✔ a host.lock that goes between the check and the read is tried again; one that can't be parsed still refuses as unreadable (0.881166ms)
✔ a live host's lock stays, however old the file is (0.600446ms)
✔ a host.lock left by a host killed with SIGKILL doesn't stop the next bus start (811.977836ms)
✔ while a host boots, a reader sees no host: the human commands still ask for --business, stop and status find none (215.335675ms)
✔ a host started before host.lock existed, holding only host.json, still refuses a second start, which leaves no lock (28.454886ms)
✔ a broker fork that throws leaves no host.lock and no host.json (30.53204ms)
✔ a broker send that throws leaves no host.lock and no host.json (30.091519ms)
✔ a broker that misses its boot wait leaves no host.lock and no host.json (31.805049ms)
✔ a notifier fork that throws stops the broker and leaves no host.lock and no host.json (114.489774ms)
✔ a notifier send that throws stops the broker and leaves no host.lock and no host.json (111.117979ms)
✔ a boot reply with no reader for the business refuses with exit 3 naming it, before the notifier starts, and leaves no host.lock and no live broker (124.983009ms)
✔ a boot reply with no reader for the business refuses with exit 3 naming it, with no notifier, and leaves no host.lock and no live broker (148.905879ms)
✔ a host.json that can't be written stops both children and leaves no host.lock (233.312477ms)
✔ an error event on the broker before it replies fails the start at once, and leaves no host.lock and no live child (29.187883ms)
✔ an error event on the notifier before it replies fails the start at once, and leaves no host.lock and no live child (119.119789ms)
✔ an error event on the broker while the notifier starts fails the start once the notifier replies (238.84428ms)
✔ an error event on the broker once the host is up stops the host with exit 1, and leaves no host.lock and no host.json (222.502509ms)
✔ an error event on the notifier once the host is up stops the host with exit 1, and leaves no host.lock and no host.json (241.969367ms)
✔ a broker reply that misses the wait breaks the channel: the late reply answers nothing, later requests refuse, the host exits 1 (1116.093524ms)
✔ a broker reply with another request's id, or none, breaks the channel and the host exits 1 (239.182308ms)
✔ a broker reply with no request waiting breaks the channel and the host exits 1 (133.115864ms)
✔ a notifier that refuses stops the broker and the host refuses with exit 3 (174.523607ms)
✔ a notifier that refuses after the broker died still refuses with exit 3, without a send to the dead broker (163.762227ms)
✔ a notifier that dies before it replies, after the broker died, still refuses, without a send to the dead broker (128.02145ms)
✔ a close send that fails with EPIPE after the notifier refuses still gives the notifier's refusal, exit 3 (197.216475ms)
✔ a close send that fails with EPIPE after the notifier dies unanswered still gives the notifier's error (121.825221ms)
✔ close() whose stop and close sends fail with EPIPE still finishes, with exit 1 (173.274047ms)
✔ watchChildren reports a child that died before it was called, and one that dies later (27.374654ms)
✔ bus stop refuses to signal a live pid that is not a bus host (202.602002ms)
✔ bus start refuses with exit 3 and the code when the broker refuses to boot; bus status names the lock (256.710813ms)
✔ bus start refuses with exit 3 without a notifier config (100.174306ms)
✔ bus start runs until bus stop; status reports it while it runs (695.96399ms)
✔ bus-service.sh renders the unit and installs it into a given directory (54.419758ms)
✔ bus-service.sh pins the claude binary, refuses one the unit can't carry, and renders without one (62.921712ms)
✔ bus-service.sh refuses a directory pin and keeps a symlink default unresolved (12.411131ms)
✔ bus-service.sh refuses a default claude without the execute bit, or in a PATH dir with a space (7.879251ms)
ℹ tests 41
ℹ suites 0
ℹ pass 41
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 8418.323325
