<testsuites>
	<testsuite tests="196" failures="22" time="843.134" name="github.com/ably/ably-go/ably">
		<properties>
			<property name="go.version" value="go1.20.10"></property>
		</properties>
		<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="TestAuth_BasicAuth" time="7.410"></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="7.530"></testcase>
		<testcase classname="ably" name="TestAuth_TokenAuth_Renew" time="11.550"></testcase>
		<testcase classname="ably" name="TestAuth_RequestToken" time="7.990"></testcase>
		<testcase classname="ably" name="TestAuth_ReuseClientID" time="7.330"></testcase>
		<testcase classname="ably" name="TestAuth_RequestToken_PublishClientID" time="10.250"></testcase>
		<testcase classname="ably" name="TestAuth_ClientID" time="7.940"></testcase>
		<testcase classname="ably" name="TestAuth_ClientID/Auth_ClientID" time="1.240"></testcase>
		<testcase classname="ably" name="TestAuth_CreateTokenRequest" time="7.040"></testcase>
		<testcase classname="ably" name="TestAuth_CreateTokenRequest/RSA9h" time="0.350"></testcase>
		<testcase classname="ably" name="TestAuth_CreateTokenRequest/RSA9h/parameters_are_optional" time="0.350"></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="7.870"></testcase>
		<testcase classname="ably" name="TestAuth_IgnoreTimestamp_QueryTime" time="28.880"></testcase>
		<testcase classname="ably" name="TestAuth_RSA7c" time="6.910"></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="7.000"></testcase>
		<testcase classname="ably" name="TestHTTPPaginatedFallback/request_time" time="0.010"></testcase>
		<testcase classname="ably" name="TestHTTPPaginatedResponse" time="8.580"></testcase>
		<testcase classname="ably" name="TestHTTPPaginatedResponse/request_time" time="0.130"></testcase>
		<testcase classname="ably" name="TestHTTPPaginatedResponse/request_404" time="0.450"></testcase>
		<testcase classname="ably" name="TestHTTPPaginatedResponse/request_post_get_messages" time="1.040"></testcase>
		<testcase classname="ably" name="TestHTTPPaginatedResponse/request_post_get_messages/post" time="0.390"></testcase>
		<testcase classname="ably" name="TestHTTPPaginatedResponse/request_post_get_messages/get" time="0.370"></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="TestRealtimeChannel_Publish" time="7.540"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_PublishAsync" time="7.440"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_Subscribe" time="22.850"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_SubscriptionFilters" time="7.620"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_AttachWhileDisconnected" time="9.100"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_ShouldSetAblySandboxDefaultReadLimit" time="7.350"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_ShouldSetProvidedReadLimit" time="7.650"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_ShouldReturnErrorIfReadLimitExceeded" time="7.510"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL2_ChannelEventForStateChange" time="30.390"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL2_ChannelEventForStateChange/on_ATTACHING" time="7.510"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL2_ChannelEventForStateChange/on_ATTACHED" time="7.540"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL2_ChannelEventForStateChange/on_DETACHING" time="7.670"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL2_ChannelEventForStateChange/on_DETACHED" time="7.670"></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="136.880">
			<failure message="Failed" type=""></failure>
		</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="7.590"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4b:_If_connection_state_is_FAILED,_returns_error" time="7.360"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4b:_If_connection_state_is_SUSPENDED,_returns_error" time="7.170"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4c_RTL4d:_If_connected,_should_get_attached_successfully" time="7.560">
			<failure message="Failed" type="">    realtime_channel_spec_integration_test.go:395: &#xA;    realtime_channel_spec_integration_test.go:407: timed out waiting for channel receive</failure>
		</testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4d_:_should_return_error_on_FAILED_while_attaching_channel" time="7.650"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4d_:_should_return_error_on_DETACHED_while_attaching_channel" time="7.350"></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:517: Channel SUSPENDED not implemented yet"></skipped>
		</testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4e:_Transition_to_failed_if_no_attach_permission" time="7.520"></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="7.440">
			<failure message="Failed" type="">    realtime_channel_spec_integration_test.go:683: &#xA;    realtime_channel_spec_integration_test.go:695: timed out waiting for channel receive</failure>
		</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="7.260"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4h:_If_channel_is_DETACHING,_do_attach_after_completion_of_request" time="7.770"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4i_:_If_connection_state_is_CONNECTING,_do_ATTACH_after_CONNECTED" time="7.530"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4i_:_If_connection_state_is_DISCONNECTED,_do_ATTACH_after_CONNECTED" time="7.970"></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="7.690"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4j2:_Rewind_flag_should_allow_to_receive_historic_messages" time="8.600"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4k:_If_params_given_channel_options,_should_be_sent_in_ATTACH_message" time="7.370">
			<failure message="Failed" type="">    realtime_channel_spec_integration_test.go:1156: </failure>
		</testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4k1:_If_params_given_channel_options,_should_be_exposed_as_readonly_field_on_ATTACHED_message" time="8.040">
			<failure message="Failed" type="">    realtime_channel_spec_integration_test.go:1188: </failure>
		</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="7.500">
			<failure message="Failed" type="">    realtime_channel_spec_integration_test.go:1220: </failure>
		</testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL4_Attach/RTL4m:_If_modes_provides_while_attach,_should_receive_modes_in_attached_message" time="7.480">
			<failure message="Failed" type="">    realtime_channel_spec_integration_test.go:1246: </failure>
		</testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL5_Detach" time="60.750">
			<failure message="Failed" type=""></failure>
		</testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL5_Detach/RTL5a:_If_channel_is_INITIALIZED_or_DETACHED,_do_nothing" time="7.500">
			<failure message="Failed" type="">    realtime_channel_spec_integration_test.go:1327: &#xA;    realtime_channel_spec_integration_test.go:1363: </failure>
		</testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL5_Detach/RTL5b:_If_channel_state_is_FAILED,_return_error" time="7.470"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL5_Detach/RTL5d_RTL5e:_If_connected,_should_do_successful_detach_with_server" time="7.760">
			<failure message="Failed" type="">    realtime_channel_spec_integration_test.go:1455: &#xA;    realtime_channel_spec_integration_test.go:1461: timed out waiting for channel receive</failure>
		</testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL5_Detach/RTL5e:_return_error_if_channel_detach_fails" time="7.460"></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="7.390"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL5_Detach/RTL5h_:_If_Connection_state_CONNECTING,_queue_the_DETACH_message_and_send_on_CONNECTED" time="8.160">
			<failure message="Failed" type="">    realtime_channel_spec_integration_test.go:1717: </failure>
		</testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL5_Detach/RTL5h_:_If_Connection_state_DISCONNECTED,_queue_the_DETACH_message_and_send_on_CONNECTED" time="7.770">
			<failure message="Failed" type="">    realtime_channel_spec_integration_test.go:1784: </failure>
		</testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL5_Detach/RTL5i:_If_channel_in_DETACHING_or_ATTACHING_state,_do_detach_after_completion_of_operation" time="7.220"></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:1856: 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="40.110"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c1_PublishNow/when_INITIALIZED" time="8.220"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c1_PublishNow/when_ATTACHING" time="7.670"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c1_PublishNow/when_ATTACHED" time="8.270"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c1_PublishNow/when_DETACHING" time="7.760"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c1_PublishNow/when_DETACHED" time="8.190"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c2_PublishEnqueue" time="84.860"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c2_PublishEnqueue/when_connection_is_INITIALIZED,_channel_is_INITIALIZED" time="7.770"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c2_PublishEnqueue/when_connection_is_CONNECTING,_channel_is_INITIALIZED" time="7.090"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c2_PublishEnqueue/when_connection_is_CONNECTING,_channel_is_ATTACHING" time="7.470"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c2_PublishEnqueue/when_connection_is_DISCONNECTED,_channel_is_INITIALIZED" time="7.480"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c2_PublishEnqueue/when_connection_is_DISCONNECTED,_channel_is_ATTACHING" time="7.530"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c2_PublishEnqueue/when_connection_is_DISCONNECTED,_channel_is_ATTACHED" time="7.890"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c2_PublishEnqueue/when_connection_is_DISCONNECTED,_channel_is_DETACHING" time="8.040"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c2_PublishEnqueue/when_connection_is_DISCONNECTED,_channel_is_DETACHED" time="7.980"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c2_PublishEnqueue/when_connection_is_CONNECTING,_channel_is_ATTACHED" time="7.830"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c2_PublishEnqueue/when_connection_is_CONNECTING,_channel_is_DETACHING" time="7.770"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c2_PublishEnqueue/when_connection_is_CONNECTING,_channel_is_DETACHED" time="8.010"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c4_PublishFail" time="7.010"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c4_PublishFail/when_connection_is_SUSPENDED,_channel_is_INITIALIZED" time="7.010"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL6c5_NoImplicitAttach" time="7.290"></testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL2f_RTL12_HandleResume" time="0.060">
			<failure message="Failed" type=""></failure>
		</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.010">
			<failure message="Failed" type="">2023/11/05 21:45:43 [ERROR] cannot set readlimit for connection, connection does not use nhooyr.io/websocket, using default readlimit instead&#xA;    realtime_channel_spec_integration_test.go:2248: timed out waiting for channel receive</failure>
		</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.010">
			<failure message="Failed" type="">2023/11/05 21:45:43 [ERROR] cannot set readlimit for connection, connection does not use nhooyr.io/websocket, using default readlimit instead&#xA;    realtime_channel_spec_integration_test.go:2248: timed out waiting for channel receive</failure>
		</testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL13_HandleDetached" time="90.000">
			<failure message="Failed" type=""></failure>
		</testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL13_HandleDetached/RTL13a:_when_ATTACHED,_successful_reattach" time="30.000">
			<failure message="Failed" type="">2023/11/05 21:45:43 [ERROR] cannot set readlimit for connection, connection does not use nhooyr.io/websocket, using default readlimit instead&#xA;    realtime_channel_spec_integration_test.go:2374: timed out waiting for channel receive</failure>
		</testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL13_HandleDetached/RTL13b:_when_ATTACHING" time="30.000">
			<failure message="Failed" type="">2023/11/05 21:46:13 [ERROR] cannot set readlimit for connection, connection does not use nhooyr.io/websocket, using default readlimit instead&#xA;    realtime_channel_spec_integration_test.go:2374: timed out waiting for channel receive</failure>
		</testcase>
		<testcase classname="ably" name="TestRealtimeChannel_RTL13_HandleDetached/RTL13c:_stop_on_non-CONNECTED" time="30.000">
			<failure message="Failed" type="">2023/11/05 21:46:43 [ERROR] cannot set readlimit for connection, connection does not use nhooyr.io/websocket, using default readlimit instead&#xA;    realtime_channel_spec_integration_test.go:2374: timed out waiting for channel receive</failure>
		</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_RSC7_AblyAgent" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtime_RSC7_AblyAgent/RSC7d3_:_Should_set_ablyAgent_header_with_correct_identifiers" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtime_RSC7_AblyAgent/RSC7d6_:_Should_set_ablyAgent_header_with_custom_agents" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtime_RSC7_AblyAgent/RSC7d6_:_Should_set_ablyAgent_header_with_custom_agents_missing_version" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtime_multiple" time="9.450">
			<failure message="Failed" type="">==================&#xA;WARNING: DATA RACE&#xA;Write at 0x00c000360b68 by goroutine 4008:&#xA;  github.com/ably/ably-go/ably.(*RealtimeChannel).lockSetState()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_channel.go:1007 +0x279&#xA;  github.com/ably/ably-go/ably.(*RealtimeChannel).lockAttach()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_channel.go:389 +0x51e&#xA;  github.com/ably/ably-go/ably.(*RealtimeChannel).mayAttach()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_channel.go:333 +0x18c&#xA;  github.com/ably/ably-go/ably.(*RealtimeChannel).attach()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_channel.go:319 +0x72&#xA;  github.com/ably/ably-go/ably.(*RealtimeChannel).Attach()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_channel.go:293 +0x57&#xA;  github.com/ably/ably-go/ably_test.TestRealtime_multiple.func1.1()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_client_integration_test.go:179 +0x44&#xA;  github.com/ably/ably-go/ablytest.ResultFunc.Go.func1()&#xA;      /home/runner/work/ably-go/ably-go/ablytest/resultgroup.go:174 +0x53&#xA;&#xA;Previous read at 0x00c000360b68 by goroutine 4012:&#xA;  github.com/ably/ably-go/ably.(*RealtimePresence).send()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_presence.go:104 +0x2c7&#xA;  github.com/ably/ably-go/ably.(*RealtimePresence).EnterClient()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_presence.go:530 +0x1d0&#xA;  github.com/ably/ably-go/ably.(*RealtimePresence).Enter()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_presence.go:480 +0xf5&#xA;  github.com/ably/ably-go/ably_test.TestRealtime_multiple.func1.3()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_client_integration_test.go:181 +0x6d&#xA;  github.com/ably/ably-go/ablytest.ResultFunc.Go.func1()&#xA;      /home/runner/work/ably-go/ably-go/ablytest/resultgroup.go:174 +0x53&#xA;&#xA;Goroutine 4008 (running) created at:&#xA;  github.com/ably/ably-go/ablytest.ResultFunc.Go()&#xA;      /home/runner/work/ably-go/ably-go/ablytest/resultgroup.go:173 +0xe4&#xA;  github.com/ably/ably-go/ablytest.(*ResultGroup).GoAdd()&#xA;      /home/runner/work/ably-go/ably-go/ablytest/resultgroup.go:74 +0x31&#xA;  github.com/ably/ably-go/ably_test.TestRealtime_multiple.func1()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_client_integration_test.go:179 +0x819&#xA;  github.com/ably/ably-go/ably_test.TestRealtime_multiple.func3()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_client_integration_test.go:215 +0x47&#xA;&#xA;Goroutine 4012 (running) created at:&#xA;  github.com/ably/ably-go/ablytest.ResultFunc.Go()&#xA;      /home/runner/work/ably-go/ably-go/ablytest/resultgroup.go:173 +0xe4&#xA;  github.com/ably/ably-go/ablytest.(*ResultGroup).GoAdd()&#xA;      /home/runner/work/ably-go/ably-go/ablytest/resultgroup.go:74 +0x31&#xA;  github.com/ably/ably-go/ably_test.TestRealtime_multiple.func1()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_client_integration_test.go:181 +0x6a6&#xA;  github.com/ably/ably-go/ably_test.TestRealtime_multiple.func3()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_client_integration_test.go:215 +0x47&#xA;==================&#xA;    testing.go:1446: race detected during execution of test</failure>
		</testcase>
		<testcase classname="ably" name="TestRealtime_DontCrashOnCloseWhenEchoOff" time="6.890"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_AutoConnect_And_Close" time="7.500"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_No_AutoConnect" time="7.410"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_AlreadyConnected" time="7.320"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_AuthError" time="0.350"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_ReceiveTimeout" time="7.040"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_BreakConnLoopOnInactiveState" time="13.660"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_BreakConnLoopOnInactiveState/error" time="6.670"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_BreakConnLoopOnInactiveState/closed" time="6.990"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_SendErrorReconnects" time="7.980"></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="7.250">
			<failure message="Failed" type="">==================&#xA;WARNING: DATA RACE&#xA;Write at 0x00c00023eee8 by goroutine 13481:&#xA;  github.com/ably/ably-go/ably.(*Connection).eventloop()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:813 +0xace&#xA;  github.com/ably/ably-go/ably.(*Connection).connectWith.func2()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:412 +0x39&#xA;&#xA;Previous read at 0x00c00023eee8 by goroutine 12808:&#xA;  github.com/ably/ably-go/ably.NewRealtime()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_client.go:42 +0x5e9&#xA;  github.com/ably/ably-go/ablytest.NewRealtime()&#xA;      /home/runner/work/ably-go/ably-go/ablytest/sandbox.go:109 +0x78&#xA;  github.com/ably/ably-go/ably_test.Test_RTN3_ConnectionAutoConnect()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn_spec_integration_test.go:108 +0x216&#xA;  testing.tRunner()&#xA;      /opt/hostedtoolcache/go/1.20.10/x64/src/testing/testing.go:1576 +0x216&#xA;  testing.(*T).Run.func1()&#xA;      /opt/hostedtoolcache/go/1.20.10/x64/src/testing/testing.go:1629 +0x47&#xA;&#xA;Goroutine 13481 (running) created at:&#xA;  github.com/ably/ably-go/ably.(*Connection).connectWith()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:412 +0x6db&#xA;  github.com/ably/ably-go/ably.(*Connection).connectWithRetryLoop()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:302 +0x11e&#xA;  github.com/ably/ably-go/ably.(*Connection).connect()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:205 +0x19e&#xA;  github.com/ably/ably-go/ably.newConn.func1()&#xA;      /home/runner/work/ably-go/ably-go/ably/realtime_conn.go:118 +0x13c&#xA;&#xA;Goroutine 12808 (running) created at:&#xA;  testing.(*T).Run()&#xA;      /opt/hostedtoolcache/go/1.20.10/x64/src/testing/testing.go:1629 +0x805&#xA;  testing.runTests.func1()&#xA;      /opt/hostedtoolcache/go/1.20.10/x64/src/testing/testing.go:2036 +0x8d&#xA;  testing.tRunner()&#xA;      /opt/hostedtoolcache/go/1.20.10/x64/src/testing/testing.go:1576 +0x216&#xA;  testing.runTests()&#xA;      /opt/hostedtoolcache/go/1.20.10/x64/src/testing/testing.go:2034 +0x87c&#xA;  testing.(*M).Run()&#xA;      /opt/hostedtoolcache/go/1.20.10/x64/src/testing/testing.go:1906 +0xb44&#xA;  main.main()&#xA;      _testmain.go:281 +0x2e9&#xA;==================&#xA;    testing.go:1446: race detected during execution of test</failure>
		</testcase>
		<testcase classname="ably" name="Test_RTN4a_ConnectionEventForStateChange" time="37.390"></testcase>
		<testcase classname="ably" name="Test_RTN4a_ConnectionEventForStateChange/on_CONNECTING" time="7.180"></testcase>
		<testcase classname="ably" name="Test_RTN4a_ConnectionEventForStateChange/on_CONNECTED" time="7.880"></testcase>
		<testcase classname="ably" name="Test_RTN4a_ConnectionEventForStateChange/on_DISCONNECTED" time="7.280"></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="7.490"></testcase>
		<testcase classname="ably" name="Test_RTN4a_ConnectionEventForStateChange/on_CLOSED" time="7.230"></testcase>
		<testcase classname="ably" name="Test_RTN4a_ConnectionEventForStateChange/on_FAILED" time="0.330"></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="24.100"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN12_Connection_Close/RTN12a:_transition_to_closed_on_connection_close" time="7.280"></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="7.240"></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="7.160"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN15a_ReconnectOnEOF" time="7.460"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN15b" time="7.830"></testcase>
		<testcase classname="ably" name="TestRealtimeConn_RTN15c6" time="30.050">
			<failure message="Failed" type="">panic: request error: Gateway Timeout (&#34;&lt;!DOCTYPE HTML PUBLIC \&#34;-//W3C//DTD HTML 4.01 Transitional//EN\&#34; \&#34;http://www.w3.org/TR/html4/loose.dtd\&#34;&gt;\n&lt;HTML&gt;&lt;HEAD&gt;&lt;META HTTP-EQUIV=\&#34;Content-Type\&#34; CONTENT=\&#34;text/html; charset=iso-8859-1\&#34;&gt;\n&lt;TITLE&gt;ERROR: The request could not be satisfied&lt;/TITLE&gt;\n&lt;/HEAD&gt;&lt;BODY&gt;\n&lt;H1&gt;504 ERROR&lt;/H1&gt;\n&lt;H2&gt;The request could not be satisfied.&lt;/H2&gt;\n&lt;HR noshade size=\&#34;1px\&#34;&gt;\nCloudFront attempted to establish a connection with the origin, but either the attempt failed or the origin closed the connection.\nWe can&#39;t connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner.\n&lt;BR clear=\&#34;all\&#34;&gt;\nIf you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation.\n&lt;BR clear=\&#34;all\&#34;&gt;\n&lt;HR noshade size=\&#34;1px\&#34;&gt;\n&lt;PRE&gt;\nGenerated by cloudfront (CloudFront)\nRequest ID: WVUwhd5e8TeYLIN0a8Y6QcU9KrSqOgMTQug0dQjr2qnTl3y6A-825g==\n&lt;/PRE&gt;\n&lt;ADDRESS&gt;\n&lt;/ADDRESS&gt;\n&lt;/BODY&gt;&lt;/HTML&gt;&#34;)&#xA;/opt/hostedtoolcache/go/1.20.10/x64/src/testing/testing.go:1526 +0x372&#xA;/opt/hostedtoolcache/go/1.20.10/x64/src/testing/testing.go:1529 +0x650&#xA;/opt/hostedtoolcache/go/1.20.10/x64/src/runtime/panic.go:890 +0x263&#xA;/home/runner/work/ably-go/ably-go/ablytest/sandbox.go:128 +0x72&#xA;/home/runner/work/ably-go/ably-go/ablytest/sandbox.go:108 +0x52&#xA;/home/runner/work/ably-go/ably-go/ably/realtime_conn_spec_integration_test.go:941 +0x237&#xA;/opt/hostedtoolcache/go/1.20.10/x64/src/testing/testing.go:1576 +0x217&#xA;/opt/hostedtoolcache/go/1.20.10/x64/src/testing/testing.go:1629 +0x806</failure>
		</testcase>
	</testsuite>
</testsuites>
