<testsuites>
	<testsuite tests="392" failures="2" time="1788.864" name="github.com/ably/ably-go/ably">
		<properties>
			<property name="go.version" value="go1.22.12"></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"></testcase>
		<testcase classname="ably" name="Test_decodeMessage/foo" time="0.000"></testcase>
		<testcase classname="ably" name="Test_decodeMessage/{&#34;foo&#34;:42}" time="0.000"></testcase>
		<testcase classname="ably" name="Test_decodeMessage/{&#34;foo&#34;:42,&#34;bar&#34;:[&#34;a&#34;,1.2,{&#34;boo&#34;:&#34;ha&#34;}]}" time="0.000"></testcase>
		<testcase classname="ably" name="Test_decodeMessage/[{&#34;foo&#34;:42},&#34;qux&#34;]" time="0.000"></testcase>
		<testcase classname="ably" name="Test_decodeMessage/3q2+7w==" time="0.000"></testcase>
		<testcase classname="ably" name="TestMsgpackExtrasJsonCompatible" time="0.000"></testcase>
		<testcase classname="ably" name="TestMsgpackDecoding" time="0.000"></testcase>
		<testcase classname="ably" name="TestMsgpackDecoding/json_array" time="0.000"></testcase>
		<testcase classname="ably" name="TestMsgpackDecoding/short_string" time="0.000"></testcase>
		<testcase classname="ably" name="TestMsgpackDecoding/200_character_string" time="0.000"></testcase>
		<testcase classname="ably" name="TestMsgpackDecoding/2000_character_string" time="0.000"></testcase>
		<testcase classname="ably" name="TestMsgpackDecoding/short_binary" time="0.000"></testcase>
		<testcase classname="ably" name="TestMsgpackDecoding/200_byte_binary" time="0.000"></testcase>
		<testcase classname="ably" name="TestMsgpackDecoding/2000_byte_binary" time="0.000"></testcase>
		<testcase classname="ably" name="TestMsgpackDecoding/an_object" time="0.000"></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="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="10.120"></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="10.230"></testcase>
		<testcase classname="ably" name="TestAuth_TokenAuth_Renew" time="13.890"></testcase>
		<testcase classname="ably" name="TestAuth_RequestToken" time="10.950"></testcase>
		<testcase classname="ably" name="TestAuth_JWT_Token_RSA8c" time="52.320"></testcase>
		<testcase classname="ably" name="TestAuth_JWT_Token_RSA8c/Get_JWT_from_echo_server" time="10.810"></testcase>
		<testcase classname="ably" name="TestAuth_JWT_Token_RSA8c/Should_be_able_to_use_it_as_a_token" time="10.270"></testcase>
		<testcase classname="ably" name="TestAuth_JWT_Token_RSA8c/RSA8g,_RSA3d:_Should_be_able_to_authenticate_using_authURL" time="10.740"></testcase>
		<testcase classname="ably" name="TestAuth_JWT_Token_RSA8c/RSA8g,_RSA3d:_Should_be_able_to_authenticate_using_authCallback" time="10.190"></testcase>
		<testcase classname="ably" name="TestAuth_JWT_Token_RSA8c/RSA4e,_RSA4b:_Should_return_error_when_JWT_is_invalid" time="10.320"></testcase>
		<testcase classname="ably" name="TestAuth_ReuseClientID" time="9.410"></testcase>
		<testcase classname="ably" name="TestAuth_RequestToken_PublishClientID" time="11.040"></testcase>
		<testcase classname="ably" name="TestAuth_ClientID" time="10.920"></testcase>
		<testcase classname="ably" name="TestAuth_ClientID/Auth_ClientID" time="1.160"></testcase>
		<testcase classname="ably" name="TestAuth_CreateTokenRequest" time="10.380"></testcase>
		<testcase classname="ably" name="TestAuth_CreateTokenRequest/RSA9h" time="0.090"></testcase>
		<testcase classname="ably" name="TestAuth_CreateTokenRequest/RSA9h/parameters_are_optional" time="0.090"></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="10.340"></testcase>
		<testcase classname="ably" name="TestAuth_IgnoreTimestamp_QueryTime" time="39.530"></testcase>
		<testcase classname="ably" name="TestAuth_RSA7c" time="9.530"></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="TestHTTPPaginatedFallback" time="9.620"></testcase>
		<testcase classname="ably" name="TestHTTPPaginatedFallback/request_time" time="0.010"></testcase>
		<testcase classname="ably" name="TestHTTPPaginatedResponse" time="10.440"></testcase>
		<testcase classname="ably" name="TestHTTPPaginatedResponse/request_time" time="0.030"></testcase>
		<testcase classname="ably" name="TestHTTPPaginatedResponse/request_404" time="0.420"></testcase>
		<testcase classname="ably" name="TestHTTPPaginatedResponse/request_post_get_messages" time="0.320"></testcase>
		<testcase classname="ably" name="TestHTTPPaginatedResponse/request_post_get_messages/post" time="0.050"></testcase>
		<testcase classname="ably" name="TestHTTPPaginatedResponse/request_post_get_messages/get" time="0.240"></testcase>
		<testcase classname="ably" name="TestMessage_CryptoDataFixtures_RSL6a1_RSL5b_RSL5c" time="0.010"></testcase>
		<testcase classname="ably" name="TestMessage_CryptoDataFixtures_RSL6a1_RSL5b_RSL5c/with_a_128_keylength" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessage_CryptoDataFixtures_RSL6a1_RSL5b_RSL5c/with_a_128_keylength/fixture_encode" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessage_CryptoDataFixtures_RSL6a1_RSL5b_RSL5c/with_a_256_keylength" time="0.010"></testcase>
		<testcase classname="ably" name="TestMessage_CryptoDataFixtures_RSL6a1_RSL5b_RSL5c/with_a_256_keylength/fixture_encode" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessage_CryptoDataFixtures_RSL6a1_RSL5b_RSL5c_TM3" time="0.010"></testcase>
		<testcase classname="ably" name="TestMessage_CryptoDataFixtures_RSL6a1_RSL5b_RSL5c_TM3/with_a_128_keylength" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessage_CryptoDataFixtures_RSL6a1_RSL5b_RSL5c_TM3/with_a_128_keylength/fixture_encode" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessage_CryptoDataFixtures_RSL6a1_RSL5b_RSL5c_TM3/with_a_256_keylength" time="0.010"></testcase>
		<testcase classname="ably" name="TestMessage_CryptoDataFixtures_RSL6a1_RSL5b_RSL5c_TM3/with_a_256_keylength/fixture_encode" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtime_ChannelParams_DeltaSupport" time="13.550"></testcase>
		<testcase classname="ably" name="TestDelta_PluginBasicFunctionality" time="12.620">
			<failure message="Failed" type="">==================&#xA;WARNING: DATA RACE&#xA;Read at 0x00c0000120c0 by goroutine 917:&#xA;  github.com/ably/ably-go/ably_test.TestDelta_PluginBasicFunctionality.func4()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_channel_delta_integration_test.go:102 +0x2e&#xA;  github.com/ably/ably-go/ably_test.TestDelta_PluginBasicFunctionality.AssertionWaiter.func8()&#xA;      /home/runner/work/ably-go/ably-go/ablytest/resultgroup.go:108 +0x61&#xA;  github.com/ably/ably-go/ablytest.resultFunc.Wait()&#xA;      /home/runner/work/ably-go/ably-go/ablytest/resultgroup.go:97 +0x3a&#xA;  github.com/ably/ably-go/ablytest.Wait.func1()&#xA;      /home/runner/work/ably-go/ably-go/ablytest/resultgroup.go:23 +0x53&#xA;&#xA;Previous write at 0x00c0000120c0 by goroutine 916:&#xA;  github.com/ably/ably-go/ably_test.TestDelta_PluginBasicFunctionality.func2()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_channel_delta_integration_test.go:82 +0xd5&#xA;  github.com/ably/ably-go/ably.(*RealtimeChannel).SubscribeAll.func1()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_channel.go:598 +0x4a&#xA;  github.com/ably/ably-go/ably.safeHandle()&#xA;      /home/runner/work/ably-go/ably-go/ably/event_emitter.go:84 +0xc2&#xA;  github.com/ably/ably-go/ably.(*eventListener).handle.func1()&#xA;      /home/runner/work/ably-go/ably-go/ably/event_emitter.go:65 +0xd8&#xA;&#xA;Goroutine 917 (running) created at:&#xA;  github.com/ably/ably-go/ablytest.Wait()&#xA;      /home/runner/work/ably-go/ably-go/ablytest/resultgroup.go:22 +0x13a&#xA;  github.com/ably/ably-go/ably_test.TestDelta_PluginBasicFunctionality()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_channel_delta_integration_test.go:101 +0xaab&#xA;  testing.tRunner()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:1689 +0x21e&#xA;  testing.(*T).Run.gowrap1()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:1742 +0x44&#xA;&#xA;Goroutine 916 (finished) created at:&#xA;  github.com/ably/ably-go/ably.(*eventListener).handle()&#xA;      /home/runner/work/ably-go/ably-go/ably/event_emitter.go:58 +0x27d&#xA;  github.com/ably/ably-go/ably.(*eventListener).handle-fm()&#xA;      &lt;autogenerated&gt;:1 +0x69&#xA;  github.com/ably/ably-go/ably.(*eventEmitter).Emit()&#xA;      /home/runner/work/ably-go/ably-go/ably/event_emitter.go:192 +0xb5&#xA;  github.com/ably/ably-go/ably.(*RealtimeChannel).notify()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_channel.go:956 +0x2d08&#xA;  github.com/ably/ably-go/ably.(*Realtime).onChannelMsg()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_client.go:86 +0x8e&#xA;  github.com/ably/ably-go/ably.(*Realtime).onChannelMsg-fm()&#xA;      &lt;autogenerated&gt;:1 +0x3d&#xA;  github.com/ably/ably-go/ably.(*Connection).eventloop()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:931 +0x1786&#xA;  github.com/ably/ably-go/ably.(*Connection).connectWith.gowrap2()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:434 +0x33&#xA;==================&#xA;==================&#xA;WARNING: DATA RACE&#xA;Read at 0x00c000218020 by goroutine 880:&#xA;  github.com/ably/ably-go/ably_test.TestDelta_PluginBasicFunctionality()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_channel_delta_integration_test.go:107 +0xca4&#xA;  testing.tRunner()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:1689 +0x21e&#xA;  testing.(*T).Run.gowrap1()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:1742 +0x44&#xA;&#xA;Previous write at 0x00c000218020 by goroutine 916:&#xA;  github.com/ably/ably-go/ably_test.TestDelta_PluginBasicFunctionality.func2()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_channel_delta_integration_test.go:82 +0x8e&#xA;  github.com/ably/ably-go/ably.(*RealtimeChannel).SubscribeAll.func1()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_channel.go:598 +0x4a&#xA;  github.com/ably/ably-go/ably.safeHandle()&#xA;      /home/runner/work/ably-go/ably-go/ably/event_emitter.go:84 +0xc2&#xA;  github.com/ably/ably-go/ably.(*eventListener).handle.func1()&#xA;      /home/runner/work/ably-go/ably-go/ably/event_emitter.go:65 +0xd8&#xA;&#xA;Goroutine 880 (running) created at:&#xA;  testing.(*T).Run()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:1742 +0x825&#xA;  testing.runTests.func1()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:2161 +0x85&#xA;  testing.tRunner()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:1689 +0x21e&#xA;  testing.runTests()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:2159 +0x8be&#xA;  testing.(*M).Run()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:2027 +0xf17&#xA;  main.main()&#xA;      _testmain.go:323 +0x2bd&#xA;&#xA;Goroutine 916 (finished) created at:&#xA;  github.com/ably/ably-go/ably.(*eventListener).handle()&#xA;      /home/runner/work/ably-go/ably-go/ably/event_emitter.go:58 +0x27d&#xA;  github.com/ably/ably-go/ably.(*eventListener).handle-fm()&#xA;      &lt;autogenerated&gt;:1 +0x69&#xA;  github.com/ably/ably-go/ably.(*eventEmitter).Emit()&#xA;      /home/runner/work/ably-go/ably-go/ably/event_emitter.go:192 +0xb5&#xA;  github.com/ably/ably-go/ably.(*RealtimeChannel).notify()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_channel.go:956 +0x2d08&#xA;  github.com/ably/ably-go/ably.(*Realtime).onChannelMsg()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_client.go:86 +0x8e&#xA;  github.com/ably/ably-go/ably.(*Realtime).onChannelMsg-fm()&#xA;      &lt;autogenerated&gt;:1 +0x3d&#xA;  github.com/ably/ably-go/ably.(*Connection).eventloop()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:931 +0x1786&#xA;  github.com/ably/ably-go/ably.(*Connection).connectWith.gowrap2()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:434 +0x33&#xA;==================&#xA;    testing.go:1398: race detected during execution of test</failure>
		</testcase>
		<testcase classname="ably" name="TestDelta_PluginRecovery" time="11.860">
			<failure message="Failed" type="">    realtime_channel_delta_integration_test.go:183: &#xA;==================&#xA;WARNING: DATA RACE&#xA;Write at 0x00c0003ba3f0 by goroutine 963:&#xA;  github.com/ably/ably-go/ably_test.TestDelta_PluginRecovery.func3()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_channel_delta_integration_test.go:153 +0xd5&#xA;  github.com/ably/ably-go/ably.(*RealtimeChannel).SubscribeAll.func1()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_channel.go:598 +0x4a&#xA;  github.com/ably/ably-go/ably.safeHandle()&#xA;      /home/runner/work/ably-go/ably-go/ably/event_emitter.go:84 +0xc2&#xA;  github.com/ably/ably-go/ably.(*eventListener).handle.func1()&#xA;      /home/runner/work/ably-go/ably-go/ably/event_emitter.go:65 +0xd8&#xA;&#xA;Previous read at 0x00c0003ba3f0 by goroutine 957:&#xA;  github.com/ably/ably-go/ably_test.TestDelta_PluginRecovery.func6()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_channel_delta_integration_test.go:194 +0x2e&#xA;  github.com/ably/ably-go/ably_test.TestDelta_PluginRecovery.AssertionWaiter.func13()&#xA;      /home/runner/work/ably-go/ably-go/ablytest/resultgroup.go:108 +0x61&#xA;  github.com/ably/ably-go/ablytest.resultFunc.Wait()&#xA;      /home/runner/work/ably-go/ably-go/ablytest/resultgroup.go:97 +0x3a&#xA;  github.com/ably/ably-go/ablytest.Wait.func1()&#xA;      /home/runner/work/ably-go/ably-go/ablytest/resultgroup.go:23 +0x53&#xA;&#xA;Goroutine 963 (running) created at:&#xA;  github.com/ably/ably-go/ably.(*eventListener).handle()&#xA;      /home/runner/work/ably-go/ably-go/ably/event_emitter.go:58 +0x27d&#xA;  github.com/ably/ably-go/ably.(*eventListener).handle-fm()&#xA;      &lt;autogenerated&gt;:1 +0x69&#xA;  github.com/ably/ably-go/ably.(*eventEmitter).Emit()&#xA;      /home/runner/work/ably-go/ably-go/ably/event_emitter.go:192 +0xb5&#xA;  github.com/ably/ably-go/ably.(*RealtimeChannel).notify()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_channel.go:956 +0x2d08&#xA;  github.com/ably/ably-go/ably.(*Realtime).onChannelMsg()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_client.go:86 +0x8e&#xA;  github.com/ably/ably-go/ably.(*Realtime).onChannelMsg-fm()&#xA;      &lt;autogenerated&gt;:1 +0x3d&#xA;  github.com/ably/ably-go/ably.(*Connection).eventloop()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:931 +0x1786&#xA;  github.com/ably/ably-go/ably.(*Connection).connectWith.gowrap2()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:434 +0x33&#xA;&#xA;Goroutine 957 (running) created at:&#xA;  github.com/ably/ably-go/ablytest.Wait()&#xA;      /home/runner/work/ably-go/ably-go/ablytest/resultgroup.go:22 +0x13a&#xA;  github.com/ably/ably-go/ably_test.TestDelta_PluginRecovery()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_channel_delta_integration_test.go:193 +0xfb5&#xA;  testing.tRunner()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:1689 +0x21e&#xA;  testing.(*T).Run.gowrap1()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:1742 +0x44&#xA;==================&#xA;==================&#xA;WARNING: DATA RACE&#xA;Read at 0x00c000535b60 by goroutine 923:&#xA;  reflect.maplen()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/runtime/map.go:1411 +0x0&#xA;  reflect.Value.lenNonSlice()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/reflect/value.go:1785 +0x1e9&#xA;  reflect.Value.Len()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/reflect/value.go:1774 +0x426&#xA;  encoding/json.mapEncoder.encode()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/encoding/json/encode.go:741 +0x408&#xA;  encoding/json.mapEncoder.encode-fm()&#xA;      &lt;autogenerated&gt;:1 +0x84&#xA;  encoding/json.(*encodeState).reflectValue()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/encoding/json/encode.go:321 +0x83&#xA;  encoding/json.(*encodeState).marshal()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/encoding/json/encode.go:297 +0xea&#xA;  encoding/json.Marshal()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/encoding/json/encode.go:163 +0x12b&#xA;  github.com/ably/ably-go/ably_test.TestDelta_PluginRecovery()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_channel_delta_integration_test.go:204 +0x108d&#xA;  testing.tRunner()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:1689 +0x21e&#xA;  testing.(*T).Run.gowrap1()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:1742 +0x44&#xA;&#xA;Previous write at 0x00c000535b60 by goroutine 945:&#xA;  runtime.mapassign_faststr()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/runtime/map_faststr.go:203 +0x0&#xA;  encoding/json.(*decodeState).objectInterface()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/encoding/json/decode.go:1097 +0x1ed&#xA;  encoding/json.(*decodeState).object()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/encoding/json/decode.go:616 +0xa64&#xA;  encoding/json.(*decodeState).value()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/encoding/json/decode.go:374 +0xae&#xA;  encoding/json.(*decodeState).unmarshal()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/encoding/json/decode.go:181 +0x2d6&#xA;  encoding/json.Unmarshal()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/encoding/json/decode.go:108 +0x22b&#xA;  github.com/ably/ably-go/ably.Message.withDecodedDataAndContext()&#xA;      /home/runner/work/ably-go/ably-go/ably/proto_message.go:306 +0x2f4&#xA;  github.com/ably/ably-go/ably.(*RealtimeChannel).notify()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_channel.go:938 +0x25aa&#xA;  github.com/ably/ably-go/ably.(*Realtime).onChannelMsg()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_client.go:86 +0x8e&#xA;  github.com/ably/ably-go/ably.(*Realtime).onChannelMsg-fm()&#xA;      &lt;autogenerated&gt;:1 +0x3d&#xA;  github.com/ably/ably-go/ably.(*Connection).eventloop()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:931 +0x1786&#xA;  github.com/ably/ably-go/ably.(*Connection).connectWith.gowrap2()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:434 +0x33&#xA;&#xA;Goroutine 923 (running) created at:&#xA;  testing.(*T).Run()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:1742 +0x825&#xA;  testing.runTests.func1()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:2161 +0x85&#xA;  testing.tRunner()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:1689 +0x21e&#xA;  testing.runTests()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:2159 +0x8be&#xA;  testing.(*M).Run()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:2027 +0xf17&#xA;  main.main()&#xA;      _testmain.go:323 +0x2bd&#xA;&#xA;Goroutine 945 (running) created at:&#xA;  github.com/ably/ably-go/ably.(*Connection).connectWith()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:434 +0xfb3&#xA;  github.com/ably/ably-go/ably.(*Connection).connectWithRetryLoop()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:299 +0xf2&#xA;  github.com/ably/ably-go/ably.(*Connection).connect()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:203 +0x144&#xA;  github.com/ably/ably-go/ably.newConn.func1()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:120 +0x145&#xA;==================&#xA;==================&#xA;WARNING: DATA RACE&#xA;Read at 0x00c0003a0e08 by goroutine 923:&#xA;  reflect.typedmemmove()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/runtime/mbarrier.go:203 +0x0&#xA;  reflect.copyVal()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/reflect/value.go:2064 +0x5b&#xA;  reflect.(*MapIter).Value()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/reflect/value.go:1961 +0x124&#xA;  encoding/json.mapEncoder.encode()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/encoding/json/encode.go:749 +0x61a&#xA;  encoding/json.mapEncoder.encode-fm()&#xA;      &lt;autogenerated&gt;:1 +0x84&#xA;  encoding/json.(*encodeState).reflectValue()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/encoding/json/encode.go:321 +0x83&#xA;  encoding/json.(*encodeState).marshal()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/encoding/json/encode.go:297 +0xea&#xA;  encoding/json.Marshal()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/encoding/json/encode.go:163 +0x12b&#xA;  github.com/ably/ably-go/ably_test.TestDelta_PluginRecovery()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_channel_delta_integration_test.go:204 +0x108d&#xA;  testing.tRunner()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:1689 +0x21e&#xA;  testing.(*T).Run.gowrap1()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:1742 +0x44&#xA;&#xA;Previous write at 0x00c0003a0e08 by goroutine 945:&#xA;  encoding/json.(*decodeState).objectInterface()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/encoding/json/decode.go:1097 +0x1f9&#xA;  encoding/json.(*decodeState).object()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/encoding/json/decode.go:616 +0xa64&#xA;  encoding/json.(*decodeState).value()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/encoding/json/decode.go:374 +0xae&#xA;  encoding/json.(*decodeState).unmarshal()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/encoding/json/decode.go:181 +0x2d6&#xA;  encoding/json.Unmarshal()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/encoding/json/decode.go:108 +0x22b&#xA;  github.com/ably/ably-go/ably.Message.withDecodedDataAndContext()&#xA;      /home/runner/work/ably-go/ably-go/ably/proto_message.go:306 +0x2f4&#xA;  github.com/ably/ably-go/ably.(*RealtimeChannel).notify()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_channel.go:938 +0x25aa&#xA;  github.com/ably/ably-go/ably.(*Realtime).onChannelMsg()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_client.go:86 +0x8e&#xA;  github.com/ably/ably-go/ably.(*Realtime).onChannelMsg-fm()&#xA;      &lt;autogenerated&gt;:1 +0x3d&#xA;  github.com/ably/ably-go/ably.(*Connection).eventloop()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:931 +0x1786&#xA;  github.com/ably/ably-go/ably.(*Connection).connectWith.gowrap2()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:434 +0x33&#xA;&#xA;Goroutine 923 (running) created at:&#xA;  testing.(*T).Run()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:1742 +0x825&#xA;  testing.runTests.func1()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:2161 +0x85&#xA;  testing.tRunner()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:1689 +0x21e&#xA;  testing.runTests()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:2159 +0x8be&#xA;  testing.(*M).Run()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:2027 +0xf17&#xA;  main.main()&#xA;      _testmain.go:323 +0x2bd&#xA;&#xA;Goroutine 945 (running) created at:&#xA;  github.com/ably/ably-go/ably.(*Connection).connectWith()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:434 +0xfb3&#xA;  github.com/ably/ably-go/ably.(*Connection).connectWithRetryLoop()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:299 +0xf2&#xA;  github.com/ably/ably-go/ably.(*Connection).connect()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:203 +0x144&#xA;  github.com/ably/ably-go/ably.newConn.func1()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:120 +0x145&#xA;==================&#xA;==================&#xA;WARNING: DATA RACE&#xA;Read at 0x00c0002aa1a0 by goroutine 923:&#xA;  github.com/ably/ably-go/ably_test.TestDelta_PluginRecovery()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_channel_delta_integration_test.go:199 +0x11b5&#xA;  testing.tRunner()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:1689 +0x21e&#xA;  testing.(*T).Run.gowrap1()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:1742 +0x44&#xA;&#xA;Previous write at 0x00c0002aa1a0 by goroutine 965:&#xA;  github.com/ably/ably-go/ably_test.TestDelta_PluginRecovery.func3()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_channel_delta_integration_test.go:153 +0x8e&#xA;  github.com/ably/ably-go/ably.(*RealtimeChannel).SubscribeAll.func1()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_channel.go:598 +0x4a&#xA;  github.com/ably/ably-go/ably.safeHandle()&#xA;      /home/runner/work/ably-go/ably-go/ably/event_emitter.go:84 +0xc2&#xA;  github.com/ably/ably-go/ably.(*eventListener).handle.func1()&#xA;      /home/runner/work/ably-go/ably-go/ably/event_emitter.go:65 +0xd8&#xA;&#xA;Goroutine 923 (running) created at:&#xA;  testing.(*T).Run()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:1742 +0x825&#xA;  testing.runTests.func1()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:2161 +0x85&#xA;  testing.tRunner()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:1689 +0x21e&#xA;  testing.runTests()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:2159 +0x8be&#xA;  testing.(*M).Run()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:2027 +0xf17&#xA;  main.main()&#xA;      _testmain.go:323 +0x2bd&#xA;&#xA;Goroutine 965 (finished) created at:&#xA;  github.com/ably/ably-go/ably.(*eventListener).handle()&#xA;      /home/runner/work/ably-go/ably-go/ably/event_emitter.go:58 +0x27d&#xA;  github.com/ably/ably-go/ably.(*eventListener).handle-fm()&#xA;      &lt;autogenerated&gt;:1 +0x69&#xA;  github.com/ably/ably-go/ably.(*eventEmitter).Emit()&#xA;      /home/runner/work/ably-go/ably-go/ably/event_emitter.go:192 +0xb5&#xA;  github.com/ably/ably-go/ably.(*RealtimeChannel).notify()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_channel.go:956 +0x2d08&#xA;  github.com/ably/ably-go/ably.(*Realtime).onChannelMsg()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_client.go:86 +0x8e&#xA;  github.com/ably/ably-go/ably.(*Realtime).onChannelMsg-fm()&#xA;      &lt;autogenerated&gt;:1 +0x3d&#xA;  github.com/ably/ably-go/ably.(*Connection).eventloop()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:931 +0x1786&#xA;  github.com/ably/ably-go/ably.(*Connection).connectWith.gowrap2()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:434 +0x33&#xA;==================&#xA;==================&#xA;WARNING: DATA RACE&#xA;Read at 0x00c0005facd0 by goroutine 923:&#xA;  github.com/ably/ably-go/ably_test.TestDelta_PluginRecovery()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_channel_delta_integration_test.go:204 +0x1078&#xA;  testing.tRunner()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:1689 +0x21e&#xA;  testing.(*T).Run.gowrap1()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:1742 +0x44&#xA;&#xA;Previous write at 0x00c0005facd0 by goroutine 945:&#xA;  reflect.Value.assignTo()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/reflect/value.go:3348 +0x224&#xA;  reflect.Value.Set()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/reflect/value.go:2325 +0x104&#xA;  encoding/json.(*decodeState).literalStore()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/encoding/json/decode.go:952 +0x1644&#xA;  encoding/json.(*decodeState).value()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/encoding/json/decode.go:388 +0x224&#xA;  encoding/json.(*decodeState).object()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/encoding/json/decode.go:755 +0x1453&#xA;  encoding/json.(*decodeState).value()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/encoding/json/decode.go:374 +0xae&#xA;  encoding/json.(*decodeState).array()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/encoding/json/decode.go:555 +0x8b2&#xA;  encoding/json.(*decodeState).value()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/encoding/json/decode.go:364 +0x119&#xA;  encoding/json.(*decodeState).object()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/encoding/json/decode.go:755 +0x1453&#xA;  encoding/json.(*decodeState).value()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/encoding/json/decode.go:374 +0xae&#xA;  encoding/json.(*decodeState).unmarshal()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/encoding/json/decode.go:181 +0x2d6&#xA;  encoding/json.Unmarshal()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/encoding/json/decode.go:108 +0x22b&#xA;  github.com/ably/ably-go/ably.(*websocketConn).Receive()&#xA;      /home/runner/work/ably-go/ably-go/ably/websocket.go:78 +0x3cf&#xA;  github.com/ably/ably-go/ably_test.interceptConn.Receive()&#xA;      /home/runner/work/ably-go/ably-go/ably/ably_test.go:519 +0xb6&#xA;  github.com/ably/ably-go/ably_test.(*interceptConn).Receive()&#xA;      &lt;autogenerated&gt;:1 +0x7c&#xA;  github.com/ably/ably-go/ably.verboseConn.Receive()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:1061 +0xa2&#xA;  github.com/ably/ably-go/ably.(*verboseConn).Receive()&#xA;      &lt;autogenerated&gt;:1 +0x84&#xA;  github.com/ably/ably-go/ably.(*Connection).eventloop()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:777 +0x221&#xA;  github.com/ably/ably-go/ably.(*Connection).connectWith.gowrap2()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:434 +0x33&#xA;&#xA;Goroutine 923 (running) created at:&#xA;  testing.(*T).Run()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:1742 +0x825&#xA;  testing.runTests.func1()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:2161 +0x85&#xA;  testing.tRunner()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:1689 +0x21e&#xA;  testing.runTests()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:2159 +0x8be&#xA;  testing.(*M).Run()&#xA;      /opt/hostedtoolcache/go/1.22.12/x64/src/testing/testing.go:2027 +0xf17&#xA;  main.main()&#xA;      _testmain.go:323 +0x2bd&#xA;&#xA;Goroutine 945 (running) created at:&#xA;  github.com/ably/ably-go/ably.(*Connection).connectWith()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:434 +0xfb3&#xA;  github.com/ably/ably-go/ably.(*Connection).connectWithRetryLoop()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:299 +0xf2&#xA;  github.com/ably/ably-go/ably.(*Connection).connect()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:203 +0x144&#xA;  github.com/ably/ably-go/ably.newConn.func1()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:120 +0x145&#xA;==================&#xA;    testing.go:1398: race detected during execution of test</failure>
		</testcase>
		<testcase classname="ably" name="TestRealtimeChannel_Publish" time="14.150"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_PublishAsync" time="10.420"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_Subscribe" time="25.180"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_SubscriptionFilters" time="10.280"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_AttachWhileDisconnected" time="10.810"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_ShouldSetProvidedReadLimit" time="10.290"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_SetDefaultReadLimitIfServerHasNoLimit" time="10.100"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_ShouldReturnErrorIfReadLimitExceeded" time="10.500"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL2_ChannelEventForStateChange" time="38.810"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL2_ChannelEventForStateChange/on_ATTACHING" time="9.850"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL2_ChannelEventForStateChange/on_ATTACHED" time="9.570"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL2_ChannelEventForStateChange/on_DETACHING" time="9.660"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL2_ChannelEventForStateChange/on_DETACHED" time="9.740"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL2_ChannelEventForStateChange/on_SUSPENDED" time="0.000">
			<skipped message="    realtime_channel_spec_integration_test.go:107: SUSPENDED not yet implemented"></skipped>
		</testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL2_ChannelEventForStateChange/on_UPDATE" time="0.000">
			<skipped message="    realtime_channel_spec_integration_test.go:112: UPDATED not yet implemented"></skipped>
		</testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach" time="183.720"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4a:_If_already_attached,_nothing_is_done" time="0.020"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4b:_If_connection_state_is_INITIALIZED,_CLOSING,_CLOSED_returns_error" time="9.950"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4b:_If_connection_state_is_FAILED,_returns_error" time="10.410"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4b:_If_connection_state_is_SUSPENDED,_returns_error" time="10.530"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4c_RTL4d:_If_connected,_should_get_attached_successfully" time="10.120"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4d_:_should_return_error_on_FAILED_while_attaching_channel" time="9.950"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4d_:_should_return_error_on_DETACHED_while_attaching_channel" time="10.090"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4d_:_should_return_error_on_SUSPENDED_while_attaching_channel" time="0.000">
			<skipped message="    realtime_channel_spec_integration_test.go:529: Channel SUSPENDED not implemented yet"></skipped>
		</testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4e:_Transition_to_failed_if_no_attach_permission" time="10.230"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4f:_Channel_attach_timeout_if_not_received_within_realtime_request_timeout" time="0.010"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4g:_If_channel_in_FAILED_state,_set_err_to_null_and_proceed_with_attach" time="9.970"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4h:_If_channel_is_ATTACHING,_listen_to_the_attach_event_and_don&#39;t_send_attach_event" time="10.010"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4h:_If_channel_is_DETACHING,_do_attach_after_completion_of_request" time="10.240"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4i_:_If_connection_state_is_CONNECTING,_do_ATTACH_after_CONNECTED" time="10.490"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4i_:_If_connection_state_is_DISCONNECTED,_do_ATTACH_after_CONNECTED" time="10.680"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4j_RTL13a:_If_channel_attach_is_not_a_clean_attach,_should_set_ATTACH_RESUME_in_the_ATTACH_message" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4j1:_AttachResume_should_be_True_when_Attached_(Clean_ATTACH)" time="10.350"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4j2:_Rewind_flag_should_allow_to_receive_historic_messages" time="10.690"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4k:_If_params_given_channel_options,_should_be_sent_in_ATTACH_message" time="9.990"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4k1:_If_params_given_channel_options,_should_be_exposed_as_readonly_field_on_ATTACHED_message" time="9.420"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4l:_If_modes_provided_in_channelOptions,_should_be_encoded_as_bitfield_and_set_as_flags_field_of_ATTACH_message" time="10.500"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4m:_If_modes_provides_while_attach,_should_receive_modes_in_attached_message" time="10.070"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL5_Detach" time="80.100"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL5_Detach/RTL5a:_If_channel_is_INITIALIZED_or_DETACHED,_do_nothing" time="10.150"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL5_Detach/RTL5b:_If_channel_state_is_FAILED,_return_error" time="9.750"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL5_Detach/RTL5d_RTL5e:_If_connected,_should_do_successful_detach_with_server" time="10.240"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL5_Detach/RTL5e:_return_error_if_channel_detach_fails" time="9.450"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL5_Detach/RTL5f:_return_error_on_request_timeout" time="0.010"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL5_Detach/RTL5g:_If_connection_state_CLOSING_or_FAILED,_should_return_error" time="10.080"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL5_Detach/RTL5h_:_If_Connection_state_CONNECTING,_queue_the_DETACH_message_and_send_on_CONNECTED" time="10.250"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL5_Detach/RTL5h,_RTN19b:_If_Connection_state_DISCONNECTED,_queue_the_DETACH_message_and_send_on_CONNECTED" time="9.980"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL5_Detach/RTL5i:_If_channel_in_DETACHING_or_ATTACHING_state,_do_detach_after_completion_of_operation" time="10.160"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL5_Detach/RTL5j:_if_channel_state_is_SUSPENDED,_immediately_transition_to_DETACHED_state" time="0.000">
			<skipped message="    realtime_channel_spec_integration_test.go:1900: Channel SUSPENDED not implemented yet"></skipped>
		</testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL5_Detach/RTL5k:_When_receive_ATTACH_in_detaching_state,_send_new_DETACH_message" time="0.020"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c1_PublishNow" time="50.410"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c1_PublishNow/when_INITIALIZED" time="10.200"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c1_PublishNow/when_ATTACHING" time="9.630"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c1_PublishNow/when_ATTACHED" time="10.310"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c1_PublishNow/when_DETACHING" time="9.970"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c1_PublishNow/when_DETACHED" time="10.310"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c2_PublishEnqueue" time="201.570"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c2_PublishEnqueue/when_connection_is_INITIALIZED,_channel_is_INITIALIZED" time="10.510"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c2_PublishEnqueue/when_connection_is_CONNECTING,_channel_is_INITIALIZED" time="10.670"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c2_PublishEnqueue/when_connection_is_CONNECTING,_channel_is_ATTACHING" time="10.070"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c2_PublishEnqueue/when_connection_is_DISCONNECTED,_channel_is_INITIALIZED" time="9.770"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c2_PublishEnqueue/when_connection_is_DISCONNECTED,_channel_is_ATTACHING" time="9.810"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c2_PublishEnqueue/when_connection_is_DISCONNECTED,_channel_is_ATTACHED" time="10.610"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c2_PublishEnqueue/when_connection_is_DISCONNECTED,_channel_is_DETACHING" time="39.580"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c2_PublishEnqueue/when_connection_is_DISCONNECTED,_channel_is_DETACHED" time="10.470"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c2_PublishEnqueue/when_connection_is_CONNECTING,_channel_is_ATTACHED" time="40.150"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c2_PublishEnqueue/when_connection_is_CONNECTING,_channel_is_DETACHING" time="40.020"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c2_PublishEnqueue/when_connection_is_CONNECTING,_channel_is_DETACHED" time="9.910"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c4_PublishFail" time="10.270"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c4_PublishFail/when_connection_is_SUSPENDED,_channel_is_INITIALIZED" time="10.270"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c5_NoImplicitAttach" time="10.180"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL2f_RTL12_HandleResume" time="0.090"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL2f_RTL12_HandleResume/RTL2f:_when_flag_has_presence_is_provided,_set_channelChangeState_resume_to_false" time="0.020"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL2f_RTL12_HandleResume/RTL2f:_when_flag_has_backlog_is_provided,_set_channelChangeState_resume_to_false" time="0.020"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL2f_RTL12_HandleResume/RTL2f:_when_flag_resumed_is_provided,_set_channelChangeState_resume_to_true" time="0.020"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL2f_RTL12_HandleResume/RTL12:_when_RE-ATTACH_with_error,_set_ChannelEventUpdated" time="0.020"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL13_HandleDetached" time="0.070"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL13_HandleDetached/RTL13a:_when_ATTACHED,_successful_reattach" time="0.020"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL13_HandleDetached/RTL13b:_when_ATTACHING" time="0.020"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL13_HandleDetached/RTL13c:_stop_on_non-CONNECTED" time="0.030"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL17_IgnoreMessagesWhenNotAttached" time="0.020"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL17_IgnoreMessagesWhenNotAttached/Shouldn&#39;t_receive_message_when_not_attached" time="0.020"></testcase>
		<testcase classname="ably" name="Test_UpdateEmptyMessageFields_TM2a_TM2c_TM2f" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL14_HandleChannelError" time="0.030"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL14_HandleChannelError/RTL14:_when_Error,_should_transition_to_failed_state" time="0.030"></testcase>
		<testcase classname="ably" name="TestRealtime_RealtimeHost" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtime_RealtimeHost/REC1b_with_endpoint_option" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtime_RealtimeHost/REC1d2_with_legacy_realtimeHost_option" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtime_RSC7_AblyAgent" time="0.010"></testcase>
		<testcase classname="ably" name="TestRealtime_RSC7_AblyAgent/using_endpoint_option" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtime_RSC7_AblyAgent/using_endpoint_option/RSC7d3_:_Should_set_ablyAgent_header_with_correct_identifiers" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtime_RSC7_AblyAgent/using_endpoint_option/RSC7d6_:_Should_set_ablyAgent_header_with_custom_agents" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtime_RSC7_AblyAgent/using_endpoint_option/RSC7d6_:_Should_set_ablyAgent_header_with_custom_agents_missing_version" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtime_RSC7_AblyAgent/using_legacy_options" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtime_RSC7_AblyAgent/using_legacy_options/RSC7d3_:_Should_set_ablyAgent_header_with_correct_identifiers" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtime_RSC7_AblyAgent/using_legacy_options/RSC7d6_:_Should_set_ablyAgent_header_with_custom_agents" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtime_RSC7_AblyAgent/using_legacy_options/RSC7d6_:_Should_set_ablyAgent_header_with_custom_agents_missing_version" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtime_RTN17_HostFallback" time="4.840"></testcase>
		<testcase classname="ably" name="TestRealtime_RTN17_Integration_HostFallback_Internal_Server_Error" time="11.210"></testcase>
		<testcase classname="ably" name="TestRealtime_RTN17_Integration_HostFallback_Timeout" time="12.760"></testcase>
		<testcase classname="ably" name="TestRealtime_multiple" time="11.550"></testcase>
		<testcase classname="ably" name="TestRealtime_DontCrashOnCloseWhenEchoOff" time="10.030"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_AutoConnect_And_Close" time="10.040"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_No_AutoConnect" time="10.040"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_AlreadyConnected" time="9.970"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_AuthError" time="0.340"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_ReceiveTimeout" time="10.370"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_BreakConnLoopOnInactiveState" time="20.040"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_BreakConnLoopOnInactiveState/error" time="10.120"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_BreakConnLoopOnInactiveState/closed" time="9.920"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_SendErrorReconnects" time="9.860"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_ReconnectFromSuspendedState" time="39.670"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_PreviousConnectionsAreClosed" time="10.210"></testcase>
		<testcase classname="ably" name="Test_RTN2_WebsocketQueryParams" time="0.000"></testcase>
		<testcase classname="ably" name="Test_RTN2_WebsocketQueryParams/RTN2a:_format_should_be_msgPack_or_json" time="0.000"></testcase>
		<testcase classname="ably" name="Test_RTN2_WebsocketQueryParams/RTN2b:_echo_should_be_true_by_default" time="0.000"></testcase>
		<testcase classname="ably" name="Test_RTN2_WebsocketQueryParams/RTN2d:_clientId_contains_provided_clientId" time="0.000"></testcase>
		<testcase classname="ably" name="Test_RTN2_WebsocketQueryParams/RTN2e:_depending_on_the_auth_scheme,_accessToken_contains_token_string_or_key_contains_api_key" time="0.000"></testcase>
		<testcase classname="ably" name="Test_RTN2_WebsocketQueryParams/RTN2f:_api_version_v_should_be_the_API_version" time="0.000"></testcase>
		<testcase classname="ably" name="Test_RTN3_ConnectionAutoConnect" time="9.600"></testcase>
		<testcase classname="ably" name="Test_RTN4a_ConnectionEventForStateChange" time="50.330"></testcase>
		<testcase classname="ably" name="Test_RTN4a_ConnectionEventForStateChange/on_CONNECTING" time="10.330"></testcase>
		<testcase classname="ably" name="Test_RTN4a_ConnectionEventForStateChange/on_CONNECTED" time="9.680"></testcase>
		<testcase classname="ably" name="Test_RTN4a_ConnectionEventForStateChange/on_DISCONNECTED" time="10.020"></testcase>
		<testcase classname="ably" name="Test_RTN4a_ConnectionEventForStateChange/on_SUSPENDED" time="0.000">
			<skipped message="    realtime_conn_spec_integration_test.go:183: SUSPENDED not yet implemented"></skipped>
		</testcase>
		<testcase classname="ably" name="Test_RTN4a_ConnectionEventForStateChange/on_CLOSING" time="10.340"></testcase>
		<testcase classname="ably" name="Test_RTN4a_ConnectionEventForStateChange/on_CLOSED" time="9.880"></testcase>
		<testcase classname="ably" name="Test_RTN4a_ConnectionEventForStateChange/on_FAILED" time="0.080"></testcase>
		<testcase classname="ably" name="Test_RTN6_Connected_When_CONNECTED_Msg_Received" time="0.010"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN12_Connection_Close" time="32.250"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN12_Connection_Close/RTN12a:_transition_to_closed_on_connection_close" time="9.990"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN12_Connection_Close/RTN12b:_transition_to_closed_on_close_request_timeout" time="0.010"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN12_Connection_Close/RTN12c:_transition_to_closed_on_transport_error" time="9.610"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN12_Connection_Close/RTN12d_:_should_abort_reconnection_timer_while_disconnected_on_closed" time="1.000"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN12_Connection_Close/RTN12d:_should_abort_reconnection_timer_while_suspended_on_closed" time="1.400"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN12_Connection_Close/RTN12f:_transition_to_closed_when_close_is_called_intermittently" time="10.230"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN15a_ReconnectOnEOF" time="10.320"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN15b" time="10.260"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN15c6" time="10.250"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN15c7_attached" time="10.130"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN15d_MessageRecovery" time="10.610"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN15e_ConnKeyUpdatedOnReconnect" time="10.650"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN15g_NewConnectionOnStateLost" time="0.020"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN15h1_OnDisconnectedCannotRenewToken" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN15h2_ReauthFails" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN15h2_ReauthWithBadToken" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN15h2_Success" time="0.010"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN15h3_Success" time="0.010"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN22a_RTN15h2_Integration_ServerInitiatedAuth" time="19.120"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN22_RTC8_Integration_ServerInitiatedAuth" time="18.900"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN15i_OnErrorWhenConnected" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN16" time="9.760"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN23" time="0.010"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN14c_ConnectedTimeout" time="0.010"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN14a" time="0.000">
			<skipped message="    realtime_conn_spec_integration_test.go:2148: "></skipped>
		</testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN14b" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN14b/renewable_token_that_fails_to_renew_with_token_error" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN14b/renewable_token,_consecutive_token_errors" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN14g" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN14g/Non_RTN14b_error" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN14e" time="0.300"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN19b" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN19a" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN24_RTN21_RTC8a_RTN4h_Override_ConnectionDetails_On_Connected" time="0.000"></testcase>
		<testcase classname="ably" name="Test_RTN7b_ACK_NACK" time="0.010"></testcase>
		<testcase classname="ably" name="TestImplicitNACK" time="0.010"></testcase>
		<testcase classname="ably" name="TestIdempotentACK" time="0.010"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTC8a_ExplicitAuthorizeWhileConnected" time="10.500"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTC8a_ExplicitAuthorizeWhileConnected/RTC8a1:_Successful_reauth_with_more_capabilities" time="0.030"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTC8a_ExplicitAuthorizeWhileConnected/RTC8a1:_Successful_reauth_with_more_capabilities#01" time="0.020"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTC8a_ExplicitAuthorizeWhileConnected/RTC8a1:_Unsuccessful_reauth_with_capabilities_downgrade" time="0.050"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTC8a_ExplicitAuthorizeWhileConnected/RTC8a3:_Authorize_waits_for_connection_update" time="0.030"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTC8a_ExplicitAuthorizeWhileConnected/RTC8a4,_RSA3d:_reauthorize_with_JWT_token" time="13.210"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTC8a_ExplicitAuthorizeWhileConnected/RTC8a2:_Failed_reauth_moves_connection_to_FAILED" time="0.010"></testcase>
		<testcase classname="ably" name="TestRealtimePresence_Sync" time="10.110"></testcase>
		<testcase classname="ably" name="TestRealtimePresence_EnsureChannelIsAttached" time="9.850"></testcase>
		<testcase classname="ably" name="TestRealtimePresence_Presence_Enter_Update_Leave" time="11.200"></testcase>
		<testcase classname="ably" name="TestRealtimePresence_ServerSynthesized_Leave" time="11.060"></testcase>
		<testcase classname="ably" name="Test_ShouldEncodeRecoveryKeyContextObject" time="0.000"></testcase>
		<testcase classname="ably" name="Test_ShouldDecodeRecoveryKeyToRecoveryKeyContextObject" time="0.000"></testcase>
		<testcase classname="ably" name="Test_ShouldReturnNullRecoveryContextWhileDecodingFaultyRecoveryKey" time="0.000"></testcase>
		<testcase classname="ably" name="TestRESTChannel" time="11.190"></testcase>
		<testcase classname="ably" name="TestRESTChannel/Publish" time="0.180"></testcase>
		<testcase classname="ably" name="TestRESTChannel/Publish/is_available_in_the_history" time="0.060"></testcase>
		<testcase classname="ably" name="TestRESTChannel/PublishMultiple" time="0.150"></testcase>
		<testcase classname="ably" name="TestRESTChannel/encryption" time="0.130"></testcase>
		<testcase classname="ably" name="TestIdempotentPublishing" time="10.700"></testcase>
		<testcase classname="ably" name="TestIdempotentPublishing/when_ID_is_not_included_(#RSL1k2)" time="0.170"></testcase>
		<testcase classname="ably" name="TestIdempotentPublishing/when_ID_is_included_(#RSL1k2,_#RSL1k5)" time="0.140"></testcase>
		<testcase classname="ably" name="TestIdempotentPublishing/multiple_messages_in_one_publish_operation_(#RSL1k3)" time="0.010"></testcase>
		<testcase classname="ably" name="TestIdempotentPublishing/multiple_messages_in_one_publish_operation_with_IDs_following_the_required_format_described_in_RSL1k1_(#RSL1k3)" time="0.110"></testcase>
		<testcase classname="ably" name="TestIdempotentPublishing/the_ID_is_populated_with_a_random_ID_and_serial_0_from_this_lib_(#RSL1k1)" time="0.100"></testcase>
		<testcase classname="ably" name="TestIdempotentPublishing/publishing_a_batch_of_messages" time="0.110"></testcase>
		<testcase classname="ably" name="TestIdempotent_retry" time="10.060"></testcase>
		<testcase classname="ably" name="TestIdempotent_retry/when_there_is_a_network_failure_triggering_an_automatic_retry_(#RSL1k4)" time="0.280"></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.150"></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.130"></testcase>
		<testcase classname="ably" name="TestRSL1f1" time="10.600"></testcase>
		<testcase classname="ably" name="TestRSL1g" time="10.280"></testcase>
		<testcase classname="ably" name="TestRSL1g/RSL1g1b" time="0.160"></testcase>
		<testcase classname="ably" name="TestRSL1g/RSL1g2" time="0.110"></testcase>
		<testcase classname="ably" name="TestRSL1g/RSL1g3" time="0.010"></testcase>
		<testcase classname="ably" name="TestHistory_RSL2_RSL2b3" time="31.080"></testcase>
		<testcase classname="ably" name="TestHistory_RSL2_RSL2b3/limit=2" time="10.650"></testcase>
		<testcase classname="ably" name="TestHistory_RSL2_RSL2b3/limit=3" time="10.490"></testcase>
		<testcase classname="ably" name="TestHistory_RSL2_RSL2b3/limit=20" time="9.930"></testcase>
		<testcase classname="ably" name="TestHistory_Direction_RSL2b2" time="21.480"></testcase>
		<testcase classname="ably" name="TestHistory_Direction_RSL2b2/direction=backwards" time="10.860"></testcase>
		<testcase classname="ably" name="TestHistory_Direction_RSL2b2/direction=forwards" time="10.620"></testcase>
		<testcase classname="ably" name="TestGetChannelLifecycleStatus_RSL8" time="9.600"></testcase>
		<testcase classname="ably" name="TestGetChannelLifecycleStatus_RSL8/Test_Channel_Status_after_Publish" time="0.130"></testcase>
		<testcase classname="ably" name="TestRestClient" time="11.200"></testcase>
		<testcase classname="ably" name="TestRestClient/encoding_messages" time="0.000"></testcase>
		<testcase classname="ably" name="TestRestClient/encoding_messages/json" time="0.000"></testcase>
		<testcase classname="ably" name="TestRestClient/encoding_messages/msgpack" time="0.000"></testcase>
		<testcase classname="ably" name="TestRestClient/Time" time="0.040"></testcase>
		<testcase classname="ably" name="TestRestClient/Stats" time="1.240"></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="TestRest_RSC7_AblyAgent" time="0.000"></testcase>
		<testcase classname="ably" name="TestRest_RSC7_AblyAgent/RSC7d2_:_Should_set_ablyAgent_header_with_correct_identifiers" time="0.000"></testcase>
		<testcase classname="ably" name="TestRest_RSC7_AblyAgent/RSC7d6_:_Should_set_ablyAgent_header_with_custom_agents" time="0.000"></testcase>
		<testcase classname="ably" name="TestRest_RSC7_AblyAgent/RSC7d6_:_Should_set_ablyAgent_header_with_custom_agents_missing_version" time="0.000"></testcase>
		<testcase classname="ably" name="TestRest_RSC15_HostFallback" time="24.700"></testcase>
		<testcase classname="ably" name="TestRest_RSC15_HostFallback/RSC15a,_RSC15b,_RSC15d,_RSC15g3:_must_use_alternative_host" time="0.000"></testcase>
		<testcase classname="ably" name="TestRest_RSC15_HostFallback/RSC15l2_must_use_alternative_host_on_timeout" time="12.000"></testcase>
		<testcase classname="ably" name="TestRest_RSC15_HostFallback/RSC15l1_must_use_alternative_host_on_host_unresolvable_or_unreachable" time="2.650"></testcase>
		<testcase classname="ably" name="TestRest_RSC15_HostFallback/rsc15b" time="0.010"></testcase>
		<testcase classname="ably" name="TestRest_RSC15_HostFallback/rsc15b/must_not_occur_when_default_rest.ably.io_is_overridden" time="0.000"></testcase>
		<testcase classname="ably" name="TestRest_RSC15_HostFallback/rsc15b/must_occur_when_fallbackHostsUseDefault_is_true" time="0.000"></testcase>
		<testcase classname="ably" name="TestRest_RSC15_HostFallback/rsc15b/must_occur_when_fallbackHosts_is_set" time="0.000"></testcase>
		<testcase classname="ably" name="TestRest_RSC15_HostFallback/RSC15e_must_start_with_default_host" time="0.000"></testcase>
		<testcase classname="ably" name="TestRest_RSC15_HostFallback/must_not_occur_when_FallbackHosts_is_an_empty_array" time="0.000"></testcase>
		<testcase classname="ably" name="TestRest_rememberHostFallback" time="10.280"></testcase>
		<testcase classname="ably" name="TestRest_rememberHostFallback/remember_success_host_RSC15f" time="0.110"></testcase>
		<testcase classname="ably" name="TestRESTChannels_RSN1" time="9.670"></testcase>
		<testcase classname="ably" name="TestRESTChannels_RSN1/RSN3_RSN3a__must_create_new_channels_when_they_don&#39;t_exist" time="0.000"></testcase>
		<testcase classname="ably" name="TestRESTChannels_RSN1/RSN4_RSN4a_must_release_channels" time="0.000"></testcase>
		<testcase classname="ably" name="TestFixConnLeak_ISSUE89" time="10.390"></testcase>
		<testcase classname="ably" name="TestStatsPagination_RSC6a_RSCb3" time="33.470"></testcase>
		<testcase classname="ably" name="TestStatsPagination_RSC6a_RSCb3/limit=2" time="11.560"></testcase>
		<testcase classname="ably" name="TestStatsPagination_RSC6a_RSCb3/limit=3" time="11.100"></testcase>
		<testcase classname="ably" name="TestStatsPagination_RSC6a_RSCb3/limit=20" time="10.810"></testcase>
		<testcase classname="ably" name="TestStats_StartEnd_RSC6b1" time="10.900"></testcase>
		<testcase classname="ably" name="TestStats_Direction_RSC6b2" time="11.310"></testcase>
		<testcase classname="ably" name="TestStats_Direction_RSC6b2/direction=backwards" time="0.790"></testcase>
		<testcase classname="ably" name="TestStats_Direction_RSC6b2/direction=forwards" time="0.820"></testcase>
		<testcase classname="ably" name="TestStats_Unit_RSC6b4" time="11.080"></testcase>
		<testcase classname="ably" name="TestPresenceHistory_RSP4_RSP4b3" time="59.640"></testcase>
		<testcase classname="ably" name="TestPresenceHistory_RSP4_RSP4b3/limit=2" time="20.090"></testcase>
		<testcase classname="ably" name="TestPresenceHistory_RSP4_RSP4b3/limit=3" time="19.890"></testcase>
		<testcase classname="ably" name="TestPresenceHistory_RSP4_RSP4b3/limit=20" time="19.660"></testcase>
		<testcase classname="ably" name="TestPresenceHistory_Direction_RSP4b2" time="43.390"></testcase>
		<testcase classname="ably" name="TestPresenceHistory_Direction_RSP4b2/direction=backwards" time="20.430"></testcase>
		<testcase classname="ably" name="TestPresenceHistory_Direction_RSP4b2/direction=forwards" time="22.960"></testcase>
		<testcase classname="ably" name="TestPresenceGet_RSP3_RSP3a1" time="36.920"></testcase>
		<testcase classname="ably" name="TestPresenceGet_RSP3_RSP3a1/limit=2" time="11.800"></testcase>
		<testcase classname="ably" name="TestPresenceGet_RSP3_RSP3a1/limit=3" time="11.540"></testcase>
		<testcase classname="ably" name="TestPresenceGet_RSP3_RSP3a1/limit=20" time="13.570"></testcase>
		<testcase classname="ably" name="TestPresenceGet_ClientID_RSP3a2" time="21.150"></testcase>
		<testcase classname="ably" name="TestPresenceGet_ClientID_RSP3a2/clientID=client_bool" time="10.730"></testcase>
		<testcase classname="ably" name="TestPresenceGet_ClientID_RSP3a2/clientID=client_string" time="10.410"></testcase>
		<testcase classname="ably" name="TestPresenceGet_ConnectionID_RSP3a3" time="10.150"></testcase>
		<testcase classname="ably" name="TestRealtime_RTN17_HostFallback/RTN17a:_First_attempt_should_be_made_on_default_primary_host" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtime_RTN17_HostFallback/RTN17b:_Fallback_behaviour" time="0.230"></testcase>
		<testcase classname="ably" name="TestRealtime_RTN17_HostFallback/RTN17c:_Verifies_internet_connection_is_active_in_case_of_error_necessitating_use_of_an_alternative_host" time="0.140"></testcase>
		<testcase classname="ably" name="TestRealtime_RTN17_HostFallback/RTN17d:_Check_for_compatible_errors_before_attempting_to_reconnect_to_a_fallback_host" time="0.300"></testcase>
		<testcase classname="ably" name="TestRealtime_RTN17_HostFallback/RTN17e:_Same_fallback_host_should_be_used_for_REST_as_Realtime_Fallback_Host_for_a_given_active_connection" time="4.530"></testcase>
		<testcase classname="ably" name="TestRealtime_RTN17_HostFallback/RTN17b:_Fallback_behaviour/apply_when_default_realtime_endpoint_is_not_overridden,_port/tlsport_not_set" time="0.090"></testcase>
		<testcase classname="ably" name="TestRealtime_RTN17_HostFallback/RTN17b:_Fallback_behaviour/does_not_apply_when_endpoint_with_fqdn_is_used" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtime_RTN17_HostFallback/RTN17b:_Fallback_behaviour/does_not_apply_when_legacy_custom_realtimeHost_is_used" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtime_RTN17_HostFallback/RTN17b:_Fallback_behaviour/apply_when_fallbacks_are_provided" time="0.050"></testcase>
		<testcase classname="ably" name="TestRealtime_RTN17_HostFallback/RTN17b:_Fallback_behaviour/apply_when_fallbackHostUseDefault_is_true,_even_if_legacy_realtimeHost_is_set" time="0.090"></testcase>
	</testsuite>
	<testsuite tests="8" failures="0" time="1.012" name="github.com/ably/ably-go/ably/internal/ablyutil">
		<properties>
			<property name="go.version" value="go1.22.12"></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>
</testsuites>
