diff options
author | irungentoo <irungentoo@gmail.com> | 2014-11-24 20:24:59 -0500 |
---|---|---|
committer | irungentoo <irungentoo@gmail.com> | 2014-11-24 20:24:59 -0500 |
commit | 279c33c01a9ca721b986aabf72fa982936b20c9e (patch) | |
tree | 4c0d289c6d74788989024485d44a4f5c7fec6efc /auto_tests/toxav_many_test.c | |
parent | c67bc3399faae541d64309412326ae92262b1282 (diff) | |
parent | 386c9748d48d3bb4513e8e5c32e2b30a4d6a00d4 (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.c | 119 |
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 | /******************************************************************************/ |
68 | void callback_recv_invite ( void *av, int32_t call_index, void *_arg ) | 70 | void 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 | } |
75 | void callback_recv_ringing ( void *av, int32_t call_index, void *_arg ) | 75 | void 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 | } |
80 | void callback_recv_starting ( void *av, int32_t call_index, void *_arg ) | 80 | void 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 | } | ||
85 | void 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 | } | ||
91 | void callback_call_started ( void *av, int32_t call_index, void *_arg ) | 89 | void 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 | } |
98 | void callback_call_canceled ( void *av, int32_t call_index, void *_arg ) | 98 | void 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 | } |
105 | void callback_call_rejected ( void *av, int32_t call_index, void *_arg ) | 101 | void 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 | } |
110 | void 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 | ||
118 | void callback_requ_timeout ( void *av, int32_t call_index, void *_arg ) | 107 | void 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 | ||
123 | static void callback_audio(ToxAv *av, int32_t call_index, int16_t *data, int length, void *userdata) | 112 | void callback_audio (void *agent, int32_t call_idx, const int16_t *PCM, uint16_t size, void *data) |
124 | { | 113 | {} |
125 | } | ||
126 | 114 | ||
127 | static void callback_video(ToxAv *av, int32_t call_index, vpx_image_t *img, void *userdata) | 115 | void callback_video (void *agent, int32_t call_idx, const vpx_image_t *img, void *data) |
128 | { | 116 | {} |
129 | } | ||
130 | 117 | ||
131 | void register_callbacks(ToxAv *av, void *data) | 118 | void 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) | 239 | START_TEST(test_AV_three_calls) |
257 | void 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 | 359 | END_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 | |||
385 | int main(int argc, char *argv[]) | 376 | int 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 | } |