these 12 derivations will be built: /nix/store/0wf2b1ijxrw1f0wl2k97ym182dxir36a-msgpack-core-0.9.11.pom.drv /nix/store/1kxs4f94x3lpn1vzs9zpjvs4myxga29h-portal-0.65.0.jar.drv /nix/store/3cdl8amlqcmp4q4i51y33i036alzhwaw-transit-java-1.1.403.pom.drv /nix/store/chmhy962x0isjgibc10lfszmni795g2y-transit-clj-1.1.357.jar.drv /nix/store/hm2r4rbl1amnxg9dq4za2ik2iw9lp3fr-portal-0.65.0.pom.drv /nix/store/i78vpxq4k8fgb4i5yp6h5x1s708fjhlq-transit-clj-1.1.357.pom.drv /nix/store/v6q79ds3jvqmwpypb2y87srbw6mjgywh-transit-java-1.1.403.jar.drv /nix/store/xd2p8cmg6094yjlxqdac5jz6yhpr6daa-msgpack-core-0.9.11.jar.drv /nix/store/9421mhdf7k448v5nq87rzgjwhzmc9q22-maven-repo-cache.drv /nix/store/x5d8rvd4vxqbdyq6i5x4ix3mxim02amn-clojure-home.drv /nix/store/wmnqgnaigjvwl8h2v7krpr7w6w2bbzy8-clojure-nix-locker.shell-env.drv /nix/store/k407z2c90dnp7dy9yvch8j54hd510as0-nad-api-0.2.drv these 4 paths will be fetched (0.0 KiB download, 26.6 KiB unpacked): /nix/store/5b9babs62n40jd9hldryhx02g29xjad1-compose-0.0.30.jar /nix/store/f05x489idk5n73508im5j2mfk2y4dmiz-compose-0.0.30.pom /nix/store/w99lin5k354bhqnihpq0fd67nvmpl4nd-system-1.0.258.jar /nix/store/w8dhg26fbj1ni0z3pz8lsncv3k1ppxjk-system-1.0.258.pom building '/nix/store/k407z2c90dnp7dy9yvch8j54hd510as0-nad-api-0.2.drv' on 'ssh-ng://nix-remote-build@quine.prim.private.invalid' building '/nix/store/k407z2c90dnp7dy9yvch8j54hd510as0-nad-api-0.2.drv' nad-api-0.2> Running phase: unpackPhase nad-api-0.2> unpacking source archive /nix/store/ywwyjnb080rzcns0lgsgdbdjwmjr0n6x-j3mcs701j9bqr3z8rh5nxrp2dw1a35s4-source nad-api-0.2> source root is j3mcs701j9bqr3z8rh5nxrp2dw1a35s4-source nad-api-0.2> Running phase: patchPhase nad-api-0.2> Running phase: updateAutotoolsGnuConfigScriptsPhase nad-api-0.2> Running phase: configurePhase nad-api-0.2> no configure script, doing nothing nad-api-0.2> Running phase: buildPhase nad-api-0.2> Picked up JAVA_TOOL_OPTIONS: -Duser.home=/nix/store/kdywlwrxvxi79hwjq0v7p25fgi9qksmw-clojure-home nad-api-0.2> Picked up JAVA_TOOL_OPTIONS: -Duser.home=/nix/store/kdywlwrxvxi79hwjq0v7p25fgi9qksmw-clojure-home nad-api-0.2> Picked up JAVA_TOOL_OPTIONS: -Duser.home=/nix/store/kdywlwrxvxi79hwjq0v7p25fgi9qksmw-clojure-home nad-api-0.2> Running phase: checkPhase nad-api-0.2> Picked up JAVA_TOOL_OPTIONS: -Duser.home=/nix/store/kdywlwrxvxi79hwjq0v7p25fgi9qksmw-clojure-home nad-api-0.2> Picked up JAVA_TOOL_OPTIONS: -Duser.home=/nix/store/kdywlwrxvxi79hwjq0v7p25fgi9qksmw-clojure-home nad-api-0.2> --- unit (clojure.test) --------------------------- nad-api-0.2> ol.nad-api.telnet-test nad-api-0.2> connect-test nad-api-0.2> connects to NAD receiver and returns connection nad-api-0.2> reads initial model response on connect nad-api-0.2> wrap-command-test nad-api-0.2> wraps command with telnet line endings nad-api-0.2> default-config-test nad-api-0.2> default-config has expected structure nad-api-0.2> unwrap-response-test nad-api-0.2> strips leading newline and trailing carriage return nad-api-0.2> handles response without line endings nad-api-0.2> handles partial line endings nad-api-0.2> disconnect-test nad-api-0.2> disconnects and closes socket nad-api-0.2> disconnecting twice is safe nad-api-0.2> send-command-validation-test nad-api-0.2> allows supported commands after introspection nad-api-0.2> throws for unsupported commands after introspection nad-api-0.2> allows any command without introspection nad-api-0.2> parse-command-test nad-api-0.2> extracts command name before operator nad-api-0.2> returns nil for invalid commands nad-api-0.2> parse-response-test nad-api-0.2> extracts value after equals sign nad-api-0.2> returns nil for response without equals nad-api-0.2> handles values containing equals sign nad-api-0.2> finds specific command in multi-line response nad-api-0.2> returns nil when command not found in multi-line nad-api-0.2> handles T778-style temperature dump nad-api-0.2> introspect-test nad-api-0.2> sends ? command and parses supported commands nad-api-0.2> filters supported commands against registry nad-api-0.2> parse-introspection-response-test nad-api-0.2> parses multi-line introspection response into set of command names nad-api-0.2> handles empty response nad-api-0.2> filters out lines without equals sign nad-api-0.2> send-command-test nad-api-0.2> sends query command and returns response nad-api-0.2> sends set command and returns response nad-api-0.2> sends increment command and returns response nad-api-0.2> make-config-test nad-api-0.2> creates config with host and defaults nad-api-0.2> allows overriding port nad-api-0.2> allows overriding timeout nad-api-0.2> allows overriding both nad-api-0.2> nad-api-0.2> ol.nad-api.web-test nad-api-0.2> handler-get-test nad-api-0.2> GET queries device and returns JSON nad-api-0.2> GET returns 404 for unknown command nad-api-0.2> GET returns 404 for unknown device nad-api-0.2> handler-post-test nad-api-0.2> POST with = operator sets value nad-api-0.2> POST with + operator increments nad-api-0.2> POST returns 400 for missing operator nad-api-0.2> POST returns 400 for invalid operator nad-api-0.2> POST returns 400 for missing value with = operator nad-api-0.2> available-commands-test nad-api-0.2> intersects supported-commands with registry nad-api-0.2> returns empty set when no overlap nad-api-0.2> returns empty set for nil input nad-api-0.2> returns empty set for empty input nad-api-0.2> handler-multiple-devices-test nad-api-0.2> handler supports multiple devices nad-api-0.2> handler-device-discovery-test nad-api-0.2> GET /api/{device} returns device info and supported commands nad-api-0.2> handler-recovers-from-disconnected-startup-test nad-api-0.2> command routes work after a device starts disconnected nad-api-0.2> make-device-routes-test nad-api-0.2> generates routes for device with commands plus discovery and reconnect nad-api-0.2> device discovery route has only GET handler nad-api-0.2> reconnect route has only POST handler nad-api-0.2> command routes have GET and POST handlers nad-api-0.2> returns discovery and reconnect routes even for empty commands nad-api-0.2> handler-api-root-test nad-api-0.2> GET /api returns list of all devices nad-api-0.2> nad-api-0.2> ol.nad-api-test nad-api-0.2> e2e-connection-and-introspection-test nad-api-0.2> connects to device and discovers supported commands nad-api-0.2> parse-args-test nad-api-0.2> parses --config-file option nad-api-0.2> returns empty map for no args nad-api-0.2> ignores unknown args nad-api-0.2> handles --config-file at end of args nad-api-0.2> xdg-config-home-test nad-api-0.2> returns path ending with .config when XDG_CONFIG_HOME not set nad-api-0.2> e2e-mute-toggle-test nad-api-0.2> mute can be toggled on and off nad-api-0.2> e2e-source-selection-test nad-api-0.2> source can be changed nad-api-0.2> system-starts-when-device-is-unreachable-test nad-api-0.2> api/start does not fail when a configured device is offline nad-api-0.2> e2e-error-handling-test nad-api-0.2> returns 404 for unknown commands nad-api-0.2> returns 400 for invalid operator nad-api-0.2> returns 400 for missing value with = operator nad-api-0.2> e2e-set-power-test nad-api-0.2> POST request changes device power state nad-api-0.2> e2e-volume-control-test nad-api-0.2> volume can be set, incremented, and decremented nad-api-0.2> find-config-file-test nad-api-0.2> uses --config-file option first when file exists nad-api-0.2> falls back to ./config.edn when it exists nad-api-0.2> exception contains searched paths and hint nad-api-0.2> prefers --config-file over ./config.edn nad-api-0.2> e2e-home-assistant-workflow-test nad-api-0.2> simulates Home Assistant switch integration workflow nad-api-0.2> e2e-query-state-test nad-api-0.2> GET request returns current device state nad-api-0.2> nad-api-0.2> ol.nad-api.commands-test nad-api-0.2> valid-operator-test nad-api-0.2> validates operators for main commands nad-api-0.2> model and version only support query operator nad-api-0.2> zone2 commands support standard operators nad-api-0.2> returns false for unknown commands nad-api-0.2> build-command-test nad-api-0.2> builds query commands nad-api-0.2> builds set commands with values nad-api-0.2> builds increment/decrement commands nad-api-0.2> commands-registry-test nad-api-0.2> commands map exists and contains expected Main domain keys nad-api-0.2> commands map contains Zone2 domain keys nad-api-0.2> each command has required keys nad-api-0.2> nad-api-0.2> ol.nad-api.sockets-test nad-api-0.2> connect-test nad-api-0.2> connects to a server and returns a socket nad-api-0.2> throws on connection timeout to unreachable host nad-api-0.2> write-test nad-api-0.2> writes string to socket nad-api-0.2> close-test nad-api-0.2> closes an open socket nad-api-0.2> closing already closed socket is safe nad-api-0.2> read-until-test nad-api-0.2> reads until delimiter character nad-api-0.2> reads multiple segments until delimiter nad-api-0.2> nad-api-0.2> 39 tests, 245 assertions, 0 failures. nad-api-0.2> checkPhase completed in 34 seconds nad-api-0.2> Running phase: installPhase nad-api-0.2> Running phase: fixupPhase nad-api-0.2> shrinking RPATHs of ELF executables and libraries in /nix/store/ksvrr9nwk4zrcvpg7kp4kn616cdrs5h9-nad-api-0.2 nad-api-0.2> checking for references to /build/ in /nix/store/ksvrr9nwk4zrcvpg7kp4kn616cdrs5h9-nad-api-0.2... nad-api-0.2> patching script interpreter paths in /nix/store/ksvrr9nwk4zrcvpg7kp4kn616cdrs5h9-nad-api-0.2 nad-api-0.2> stripping (with command strip and flags -S -p) in /nix/store/ksvrr9nwk4zrcvpg7kp4kn616cdrs5h9-nad-api-0.2/bin