summaryrefslogtreecommitdiff
path: root/auto_tests/toxav_many_test.c
diff options
context:
space:
mode:
authorirungentoo <irungentoo@gmail.com>2014-11-24 20:24:59 -0500
committerirungentoo <irungentoo@gmail.com>2014-11-24 20:24:59 -0500
commit279c33c01a9ca721b986aabf72fa982936b20c9e (patch)
tree4c0d289c6d74788989024485d44a4f5c7fec6efc /auto_tests/toxav_many_test.c
parentc67bc3399faae541d64309412326ae92262b1282 (diff)
parent386c9748d48d3bb4513e8e5c32e2b30a4d6a00d4 (diff)
Merge branch 'master' of https://github.com/mannol/toxcore
Diffstat (limited to 'auto_tests/toxav_many_test.c')
-rw-r--r--auto_tests/toxav_many_test.c119
1 files changed, 55 insertions, 64 deletions
diff --git a/auto_tests/toxav_many_test.c b/auto_tests/toxav_many_test.c
index 4ed79e22..5d327e53 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,51 @@ 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;
89}
90 83
84 if (av == cast->calls[call_index].Caller.av)
85 cast->calls[call_index].Caller.status = Ended;
86 else
87 cast->calls[call_index].Callee.status = Ended;
88}
91void callback_call_started ( void *av, int32_t call_index, void *_arg ) 89void callback_call_started ( void *av, int32_t call_index, void *_arg )
92{ 90{
93 /* 91 Status *cast = _arg;
94 Status *cast = _arg;
95 92
96 cast->calls[call_index].Callee.status = InCall;*/ 93 if (av == cast->calls[call_index].Caller.av)
94 cast->calls[call_index].Caller.status = InCall;
95 else
96 cast->calls[call_index].Callee.status = InCall;
97} 97}
98void callback_call_canceled ( void *av, int32_t call_index, void *_arg ) 98void callback_call_canceled ( void *av, int32_t call_index, void *_arg )
99{ 99{
100 /*
101 Status *cast = _arg;
102
103 cast->calls[call_index].Callee.status = Cancel;*/
104} 100}
105void callback_call_rejected ( void *av, int32_t call_index, void *_arg ) 101void callback_call_rejected ( void *av, int32_t call_index, void *_arg )
106{ 102{
107 Status *cast = _arg; 103 Status *cast = _arg;
108 cast->calls[call_index].Caller.status = Rejected; 104 cast->calls[call_index].Caller.status = Rejected;
109} 105}
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 106
118void callback_requ_timeout ( void *av, int32_t call_index, void *_arg ) 107void callback_requ_timeout ( void *av, int32_t call_index, void *_arg )
119{ 108{
120 //ck_assert_msg(0, "No answer!"); 109 ck_assert_msg(0, "No answer!");
121} 110}
122 111
123static void callback_audio(ToxAv *av, int32_t call_index, int16_t *data, int length, void *userdata) 112void callback_audio (void *agent, int32_t call_idx, const int16_t *PCM, uint16_t size, void *data)
124{ 113{}
125}
126 114
127static void callback_video(ToxAv *av, int32_t call_index, vpx_image_t *img, void *userdata) 115void callback_video (void *agent, int32_t call_idx, const vpx_image_t *img, void *data)
128{ 116{}
129}
130 117
131void register_callbacks(ToxAv *av, void *data) 118void register_callbacks(ToxAv *av, void *data)
132{ 119{
@@ -135,16 +122,12 @@ void register_callbacks(ToxAv *av, void *data)
135 toxav_register_callstate_callback(av, callback_call_rejected, av_OnReject, data); 122 toxav_register_callstate_callback(av, callback_call_rejected, av_OnReject, data);
136 toxav_register_callstate_callback(av, callback_call_ended, av_OnEnd, data); 123 toxav_register_callstate_callback(av, callback_call_ended, av_OnEnd, data);
137 toxav_register_callstate_callback(av, callback_recv_invite, av_OnInvite, data); 124 toxav_register_callstate_callback(av, callback_recv_invite, av_OnInvite, data);
138
139 toxav_register_callstate_callback(av, callback_recv_ringing, av_OnRinging, data); 125 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); 126 toxav_register_callstate_callback(av, callback_requ_timeout, av_OnRequestTimeout, data);
144 127
145 128
146 toxav_register_audio_recv_callback(av, callback_audio, NULL); 129 toxav_register_audio_callback(callback_audio, NULL);
147 toxav_register_video_recv_callback(av, callback_video, NULL); 130 toxav_register_video_callback(callback_video, NULL);
148} 131}
149/*************************************************************************************************/ 132/*************************************************************************************************/
150 133
@@ -193,14 +176,14 @@ void *in_thread_call (void *arg)
193 call_print(call_idx, "Sending rtp ..."); 176 call_print(call_idx, "Sending rtp ...");
194 177
195 c_sleep(1000); /* We have race condition here */ 178 c_sleep(1000); /* We have race condition here */
196 toxav_prepare_transmission(this_call->Callee.av, 0, 3, 0, 1); 179 toxav_prepare_transmission(this_call->Callee.av, 0, 1);
197 toxav_prepare_transmission(this_call->Caller.av, call_idx, 3, 0, 1); 180 toxav_prepare_transmission(this_call->Caller.av, call_idx, 1);
198 181
199 int payload_size = toxav_prepare_audio_frame(this_call->Caller.av, call_idx, prepared_payload, RTP_PAYLOAD_SIZE, 182 int payload_size = toxav_prepare_audio_frame(this_call->Caller.av, call_idx, prepared_payload, RTP_PAYLOAD_SIZE,
200 sample_payload, frame_size); 183 sample_payload, frame_size);
201 184
202 if ( payload_size < 0 ) { 185 if ( payload_size < 0 ) {
203 //ck_assert_msg ( 0, "Failed to encode payload" ); 186 ck_assert_msg ( 0, "Failed to encode payload" );
204 } 187 }
205 188
206 189
@@ -253,8 +236,8 @@ void *in_thread_call (void *arg)
253 236
254 237
255 238
256// START_TEST(test_AV_three_calls) 239START_TEST(test_AV_three_calls)
257void test_AV_three_calls() 240// void test_AV_three_calls()
258{ 241{
259 long long unsigned int cur_time = time(NULL); 242 long long unsigned int cur_time = time(NULL);
260 Tox *bootstrap_node = tox_new(0); 243 Tox *bootstrap_node = tox_new(0);
@@ -266,12 +249,12 @@ void test_AV_three_calls()
266 }; 249 };
267 250
268 251
269 //ck_assert_msg(bootstrap_node != NULL, "Failed to create bootstrap node"); 252 ck_assert_msg(bootstrap_node != NULL, "Failed to create bootstrap node");
270 253
271 int i = 0; 254 int i = 0;
272 255
273 for (; i < 3; i ++) { 256 for (; i < 3; i ++) {
274 //ck_assert_msg(callees[i] != NULL, "Failed to create 3 tox instances"); 257 ck_assert_msg(callees[i] != NULL, "Failed to create 3 tox instances");
275 } 258 }
276 259
277 for ( i = 0; i < 3; i ++ ) { 260 for ( i = 0; i < 3; i ++ ) {
@@ -281,7 +264,7 @@ void test_AV_three_calls()
281 tox_get_address(callees[i], address); 264 tox_get_address(callees[i], address);
282 265
283 int test = tox_add_friend(caller, address, (uint8_t *)"gentoo", 7); 266 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); 267 ck_assert_msg( test == i, "Failed to add friend error code: %i", test);
285 } 268 }
286 269
287 uint8_t off = 1; 270 uint8_t off = 1;
@@ -350,6 +333,13 @@ void test_AV_three_calls()
350 tox_do(callees[1]); 333 tox_do(callees[1]);
351 tox_do(callees[2]); 334 tox_do(callees[2]);
352 335
336 for ( i = 0; i < 3; i++ )
337 toxav_do(status_control.calls[0].Caller.av);
338
339 toxav_do(status_control.calls[0].Callee.av);
340 toxav_do(status_control.calls[1].Callee.av);
341 toxav_do(status_control.calls[2].Callee.av);
342
353 pthread_mutex_unlock(&muhmutex); 343 pthread_mutex_unlock(&muhmutex);
354 c_sleep(20); 344 c_sleep(20);
355 } 345 }
@@ -366,7 +356,7 @@ void test_AV_three_calls()
366 tox_kill(callees[i]); 356 tox_kill(callees[i]);
367 357
368} 358}
369// END_TEST 359END_TEST
370 360
371 361
372 362
@@ -382,21 +372,22 @@ Suite *tox_suite(void)
382 372
383 return s; 373 return s;
384} 374}
375
385int main(int argc, char *argv[]) 376int main(int argc, char *argv[])
386{ 377{
387// Suite *tox = tox_suite(); 378 Suite *tox = tox_suite();
388// SRunner *test_runner = srunner_create(tox); 379 SRunner *test_runner = srunner_create(tox);
389// 380
390// setbuf(stdout, NULL); 381 setbuf(stdout, NULL);
391// 382
392// srunner_run_all(test_runner, CK_NORMAL); 383 srunner_run_all(test_runner, CK_NORMAL);
393// int number_failed = srunner_ntests_failed(test_runner); 384 int number_failed = srunner_ntests_failed(test_runner);
394// 385
395// srunner_free(test_runner); 386 srunner_free(test_runner);
396// 387
397// return number_failed; 388 return number_failed;
398 389
399 test_AV_three_calls(); 390// test_AV_three_calls();
400 391
401 return 0; 392// return 0;
402} 393}