diff --git a/tester/Makefile.am b/tester/Makefile.am
index e1d2c692f..801d20ca0 100644
--- a/tester/Makefile.am
+++ b/tester/Makefile.am
@@ -4,7 +4,7 @@ if BUILD_CUNIT_TESTS
noinst_PROGRAMS=liblinphone_tester
TESTS=$(noinst_PROGRAMS)
-liblinphone_tester_SOURCES= liblinphone_tester.c register_tester.c message_tester.c call_tester.c presence_tester.c
+liblinphone_tester_SOURCES= liblinphone_tester.c setup_tester.c register_tester.c message_tester.c call_tester.c presence_tester.c
#liblinphone_tester_CFLAGS=$(CUNIT_CFLAGS)
diff --git a/tester/call_tester.c b/tester/call_tester.c
index 8ffbdb7bf..44383a4c9 100644
--- a/tester/call_tester.c
+++ b/tester/call_tester.c
@@ -15,6 +15,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see .
*/
+
#include
#include "CUnit/Basic.h"
#include "linphonecore.h"
@@ -22,13 +23,6 @@
#include "liblinphone_tester.h"
-static int init(void) {
- return 0;
-}
-static int uninit(void) {
- return 0;
-}
-
void call_state_changed(LinphoneCore *lc, LinphoneCall *call, LinphoneCallState cstate, const char *msg){
char* to=linphone_address_as_string(linphone_call_get_call_log(call)->to);
char* from=linphone_address_as_string(linphone_call_get_call_log(call)->from);
@@ -60,6 +54,7 @@ void call_state_changed(LinphoneCore *lc, LinphoneCall *call, LinphoneCallState
CU_FAIL("unexpected event");break;
}
}
+
void linphone_transfer_state_changed(LinphoneCore *lc, LinphoneCall *transfered, LinphoneCallState new_call_state) {
char* to=linphone_address_as_string(linphone_call_get_call_log(transfered)->to);
char* from=linphone_address_as_string(linphone_call_get_call_log(transfered)->from);
@@ -80,6 +75,7 @@ void linphone_transfer_state_changed(LinphoneCore *lc, LinphoneCall *transfered,
CU_FAIL("unexpected event");break;
}
}
+
static void linphone_call_cb(LinphoneCall *call,void * user_data) {
char* to=linphone_address_as_string(linphone_call_get_call_log(call)->to);
char* from=linphone_address_as_string(linphone_call_get_call_log(call)->from);
@@ -90,6 +86,7 @@ static void linphone_call_cb(LinphoneCall *call,void * user_data) {
stats* counters = (stats*)linphone_core_get_user_data(lc);
counters->number_of_IframeDecoded++;
}
+
static bool_t call(LinphoneCoreManager* caller_mgr,LinphoneCoreManager* callee_mgr) {
LinphoneProxyConfig* proxy;
linphone_core_get_default_proxy(callee_mgr->lc,&proxy);
@@ -140,7 +137,8 @@ static bool_t call(LinphoneCoreManager* caller_mgr,LinphoneCoreManager* callee_m
wait_for(callee_mgr->lc,caller_mgr->lc,&callee_mgr->stat.number_of_LinphoneCallStreamsRunning,initial_callee.number_of_LinphoneCallStreamsRunning+1);
}
-static void simple_call() {
+
+static void simple_call(void) {
LinphoneCoreManager* marie = linphone_core_manager_new("./tester/marie_rc");
LinphoneCoreManager* pauline = linphone_core_manager_new("./tester/pauline_rc");
@@ -180,7 +178,8 @@ static void simple_call() {
linphone_core_manager_destroy(marie);
linphone_core_manager_destroy(pauline);
}
-static void call_canceled() {
+
+static void cancelled_call(void) {
LinphoneCoreManager* marie = linphone_core_manager_new("./tester/marie_rc");
LinphoneCoreManager* pauline = linphone_core_manager_new("./tester/pauline_rc");
@@ -198,7 +197,7 @@ static void call_canceled() {
linphone_core_manager_destroy(pauline);
}
-static void call_with_dns_time_out() {
+static void call_with_dns_time_out(void) {
LinphoneCoreManager* marie = linphone_core_manager_new(NULL);
LCSipTransports transport = {9773,0,0,0};
linphone_core_set_sip_transports(marie->lc,&transport);
@@ -213,7 +212,7 @@ static void call_with_dns_time_out() {
linphone_core_manager_destroy(marie);
}
-static void call_ringing_canceled() {
+static void cancelled_ringing_call(void) {
LinphoneCoreManager* marie = linphone_core_manager_new("./tester/marie_rc");
LinphoneCoreManager* pauline = linphone_core_manager_new("./tester/pauline_rc");
@@ -231,7 +230,7 @@ static void call_ringing_canceled() {
linphone_core_manager_destroy(pauline);
}
-static void call_early_declined() {
+static void early_declined_call(void) {
LinphoneCoreManager* marie = linphone_core_manager_new("./tester/marie_rc");
LinphoneCoreManager* pauline = linphone_core_manager_new("./tester/pauline_rc");
@@ -252,7 +251,7 @@ static void call_early_declined() {
linphone_core_manager_destroy(pauline);
}
-static void call_terminated_by_caller() {
+static void call_terminated_by_caller(void) {
LinphoneCoreManager* marie = linphone_core_manager_new("./tester/marie_rc");
LinphoneCoreManager* pauline = linphone_core_manager_new("./tester/pauline_rc");
@@ -266,7 +265,7 @@ static void call_terminated_by_caller() {
linphone_core_manager_destroy(pauline);
}
-static void call_paused_resumed() {
+static void call_paused_resumed(void) {
LinphoneCoreManager* marie = linphone_core_manager_new("./tester/marie_rc");
LinphoneCoreManager* pauline = linphone_core_manager_new("./tester/pauline_rc");
LinphoneCall* call_obj;
@@ -303,7 +302,8 @@ static bool_t pause_call_1(LinphoneCoreManager* mgr_1,LinphoneCall* call_1,Linph
CU_ASSERT_EQUAL(linphone_call_get_state(call_2),LinphoneCallPausedByRemote);
return linphone_call_get_state(call_1) == LinphoneCallPaused && linphone_call_get_state(call_2)==LinphoneCallPausedByRemote;
}
-static void call_paused_resumed_from_callee() {
+
+static void call_paused_resumed_from_callee(void) {
LinphoneCoreManager* marie = linphone_core_manager_new("./tester/marie_rc");
LinphoneCoreManager* pauline = linphone_core_manager_new("./tester/pauline_rc");
LinphoneCall* call_obj;
@@ -329,7 +329,7 @@ static void call_paused_resumed_from_callee() {
linphone_core_manager_destroy(pauline);
}
-static void call_with_video_added() {
+static void call_with_video_added(void) {
LinphoneCoreManager* marie = linphone_core_manager_new("./tester/marie_rc");
LinphoneCoreManager* pauline = linphone_core_manager_new("./tester/pauline_rc");
LinphoneCall* call_obj;
@@ -371,7 +371,8 @@ static void call_with_video_added() {
linphone_core_manager_destroy(marie);
linphone_core_manager_destroy(pauline);
}
-static void simple_conference() {
+
+static void simple_conference(void) {
LinphoneCoreManager* marie = linphone_core_manager_new("./tester/marie_rc");
stats initial_marie_stat;
stats initial_pauline_stat;
@@ -428,8 +429,7 @@ static void simple_conference() {
ms_list_free(lcs);
}
-
-static void call_srtp() {
+static void srtp_call(void) {
LinphoneCoreManager* marie = linphone_core_manager_new("./tester/marie_rc");
LinphoneCoreManager* pauline = linphone_core_manager_new("./tester/pauline_rc");
@@ -450,7 +450,7 @@ static void call_srtp() {
linphone_core_manager_destroy(pauline);
}
-static void call_early_media() {
+static void early_media_call(void) {
LinphoneCoreManager* marie = linphone_core_manager_new("./tester/marie_early_rc");
LinphoneCoreManager* pauline = linphone_core_manager_new("./tester/pauline_rc");
@@ -468,22 +468,19 @@ static void call_early_media() {
linphone_core_manager_destroy(pauline);
}
-static void simple_call_transfer() {
+static void simple_call_transfer(void) {
LinphoneCoreManager* marie = linphone_core_manager_new("./tester/marie_rc");
LinphoneCoreManager* pauline = linphone_core_manager_new("./tester/pauline_rc");
LinphoneCoreManager* laure = linphone_core_manager_new("./tester/laure_rc");
+ LinphoneCall* pauline_called_by_marie;
char* laure_identity=linphone_address_as_string(laure->identity);
MSList* lcs=ms_list_append(NULL,marie->lc);
lcs=ms_list_append(lcs,pauline->lc);
lcs=ms_list_append(lcs,laure->lc);
- LinphoneCall* marie_call_pauline;
- LinphoneCall* pauline_called_by_marie;
-
CU_ASSERT_TRUE(call(marie,pauline));
- marie_call_pauline=linphone_core_get_current_call(marie->lc);
pauline_called_by_marie=linphone_core_get_current_call(pauline->lc);
reset_counters(&marie->stat);
@@ -520,7 +517,7 @@ static void simple_call_transfer() {
ms_list_free(lcs);
}
-static void call_transfer_existing_call_outgoing_call() {
+static void call_transfer_existing_call_outgoing_call(void) {
LinphoneCoreManager* marie = linphone_core_manager_new("./tester/marie_rc");
LinphoneCoreManager* pauline = linphone_core_manager_new("./tester/pauline_rc");
LinphoneCoreManager* laure = linphone_core_manager_new("./tester/laure_rc");
@@ -593,51 +590,29 @@ static void call_transfer_existing_call_outgoing_call() {
ms_list_free(lcs);
}
-int call_test_suite () {
- CU_pSuite pSuite = CU_add_suite("Call", init, uninit);
- if (NULL == CU_add_test(pSuite, "call_early_declined", call_early_declined)) {
- return CU_get_error();
- }
- if (NULL == CU_add_test(pSuite, "call_canceled", call_canceled)) {
- return CU_get_error();
- }
- if (NULL == CU_add_test(pSuite, "call_with_dns_time_out", call_with_dns_time_out)) {
- return CU_get_error();
- }
- if (NULL == CU_add_test(pSuite, "call_ringing_canceled", call_ringing_canceled)) {
- return CU_get_error();
- }
- if (NULL == CU_add_test(pSuite, "simple_call", simple_call)) {
- return CU_get_error();
- }
- if (NULL == CU_add_test(pSuite, "call_early_media", call_early_media)) {
- return CU_get_error();
- }
- if (NULL == CU_add_test(pSuite, "call_terminated_by_caller", call_terminated_by_caller)) {
- return CU_get_error();
- }
- if (NULL == CU_add_test(pSuite, "call_paused_resumed", call_paused_resumed)) {
- return CU_get_error();
- }
- if (NULL == CU_add_test(pSuite, "call_paused_resumed_from_callee", call_paused_resumed_from_callee)) {
- return CU_get_error();
- }
- if (NULL == CU_add_test(pSuite, "call_srtp", call_srtp)) {
- return CU_get_error();
- }
- if (NULL == CU_add_test(pSuite, "call_with_video_added", call_with_video_added)) {
- return CU_get_error();
- }
- if (NULL == CU_add_test(pSuite, "simple_conference", simple_conference)) {
- return CU_get_error();
- }
- if (NULL == CU_add_test(pSuite, "simple_call_transfer", simple_call_transfer)) {
- return CU_get_error();
- }
- if (NULL == CU_add_test(pSuite, "call_transfer_existing_call_outgoing_call", call_transfer_existing_call_outgoing_call)) {
- return CU_get_error();
- }
+test_t call_tests[] = {
+ { "Early declined call", early_declined_call },
+ { "Cancelled call", cancelled_call },
+ { "Call with DNS timeout", call_with_dns_time_out },
+ { "Cancelled ringing call", cancelled_ringing_call },
+ { "Simple call", simple_call },
+ { "Early-media call", early_media_call },
+ { "Call terminated by caller", call_terminated_by_caller },
+ { "Call paused resumed", call_paused_resumed },
+ { "Call paused resumed from callee", call_paused_resumed_from_callee },
+ { "SRTP call", srtp_call },
+ { "Call with video added", call_with_video_added },
+ { "Simple conference", simple_conference },
+ { "Simple call transfer", simple_call_transfer },
+ { "Call transfer existing call outgoing call", call_transfer_existing_call_outgoing_call }
+};
+
+test_suite_t call_test_suite = {
+ "Call",
+ NULL,
+ NULL,
+ sizeof(call_tests) / sizeof(call_tests[0]),
+ call_tests
+};
- return 0;
-}
diff --git a/tester/liblinphone_tester.c b/tester/liblinphone_tester.c
index 4c8861a13..26c6fbacd 100644
--- a/tester/liblinphone_tester.c
+++ b/tester/liblinphone_tester.c
@@ -22,24 +22,21 @@
#include "liblinphone_tester.h"
+static test_suite_t **test_suite = NULL;
+static int nb_test_suites = 0;
+
+
+#if HAVE_CU_CURSES
+static unsigned char curses = 0;
+#endif
+
+
+static stats global_stat;
const char* test_domain="sipopen.example.org";
const char* auth_domain="sip.example.org";
const char* test_username="liblinphone_tester";
const char* test_password="secret";
-static int init(void) {
- return 0;
-}
-static int uninit(void) {
- return 0;
-}
-static void core_init_test(void) {
- LinphoneCoreVTable v_table;
- memset (&v_table,0,sizeof(v_table));
- LinphoneCore* lc = linphone_core_new(&v_table,NULL,NULL,NULL);
- CU_ASSERT_PTR_NOT_NULL_FATAL(lc);
- linphone_core_destroy(lc);
-}
LinphoneAddress * create_linphone_address(const char * domain) {
LinphoneAddress *addr = linphone_address_new(NULL);
@@ -54,13 +51,6 @@ LinphoneAddress * create_linphone_address(const char * domain) {
CU_ASSERT_STRING_EQUAL("Mr Tester",linphone_address_get_display_name(addr));
return addr;
}
-static void linphone_address_test(void) {
- linphone_address_destroy(create_linphone_address(NULL));
-}
-
-
-static stats global_stat;
-
void auth_info_requested(LinphoneCore *lc, const char *realm, const char *username) {
ms_message("Auth info requested for user id [%s] at realm [%s]\n"
@@ -110,8 +100,6 @@ LinphoneCore* configure_lc_from(LinphoneCoreVTable* v_table, const char* file,in
return lc;
}
-
-
bool_t wait_for(LinphoneCore* lc_1, LinphoneCore* lc_2,int* counter,int value) {
MSList* lcs=NULL;
if (lc_1)
@@ -123,6 +111,7 @@ bool_t wait_for(LinphoneCore* lc_1, LinphoneCore* lc_2,int* counter,int value) {
ms_list_free(lcs);
return result;
}
+
bool_t wait_for_list(MSList* lcs,int* counter,int value,int timeout_ms) {
int retry=0;
MSList* iterator;
@@ -135,6 +124,7 @@ bool_t wait_for_list(MSList* lcs,int* counter,int value,int timeout_ms) {
if(*counterlc);
if (mgr->identity) linphone_address_destroy(mgr->identity);
@@ -176,44 +166,152 @@ void linphone_core_manager_destroy(LinphoneCoreManager* mgr) {
}
-
-int init_test_suite () {
-
-CU_pSuite pSuite = CU_add_suite("Setup", init, uninit);
-
-
- if (NULL == CU_add_test(pSuite, "linphone address tester", linphone_address_test)) {
- return CU_get_error();
+static void add_test_suite(test_suite_t *suite) {
+ if (test_suite == NULL) {
+ test_suite = (test_suite_t **)malloc(10 * sizeof(test_suite_t *));
}
- if (NULL == CU_add_test(pSuite, "linphone core init/uninit tester", core_init_test)) {
- return CU_get_error();
+ test_suite[nb_test_suites] = suite;
+ nb_test_suites++;
+ if ((nb_test_suites % 10) == 0) {
+ test_suite = (test_suite_t **)realloc(test_suite, (nb_test_suites + 10) * sizeof(test_suite_t *));
}
+}
- register_test_suite();
+static int run_test_suite(test_suite_t *suite) {
+ int i;
- call_test_suite();
+ CU_pSuite pSuite = CU_add_suite(suite->name, suite->init_func, suite->cleanup_func);
- message_test_suite();
-
- presence_test_suite();
+ 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();
+ }
+ }
return 0;
}
-int main (int argc, char *argv[]) {
+
+static int test_suite_index(const char *suite_name) {
int i;
- char *test_name=NULL;
+ for (i = 0; i < liblinphone_tester_nb_test_suites(); i++) {
+ if ((strcmp(suite_name, test_suite[i]->name) == 0) && (strlen(suite_name) == strlen(test_suite[i]->name))) {
+ return i;
+ }
+ }
+
+ return -1;
+}
+
+int liblinphone_tester_nb_test_suites(void) {
+ return nb_test_suites;
+}
+
+int liblinphone_tester_nb_tests(const char *suite_name) {
+ int i = test_suite_index(suite_name);
+ if (i < 0) return 0;
+ return test_suite[i]->nb_tests;
+}
+
+const char * liblinphone_tester_test_suite_name(int suite_index) {
+ if (suite_index >= liblinphone_tester_nb_test_suites()) return NULL;
+ return test_suite[suite_index]->name;
+}
+
+const char * liblinphone_tester_test_name(const char *suite_name, int test_index) {
+ int suite_index = test_suite_index(suite_name);
+ if ((suite_index < 0) || (suite_index >= liblinphone_tester_nb_test_suites())) return NULL;
+ if (test_index >= test_suite[suite_index]->nb_tests) return NULL;
+ return test_suite[suite_index]->tests[test_index].name;
+}
+
+void liblinphone_tester_init(void) {
+ add_test_suite(&setup_test_suite);
+ add_test_suite(®ister_test_suite);
+ add_test_suite(&call_test_suite);
+ add_test_suite(&message_test_suite);
+ add_test_suite(&presence_test_suite);
+}
+
+void liblinphone_tester_uninit(void) {
+ if (test_suite != NULL) {
+ free(test_suite);
+ test_suite = NULL;
+ nb_test_suites = 0;
+ }
+}
+
+int liblinphone_tester_run_tests(const char *suite_name, const char *test_name) {
+ int i;
+
+ /* initialize the CUnit test registry */
+ if (CUE_SUCCESS != CU_initialize_registry())
+ return CU_get_error();
+
+ for (i = 0; i < liblinphone_tester_nb_test_suites(); i++) {
+ run_test_suite(test_suite[i]);
+ }
+
+#if HAVE_CU_GET_SUITE
+ if (suite_name){
+ CU_pSuite suite;
+ CU_basic_set_mode(CU_BRM_VERBOSE);
+ suite=CU_get_suite(suite_name);
+ if (test_name) {
+ CU_pTest test=CU_get_test_by_name(test_name, suite);
+ CU_basic_run_test(suite, test);
+ } else
+ CU_basic_run_suite(suite);
+ } else
+#endif
+ {
+#if HAVE_CU_CURSES
+ if (curses) {
+ /* Run tests using the CUnit curses interface */
+ CU_curses_run_tests();
+ }
+ else
+#endif
+ {
+ /* Run all tests using the CUnit Basic interface */
+ CU_basic_set_mode(CU_BRM_VERBOSE);
+ CU_basic_run_tests();
+ }
+ }
+
+ CU_cleanup_registry();
+ return CU_get_error();
+}
+
+
+#ifndef WINAPI_FAMILY_PHONE_APP
+int main (int argc, char *argv[]) {
+ int i;
+ int ret;
char *suite_name=NULL;
+ char *test_name=NULL;
+
for(i=1;i\n"
+ "\t\t\t---auth-domain \n"
+#if HAVE_CU_GET_SUITE
+ "\t\t\t--suite \n"
+ "\t\t\t--test \n"
+#endif
+#if HAVE_CU_CURSES
+ "\t\t\t--curses\n"
+#endif
+ , argv[0]);
+ return 0;
}else if (strcmp(argv[i],"--verbose")==0){
- linphone_core_enable_logs(NULL);
+ linphone_core_enable_logs(NULL);
}else if (strcmp(argv[i],"--domain")==0){
i++;
test_domain=argv[i];
- } else if (strcmp(argv[i],"--auth-domain")==0){
+ }else if (strcmp(argv[i],"--auth-domain")==0){
i++;
auth_domain=argv[i];
}else if (strcmp(argv[i],"--test")==0){
@@ -225,29 +323,10 @@ int main (int argc, char *argv[]) {
}
}
- /* initialize the CUnit test registry */
- if (CUE_SUCCESS != CU_initialize_registry())
- return CU_get_error();
-
- init_test_suite();
- /* Run all tests using the CUnit Basic interface */
- CU_basic_set_mode(CU_BRM_VERBOSE);
-if (suite_name){
-#if 1 /*HAVE_CU_GET_SUITE*/
- CU_pSuite suite;
- suite=CU_get_suite(suite_name);
- if (test_name) {
- CU_pTest test=CU_get_test_by_name(test_name, suite);
- CU_basic_run_test(suite, test);
- } else
- CU_basic_run_suite(suite);
-#else
- fprintf(stderr,"Your CUnit version does not support suite selection.\n");
-#endif
- } else
- CU_basic_run_tests();
-
- CU_cleanup_registry();
- return CU_get_error();
-
+ liblinphone_tester_init();
+ ret = liblinphone_tester_run_tests(suite_name, test_name);
+ liblinphone_tester_uninit();
+ return ret;
}
+#endif
+
diff --git a/tester/liblinphone_tester.h b/tester/liblinphone_tester.h
index 46263bf46..1d17dbffc 100644
--- a/tester/liblinphone_tester.h
+++ b/tester/liblinphone_tester.h
@@ -21,6 +21,51 @@
+#include "CUnit/Basic.h"
+
+
+typedef void (*test_function_t)(void);
+typedef int (*test_suite_function_t)(const char *name);
+
+typedef struct {
+ const char *name;
+ test_function_t func;
+} test_t;
+
+typedef struct {
+ const char *name;
+ CU_InitializeFunc init_func;
+ CU_CleanupFunc cleanup_func;
+ int nb_tests;
+ test_t *tests;
+} test_suite_t;
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern test_suite_t setup_test_suite;
+extern test_suite_t register_test_suite;
+extern test_suite_t call_test_suite;
+extern test_suite_t message_test_suite;
+extern test_suite_t presence_test_suite;
+
+
+extern int liblinphone_tester_nb_test_suites(void);
+extern int liblinphone_tester_nb_tests(const char *suite_name);
+extern const char * liblinphone_tester_test_suite_name(int suite_index);
+extern const char * liblinphone_tester_test_name(const char *suite_name, int test_index);
+extern void liblinphone_tester_init(void);
+extern void liblinphone_tester_uninit(void);
+extern int liblinphone_tester_run_tests(const char *suite_name, const char *test_name);
+
+
+#ifdef __cplusplus
+};
+#endif
+
+
const char* test_domain;
const char* auth_domain;
const char* test_username;
@@ -77,6 +122,7 @@ typedef struct _stats {
int number_of_IframeDecoded;
}stats;
+
typedef struct _LinphoneCoreManager {
LinphoneCoreVTable v_table;
LinphoneCore* lc;
@@ -104,9 +150,7 @@ LinphoneAddress * create_linphone_address(const char * domain);
LinphoneCore* configure_lc_from(LinphoneCoreVTable* v_table, const char* file,int proxy_count);
bool_t wait_for(LinphoneCore* lc_1, LinphoneCore* lc_2,int* counter,int value);
bool_t wait_for_list(MSList* lcs,int* counter,int value,int timeout_ms);
-int call_test_suite ();
-int register_test_suite ();
-int message_test_suite ();
-int presence_test_suite ();
+
#endif /* LIBLINPHONE_TESTER_H_ */
+
diff --git a/tester/message_tester.c b/tester/message_tester.c
index 424a12b32..5050a84a8 100644
--- a/tester/message_tester.c
+++ b/tester/message_tester.c
@@ -15,16 +15,19 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see .
*/
+
#include
#include "CUnit/Basic.h"
#include "linphonecore.h"
#include "private.h"
#include "liblinphone_tester.h"
+
void text_message_received(LinphoneCore *lc, LinphoneChatRoom *room, const LinphoneAddress *from_address, const char *message) {
stats* counters = (stats*)linphone_core_get_user_data(lc);
counters->number_of_LinphoneMessageReceivedLegacy++;
}
+
void message_received(LinphoneCore *lc, LinphoneChatRoom *room, LinphoneChatMessage* message) {
char* from=linphone_address_as_string(linphone_chat_message_get_from(message));
ms_message("Message from [%s] is [%s] , external URL [%s]",from
@@ -57,7 +60,7 @@ void linphone_chat_message_state_change(LinphoneChatMessage* msg,LinphoneChatMes
}
-static void text_message() {
+static void text_message(void) {
LinphoneCoreManager* marie = linphone_core_manager_new("./tester/marie_rc");
LinphoneCoreManager* pauline = linphone_core_manager_new("./tester/pauline_rc");
char* to = linphone_address_as_string(marie->identity);
@@ -69,7 +72,7 @@ static void text_message() {
linphone_core_manager_destroy(pauline);
}
-static void text_message_with_ack() {
+static void text_message_with_ack(void) {
LinphoneCoreManager* marie = linphone_core_manager_new("./tester/marie_rc");
LinphoneCoreManager* pauline = linphone_core_manager_new("./tester/pauline_rc");
char* to = linphone_address_as_string(marie->identity);
@@ -82,7 +85,8 @@ static void text_message_with_ack() {
linphone_core_manager_destroy(marie);
linphone_core_manager_destroy(pauline);
}
-static void text_message_with_external_body() {
+
+static void text_message_with_external_body(void) {
LinphoneCoreManager* marie = linphone_core_manager_new("./tester/marie_rc");
LinphoneCoreManager* pauline = linphone_core_manager_new("./tester/pauline_rc");
char* to = linphone_address_as_string(marie->identity);
@@ -99,7 +103,7 @@ static void text_message_with_external_body() {
linphone_core_manager_destroy(pauline);
}
-static void text_message_with_send_error() {
+static void text_message_with_send_error(void) {
LinphoneCoreManager* marie = linphone_core_manager_new("./tester/marie_rc");
LinphoneCoreManager* pauline = linphone_core_manager_new("./tester/pauline_rc");
char* to = linphone_address_as_string(pauline->identity);
@@ -118,20 +122,19 @@ static void text_message_with_send_error() {
linphone_core_manager_destroy(pauline);
}
-int message_test_suite () {
- CU_pSuite pSuite = CU_add_suite("Message", NULL, NULL);
- if (NULL == CU_add_test(pSuite, "text_message", text_message)) {
- return CU_get_error();
- }
- if (NULL == CU_add_test(pSuite, "text_message_with_ack", text_message_with_ack)) {
- return CU_get_error();
- }
- if (NULL == CU_add_test(pSuite, "text_message_with_send_error", text_message_with_send_error)) {
- return CU_get_error();
- }
- if (NULL == CU_add_test(pSuite, "text_message_with_external_body", text_message_with_external_body)) {
- return CU_get_error();
- }
- return 0;
-}
+test_t message_tests[] = {
+ { "Text message", text_message },
+ { "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 }
+};
+
+test_suite_t message_test_suite = {
+ "Message",
+ NULL,
+ NULL,
+ sizeof(message_tests) / sizeof(message_tests[0]),
+ message_tests
+};
+
diff --git a/tester/presence_tester.c b/tester/presence_tester.c
index eb4bb1b95..478f042c6 100644
--- a/tester/presence_tester.c
+++ b/tester/presence_tester.c
@@ -15,6 +15,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see .
*/
+
#include
#include "CUnit/Basic.h"
#include "linphonecore.h"
@@ -29,8 +30,8 @@ void new_subscribtion_request(LinphoneCore *lc, LinphoneFriend *lf, const char *
stats* counters = (stats*)linphone_core_get_user_data(lc);
counters->number_of_NewSubscriptionRequest++;
linphone_core_add_friend(lc,lf); /*accept subscription*/
-
}
+
void notify_presence_received(LinphoneCore *lc, LinphoneFriend * lf) {
char* from=linphone_address_as_string(linphone_friend_get_address(lf));
ms_message("New Notify request from [%s] ",from);
@@ -39,7 +40,7 @@ void notify_presence_received(LinphoneCore *lc, LinphoneFriend * lf) {
counters->number_of_NotifyReceived++;
}
-static void simple_publish() {
+static void simple_publish(void) {
LinphoneCoreManager* marie = linphone_core_manager_new("./tester/marie_rc");
LinphoneProxyConfig* proxy;
linphone_core_get_default_proxy(marie->lc,&proxy);
@@ -50,8 +51,7 @@ static void simple_publish() {
linphone_core_manager_destroy(marie);
}
-
-static void simple_subscribe() {
+static void simple_subscribe(void) {
LinphoneCoreManager* marie = linphone_core_manager_new("./tester/marie_rc");
LinphoneCoreManager* pauline = linphone_core_manager_new("./tester/pauline_rc");
const MSList* marie_friends = linphone_core_get_friend_list(marie->lc);
@@ -69,7 +69,8 @@ static void simple_subscribe() {
linphone_core_manager_destroy(pauline);
}
-static void unsubscribe_while_subscribing() {
+
+static void unsubscribe_while_subscribing(void) {
LinphoneCoreManager* marie = linphone_core_manager_new("./tester/marie_rc");
LinphoneFriend* friend = linphone_friend_new_with_addr("sip:toto@git.linphone.org"); /*any unexisting address*/
linphone_friend_edit(friend);
@@ -78,19 +79,20 @@ static void unsubscribe_while_subscribing() {
linphone_core_add_friend(marie->lc,friend);
linphone_core_iterate(marie->lc);
linphone_core_manager_destroy(marie);
-
}
-int presence_test_suite () {
- CU_pSuite pSuite = CU_add_suite("Presence", NULL, NULL);
- if (NULL == CU_add_test(pSuite, "simple_subscribe", simple_subscribe)) {
- return CU_get_error();
- }
- if (NULL == CU_add_test(pSuite, "simple_publish", simple_publish)) {
- return CU_get_error();
- }
- if (NULL == CU_add_test(pSuite, "unsubscribe_while_subscribing", unsubscribe_while_subscribing)) {
- return CU_get_error();
- }
- return 0;
-}
+
+test_t presence_tests[] = {
+ { "Simple Subscribe", simple_subscribe },
+ { "Simple Publish", simple_publish },
+ { "Unsubscribe while subscribing", unsubscribe_while_subscribing },
+};
+
+test_suite_t presence_test_suite = {
+ "Presence",
+ NULL,
+ NULL,
+ sizeof(presence_tests) / sizeof(presence_tests[0]),
+ presence_tests
+};
+
diff --git a/tester/register_tester.c b/tester/register_tester.c
index a6b4b920a..16ae53da3 100644
--- a/tester/register_tester.c
+++ b/tester/register_tester.c
@@ -15,6 +15,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see .
*/
+
#include
#include "CUnit/Basic.h"
#include "linphonecore.h"
@@ -27,7 +28,6 @@ static LinphoneCore* create_lc() {
return create_lc_with_auth(0);
}
-
void registration_state_changed(struct _LinphoneCore *lc, LinphoneProxyConfig *cfg, LinphoneRegistrationState cstate, const char *message){
ms_message("New registration state %s for user id [%s] at proxy [%s]\n"
,linphone_registration_state_to_string(cstate)
@@ -45,6 +45,7 @@ void registration_state_changed(struct _LinphoneCore *lc, LinphoneProxyConfig *c
}
}
+
static void register_with_refresh_base_2(LinphoneCore* lc, bool_t refresh,const char* domain,const char* route,bool_t late_auth_info) {
int retry=0;
LCSipTransports transport = {5070,5070,0,5071};
@@ -92,9 +93,11 @@ static void register_with_refresh_base_2(LinphoneCore* lc, bool_t refresh,const
CU_ASSERT_EQUAL(counters->number_of_LinphoneRegistrationCleared,0);
}
+
static void register_with_refresh_base(LinphoneCore* lc, bool_t refresh,const char* domain,const char* route) {
register_with_refresh_base_2(lc,refresh,domain,route,FALSE);
}
+
static void register_with_refresh(LinphoneCore* lc, bool_t refresh,const char* domain,const char* route) {
stats* counters = (stats*)linphone_core_get_user_data(lc);
register_with_refresh_base(lc,refresh,domain,route);
@@ -124,6 +127,7 @@ static void register_with_refresh_with_send_error(void) {
CU_ASSERT_EQUAL(counters->number_of_LinphoneRegistrationCleared,0);
}
+
static void simple_register(){
LinphoneCore* lc = create_lc();
stats* counters = (stats*)linphone_core_get_user_data(lc);
@@ -131,7 +135,6 @@ static void simple_register(){
CU_ASSERT_EQUAL(counters->number_of_auth_info_requested,0);
}
-
/*take care of min expires configuration from server*/
static void simple_register_with_refresh() {
LinphoneCore* lc = create_lc();
@@ -153,6 +156,7 @@ static void simple_tcp_register(){
LinphoneCore* lc = create_lc();
register_with_refresh(lc,FALSE,NULL,route);
}
+
static void simple_tls_register(){
char route[256];
sprintf(route,"sip:%s;transport=tls",test_domain);
@@ -183,6 +187,7 @@ static void authenticated_register_with_no_initial_credentials(){
register_with_refresh(lc,FALSE,auth_domain,NULL);
CU_ASSERT_EQUAL(counters->number_of_auth_info_requested,1);
}
+
static void auth_info_requested2(LinphoneCore *lc, const char *realm, const char *username) {
ms_message("Auth info requested for user id [%s] at realm [%s]\n"
,username
@@ -282,48 +287,28 @@ static void io_recv_error(){
linphone_core_destroy(lc);
}
-int register_test_suite () {
- CU_pSuite pSuite = CU_add_suite("Register", NULL, NULL);
- if (NULL == CU_add_test(pSuite, "simple_register", simple_register)) {
- return CU_get_error();
- }
- if (NULL == CU_add_test(pSuite, "tcp register tester", simple_tcp_register)) {
- return CU_get_error();
- }
- if (NULL == CU_add_test(pSuite, "tls register tester", simple_tls_register)) {
- return CU_get_error();
- }
- if (NULL == CU_add_test(pSuite, "simple_authenticated_register", simple_authenticated_register)) {
- return CU_get_error();
- }
- if (NULL == CU_add_test(pSuite, "register with digest auth tester without initial credentials", authenticated_register_with_no_initial_credentials)) {
- return CU_get_error();
- }
- if (NULL == CU_add_test(pSuite, "authenticated_register_with_late_credentials", authenticated_register_with_late_credentials)) {
- return CU_get_error();
- }
- if (NULL == CU_add_test(pSuite, "simple_register_with_refresh", simple_register_with_refresh)) {
- return CU_get_error();
- }
- if (NULL == CU_add_test(pSuite, "simple_auth_register_with_refresh", simple_auth_register_with_refresh)) {
- return CU_get_error();
- }
- if (NULL == CU_add_test(pSuite, "register_with_refresh_with_send_error", register_with_refresh_with_send_error)) {
- return CU_get_error();
- }
- if (NULL == CU_add_test(pSuite, "multi account", multiple_proxy)) {
- return CU_get_error();
- }
- if (NULL == CU_add_test(pSuite, "transport_change", transport_change)) {
- return CU_get_error();
- }
- if (NULL == CU_add_test(pSuite, "network_state_change", network_state_change)) {
- return CU_get_error();
- }
- if (NULL == CU_add_test(pSuite, "io_recv_error_0", io_recv_error)) {
- return CU_get_error();
- }
+test_t register_tests[] = {
+ { "Simple register", simple_register },
+ { "TCP register", simple_tcp_register },
+ { "TLS register", simple_tls_register },
+ { "Simple authenticated register", simple_authenticated_register },
+ { "Digest auth without initial credentials", authenticated_register_with_no_initial_credentials },
+ { "Authenticated register with late credentials", authenticated_register_with_late_credentials },
+ { "Register with refresh", simple_register_with_refresh },
+ { "Authenticated register with refresh", simple_auth_register_with_refresh },
+ { "Register with refresh & send error", register_with_refresh_with_send_error },
+ { "Multi account", multiple_proxy },
+ { "Transport change", transport_change },
+ { "Network state change", network_state_change },
+ { "io_recv_error_0", io_recv_error }
+};
+
+test_suite_t register_test_suite = {
+ "Register",
+ NULL,
+ NULL,
+ sizeof(register_tests) / sizeof(register_tests[0]),
+ register_tests
+};
- return 0;
-}
diff --git a/tester/setup_tester.c b/tester/setup_tester.c
new file mode 100644
index 000000000..4ee2564c5
--- /dev/null
+++ b/tester/setup_tester.c
@@ -0,0 +1,52 @@
+/*
+ belle-sip - SIP (RFC3261) library.
+ Copyright (C) 2010 Belledonne Communications SARL
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+*/
+
+#include
+#include "CUnit/Basic.h"
+#include "linphonecore.h"
+#include "private.h"
+#include "liblinphone_tester.h"
+
+
+
+static void core_init_test(void) {
+ LinphoneCoreVTable v_table;
+ memset (&v_table,0,sizeof(v_table));
+ LinphoneCore* lc = linphone_core_new(&v_table,NULL,NULL,NULL);
+ CU_ASSERT_PTR_NOT_NULL_FATAL(lc);
+ linphone_core_destroy(lc);
+}
+
+static void linphone_address_test(void) {
+ linphone_address_destroy(create_linphone_address(NULL));
+}
+
+
+test_t setup_tests[] = {
+ { "Linphone Address", linphone_address_test },
+ { "Linphone core init/uninit", core_init_test },
+};
+
+test_suite_t setup_test_suite = {
+ "Setup",
+ NULL,
+ NULL,
+ sizeof(setup_tests) / sizeof(setup_tests[0]),
+ setup_tests
+};
+