<testsuites>
	<testsuite tests="2" failures="0" time="1.013" name="github.com/ably/ably-pubsub-go/device/pubsub">
		<properties>
			<property name="go.version" value="go1.26.9"></property>
		</properties>
		<testcase classname="pubsub" name="TestReExportedAPIIsSelfContained" time="0.000"></testcase>
		<testcase classname="pubsub" name="TestNewClient_DeclaresDeviceAgent" time="0.000"></testcase>
	</testsuite>
	<testsuite tests="241" failures="8" time="114.931" name="github.com/ably/ably-pubsub-go/internal/ably">
		<properties>
			<property name="go.version" value="go1.26.9"></property>
		</properties>
		<testcase classname="ably" name="Test_errorInfo_String" time="0.000"></testcase>
		<testcase classname="ably" name="Test_errorInfo_String/error_with_all_fields" time="0.000"></testcase>
		<testcase classname="ably" name="Test_errorInfo_String/error_with_no_href" time="0.000"></testcase>
		<testcase classname="ably" name="Test_errorInfo_String/error_with_no_server" time="0.000"></testcase>
		<testcase classname="ably" name="Test_errorInfo_String/nil_error" time="0.000"></testcase>
		<testcase classname="ably" name="Test_decodeMessage" time="0.000">
			<failure message="Failed" type="">    proto_message_decoding_test.go:42: </failure>
		</testcase>
		<testcase classname="ably" name="TestMsgpackExtrasJsonCompatible" time="0.000"></testcase>
		<testcase classname="ably" name="TestMsgpackDecoding" time="0.000">
			<failure message="Failed" type="">    proto_message_decoding_test.go:140: </failure>
		</testcase>
		<testcase classname="ably" name="TestDeltaExtras_extractDeltaExtras" time="0.000"></testcase>
		<testcase classname="ably" name="TestDeltaExtras_extractDeltaExtras/nil_extras" time="0.000"></testcase>
		<testcase classname="ably" name="TestDeltaExtras_extractDeltaExtras/empty_extras" time="0.000"></testcase>
		<testcase classname="ably" name="TestDeltaExtras_extractDeltaExtras/no_delta_field" time="0.000"></testcase>
		<testcase classname="ably" name="TestDeltaExtras_extractDeltaExtras/valid_delta_extras" time="0.000"></testcase>
		<testcase classname="ably" name="TestDeltaExtras_extractDeltaExtras/partial_delta_extras" time="0.000"></testcase>
		<testcase classname="ably" name="TestDeltaExtras_extractDeltaExtras/invalid_delta_format" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessage_withDecodedDataAndContext" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessage_withDecodedDataAndContext/message_without_encoding" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessage_withDecodedDataAndContext/base64_encoded_message" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessage_withDecodedDataAndContext/utf-8_encoded_message" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessage_withDecodedDataAndContext/json_encoded_message" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessage_withDecodedDataAndContext/vcdiff_without_plugin" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessage_withDecodedDataAndContext/vcdiff_without_base_payload" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessage_withDecodedDataAndContext/successful_vcdiff_decoding" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessage_withDecodedDataAndContext_MultipleEncodings" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessage_withDecodedDataAndContext_VCDiffWithBase64" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessageAction_JSON_Encoding" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessageAction_JSON_Encoding/MESSAGE_CREATE" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessageAction_JSON_Encoding/MESSAGE_UPDATE" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessageAction_JSON_Encoding/MESSAGE_DELETE" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessageAction_JSON_Encoding/META" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessageAction_JSON_Encoding/MESSAGE_SUMMARY" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessageAction_JSON_Encoding/MESSAGE_APPEND" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessageAction_JSON_Decoding" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessageAction_JSON_Decoding/0" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessageAction_JSON_Decoding/1" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessageAction_JSON_Decoding/2" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessageAction_JSON_Decoding/3" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessageAction_JSON_Decoding/4" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessageAction_JSON_Decoding/5" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessageAction_JSON_Decoding/999" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessageAction_Codec_Encoding" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessageAction_Codec_Encoding/MESSAGE_CREATE" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessageAction_Codec_Encoding/MESSAGE_UPDATE" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessageAction_Codec_Encoding/MESSAGE_DELETE" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessageAction_Codec_Encoding/META" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessageAction_Codec_Encoding/MESSAGE_SUMMARY" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessageAction_Codec_Encoding/MESSAGE_APPEND" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessageAction_Codec_Decoding" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessageAction_Codec_Decoding/MESSAGE_CREATE" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessageAction_Codec_Decoding/MESSAGE_UPDATE" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessageAction_Codec_Decoding/MESSAGE_DELETE" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessageAction_Codec_Decoding/META" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessageAction_Codec_Decoding/MESSAGE_SUMMARY" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessageAction_Codec_Decoding/MESSAGE_APPEND" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessageAction_Codec_Decoding/UNKNOWN" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessageVersion_Serialization" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessage_NewFields_Serialization" time="0.000"></testcase>
		<testcase classname="ably" name="TestValidateMessageSerial" time="0.000"></testcase>
		<testcase classname="ably" name="TestValidateMessageSerial/nil_message" time="0.000"></testcase>
		<testcase classname="ably" name="TestValidateMessageSerial/empty_serial" time="0.000"></testcase>
		<testcase classname="ably" name="TestValidateMessageSerial/valid_serial" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtimeExperimentalObjects_PublishObjects" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtimeExperimentalObjects_PublishObjects/successful_publish_with_single_message" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtimeExperimentalObjects_PublishObjects/successful_publish_with_multiple_messages" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtimeExperimentalObjects_PublishObjects/error_when_no_plugin_configured" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtimeExperimentalObjects_PublishObjects/error_during_prepare_object" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtimeExperimentalObjects_PublishObjects/error_during_send" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtimeExperimentalObjects_PublishObjects/error_during_ack" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtimeExperimentalObjects_PublishObjectsContextCancellation" time="0.000"></testcase>
		<testcase classname="ably" name="TestVCDiffPlugin" time="0.000"></testcase>
		<testcase classname="ably" name="TestVCDiffPlugin/implements_VCDiffDecoder_interface" time="0.000"></testcase>
		<testcase classname="ably" name="TestVCDiffPlugin/returns_AblyVCDiffDecoder_type" time="0.000"></testcase>
		<testcase classname="ably" name="TestVCDiffPlugin/handle_empty_delta" time="0.000"></testcase>
		<testcase classname="ably" name="TestVCDiffPlugin/handle_nil_inputs" time="0.000"></testcase>
		<testcase classname="ably" name="TestVCDiffPlugin/handle_invalid_vcdiff_data" time="0.000"></testcase>
		<testcase classname="ably" name="TestVCDiffPlugin/decode_with_empty_base" time="0.000"></testcase>
		<testcase classname="ably" name="TestVCDiffPlugin_Integration" time="0.000"></testcase>
		<testcase classname="ably" name="TestVCDiffPlugin_Integration/can_be_used_as_VCDiffDecoder_in_DecodingContext" time="0.000"></testcase>
		<testcase classname="ably" name="TestVCDiffPlugin_Integration/can_be_used_with_WithVCDiffPlugin_option" time="0.000"></testcase>
		<testcase classname="ably" name="TestVCDiffPlugin_Integration/plugin_is_reusable_across_multiple_decodes" time="0.000"></testcase>
		<testcase classname="ably" name="TestAuth_BasicAuth" time="2.280"></testcase>
		<testcase classname="ably" name="TestAuth_BasicAuth/RSA2:_Should_use_basic_auth_as_default_authentication_if_an_API_key_exists" time="0.000"></testcase>
		<testcase classname="ably" name="TestAuth_BasicAuth/RSA1:_Should_connect_to_HTTPS_by_default,_trying_to_connect_with_non-TLS_should_result_in_error" time="0.000"></testcase>
		<testcase classname="ably" name="TestAuth_BasicAuth/RSA11:_API_key_should_follow_format_KEY_NAME:KEY_SECRET_in_auth_header" time="0.000"></testcase>
		<testcase classname="ably" name="TestAuth_TokenAuth" time="0.360"></testcase>
		<testcase classname="ably" name="TestAuth_TokenAuth_Renew" time="4.220"></testcase>
		<testcase classname="ably" name="TestAuth_RequestToken" time="0.500"></testcase>
		<testcase classname="ably" name="TestAuth_JWT_Token_RSA8c" time="1.980"></testcase>
		<testcase classname="ably" name="TestAuth_JWT_Token_RSA8c/Get_JWT_from_echo_server" time="0.430"></testcase>
		<testcase classname="ably" name="TestAuth_JWT_Token_RSA8c/Should_be_able_to_use_it_as_a_token" time="0.240"></testcase>
		<testcase classname="ably" name="TestAuth_JWT_Token_RSA8c/RSA8g,_RSA3d:_Should_be_able_to_authenticate_using_authURL" time="0.510"></testcase>
		<testcase classname="ably" name="TestAuth_JWT_Token_RSA8c/RSA8g,_RSA3d:_Should_be_able_to_authenticate_using_authCallback" time="0.290"></testcase>
		<testcase classname="ably" name="TestAuth_JWT_Token_RSA8c/RSA4e,_RSA4b:_Should_return_error_when_JWT_is_invalid" time="0.500"></testcase>
		<testcase classname="ably" name="TestAuth_ReuseClientID" time="0.140"></testcase>
		<testcase classname="ably" name="TestAuth_RequestToken_PublishClientID" time="2.070"></testcase>
		<testcase classname="ably" name="TestAuth_ClientID" time="1.180"></testcase>
		<testcase classname="ably" name="TestAuth_ClientID/Auth_ClientID" time="1.180"></testcase>
		<testcase classname="ably" name="TestAuth_CreateTokenRequest" time="0.070"></testcase>
		<testcase classname="ably" name="TestAuth_CreateTokenRequest/RSA9h" time="0.070"></testcase>
		<testcase classname="ably" name="TestAuth_CreateTokenRequest/RSA9h/parameters_are_optional" time="0.070"></testcase>
		<testcase classname="ably" name="TestAuth_CreateTokenRequest/RSA9h/authOptions_must_not_be_merged" time="0.000"></testcase>
		<testcase classname="ably" name="TestAuth_CreateTokenRequest/RSA9c_must_generate_a_unique_16+_character_nonce" time="0.000"></testcase>
		<testcase classname="ably" name="TestAuth_CreateTokenRequest/RSA9g_generate_a_signed_request" time="0.000"></testcase>
		<testcase classname="ably" name="TestAuth_RealtimeAccessToken" time="0.350"></testcase>
		<testcase classname="ably" name="TestAuth_IgnoreTimestamp_QueryTime" time="0.360"></testcase>
		<testcase classname="ably" name="TestAuth_RSA7c" time="0.000"></testcase>
		<testcase classname="ably" name="TestEventEmitterConcurrency" time="0.030"></testcase>
		<testcase classname="ably" name="Test_RTE3_EventEmitter_On" time="0.090"></testcase>
		<testcase classname="ably" name="Test_RTE3_EventEmitter_On/event:_qux,_data:_42" time="0.030"></testcase>
		<testcase classname="ably" name="Test_RTE3_EventEmitter_On/event:_foo,_data:_42" time="0.030"></testcase>
		<testcase classname="ably" name="Test_RTE3_EventEmitter_On/event:_bar,_data:_42" time="0.030"></testcase>
		<testcase classname="ably" name="Test_RTE4_EventEmitter_Once" time="0.280"></testcase>
		<testcase classname="ably" name="Test_RTE4_EventEmitter_Once/event:_qux,_data:_42" time="0.090"></testcase>
		<testcase classname="ably" name="Test_RTE4_EventEmitter_Once/event:_foo,_data:_42" time="0.090"></testcase>
		<testcase classname="ably" name="Test_RTE4_EventEmitter_Once/event:_bar,_data:_42" time="0.090"></testcase>
		<testcase classname="ably" name="Test_RTE5_EventEmitter_Off" time="0.120"></testcase>
		<testcase classname="ably" name="Test_RTE5_EventEmitter_Off/specific_listener" time="0.040"></testcase>
		<testcase classname="ably" name="Test_RTE5_EventEmitter_Off/specific_event" time="0.050"></testcase>
		<testcase classname="ably" name="Test_RTE5_EventEmitter_Off/all" time="0.030"></testcase>
		<testcase classname="ably" name="Test_RTE6_EventEmitter_EmitPanic" time="0.020"></testcase>
		<testcase classname="ably" name="Test_RTE6a_EventEmitter_EmitToFixedListenersCollection" time="0.100"></testcase>
		<testcase classname="ably" name="TestHTTPChannel" time="0.730"></testcase>
		<testcase classname="ably" name="TestHTTPChannel/Publish" time="0.320"></testcase>
		<testcase classname="ably" name="TestHTTPChannel/Publish/is_available_in_the_history" time="0.080"></testcase>
		<testcase classname="ably" name="TestHTTPChannel/PublishMultiple" time="0.160"></testcase>
		<testcase classname="ably" name="TestHTTPChannel/encryption" time="0.250"></testcase>
		<testcase classname="ably" name="TestIdempotentPublishing" time="1.350"></testcase>
		<testcase classname="ably" name="TestIdempotentPublishing/when_ID_is_not_included_(#RSL1k2)" time="0.370"></testcase>
		<testcase classname="ably" name="TestIdempotentPublishing/when_ID_is_included_(#RSL1k2,_#RSL1k5)" time="0.370"></testcase>
		<testcase classname="ably" name="TestIdempotentPublishing/multiple_messages_in_one_publish_operation_(#RSL1k3)" time="0.060"></testcase>
		<testcase classname="ably" name="TestIdempotentPublishing/multiple_messages_in_one_publish_operation_with_IDs_following_the_required_format_described_in_RSL1k1_(#RSL1k3)" time="0.150"></testcase>
		<testcase classname="ably" name="TestIdempotentPublishing/the_ID_is_populated_with_a_random_ID_and_serial_0_from_this_lib_(#RSL1k1)" time="0.230"></testcase>
		<testcase classname="ably" name="TestIdempotentPublishing/publishing_a_batch_of_messages" time="0.160"></testcase>
		<testcase classname="ably" name="TestIdempotent_retry" time="0.560"></testcase>
		<testcase classname="ably" name="TestIdempotent_retry/when_there_is_a_network_failure_triggering_an_automatic_retry_(#RSL1k4)" time="0.560"></testcase>
		<testcase classname="ably" name="TestIdempotent_retry/when_there_is_a_network_failure_triggering_an_automatic_retry_(#RSL1k4)/two_REST_publish_retries_result_in_only_one_message_being_published&#39;" time="0.260"></testcase>
		<testcase classname="ably" name="TestIdempotent_retry/when_there_is_a_network_failure_triggering_an_automatic_retry_(#RSL1k4)/or_multiple_messages_in_one_publish_operation&#39;" time="0.290"></testcase>
		<testcase classname="ably" name="TestRSL1f1" time="0.200"></testcase>
		<testcase classname="ably" name="TestRSL1g" time="0.440"></testcase>
		<testcase classname="ably" name="TestRSL1g/RSL1g1b" time="0.220"></testcase>
		<testcase classname="ably" name="TestRSL1g/RSL1g2" time="0.160"></testcase>
		<testcase classname="ably" name="TestRSL1g/RSL1g3" time="0.060"></testcase>
		<testcase classname="ably" name="TestHistory_RSL2_RSL2b3" time="4.360"></testcase>
		<testcase classname="ably" name="TestHistory_RSL2_RSL2b3/limit=2" time="2.120"></testcase>
		<testcase classname="ably" name="TestHistory_RSL2_RSL2b3/limit=3" time="1.530"></testcase>
		<testcase classname="ably" name="TestHistory_RSL2_RSL2b3/limit=20" time="0.710"></testcase>
		<testcase classname="ably" name="TestHistory_Direction_RSL2b2" time="1.690"></testcase>
		<testcase classname="ably" name="TestHistory_Direction_RSL2b2/direction=backwards" time="0.970"></testcase>
		<testcase classname="ably" name="TestHistory_Direction_RSL2b2/direction=forwards" time="0.720"></testcase>
		<testcase classname="ably" name="TestGetChannelLifecycleStatus_RSL8" time="0.160"></testcase>
		<testcase classname="ably" name="TestGetChannelLifecycleStatus_RSL8/Test_Channel_Status_after_Publish" time="0.160"></testcase>
		<testcase classname="ably" name="TestHTTPClient" time="1.170"></testcase>
		<testcase classname="ably" name="TestHTTPClient/encoding_messages" time="0.000"></testcase>
		<testcase classname="ably" name="TestHTTPClient/encoding_messages/json" time="0.000"></testcase>
		<testcase classname="ably" name="TestHTTPClient/encoding_messages/msgpack" time="0.000"></testcase>
		<testcase classname="ably" name="TestHTTPClient/Time" time="0.070"></testcase>
		<testcase classname="ably" name="TestHTTPClient/Stats" time="1.100"></testcase>
		<testcase classname="ably" name="TestRSC7" time="0.000"></testcase>
		<testcase classname="ably" name="TestRSC7/must_set_version_header" time="0.000"></testcase>
		<testcase classname="ably" name="TestHTTP_RSC7_AblyAgent" time="0.000"></testcase>
		<testcase classname="ably" name="TestHTTP_RSC7_AblyAgent/RSC7d2_:_Should_set_ablyAgent_header_with_correct_identifiers" time="0.000"></testcase>
		<testcase classname="ably" name="TestHTTP_RSC7_AblyAgent/RSC7d6_:_Should_set_ablyAgent_header_with_custom_agents" time="0.000"></testcase>
		<testcase classname="ably" name="TestHTTP_RSC7_AblyAgent/RSC7d6_:_Should_set_ablyAgent_header_with_custom_agents_missing_version" time="0.000"></testcase>
		<testcase classname="ably" name="TestHTTP_RSC15_HostFallback" time="14.260"></testcase>
		<testcase classname="ably" name="TestHTTP_RSC15_HostFallback/RSC15a,_RSC15b,_RSC15d,_RSC15g3:_must_use_alternative_host" time="0.000"></testcase>
		<testcase classname="ably" name="TestHTTP_RSC15_HostFallback/RSC15l2_must_use_alternative_host_on_timeout" time="12.010"></testcase>
		<testcase classname="ably" name="TestHTTP_RSC15_HostFallback/RSC15l1_must_use_alternative_host_on_host_unresolvable_or_unreachable" time="2.240"></testcase>
		<testcase classname="ably" name="TestHTTP_RSC15_HostFallback/rsc15b" time="0.010"></testcase>
		<testcase classname="ably" name="TestHTTP_RSC15_HostFallback/rsc15b/must_not_occur_when_default_rest.ably.io_is_overridden" time="0.000"></testcase>
		<testcase classname="ably" name="TestHTTP_RSC15_HostFallback/rsc15b/must_occur_when_fallbackHostsUseDefault_is_true" time="0.000"></testcase>
		<testcase classname="ably" name="TestHTTP_RSC15_HostFallback/rsc15b/must_occur_when_fallbackHosts_is_set" time="0.000"></testcase>
		<testcase classname="ably" name="TestHTTP_RSC15_HostFallback/RSC15e_must_start_with_default_host" time="0.000"></testcase>
		<testcase classname="ably" name="TestHTTP_RSC15_HostFallback/must_not_occur_when_FallbackHosts_is_an_empty_array" time="0.000"></testcase>
		<testcase classname="ably" name="TestHTTP_rememberHostFallback" time="0.210"></testcase>
		<testcase classname="ably" name="TestHTTP_rememberHostFallback/remember_success_host_RSC15f" time="0.210"></testcase>
		<testcase classname="ably" name="TestHTTPChannels_RSN1" time="0.000"></testcase>
		<testcase classname="ably" name="TestHTTPChannels_RSN1/RSN3_RSN3a__must_create_new_channels_when_they_don&#39;t_exist" time="0.000"></testcase>
		<testcase classname="ably" name="TestHTTPChannels_RSN1/RSN4_RSN4a_must_release_channels" time="0.000"></testcase>
		<testcase classname="ably" name="TestFixConnLeak_ISSUE89" time="0.780"></testcase>
		<testcase classname="ably" name="TestStatsPagination_RSC6a_RSCb3" time="5.530"></testcase>
		<testcase classname="ably" name="TestStatsPagination_RSC6a_RSCb3/limit=2" time="2.380"></testcase>
		<testcase classname="ably" name="TestStatsPagination_RSC6a_RSCb3/limit=3" time="2.090"></testcase>
		<testcase classname="ably" name="TestStatsPagination_RSC6a_RSCb3/limit=20" time="1.050"></testcase>
		<testcase classname="ably" name="TestStats_StartEnd_RSC6b1" time="0.610"></testcase>
		<testcase classname="ably" name="TestStats_Direction_RSC6b2" time="1.240"></testcase>
		<testcase classname="ably" name="TestStats_Direction_RSC6b2/direction=backwards" time="0.630"></testcase>
		<testcase classname="ably" name="TestStats_Direction_RSC6b2/direction=forwards" time="0.600"></testcase>
		<testcase classname="ably" name="TestStats_Unit_RSC6b4" time="0.480"></testcase>
		<testcase classname="ably" name="TestHTTPPaginatedFallback" time="0.000"></testcase>
		<testcase classname="ably" name="TestHTTPPaginatedFallback/request_time" time="0.000"></testcase>
		<testcase classname="ably" name="TestHTTPPaginatedResponse" time="0.680"></testcase>
		<testcase classname="ably" name="TestHTTPPaginatedResponse/request_time" time="0.070"></testcase>
		<testcase classname="ably" name="TestHTTPPaginatedResponse/request_404" time="0.060"></testcase>
		<testcase classname="ably" name="TestHTTPPaginatedResponse/request_post_get_messages" time="0.550"></testcase>
		<testcase classname="ably" name="TestHTTPPaginatedResponse/request_post_get_messages/post" time="0.270"></testcase>
		<testcase classname="ably" name="TestHTTPPaginatedResponse/request_post_get_messages/get" time="0.160"></testcase>
		<testcase classname="ably" name="TestPresenceHistory_RSP4_RSP4b3" time="34.340"></testcase>
		<testcase classname="ably" name="TestPresenceHistory_RSP4_RSP4b3/limit=2" time="12.610"></testcase>
		<testcase classname="ably" name="TestPresenceHistory_RSP4_RSP4b3/limit=3" time="11.780"></testcase>
		<testcase classname="ably" name="TestPresenceHistory_RSP4_RSP4b3/limit=20" time="9.950"></testcase>
		<testcase classname="ably" name="TestPresenceHistory_Direction_RSP4b2" time="20.210"></testcase>
		<testcase classname="ably" name="TestPresenceHistory_Direction_RSP4b2/direction=backwards" time="10.190"></testcase>
		<testcase classname="ably" name="TestPresenceHistory_Direction_RSP4b2/direction=forwards" time="10.020"></testcase>
		<testcase classname="ably" name="TestPresenceGet_RSP3_RSP3a1" time="2.720"></testcase>
		<testcase classname="ably" name="TestPresenceGet_RSP3_RSP3a1/limit=2" time="1.240"></testcase>
		<testcase classname="ably" name="TestPresenceGet_RSP3_RSP3a1/limit=3" time="0.910"></testcase>
		<testcase classname="ably" name="TestPresenceGet_RSP3_RSP3a1/limit=20" time="0.570"></testcase>
		<testcase classname="ably" name="TestPresenceGet_ClientID_RSP3a2" time="1.240"></testcase>
		<testcase classname="ably" name="TestPresenceGet_ClientID_RSP3a2/clientID=client_bool" time="0.640"></testcase>
		<testcase classname="ably" name="TestPresenceGet_ClientID_RSP3a2/clientID=client_string" time="0.600"></testcase>
		<testcase classname="ably" name="TestPresenceGet_ConnectionID_RSP3a3" time="1.610"></testcase>
		<testcase classname="ably" name="TestHTTPChannel_MessageUpdates" time="2.370"></testcase>
		<testcase classname="ably" name="TestHTTPChannel_MessageUpdates/PublishWithResult" time="0.230"></testcase>
		<testcase classname="ably" name="TestHTTPChannel_MessageUpdates/PublishWithResult/returns_serial_for_published_message" time="0.170"></testcase>
		<testcase classname="ably" name="TestHTTPChannel_MessageUpdates/PublishWithResult/PublishMultipleWithResult_returns_serials_for_all_messages" time="0.070"></testcase>
		<testcase classname="ably" name="TestHTTPChannel_MessageUpdates/UpdateMessage" time="0.490"></testcase>
		<testcase classname="ably" name="TestHTTPChannel_MessageUpdates/UpdateMessage/updates_a_message_with_new_data" time="0.490"></testcase>
		<testcase classname="ably" name="TestHTTPChannel_MessageUpdates/UpdateMessage/returns_error_when_message_has_no_serial" time="0.000"></testcase>
		<testcase classname="ably" name="TestHTTPChannel_MessageUpdates/DeleteMessage" time="0.250"></testcase>
		<testcase classname="ably" name="TestHTTPChannel_MessageUpdates/DeleteMessage/deletes_a_message" time="0.250"></testcase>
		<testcase classname="ably" name="TestHTTPChannel_MessageUpdates/AppendMessage" time="0.510"></testcase>
		<testcase classname="ably" name="TestHTTPChannel_MessageUpdates/AppendMessage/appends_to_a_message" time="0.510"></testcase>
		<testcase classname="ably" name="TestHTTPChannel_MessageUpdates/GetMessage" time="0.320"></testcase>
		<testcase classname="ably" name="TestHTTPChannel_MessageUpdates/GetMessage/retrieves_a_message_by_serial" time="0.320"></testcase>
		<testcase classname="ably" name="TestHTTPChannel_MessageUpdates/GetMessageVersions" time="0.570"></testcase>
		<testcase classname="ably" name="TestHTTPChannel_MessageUpdates/GetMessageVersions/retrieves_all_versions_after_updates" time="0.570"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_MessageUpdates" time="3.780"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_MessageUpdates/PublishWithResult" time="0.650"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_MessageUpdates/PublishWithResult/returns_serial_for_published_message" time="0.080"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_MessageUpdates/PublishWithResult/PublishMultipleWithResult_returns_serials" time="0.500"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_MessageUpdates/UpdateMessageAsync" time="1.000"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_MessageUpdates/UpdateMessageAsync/updates_message_asynchronously" time="0.930"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_MessageUpdates/AppendMessageAsync" time="2.000"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_MessageUpdates/AppendMessageAsync/rapid_async_appends_for_AI_token_streaming" time="0.930"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_MessageUpdates/AppendMessageAsync/nil_onAck_is_treated_as_fire-and-forget" time="1.000"></testcase>
		<testcase classname="ably" name="TestMessage_CryptoDataFixtures_RSL6a1_RSL5b_RSL5c" time="0.000">
			<failure message="Failed" type=""></failure>
		</testcase>
		<testcase classname="ably" name="TestMessage_CryptoDataFixtures_RSL6a1_RSL5b_RSL5c/with_a_128_keylength" time="0.000">
			<failure message="Failed" type="">    proto_message_integration_test.go:32: missing common subrepo - ensure git submodules are initialized</failure>
		</testcase>
		<testcase classname="ably" name="TestMessage_CryptoDataFixtures_RSL6a1_RSL5b_RSL5c/with_a_256_keylength" time="0.000">
			<failure message="Failed" type="">    proto_message_integration_test.go:32: missing common subrepo - ensure git submodules are initialized</failure>
		</testcase>
		<testcase classname="ably" name="TestMessage_CryptoDataFixtures_RSL6a1_RSL5b_RSL5c_TM3" time="0.000">
			<failure message="Failed" type=""></failure>
		</testcase>
		<testcase classname="ably" name="TestMessage_CryptoDataFixtures_RSL6a1_RSL5b_RSL5c_TM3/with_a_128_keylength" time="0.000">
			<failure message="Failed" type="">    proto_message_integration_test.go:83: </failure>
		</testcase>
		<testcase classname="ably" name="TestMessage_CryptoDataFixtures_RSL6a1_RSL5b_RSL5c_TM3/with_a_128_keylength/fixture_encode" time="0.000">
			<failure message="Failed" type="">/opt/hostedtoolcache/go/1.26.9/x64/src/testing/testing.go:1974 +0x419&#xA;/opt/hostedtoolcache/go/1.26.9/x64/src/testing/testing.go:1977 +0x67f&#xA;/opt/hostedtoolcache/go/1.26.9/x64/src/runtime/panic.go:860 +0x13a&#xA;/home/runner/work/ably-go/ably-go/internal/ably/proto_message_integration_test.go:94 +0x52&#xA;/opt/hostedtoolcache/go/1.26.9/x64/src/testing/testing.go:2036 +0x21d&#xA;/opt/hostedtoolcache/go/1.26.9/x64/src/testing/testing.go:2101 +0xb13</failure>
		</testcase>
	</testsuite>
	<testsuite tests="8" failures="0" time="1.010" name="github.com/ably/ably-pubsub-go/internal/ably/internal/ablyutil">
		<properties>
			<property name="go.version" value="go1.26.9"></property>
		</properties>
		<testcase classname="ablyutil" name="Test_string" time="0.000"></testcase>
		<testcase classname="ablyutil" name="Test_string/String_array_Shuffle" time="0.000"></testcase>
		<testcase classname="ablyutil" name="Test_string/String_array_contains" time="0.000"></testcase>
		<testcase classname="ablyutil" name="Test_string/Empty_String" time="0.000"></testcase>
		<testcase classname="ablyutil" name="TestHashSet" time="0.000"></testcase>
		<testcase classname="ablyutil" name="TestHashSet/Add_should_not_duplicate_entries" time="0.000"></testcase>
		<testcase classname="ablyutil" name="TestHashSet/Should_check_if_item_is_present" time="0.000"></testcase>
		<testcase classname="ablyutil" name="TestHashSet/Should_remove_element" time="0.000"></testcase>
	</testsuite>
	<testsuite tests="3" failures="0" time="1.014" name="github.com/ably/ably-pubsub-go/server/pubsub">
		<properties>
			<property name="go.version" value="go1.26.9"></property>
		</properties>
		<testcase classname="pubsub" name="TestReExportedAPIIsSelfContained" time="0.000"></testcase>
		<testcase classname="pubsub" name="TestNewHTTPClient_DeclaresServerAgent" time="0.000"></testcase>
		<testcase classname="pubsub" name="TestNewHTTPClient_MergesUserAgents" time="0.000"></testcase>
	</testsuite>
</testsuites>
