summaryrefslogtreecommitdiff
path: root/auto_tests/toxav_basic_test.c
diff options
context:
space:
mode:
authorGregory Mullen (grayhatter) <greg@grayhatter.com>2016-09-11 16:27:03 -0700
committerGregory Mullen (grayhatter) <greg@grayhatter.com>2016-09-17 14:05:51 -0700
commit21f8db12c45bd56293262cd4abfb73cd9abec821 (patch)
tree580729367d00e1eb7e0c4d533777d22af7d7ffc5 /auto_tests/toxav_basic_test.c
parent5da85c582d97d746887da407153afc0acf0a4215 (diff)
Make ToxAV stateless
Diffstat (limited to 'auto_tests/toxav_basic_test.c')
-rw-r--r--auto_tests/toxav_basic_test.c80
1 files changed, 40 insertions, 40 deletions
diff --git a/auto_tests/toxav_basic_test.c b/auto_tests/toxav_basic_test.c
index da874849..3904141f 100644
--- a/auto_tests/toxav_basic_test.c
+++ b/auto_tests/toxav_basic_test.c
@@ -133,12 +133,12 @@ static void t_accept_friend_request_cb(Tox *m, const uint8_t *public_key, const
133/** 133/**
134 * Iterate helper 134 * Iterate helper
135 */ 135 */
136static int iterate_tox(Tox *bootstrap, Tox *Alice, Tox *Bob) 136static int iterate_tox(Tox *bootstrap, Tox *Alice, void *ACC, Tox *Bob, void *BCC)
137{ 137{
138 c_sleep(100); 138 c_sleep(100);
139 tox_iterate(bootstrap, NULL); 139 tox_iterate(bootstrap, NULL);
140 tox_iterate(Alice, NULL); 140 tox_iterate(Alice, ACC);
141 tox_iterate(Bob, NULL); 141 tox_iterate(Bob, BCC);
142 142
143 return MIN(tox_iteration_interval(Alice), tox_iteration_interval(Bob)); 143 return MIN(tox_iteration_interval(Alice), tox_iteration_interval(Bob));
144} 144}
@@ -181,7 +181,7 @@ START_TEST(test_AV_flows)
181 uint8_t off = 1; 181 uint8_t off = 1;
182 182
183 while (1) { 183 while (1) {
184 iterate_tox(bootstrap, Alice, Bob); 184 iterate_tox(bootstrap, Alice, &AliceCC, Bob, &BobCC);
185 185
186 if (tox_self_get_connection_status(bootstrap) && 186 if (tox_self_get_connection_status(bootstrap) &&
187 tox_self_get_connection_status(Alice) && 187 tox_self_get_connection_status(Alice) &&
@@ -208,15 +208,15 @@ START_TEST(test_AV_flows)
208 ck_assert(error == TOXAV_ERR_NEW_OK); 208 ck_assert(error == TOXAV_ERR_NEW_OK);
209 } 209 }
210 210
211 toxav_callback_call(AliceAV, t_toxav_call_cb, &AliceCC); 211 toxav_callback_call(AliceAV, t_toxav_call_cb);
212 toxav_callback_call_state(AliceAV, t_toxav_call_state_cb, &AliceCC); 212 toxav_callback_call_state(AliceAV, t_toxav_call_state_cb);
213 toxav_callback_video_receive_frame(AliceAV, t_toxav_receive_video_frame_cb, &AliceCC); 213 toxav_callback_video_receive_frame(AliceAV, t_toxav_receive_video_frame_cb);
214 toxav_callback_audio_receive_frame(AliceAV, t_toxav_receive_audio_frame_cb, &AliceCC); 214 toxav_callback_audio_receive_frame(AliceAV, t_toxav_receive_audio_frame_cb);
215 215
216 toxav_callback_call(BobAV, t_toxav_call_cb, &BobCC); 216 toxav_callback_call(BobAV, t_toxav_call_cb);
217 toxav_callback_call_state(BobAV, t_toxav_call_state_cb, &BobCC); 217 toxav_callback_call_state(BobAV, t_toxav_call_state_cb);
218 toxav_callback_video_receive_frame(BobAV, t_toxav_receive_video_frame_cb, &BobCC); 218 toxav_callback_video_receive_frame(BobAV, t_toxav_receive_video_frame_cb);
219 toxav_callback_audio_receive_frame(BobAV, t_toxav_receive_audio_frame_cb, &BobCC); 219 toxav_callback_audio_receive_frame(BobAV, t_toxav_receive_audio_frame_cb);
220 220
221 printf("Created 2 instances of ToxAV\n"); 221 printf("Created 2 instances of ToxAV\n");
222 printf("All set after %llu seconds!\n", time(NULL) - cur_time); 222 printf("All set after %llu seconds!\n", time(NULL) - cur_time);
@@ -265,7 +265,7 @@ START_TEST(test_AV_flows)
265 } \ 265 } \
266 } \ 266 } \
267 \ 267 \
268 iterate_tox(bootstrap, Alice, Bob); \ 268 iterate_tox(bootstrap, Alice, &AliceCC, Bob, &BobCC); \
269 } \ 269 } \
270 printf("Success!\n");\ 270 printf("Success!\n");\
271 } while(0) 271 } while(0)
@@ -304,7 +304,7 @@ START_TEST(test_AV_flows)
304 } 304 }
305 305
306 while (!BobCC.incoming) { 306 while (!BobCC.incoming) {
307 iterate_tox(bootstrap, Alice, Bob); 307 iterate_tox(bootstrap, Alice, &AliceCC, Bob, &BobCC);
308 } 308 }
309 309
310 /* Reject */ 310 /* Reject */
@@ -319,7 +319,7 @@ START_TEST(test_AV_flows)
319 } 319 }
320 320
321 while (AliceCC.state != TOXAV_FRIEND_CALL_STATE_FINISHED) { 321 while (AliceCC.state != TOXAV_FRIEND_CALL_STATE_FINISHED) {
322 iterate_tox(bootstrap, Alice, Bob); 322 iterate_tox(bootstrap, Alice, &AliceCC, Bob, &BobCC);
323 } 323 }
324 324
325 printf("Success!\n"); 325 printf("Success!\n");
@@ -342,7 +342,7 @@ START_TEST(test_AV_flows)
342 } 342 }
343 343
344 while (!BobCC.incoming) { 344 while (!BobCC.incoming) {
345 iterate_tox(bootstrap, Alice, Bob); 345 iterate_tox(bootstrap, Alice, &AliceCC, Bob, &BobCC);
346 } 346 }
347 347
348 /* Cancel */ 348 /* Cancel */
@@ -358,7 +358,7 @@ START_TEST(test_AV_flows)
358 358
359 /* Alice will not receive end state */ 359 /* Alice will not receive end state */
360 while (BobCC.state != TOXAV_FRIEND_CALL_STATE_FINISHED) { 360 while (BobCC.state != TOXAV_FRIEND_CALL_STATE_FINISHED) {
361 iterate_tox(bootstrap, Alice, Bob); 361 iterate_tox(bootstrap, Alice, &AliceCC, Bob, &BobCC);
362 } 362 }
363 363
364 printf("Success!\n"); 364 printf("Success!\n");
@@ -382,7 +382,7 @@ START_TEST(test_AV_flows)
382 } 382 }
383 383
384 while (!BobCC.incoming) { 384 while (!BobCC.incoming) {
385 iterate_tox(bootstrap, Alice, Bob); 385 iterate_tox(bootstrap, Alice, &AliceCC, Bob, &BobCC);
386 } 386 }
387 387
388 /* At first try all stuff while in invalid state */ 388 /* At first try all stuff while in invalid state */
@@ -403,39 +403,39 @@ START_TEST(test_AV_flows)
403 } 403 }
404 } 404 }
405 405
406 iterate_tox(bootstrap, Alice, Bob); 406 iterate_tox(bootstrap, Alice, &AliceCC, Bob, &BobCC);
407 407
408 /* Pause and Resume */ 408 /* Pause and Resume */
409 printf("Pause and Resume\n"); 409 printf("Pause and Resume\n");
410 ck_assert_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_PAUSE); 410 ck_assert_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_PAUSE);
411 iterate_tox(bootstrap, Alice, Bob); 411 iterate_tox(bootstrap, Alice, &AliceCC, Bob, &BobCC);
412 ck_assert(BobCC.state == 0); 412 ck_assert(BobCC.state == 0);
413 ck_assert_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_RESUME); 413 ck_assert_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_RESUME);
414 iterate_tox(bootstrap, Alice, Bob); 414 iterate_tox(bootstrap, Alice, &AliceCC, Bob, &BobCC);
415 ck_assert(BobCC.state & (TOXAV_FRIEND_CALL_STATE_SENDING_A | TOXAV_FRIEND_CALL_STATE_SENDING_V)); 415 ck_assert(BobCC.state & (TOXAV_FRIEND_CALL_STATE_SENDING_A | TOXAV_FRIEND_CALL_STATE_SENDING_V));
416 416
417 /* Mute/Unmute single */ 417 /* Mute/Unmute single */
418 printf("Mute/Unmute single\n"); 418 printf("Mute/Unmute single\n");
419 ck_assert_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_MUTE_AUDIO); 419 ck_assert_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_MUTE_AUDIO);
420 iterate_tox(bootstrap, Alice, Bob); 420 iterate_tox(bootstrap, Alice, &AliceCC, Bob, &BobCC);
421 ck_assert(BobCC.state ^ TOXAV_FRIEND_CALL_STATE_ACCEPTING_A); 421 ck_assert(BobCC.state ^ TOXAV_FRIEND_CALL_STATE_ACCEPTING_A);
422 ck_assert_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_UNMUTE_AUDIO); 422 ck_assert_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_UNMUTE_AUDIO);
423 iterate_tox(bootstrap, Alice, Bob); 423 iterate_tox(bootstrap, Alice, &AliceCC, Bob, &BobCC);
424 ck_assert(BobCC.state & TOXAV_FRIEND_CALL_STATE_ACCEPTING_A); 424 ck_assert(BobCC.state & TOXAV_FRIEND_CALL_STATE_ACCEPTING_A);
425 425
426 /* Mute/Unmute both */ 426 /* Mute/Unmute both */
427 printf("Mute/Unmute both\n"); 427 printf("Mute/Unmute both\n");
428 ck_assert_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_MUTE_AUDIO); 428 ck_assert_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_MUTE_AUDIO);
429 iterate_tox(bootstrap, Alice, Bob); 429 iterate_tox(bootstrap, Alice, &AliceCC, Bob, &BobCC);
430 ck_assert(BobCC.state ^ TOXAV_FRIEND_CALL_STATE_ACCEPTING_A); 430 ck_assert(BobCC.state ^ TOXAV_FRIEND_CALL_STATE_ACCEPTING_A);
431 ck_assert_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_HIDE_VIDEO); 431 ck_assert_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_HIDE_VIDEO);
432 iterate_tox(bootstrap, Alice, Bob); 432 iterate_tox(bootstrap, Alice, &AliceCC, Bob, &BobCC);
433 ck_assert(BobCC.state ^ TOXAV_FRIEND_CALL_STATE_ACCEPTING_V); 433 ck_assert(BobCC.state ^ TOXAV_FRIEND_CALL_STATE_ACCEPTING_V);
434 ck_assert_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_UNMUTE_AUDIO); 434 ck_assert_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_UNMUTE_AUDIO);
435 iterate_tox(bootstrap, Alice, Bob); 435 iterate_tox(bootstrap, Alice, &AliceCC, Bob, &BobCC);
436 ck_assert(BobCC.state & TOXAV_FRIEND_CALL_STATE_ACCEPTING_A); 436 ck_assert(BobCC.state & TOXAV_FRIEND_CALL_STATE_ACCEPTING_A);
437 ck_assert_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_SHOW_VIDEO); 437 ck_assert_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_SHOW_VIDEO);
438 iterate_tox(bootstrap, Alice, Bob); 438 iterate_tox(bootstrap, Alice, &AliceCC, Bob, &BobCC);
439 ck_assert(BobCC.state & TOXAV_FRIEND_CALL_STATE_ACCEPTING_V); 439 ck_assert(BobCC.state & TOXAV_FRIEND_CALL_STATE_ACCEPTING_V);
440 440
441 { 441 {
@@ -448,7 +448,7 @@ START_TEST(test_AV_flows)
448 } 448 }
449 } 449 }
450 450
451 iterate_tox(bootstrap, Alice, Bob); 451 iterate_tox(bootstrap, Alice, &AliceCC, Bob, &BobCC);
452 ck_assert(BobCC.state == TOXAV_FRIEND_CALL_STATE_FINISHED); 452 ck_assert(BobCC.state == TOXAV_FRIEND_CALL_STATE_FINISHED);
453 453
454 printf("Success!\n"); 454 printf("Success!\n");
@@ -472,7 +472,7 @@ START_TEST(test_AV_flows)
472 } 472 }
473 473
474 while (!BobCC.incoming) { 474 while (!BobCC.incoming) {
475 iterate_tox(bootstrap, Alice, Bob); 475 iterate_tox(bootstrap, Alice, &AliceCC, Bob, &BobCC);
476 } 476 }
477 477
478 { 478 {
@@ -485,25 +485,25 @@ START_TEST(test_AV_flows)
485 } 485 }
486 } 486 }
487 487
488 iterate_tox(bootstrap, Alice, Bob); 488 iterate_tox(bootstrap, Alice, &AliceCC, Bob, &BobCC);
489 489
490 printf("Call started as audio only\n"); 490 printf("Call started as audio only\n");
491 printf("Turning on video for Alice...\n"); 491 printf("Turning on video for Alice...\n");
492 ck_assert(toxav_bit_rate_set(AliceAV, 0, -1, 1000, NULL)); 492 ck_assert(toxav_bit_rate_set(AliceAV, 0, -1, 1000, NULL));
493 493
494 iterate_tox(bootstrap, Alice, Bob); 494 iterate_tox(bootstrap, Alice, &AliceCC, Bob, &BobCC);
495 ck_assert(BobCC.state & TOXAV_FRIEND_CALL_STATE_SENDING_V); 495 ck_assert(BobCC.state & TOXAV_FRIEND_CALL_STATE_SENDING_V);
496 496
497 printf("Turning off video for Alice...\n"); 497 printf("Turning off video for Alice...\n");
498 ck_assert(toxav_bit_rate_set(AliceAV, 0, -1, 0, NULL)); 498 ck_assert(toxav_bit_rate_set(AliceAV, 0, -1, 0, NULL));
499 499
500 iterate_tox(bootstrap, Alice, Bob); 500 iterate_tox(bootstrap, Alice, &AliceCC, Bob, &BobCC);
501 ck_assert(!(BobCC.state & TOXAV_FRIEND_CALL_STATE_SENDING_V)); 501 ck_assert(!(BobCC.state & TOXAV_FRIEND_CALL_STATE_SENDING_V));
502 502
503 printf("Turning off audio for Alice...\n"); 503 printf("Turning off audio for Alice...\n");
504 ck_assert(toxav_bit_rate_set(AliceAV, 0, 0, -1, NULL)); 504 ck_assert(toxav_bit_rate_set(AliceAV, 0, 0, -1, NULL));
505 505
506 iterate_tox(bootstrap, Alice, Bob); 506 iterate_tox(bootstrap, Alice, &AliceCC, Bob, &BobCC);
507 ck_assert(!(BobCC.state & TOXAV_FRIEND_CALL_STATE_SENDING_A)); 507 ck_assert(!(BobCC.state & TOXAV_FRIEND_CALL_STATE_SENDING_A));
508 508
509 { 509 {
@@ -516,7 +516,7 @@ START_TEST(test_AV_flows)
516 } 516 }
517 } 517 }
518 518
519 iterate_tox(bootstrap, Alice, Bob); 519 iterate_tox(bootstrap, Alice, &AliceCC, Bob, &BobCC);
520 ck_assert(BobCC.state == TOXAV_FRIEND_CALL_STATE_FINISHED); 520 ck_assert(BobCC.state == TOXAV_FRIEND_CALL_STATE_FINISHED);
521 521
522 printf("Success!\n"); 522 printf("Success!\n");
@@ -540,7 +540,7 @@ START_TEST(test_AV_flows)
540 } 540 }
541 541
542 while (!BobCC.incoming) { 542 while (!BobCC.incoming) {
543 iterate_tox(bootstrap, Alice, Bob); 543 iterate_tox(bootstrap, Alice, &AliceCC, Bob, &BobCC);
544 } 544 }
545 545
546 { 546 {
@@ -555,16 +555,16 @@ START_TEST(test_AV_flows)
555 555
556 int16_t PCM[5670]; 556 int16_t PCM[5670];
557 557
558 iterate_tox(bootstrap, Alice, Bob); 558 iterate_tox(bootstrap, Alice, &AliceCC, Bob, &BobCC);
559 ck_assert_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_PAUSE); 559 ck_assert_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_PAUSE);
560 iterate_tox(bootstrap, Alice, Bob); 560 iterate_tox(bootstrap, Alice, &AliceCC, Bob, &BobCC);
561 ck_assert(!toxav_audio_send_frame(AliceAV, 0, PCM, 960, 1, 48000, NULL)); 561 ck_assert(!toxav_audio_send_frame(AliceAV, 0, PCM, 960, 1, 48000, NULL));
562 ck_assert(!toxav_audio_send_frame(BobAV, 0, PCM, 960, 1, 48000, NULL)); 562 ck_assert(!toxav_audio_send_frame(BobAV, 0, PCM, 960, 1, 48000, NULL));
563 ck_assert_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_RESUME); 563 ck_assert_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_RESUME);
564 iterate_tox(bootstrap, Alice, Bob); 564 iterate_tox(bootstrap, Alice, &AliceCC, Bob, &BobCC);
565 ck_assert(toxav_audio_send_frame(AliceAV, 0, PCM, 960, 1, 48000, NULL)); 565 ck_assert(toxav_audio_send_frame(AliceAV, 0, PCM, 960, 1, 48000, NULL));
566 ck_assert(toxav_audio_send_frame(BobAV, 0, PCM, 960, 1, 48000, NULL)); 566 ck_assert(toxav_audio_send_frame(BobAV, 0, PCM, 960, 1, 48000, NULL));
567 iterate_tox(bootstrap, Alice, Bob); 567 iterate_tox(bootstrap, Alice, &AliceCC, Bob, &BobCC);
568 568
569 { 569 {
570 TOXAV_ERR_CALL_CONTROL rc; 570 TOXAV_ERR_CALL_CONTROL rc;
@@ -576,7 +576,7 @@ START_TEST(test_AV_flows)
576 } 576 }
577 } 577 }
578 578
579 iterate_tox(bootstrap, Alice, Bob); 579 iterate_tox(bootstrap, Alice, &AliceCC, Bob, &BobCC);
580 ck_assert(BobCC.state == TOXAV_FRIEND_CALL_STATE_FINISHED); 580 ck_assert(BobCC.state == TOXAV_FRIEND_CALL_STATE_FINISHED);
581 581
582 printf("Success!\n"); 582 printf("Success!\n");