<testsuites>
	<testsuite tests="115" failures="0" time="0.028" name="github.com/ably/ably-go/ably">
		<properties>
			<property name="go.version" value="go1.17.9"></property>
		</properties>
		<testcase classname="ably" name="TestAddParams" time="0.000"></testcase>
		<testcase classname="ably" name="TestAddParams/Can_add_a_LeftHandSide_value_and_a_RightHandSidevalue" time="0.000"></testcase>
		<testcase classname="ably" name="TestAddParams/if_a_RightHandSide_value_is_already_in_LeftHandSide_it_is_not_added_again" time="0.000"></testcase>
		<testcase classname="ably" name="TestAddHeaders" time="0.000"></testcase>
		<testcase classname="ably" name="TestAddHeaders/Can_add_a_LeftHandSide_value_and_a_RightHandSidevalue" time="0.000"></testcase>
		<testcase classname="ably" name="TestAddHeaders/if_a_RightHandSide_value_is_already_in_LeftHandSide_it_is_not_added_again" time="0.000"></testcase>
		<testcase classname="ably" name="TestNewAuth" time="0.000"></testcase>
		<testcase classname="ably" name="TestNewAuth/Can_handle_an_invalid_auth_URL" time="0.000"></testcase>
		<testcase classname="ably" name="TestNewAuth/Use_authBasic_for_a_client_with_a_valid_key_and_no_token" time="0.000"></testcase>
		<testcase classname="ably" name="TestNewAuth/Use_authToken_for_a_client_with_a_valid_key_and_a_token" time="0.000"></testcase>
		<testcase classname="ably" name="TestNewAuth/Can_handle_a_client_with_an_invalid_key" time="0.000"></testcase>
		<testcase classname="ably" name="TestClientID" time="0.000"></testcase>
		<testcase classname="ably" name="TestClientID/Can_handle_a_client_ID" time="0.000"></testcase>
		<testcase classname="ably" name="TestClientID/Can_handle_a_wildcard_client_ID" time="0.000"></testcase>
		<testcase classname="ably" name="TestClientIDForCheck" time="0.000"></testcase>
		<testcase classname="ably" name="TestClientIDForCheck/If_the_authorization_method_is_authBasic,_no_client_ID_check_is_performed" time="0.000"></testcase>
		<testcase classname="ably" name="TestClientIDForCheck/If_the_authorization_method_is_authToken,_client_ID_is_used_for_check" time="0.000"></testcase>
		<testcase classname="ably" name="TestUpdateClientID" time="0.000"></testcase>
		<testcase classname="ably" name="TestUpdateClientID/Can_update_a_client_ID" time="0.000"></testcase>
		<testcase classname="ably" name="TestCreateTokenRequest" time="0.000"></testcase>
		<testcase classname="ably" name="TestCreateTokenRequest/Can_create_a_token_request" time="0.000"></testcase>
		<testcase classname="ably" name="TestRequestToken" time="0.000"></testcase>
		<testcase classname="ably" name="TestRequestToken/Can_handle_an_error_when_making_a_http_request_to_request_token_" time="0.000"></testcase>
		<testcase classname="ably" name="TestRequestToken/Can_request_successfully_request_token_when_a_token_is_found_in_auth_options" time="0.000"></testcase>
		<testcase classname="ably" name="TestVerifyChanState" time="0.000"></testcase>
		<testcase classname="ably" name="TestVerifyChanState/Error_if_the_channel_is_in_state:_&#34;FAILED&#34;" time="0.000"></testcase>
		<testcase classname="ably" name="TestVerifyChanState/No_error_if_the_channel_is_in_state:_&#34;INITIALIZED&#34;" time="0.000"></testcase>
		<testcase classname="ably" name="TestVerifyChanState/No_error_if_the_channel_is_in_state:_&#34;ATTACHING&#34;" time="0.000"></testcase>
		<testcase classname="ably" name="TestVerifyChanState/No_error_if_the_channel_is_in_state:_&#34;ATTACHED&#34;" time="0.000"></testcase>
		<testcase classname="ably" name="TestVerifyChanState/No_error_if_the_channel_is_in_state:_&#34;SUSPENDED&#34;" time="0.000"></testcase>
		<testcase classname="ably" name="TestVerifyChanState/Error_if_the_channel_is_in_state:_&#34;DETACHING&#34;" time="0.000"></testcase>
		<testcase classname="ably" name="TestVerifyChanState/Error_if_the_channel_is_in_state:_&#34;DETACHED&#34;" time="0.000"></testcase>
		<testcase classname="ably" name="TestSend" time="0.000"></testcase>
		<testcase classname="ably" name="TestSend/No_error_sending_presence_if_the_channel_is_in_state:_&#34;ATTACHED&#34;" time="0.000"></testcase>
		<testcase classname="ably" name="TestSend/Error_if_channel_is:_&#34;DETACHED&#34;_and_connection_is_:&#34;CLOSED&#34;" time="0.000"></testcase>
		<testcase classname="ably" name="TestAuth_TimestampRSA10k" time="0.000"></testcase>
		<testcase classname="ably" name="TestAuth_TimestampRSA10k/must_use_local_time_when_UseQueryTime_is_false" time="0.000"></testcase>
		<testcase classname="ably" name="TestAuth_TimestampRSA10k/must_use_server_time_when_UseQueryTime_is_true" time="0.000"></testcase>
		<testcase classname="ably" name="TestAuth_TimestampRSA10k/must_use_server_time_offset_" time="0.000"></testcase>
		<testcase classname="ably" name="TestAuth_ClientID_Error" time="0.000"></testcase>
		<testcase classname="ably" name="TestCrypto_RSE1_GetDefaultParams" time="0.000"></testcase>
		<testcase classname="ably" name="TestCrypto_RSE1_GetDefaultParams/RSE1a,_RSE1b,_RSE1d:_sets_defaults" time="0.000"></testcase>
		<testcase classname="ably" name="TestCrypto_RSE1_GetDefaultParams/RSE1b:_no_key_panics" time="0.000"></testcase>
		<testcase classname="ably" name="TestCrypto_RSE1_GetDefaultParams/RSE1e:_wrong_key_length_panics_(AES_256)" time="0.000"></testcase>
		<testcase classname="ably" name="TestCrypto_RSE1_GetDefaultParams/RSE1e:_valid_key_length_works_(AES_128)" time="0.000"></testcase>
		<testcase classname="ably" name="TestCrypto_RSE2_GenerateRandomKey" time="0.000"></testcase>
		<testcase classname="ably" name="TestCrypto_RSE2_GenerateRandomKey/must_use_default_key_length" time="0.000"></testcase>
		<testcase classname="ably" name="TestCrypto_RSE2_GenerateRandomKey/must_use_optional_key_length" time="0.000"></testcase>
		<testcase classname="ably" name="Test_Issue330_IVReuse" time="0.000"></testcase>
		<testcase classname="ably" name="TestErrorResponseWithInvalidKey" time="0.000"></testcase>
		<testcase classname="ably" name="TestIssue127ErrorResponse" time="0.000"></testcase>
		<testcase classname="ably" name="TestErrorInfo" time="0.000"></testcase>
		<testcase classname="ably" name="TestErrorInfo/without_an_error_code" time="0.000"></testcase>
		<testcase classname="ably" name="TestErrorInfo/with_an_error_code" time="0.000"></testcase>
		<testcase classname="ably" name="TestErrorInfo/with_an_error_code_and_an_href_attribute" time="0.000"></testcase>
		<testcase classname="ably" name="TestErrorInfo/with_an_error_code_and_a_message_with_the_same_error_URL" time="0.000"></testcase>
		<testcase classname="ably" name="TestErrorInfo/with_an_error_code_and_a_message_with_a_different_error_URL" time="0.000"></testcase>
		<testcase classname="ably" name="TestIssue_154" time="0.000"></testcase>
		<testcase classname="ably" name="TestFilteredLogger" time="0.000"></testcase>
		<testcase classname="ably" name="TestFilteredLogger/must_log_smaller_or_same_level" time="0.000"></testcase>
		<testcase classname="ably" name="TestFilteredLogger/must_log_nothing__for_LogNone" time="0.000"></testcase>
		<testcase classname="ably" name="TestDefaultFallbacks_RSC15h" time="0.000"></testcase>
		<testcase classname="ably" name="TestDefaultFallbacks_RSC15h/with_env_should_return_environment_fallback_hosts" time="0.000"></testcase>
		<testcase classname="ably" name="TestEnvFallbackHosts_RSC15i" time="0.000"></testcase>
		<testcase classname="ably" name="TestEnvFallbackHosts_RSC15i/with_env_should_return_environment_fallback_hosts" time="0.000"></testcase>
		<testcase classname="ably" name="TestFallbackHosts_RSC15b" time="0.000"></testcase>
		<testcase classname="ably" name="TestFallbackHosts_RSC15b/RSC15e_RSC15g3_with_default_options" time="0.000"></testcase>
		<testcase classname="ably" name="TestFallbackHosts_RSC15b/RSC15h_with_production_environment" time="0.000"></testcase>
		<testcase classname="ably" name="TestFallbackHosts_RSC15b/RSC15g2_RTC1e_with_custom_environment" time="0.000"></testcase>
		<testcase classname="ably" name="TestFallbackHosts_RSC15b/RSC15g4_RTC1e_with_custom_environment_and_fallbackHostUseDefault" time="0.000"></testcase>
		<testcase classname="ably" name="TestFallbackHosts_RSC15b/RSC11b_RTN17b_RTC1e_with_custom_environment_and_non_default_ports" time="0.000"></testcase>
		<testcase classname="ably" name="TestFallbackHosts_RSC15b/RSC11_with_custom_rest_host" time="0.000"></testcase>
		<testcase classname="ably" name="TestFallbackHosts_RSC15b/RSC11_with_custom_rest_host_and_realtime_host" time="0.000"></testcase>
		<testcase classname="ably" name="TestFallbackHosts_RSC15b/RSC15b_with_custom_rest_host_and_realtime_host_and_fallbackHostsUseDefault" time="0.000"></testcase>
		<testcase classname="ably" name="TestFallbackHosts_RSC15b/RSC15g1_with_fallbackHosts" time="0.000"></testcase>
		<testcase classname="ably" name="TestFallbackHosts_RSC15b/RSC15b_with_fallbackHosts_and_fallbackHostsUseDefault" time="0.000"></testcase>
		<testcase classname="ably" name="TestFallbackHosts_RSC15b/RSC15b_with_fallbackHostsUseDefault_And_custom_port" time="0.000"></testcase>
		<testcase classname="ably" name="TestClientOptions" time="0.000"></testcase>
		<testcase classname="ably" name="TestClientOptions/must_return_error_on_invalid_key" time="0.000"></testcase>
		<testcase classname="ably" name="TestScopeParams" time="0.000"></testcase>
		<testcase classname="ably" name="TestScopeParams/must_error_when_given_invalid_range" time="0.000"></testcase>
		<testcase classname="ably" name="TestScopeParams/must_set_url_values" time="0.000"></testcase>
		<testcase classname="ably" name="TestPaginateParams" time="0.000"></testcase>
		<testcase classname="ably" name="TestPaginateParams/returns_nil_with_no_values" time="0.000"></testcase>
		<testcase classname="ably" name="TestPaginateParams/returns_the_full_params_encoded" time="0.000"></testcase>
		<testcase classname="ably" name="TestPaginateParams/with_value" time="0.000"></testcase>
		<testcase classname="ably" name="TestPaginateParams/with_a_value_for_ScopeParams" time="0.000"></testcase>
		<testcase classname="ably" name="TestPaginateParams/with_invalid_value_for_direction" time="0.000"></testcase>
		<testcase classname="ably" name="TestPaginateParams/with_invalid_value_for_limit" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtimeChannelModes_ToFlag" time="0.000"></testcase>
		<testcase classname="ably" name="TestRealtimeChannelModes_FromFlag" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessage_EncodeDecode_TM3" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessage_EncodeDecode_TM3/with_valid_utf-8_string_data" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessage_EncodeDecode_TM3/with_invalid_utf-8_string_data" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessage_EncodeDecode_TM3/with_a_json_encoding_RSL4d3_map_data" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessage_EncodeDecode_TM3/with_a_json_encoding_RSL4d3_array_data" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessage_EncodeDecode_TM3/with_a_json_encoding_RSL4d3_json.Marshaler_data" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessage_EncodeDecode_TM3/with_a_base64_encoding_RSL4d3_binary_data" time="0.000"></testcase>
		<testcase classname="ably" name="TestMessage_EncodeDecode_TM3/with_json/utf-8/cipher+aes-128-cbc/base64" time="0.000"></testcase>
		<testcase classname="ably" name="TestPresenceMessage" time="0.000"></testcase>
		<testcase classname="ably" name="TestPresenceMessage/json" time="0.000"></testcase>
		<testcase classname="ably" name="TestPresenceMessage/msgpack" time="0.000"></testcase>
		<testcase classname="ably" name="TestPresenceMessage/json#01" time="0.000"></testcase>
		<testcase classname="ably" name="TestPresenceMessage/msgpack#01" time="0.000"></testcase>
		<testcase classname="ably" name="TestPresenceMessage/json#02" time="0.000"></testcase>
		<testcase classname="ably" name="TestPresenceMessage/msgpack#02" time="0.000"></testcase>
		<testcase classname="ably" name="TestPresenceMessage/json#03" time="0.000"></testcase>
		<testcase classname="ably" name="TestPresenceMessage/msgpack#03" time="0.000"></testcase>
		<testcase classname="ably" name="TestProtocolMessageEncodeZeroSerials" time="0.000"></testcase>
		<testcase classname="ably" name="TestUpdateEmptyMessageFields_TM2a_TM2c_TM2f" time="0.000"></testcase>
		<testcase classname="ably" name="TestIfFlagIsSet" time="0.000"></testcase>
		<testcase classname="ably" name="TestIfHasFlg" time="0.000"></testcase>
		<testcase classname="ably" name="TestDurationFromMsecsMarshal" time="0.000"></testcase>
		<testcase classname="ably" name="TestDurationFromMsecsMarshal/JSON" time="0.000"></testcase>
		<testcase classname="ably" name="TestDurationFromMsecsMarshal/Msgpack" time="0.000"></testcase>
	</testsuite>
	<testsuite tests="4" failures="0" time="0.032" name="github.com/ably/ably-go/ably/internal/ablyutil">
		<properties>
			<property name="go.version" value="go1.17.9"></property>
		</properties>
		<testcase classname="ablyutil" name="TestMsgpack" time="0.000"></testcase>
		<testcase classname="ablyutil" name="TestMsgpack/must_decode_int64_into_float64" time="0.000"></testcase>
		<testcase classname="ablyutil" name="TestAfterOK" time="0.010"></testcase>
		<testcase classname="ablyutil" name="TestAfterCanceled" time="0.010"></testcase>
	</testsuite>
	<testsuite tests="1" failures="0" time="0.005" name="github.com/ably/ably-go/ablytest">
		<properties>
			<property name="go.version" value="go1.17.9"></property>
		</properties>
		<testcase classname="ablytest" name="ExampleFmtFunc_Wrap" time="0.000"></testcase>
	</testsuite>
</testsuites>
