Case
sendspin-server-cpp -> sendspin-rs
Start the server first, then the client. The server loads the PCM audio derived from almost_silent.flac, the client advertises a listener and FLAC as its only supported audio format, the server connects in, uses the SDK to encode the PCM into FLAC, streams it to the client, and the matrix compares the transported FLAC header and chunk bytes as received by the client. Where the client reports the audio it decoded and the stream kept the source's sample rate and channel count, the matrix also compares its canonical PCM hash against the source clip, so a stream that arrived intact but incomplete fails.
Server
sendspin-server-cpp
Client
sendspin-rs
Status
Failed
Server adapter reported: the client sent client/hello but never took the connection with a client/state after server/activate; handshake failed for ws://127.0.0.1:20009/sendspin; dial failed for ws://127.0.0.1:20009/sendspin; dial failed for ws://127.0.0.1:20009/sendspin; dial failed for ws://127.0.0.1:20009/sendspin; dial failed for ws://127.0.0.1:20009/sendspin; dial failed for ws://127.0.0.1:20009/sendspin; Client adapter reported: unknown variant `server/error`, expected one of `client/hello`, `server/hello`, `client/time`, `server/time`, `client/state`, `server/state`, `server/command`, `client/command`, `stream/start`, `stream/end`, `stream/clear`, `stream/request-format`, `group/update`, `client/goodbye` at line 1 column 22
Server activation
Initial server/activate
What the sendspin-server-cpp server's own adapter recorded for its first server/activate on this connection, reported as sent. The case fails when none was sent, when its activities are not unique values from playback and pairing, or when it omits active_roles. Nothing else in it is checked against the specification: which activities and roles the matched PSK allows is not judged. A recording that cannot be read as that message is shown whole and not judged either.
No server/activate observed
The sendspin-server-cpp server sent no server/activate on this connection, according to its adapter.
Server group state
Every group/update after activation
What the sendspin-server-cpp server's own adapter recorded for each group/update it sent after its first server/activate on this connection, in order and reported as sent. The case fails when none followed, or when in any of them playback_state is not playing or stopped, or group_id or group_name is missing or not a string. How soon the first followed is not judged, because the specification says promptly and gives no bound, so one sent at any point in the case counts. Whether a change to a field produced a further message is not judged either. A recording of anything other than that message is shown whole and fails the case as a harness gap.
No group/update observed after a server/activate
The sendspin-server-cpp server sent no group/update after a first server/activate on this connection, according to its adapter. One sent on a connection that never carried a server/activate is not recorded here.
Inspection
Summaries, logs, and builds
Matrix result
RAW{
"case_dir": "artifacts/results/data/macos__server-initiated-flac__sendspin-server-cpp__to__sendspin-rs",
"client_exit_code": 1,
"client_impl": "sendspin-rs",
"reason": "Server adapter reported: the client sent client/hello but never took the connection with a client/state after server/activate; handshake failed for ws://127.0.0.1:20009/sendspin; dial failed for ws://127.0.0.1:20009/sendspin; dial failed for ws://127.0.0.1:20009/sendspin; dial failed for ws://127.0.0.1:20009/sendspin; dial failed for ws://127.0.0.1:20009/sendspin; dial failed for ws://127.0.0.1:20009/sendspin; Client adapter reported: unknown variant `server/error`, expected one of `client/hello`, `server/hello`, `client/time`, `server/time`, `client/state`, `server/state`, `server/command`, `client/command`, `stream/start`, `stream/end`, `stream/clear`, `stream/request-format`, `group/update`, `client/goodbye` at line 1 column 22",
"scenario_id": "server-initiated-flac",
"scenario_revision": 6,
"server_exit_code": 1,
"server_impl": "sendspin-server-cpp",
"status": "failed",
"unsupported": false
}Server summary (JSON)
RAW{
"activation": null,
"availability_trace": [],
"group_updates": [],
"implementation": "sendspin-server-cpp",
"initiator_role": "server",
"peer_hello": {
"payload": {
"client_id": "sendspin-rs-client-id",
"device_info": {
"manufacturer": "Sendspin Conformance",
"product_name": "sendspin-rs Conformance Client",
"software_version": "0.1.0"
},
"name": "sendspin-rs-client",
"player@v1_support": {
"buffer_capacity": 2000000,
"supported_commands": [
"volume",
"mute"
],
"supported_formats": [
{
"bit_depth": 16,
"channels": 1,
"codec": "flac",
"sample_rate": 8000
},
{
"bit_depth": 16,
"channels": 1,
"codec": "pcm",
"sample_rate": 8000
}
]
},
"supported_roles": [
"player@v1"
],
"version": 1
},
"type": "client/hello"
},
"preferred_codec": "flac",
"reason": "the client sent client/hello but never took the connection with a client/state after server/activate; handshake failed for ws://127.0.0.1:20009/sendspin; dial failed for ws://127.0.0.1:20009/sendspin; dial failed for ws://127.0.0.1:20009/sendspin; dial failed for ws://127.0.0.1:20009/sendspin; dial failed for ws://127.0.0.1:20009/sendspin; dial failed for ws://127.0.0.1:20009/sendspin",
"role": "server",
"scenario_id": "server-initiated-flac",
"server_id": "g9Cj69rbkuj9k9N3R-Y00QpglrGTYGu3VpRPGhRVoTU",
"server_name": "sendspin-server-cpp server",
"status": "error",
"time_exchange": []
}Server log
RAWsendspin-server-cpp: dialing ws://127.0.0.1:20009/sendspin for playback
sendspin-server-cpp: handshake with ws://127.0.0.1:20009/sendspin failed: client/init rejected (malformed)
listener: handshake failed for ws://127.0.0.1:20009/sendspin
sendspin-server-cpp: next dial to ws://127.0.0.1:20009/sendspin in 999 ms (1 failed in a row)
sendspin-server-cpp: dialing ws://127.0.0.1:20009/sendspin for playback
sendspin-server-cpp: dial to ws://127.0.0.1:20009/sendspin failed: the connection failed
listener: dial failed for ws://127.0.0.1:20009/sendspin
sendspin-server-cpp: next dial to ws://127.0.0.1:20009/sendspin in 1999 ms (2 failed in a row)
sendspin-server-cpp: dialing ws://127.0.0.1:20009/sendspin for playback
sendspin-server-cpp: dial to ws://127.0.0.1:20009/sendspin failed: the connection failed
listener: dial failed for ws://127.0.0.1:20009/sendspin
sendspin-server-cpp: next dial to ws://127.0.0.1:20009/sendspin in 3999 ms (3 failed in a row)
sendspin-server-cpp: dialing ws://127.0.0.1:20009/sendspin for playback
sendspin-server-cpp: dial to ws://127.0.0.1:20009/sendspin failed: the connection failed
listener: dial failed for ws://127.0.0.1:20009/sendspin
sendspin-server-cpp: next dial to ws://127.0.0.1:20009/sendspin in 7999 ms (4 failed in a row)
sendspin-server-cpp: dialing ws://127.0.0.1:20009/sendspin for playback
sendspin-server-cpp: dial to ws://127.0.0.1:20009/sendspin failed: the connection failed
listener: dial failed for ws://127.0.0.1:20009/sendspin
sendspin-server-cpp: next dial to ws://127.0.0.1:20009/sendspin in 15999 ms (5 failed in a row)
sendspin-server-cpp: dialing ws://127.0.0.1:20009/sendspin for playback
sendspin-server-cpp: dial to ws://127.0.0.1:20009/sendspin failed: the connection failed
listener: dial failed for ws://127.0.0.1:20009/sendspin
sendspin-server-cpp: next dial to ws://127.0.0.1:20009/sendspin in 31999 ms (6 failed in a row)
{
"status": "error",
"implementation": "sendspin-server-cpp",
"role": "server",
"server_name": "sendspin-server-cpp server",
"scenario_id": "server-initiated-flac",
"initiator_role": "server",
"preferred_codec": "flac",
"reason": "the client sent client/hello but never took the connection with a client/state after server/activate; handshake failed for ws://127.0.0.1:20009/sendspin; dial failed for ws://127.0.0.1:20009/sendspin; dial failed for ws://127.0.0.1:20009/sendspin; dial failed for ws://127.0.0.1:20009/sendspin; dial failed for ws://127.0.0.1:20009/sendspin; dial failed for ws://127.0.0.1:20009/sendspin",
"server_id": "g9Cj69rbkuj9k9N3R-Y00QpglrGTYGu3VpRPGhRVoTU",
"peer_hello": {
"type": "client/hello",
"payload": {
"client_id": "sendspin-rs-client-id",
"name": "sendspin-rs-client",
"version": 1,
"supported_roles": [
"player@v1"
],
"device_info": {
"product_name": "sendspin-rs Conformance Client",
"manufacturer": "Sendspin Conformance",
"software_version": "0.1.0"
},
"player@v1_support": {
"supported_formats": [
{
"codec": "flac",
"channels": 1,
"sample_rate": 8000,
"bit_depth": 16
},
{
"codec": "pcm",
"channels": 1,
"sample_rate": 8000,
"bit_depth": 16
}
],
"buffer_capacity": 2000000,
"supported_commands": [
"volume",
"mute"
]
}
}
},
"activation": null,
"group_updates": [],
"availability_trace": [],
"time_exchange": []
}
Client summary (JSON)
RAW{
"audio": {
"audio_chunk_count": 0,
"received_encoded_sha256": null,
"received_pcm_sha256": null,
"received_sample_count": 0
},
"client_id": "sendspin-rs-client-id",
"client_name": "sendspin-rs-client",
"implementation": "sendspin-rs",
"initiator_role": "server",
"peer_hello": null,
"preferred_codec": "flac",
"reason": "unknown variant `server/error`, expected one of `client/hello`, `server/hello`, `client/time`, `server/time`, `client/state`, `server/state`, `server/command`, `client/command`, `stream/start`, `stream/end`, `stream/clear`, `stream/request-format`, `group/update`, `client/goodbye` at line 1 column 22",
"role": "client",
"scenario_id": "server-initiated-flac",
"server": null,
"status": "error",
"stream": null
}Client log
RAWunknown variant `server/error`, expected one of `client/hello`, `server/hello`, `client/time`, `server/time`, `client/state`, `server/state`, `server/command`, `client/command`, `stream/start`, `stream/end`, `stream/clear`, `stream/request-format`, `group/update`, `client/goodbye` at line 1 column 22
{"audio":{"audio_chunk_count":0,"received_encoded_sha256":null,"received_pcm_sha256":null,"received_sample_count":0},"client_id":"sendspin-rs-client-id","client_name":"sendspin-rs-client","implementation":"sendspin-rs","initiator_role":"server","peer_hello":null,"preferred_codec":"flac","reason":"unknown variant `server/error`, expected one of `client/hello`, `server/hello`, `client/time`, `server/time`, `client/state`, `server/state`, `server/command`, `client/command`, `stream/start`, `stream/end`, `stream/clear`, `stream/request-format`, `group/update`, `client/goodbye` at line 1 column 22","role":"client","scenario_id":"server-initiated-flac","server":null,"status":"error","stream":null}Server build log · sendspin-server-cpp-server · built · 161.45s
RAWp-server.dir/trace_recorder.cpp.o
[100%] Linking CXX executable conformance-sendspin-server-cpp-server
[100%] Built target conformance-sendspin-server-cpp-server
/Users/runner/work/conformance/conformance/adapters/sendspin-server-cpp/server/build/_deps/noise_c-src/src/crypto/donna/poly1305-donna.c:21:6: warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
21 | #if (HAS_SIZEOF_INT128_64BIT || HAS_MSVC_64BIT || HAS_GCC_4_4_64BIT)
| ^
/Users/runner/work/conformance/conformance/adapters/sendspin-server-cpp/server/build/_deps/noise_c-src/src/crypto/donna/poly1305-donna.c:17:34: note: expanded from macro 'HAS_SIZEOF_INT128_64BIT'
17 | #define HAS_SIZEOF_INT128_64BIT (defined(__SIZEOF_INT128__) && defined(__LP64__))
| ^
/Users/runner/work/conformance/conformance/adapters/sendspin-server-cpp/server/build/_deps/noise_c-src/src/crypto/donna/poly1305-donna.c:21:6: warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
/Users/runner/work/conformance/conformance/adapters/sendspin-server-cpp/server/build/_deps/noise_c-src/src/crypto/donna/poly1305-donna.c:17:64: note: expanded from macro 'HAS_SIZEOF_INT128_64BIT'
17 | #define HAS_SIZEOF_INT128_64BIT (defined(__SIZEOF_INT128__) && defined(__LP64__))
| ^
/Users/runner/work/conformance/conformance/adapters/sendspin-server-cpp/server/build/_deps/noise_c-src/src/crypto/donna/poly1305-donna.c:21:33: warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
21 | #if (HAS_SIZEOF_INT128_64BIT || HAS_MSVC_64BIT || HAS_GCC_4_4_64BIT)
| ^
/Users/runner/work/conformance/conformance/adapters/sendspin-server-cpp/server/build/_deps/noise_c-src/src/crypto/donna/poly1305-donna.c:18:25: note: expanded from macro 'HAS_MSVC_64BIT'
18 | #define HAS_MSVC_64BIT (defined(_MSC_VER) && defined(_M_X64))
| ^
/Users/runner/work/conformance/conformance/adapters/sendspin-server-cpp/server/build/_deps/noise_c-src/src/crypto/donna/poly1305-donna.c:21:33: warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
/Users/runner/work/conformance/conformance/adapters/sendspin-server-cpp/server/build/_deps/noise_c-src/src/crypto/donna/poly1305-donna.c:18:46: note: expanded from macro 'HAS_MSVC_64BIT'
18 | #define HAS_MSVC_64BIT (defined(_MSC_VER) && defined(_M_X64))
| ^
/Users/runner/work/conformance/conformance/adapters/sendspin-server-cpp/server/build/_deps/noise_c-src/src/crypto/donna/poly1305-donna.c:21:51: warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
21 | #if (HAS_SIZEOF_INT128_64BIT || HAS_MSVC_64BIT || HAS_GCC_4_4_64BIT)
| ^
/Users/runner/work/conformance/conformance/adapters/sendspin-server-cpp/server/build/_deps/noise_c-src/src/crypto/donna/poly1305-donna.c:19:28: note: expanded from macro 'HAS_GCC_4_4_64BIT'
19 | #define HAS_GCC_4_4_64BIT (defined(__GNUC__) && defined(__LP64__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4))))
| ^
/Users/runner/work/conformance/conformance/adapters/sendspin-server-cpp/server/build/_deps/noise_c-src/src/crypto/donna/poly1305-donna.c:21:51: warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
/Users/runner/work/conformance/conformance/adapters/sendspin-server-cpp/server/build/_deps/noise_c-src/src/crypto/donna/poly1305-donna.c:19:49: note: expanded from macro 'HAS_GCC_4_4_64BIT'
19 | #define HAS_GCC_4_4_64BIT (defined(__GNUC__) && defined(__LP64__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4))))
| ^
6 warnings generated.Client build log · sendspin-rs-client · built · 27.81s
RAWm[92m Compiling[0m smallvec v1.15.1 [1m[92m Compiling[0m scopeguard v1.2.0 [1m[92m Compiling[0m serde_core v1.0.228 [1m[92m Compiling[0m lock_api v0.4.14 [1m[92m Compiling[0m objc2-core-foundation v0.3.2 [1m[92m Compiling[0m rand_core v0.9.5 [1m[92m Compiling[0m http v1.4.0 [1m[92m Compiling[0m sha1 v0.10.6 [1m[92m Compiling[0m objc2-foundation v0.3.2 [1m[92m Compiling[0m objc2-core-audio-types v0.3.2 [1m[92m Compiling[0m errno v0.3.14 [1m[92m Compiling[0m getrandom v0.2.17 [1m[92m Compiling[0m thiserror v2.0.18 [1m[92m Compiling[0m pin-project-lite v0.2.17 [1m[92m Compiling[0m log v0.4.29 [1m[92m Compiling[0m data-encoding v2.10.0 [1m[92m Compiling[0m memchr v2.8.0 [1m[92m Compiling[0m objc2-core-audio v0.3.2 [1m[92m Compiling[0m rand_core v0.6.4 [1m[92m Compiling[0m signal-hook-registry v1.4.8 [1m[92m Compiling[0m rand_chacha v0.9.0 [1m[92m Compiling[0m parking_lot v0.12.5 [1m[92m Compiling[0m tokio-macros v2.7.0 [1m[92m Compiling[0m thiserror-impl v2.0.18 [1m[92m Compiling[0m futures-macro v0.3.32 [1m[92m Compiling[0m mio v1.2.2 [1m[92m Compiling[0m socket2 v0.6.3 [1m[92m Compiling[0m zmij v1.0.21 [1m[92m Compiling[0m thiserror v1.0.69 [1m[92m Compiling[0m futures-sink v0.3.32 [1m[92m Compiling[0m getrandom v0.4.2 [1m[92m Compiling[0m utf8parse v0.2.2 [1m[92m Compiling[0m slab v0.4.12 [1m[92m Compiling[0m futures-task v0.3.32 [1m[92m Compiling[0m futures-core v0.3.32 [1m[92m Compiling[0m anstyle-parse v0.2.7 [1m[92m Compiling[0m futures-util v0.3.32 [1m[92m Compiling[0m tokio v1.52.3 [1m[92m Compiling[0m rand v0.9.5 [1m[92m Compiling[0m rand_chacha v0.3.1 [1m[92m Compiling[0m no_std_io2 v0.9.4 [1m[92m Compiling[0m objc2-audio-toolbox v0.3.2 [1m[92m Compiling[0m crossbeam-epoch v0.9.18 [1m[92m Compiling[0m thiserror-impl v1.0.69 [1m[92m Compiling[0m anstyle v1.0.13 [1m[92m Compiling[0m cpal v0.18.1 [1m[92m Compiling[0m serde v1.0.228 [1m[92m Compiling[0m is_terminal_polyfill v1.70.2 [1m[92m Compiling[0m anstyle-query v1.1.5 [1m[92m Compiling[0m serde_json v1.0.149 [1m[92m Compiling[0m colorchoice v1.0.4 [1m[92m Compiling[0m anstream v0.6.21 [1m[92m Compiling[0m crossbeam-deque v0.8.6 [1m[92m Compiling[0m coreaudio-rs v0.14.2 [1m[92m Compiling[0m bitstream-io v4.10.0 [1m[92m Compiling[0m rand v0.8.5 [1m[92m Compiling[0m tungstenite v0.29.0 [1m[92m Compiling[0m crossbeam-channel v0.5.15 [1m[92m Compiling[0m crossbeam-queue v0.3.12 [1m[92m Compiling[0m serde_derive v1.0.228 [1m[92m Compiling[0m typed-builder-macro v0.23.2 [1m[92m Compiling[0m byteorder v1.5.0 [1m[92m Compiling[0m heck v0.5.0 [1m[92m Compiling[0m clap_lex v1.0.0 [1m[92m Compiling[0m md5 v0.8.1 [1m[92m Compiling[0m mach2 v0.6.0 [1m[92m Compiling[0m arrayvec v0.7.8 [1m[92m Compiling[0m utf-8 v0.7.6 [1m[92m Compiling[0m strsim v0.11.1 [1m[92m Compiling[0m dasp_sample v0.11.0 [1m[92m Compiling[0m clap_builder v4.5.60 [1m[92m Compiling[0m tungstenite v0.24.0 [1m[92m Compiling[0m flac-codec v1.3.2 [1m[92m Compiling[0m clap_derive v4.5.55 [1m[92m Compiling[0m typed-builder v0.23.2 [1m[92m Compiling[0m crossbeam v0.8.4 [1m[92m Compiling[0m uuid v1.23.5 [1m[92m Compiling[0m tokio-tungstenite v0.29.0 [1m[92m Compiling[0m opus-rs v0.1.23 [1m[92m Compiling[0m clap v4.5.60 [1m[92m Compiling[0m tokio-tungstenite v0.24.0 [1m[92m Compiling[0m sha2 v0.10.9 [1m[92m Compiling[0m sendspin v0.3.8 (/Users/runner/work/conformance/conformance/repos/sendspin-rs) [1m[92m Compiling[0m conformance-sendspin-rs-client v0.1.0 (/Users/runner/work/conformance/conformance/adapters/sendspin-rs/client) [1m[92m Finished[0m `dev` profile [unoptimized + debuginfo] target(s) in 27.65s