Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
BC
public
liblinphone
Commits
86d1df7a
Commit
86d1df7a
authored
Jun 10, 2013
by
Simon Morlat
Browse files
rework liblinphone tester, so that every tests uses a LinphoneCoreManager object.
parent
a9cf6dc8
Changes
4
Hide whitespace changes
Inline
Side-by-side
tester/eventapi_tester.c
View file @
86d1df7a
...
...
@@ -93,7 +93,7 @@ static void subscribe_test_declined(void) {
CU_ASSERT_TRUE
(
wait_for_list
(
lcs
,
&
marie
->
stat
.
number_of_LinphoneSubscriptionOutgoingInit
,
1
,
1000
));
CU_ASSERT_TRUE
(
wait_for_list
(
lcs
,
&
pauline
->
stat
.
number_of_LinphoneSubscriptionIncomingReceived
,
1
,
1000
));
CU_ASSERT_TRUE
(
wait_for_list
(
lcs
,
&
marie
->
stat
.
number_of_LinphoneSubscriptionError
,
1
,
21000
));
/*yes flexisip
will
wait 20 secs in case of forking*/
CU_ASSERT_TRUE
(
wait_for_list
(
lcs
,
&
marie
->
stat
.
number_of_LinphoneSubscriptionError
,
1
,
21000
));
/*yes flexisip
may
wait 20 secs in case of forking*/
CU_ASSERT_TRUE
(
wait_for_list
(
lcs
,
&
pauline
->
stat
.
number_of_LinphoneSubscriptionTerminated
,
1
,
1000
));
linphone_core_manager_destroy
(
marie
);
...
...
tester/liblinphone_tester.c
View file @
86d1df7a
...
...
@@ -24,6 +24,7 @@
#include "CUnit/CUCurses.h"
#endif
static
LinphoneCore
*
configure_lc_from
(
LinphoneCoreVTable
*
v_table
,
const
char
*
path
,
const
char
*
file
);
static
test_suite_t
**
test_suite
=
NULL
;
static
int
nb_test_suites
=
0
;
...
...
@@ -34,7 +35,7 @@ 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"
;
...
...
@@ -82,63 +83,39 @@ void auth_info_requested(LinphoneCore *lc, const char *realm, const char *userna
}
LinphoneCore
*
create_lc_with_auth
(
unsigned
int
with_auth
)
{
LinphoneCoreVTable
v_table
;
LinphoneCore
*
lc
;
memset
(
&
v_table
,
0
,
sizeof
(
v_table
));
v_table
.
registration_state_changed
=
registration_state_changed
;
if
(
with_auth
)
{
v_table
.
auth_info_requested
=
auth_info_requested
;
}
lc
=
linphone_core_new
(
&
v_table
,
NULL
,
NULL
,
NULL
);
linphone_core_set_user_data
(
lc
,
&
global_stat
);
/* until we have good certificates on our test server... */
linphone_core_verify_server_certificates
(
lc
,
FALSE
);
/*to allow testing with 127.0.0.1*/
linphone_core_set_network_reachable
(
lc
,
TRUE
);
return
lc
;
}
void
reset_counters
(
stats
*
counters
)
{
memset
(
counters
,
0
,
sizeof
(
stats
));
}
LinphoneCore
*
configure_lc_from
(
LinphoneCoreVTable
*
v_table
,
const
char
*
path
,
const
char
*
file
,
int
proxy_count
)
{
static
LinphoneCore
*
configure_lc_from
(
LinphoneCoreVTable
*
v_table
,
const
char
*
path
,
const
char
*
file
)
{
LinphoneCore
*
lc
;
int
retry
=
0
;
stats
*
counters
;
char
filepath
[
256
];
char
ringpath
[
256
];
char
ringbackpath
[
256
];
char
rootcapath
[
256
];
char
dnsuserhostspath
[
256
];
sprintf
(
filepath
,
"%s/%s"
,
path
,
file
);
lc
=
linphone_core_new
(
v_table
,
NULL
,
filepath
,
NULL
);
linphone_core_set_user_data
(
lc
,
&
global_stat
);
counters
=
get_stats
(
lc
);
/* until we have good certificates on our test server...
linphone_core_verify_server_certificates(lc,FALSE);*/
sprintf
(
rootcapath
,
"%s/certificates/cacert.pem"
,
path
);
linphone_core_set_root_ca
(
lc
,
rootcapath
);
sprintf
(
dnsuserhostspath
,
"%s/%s"
,
path
,
userhostsfile
);
sal_set_dns_user_hosts_file
(
lc
->
sal
,
dnsuserhostspath
);
char
filepath
[
256
]
=
{
0
};
char
ringpath
[
256
]
=
{
0
};
char
ringbackpath
[
256
]
=
{
0
};
char
rootcapath
[
256
]
=
{
0
};
char
dnsuserhostspath
[
256
]
=
{
0
};
if
(
path
&&
file
){
sprintf
(
filepath
,
"%s/%s"
,
path
,
file
);
CU_ASSERT_TRUE_FATAL
(
ortp_file_exist
(
path
)
==
0
);
}
lc
=
linphone_core_new
(
v_table
,
NULL
,
*
filepath
!=
'\0'
?
filepath
:
NULL
,
NULL
);
sprintf
(
ringpath
,
"%s/%s"
,
path
,
"oldphone.wav"
);
sprintf
(
ringbackpath
,
"%s/%s"
,
path
,
"ringback.wav"
);
linphone_core_set_ring
(
lc
,
ringpath
);
linphone_core_set_ringback
(
lc
,
ringbackpath
);
if
(
path
){
sprintf
(
rootcapath
,
"%s/certificates/cacert.pem"
,
path
);
linphone_core_set_root_ca
(
lc
,
rootcapath
);
reset_counters
(
counters
);
/*CU_ASSERT_EQUAL(ms_list_size(linphone_core_get_proxy_config_list(lc)),proxy_count);*/
sprintf
(
dnsuserhostspath
,
"%s/%s"
,
path
,
userhostsfile
);
sal_set_dns_user_hosts_file
(
lc
->
sal
,
dnsuserhostspath
);
while
(
counters
->
number_of_LinphoneRegistrationOk
<
proxy_count
&&
retry
++
<
20
)
{
linphone_core_iterate
(
lc
);
ms_usleep
(
100000
);
sprintf
(
ringpath
,
"%s/%s"
,
path
,
"oldphone.wav"
);
sprintf
(
ringbackpath
,
"%s/%s"
,
path
,
"ringback.wav"
);
linphone_core_set_ring
(
lc
,
ringpath
);
linphone_core_set_ringback
(
lc
,
ringbackpath
);
}
CU_ASSERT_EQUAL
(
counters
->
number_of_LinphoneRegistrationOk
,
proxy_count
);
return
lc
;
}
...
...
@@ -193,8 +170,12 @@ LinphoneCoreManager *get_manager(LinphoneCore *lc){
LinphoneCoreManager
*
linphone_core_manager_new2
(
const
char
*
path
,
const
char
*
rc_file
,
int
check_for_proxies
)
{
LinphoneCoreManager
*
mgr
=
ms_new0
(
LinphoneCoreManager
,
1
);
LinphoneProxyConfig
*
proxy
;
memset
(
mgr
,
0
,
sizeof
(
LinphoneCoreManager
));
int
proxy_count
=
check_for_proxies
?
(
rc_file
?
1
:
0
)
:
0
;
int
retry
=
0
;
memset
(
mgr
,
0
,
sizeof
(
LinphoneCoreManager
));
mgr
->
v_table
.
registration_state_changed
=
registration_state_changed
;
mgr
->
v_table
.
auth_info_requested
=
auth_info_requested
;
mgr
->
v_table
.
call_state_changed
=
call_state_changed
;
mgr
->
v_table
.
text_received
=
text_message_received
;
mgr
->
v_table
.
message_received
=
message_received
;
...
...
@@ -204,9 +185,18 @@ LinphoneCoreManager* linphone_core_manager_new2(const char* path, const char* rc
mgr
->
v_table
.
info_received
=
info_message_received
;
mgr
->
v_table
.
subscription_state_changed
=
linphone_subscription_state_change
;
mgr
->
v_table
.
notify_received
=
linphone_notify_received
;
mgr
->
lc
=
configure_lc_from
(
&
mgr
->
v_table
,
path
,
rc_file
,
check_for_proxies
?
(
rc_file
?
1
:
0
)
:
0
);
enable_codec
(
mgr
->
lc
,
"PCMU"
,
8000
);
mgr
->
lc
=
configure_lc_from
(
&
mgr
->
v_table
,
path
,
rc_file
);
linphone_core_set_user_data
(
mgr
->
lc
,
mgr
);
reset_counters
(
&
mgr
->
stat
);
/*CU_ASSERT_EQUAL(ms_list_size(linphone_core_get_proxy_config_list(lc)),proxy_count);*/
while
(
mgr
->
stat
.
number_of_LinphoneRegistrationOk
<
proxy_count
&&
retry
++
<
20
)
{
linphone_core_iterate
(
mgr
->
lc
);
ms_usleep
(
100000
);
}
CU_ASSERT_EQUAL
(
mgr
->
stat
.
number_of_LinphoneRegistrationOk
,
proxy_count
);
enable_codec
(
mgr
->
lc
,
"PCMU"
,
8000
);
linphone_core_get_default_proxy
(
mgr
->
lc
,
&
proxy
);
if
(
proxy
)
{
mgr
->
identity
=
linphone_address_new
(
linphone_proxy_config_get_identity
(
proxy
));
...
...
@@ -219,6 +209,13 @@ LinphoneCoreManager* linphone_core_manager_new(const char* path, const char* rc_
return
linphone_core_manager_new2
(
path
,
rc_file
,
TRUE
);
}
void
linphone_core_manager_stop
(
LinphoneCoreManager
*
mgr
){
if
(
mgr
->
lc
)
{
linphone_core_destroy
(
mgr
->
lc
);
mgr
->
lc
=
NULL
;
}
}
void
linphone_core_manager_destroy
(
LinphoneCoreManager
*
mgr
)
{
if
(
mgr
->
lc
)
linphone_core_destroy
(
mgr
->
lc
);
if
(
mgr
->
identity
)
linphone_address_destroy
(
mgr
->
identity
);
...
...
tester/liblinphone_tester.h
View file @
86d1df7a
...
...
@@ -158,6 +158,7 @@ typedef struct _LinphoneCoreManager {
LinphoneCoreManager
*
linphone_core_manager_new2
(
const
char
*
path
,
const
char
*
rc_file
,
int
check_for_proxies
);
LinphoneCoreManager
*
linphone_core_manager_new
(
const
char
*
path
,
const
char
*
rc_file
);
void
linphone_core_manager_stop
(
LinphoneCoreManager
*
mgr
);
void
linphone_core_manager_destroy
(
LinphoneCoreManager
*
mgr
);
void
reset_counters
(
stats
*
counters
);
...
...
@@ -174,9 +175,7 @@ void auth_info_requested(LinphoneCore *lc, const char *realm, const char *userna
void
linphone_subscription_state_change
(
LinphoneCore
*
lc
,
LinphoneEvent
*
ev
,
LinphoneSubscriptionState
state
);
void
linphone_notify_received
(
LinphoneCore
*
lc
,
LinphoneEvent
*
lev
,
const
char
*
eventname
,
const
LinphoneContent
*
content
);
LinphoneCore
*
create_lc_with_auth
(
unsigned
int
with_auth
)
;
LinphoneAddress
*
create_linphone_address
(
const
char
*
domain
);
LinphoneCore
*
configure_lc_from
(
LinphoneCoreVTable
*
v_table
,
const
char
*
path
,
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
);
...
...
tester/register_tester.c
View file @
86d1df7a
...
...
@@ -22,10 +22,22 @@
#include "private.h"
#include "liblinphone_tester.h"
static
LinphoneCoreManager
*
create_lcm_with_auth
(
unsigned
int
with_auth
)
{
LinphoneCoreManager
*
mgr
=
linphone_core_manager_new
(
NULL
,
NULL
);
if
(
with_auth
)
{
mgr
->
lc
->
vtable
.
auth_info_requested
=
auth_info_requested
;
}
/* until we have good certificates on our test server... */
linphone_core_verify_server_certificates
(
mgr
->
lc
,
FALSE
);
/*to allow testing with 127.0.0.1*/
linphone_core_set_network_reachable
(
mgr
->
lc
,
TRUE
);
return
mgr
;
}
static
LinphoneCore
*
create_lc
()
{
return
create_lc_with_auth
(
0
);
static
LinphoneCoreManager
*
create_lcm
()
{
return
create_lcm_with_auth
(
0
);
}
void
registration_state_changed
(
struct
_LinphoneCore
*
lc
,
LinphoneProxyConfig
*
cfg
,
LinphoneRegistrationState
cstate
,
const
char
*
message
){
...
...
@@ -105,132 +117,134 @@ static void register_with_refresh_base(LinphoneCore* lc, bool_t refresh,const ch
register_with_refresh_base_2
(
lc
,
refresh
,
domain
,
route
,
FALSE
,
transport
);
}
static
void
register_with_refresh
(
LinphoneCore
*
lc
,
bool_t
refresh
,
const
char
*
domain
,
const
char
*
route
)
{
stats
*
counters
=
get_stats
(
lc
)
;
register_with_refresh_base
(
lc
,
refresh
,
domain
,
route
);
linphone_core_
destroy
(
lc
);
static
void
register_with_refresh
(
LinphoneCore
Manager
*
lc
m
,
bool_t
refresh
,
const
char
*
domain
,
const
char
*
route
)
{
stats
*
counters
=
&
lcm
->
stat
;
register_with_refresh_base
(
lcm
->
lc
,
refresh
,
domain
,
route
);
linphone_core_
manager_stop
(
lc
m
);
CU_ASSERT_EQUAL
(
counters
->
number_of_LinphoneRegistrationCleared
,
1
);
}
static
void
register_with_refresh_with_send_error
()
{
int
retry
=
0
;
LinphoneCore
*
lc
=
create_lc_with_auth
(
1
);
stats
*
counters
=
get_stats
(
lc
)
;
LinphoneCore
Manager
*
lc
m
=
create_lc
m
_with_auth
(
1
);
stats
*
counters
=
&
lcm
->
stat
;
LinphoneAuthInfo
*
info
=
linphone_auth_info_new
(
test_username
,
NULL
,
test_password
,
NULL
,
auth_domain
);
/*create authentication structure from identity*/
char
route
[
256
];
sprintf
(
route
,
"sip:%s"
,
test_route
);
linphone_core_add_auth_info
(
lc
,
info
);
/*add authentication info to LinphoneCore*/
linphone_core_add_auth_info
(
lcm
->
lc
,
info
);
/*add authentication info to LinphoneCore*/
register_with_refresh_base
(
lc
,
TRUE
,
auth_domain
,
route
);
register_with_refresh_base
(
lcm
->
lc
,
TRUE
,
auth_domain
,
route
);
/*simultate a network error*/
sal_set_send_error
(
lc
->
sal
,
-
1
);
sal_set_send_error
(
lcm
->
lc
->
sal
,
-
1
);
while
(
counters
->
number_of_LinphoneRegistrationProgress
<
2
&&
retry
++
<
20
)
{
linphone_core_iterate
(
lc
);
linphone_core_iterate
(
lcm
->
lc
);
ms_usleep
(
100000
);
}
CU_ASSERT_EQUAL
(
counters
->
number_of_LinphoneRegistrationFailed
,
0
);
CU_ASSERT_EQUAL
(
counters
->
number_of_LinphoneRegistrationProgress
,
2
);
linphone_core_destroy
(
lc
);
CU_ASSERT_EQUAL
(
counters
->
number_of_LinphoneRegistrationCleared
,
0
);
linphone_core_manager_destroy
(
lcm
);
}
static
void
simple_register
(){
LinphoneCore
*
lc
=
create_lc
();
stats
*
counters
=
get_stats
(
lc
)
;
register_with_refresh
(
lc
,
FALSE
,
NULL
,
NULL
);
LinphoneCore
Manager
*
lc
m
=
create_lc
m
();
stats
*
counters
=
&
lcm
->
stat
;
register_with_refresh
(
lc
m
,
FALSE
,
NULL
,
NULL
);
CU_ASSERT_EQUAL
(
counters
->
number_of_auth_info_requested
,
0
);
linphone_core_manager_destroy
(
lcm
);
}
/*take care of min expires configuration from server*/
static
void
simple_register_with_refresh
()
{
LinphoneCore
*
lc
=
create_lc
();
stats
*
counters
=
get_stats
(
lc
)
;
register_with_refresh
(
lc
,
TRUE
,
NULL
,
NULL
);
LinphoneCore
Manager
*
lc
m
=
create_lc
m
();
stats
*
counters
=
&
lcm
->
stat
;
register_with_refresh
(
lc
m
,
TRUE
,
NULL
,
NULL
);
CU_ASSERT_EQUAL
(
counters
->
number_of_auth_info_requested
,
0
);
linphone_core_manager_destroy
(
lcm
);
}
static
void
simple_auth_register_with_refresh
()
{
LinphoneCore
*
lc
=
create_lc_with_auth
(
1
);
stats
*
counters
=
get_stats
(
lc
)
;
LinphoneCore
Manager
*
lc
m
=
create_lc
m
_with_auth
(
1
);
stats
*
counters
=
&
lcm
->
stat
;
char
route
[
256
];
sprintf
(
route
,
"sip:%s"
,
test_route
);
register_with_refresh
(
lc
,
TRUE
,
auth_domain
,
route
);
register_with_refresh
(
lc
m
,
TRUE
,
auth_domain
,
route
);
CU_ASSERT_EQUAL
(
counters
->
number_of_auth_info_requested
,
1
);
linphone_core_manager_destroy
(
lcm
);
}
static
void
simple_tcp_register
(){
char
route
[
256
];
LinphoneCore
*
lc
;
LinphoneCore
Manager
*
lc
m
;
sprintf
(
route
,
"sip:%s;transport=tcp"
,
test_route
);
lc
=
create_lc
();
register_with_refresh
(
lc
,
FALSE
,
test_domain
,
route
);
lcm
=
create_lcm
();
register_with_refresh
(
lcm
,
FALSE
,
test_domain
,
route
);
linphone_core_manager_destroy
(
lcm
);
}
static
void
simple_tcp_register_compatibility_mode
(){
char
route
[
256
];
LinphoneCore
*
lc
;
LinphoneCore
Manager
*
lc
m
;
LCSipTransports
transport
=
{
0
,
5070
,
0
,
0
};
sprintf
(
route
,
"sip:%s"
,
test_route
);
lc
=
create_lc
();
register_with_refresh_base_2
(
lc
,
FALSE
,
test_domain
,
route
,
FALSE
,
transport
);
lcm
=
create_lcm
();
register_with_refresh_base_2
(
lcm
->
lc
,
FALSE
,
test_domain
,
route
,
FALSE
,
transport
);
linphone_core_manager_destroy
(
lcm
);
}
static
void
simple_tls_register
(){
char
route
[
256
];
LinphoneCore
*
lc
;
LinphoneCore
Manager
*
lc
m
;
sprintf
(
route
,
"sip:%s;transport=tls"
,
test_route
);
lc
=
create_lc
();
register_with_refresh
(
lc
,
FALSE
,
test_domain
,
route
);
lcm
=
create_lcm
();
register_with_refresh
(
lcm
,
FALSE
,
test_domain
,
route
);
linphone_core_manager_destroy
(
lcm
);
}
static
void
simple_authenticated_register
(){
stats
*
counters
;
LinphoneCore
*
lc
=
create_lc
();
LinphoneCore
Manager
*
lc
m
=
create_lc
m
();
LinphoneAuthInfo
*
info
=
linphone_auth_info_new
(
test_username
,
NULL
,
test_password
,
NULL
,
auth_domain
);
/*create authentication structure from identity*/
char
route
[
256
];
sprintf
(
route
,
"sip:%s"
,
test_route
);
linphone_core_add_auth_info
(
lc
,
info
);
/*add authentication info to LinphoneCore*/
counters
=
get_stats
(
lc
)
;
register_with_refresh
(
lc
,
FALSE
,
auth_domain
,
route
);
linphone_core_add_auth_info
(
lcm
->
lc
,
info
);
/*add authentication info to LinphoneCore*/
counters
=
&
lcm
->
stat
;
register_with_refresh
(
lc
m
,
FALSE
,
auth_domain
,
route
);
CU_ASSERT_EQUAL
(
counters
->
number_of_auth_info_requested
,
0
);
}
static
void
ha1_authenticated_register
(){
stats
*
counters
;
LinphoneCore
*
lc
=
create_lc
();
LinphoneCore
Manager
*
lc
m
=
create_lc
m
();
char
ha1
[
33
];
LinphoneAuthInfo
*
info
;
char
route
[
256
];
sal_auth_compute_ha1
(
test_username
,
auth_domain
,
test_password
,
ha1
);
info
=
linphone_auth_info_new
(
test_username
,
NULL
,
NULL
,
ha1
,
auth_domain
);
/*create authentication structure from identity*/
sprintf
(
route
,
"sip:%s"
,
test_route
);
linphone_core_add_auth_info
(
lc
,
info
);
/*add authentication info to LinphoneCore*/
counters
=
get_stats
(
lc
)
;
register_with_refresh
(
lc
,
FALSE
,
auth_domain
,
route
);
linphone_core_add_auth_info
(
lcm
->
lc
,
info
);
/*add authentication info to LinphoneCore*/
counters
=
&
lcm
->
stat
;
register_with_refresh
(
lc
m
,
FALSE
,
auth_domain
,
route
);
CU_ASSERT_EQUAL
(
counters
->
number_of_auth_info_requested
,
0
);
}
static
void
authenticated_register_with_no_initial_credentials
(){
LinphoneCoreVTable
v_table
;
LinphoneCore
*
lc
;
stats
stat
;
LinphoneCoreManager
*
mgr
;
stats
*
counters
;
char
route
[
256
];
sprintf
(
route
,
"sip:%s"
,
test_route
);
memset
(
&
v_table
,
0
,
sizeof
(
v_table
));
v_table
.
registration_state_changed
=
registration_state_changed
;
v_table
.
auth_info_requested
=
auth_info_requested
;
lc
=
linphone_core_new
(
&
v_table
,
NULL
,
NULL
,
NULL
);
linphone_core_set_user_data
(
lc
,
&
stat
);
counters
=
get_stats
(
lc
);
mgr
=
linphone_core_manager_new
(
NULL
,
NULL
);
counters
=
get_stats
(
mgr
->
lc
);
counters
->
number_of_auth_info_requested
=
0
;
register_with_refresh
(
lc
,
FALSE
,
auth_domain
,
route
);
register_with_refresh
(
mgr
,
FALSE
,
auth_domain
,
route
);
CU_ASSERT_EQUAL
(
counters
->
number_of_auth_info_requested
,
1
);
linphone_core_manager_destroy
(
mgr
);
}
static
void
auth_info_requested2
(
LinphoneCore
*
lc
,
const
char
*
realm
,
const
char
*
username
)
{
...
...
@@ -243,74 +257,65 @@ static void auth_info_requested2(LinphoneCore *lc, const char *realm, const char
}
static
void
authenticated_register_with_late_credentials
(){
LinphoneCoreVTable
v_table
;
LinphoneCore
*
lc
;
stats
stat
;
LinphoneCoreManager
*
mgr
;
stats
*
counters
;
LCSipTransports
transport
=
{
5070
,
5070
,
0
,
5071
};
char
route
[
256
];
sprintf
(
route
,
"sip:%s"
,
test_route
);
memset
(
&
v_table
,
0
,
sizeof
(
v_table
));
v_table
.
registration_state_changed
=
registration_state_changed
;
v_table
.
auth_info_requested
=
auth_info_requested2
;
lc
=
linphone_core_new
(
&
v_table
,
NULL
,
NULL
,
NULL
);
linphone_core_set_user_data
(
lc
,
&
stat
);
counters
=
get_stats
(
lc
);
register_with_refresh_base_2
(
lc
,
FALSE
,
auth_domain
,
route
,
TRUE
,
transport
);
mgr
=
linphone_core_manager_new
(
NULL
,
NULL
);
mgr
->
lc
->
vtable
.
auth_info_requested
=
auth_info_requested2
;
counters
=
get_stats
(
mgr
->
lc
);
register_with_refresh_base_2
(
mgr
->
lc
,
FALSE
,
auth_domain
,
route
,
TRUE
,
transport
);
CU_ASSERT_EQUAL
(
counters
->
number_of_auth_info_requested
,
1
);
linphone_core_destroy
(
lc
);
linphone_core_
manager_
destroy
(
mgr
);
}
static
void
authenticated_register_with_wrong_credentials
(){
LinphoneCoreVTable
v_table
;
LinphoneCore
*
lc
;
stats
stat
;
LinphoneCoreManager
*
mgr
;
stats
*
counters
;
LCSipTransports
transport
=
{
5070
,
5070
,
0
,
5071
};
LinphoneAuthInfo
*
info
=
linphone_auth_info_new
(
test_username
,
NULL
,
"wrong passwd"
,
NULL
,
auth_domain
);
/*create authentication structure from identity*/
char
route
[
256
];
sprintf
(
route
,
"sip:%s"
,
test_route
);
memset
(
&
v_table
,
0
,
sizeof
(
v_table
));
v_table
.
registration_state_changed
=
registration_state_changed
;
v_table
.
auth_info_requested
=
auth_info_requested2
;
lc
=
linphone_core_new
(
&
v_table
,
NULL
,
NULL
,
NULL
);
linphone_core_set_user_data
(
lc
,
&
stat
);
linphone_core_add_auth_info
(
lc
,
info
);
/*add wrong authentication info to LinphoneCore*/
counters
=
get_stats
(
lc
);
register_with_refresh_base_2
(
lc
,
TRUE
,
auth_domain
,
route
,
TRUE
,
transport
);
mgr
=
linphone_core_manager_new
(
NULL
,
NULL
);
mgr
->
lc
->
vtable
.
auth_info_requested
=
auth_info_requested2
;
linphone_core_add_auth_info
(
mgr
->
lc
,
info
);
/*add wrong authentication info to LinphoneCore*/
counters
=
get_stats
(
mgr
->
lc
);
register_with_refresh_base_2
(
mgr
->
lc
,
TRUE
,
auth_domain
,
route
,
TRUE
,
transport
);
CU_ASSERT_EQUAL
(
counters
->
number_of_auth_info_requested
,
1
);
linphone_core_destroy
(
lc
);
linphone_core_
manager_
destroy
(
mgr
);
}
static
LinphoneCore
*
configure_lc
(
LinphoneCoreVTable
*
v_table
)
{
return
configure_lc_from
(
v_table
,
liblinphone_tester_file_prefix
,
"multi_account_lrc"
,
3
);
static
LinphoneCoreManager
*
configure_lcm
(
void
)
{
LinphoneCoreManager
*
mgr
=
linphone_core_manager_new
(
liblinphone_tester_file_prefix
,
"multi_account_lrc"
);
stats
*
counters
=&
mgr
->
stat
;
CU_ASSERT_TRUE
(
wait_for
(
mgr
->
lc
,
mgr
->
lc
,
&
counters
->
number_of_LinphoneRegistrationOk
,
ms_list_size
(
linphone_core_get_proxy_config_list
(
mgr
->
lc
))));
return
mgr
;
}
static
void
multiple_proxy
(){
LinphoneCoreVTable
v_table
;
LinphoneCore
*
lc
;
memset
(
&
v_table
,
0
,
sizeof
(
LinphoneCoreVTable
));
v_table
.
registration_state_changed
=
registration_state_changed
;
lc
=
configure_lc
(
&
v_table
);
linphone_core_destroy
(
lc
);
LinphoneCoreManager
*
mgr
=
configure_lcm
();
linphone_core_manager_destroy
(
mgr
);
}
static
void
network_state_change
(){
LinphoneCoreVTable
v_table
;
LinphoneCore
*
lc
;
int
register_ok
;
stats
*
counters
;
memset
(
&
v_table
,
0
,
sizeof
(
LinphoneCoreVTable
));
v_table
.
registration_state_changed
=
registration_state_changed
;
lc
=
configure_lc
(
&
v_table
);
stats
*
counters
;
LinphoneCoreManager
*
mgr
=
configure_lcm
();
LinphoneCore
*
lc
=
mgr
->
lc
;
counters
=
get_stats
(
lc
);
register_ok
=
counters
->
number_of_LinphoneRegistrationOk
;
linphone_core_set_network_reachable
(
lc
,
FALSE
);
CU_ASSERT_TRUE
(
wait_for
(
lc
,
lc
,
&
counters
->
number_of_LinphoneRegistrationNone
,
register_ok
));
linphone_core_set_network_reachable
(
lc
,
TRUE
);
wait_for
(
lc
,
lc
,
&
counters
->
number_of_LinphoneRegistrationOk
,
2
*
register_ok
);
linphone_core_destroy
(
lc
);
linphone_core_
manager_
destroy
(
mgr
);
}
static
int
get_number_of_udp_proxy
(
const
LinphoneCore
*
lc
)
{
int
number_of_udp_proxy
=
0
;
...
...
@@ -324,7 +329,7 @@ static int get_number_of_udp_proxy(const LinphoneCore* lc) {
return
number_of_udp_proxy
;
}
static
void
transport_change
(){
LinphoneCore
VTable
v_table
;
LinphoneCore
Manager
*
mgr
;
LinphoneCore
*
lc
;
int
register_ok
;
stats
*
counters
;
...
...
@@ -333,9 +338,9 @@ static void transport_change(){
int
number_of_udp_proxy
=
0
;
int
total_number_of_proxies
;
memset
(
&
sip_tr
,
0
,
sizeof
(
sip_tr
));
memset
(
&
v_table
,
0
,
sizeof
(
LinphoneCoreVTable
));
v_table
.
registration_state_changed
=
registration_state_changed
;
lc
=
configure_lc
(
&
v_table
)
;
mgr
=
configure_lcm
()
;
lc
=
mgr
->
lc
;
counters
=
get_stats
(
lc
);
register_ok
=
counters
->
number_of_LinphoneRegistrationOk
;
...
...
@@ -351,19 +356,19 @@ static void transport_change(){
CU_ASSERT_TRUE
(
wait_for
(
lc
,
lc
,
&
counters
->
number_of_LinphoneRegistrationFailed
,
total_number_of_proxies
-
number_of_udp_proxy
));
linphone_core_destroy
(
lc
);
linphone_core_
manager_
destroy
(
mgr
);
}
static
void
io_recv_error
(){
LinphoneCore
VTable
v_table
;
LinphoneCore
Manager
*
mgr
;
LinphoneCore
*
lc
;
int
register_ok
;
stats
*
counters
;
int
number_of_udp_proxy
=
0
;
memset
(
&
v_table
,
0
,
sizeof
(
LinphoneCoreVTable
));
v_table
.
registration_state_changed
=
registration_state_changed
;
lc
=
configure_lc
(
&
v_table
)
;
mgr
=
configure_lcm
()
;
lc
=
mgr
->
lc
;
counters
=
get_stats
(
lc
);
register_ok
=
counters
->
number_of_LinphoneRegistrationOk
;
number_of_udp_proxy
=
get_number_of_udp_proxy
(
lc
);
...
...
@@ -374,21 +379,21 @@ static void io_recv_error(){
sal_set_recv_error
(
lc
->
sal
,
1
);
/*reset*/
linphone_core_destroy
(
lc
);
linphone_core_
manager_
destroy
(
mgr
);
}
static
void
io_recv_error_without_active_register
(){
LinphoneCore
VTable
v_table
;
LinphoneCore
Manager
*
mgr
;
LinphoneCore
*
lc
;
int
register_ok
;
stats
*
counters
;
int
number_of_udp_proxy
=
0
;
MSList
*
proxys
;
memset
(
&
v_table
,
0
,
sizeof
(
LinphoneCoreVTable
));
v_table
.
registration_state_changed
=
registration_state_changed
;
lc
=
configure_lc
(
&
v_table
);
mgr
=
configure_lcm
();
lc
=
mgr
->
lc
;
counters
=
get_stats
(
lc
);
register_ok
=
counters
->
number_of_LinphoneRegistrationOk
;
number_of_udp_proxy
=
get_number_of_udp_proxy
(
lc
);
...
...
@@ -410,63 +415,52 @@ static void io_recv_error_without_active_register(){
sal_set_recv_error
(
lc
->
sal
,
1
);
/*reset*/
linphone_core_destroy
(
lc
);
linphone_core_
manager_
destroy
(
mgr
);
}
static
void
tls_certificate_failure
(){
LinphoneCoreVTable
v_table
;
LinphoneCore
*
lc
;
stats
stat
;
LinphoneCoreManager
*
mgr
;
LinphoneCore
*
lc
;
char
rootcapath
[
256
];
memset
(
&
v_table
,
0
,
sizeof
(
v_table
));
reset_counters
(
&
stat
);
v_table
.
registration_state_changed
=
registration_state_changed
;
lc
=
configure_lc_from
(
&
v_table
,
liblinphone_tester_file_prefix
,
"pauline_rc"
,
0
);
linphone_core_set_user_data
(
lc
,
&
stat
);
mgr
=
linphone_core_manager_new2
(
liblinphone_tester_file_prefix
,
"pauline_rc"
,
FALSE
);
lc
=
mgr
->
lc
;
snprintf
(
rootcapath
,
sizeof
(
rootcapath
),
"%s/certificates/agent.pem"
,
liblinphone_tester_file_prefix
);
/*bad root ca*/
linphone_core_set_root_ca
(
lc
,
rootcapath
);
linphone_core_set_root_ca
(
mgr
->
lc
,
rootcapath
);
linphone_core_set_network_reachable
(
lc
,
TRUE
);
CU_ASSERT_TRUE
(
wait_for
(
lc
,
lc
,
&
stat
.
number_of_LinphoneRegistrationFailed
,
1
));
linphone_core_set_root_ca
(
lc
,
NULL
);
/*no root ca*/
linphone_core_refresh_registers
(
lc
);
CU_ASSERT_TRUE
(
wait_for
(
lc
,
lc
,
&
stat
.
number_of_LinphoneRegistrationFailed
,
2
));
CU_ASSERT_TRUE
(
wait_for
(
mgr
->
lc
,
mgr
->
lc
,
&
mgr
->
stat
.
number_of_LinphoneRegistrationFailed
,
1
));
linphone_core_set_root_ca
(
mgr
->
lc
,
NULL
);
/*no root ca*/