Case
sendspin-server-cpp -> sendspin-rs
Start the server first, then the client. The client discovers or looks up the server, initiates the WebSocket connection, advertises PCM as its only supported audio format, streams audio derived from almost_silent.flac, and compares canonical PCM hashes.
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; Client adapter reported: Failed to connect to ws://127.0.0.1:18937/sendspin: Protocol error: 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__client-initiated-pcm__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; Client adapter reported: Failed to connect to ws://127.0.0.1:18937/sendspin: Protocol error: 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": "client-initiated-pcm",
"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": "client",
"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": "pcm",
"sample_rate": 8000
}
]
},
"supported_roles": [
"player@v1"
],
"version": 1
},
"type": "client/hello"
},
"preferred_codec": "pcm",
"reason": "the client sent client/hello but never took the connection with a client/state after server/activate; handshake failed",
"role": "server",
"scenario_id": "client-initiated-pcm",
"server_id": "dkMGK7Df8KCvQuWh2HYePkQKu9TbML0ftvoE9L4H-E0",
"server_name": "sendspin-server-cpp server",
"status": "error",
"time_exchange": []
}Server log
RAWsendspin-server-cpp: handshake with 127.0.0.1:49327 failed: client/init rejected (malformed)
listener: handshake failed
{
"status": "error",
"implementation": "sendspin-server-cpp",
"role": "server",
"server_name": "sendspin-server-cpp server",
"scenario_id": "client-initiated-pcm",
"initiator_role": "client",
"preferred_codec": "pcm",
"reason": "the client sent client/hello but never took the connection with a client/state after server/activate; handshake failed",
"server_id": "dkMGK7Df8KCvQuWh2HYePkQKu9TbML0ftvoE9L4H-E0",
"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": "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": "client",
"peer_hello": null,
"preferred_codec": "pcm",
"reason": "Failed to connect to ws://127.0.0.1:18937/sendspin: Protocol error: 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": "client-initiated-pcm",
"server": null,
"status": "error",
"stream": null
}Client log
RAWFailed to connect to ws://127.0.0.1:18937/sendspin: Protocol error: 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
{"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":"client","peer_hello":null,"preferred_codec":"pcm","reason":"Failed to connect to ws://127.0.0.1:18937/sendspin: Protocol error: 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":"client-initiated-pcm","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