From a65aaa86fbb339d235b92fd1df14d0cf9b0e519e Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Wed, 27 Jan 2016 15:03:44 +0100 Subject: [PATCH 1/2] Update ms2 submodule. --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index f3651d2c5..f6fdbb88c 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit f3651d2c516ca74edd310e3868fa74d1149744c8 +Subproject commit f6fdbb88c668171e6df3fabdee21416cb2d0ef98 From 142891969ec2ba99a404c4ba3fd0d9f22e420766 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Wed, 27 Jan 2016 15:04:47 +0100 Subject: [PATCH 2/2] Add possibility to assiocate tags with tests and to run the only the tests corresponding with a specific tag with the --tag option. --- tester/call_tester.c | 328 ++++++++++++++-------------- tester/common/bc_tester_utils.c | 64 ++++-- tester/common/bc_tester_utils.h | 12 +- tester/complex_sip_call_tester.c | 12 +- tester/dtmf_tester.c | 14 +- tester/eventapi_tester.c | 18 +- tester/flexisip_tester.c | 48 ++-- tester/log_collection_tester.c | 10 +- tester/message_tester.c | 88 ++++---- tester/multi_call_tester.c | 32 +-- tester/multicast_call_tester.c | 12 +- tester/offeranswer_tester.c | 94 ++++---- tester/player_tester.c | 6 +- tester/presence_tester.c | 28 +-- tester/proxy_config_tester.c | 8 +- tester/quality_reporting_tester.c | 18 +- tester/register_tester.c | 68 +++--- tester/remote_provisioning_tester.c | 18 +- tester/setup_tester.c | 28 +-- tester/stun_tester.c | 4 +- tester/tunnel_tester.c | 26 +-- tester/upnp_tester.c | 6 +- tester/video_tester.c | 10 +- 23 files changed, 498 insertions(+), 454 deletions(-) diff --git a/tester/call_tester.c b/tester/call_tester.c index f015d5285..8eb458f93 100644 --- a/tester/call_tester.c +++ b/tester/call_tester.c @@ -5953,178 +5953,178 @@ static void call_with_zrtp_configured_calling_side(void) { } test_t call_tests[] = { - { "Early declined call", early_declined_call }, - { "Call declined", call_declined }, - { "Cancelled call", cancelled_call }, - { "Early cancelled call", early_cancelled_call}, - { "Call with DNS timeout", call_with_dns_time_out }, - { "Cancelled ringing call", cancelled_ringing_call }, - { "Call busy when calling self", call_busy_when_calling_self}, - { "Simple call", simple_call }, - { "Call terminated automatically by linphone_core_destroy", automatic_call_termination }, - { "Call with http proxy", call_with_http_proxy }, - { "Call with timeouted bye", call_with_timeouted_bye }, - { "Direct call over IPv6", direct_call_over_ipv6}, - { "Outbound call with multiple proxy possible", call_outbound_with_multiple_proxy }, - { "Audio call recording", audio_call_recording_test }, + TEST_NO_TAG("Early declined call", early_declined_call), + TEST_NO_TAG("Call declined", call_declined), + TEST_NO_TAG("Cancelled call", cancelled_call), + TEST_NO_TAG("Early cancelled call", early_cancelled_call), + TEST_NO_TAG("Call with DNS timeout", call_with_dns_time_out), + TEST_NO_TAG("Cancelled ringing call", cancelled_ringing_call), + TEST_NO_TAG("Call busy when calling self", call_busy_when_calling_self), + TEST_NO_TAG("Simple call", simple_call), + TEST_NO_TAG("Call terminated automatically by linphone_core_destroy", automatic_call_termination), + TEST_NO_TAG("Call with http proxy", call_with_http_proxy), + TEST_NO_TAG("Call with timeouted bye", call_with_timeouted_bye), + TEST_NO_TAG("Direct call over IPv6", direct_call_over_ipv6), + TEST_NO_TAG("Outbound call with multiple proxy possible", call_outbound_with_multiple_proxy), + TEST_NO_TAG("Audio call recording", audio_call_recording_test), #if 0 /* not yet activated because not implemented */ - { "Multiple answers to a call", multiple_answers_call }, + TEST_NO_TAG("Multiple answers to a call", multiple_answers_call), #endif - { "Multiple answers to a call with media relay", multiple_answers_call_with_media_relay }, - { "Call with media relay", call_with_media_relay}, - { "Call with media relay (random ports)", call_with_media_relay_random_ports}, - { "Simple call compatibility mode", simple_call_compatibility_mode }, - { "Early-media call", early_media_call }, - { "Early-media call with ringing", early_media_call_with_ringing }, - { "Early-media call with updated media session", early_media_call_with_session_update}, - { "Early-media call with updated codec", early_media_call_with_codec_update}, - { "Call terminated by caller", call_terminated_by_caller }, - { "Call without SDP", call_with_no_sdp}, - { "Call without SDP and ACK without SDP", call_with_no_sdp_ack_without_sdp}, - { "Call paused resumed", call_paused_resumed }, - { "Call paused resumed with video", call_paused_resumed_with_video }, - { "Call paused resumed with video no sdp ack", call_paused_resumed_with_no_sdp_ack}, - { "Call paused resumed with video no sdk ack using video policy for resume offers",call_paused_resumed_with_no_sdp_ack_using_video_policy}, - { "Call paused, updated and resumed with video no sdk ack using video policy for resume offers", call_paused_updated_resumed_with_no_sdp_ack_using_video_policy}, - { "Call paused, updated and resumed with video no sdk ack using video policy for resume offers with accept call update", call_paused_updated_resumed_with_no_sdp_ack_using_video_policy_and_accept_call_update}, - { "Call paused by both parties", call_paused_by_both }, - { "Call paused resumed with loss", call_paused_resumed_with_loss }, - { "Call paused resumed from callee", call_paused_resumed_from_callee }, - { "SRTP call", srtp_call }, - { "ZRTP call",zrtp_call}, - { "ZRTP SAS call",zrtp_sas_call}, - { "ZRTP Cipher call",zrtp_cipher_call}, - { "DTLS SRTP call",dtls_srtp_call}, - { "DTLS SRTP call with media relay", dtls_srtp_call_with_media_realy}, - { "ZRTP video call",zrtp_video_call}, - { "SRTP call with declined srtp", call_with_declined_srtp }, - { "SRTP call paused and resumed", call_srtp_paused_and_resumed }, - { "Call with file player", call_with_file_player}, - { "Call with mkv file player", call_with_mkv_file_player}, - { "Audio call with ICE no matching audio codecs", audio_call_with_ice_no_matching_audio_codecs }, + TEST_NO_TAG("Multiple answers to a call with media relay", multiple_answers_call_with_media_relay), + TEST_NO_TAG("Call with media relay", call_with_media_relay), + TEST_NO_TAG("Call with media relay (random ports)", call_with_media_relay_random_ports), + TEST_NO_TAG("Simple call compatibility mode", simple_call_compatibility_mode), + TEST_NO_TAG("Early-media call", early_media_call), + TEST_NO_TAG("Early-media call with ringing", early_media_call_with_ringing), + TEST_NO_TAG("Early-media call with updated media session", early_media_call_with_session_update), + TEST_NO_TAG("Early-media call with updated codec", early_media_call_with_codec_update), + TEST_NO_TAG("Call terminated by caller", call_terminated_by_caller), + TEST_NO_TAG("Call without SDP", call_with_no_sdp), + TEST_NO_TAG("Call without SDP and ACK without SDP", call_with_no_sdp_ack_without_sdp), + TEST_NO_TAG("Call paused resumed", call_paused_resumed), + TEST_NO_TAG("Call paused resumed with video", call_paused_resumed_with_video), + TEST_NO_TAG("Call paused resumed with video no sdp ack", call_paused_resumed_with_no_sdp_ack), + TEST_NO_TAG("Call paused resumed with video no sdk ack using video policy for resume offers", call_paused_resumed_with_no_sdp_ack_using_video_policy), + TEST_NO_TAG("Call paused, updated and resumed with video no sdk ack using video policy for resume offers", call_paused_updated_resumed_with_no_sdp_ack_using_video_policy), + TEST_NO_TAG("Call paused, updated and resumed with video no sdk ack using video policy for resume offers with accept call update", call_paused_updated_resumed_with_no_sdp_ack_using_video_policy_and_accept_call_update), + TEST_NO_TAG("Call paused by both parties", call_paused_by_both), + TEST_NO_TAG("Call paused resumed with loss", call_paused_resumed_with_loss), + TEST_NO_TAG("Call paused resumed from callee", call_paused_resumed_from_callee), + TEST_NO_TAG("SRTP call", srtp_call), + TEST_NO_TAG("ZRTP call", zrtp_call), + TEST_NO_TAG("ZRTP SAS call", zrtp_sas_call), + TEST_NO_TAG("ZRTP Cipher call", zrtp_cipher_call), + TEST_NO_TAG("DTLS SRTP call", dtls_srtp_call), + TEST_NO_TAG("DTLS SRTP call with media relay", dtls_srtp_call_with_media_realy), + TEST_NO_TAG("ZRTP video call", zrtp_video_call), + TEST_NO_TAG("SRTP call with declined srtp", call_with_declined_srtp), + TEST_NO_TAG("SRTP call paused and resumed", call_srtp_paused_and_resumed), + TEST_NO_TAG("Call with file player", call_with_file_player), + TEST_NO_TAG("Call with mkv file player", call_with_mkv_file_player), + TEST_ONE_TAG("Audio call with ICE no matching audio codecs", audio_call_with_ice_no_matching_audio_codecs, "ICE"), #ifdef VIDEO_ENABLED - { "Simple video call AVPF",video_call_avpf}, - { "Simple video call implicit AVPF both", video_call_using_policy_AVPF_implicit_caller_and_callee}, - { "Simple video call disable implicit AVPF on callee",video_call_disable_implicit_AVPF_on_callee}, - { "Simple video call disable implicit AVPF on caller",video_call_disable_implicit_AVPF_on_caller}, - { "Simple video call AVPF to implicit AVPF",video_call_AVPF_to_implicit_AVPF}, - { "Simple video call implicit AVPF to AVPF",video_call_implicit_AVPF_to_AVPF}, - { "Simple video call",video_call}, - { "Simple ZRTP video call",video_call_zrtp}, - { "Simple DTLS video call",video_call_dtls}, - { "Simple video call using policy",video_call_using_policy}, - { "Video call using policy with callee video disabled", video_call_using_policy_with_callee_video_disabled }, - { "Video call using policy with caller video disabled", video_call_using_policy_with_caller_video_disabled }, - { "Video call without SDP",video_call_no_sdp}, - { "SRTP ice video call", srtp_video_ice_call }, - { "ZRTP ice video call", zrtp_video_ice_call }, - { "Call with video added", call_with_video_added }, - { "Call with video added 2", call_with_video_added_2 }, - { "Call with video added (random ports)", call_with_video_added_random_ports }, - { "Call with several video switches", call_with_several_video_switches }, - { "SRTP call with several video switches", srtp_call_with_several_video_switches }, - { "Call with video declined", call_with_declined_video}, - { "Call with video declined despite policy", call_with_declined_video_despite_policy}, - { "Call with video declined using policy", call_with_declined_video_using_policy}, - { "Call with multiple early media", multiple_early_media }, - { "Call with ICE from video to non-video", call_with_ice_video_to_novideo}, - { "Call with ICE and video added", call_with_ice_video_added }, - { "Call with ICE and video added 2", call_with_ice_video_added_2 }, - { "Call with ICE and video added 3", call_with_ice_video_added_3 }, - { "Call with ICE and video added and refused", call_with_ice_video_added_and_refused }, - { "Call with ICE and video added with video policies to false", call_with_ice_video_added_with_video_policies_to_false }, + TEST_NO_TAG("Simple video call AVPF", video_call_avpf), + TEST_NO_TAG("Simple video call implicit AVPF both", video_call_using_policy_AVPF_implicit_caller_and_callee), + TEST_NO_TAG("Simple video call disable implicit AVPF on callee", video_call_disable_implicit_AVPF_on_callee), + TEST_NO_TAG("Simple video call disable implicit AVPF on caller", video_call_disable_implicit_AVPF_on_caller), + TEST_NO_TAG("Simple video call AVPF to implicit AVPF", video_call_AVPF_to_implicit_AVPF), + TEST_NO_TAG("Simple video call implicit AVPF to AVPF", video_call_implicit_AVPF_to_AVPF), + TEST_NO_TAG("Simple video call", video_call), + TEST_NO_TAG("Simple ZRTP video call", video_call_zrtp), + TEST_NO_TAG("Simple DTLS video call", video_call_dtls), + TEST_NO_TAG("Simple video call using policy", video_call_using_policy), + TEST_NO_TAG("Video call using policy with callee video disabled", video_call_using_policy_with_callee_video_disabled), + TEST_NO_TAG("Video call using policy with caller video disabled", video_call_using_policy_with_caller_video_disabled), + TEST_NO_TAG("Video call without SDP", video_call_no_sdp), + TEST_ONE_TAG("SRTP ice video call", srtp_video_ice_call, "ICE"), + TEST_ONE_TAG("ZRTP ice video call", zrtp_video_ice_call, "ICE"), + TEST_NO_TAG("Call with video added", call_with_video_added), + TEST_NO_TAG("Call with video added 2", call_with_video_added_2), + TEST_NO_TAG("Call with video added (random ports)", call_with_video_added_random_ports), + TEST_NO_TAG("Call with several video switches", call_with_several_video_switches), + TEST_NO_TAG("SRTP call with several video switches", srtp_call_with_several_video_switches), + TEST_NO_TAG("Call with video declined", call_with_declined_video), + TEST_NO_TAG("Call with video declined despite policy", call_with_declined_video_despite_policy), + TEST_NO_TAG("Call with video declined using policy", call_with_declined_video_using_policy), + TEST_NO_TAG("Call with multiple early media", multiple_early_media), + TEST_ONE_TAG("Call with ICE from video to non-video", call_with_ice_video_to_novideo, "ICE"), + TEST_ONE_TAG("Call with ICE and video added", call_with_ice_video_added, "ICE"), + TEST_ONE_TAG("Call with ICE and video added 2", call_with_ice_video_added_2, "ICE"), + TEST_ONE_TAG("Call with ICE and video added 3", call_with_ice_video_added_3, "ICE"), + TEST_ONE_TAG("Call with ICE and video added and refused", call_with_ice_video_added_and_refused, "ICE"), + TEST_ONE_TAG("Call with ICE and video added with video policies to false", call_with_ice_video_added_with_video_policies_to_false, "ICE"), #if ICE_WAS_WORKING_WITH_REAL_TIME_TEXT - { "Call with ICE, video and realtime text", call_with_ice_video_and_rtt }, + TEST_ONE_TAG("Call with ICE, video and realtime text", call_with_ice_video_and_rtt, "ICE"), #endif - { "Video call with ICE accepted using call params",video_call_ice_params}, - { "Audio call paused with caller video policy enabled",audio_call_with_video_policy_enabled}, - { "Video call recording (H264)", video_call_recording_h264_test }, - { "Video call recording (VP8)", video_call_recording_vp8_test }, - { "Snapshot", video_call_snapshot }, - { "Video call with early media and no matching audio codecs", video_call_with_early_media_no_matching_audio_codecs }, - { "DTLS SRTP video call",dtls_srtp_video_call}, - { "DTLS SRTP ice video call",dtls_srtp_ice_video_call}, - { "DTLS SRTP ice video call with relay",dtls_srtp_ice_video_call_with_relay}, - { "Video call with limited bandwidth", video_call_limited_bandwidth}, - { "Video call accepted in send only", accept_call_in_send_only}, - { "Video call accepted in send only with ice", accept_call_in_send_only_with_ice}, - { "2 Video call accepted in send only", two_accepted_call_in_send_only}, - { "Video call with re-invite(inactive) followed by re-invite", video_call_with_re_invite_inactive_followed_by_re_invite}, - { "Video call with re-invite(inactive) followed by re-invite(no sdp)", video_call_with_re_invite_inactive_followed_by_re_invite_no_sdp}, - { "SRTP Video call with re-invite(inactive) followed by re-invite", srtp_video_call_with_re_invite_inactive_followed_by_re_invite}, - { "SRTP Video call with re-invite(inactive) followed by re-invite(no sdp)", srtp_video_call_with_re_invite_inactive_followed_by_re_invite_no_sdp}, - { "Classic video entry phone setup", classic_video_entry_phone_setup }, + TEST_ONE_TAG("Video call with ICE accepted using call params", video_call_ice_params, "ICE"), + TEST_NO_TAG("Audio call paused with caller video policy enabled", audio_call_with_video_policy_enabled), + TEST_NO_TAG("Video call recording (H264)", video_call_recording_h264_test), + TEST_NO_TAG("Video call recording (VP8)", video_call_recording_vp8_test), + TEST_NO_TAG("Snapshot", video_call_snapshot), + TEST_NO_TAG("Video call with early media and no matching audio codecs", video_call_with_early_media_no_matching_audio_codecs), + TEST_NO_TAG("DTLS SRTP video call", dtls_srtp_video_call), + TEST_ONE_TAG("DTLS SRTP ice video call", dtls_srtp_ice_video_call, "ICE"), + TEST_ONE_TAG("DTLS SRTP ice video call with relay", dtls_srtp_ice_video_call_with_relay, "ICE"), + TEST_NO_TAG("Video call with limited bandwidth", video_call_limited_bandwidth), + TEST_NO_TAG("Video call accepted in send only", accept_call_in_send_only), + TEST_ONE_TAG("Video call accepted in send only with ice", accept_call_in_send_only_with_ice, "ICE"), + TEST_NO_TAG("2 Video call accepted in send only", two_accepted_call_in_send_only), + TEST_NO_TAG("Video call with re-invite(inactive) followed by re-invite", video_call_with_re_invite_inactive_followed_by_re_invite), + TEST_NO_TAG("Video call with re-invite(inactive) followed by re-invite(no sdp)", video_call_with_re_invite_inactive_followed_by_re_invite_no_sdp), + TEST_NO_TAG("SRTP Video call with re-invite(inactive) followed by re-invite", srtp_video_call_with_re_invite_inactive_followed_by_re_invite), + TEST_NO_TAG("SRTP Video call with re-invite(inactive) followed by re-invite(no sdp)", srtp_video_call_with_re_invite_inactive_followed_by_re_invite_no_sdp), + TEST_NO_TAG("Classic video entry phone setup", classic_video_entry_phone_setup), #endif - { "SRTP ice call", srtp_ice_call }, - { "ZRTP ice call", zrtp_ice_call }, - { "ZRTP ice call with relay", zrtp_ice_call_with_relay}, - { "DTLS SRTP ice call",dtls_srtp_ice_call}, - { "DTLS ice call with relay", dtls_ice_call_with_relay}, - { "Call with privacy", call_with_privacy }, - { "Call with privacy 2", call_with_privacy2 }, - { "Call rejected because of wrong credential", call_rejected_because_wrong_credentials}, - { "Call rejected without 403 because of wrong credential", call_rejected_without_403_because_wrong_credentials}, - { "Call rejected without 403 because of wrong credential and no auth req cb", call_rejected_without_403_because_wrong_credentials_no_auth_req_cb}, - { "Call with ICE", call_with_ice }, - { "Call with ICE without SDP", call_with_ice_no_sdp }, - { "Call with ICE (random ports)", call_with_ice_random_ports }, - { "Call from ICE to not ICE",ice_to_not_ice}, - { "Call from not ICE to ICE",not_ice_to_ice}, - { "Call with custom headers",call_with_custom_headers}, - { "Call with custom SDP attributes", call_with_custom_sdp_attributes }, - { "Call established with rejected INFO",call_established_with_rejected_info}, - { "Call established with rejected RE-INVITE",call_established_with_rejected_reinvite}, - { "Call established with rejected incoming RE-INVITE", call_established_with_rejected_incoming_reinvite }, - { "Call established with rejected RE-INVITE in error", call_established_with_rejected_reinvite_with_error}, - { "Call established with rejected RE-INVITE with trans pending error", call_established_with_rejected_reinvite_with_trans_pending_error}, - { "Call established with complex rejected operation",call_established_with_complex_rejected_operation}, - { "Call established with rejected info during re-invite",call_established_with_rejected_info_during_reinvite}, - { "Call redirected by callee", call_redirect}, - { "Call with specified codec bitrate", call_with_specified_codec_bitrate}, - { "Call with no audio codec", call_with_no_audio_codec}, - { "Video call with no audio and no video codec", video_call_with_no_audio_and_no_video_codec}, - { "Call with in-dialog UPDATE request", call_with_in_dialog_update }, - { "Call with in-dialog codec change", call_with_in_dialog_codec_change }, - { "Call with in-dialog codec change no sdp", call_with_in_dialog_codec_change_no_sdp }, - { "Call with pause no SDP on resume", call_with_paused_no_sdp_on_resume }, - { "Call with early media and no SDP in 200 Ok", call_with_early_media_and_no_sdp_in_200 }, - { "Call with early media and no SDP in 200 Ok with video", call_with_early_media_and_no_sdp_in_200_with_video }, - { "Call with ICE and no SDP in 200 OK", call_with_early_media_ice_and_no_sdp_in_200}, - { "Call with custom supported tags", call_with_custom_supported_tags }, - { "Call log from taken from asserted id",call_log_from_taken_from_p_asserted_id}, - { "Incoming INVITE with invalid SDP",incoming_invite_with_invalid_sdp}, - { "Outgoing INVITE with invalid ACK SDP",outgoing_invite_with_invalid_sdp}, - { "Incoming REINVITE with invalid SDP in ACK",incoming_reinvite_with_invalid_ack_sdp}, - { "Outgoing REINVITE with invalid SDP in ACK",outgoing_reinvite_with_invalid_ack_sdp}, - { "Call with generic CN", call_with_generic_cn }, - { "Call with transport change after released", call_with_transport_change_after_released }, - { "Unsuccessful call with transport change after released",unsucessfull_call_with_transport_change_after_released}, - { "Simple stereo call with L16", simple_stereo_call_l16 }, - { "Simple stereo call with opus", simple_stereo_call_opus }, - { "Simple mono call with opus", simple_mono_call_opus }, - { "Call with FQDN in SDP", call_with_fqdn_in_sdp}, - { "Call with RTP IO mode", call_with_rtp_io_mode }, - { "Call with generic NACK RTCP feedback", call_with_generic_nack_rtcp_feedback }, - { "Call with complex late offering", call_with_complex_late_offering }, + TEST_ONE_TAG("SRTP ice call", srtp_ice_call, "ICE"), + TEST_ONE_TAG("ZRTP ice call", zrtp_ice_call, "ICE"), + TEST_ONE_TAG("ZRTP ice call with relay", zrtp_ice_call_with_relay, "ICE"), + TEST_ONE_TAG("DTLS SRTP ice call", dtls_srtp_ice_call, "ICE"), + TEST_ONE_TAG("DTLS ice call with relay", dtls_ice_call_with_relay, "ICE"), + TEST_NO_TAG("Call with privacy", call_with_privacy), + TEST_NO_TAG("Call with privacy 2", call_with_privacy2), + TEST_NO_TAG("Call rejected because of wrong credential", call_rejected_because_wrong_credentials), + TEST_NO_TAG("Call rejected without 403 because of wrong credential", call_rejected_without_403_because_wrong_credentials), + TEST_NO_TAG("Call rejected without 403 because of wrong credential and no auth req cb", call_rejected_without_403_because_wrong_credentials_no_auth_req_cb), + TEST_ONE_TAG("Call with ICE", call_with_ice, "ICE"), + TEST_ONE_TAG("Call with ICE without SDP", call_with_ice_no_sdp, "ICE"), + TEST_ONE_TAG("Call with ICE (random ports)", call_with_ice_random_ports, "ICE"), + TEST_ONE_TAG("Call from ICE to not ICE", ice_to_not_ice, "ICE"), + TEST_ONE_TAG("Call from not ICE to ICE", not_ice_to_ice, "ICE"), + TEST_NO_TAG("Call with custom headers", call_with_custom_headers), + TEST_NO_TAG("Call with custom SDP attributes", call_with_custom_sdp_attributes), + TEST_NO_TAG("Call established with rejected INFO", call_established_with_rejected_info), + TEST_NO_TAG("Call established with rejected RE-INVITE", call_established_with_rejected_reinvite), + TEST_NO_TAG("Call established with rejected incoming RE-INVITE", call_established_with_rejected_incoming_reinvite), + TEST_NO_TAG("Call established with rejected RE-INVITE in error", call_established_with_rejected_reinvite_with_error), + TEST_NO_TAG("Call established with rejected RE-INVITE with trans pending error", call_established_with_rejected_reinvite_with_trans_pending_error), + TEST_NO_TAG("Call established with complex rejected operation", call_established_with_complex_rejected_operation), + TEST_NO_TAG("Call established with rejected info during re-invite", call_established_with_rejected_info_during_reinvite), + TEST_NO_TAG("Call redirected by callee", call_redirect), + TEST_NO_TAG("Call with specified codec bitrate", call_with_specified_codec_bitrate), + TEST_NO_TAG("Call with no audio codec", call_with_no_audio_codec), + TEST_NO_TAG("Video call with no audio and no video codec", video_call_with_no_audio_and_no_video_codec), + TEST_NO_TAG("Call with in-dialog UPDATE request", call_with_in_dialog_update), + TEST_NO_TAG("Call with in-dialog codec change", call_with_in_dialog_codec_change), + TEST_NO_TAG("Call with in-dialog codec change no sdp", call_with_in_dialog_codec_change_no_sdp), + TEST_NO_TAG("Call with pause no SDP on resume", call_with_paused_no_sdp_on_resume), + TEST_NO_TAG("Call with early media and no SDP in 200 Ok", call_with_early_media_and_no_sdp_in_200), + TEST_NO_TAG("Call with early media and no SDP in 200 Ok with video", call_with_early_media_and_no_sdp_in_200_with_video), + TEST_ONE_TAG("Call with ICE and no SDP in 200 OK", call_with_early_media_ice_and_no_sdp_in_200, "ICE"), + TEST_NO_TAG("Call with custom supported tags", call_with_custom_supported_tags), + TEST_NO_TAG("Call log from taken from asserted id", call_log_from_taken_from_p_asserted_id), + TEST_NO_TAG("Incoming INVITE with invalid SDP", incoming_invite_with_invalid_sdp), + TEST_NO_TAG("Outgoing INVITE with invalid ACK SDP", outgoing_invite_with_invalid_sdp), + TEST_NO_TAG("Incoming REINVITE with invalid SDP in ACK", incoming_reinvite_with_invalid_ack_sdp), + TEST_NO_TAG("Outgoing REINVITE with invalid SDP in ACK", outgoing_reinvite_with_invalid_ack_sdp), + TEST_NO_TAG("Call with generic CN", call_with_generic_cn), + TEST_NO_TAG("Call with transport change after released", call_with_transport_change_after_released), + TEST_NO_TAG("Unsuccessful call with transport change after released", unsucessfull_call_with_transport_change_after_released), + TEST_NO_TAG("Simple stereo call with L16", simple_stereo_call_l16), + TEST_NO_TAG("Simple stereo call with opus", simple_stereo_call_opus), + TEST_NO_TAG("Simple mono call with opus", simple_mono_call_opus), + TEST_NO_TAG("Call with FQDN in SDP", call_with_fqdn_in_sdp), + TEST_NO_TAG("Call with RTP IO mode", call_with_rtp_io_mode), + TEST_NO_TAG("Call with generic NACK RTCP feedback", call_with_generic_nack_rtcp_feedback), + TEST_NO_TAG("Call with complex late offering", call_with_complex_late_offering), #ifdef CALL_LOGS_STORAGE_ENABLED - { "Call log working if no db set", call_logs_if_no_db_set }, - { "Call log storage migration from rc to db", call_logs_migrate }, - { "Call log storage in sqlite database", call_logs_sqlite_storage }, + TEST_NO_TAG("Call log working if no db set", call_logs_if_no_db_set), + TEST_NO_TAG("Call log storage migration from rc to db", call_logs_migrate), + TEST_NO_TAG("Call log storage in sqlite database", call_logs_sqlite_storage), #endif - { "Call with custom RTP Modifier", call_with_custom_rtp_modifier }, - { "Call paused resumed with custom RTP Modifier", call_paused_resumed_with_custom_rtp_modifier }, - { "Call record with custom RTP Modifier", call_record_with_custom_rtp_modifier }, - { "Call with network switch", call_with_network_switch }, - { "Call with network switch in early state 1", call_with_network_switch_in_early_state_1 }, - { "Call with network switch in early state 2", call_with_network_switch_in_early_state_2 }, - { "Call with network switch and ICE", call_with_network_switch_and_ice }, - { "Call with network switch with socket refresh", call_with_network_switch_and_socket_refresh }, - { "Call with SIP and RTP independant switches", call_with_sip_and_rtp_independant_switches}, - { "Call with rtcp-mux", call_with_rtcp_mux}, - { "Call with rtcp-mux not accepted", call_with_rtcp_mux_not_accepted}, - { "Call with ICE and rtcp-mux", call_with_ice_and_rtcp_mux}, - { "Call with ICE and rtcp-mux without ICE re-invite", call_with_ice_and_rtcp_mux_without_reinvite}, - { "call with ZRTP configured calling side only", call_with_zrtp_configured_calling_side} + TEST_NO_TAG("Call with custom RTP Modifier", call_with_custom_rtp_modifier), + TEST_NO_TAG("Call paused resumed with custom RTP Modifier", call_paused_resumed_with_custom_rtp_modifier), + TEST_NO_TAG("Call record with custom RTP Modifier", call_record_with_custom_rtp_modifier), + TEST_NO_TAG("Call with network switch", call_with_network_switch), + TEST_NO_TAG("Call with network switch in early state 1", call_with_network_switch_in_early_state_1), + TEST_NO_TAG("Call with network switch in early state 2", call_with_network_switch_in_early_state_2), + TEST_ONE_TAG("Call with network switch and ICE", call_with_network_switch_and_ice, "ICE"), + TEST_NO_TAG("Call with network switch with socket refresh", call_with_network_switch_and_socket_refresh), + TEST_NO_TAG("Call with SIP and RTP independant switches", call_with_sip_and_rtp_independant_switches), + TEST_NO_TAG("Call with rtcp-mux", call_with_rtcp_mux), + TEST_NO_TAG("Call with rtcp-mux not accepted", call_with_rtcp_mux_not_accepted), + TEST_ONE_TAG("Call with ICE and rtcp-mux", call_with_ice_and_rtcp_mux, "ICE"), + TEST_ONE_TAG("Call with ICE and rtcp-mux without ICE re-invite", call_with_ice_and_rtcp_mux_without_reinvite, "ICE"), + TEST_NO_TAG("call with ZRTP configured calling side only", call_with_zrtp_configured_calling_side) }; test_suite_t call_test_suite = {"Single Call", NULL, NULL, liblinphone_tester_before_each, liblinphone_tester_after_each, diff --git a/tester/common/bc_tester_utils.c b/tester/common/bc_tester_utils.c index b69de691a..5522caaca 100644 --- a/tester/common/bc_tester_utils.c +++ b/tester/common/bc_tester_utils.c @@ -80,8 +80,9 @@ static unsigned char curses = 0; char* xml_file = "CUnitAutomated-Results.xml"; int xml_enabled = 0; -char * suite_name; -char * test_name; +char * suite_name = NULL; +char * test_name = NULL; +char * tag_name = NULL; static long max_vm_kb = 0; void (*tester_printf_va)(int level, const char *format, va_list args); @@ -93,14 +94,38 @@ void bc_tester_printf(int level, const char *format, ...) { va_end (args); } -int bc_tester_run_suite(test_suite_t *suite) { +int bc_tester_run_suite(test_suite_t *suite, const char *tag_name) { int i; + CU_pSuite pSuite; - CU_pSuite pSuite = CU_add_suite(suite->name, suite->before_all, suite->after_all); - - for (i = 0; i < suite->nb_tests; i++) { - if (NULL == CU_add_test(pSuite, suite->tests[i].name, suite->tests[i].func)) { - return CU_get_error(); + if (tag_name != NULL) { + int j; + int nb_tests_for_tag = 0; + for (i = 0; i < suite->nb_tests; i++) { + for (j = 0; j < (sizeof(suite->tests[i].tags) / sizeof(suite->tests[i].tags[0])); j++) { + if ((suite->tests[i].tags[j] != NULL) && (strcasecmp(tag_name, suite->tests[i].tags[j]) == 0)) { + nb_tests_for_tag++; + } + } + } + if (nb_tests_for_tag > 0) { + pSuite = CU_add_suite(suite->name, suite->before_all, suite->after_all); + for (i = 0; i < suite->nb_tests; i++) { + for (j = 0; j < (sizeof(suite->tests[i].tags) / sizeof(suite->tests[i].tags[0])); j++) { + if ((suite->tests[i].tags[j] != NULL) && (strcasecmp(tag_name, suite->tests[i].tags[j]) == 0)) { + if (NULL == CU_add_test(pSuite, suite->tests[i].name, suite->tests[i].func)) { + return CU_get_error(); + } + } + } + } + } + } else { + pSuite = CU_add_suite(suite->name, suite->before_all, suite->after_all); + for (i = 0; i < suite->nb_tests; i++) { + if (NULL == CU_add_test(pSuite, suite->tests[i].name, suite->tests[i].func)) { + return CU_get_error(); + } } } @@ -251,7 +276,7 @@ static void test_complete_message_handler(const CU_pTest pTest, const CU_pSuite } #endif -int bc_tester_run_tests(const char *suite_name, const char *test_name) { +int bc_tester_run_tests(const char *suite_name, const char *test_name, const char *tag_name) { int i; /* initialize the CUnit test registry */ @@ -259,7 +284,7 @@ int bc_tester_run_tests(const char *suite_name, const char *test_name) { return CU_get_error(); for (i = 0; i < nb_test_suites; i++) { - bc_tester_run_suite(test_suite[i]); + bc_tester_run_suite(test_suite[i], tag_name); } #ifdef HAVE_CU_GET_SUITE CU_set_suite_start_handler(suite_start_message_handler); @@ -284,13 +309,21 @@ int bc_tester_run_tests(const char *suite_name, const char *test_name) { CU_pSuite suite; suite=CU_get_suite(suite_name); if (!suite) { - bc_tester_printf(bc_printf_verbosity_error, "Could not find suite '%s'. Available suites are:", suite_name); + if (tag_name != NULL) { + bc_tester_printf(bc_printf_verbosity_error, "Could not find suite '%s' or this suite has no tests with tag '%s'. Available suites are:", suite_name, tag_name); + } else { + bc_tester_printf(bc_printf_verbosity_error, "Could not find suite '%s'. Available suites are:", suite_name); + } bc_tester_list_suites(); return -1; } else if (test_name) { CU_pTest test=CU_get_test_by_name(test_name, suite); if (!test) { - bc_tester_printf(bc_printf_verbosity_error, "Could not find test '%s' in suite '%s'. Available tests are:", test_name, suite_name); + if (tag_name != NULL) { + bc_tester_printf(bc_printf_verbosity_error, "Could not find test '%s' in suite '%s' or this test is not tagged '%s'. Available tests are:", test_name, suite_name, tag_name); + } else { + bc_tester_printf(bc_printf_verbosity_error, "Could not find test '%s' in suite '%s'. Available tests are:", test_name, suite_name); + } // do not use suite_name here, since this method is case sensitive bc_tester_list_tests(suite->pName); return -2; @@ -464,9 +497,12 @@ int bc_tester_parse_args(int argc, char **argv, int argid) } else if (strcmp(argv[i],"--test")==0){ CHECK_ARG("--test", ++i, argc); test_name=argv[i]; - }else if (strcmp(argv[i],"--suite")==0){ + } else if (strcmp(argv[i],"--suite")==0){ CHECK_ARG("--suite", ++i, argc); suite_name=argv[i]; + } else if (strcmp(argv[i], "--tag") == 0) { + CHECK_ARG("--tag", ++i, argc); + tag_name = argv[i]; } else if (strcmp(argv[i],"--list-suites")==0){ bc_tester_list_suites(); return 0; @@ -518,7 +554,7 @@ int bc_tester_start(const char* prog_name) { free(xml_tmp_file); } - ret = bc_tester_run_tests(suite_name, test_name); + ret = bc_tester_run_tests(suite_name, test_name, tag_name); return ret; } diff --git a/tester/common/bc_tester_utils.h b/tester/common/bc_tester_utils.h index 158f77434..63fd87925 100644 --- a/tester/common/bc_tester_utils.h +++ b/tester/common/bc_tester_utils.h @@ -46,8 +46,16 @@ typedef int (*pre_post_function_t)(void); typedef struct { const char *name; test_function_t func; + const char *tags[2]; } test_t; +#define TEST_NO_TAG(name, func) \ + { name, func, { NULL, NULL } } +#define TEST_ONE_TAG(name, func, tag) \ + { name, func, { tag, NULL } } +#define TEST_TWO_TAGS(name, func, tag1, tag2) \ + { name, func, { tag1, tag2 } } + typedef struct { const char *name; /*suite name*/ pre_post_function_t @@ -89,8 +97,8 @@ void bc_tester_list_suites(void); void bc_tester_list_tests(const char *suite_name); const char * bc_tester_suite_name(int suite_index); const char * bc_tester_test_name(const char *suite_name, int test_index); -int bc_tester_run_suite(test_suite_t *suite); -int bc_tester_run_tests(const char *suite_name, const char *test_name); +int bc_tester_run_suite(test_suite_t *suite, const char *tag_name); +int bc_tester_run_tests(const char *suite_name, const char *test_name, const char *tag_name); int bc_tester_suite_index(const char *suite_name); const char * bc_tester_current_suite_name(void); const char * bc_tester_current_test_name(void); diff --git a/tester/complex_sip_call_tester.c b/tester/complex_sip_call_tester.c index 5e89e020b..09c7e8076 100644 --- a/tester/complex_sip_call_tester.c +++ b/tester/complex_sip_call_tester.c @@ -343,12 +343,12 @@ static void call_invite_200ok_without_contact_header(void) { static test_t tests[] = { - { "SIP UPDATE within incoming reinvite without sdp", sip_update_within_icoming_reinvite_with_no_sdp }, - { "Call with audio mline before video in sdp", call_with_audio_mline_before_video_in_sdp }, - { "Call with video mline before audio in sdp", call_with_video_mline_before_audio_in_sdp }, - { "Call with multiple audio mline in sdp", call_with_multiple_audio_mline_in_sdp }, - { "Call with multiple video mline in sdp", call_with_multiple_video_mline_in_sdp }, - { "Call invite 200ok without contact header", call_invite_200ok_without_contact_header } + TEST_NO_TAG("SIP UPDATE within incoming reinvite without sdp", sip_update_within_icoming_reinvite_with_no_sdp), + TEST_NO_TAG("Call with audio mline before video in sdp", call_with_audio_mline_before_video_in_sdp), + TEST_NO_TAG("Call with video mline before audio in sdp", call_with_video_mline_before_audio_in_sdp), + TEST_NO_TAG("Call with multiple audio mline in sdp", call_with_multiple_audio_mline_in_sdp), + TEST_NO_TAG("Call with multiple video mline in sdp", call_with_multiple_video_mline_in_sdp), + TEST_NO_TAG("Call invite 200ok without contact header", call_invite_200ok_without_contact_header) }; test_suite_t complex_sip_call_test_suite = { diff --git a/tester/dtmf_tester.c b/tester/dtmf_tester.c index e31102304..616002aae 100644 --- a/tester/dtmf_tester.c +++ b/tester/dtmf_tester.c @@ -163,13 +163,13 @@ static void send_dtmf_rfc2833_opus(void) { } test_t dtmf_tests[] = { - { "Send DTMF using RFC2833",send_dtmf_rfc2833}, - { "Send DTMF using SIP INFO",send_dtmf_sip_info}, - { "Send DTMF sequence using RFC2833",send_dtmfs_sequence_rfc2833}, - { "Send DTMF sequence using SIP INFO",send_dtmfs_sequence_sip_info}, - { "DTMF sequence not sent if invalid call",send_dtmfs_sequence_not_ready}, - { "DTMF sequence canceled if call state changed",send_dtmfs_sequence_call_state_changed}, - { "Send DTMF using RFC2833 using Opus",send_dtmf_rfc2833_opus}, + TEST_NO_TAG("Send DTMF using RFC2833",send_dtmf_rfc2833), + TEST_NO_TAG("Send DTMF using SIP INFO",send_dtmf_sip_info), + TEST_NO_TAG("Send DTMF sequence using RFC2833",send_dtmfs_sequence_rfc2833), + TEST_NO_TAG("Send DTMF sequence using SIP INFO",send_dtmfs_sequence_sip_info), + TEST_NO_TAG("DTMF sequence not sent if invalid call",send_dtmfs_sequence_not_ready), + TEST_NO_TAG("DTMF sequence canceled if call state changed",send_dtmfs_sequence_call_state_changed), + TEST_NO_TAG("Send DTMF using RFC2833 using Opus",send_dtmf_rfc2833_opus) }; test_suite_t dtmf_test_suite = {"DTMF", NULL, NULL, liblinphone_tester_before_each, liblinphone_tester_after_each, diff --git a/tester/eventapi_tester.c b/tester/eventapi_tester.c index 46903f166..a8ada9ba2 100644 --- a/tester/eventapi_tester.c +++ b/tester/eventapi_tester.c @@ -359,15 +359,15 @@ static void publish_without_expires(void){ } test_t event_tests[] = { - { "Subscribe declined" , subscribe_test_declined }, - { "Subscribe terminated by subscriber", subscribe_test_terminated_by_subscriber }, - { "Subscribe with custom headers", subscribe_test_with_custom_header }, - { "Subscribe refreshed", subscribe_test_refreshed }, - { "Subscribe manually refreshed", subscribe_test_manually_refreshed }, - { "Subscribe terminated by notifier", subscribe_test_terminated_by_notifier }, - { "Publish", publish_test }, - { "Publish without expires", publish_without_expires }, - { "Publish without automatic refresh",publish_no_auto_test } + TEST_NO_TAG("Subscribe declined", subscribe_test_declined), + TEST_NO_TAG("Subscribe terminated by subscriber", subscribe_test_terminated_by_subscriber), + TEST_NO_TAG("Subscribe with custom headers", subscribe_test_with_custom_header), + TEST_NO_TAG("Subscribe refreshed", subscribe_test_refreshed), + TEST_NO_TAG("Subscribe manually refreshed", subscribe_test_manually_refreshed), + TEST_NO_TAG("Subscribe terminated by notifier", subscribe_test_terminated_by_notifier), + TEST_NO_TAG("Publish", publish_test), + TEST_NO_TAG("Publish without expires", publish_without_expires), + TEST_NO_TAG("Publish without automatic refresh",publish_no_auto_test) }; test_suite_t event_test_suite = {"Event", NULL, NULL, liblinphone_tester_before_each, liblinphone_tester_after_each, diff --git a/tester/flexisip_tester.c b/tester/flexisip_tester.c index b75bd04f2..c85c400ea 100644 --- a/tester/flexisip_tester.c +++ b/tester/flexisip_tester.c @@ -1082,30 +1082,30 @@ static void test_list_subscribe (void) { test_t flexisip_tests[] = { - { "Subscribe forking", subscribe_forking }, - { "Message forking", message_forking }, - { "Message forking with unreachable recipients", message_forking_with_unreachable_recipients }, - { "Message forking with all recipients unreachable", message_forking_with_all_recipients_unreachable}, - { "Call forking", call_forking }, - { "Call forking cancelled", call_forking_cancelled }, - { "Call forking declined globaly", call_forking_declined_globaly }, - { "Call forking declined localy", call_forking_declined_localy }, - { "Call forking with urgent reply", call_forking_with_urgent_reply }, - { "Call forking with push notification (single)", call_forking_with_push_notification_single }, - { "Call forking with push notification (multiple)", call_forking_with_push_notification_multiple }, - { "Call forking not responded", call_forking_not_responded }, - { "Early-media call forking", early_media_call_forking }, - { "Call with sips", call_with_sips }, - { "Call with sips not achievable", call_with_sips_not_achievable }, - { "Call with ipv6", call_with_ipv6 }, - { "Subscribe Notify with sipp publisher", test_subscribe_notify_with_sipp_publisher }, - { "Subscribe Notify with sipp double publish", test_subscribe_notify_with_sipp_publisher_double_publish }, - { "Publish/unpublish", test_publish_unpublish }, - { "List subscribe", test_list_subscribe }, - { "File transfer message rcs to external body client", file_transfer_message_rcs_to_external_body_client }, - { "File transfer message external body to rcs client", file_transfer_message_external_body_to_rcs_client }, - { "File transfer message external body to external body client", file_transfer_message_external_body_to_external_body_client }, - { "DoS module trigger by sending a lot of chat messages", dos_module_trigger } + TEST_NO_TAG("Subscribe forking", subscribe_forking), + TEST_NO_TAG("Message forking", message_forking), + TEST_NO_TAG("Message forking with unreachable recipients", message_forking_with_unreachable_recipients), + TEST_NO_TAG("Message forking with all recipients unreachable", message_forking_with_all_recipients_unreachable), + TEST_NO_TAG("Call forking", call_forking), + TEST_NO_TAG("Call forking cancelled", call_forking_cancelled), + TEST_NO_TAG("Call forking declined globaly", call_forking_declined_globaly), + TEST_NO_TAG("Call forking declined localy", call_forking_declined_localy), + TEST_NO_TAG("Call forking with urgent reply", call_forking_with_urgent_reply), + TEST_NO_TAG("Call forking with push notification (single)", call_forking_with_push_notification_single), + TEST_NO_TAG("Call forking with push notification (multiple)", call_forking_with_push_notification_multiple), + TEST_NO_TAG("Call forking not responded", call_forking_not_responded), + TEST_NO_TAG("Early-media call forking", early_media_call_forking), + TEST_NO_TAG("Call with sips", call_with_sips), + TEST_NO_TAG("Call with sips not achievable", call_with_sips_not_achievable), + TEST_NO_TAG("Call with ipv6", call_with_ipv6), + TEST_NO_TAG("Subscribe Notify with sipp publisher", test_subscribe_notify_with_sipp_publisher), + TEST_NO_TAG("Subscribe Notify with sipp double publish", test_subscribe_notify_with_sipp_publisher_double_publish), + TEST_NO_TAG("Publish/unpublish", test_publish_unpublish), + TEST_NO_TAG("List subscribe", test_list_subscribe), + TEST_NO_TAG("File transfer message rcs to external body client", file_transfer_message_rcs_to_external_body_client), + TEST_NO_TAG("File transfer message external body to rcs client", file_transfer_message_external_body_to_rcs_client), + TEST_NO_TAG("File transfer message external body to external body client", file_transfer_message_external_body_to_external_body_client), + TEST_NO_TAG("DoS module trigger by sending a lot of chat messages", dos_module_trigger) }; test_suite_t flexisip_test_suite = {"Flexisip", NULL, NULL, liblinphone_tester_before_each, liblinphone_tester_after_each, diff --git a/tester/log_collection_tester.c b/tester/log_collection_tester.c index 1a074b61f..caf96fb31 100644 --- a/tester/log_collection_tester.c +++ b/tester/log_collection_tester.c @@ -317,11 +317,11 @@ static void upload_collected_traces(void) { } test_t log_collection_tests[] = { - { "No file when disabled", collect_files_disabled}, - { "Collect files filled when enabled", collect_files_filled}, - { "Logs collected into small file", collect_files_small_size}, - { "Logs collected when decreasing max size", collect_files_changing_size}, - { "Upload collected traces", upload_collected_traces} + TEST_NO_TAG("No file when disabled", collect_files_disabled), + TEST_NO_TAG("Collect files filled when enabled", collect_files_filled), + TEST_NO_TAG("Logs collected into small file", collect_files_small_size), + TEST_NO_TAG("Logs collected when decreasing max size", collect_files_changing_size), + TEST_NO_TAG("Upload collected traces", upload_collected_traces) }; test_suite_t log_collection_test_suite = {"LogCollection", NULL, NULL, liblinphone_tester_before_each, liblinphone_tester_after_each, diff --git a/tester/message_tester.c b/tester/message_tester.c index e49d97979..492d74f5f 100644 --- a/tester/message_tester.c +++ b/tester/message_tester.c @@ -1705,54 +1705,54 @@ void file_transfer_with_http_proxy(void) { } test_t message_tests[] = { - {"Text message", text_message}, - {"Text message within call dialog", text_message_within_call_dialog}, - {"Text message with credentials from auth callback", text_message_with_credential_from_auth_callback}, - {"Text message with privacy", text_message_with_privacy}, - {"Text message compatibility mode", text_message_compatibility_mode}, - {"Text message with ack", text_message_with_ack}, - {"Text message with send error", text_message_with_send_error}, - {"Text message with external body", text_message_with_external_body}, - {"Transfer message", transfer_message}, - {"Transfer message with http proxy", file_transfer_with_http_proxy}, - {"Transfer message with upload io error", transfer_message_with_upload_io_error}, - {"Transfer message with download io error", transfer_message_with_download_io_error}, - {"Transfer message upload cancelled", transfer_message_upload_cancelled}, - {"Transfer message download cancelled", transfer_message_download_cancelled}, - {"Transfer message using external body url", file_transfer_using_external_body_url}, - {"Transfer 2 messages simultaneously", file_transfer_2_messages_simultaneously}, - {"Text message denied", text_message_denied}, - {"Info message", info_message}, - {"Info message with body", info_message_with_body}, - {"IsComposing notification", is_composing_notification}, + TEST_NO_TAG("Text message", text_message), + TEST_NO_TAG("Text message within call dialog", text_message_within_call_dialog), + TEST_NO_TAG("Text message with credentials from auth callback", text_message_with_credential_from_auth_callback), + TEST_NO_TAG("Text message with privacy", text_message_with_privacy), + TEST_NO_TAG("Text message compatibility mode", text_message_compatibility_mode), + TEST_NO_TAG("Text message with ack", text_message_with_ack), + TEST_NO_TAG("Text message with send error", text_message_with_send_error), + TEST_NO_TAG("Text message with external body", text_message_with_external_body), + TEST_NO_TAG("Transfer message", transfer_message), + TEST_NO_TAG("Transfer message with http proxy", file_transfer_with_http_proxy), + TEST_NO_TAG("Transfer message with upload io error", transfer_message_with_upload_io_error), + TEST_NO_TAG("Transfer message with download io error", transfer_message_with_download_io_error), + TEST_NO_TAG("Transfer message upload cancelled", transfer_message_upload_cancelled), + TEST_NO_TAG("Transfer message download cancelled", transfer_message_download_cancelled), + TEST_NO_TAG("Transfer message using external body url", file_transfer_using_external_body_url), + TEST_NO_TAG("Transfer 2 messages simultaneously", file_transfer_2_messages_simultaneously), + TEST_NO_TAG("Text message denied", text_message_denied), + TEST_NO_TAG("Info message", info_message), + TEST_NO_TAG("Info message with body", info_message_with_body), + TEST_NO_TAG("IsComposing notification", is_composing_notification), #ifdef HAVE_LIME - {"Lime text message", lime_text_message}, - {"Lime text message to non lime", lime_text_message_to_non_lime}, - {"Lime transfer message", lime_transfer_message}, - {"Lime transfer message without encryption", lime_transfer_message_without_encryption}, - {"Lime unitary", lime_unit}, + TEST_NO_TAG("Lime text message", lime_text_message), + TEST_NO_TAG("Lime text message to non lime", lime_text_message_to_non_lime), + TEST_NO_TAG("Lime transfer message", lime_transfer_message), + TEST_NO_TAG("Lime transfer message without encryption", lime_transfer_message_without_encryption), + TEST_NO_TAG("Lime unitary", lime_unit), #endif /* HAVE_LIME */ #ifdef MSG_STORAGE_ENABLED - {"Database migration", database_migration}, - {"History range", history_range}, - {"History count", history_count}, + TEST_NO_TAG("Database migration", database_migration), + TEST_NO_TAG("History range", history_range), + TEST_NO_TAG("History count", history_count), #endif - {"Text status after destroying chat room", text_status_after_destroying_chat_room}, - {"Transfer not sent if invalid url", file_transfer_not_sent_if_invalid_url}, - {"Transfer not sent if host not found", file_transfer_not_sent_if_host_not_found}, - {"Transfer not sent if url moved permanently", file_transfer_not_sent_if_url_moved_permanently}, - {"Transfer io error after destroying chatroom", file_transfer_io_error_after_destroying_chatroom}, - {"Real Time Text message", real_time_text_message}, - {"Real Time Text conversation", real_time_text_conversation}, - {"Real Time Text without audio", real_time_text_without_audio}, - {"Real Time Text with srtp", real_time_text_srtp}, - {"Real Time Text with ice", real_time_text_ice}, - {"Real Time Text message compatibility crlf", real_time_text_message_compat_crlf}, - {"Real Time Text message compatibility lf", real_time_text_message_compat_lf}, - {"Real Time Text message with accented characters", real_time_text_message_accented_chars}, - {"Real Time Text offer answer with different payload numbers (sender side)", real_time_text_message_different_text_codecs_payload_numbers_sender_side}, - {"Real Time Text offer answer with different payload numbers (receiver side)", real_time_text_message_different_text_codecs_payload_numbers_receiver_side}, - {"Real Time Text copy paste", real_time_text_copy_paste}, + TEST_NO_TAG("Text status after destroying chat room", text_status_after_destroying_chat_room), + TEST_NO_TAG("Transfer not sent if invalid url", file_transfer_not_sent_if_invalid_url), + TEST_NO_TAG("Transfer not sent if host not found", file_transfer_not_sent_if_host_not_found), + TEST_NO_TAG("Transfer not sent if url moved permanently", file_transfer_not_sent_if_url_moved_permanently), + TEST_NO_TAG("Transfer io error after destroying chatroom", file_transfer_io_error_after_destroying_chatroom), + TEST_NO_TAG("Real Time Text message", real_time_text_message), + TEST_NO_TAG("Real Time Text conversation", real_time_text_conversation), + TEST_NO_TAG("Real Time Text without audio", real_time_text_without_audio), + TEST_NO_TAG("Real Time Text with srtp", real_time_text_srtp), + TEST_NO_TAG("Real Time Text with ice", real_time_text_ice), + TEST_NO_TAG("Real Time Text message compatibility crlf", real_time_text_message_compat_crlf), + TEST_NO_TAG("Real Time Text message compatibility lf", real_time_text_message_compat_lf), + TEST_NO_TAG("Real Time Text message with accented characters", real_time_text_message_accented_chars), + TEST_NO_TAG("Real Time Text offer answer with different payload numbers (sender side)", real_time_text_message_different_text_codecs_payload_numbers_sender_side), + TEST_NO_TAG("Real Time Text offer answer with different payload numbers (receiver side)", real_time_text_message_different_text_codecs_payload_numbers_receiver_side), + TEST_NO_TAG("Real Time Text copy paste", real_time_text_copy_paste), }; test_suite_t message_test_suite = { diff --git a/tester/multi_call_tester.c b/tester/multi_call_tester.c index 8a6d9aff6..58474c041 100644 --- a/tester/multi_call_tester.c +++ b/tester/multi_call_tester.c @@ -825,22 +825,22 @@ void eject_from_3_participants_remote_conference(void) { } test_t multi_call_tests[] = { - { "Call waiting indication", call_waiting_indication }, - { "Call waiting indication with privacy", call_waiting_indication_with_privacy }, - { "Incoming call accepted when outgoing call in progress", incoming_call_accepted_when_outgoing_call_in_progress}, - { "Incoming call accepted when outgoing call in outgoing ringing", incoming_call_accepted_when_outgoing_call_in_outgoing_ringing}, - { "Incoming call accepted when outgoing call in outgoing ringing early media", incoming_call_accepted_when_outgoing_call_in_outgoing_ringing_early_media}, - { "Simple conference", simple_conference }, - { "Simple conference with ICE", simple_conference_with_ice}, - { "Simple ZRTP conference with ICE",simple_zrtp_conference_with_ice}, - { "Eject from 3 participants conference", eject_from_3_participants_local_conference }, - { "Eject from 4 participants conference", eject_from_4_participants_conference }, - { "Simple call transfer", simple_call_transfer }, - { "Unattended call transfer", unattended_call_transfer }, - { "Unattended call transfer with error", unattended_call_transfer_with_error }, - { "Call transfer existing call outgoing call", call_transfer_existing_call_outgoing_call }, - { "Simple remote conference", simple_remote_conference }, - { "Eject from 3 participants in remote conference", eject_from_3_participants_remote_conference } + TEST_NO_TAG("Call waiting indication", call_waiting_indication), + TEST_NO_TAG("Call waiting indication with privacy", call_waiting_indication_with_privacy), + TEST_NO_TAG("Incoming call accepted when outgoing call in progress", incoming_call_accepted_when_outgoing_call_in_progress), + TEST_NO_TAG("Incoming call accepted when outgoing call in outgoing ringing", incoming_call_accepted_when_outgoing_call_in_outgoing_ringing), + TEST_NO_TAG("Incoming call accepted when outgoing call in outgoing ringing early media", incoming_call_accepted_when_outgoing_call_in_outgoing_ringing_early_media), + TEST_NO_TAG("Simple conference", simple_conference), + TEST_ONE_TAG("Simple conference with ICE", simple_conference_with_ice, "ICE"), + TEST_ONE_TAG("Simple ZRTP conference with ICE", simple_zrtp_conference_with_ice, "ICE"), + TEST_NO_TAG("Eject from 3 participants conference", eject_from_3_participants_local_conference), + TEST_NO_TAG("Eject from 4 participants conference", eject_from_4_participants_conference), + TEST_NO_TAG("Simple call transfer", simple_call_transfer), + TEST_NO_TAG("Unattended call transfer", unattended_call_transfer), + TEST_NO_TAG("Unattended call transfer with error", unattended_call_transfer_with_error), + TEST_NO_TAG("Call transfer existing call outgoing call", call_transfer_existing_call_outgoing_call), + TEST_NO_TAG("Simple remote conference", simple_remote_conference), + TEST_NO_TAG("Eject from 3 participants in remote conference", eject_from_3_participants_remote_conference) }; test_suite_t multi_call_test_suite = {"Multi call", NULL, NULL, liblinphone_tester_before_each, liblinphone_tester_after_each, diff --git a/tester/multicast_call_tester.c b/tester/multicast_call_tester.c index 8d9123ad3..242be7664 100644 --- a/tester/multicast_call_tester.c +++ b/tester/multicast_call_tester.c @@ -244,13 +244,13 @@ static void early_media_with_multicast_video(void) { #endif test_t multicast_call_tests[] = { - { "Multicast audio call",call_multicast}, - { "Multicast call with pause/resume",multicast_audio_with_pause_resume}, - { "Early media multicast audio call",early_media_with_multicast_audio}, - { "Unicast incoming call with multicast activated",unicast_incoming_with_multicast_audio_on}, + TEST_NO_TAG("Multicast audio call",call_multicast), + TEST_NO_TAG("Multicast call with pause/resume",multicast_audio_with_pause_resume), + TEST_NO_TAG("Early media multicast audio call",early_media_with_multicast_audio), + TEST_NO_TAG("Unicast incoming call with multicast activated",unicast_incoming_with_multicast_audio_on), #ifdef VIDEO_ENABLED - { "Multicast video call",call_multicast_video}, - { "Early media multicast video call",early_media_with_multicast_video}, + TEST_NO_TAG("Multicast video call",call_multicast_video), + TEST_NO_TAG("Early media multicast video call",early_media_with_multicast_video), #endif }; diff --git a/tester/offeranswer_tester.c b/tester/offeranswer_tester.c index e40849aff..138bae80c 100644 --- a/tester/offeranswer_tester.c +++ b/tester/offeranswer_tester.c @@ -489,55 +489,55 @@ end: #endif static test_t offeranswer_tests[] = { - { "Start with no config", start_with_no_config }, - { "Call failed because of codecs", call_failed_because_of_codecs }, - { "Simple call with different codec mappings", simple_call_with_different_codec_mappings}, - { "AVP to AVP call", avp_to_avp_call }, - { "AVP to AVPF call", avp_to_avpf_call }, - { "AVP to SAVP call", avp_to_savp_call }, - { "AVP to SAVPF call", avp_to_savpf_call }, - { "AVPF to AVP call", avpf_to_avp_call }, - { "AVPF to AVPF call", avpf_to_avpf_call }, - { "AVPF to SAVP call", avpf_to_savp_call }, - { "AVPF to SAVPF call", avpf_to_savpf_call }, - { "SAVP to AVP call", savp_to_avp_call }, - { "SAVP to AVPF call", savp_to_avpf_call }, - { "SAVP to SAVP call", savp_to_savp_call }, - { "SAVP to SAVPF call", savp_to_savpf_call }, - { "SAVPF to AVP call", savpf_to_avp_call }, - { "SAVPF to AVPF call", savpf_to_avpf_call }, - { "SAVPF to SAVP call", savpf_to_savp_call }, - { "SAVPF to SAVPF call", savpf_to_savpf_call }, - { "SAVPF/DTLS to SAVPF/DTLS call", savpf_dtls_to_savpf_dtls_call}, - { "SAVPF/DTLS to SAVPF/DTLS encryption mandatory call", savpf_dtls_to_savpf_dtls_encryption_mandatory_call}, - { "SAVPF/DTLS to SAVPF call", savpf_dtls_to_savpf_call}, - { "SAVPF/DTLS to SAVPF encryption mandatory call", savpf_dtls_to_savpf_encryption_mandatory_call}, - { "SAVPF/DTLS to AVPF call", savpf_dtls_to_avpf_call}, + TEST_NO_TAG("Start with no config", start_with_no_config), + TEST_NO_TAG("Call failed because of codecs", call_failed_because_of_codecs), + TEST_NO_TAG("Simple call with different codec mappings", simple_call_with_different_codec_mappings), + TEST_NO_TAG("AVP to AVP call", avp_to_avp_call), + TEST_NO_TAG("AVP to AVPF call", avp_to_avpf_call), + TEST_NO_TAG("AVP to SAVP call", avp_to_savp_call), + TEST_NO_TAG("AVP to SAVPF call", avp_to_savpf_call), + TEST_NO_TAG("AVPF to AVP call", avpf_to_avp_call), + TEST_NO_TAG("AVPF to AVPF call", avpf_to_avpf_call), + TEST_NO_TAG("AVPF to SAVP call", avpf_to_savp_call), + TEST_NO_TAG("AVPF to SAVPF call", avpf_to_savpf_call), + TEST_NO_TAG("SAVP to AVP call", savp_to_avp_call), + TEST_NO_TAG("SAVP to AVPF call", savp_to_avpf_call), + TEST_NO_TAG("SAVP to SAVP call", savp_to_savp_call), + TEST_NO_TAG("SAVP to SAVPF call", savp_to_savpf_call), + TEST_NO_TAG("SAVPF to AVP call", savpf_to_avp_call), + TEST_NO_TAG("SAVPF to AVPF call", savpf_to_avpf_call), + TEST_NO_TAG("SAVPF to SAVP call", savpf_to_savp_call), + TEST_NO_TAG("SAVPF to SAVPF call", savpf_to_savpf_call), + TEST_NO_TAG("SAVPF/DTLS to SAVPF/DTLS call", savpf_dtls_to_savpf_dtls_call), + TEST_NO_TAG("SAVPF/DTLS to SAVPF/DTLS encryption mandatory call", savpf_dtls_to_savpf_dtls_encryption_mandatory_call), + TEST_NO_TAG("SAVPF/DTLS to SAVPF call", savpf_dtls_to_savpf_call), + TEST_NO_TAG("SAVPF/DTLS to SAVPF encryption mandatory call", savpf_dtls_to_savpf_encryption_mandatory_call), + TEST_NO_TAG("SAVPF/DTLS to AVPF call", savpf_dtls_to_avpf_call), #ifdef VIDEO_ENABLED - { "AVP to AVP video call", avp_to_avp_video_call }, - { "AVP to AVPF video call", avp_to_avpf_video_call }, - { "AVP to SAVP video call", avp_to_savp_video_call }, - { "AVP to SAVPF video call", avp_to_savpf_video_call }, - { "AVPF to AVP video call", avpf_to_avp_video_call }, - { "AVPF to AVPF video call", avpf_to_avpf_video_call }, - { "AVPF to SAVP video call", avpf_to_savp_video_call }, - { "AVPF to SAVPF video call", avpf_to_savpf_video_call }, - { "SAVP to AVP video call", savp_to_avp_video_call }, - { "SAVP to AVPF video call", savp_to_avpf_video_call }, - { "SAVP to SAVP video call", savp_to_savp_video_call }, - { "SAVP to SAVPF video call", savp_to_savpf_video_call }, - { "SAVPF to AVP video call", savpf_to_avp_video_call }, - { "SAVPF to AVPF video call", savpf_to_avpf_video_call }, - { "SAVPF to SAVP video call", savpf_to_savp_video_call }, - { "SAVPF to SAVPF video call", savpf_to_savpf_video_call }, - { "SAVPF/DTLS to SAVPF/DTLS video call", savpf_dtls_to_savpf_dtls_video_call}, - { "SAVPF/DTLS to SAVPF/DTLS encryption mandatory video call", savpf_dtls_to_savpf_dtls_encryption_mandatory_video_call}, - { "SAVPF/DTLS to SAVPF video call", savpf_dtls_to_savpf_video_call}, - { "SAVPF/DTLS to SAVPF encryption mandatory video call", savpf_dtls_to_savpf_encryption_mandatory_video_call}, - { "SAVPF/DTLS to AVPF call", savpf_dtls_to_avpf_video_call}, + TEST_NO_TAG("AVP to AVP video call", avp_to_avp_video_call), + TEST_NO_TAG("AVP to AVPF video call", avp_to_avpf_video_call), + TEST_NO_TAG("AVP to SAVP video call", avp_to_savp_video_call), + TEST_NO_TAG("AVP to SAVPF video call", avp_to_savpf_video_call), + TEST_NO_TAG("AVPF to AVP video call", avpf_to_avp_video_call), + TEST_NO_TAG("AVPF to AVPF video call", avpf_to_avpf_video_call), + TEST_NO_TAG("AVPF to SAVP video call", avpf_to_savp_video_call), + TEST_NO_TAG("AVPF to SAVPF video call", avpf_to_savpf_video_call), + TEST_NO_TAG("SAVP to AVP video call", savp_to_avp_video_call), + TEST_NO_TAG("SAVP to AVPF video call", savp_to_avpf_video_call), + TEST_NO_TAG("SAVP to SAVP video call", savp_to_savp_video_call), + TEST_NO_TAG("SAVP to SAVPF video call", savp_to_savpf_video_call), + TEST_NO_TAG("SAVPF to AVP video call", savpf_to_avp_video_call), + TEST_NO_TAG("SAVPF to AVPF video call", savpf_to_avpf_video_call), + TEST_NO_TAG("SAVPF to SAVP video call", savpf_to_savp_video_call), + TEST_NO_TAG("SAVPF to SAVPF video call", savpf_to_savpf_video_call), + TEST_NO_TAG("SAVPF/DTLS to SAVPF/DTLS video call", savpf_dtls_to_savpf_dtls_video_call), + TEST_NO_TAG("SAVPF/DTLS to SAVPF/DTLS encryption mandatory video call", savpf_dtls_to_savpf_dtls_encryption_mandatory_video_call), + TEST_NO_TAG("SAVPF/DTLS to SAVPF video call", savpf_dtls_to_savpf_video_call), + TEST_NO_TAG("SAVPF/DTLS to SAVPF encryption mandatory video call", savpf_dtls_to_savpf_encryption_mandatory_video_call), + TEST_NO_TAG("SAVPF/DTLS to AVPF call", savpf_dtls_to_avpf_video_call), - { "Compatible AVPF features", compatible_avpf_features }, - { "Incompatible AVPF features", incompatible_avpf_features }, + TEST_NO_TAG("Compatible AVPF features", compatible_avpf_features), + TEST_NO_TAG("Incompatible AVPF features", incompatible_avpf_features) #endif }; diff --git a/tester/player_tester.c b/tester/player_tester.c index f5c0c3cb9..3354c5fa2 100644 --- a/tester/player_tester.c +++ b/tester/player_tester.c @@ -98,9 +98,9 @@ static void sintel_trailer_opus_vp8_test(void) { } test_t player_tests[] = { - { "Sintel trailer opus/h264" , sintel_trailer_opus_h264_test }, - { "Sintel trailer pcmu/h264" , sintel_trailer_pcmu_h264_test }, - { "Sintel trailer opus/VP8" , sintel_trailer_opus_vp8_test } + TEST_NO_TAG("Sintel trailer opus/h264", sintel_trailer_opus_h264_test), + TEST_NO_TAG("Sintel trailer pcmu/h264", sintel_trailer_pcmu_h264_test), + TEST_NO_TAG("Sintel trailer opus/VP8", sintel_trailer_opus_vp8_test) }; test_suite_t player_test_suite = {"Player", NULL, NULL, liblinphone_tester_before_each, liblinphone_tester_after_each, diff --git a/tester/presence_tester.c b/tester/presence_tester.c index 9abda838c..6b4060e0b 100644 --- a/tester/presence_tester.c +++ b/tester/presence_tester.c @@ -774,22 +774,22 @@ static void test_presence_list_subscription_expire(void) { test_t presence_tests[] = { - { "Simple Subscribe", simple_subscribe }, - { "Simple Publish", simple_publish }, - { "Simple Publish with expires", publish_with_expires }, - /*{ "Call with presence", call_with_presence },*/ - { "Unsubscribe while subscribing", unsubscribe_while_subscribing }, - { "Presence information", presence_information }, - { "App managed presence failure", subscribe_failure_handle_by_app }, - { "Presence SUBSCRIBE forked", subscribe_presence_forked }, - { "Presence SUBSCRIBE expired", subscribe_presence_expired }, + TEST_NO_TAG("Simple Subscribe", simple_subscribe), + TEST_NO_TAG("Simple Publish", simple_publish), + TEST_NO_TAG("Simple Publish with expires", publish_with_expires), + /*TEST_NO_TAG("Call with presence", call_with_presence),*/ + TEST_NO_TAG("Unsubscribe while subscribing", unsubscribe_while_subscribing), + TEST_NO_TAG("Presence information", presence_information), + TEST_NO_TAG("App managed presence failure", subscribe_failure_handle_by_app), + TEST_NO_TAG("Presence SUBSCRIBE forked", subscribe_presence_forked), + TEST_NO_TAG("Presence SUBSCRIBE expired", subscribe_presence_expired), #if USE_PRESENCE_SERVER - { "Subscribe with late publish", test_subscribe_notify_publish }, - { "Forked subscribe with late publish", test_forked_subscribe_notify_publish }, + TEST_NO_TAG("Subscribe with late publish", test_subscribe_notify_publish), + TEST_NO_TAG("Forked subscribe with late publish", test_forked_subscribe_notify_publish), #endif - { "Presence list", test_presence_list }, - { "Presence list (subscribe before publish)", test_presence_list_subscribe_before_publish }, - { "Presence list, subscription expiration",test_presence_list_subscription_expire} + TEST_NO_TAG("Presence list", test_presence_list), + TEST_NO_TAG("Presence list (subscribe before publish)", test_presence_list_subscribe_before_publish), + TEST_NO_TAG("Presence list, subscription expiration",test_presence_list_subscription_expire) }; test_suite_t presence_test_suite = {"Presence", NULL, NULL, liblinphone_tester_before_each, liblinphone_tester_after_each, diff --git a/tester/proxy_config_tester.c b/tester/proxy_config_tester.c index 771403e84..755f63de5 100644 --- a/tester/proxy_config_tester.c +++ b/tester/proxy_config_tester.c @@ -173,10 +173,10 @@ static void sip_uri_normalization(void) { } test_t proxy_config_tests[] = { - { "Phone normalization without proxy", phone_normalization_without_proxy }, - { "Phone normalization with proxy", phone_normalization_with_proxy }, - { "Phone normalization with dial escape plus", phone_normalization_with_dial_escape_plus }, - { "SIP URI normalization", sip_uri_normalization }, + TEST_NO_TAG("Phone normalization without proxy", phone_normalization_without_proxy), + TEST_NO_TAG("Phone normalization with proxy", phone_normalization_with_proxy), + TEST_NO_TAG("Phone normalization with dial escape plus", phone_normalization_with_dial_escape_plus), + TEST_NO_TAG("SIP URI normalization", sip_uri_normalization) }; test_suite_t proxy_config_test_suite = {"Proxy config", NULL, NULL, liblinphone_tester_before_each, liblinphone_tester_after_each, diff --git a/tester/quality_reporting_tester.c b/tester/quality_reporting_tester.c index 1810b058d..ec321b2dd 100644 --- a/tester/quality_reporting_tester.c +++ b/tester/quality_reporting_tester.c @@ -424,17 +424,17 @@ static void quality_reporting_interval_report_video_and_rtt(void) { #endif test_t quality_reporting_tests[] = { - { "Not used if no config", quality_reporting_not_used_without_config}, - { "Call term session report not sent if call did not start", quality_reporting_not_sent_if_call_not_started}, - { "Call term session report not sent if low bandwidth", quality_reporting_not_sent_if_low_bandwidth}, - { "Call term session report invalid if missing mandatory fields", quality_reporting_invalid_report}, - { "Call term session report sent if call ended normally", quality_reporting_at_call_termination}, - { "Interval report if interval is configured", quality_reporting_interval_report}, + TEST_NO_TAG("Not used if no config", quality_reporting_not_used_without_config), + TEST_NO_TAG("Call term session report not sent if call did not start", quality_reporting_not_sent_if_call_not_started), + TEST_NO_TAG("Call term session report not sent if low bandwidth", quality_reporting_not_sent_if_low_bandwidth), + TEST_NO_TAG("Call term session report invalid if missing mandatory fields", quality_reporting_invalid_report), + TEST_NO_TAG("Call term session report sent if call ended normally", quality_reporting_at_call_termination), + TEST_NO_TAG("Interval report if interval is configured", quality_reporting_interval_report), #ifdef VIDEO_ENABLED - { "Interval report if interval is configured with video and realtime text", quality_reporting_interval_report_video_and_rtt}, - { "Session report sent if video stopped during call", quality_reporting_session_report_if_video_stopped}, + TEST_NO_TAG("Interval report if interval is configured with video and realtime text", quality_reporting_interval_report_video_and_rtt), + TEST_NO_TAG("Session report sent if video stopped during call", quality_reporting_session_report_if_video_stopped), #endif - { "Sent using custom route", quality_reporting_sent_using_custom_route}, + TEST_NO_TAG("Sent using custom route", quality_reporting_sent_using_custom_route) }; test_suite_t quality_reporting_test_suite = {"QualityReporting", NULL, NULL, liblinphone_tester_before_each, liblinphone_tester_after_each, diff --git a/tester/register_tester.c b/tester/register_tester.c index 4a9282ebf..4397b3011 100644 --- a/tester/register_tester.c +++ b/tester/register_tester.c @@ -900,40 +900,40 @@ static void redirect(void){ } test_t register_tests[] = { - { "Simple register", simple_register }, - { "Simple register unregister", simple_unregister }, - { "TCP register", simple_tcp_register }, - { "Register with custom headers", register_with_custom_headers }, - { "TCP register compatibility mode", simple_tcp_register_compatibility_mode }, - { "TLS register", simple_tls_register }, - { "TLS register with alt. name certificate", tls_alt_name_register }, - { "TLS register with wildcard certificate", tls_wildcard_register }, - { "TLS certificate not verified",tls_certificate_failure}, - { "TLS with non tls server",tls_with_non_tls_server}, - { "Simple authenticated register", simple_authenticated_register }, - { "Ha1 authenticated register", ha1_authenticated_register }, - { "Digest auth without initial credentials", authenticated_register_with_no_initial_credentials }, - { "Digest auth with wrong credentials", authenticated_register_with_wrong_credentials }, - { "Digest auth with wrong credentials, check if registration attempts are stopped", authenticated_register_with_wrong_credentials_2 }, - { "Digest auth with wrong credentials without 403", authenticated_register_with_wrong_credentials_without_403}, - { "Authenticated register with wrong late credentials", authenticated_register_with_wrong_late_credentials}, - { "Authenticated register with late credentials", authenticated_register_with_late_credentials }, - { "Authenticated register with provided credentials", authenticated_register_with_provided_credentials }, - { "Register with refresh", simple_register_with_refresh }, - { "Authenticated register with refresh", simple_auth_register_with_refresh }, - { "Register with refresh and send error", register_with_refresh_with_send_error }, - { "Multi account", multiple_proxy }, - { "Transport changes", transport_change }, - { "Proxy transport changes", proxy_transport_change}, - { "Proxy transport changes with wrong address at first", proxy_transport_change_with_wrong_port}, - { "Proxy transport changes with wrong address, giving up",proxy_transport_change_with_wrong_port_givin_up}, - { "Change expires", change_expires}, - { "Network state change", network_state_change }, - { "Io recv error", io_recv_error }, - { "Io recv error with recovery", io_recv_error_retry_immediatly}, - { "Io recv error with late recovery", io_recv_error_late_recovery}, - { "Io recv error without active registration", io_recv_error_without_active_register}, - { "Simple redirect", redirect} + TEST_NO_TAG("Simple register", simple_register), + TEST_NO_TAG("Simple register unregister", simple_unregister), + TEST_NO_TAG("TCP register", simple_tcp_register), + TEST_NO_TAG("Register with custom headers", register_with_custom_headers), + TEST_NO_TAG("TCP register compatibility mode", simple_tcp_register_compatibility_mode), + TEST_NO_TAG("TLS register", simple_tls_register), + TEST_NO_TAG("TLS register with alt. name certificate", tls_alt_name_register), + TEST_NO_TAG("TLS register with wildcard certificate", tls_wildcard_register), + TEST_NO_TAG("TLS certificate not verified",tls_certificate_failure), + TEST_NO_TAG("TLS with non tls server",tls_with_non_tls_server), + TEST_NO_TAG("Simple authenticated register", simple_authenticated_register), + TEST_NO_TAG("Ha1 authenticated register", ha1_authenticated_register), + TEST_NO_TAG("Digest auth without initial credentials", authenticated_register_with_no_initial_credentials), + TEST_NO_TAG("Digest auth with wrong credentials", authenticated_register_with_wrong_credentials), + TEST_NO_TAG("Digest auth with wrong credentials, check if registration attempts are stopped", authenticated_register_with_wrong_credentials_2), + TEST_NO_TAG("Digest auth with wrong credentials without 403", authenticated_register_with_wrong_credentials_without_403), + TEST_NO_TAG("Authenticated register with wrong late credentials", authenticated_register_with_wrong_late_credentials), + TEST_NO_TAG("Authenticated register with late credentials", authenticated_register_with_late_credentials), + TEST_NO_TAG("Authenticated register with provided credentials", authenticated_register_with_provided_credentials), + TEST_NO_TAG("Register with refresh", simple_register_with_refresh), + TEST_NO_TAG("Authenticated register with refresh", simple_auth_register_with_refresh), + TEST_NO_TAG("Register with refresh and send error", register_with_refresh_with_send_error), + TEST_NO_TAG("Multi account", multiple_proxy), + TEST_NO_TAG("Transport changes", transport_change), + TEST_NO_TAG("Proxy transport changes", proxy_transport_change), + TEST_NO_TAG("Proxy transport changes with wrong address at first", proxy_transport_change_with_wrong_port), + TEST_NO_TAG("Proxy transport changes with wrong address, giving up",proxy_transport_change_with_wrong_port_givin_up), + TEST_NO_TAG("Change expires", change_expires), + TEST_NO_TAG("Network state change", network_state_change), + TEST_NO_TAG("Io recv error", io_recv_error), + TEST_NO_TAG("Io recv error with recovery", io_recv_error_retry_immediatly), + TEST_NO_TAG("Io recv error with late recovery", io_recv_error_late_recovery), + TEST_NO_TAG("Io recv error without active registration", io_recv_error_without_active_register), + TEST_NO_TAG("Simple redirect", redirect) }; test_suite_t register_test_suite = {"Register", NULL, NULL, liblinphone_tester_before_each, liblinphone_tester_after_each, diff --git a/tester/remote_provisioning_tester.c b/tester/remote_provisioning_tester.c index 9bb1e41bf..76a81ab16 100644 --- a/tester/remote_provisioning_tester.c +++ b/tester/remote_provisioning_tester.c @@ -125,15 +125,15 @@ static void remote_provisioning_file(void) { test_t remote_provisioning_tests[] = { - { "Remote provisioning skipped", remote_provisioning_skipped }, - { "Remote provisioning successful behind http", remote_provisioning_http }, - { "Remote provisioning successful behind https", remote_provisioning_https }, - { "Remote provisioning 404 not found", remote_provisioning_not_found }, - { "Remote provisioning invalid", remote_provisioning_invalid }, - { "Remote provisioning transient successful", remote_provisioning_transient }, - { "Remote provisioning default values", remote_provisioning_default_values }, - { "Remote provisioning from file", remote_provisioning_file }, - { "Remote provisioning invalid URI", remote_provisioning_invalid_uri } + TEST_NO_TAG("Remote provisioning skipped", remote_provisioning_skipped), + TEST_NO_TAG("Remote provisioning successful behind http", remote_provisioning_http), + TEST_NO_TAG("Remote provisioning successful behind https", remote_provisioning_https), + TEST_NO_TAG("Remote provisioning 404 not found", remote_provisioning_not_found), + TEST_NO_TAG("Remote provisioning invalid", remote_provisioning_invalid), + TEST_NO_TAG("Remote provisioning transient successful", remote_provisioning_transient), + TEST_NO_TAG("Remote provisioning default values", remote_provisioning_default_values), + TEST_NO_TAG("Remote provisioning from file", remote_provisioning_file), + TEST_NO_TAG("Remote provisioning invalid URI", remote_provisioning_invalid_uri) }; test_suite_t remote_provisioning_test_suite = {"RemoteProvisioning", NULL, NULL, liblinphone_tester_before_each, liblinphone_tester_after_each, diff --git a/tester/setup_tester.c b/tester/setup_tester.c index f41324d3f..7fc17c513 100644 --- a/tester/setup_tester.c +++ b/tester/setup_tester.c @@ -330,20 +330,20 @@ end: } test_t setup_tests[] = { - { "Version check", linphone_version_test }, - { "Linphone Address", linphone_address_test }, - { "Linphone proxy config address equal (internal api)", linphone_proxy_config_address_equal_test}, - { "Linphone proxy config server address change (internal api)", linphone_proxy_config_is_server_config_changed_test}, - { "Linphone core init/uninit", core_init_test }, - { "Linphone random transport port",core_sip_transport_test}, - { "Linphone interpret url", linphone_interpret_url_test }, - { "LPConfig from buffer", linphone_lpconfig_from_buffer }, - { "LPConfig zero_len value from buffer", linphone_lpconfig_from_buffer_zerolen_value }, - { "LPConfig zero_len value from file", linphone_lpconfig_from_file_zerolen_value }, - { "LPConfig zero_len value from XML", linphone_lpconfig_from_xml_zerolen_value }, - { "Chat room", chat_room_test }, - { "Devices reload", devices_reload_test }, - { "Codec usability", codec_usability_test } + TEST_NO_TAG("Version check", linphone_version_test), + TEST_NO_TAG("Linphone Address", linphone_address_test), + TEST_NO_TAG("Linphone proxy config address equal (internal api)", linphone_proxy_config_address_equal_test), + TEST_NO_TAG("Linphone proxy config server address change (internal api)", linphone_proxy_config_is_server_config_changed_test), + TEST_NO_TAG("Linphone core init/uninit", core_init_test), + TEST_NO_TAG("Linphone random transport port",core_sip_transport_test), + TEST_NO_TAG("Linphone interpret url", linphone_interpret_url_test), + TEST_NO_TAG("LPConfig from buffer", linphone_lpconfig_from_buffer), + TEST_NO_TAG("LPConfig zero_len value from buffer", linphone_lpconfig_from_buffer_zerolen_value), + TEST_NO_TAG("LPConfig zero_len value from file", linphone_lpconfig_from_file_zerolen_value), + TEST_NO_TAG("LPConfig zero_len value from XML", linphone_lpconfig_from_xml_zerolen_value), + TEST_NO_TAG("Chat room", chat_room_test), + TEST_NO_TAG("Devices reload", devices_reload_test), + TEST_NO_TAG("Codec usability", codec_usability_test) }; test_suite_t setup_test_suite = {"Setup", NULL, NULL, liblinphone_tester_before_each, liblinphone_tester_after_each, diff --git a/tester/stun_tester.c b/tester/stun_tester.c index 38da6fe16..e52927386 100644 --- a/tester/stun_tester.c +++ b/tester/stun_tester.c @@ -115,8 +115,8 @@ static void linphone_stun_test_grab_ip(void) test_t stun_tests[] = { - { "Basic Stun test (Ping/public IP)", linphone_stun_test_grab_ip }, - { "STUN encode buffer protection", linphone_stun_test_encode }, + TEST_NO_TAG("Basic Stun test (Ping/public IP)", linphone_stun_test_grab_ip), + TEST_NO_TAG("STUN encode buffer protection", linphone_stun_test_encode) }; test_suite_t stun_test_suite = {"Stun", NULL, NULL, liblinphone_tester_before_each, liblinphone_tester_after_each, diff --git a/tester/tunnel_tester.c b/tester/tunnel_tester.c index f3d383cf2..8ed406a26 100644 --- a/tester/tunnel_tester.c +++ b/tester/tunnel_tester.c @@ -245,20 +245,20 @@ static void tunnel_ice_call(void) { ms_warning("Could not test %s because tunnel functionality is not available",__FUNCTION__); } test_t tunnel_tests[] = { - { "Simple", call_with_tunnel }, - { "With SRTP", call_with_tunnel_srtp }, - { "Without SIP", call_with_tunnel_without_sip }, - { "In automatic mode", call_with_tunnel_auto }, - { "In automatic mode with SRTP without SIP", call_with_tunnel_auto_without_sip_with_srtp }, - { "Ice call", tunnel_ice_call }, - { "SRTP ice call", tunnel_srtp_ice_call }, - { "ZRTP ice call", tunnel_zrtp_ice_call }, + TEST_NO_TAG("Simple", call_with_tunnel), + TEST_NO_TAG("With SRTP", call_with_tunnel_srtp), + TEST_NO_TAG("Without SIP", call_with_tunnel_without_sip), + TEST_NO_TAG("In automatic mode", call_with_tunnel_auto), + TEST_NO_TAG("In automatic mode with SRTP without SIP", call_with_tunnel_auto_without_sip_with_srtp), + TEST_NO_TAG("Ice call", tunnel_ice_call), + TEST_NO_TAG("SRTP ice call", tunnel_srtp_ice_call), + TEST_NO_TAG("ZRTP ice call", tunnel_zrtp_ice_call), #ifdef VIDEO_ENABLED - { "Ice video call", tunnel_video_ice_call }, - { "With SIP - ice video call", full_tunnel_video_ice_call }, - { "SRTP ice video call", tunnel_srtp_video_ice_call }, - { "DTLS ice video call", tunnel_dtls_video_ice_call }, - { "ZRTP ice video call", tunnel_zrtp_video_ice_call }, + TEST_NO_TAG("Ice video call", tunnel_video_ice_call), + TEST_NO_TAG("With SIP - ice video call", full_tunnel_video_ice_call), + TEST_NO_TAG("SRTP ice video call", tunnel_srtp_video_ice_call), + TEST_NO_TAG("DTLS ice video call", tunnel_dtls_video_ice_call), + TEST_NO_TAG("ZRTP ice video call", tunnel_zrtp_video_ice_call), #endif }; diff --git a/tester/upnp_tester.c b/tester/upnp_tester.c index bef3a626f..b915606bb 100644 --- a/tester/upnp_tester.c +++ b/tester/upnp_tester.c @@ -54,9 +54,9 @@ static void upnp_check_ipaddress(void) { } test_t upnp_tests[] = { - { "Start and stop", upnp_start_n_stop }, - { "Check state", upnp_check_state }, - { "Check ip address", upnp_check_ipaddress }, + TEST_NO_TAG("Start and stop", upnp_start_n_stop), + TEST_NO_TAG("Check state", upnp_check_state), + TEST_NO_TAG("Check ip address", upnp_check_ipaddress) }; test_suite_t upnp_test_suite = {"Upnp", NULL, NULL, liblinphone_tester_before_each, liblinphone_tester_after_each, diff --git a/tester/video_tester.c b/tester/video_tester.c index 6dc165bf6..fb732731b 100644 --- a/tester/video_tester.c +++ b/tester/video_tester.c @@ -552,12 +552,12 @@ static void enable_disable_camera_after_camera_switches(void) { } test_t video_tests[] = { #if HAVE_GTK - { "Early-media video during video call", early_media_video_during_video_call_test }, - { "Two incoming early-media video calls", two_incoming_early_media_video_calls_test }, - { "Early-media video with inactive audio", early_media_video_with_inactive_audio }, - { "Forked outgoing early-media video call with inactive audio", forked_outgoing_early_media_video_call_with_inactive_audio_test }, + TEST_NO_TAG("Early-media video during video call", early_media_video_during_video_call_test), + TEST_NO_TAG("Two incoming early-media video calls", two_incoming_early_media_video_calls_test), + TEST_NO_TAG("Early-media video with inactive audio", early_media_video_with_inactive_audio), + TEST_NO_TAG("Forked outgoing early-media video call with inactive audio", forked_outgoing_early_media_video_call_with_inactive_audio_test), #endif /*HAVE_GTK*/ - { "Enable/disable camera after camera switches", enable_disable_camera_after_camera_switches} + TEST_NO_TAG("Enable/disable camera after camera switches", enable_disable_camera_after_camera_switches) };