make[1]: Entering directory '/home/runner/work/moq-interop-runner/moq-interop-runner/main' rm -rf mlog/ mkdir -p mlog/relay mlog/client Running interop tests... Relay: ghcr.io/endel/quic-zig-moq-relay:latest Client: ghcr.io/englishm/moq-interop-runner-stitcher-moq-client:latest URL: https://relay:4443 time="2026-10-06T01:12:21Z" level=warning msg="The \"PORT\" variable is not set. Defaulting to a blank string." time="2026-10-06T01:12:21Z" level=warning msg="The \"PORT\" variable is not set. Defaulting to a blank string." time="2026-10-06T01:12:21Z" level=warning msg="The \"PORT\" variable is not set. Defaulting to a blank string." time="2026-10-06T01:12:21Z" level=warning msg="The \"HEX\" variable is not set. Defaulting to a blank string." time="2026-10-06T01:12:21Z" level=warning msg="The \"HEX\" variable is not set. Defaulting to a blank string." Container main-relay-1 Recreate Container main-relay-1 Recreated Container main-test-client-1 Recreate Container main-test-client-1 Recreated Attaching to relay-1, test-client-1 relay-1 | relay-1 | === MoQ Relay (draft-17/18, WebTransport + QUIC) === relay-1 | Certificate SHA-256: 4f0ca0b119c3f60e0feb4c020903ffc446378c53cd23cc0aa8b7b9084b77ebe7 relay-1 | relay-1 | Listening on https://0.0.0.0:4443 relay-1 | Video demo: https://127.0.0.1:4443/moq_video.html relay-1 | Clock demo: https://127.0.0.1:4443/moq.html relay-1 | test-client-1 | TAP version 14 test-client-1 | # stitcher-moq-client v0.2.0 (moq-net 0.3.8 via moq-tokio 0.19.20) test-client-1 | # Relay: https://relay:4443 test-client-1 | # Offered: moq-transport-22, moq-transport-21, moq-transport-20, moq-transport-19, moq-transport-18, moq-transport-17, moq-transport-16, moq-transport-15, moq-transport-14 test-client-1 | 1..7 relay-1 | [relay] client 0 connected (WT session 0, moqt-18) test-client-1 | ok 1 - setup-only test-client-1 | --- test-client-1 | duration_ms: 45 test-client-1 | negotiated: moq-transport-18 test-client-1 | ... relay-1 | [relay] client 0 SETUP received relay-1 | [relay] client 0 gone relay-1 | [relay] client 0 connected (WT session 0, moqt-18) relay-1 | [relay] PUBLISH_NAMESPACE client=0 ns="moq-test/interop/" relay-1 | [relay] client 0 SETUP received test-client-1 | ok 2 - announce-only test-client-1 | --- test-client-1 | duration_ms: 703 test-client-1 | negotiated: moq-transport-18 test-client-1 | outcome: "PUBLISH_NAMESPACE not rejected: session healthy 700 ms later (moq-net does not surface PUBLISH_NAMESPACE_OK)" relay-1 | [relay] client 0 gone test-client-1 | ... relay-1 | [relay] client 0 connected (WT session 0, moqt-18) relay-1 | [relay] PUBLISH_NAMESPACE client=0 ns="moq-test/interop/" relay-1 | [relay] client 0 SETUP received test-client-1 | ok 3 - publish-namespace-done test-client-1 | --- test-client-1 | duration_ms: 804 test-client-1 | negotiated: moq-transport-18 test-client-1 | outcome: "PUBLISH_NAMESPACE_DONE sent; session healthy 300 ms later" test-client-1 | ... relay-1 | [relay] client 0 gone relay-1 | [relay] client 0 connected (WT session 0, moqt-18) relay-1 | [relay] SUBSCRIBE_NAMESPACE client=0 prefix="nonexistent/namespace/" relay-1 | [relay] client 0 SETUP received test-client-1 | ok 4 - subscribe-error # SKIP moq-net answers a request for an unannounced path locally (unroutable); no SUBSCRIBE reached the relay test-client-1 | --- test-client-1 | duration_ms: 305 test-client-1 | negotiated: moq-transport-18 test-client-1 | outcome: "request answered locally: unroutable" test-client-1 | ... test-client-1 | ok 5 - rendezvous-timeout # SKIP not implemented: moq-net 0.3 cannot put RENDEZVOUS_TIMEOUT on a SUBSCRIBE test-client-1 | --- relay-1 | [relay] client 0 gone test-client-1 | duration_ms: 0 test-client-1 | ... relay-1 | [relay] client 0 connected (WT session 0, moqt-18) relay-1 | [relay] PUBLISH_NAMESPACE client=0 ns="moq-test/interop/" relay-1 | [relay] client 0 SETUP received relay-1 | [relay] client 1 connected (WT session 0, moqt-18) relay-1 | [relay] SUBSCRIBE_NAMESPACE client=1 prefix="moq-test/interop/" relay-1 | [relay] → 1 NAMESPACE to client 1 relay-1 | [relay] client 1 SETUP received relay-1 | [relay] SUBSCRIBE client=1 ns="moq-test/interop/" track="test-track" relay-1 | [relay] SUBSCRIBE → publisher client 0 ns="moq-test/interop/" track="test-track" relay-1 | [relay] SUBSCRIBE_OK ← publisher client 0 alias=1 relay-1 | [relay] client 1 gone test-client-1 | ok 6 - announce-subscribe test-client-1 | --- test-client-1 | duration_ms: 610 test-client-1 | negotiated: moq-transport-18 test-client-1 | outcome: "relay routed the SUBSCRIBE to the publisher (0 ms), no REQUEST_ERROR followed" test-client-1 | ... relay-1 | [relay] client 0 gone relay-1 | [relay] client 0 connected (WT session 0, moqt-18) relay-1 | [relay] SUBSCRIBE_NAMESPACE client=0 prefix="moq-test/interop/" relay-1 | [relay] client 0 SETUP received relay-1 | [relay] client 1 connected (WT session 0, moqt-18) relay-1 | [relay] PUBLISH_NAMESPACE client=1 ns="moq-test/interop/" relay-1 | [relay] client 1 SETUP received relay-1 | [relay] SUBSCRIBE client=0 ns="moq-test/interop/" track="test-track" relay-1 | [relay] SUBSCRIBE → publisher client 1 ns="moq-test/interop/" track="test-track" relay-1 | [relay] SUBSCRIBE_OK ← publisher client 1 alias=1 relay-1 | [relay] client 0 gone test-client-1 | ok 7 - subscribe-before-announce test-client-1 | --- test-client-1 | duration_ms: 1411 test-client-1 | negotiated: moq-transport-18 test-client-1 | outcome: "subscriber connected first; nothing resolved until the late announce, which the relay routed to it; the SUBSCRIBE then reached the publisher (0 ms), no REQUEST_ERROR followed (moq-net sends SUBSCRIBE only after an announce)" test-client-1 | ... relay-1 | [relay] client 1 gone test-client-1 exited with code 0 Aborting on container exit... Container main-test-client-1 Stopping Container main-test-client-1 Stopped Container main-relay-1 Stopping Container main-relay-1 Stopped Test results in mlog/ make[1]: Leaving directory '/home/runner/work/moq-interop-runner/moq-interop-runner/main'