summaryrefslogtreecommitdiff
path: root/auto_tests/toxav_many_test.c
diff options
context:
space:
mode:
authormannol <eniz_vukovic@hotmail.com>2014-11-18 00:46:46 +0100
committermannol <eniz_vukovic@hotmail.com>2014-11-18 00:46:46 +0100
commit386c9748d48d3bb4513e8e5c32e2b30a4d6a00d4 (patch)
tree55d0fb2e9fb6e1149317b9de355c28dd86c57014 /auto_tests/toxav_many_test.c
parent4e6f993e7d22865ee2ac90bd7dd3ff25b078c55c (diff)
av refactor
Diffstat (limited to 'auto_tests/toxav_many_test.c')
-rw-r--r--auto_tests/toxav_many_test.c118
1 files changed, 53 insertions, 65 deletions
diff --git a/auto_tests/toxav_many_test.c b/auto_tests/toxav_many_test.c
index 4ed79e22..64795b8d 100644
--- a/auto_tests/toxav_many_test.c
+++ b/auto_tests/toxav_many_test.c
@@ -11,6 +11,8 @@
11#include <time.h> 11#include <time.h>
12#include <assert.h> 12#include <assert.h>
13 13
14#include <vpx/vpx_image.h>
15
14#include "../toxcore/tox.h" 16#include "../toxcore/tox.h"
15#include "../toxcore/logger.h" 17#include "../toxcore/logger.h"
16#include "../toxcore/crypto_core.h" 18#include "../toxcore/crypto_core.h"
@@ -32,7 +34,7 @@ typedef enum _CallStatus {
32 Ringing, 34 Ringing,
33 Ended, 35 Ended,
34 Rejected, 36 Rejected,
35 Cancel 37 Canceled
36 38
37} CallStatus; 39} CallStatus;
38 40
@@ -67,66 +69,49 @@ void accept_friend_request(Tox *m, const uint8_t *public_key, const uint8_t *dat
67/******************************************************************************/ 69/******************************************************************************/
68void callback_recv_invite ( void *av, int32_t call_index, void *_arg ) 70void callback_recv_invite ( void *av, int32_t call_index, void *_arg )
69{ 71{
70 /* 72 Status *cast = _arg;
71 Status *cast = _arg; 73 cast->calls[call_index].Callee.status = Ringing;
72
73 cast->calls[call_index].Callee.status = Ringing;*/
74} 74}
75void callback_recv_ringing ( void *av, int32_t call_index, void *_arg ) 75void callback_recv_ringing ( void *av, int32_t call_index, void *_arg )
76{ 76{
77 Status *cast = _arg; 77 Status *cast = _arg;
78 cast->calls[call_index].Caller.status = Ringing; 78 cast->calls[call_index].Caller.status = Ringing;
79} 79}
80void callback_recv_starting ( void *av, int32_t call_index, void *_arg ) 80void callback_call_ended ( void *av, int32_t call_index, void *_arg )
81{
82 Status *cast = _arg;
83 cast->calls[call_index].Caller.status = InCall;
84}
85void callback_recv_ending ( void *av, int32_t call_index, void *_arg )
86{ 81{
87 Status *cast = _arg; 82 Status *cast = _arg;
88 cast->calls[call_index].Caller.status = Ended; 83 if (av == cast->calls[call_index].Caller.av)
84 cast->calls[call_index].Caller.status = Ended;
85 else
86 cast->calls[call_index].Callee.status = Ended;
89} 87}
90
91void callback_call_started ( void *av, int32_t call_index, void *_arg ) 88void callback_call_started ( void *av, int32_t call_index, void *_arg )
92{ 89{
93 /* 90 Status *cast = _arg;
94 Status *cast = _arg; 91 if (av == cast->calls[call_index].Caller.av)
95 92 cast->calls[call_index].Caller.status = InCall;
96 cast->calls[call_index].Callee.status = InCall;*/ 93 else
94 cast->calls[call_index].Callee.status = InCall;
97} 95}
98void callback_call_canceled ( void *av, int32_t call_index, void *_arg ) 96void callback_call_canceled ( void *av, int32_t call_index, void *_arg )
99{ 97{
100 /*
101 Status *cast = _arg;
102
103 cast->calls[call_index].Callee.status = Cancel;*/
104} 98}
105void callback_call_rejected ( void *av, int32_t call_index, void *_arg ) 99void callback_call_rejected ( void *av, int32_t call_index, void *_arg )
106{ 100{
107 Status *cast = _arg; 101 Status *cast = _arg;
108 cast->calls[call_index].Caller.status = Rejected; 102 cast->calls[call_index].Caller.status = Rejected;
109} 103}
110void callback_call_ended ( void *av, int32_t call_index, void *_arg )
111{
112 /*
113 Status *cast = _arg;
114
115 cast->calls[call_index].Callee.status = Ended;*/
116}
117 104
118void callback_requ_timeout ( void *av, int32_t call_index, void *_arg ) 105void callback_requ_timeout ( void *av, int32_t call_index, void *_arg )
119{ 106{
120 //ck_assert_msg(0, "No answer!"); 107 ck_assert_msg(0, "No answer!");
121} 108}
122 109
123static void callback_audio(ToxAv *av, int32_t call_index, int16_t *data, int length, void *userdata) 110void callback_audio (void* agent, int32_t call_idx, const int16_t* PCM, uint16_t size, void* data)
124{ 111{}
125}
126 112
127static void callback_video(ToxAv *av, int32_t call_index, vpx_image_t *img, void *userdata) 113void callback_video (void* agent, int32_t call_idx, const vpx_image_t* img, void* data)
128{ 114{}
129}
130 115
131void register_callbacks(ToxAv *av, void *data) 116void register_callbacks(ToxAv *av, void *data)
132{ 117{
@@ -135,16 +120,12 @@ void register_callbacks(ToxAv *av, void *data)
135 toxav_register_callstate_callback(av, callback_call_rejected, av_OnReject, data); 120 toxav_register_callstate_callback(av, callback_call_rejected, av_OnReject, data);
136 toxav_register_callstate_callback(av, callback_call_ended, av_OnEnd, data); 121 toxav_register_callstate_callback(av, callback_call_ended, av_OnEnd, data);
137 toxav_register_callstate_callback(av, callback_recv_invite, av_OnInvite, data); 122 toxav_register_callstate_callback(av, callback_recv_invite, av_OnInvite, data);
138
139 toxav_register_callstate_callback(av, callback_recv_ringing, av_OnRinging, data); 123 toxav_register_callstate_callback(av, callback_recv_ringing, av_OnRinging, data);
140 toxav_register_callstate_callback(av, callback_recv_starting, av_OnStarting, data);
141 toxav_register_callstate_callback(av, callback_recv_ending, av_OnEnding, data);
142
143 toxav_register_callstate_callback(av, callback_requ_timeout, av_OnRequestTimeout, data); 124 toxav_register_callstate_callback(av, callback_requ_timeout, av_OnRequestTimeout, data);
144 125
145 126
146 toxav_register_audio_recv_callback(av, callback_audio, NULL); 127 toxav_register_audio_callback(callback_audio, NULL);
147 toxav_register_video_recv_callback(av, callback_video, NULL); 128 toxav_register_video_callback(callback_video, NULL);
148} 129}
149/*************************************************************************************************/ 130/*************************************************************************************************/
150 131
@@ -193,14 +174,14 @@ void *in_thread_call (void *arg)
193 call_print(call_idx, "Sending rtp ..."); 174 call_print(call_idx, "Sending rtp ...");
194 175
195 c_sleep(1000); /* We have race condition here */ 176 c_sleep(1000); /* We have race condition here */
196 toxav_prepare_transmission(this_call->Callee.av, 0, 3, 0, 1); 177 toxav_prepare_transmission(this_call->Callee.av, 0, 1);
197 toxav_prepare_transmission(this_call->Caller.av, call_idx, 3, 0, 1); 178 toxav_prepare_transmission(this_call->Caller.av, call_idx, 1);
198 179
199 int payload_size = toxav_prepare_audio_frame(this_call->Caller.av, call_idx, prepared_payload, RTP_PAYLOAD_SIZE, 180 int payload_size = toxav_prepare_audio_frame(this_call->Caller.av, call_idx, prepared_payload, RTP_PAYLOAD_SIZE,
200 sample_payload, frame_size); 181 sample_payload, frame_size);
201 182
202 if ( payload_size < 0 ) { 183 if ( payload_size < 0 ) {
203 //ck_assert_msg ( 0, "Failed to encode payload" ); 184 ck_assert_msg ( 0, "Failed to encode payload" );
204 } 185 }
205 186
206 187
@@ -253,8 +234,8 @@ void *in_thread_call (void *arg)
253 234
254 235
255 236
256// START_TEST(test_AV_three_calls) 237START_TEST(test_AV_three_calls)
257void test_AV_three_calls() 238// void test_AV_three_calls()
258{ 239{
259 long long unsigned int cur_time = time(NULL); 240 long long unsigned int cur_time = time(NULL);
260 Tox *bootstrap_node = tox_new(0); 241 Tox *bootstrap_node = tox_new(0);
@@ -266,12 +247,12 @@ void test_AV_three_calls()
266 }; 247 };
267 248
268 249
269 //ck_assert_msg(bootstrap_node != NULL, "Failed to create bootstrap node"); 250 ck_assert_msg(bootstrap_node != NULL, "Failed to create bootstrap node");
270 251
271 int i = 0; 252 int i = 0;
272 253
273 for (; i < 3; i ++) { 254 for (; i < 3; i ++) {
274 //ck_assert_msg(callees[i] != NULL, "Failed to create 3 tox instances"); 255 ck_assert_msg(callees[i] != NULL, "Failed to create 3 tox instances");
275 } 256 }
276 257
277 for ( i = 0; i < 3; i ++ ) { 258 for ( i = 0; i < 3; i ++ ) {
@@ -281,7 +262,7 @@ void test_AV_three_calls()
281 tox_get_address(callees[i], address); 262 tox_get_address(callees[i], address);
282 263
283 int test = tox_add_friend(caller, address, (uint8_t *)"gentoo", 7); 264 int test = tox_add_friend(caller, address, (uint8_t *)"gentoo", 7);
284 //ck_assert_msg( test == i, "Failed to add friend error code: %i", test); 265 ck_assert_msg( test == i, "Failed to add friend error code: %i", test);
285 } 266 }
286 267
287 uint8_t off = 1; 268 uint8_t off = 1;
@@ -349,6 +330,12 @@ void test_AV_three_calls()
349 tox_do(callees[0]); 330 tox_do(callees[0]);
350 tox_do(callees[1]); 331 tox_do(callees[1]);
351 tox_do(callees[2]); 332 tox_do(callees[2]);
333
334 for ( i = 0; i < 3; i++ )
335 toxav_do(status_control.calls[0].Caller.av);
336 toxav_do(status_control.calls[0].Callee.av);
337 toxav_do(status_control.calls[1].Callee.av);
338 toxav_do(status_control.calls[2].Callee.av);
352 339
353 pthread_mutex_unlock(&muhmutex); 340 pthread_mutex_unlock(&muhmutex);
354 c_sleep(20); 341 c_sleep(20);
@@ -366,7 +353,7 @@ void test_AV_three_calls()
366 tox_kill(callees[i]); 353 tox_kill(callees[i]);
367 354
368} 355}
369// END_TEST 356END_TEST
370 357
371 358
372 359
@@ -382,21 +369,22 @@ Suite *tox_suite(void)
382 369
383 return s; 370 return s;
384} 371}
372
385int main(int argc, char *argv[]) 373int main(int argc, char *argv[])
386{ 374{
387// Suite *tox = tox_suite(); 375 Suite *tox = tox_suite();
388// SRunner *test_runner = srunner_create(tox); 376 SRunner *test_runner = srunner_create(tox);
389// 377
390// setbuf(stdout, NULL); 378 setbuf(stdout, NULL);
391// 379
392// srunner_run_all(test_runner, CK_NORMAL); 380 srunner_run_all(test_runner, CK_NORMAL);
393// int number_failed = srunner_ntests_failed(test_runner); 381 int number_failed = srunner_ntests_failed(test_runner);
394// 382
395// srunner_free(test_runner); 383 srunner_free(test_runner);
396// 384
397// return number_failed; 385 return number_failed;
398 386
399 test_AV_three_calls(); 387// test_AV_three_calls();
400 388
401 return 0; 389// return 0;
402} 390}