tester: add before_each and after_each functions to allow init/cleanup of tests individually

parent 448f6a71
mediastreamer2 @ a4067c18
Subproject commit d24bc5aae19921183b19e0f7bdf8378b5f75109f
Subproject commit a4067c188fab858ce829c3868a2e1d7d316fc531
This diff is collapsed.
......@@ -49,7 +49,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include <malloc.h>
#endif
static char *bc_tester_resource_dir_prefix = NULL;
static char *bc_tester_writable_dir_prefix = NULL;
......@@ -82,7 +81,7 @@ void bc_tester_printf(int level, const char *fmt, ...) {
int bc_tester_run_suite(test_suite_t *suite) {
int i;
CU_pSuite pSuite = CU_add_suite(suite->name, suite->init_func, suite->cleanup_func);
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)) {
......@@ -102,7 +101,7 @@ int bc_tester_suite_index(const char *suite_name) {
int i;
for (i = 0; i < nb_test_suites; i++) {
if ((strcmp(suite_name, test_suite[i]->name) == 0) && (strlen(suite_name) == strlen(test_suite[i]->name))) {
if (strcmp(suite_name, test_suite[i]->name) == 0) {
return i;
}
}
......@@ -165,25 +164,35 @@ static void suite_start_message_handler(const CU_pSuite pSuite) {
suite_start_time = time(NULL);
}
static void suite_complete_message_handler(const CU_pSuite pSuite, const CU_pFailureRecord pFailure) {
bc_tester_printf(bc_printf_verbosity_info,"Suite [%s] ended in %lu sec\n", pSuite->pName, time(NULL) - suite_start_time);
bc_tester_printf(bc_printf_verbosity_info, "Suite [%s] ended in %lu sec\n", pSuite->pName,
time(NULL) - suite_start_time);
}
static time_t test_start_time = 0;
static void test_start_message_handler(const CU_pTest pTest, const CU_pSuite pSuite) {
int suite_index = bc_tester_suite_index(pSuite->pName);
bc_tester_printf(bc_printf_verbosity_info,"Suite [%s] Test [%s] started", pSuite->pName,pTest->pName);
test_start_time = time(NULL);
if (test_suite[suite_index]->before_each) {
test_suite[suite_index]->before_each();
}
}
/*derivated from cunit*/
static void test_complete_message_handler(const CU_pTest pTest,
const CU_pSuite pSuite,
const CU_pFailureRecord pFailureList) {
static void test_complete_message_handler(const CU_pTest pTest, const CU_pSuite pSuite,
const CU_pFailureRecord pFailureList) {
int i;
int suite_index = bc_tester_suite_index(pSuite->pName);
char result[2048]={0};
char buffer[2048]={0};
CU_pFailureRecord pFailure = pFailureList;
snprintf(result, sizeof(result), "Suite [%s] Test [%s] %s in %lu secs"
, pSuite->pName, pTest->pName, pFailure?"failed":"passed",(unsigned long)(time(NULL) - test_start_time));
if (test_suite[suite_index]->after_each) {
test_suite[suite_index]->after_each();
}
snprintf(result, sizeof(result), "Suite [%s] Test [%s] %s in %lu secs", pSuite->pName, pTest->pName,
pFailure ? "failed" : "passed", (unsigned long)(time(NULL) - test_start_time));
if (pFailure) {
for (i = 1 ; (NULL != pFailure) ; pFailure = pFailure->pNext, i++) {
snprintf(buffer, sizeof(buffer), "\n %d. %s:%u - %s", i,
......@@ -197,15 +206,20 @@ static void test_complete_message_handler(const CU_pTest pTest,
#ifdef __linux
/* use mallinfo() to monitor allocated space. It is linux specific but other methods don't work:
* setrlimit() RLIMIT_DATA doesn't count memory allocated via mmap() (which is used internally by malloc)
* setrlimit() RLIMIT_AS works but also counts virtual memory allocated by thread stacks, which is very big and hardly controllable.
* setrlimit() RLIMIT_AS works but also counts virtual memory allocated by thread stacks, which is very big and
* hardly controllable.
* setrlimit() RLIMIT_RSS does nothing interesting on linux.
* getrusage() of RSS is unreliable: memory blocks can be leaked without being read or written, which would not appear in RSS.
* getrusage() of RSS is unreliable: memory blocks can be leaked without being read or written, which would not
* appear in RSS.
* mallinfo() itself is the less worse solution. Allocated bytes are returned as 'int' so limited to 2GB
*/
if (max_vm_kb){
if (max_vm_kb) {
struct mallinfo minfo = mallinfo();
if (minfo.uordblks > max_vm_kb * 1024){
bc_tester_printf(bc_printf_verbosity_error, "The program exceeded the maximum ammount of memory allocatable (%i bytes), aborting now.\n", minfo.uordblks);
if (minfo.uordblks > max_vm_kb * 1024) {
bc_tester_printf(
bc_printf_verbosity_error,
"The program exceeded the maximum amount of memory allocatable (%i bytes), aborting now.\n",
minfo.uordblks);
abort();
}
}
......@@ -281,30 +295,31 @@ int bc_tester_run_tests(const char *suite_name, const char *test_name) {
}
}
#ifdef __linux
bc_tester_printf(bc_printf_verbosity_info, "Still %i kilobytes allocated when all tests are finished.", mallinfo().uordblks/1024);
bc_tester_printf(bc_printf_verbosity_info, "Still %i kilobytes allocated when all tests are finished.",
mallinfo().uordblks / 1024);
#endif
return CU_get_number_of_tests_failed()!=0;
}
void bc_tester_helper(const char *name, const char* additionnal_helper) {
bc_tester_printf(bc_printf_verbosity_info,"%s --help\n"
"\t\t\t--list-suites\n"
"\t\t\t--list-tests <suite>\n"
"\t\t\t--suite <suite name>\n"
"\t\t\t--test <test name>\n"
bc_tester_printf(bc_printf_verbosity_info,
"%s --help\n"
"\t\t\t--list-suites\n"
"\t\t\t--list-tests <suite>\n"
"\t\t\t--suite <suite name>\n"
"\t\t\t--test <test name>\n"
#ifdef HAVE_CU_CURSES
"\t\t\t--curses\n"
"\t\t\t--curses\n"
#endif
"\t\t\t--xml\n"
"\t\t\t--xml-file <xml file name>\n"
"\t\t\t--max-alloc <size in ko> (maximum ammount of memory obtained via malloc allocator)\n"
"And additionally:\n"
"%s"
, name
, additionnal_helper);
"\t\t\t--xml\n"
"\t\t\t--xml-file <xml file name>\n"
"\t\t\t--max-alloc <size in ko> (maximum ammount of memory obtained via malloc allocator)\n"
"And additionally:\n"
"%s",
name, additionnal_helper);
}
void bc_tester_init(void (*ftester_printf)(int level, const char *fmt, va_list args), int iverbosity_info, int iverbosity_error) {
......@@ -329,19 +344,19 @@ void bc_tester_init(void (*ftester_printf)(int level, const char *fmt, va_list a
bc_printf_verbosity_info = iverbosity_info;
}
void bc_tester_set_max_vm(long max_vm_kb){
void bc_tester_set_max_vm(long max_vm_kb) {
#ifdef __linux
max_vm_kb = max_vm_kb;
bc_tester_printf(bc_printf_verbosity_info, "Maximum virtual memory space set to %li kilo bytes", max_vm_kb);
#else
bc_tester_printf(bc_printf_verbosity_error,"Maximum virtual memory space setting is only implemented on Linux.");
bc_tester_printf(bc_printf_verbosity_error, "Maximum virtual memory space setting is only implemented on Linux.");
#endif
}
int bc_tester_parse_args(int argc, char **argv, int argid)
{
int i = argid;
if (strcmp(argv[i],"--help")==0){
return -1;
} else if (strcmp(argv[i],"--test")==0){
......@@ -364,7 +379,7 @@ int bc_tester_parse_args(int argc, char **argv, int argid)
xml_enabled = 1;
} else if (strcmp(argv[i], "--xml") == 0){
xml_enabled = 1;
} else if (strcmp(argv[i], "--max-alloc") == 0){
} else if (strcmp(argv[i], "--max-alloc") == 0) {
CHECK_ARG("--max-alloc", ++i, argc);
max_vm_kb = atol(argv[i]);
} else {
......@@ -383,10 +398,10 @@ int bc_tester_parse_args(int argc, char **argv, int argid)
int bc_tester_start(void) {
int ret;
if (max_vm_kb)
bc_tester_set_max_vm(max_vm_kb);
if( xml_enabled ){
size_t size = strlen(xml_file) + strlen(".tmp") + 1;
char * xml_tmp_file = malloc(sizeof(char) * size);
......
......@@ -35,9 +35,11 @@ extern int bc_printf_verbosity_info;
extern int bc_printf_verbosity_error;
typedef void (*test_function_t)(void);
typedef int (*init_function_t)(void);
typedef int (*cleanup_function_t)(void);
typedef int (*test_suite_function_t)(const char *name);
/** Function used in all suites - it is invoked before all and each tests and also after each and all tests
* @return 0 means success, otherwise it's an error
**/
typedef int (*pre_post_function_t)(void);
// typedef int (*test_suite_function_t)(const char *name);
typedef struct {
const char *name;
......@@ -45,11 +47,14 @@ typedef struct {
} test_t;
typedef struct {
const char *name;
init_function_t init_func;
cleanup_function_t cleanup_func;
int nb_tests;
test_t *tests;
const char *name; /*suite name*/
pre_post_function_t
before_all; /*function invoked before running the suite. If not returning 0, suite is not launched. */
pre_post_function_t after_all; /*function invoked at the end of the suite, even if some tests failed. */
test_function_t before_each; /*function invoked before each test within this suite. */
test_function_t after_each; /*function invoked after each test within this suite, even if it failed. */
int nb_tests; /* number of tests */
test_t *tests; /* tests within this suite */
} test_suite_t;
#ifdef __cplusplus
......
......@@ -27,14 +27,14 @@ static FILE *sip_start(const char *senario, const char* dest_username, LinphoneA
char *dest;
char *command;
FILE *file;
if (linphone_address_get_port(dest_addres)>0)
dest = ms_strdup_printf("%s:%i",linphone_address_get_domain(dest_addres),linphone_address_get_port(dest_addres));
else
dest = ms_strdup_printf("%s",linphone_address_get_domain(dest_addres));
command = ms_strdup_printf("sipp -sf %s -s %s %s -trace_err -trace_msg -m 1 -d 1000 ",senario,dest_username,dest);
ms_message("Starting sipp commad [%s]",command);
file = popen(command, "r");
ms_free(command);
......@@ -55,7 +55,7 @@ static void sip_update_within_icoming_reinvite_with_no_sdp(void) {
char *identity_char;
char *scen;
FILE * sipp_out;
/*currently we use direct connection because sipp do not properly set ACK request uri*/
mgr= linphone_core_manager_new2( "empty_rc", FALSE);
mgr->identity= linphone_core_get_primary_contact_parsed(mgr->lc);
......@@ -72,15 +72,16 @@ static void sip_update_within_icoming_reinvite_with_no_sdp(void) {
,&addrinfo);
linphone_address_destroy(dest);
dest=linphone_address_new(NULL);
wait_for(mgr->lc, mgr->lc, (int*)&addrinfo, 1);
err=getnameinfo((struct sockaddr *)addrinfo->ai_addr,addrinfo->ai_addrlen,ipstring,INET6_ADDRSTRLEN,NULL,0,NI_NUMERICHOST);
err=getnameinfo((struct sockaddr
*)addrinfo->ai_addr,addrinfo->ai_addrlen,ipstring,INET6_ADDRSTRLEN,NULL,0,NI_NUMERICHOST);
linphone_address_set_domain(dest, ipstring);
if (port > 0)
linphone_address_set_port(dest, port);
*/
scen = bc_tester_res("sipp/sip_update_within_icoming_reinvite_with_no_sdp.xml");
sipp_out = sip_start(scen
, linphone_address_get_username(mgr->identity)
, mgr->identity);
......@@ -93,18 +94,11 @@ static void sip_update_within_icoming_reinvite_with_no_sdp(void) {
pclose(sipp_out);
}
linphone_core_manager_destroy(mgr);
}
static test_t tests[] = {
{ "SIP UPDATE within incoming reinvite witjout sdp", sip_update_within_icoming_reinvite_with_no_sdp},
};
test_suite_t complex_sip_call_test_suite = {
"Complex SIP Call",
liblinphone_tester_setup,
NULL,
sizeof(tests) / sizeof(tests[0]),
tests
};
test_suite_t complex_sip_call_test_suite = {"Complex SIP Call", NULL, NULL, liblinphone_tester_before_each, NULL,
sizeof(tests) / sizeof(tests[0]), tests};
......@@ -171,10 +171,5 @@ test_t dtmf_tests[] = {
{ "Send DTMF using RFC2833 using Opus",send_dtmf_rfc2833_opus},
};
test_suite_t dtmf_test_suite = {
"DTMF",
liblinphone_tester_setup,
NULL,
sizeof(dtmf_tests) / sizeof(dtmf_tests[0]),
dtmf_tests
};
test_suite_t dtmf_test_suite = {"DTMF", NULL, NULL, liblinphone_tester_before_each, NULL,
sizeof(dtmf_tests) / sizeof(dtmf_tests[0]), dtmf_tests};
......@@ -367,11 +367,5 @@ test_t event_tests[] = {
{ "Publish without automatic refresh",publish_no_auto_test }
};
test_suite_t event_test_suite = {
"Event",
liblinphone_tester_setup,
NULL,
sizeof(event_tests) / sizeof(event_tests[0]),
event_tests
};
test_suite_t event_test_suite = {"Event", NULL, NULL, liblinphone_tester_before_each, NULL,
sizeof(event_tests) / sizeof(event_tests[0]), event_tests};
......@@ -926,13 +926,5 @@ test_t flexisip_tests[] = {
{ "DoS module trigger by sending a lot of chat messages", dos_module_trigger }
};
test_suite_t flexisip_test_suite = {
"Flexisip",
liblinphone_tester_setup,
NULL,
sizeof(flexisip_tests) / sizeof(flexisip_tests[0]),
flexisip_tests
};
test_suite_t flexisip_test_suite = {"Flexisip", NULL, NULL, liblinphone_tester_before_each, NULL,
sizeof(flexisip_tests) / sizeof(flexisip_tests[0]), flexisip_tests};
......@@ -335,7 +335,7 @@ int linphone_core_manager_get_mean_audio_up_bw(const LinphoneCoreManager *mgr);
void video_call_base_2(LinphoneCoreManager* pauline,LinphoneCoreManager* marie, bool_t using_policy,LinphoneMediaEncryption mode, bool_t callee_video_enabled, bool_t caller_video_enabled);
int liblinphone_tester_setup();
void liblinphone_tester_before_each();
void liblinphone_tester_init(void(*ftester_printf)(int level, const char *fmt, va_list args));
void liblinphone_tester_uninit(void);
......
......@@ -324,11 +324,6 @@ test_t log_collection_tests[] = {
{ "Upload collected traces", upload_collected_traces}
};
test_suite_t log_collection_test_suite = {
"LogCollection",
liblinphone_tester_setup,
NULL,
sizeof(log_collection_tests) / sizeof(log_collection_tests[0]),
log_collection_tests
};
test_suite_t log_collection_test_suite = {"LogCollection", NULL, NULL, liblinphone_tester_before_each, NULL,
sizeof(log_collection_tests) / sizeof(log_collection_tests[0]),
log_collection_tests};
......@@ -1658,11 +1658,5 @@ test_t message_tests[] = {
,{"file transfer io error after destroying chatroom", file_transfer_io_error_after_destroying_chatroom}
};
test_suite_t message_test_suite = {
"Message",
liblinphone_tester_setup,
NULL,
sizeof(message_tests) / sizeof(message_tests[0]),
message_tests
};
test_suite_t message_test_suite = {"Message", NULL, NULL, liblinphone_tester_before_each, NULL,
sizeof(message_tests) / sizeof(message_tests[0]), message_tests};
......@@ -553,10 +553,5 @@ test_t multi_call_tests[] = {
{ "Incoming call accepted when outgoing call in outgoing ringing early media",incoming_call_accepted_when_outgoing_call_in_outgoing_ringing_early_media},
};
test_suite_t multi_call_test_suite = {
"Multi call",
liblinphone_tester_setup,
NULL,
sizeof(multi_call_tests) / sizeof(multi_call_tests[0]),
multi_call_tests
};
test_suite_t multi_call_test_suite = {"Multi call", NULL, NULL, liblinphone_tester_before_each, NULL,
sizeof(multi_call_tests) / sizeof(multi_call_tests[0]), multi_call_tests};
......@@ -269,10 +269,6 @@ test_t multicast_call_tests[] = {
#endif
};
test_suite_t multicast_call_test_suite = {
"Multicast Call",
liblinphone_tester_setup,
NULL,
sizeof(multicast_call_tests) / sizeof(multicast_call_tests[0]),
multicast_call_tests
};
test_suite_t multicast_call_test_suite = {"Multicast Call", NULL, NULL, liblinphone_tester_before_each, NULL,
sizeof(multicast_call_tests) / sizeof(multicast_call_tests[0]),
multicast_call_tests};
......@@ -350,7 +350,7 @@ static void compatible_avpf_features(void) {
BC_ASSERT_TRUE((call_ok=call(marie, pauline)));
if (!call_ok) goto end;
BC_ASSERT_TRUE(wait_for(marie->lc, pauline->lc, &marie->stat.number_of_LinphoneCallStreamsRunning, 1));
BC_ASSERT_TRUE(wait_for(marie->lc, pauline->lc, &pauline->stat.number_of_LinphoneCallStreamsRunning, 1));
check_avpf_features(marie->lc, lpt->avpf.features);
......@@ -417,10 +417,5 @@ static test_t offeranswer_tests[] = {
#endif
};
test_suite_t offeranswer_test_suite = {
"Offer-answer",
liblinphone_tester_setup,
NULL,
sizeof(offeranswer_tests) / sizeof(offeranswer_tests[0]),
offeranswer_tests
};
test_suite_t offeranswer_test_suite = {"Offer-answer", NULL, NULL, liblinphone_tester_before_each, NULL,
sizeof(offeranswer_tests) / sizeof(offeranswer_tests[0]), offeranswer_tests};
......@@ -82,10 +82,5 @@ test_t player_tests[] = {
{ "Local MKV file" , playing_test }
};
test_suite_t player_test_suite = {
"Player",
liblinphone_tester_setup,
NULL,
sizeof(player_tests) / sizeof(test_t),
player_tests
};
test_suite_t player_test_suite = {"Player", NULL, NULL, liblinphone_tester_before_each, NULL,
sizeof(player_tests) / sizeof(test_t), player_tests};
......@@ -482,11 +482,5 @@ test_t presence_tests[] = {
#endif
};
test_suite_t presence_test_suite = {
"Presence",
liblinphone_tester_setup,
NULL,
sizeof(presence_tests) / sizeof(presence_tests[0]),
presence_tests
};
test_suite_t presence_test_suite = {"Presence", NULL, NULL, liblinphone_tester_before_each, NULL,
sizeof(presence_tests) / sizeof(presence_tests[0]), presence_tests};
......@@ -108,10 +108,5 @@ test_t proxy_config_tests[] = {
{ "SIP URI normalization", sip_uri_normalization },
};
test_suite_t proxy_config_test_suite = {
"Proxy config",
liblinphone_tester_setup,
NULL,
sizeof(proxy_config_tests) / sizeof(proxy_config_tests[0]),
proxy_config_tests
};
test_suite_t proxy_config_test_suite = {"Proxy config", NULL, NULL, liblinphone_tester_before_each, NULL,
sizeof(proxy_config_tests) / sizeof(proxy_config_tests[0]), proxy_config_tests};
......@@ -383,10 +383,6 @@ test_t quality_reporting_tests[] = {
{ "Sent using custom route", quality_reporting_sent_using_custom_route},
};
test_suite_t quality_reporting_test_suite = {
"QualityReporting",
liblinphone_tester_setup,
NULL,
sizeof(quality_reporting_tests) / sizeof(quality_reporting_tests[0]),
quality_reporting_tests
};
test_suite_t quality_reporting_test_suite = {"QualityReporting", NULL, NULL, liblinphone_tester_before_each, NULL,
sizeof(quality_reporting_tests) / sizeof(quality_reporting_tests[0]),
quality_reporting_tests};
......@@ -894,11 +894,5 @@ test_t register_tests[] = {
{ "Simple redirect", redirect}
};
test_suite_t register_test_suite = {
"Register",
liblinphone_tester_setup,
NULL,
sizeof(register_tests) / sizeof(register_tests[0]),
register_tests
};
test_suite_t register_test_suite = {"Register", NULL, NULL, liblinphone_tester_before_each, NULL,
sizeof(register_tests) / sizeof(register_tests[0]), register_tests};
......@@ -134,10 +134,6 @@ test_t remote_provisioning_tests[] = {
{ "Remote provisioning invalid URI", remote_provisioning_invalid_uri }
};
test_suite_t remote_provisioning_test_suite = {
"RemoteProvisioning",
NULL,
NULL,
sizeof(remote_provisioning_tests) / sizeof(remote_provisioning_tests[0]),
remote_provisioning_tests
};
test_suite_t remote_provisioning_test_suite = {"RemoteProvisioning", NULL, NULL, liblinphone_tester_before_each, NULL,
sizeof(remote_provisioning_tests) / sizeof(remote_provisioning_tests[0]),
remote_provisioning_tests};
......@@ -306,11 +306,5 @@ test_t setup_tests[] = {
{ "Codec usability", codec_usability_test }
};
test_suite_t setup_test_suite = {
"Setup",
liblinphone_tester_setup,
NULL,
sizeof(setup_tests) / sizeof(setup_tests[0]),
setup_tests
};
test_suite_t setup_test_suite = {"Setup", NULL, NULL, liblinphone_tester_before_each, NULL,
sizeof(setup_tests) / sizeof(setup_tests[0]), setup_tests};
......@@ -110,10 +110,5 @@ test_t stun_tests[] = {
{ "STUN encode buffer protection", linphone_stun_test_encode },
};
test_suite_t stun_test_suite = {
"Stun",
liblinphone_tester_setup,
NULL,
sizeof(stun_tests) / sizeof(stun_tests[0]),
stun_tests
};
test_suite_t stun_test_suite = {"Stun", NULL, NULL, liblinphone_tester_before_each, NULL,
sizeof(stun_tests) / sizeof(stun_tests[0]), stun_tests};
......@@ -479,12 +479,10 @@ int linphone_core_manager_get_mean_audio_up_bw(const LinphoneCoreManager *mgr) {
, sizeof(mgr->stat.audio_upload_bandwidth)/sizeof(int));
}
int liblinphone_tester_setup() {
void liblinphone_tester_before_each() {
if (manager_count != 0) {
// crash in some linphone core have not been destroyed because if we continue
// it will crash in CUnit AND we should NEVER keep a manager alive
ms_fatal("%d linphone core manager still alive!", manager_count);
return 1;
ms_fatal("%d linphone core managers are still alive!", manager_count);
}
return 0;
}
......@@ -262,10 +262,5 @@ test_t tunnel_tests[] = {
#endif
};
test_suite_t tunnel_test_suite = {
"Tunnel",
liblinphone_tester_setup,
NULL,
sizeof(tunnel_tests) / sizeof(tunnel_tests[0]),
tunnel_tests
};
test_suite_t tunnel_test_suite = {"Tunnel", NULL, NULL, liblinphone_tester_before_each, NULL,
sizeof(tunnel_tests) / sizeof(tunnel_tests[0]), tunnel_tests};
......@@ -59,10 +59,5 @@ test_t upnp_tests[] = {
{ "Check ip address", upnp_check_ipaddress },
};
test_suite_t upnp_test_suite = {
"Upnp",
liblinphone_tester_setup,
NULL,
sizeof(upnp_tests) / sizeof(upnp_tests[0]),
upnp_tests
};
test_suite_t upnp_test_suite = {"Upnp", NULL, NULL, liblinphone_tester_before_each, NULL,
sizeof(upnp_tests) / sizeof(upnp_tests[0]), upnp_tests};
......@@ -430,13 +430,13 @@ static void forked_outgoing_early_media_video_call_with_inactive_audio_test(void
linphone_core_invite_address_with_params(pauline->lc, marie1->identity, pauline_params);
linphone_call_params_destroy(pauline_params);
BC_ASSERT_TRUE(wait_for_list(lcs, &marie1->stat.number_of_LinphoneCallIncomingReceived, 1, 3000));
BC_ASSERT_TRUE(wait_for_list(lcs, &marie2->stat.number_of_LinphoneCallIncomingReceived, 1, 3000));
marie1_call = linphone_core_get_current_call(marie1->lc);
marie2_call = linphone_core_get_current_call(marie2->lc);
if (marie1_call){
linphone_call_set_next_video_frame_decoded_callback(marie1_call, linphone_call_iframe_decoded_cb, marie1->lc);
}
......@@ -449,7 +449,6 @@ static void forked_outgoing_early_media_video_call_with_inactive_audio_test(void
BC_ASSERT_TRUE(wait_for_list(lcs, &pauline->stat.number_of_LinphoneCallOutgoingEarlyMedia, 1, 3000));
pauline_call = linphone_core_get_current_call(pauline->lc);
BC_ASSERT_PTR_NOT_NULL(pauline_call);
BC_ASSERT_PTR_NOT_NULL(marie1_call);
......@@ -457,7 +456,7 @@ static void forked_outgoing_early_media_video_call_with_inactive_audio_test(void
if (pauline_call && marie1_call && marie2_call) {
linphone_call_set_next_video_frame_decoded_callback(pauline_call, linphone_call_iframe_decoded_cb, pauline->lc);
/* wait a bit that streams are established */
wait_for_list(lcs, &dummy, 1, 3000);
BC_ASSERT_EQUAL(linphone_call_get_audio_stats(pauline_call)->download_bandwidth, 0, float, "%f");
......@@ -553,12 +552,7 @@ test_t video_tests[] = {
};
test_suite_t video_test_suite = {
"Video",
liblinphone_tester_setup,
NULL,
sizeof(video_tests) / sizeof(video_tests[0]),
video_tests
};
test_suite_t video_test_suite = {"Video", NULL, NULL, liblinphone_tester_before_each, NULL,
sizeof(video_tests) / sizeof(video_tests[0]), video_tests};
#endif /* VIDEO_ENABLED */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment