diff options
author | iphydf <iphydf@users.noreply.github.com> | 2016-09-02 22:02:22 +0100 |
---|---|---|
committer | iphydf <iphydf@users.noreply.github.com> | 2016-09-02 22:02:22 +0100 |
commit | 33edad85827a296ace58bef119a4b112ca718f8a (patch) | |
tree | 094c6d5417c333954788050d2430ef2cad42ba77 /auto_tests/toxav_basic_test.c | |
parent | a759ddc7ebe307e7a5ced4c89de2286c5675800d (diff) |
Add a short sleep before each tox_iterate in av test.
A race condition that happens on machines with heavily used network interfaces
causes tests to fail. Packets sent don't arrive on time. This sleep gives it 100
extra milliseconds. The real fix would be to wait for the event to occur and
then continue, but with a "once-loop" that is tox_iterate, it's not feasible at
this time.
Diffstat (limited to 'auto_tests/toxav_basic_test.c')
-rw-r--r-- | auto_tests/toxav_basic_test.c | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/auto_tests/toxav_basic_test.c b/auto_tests/toxav_basic_test.c index 747c3aa1..2540f592 100644 --- a/auto_tests/toxav_basic_test.c +++ b/auto_tests/toxav_basic_test.c | |||
@@ -46,6 +46,17 @@ | |||
46 | #define TEST_PAUSE_RESUME_SEND 1 | 46 | #define TEST_PAUSE_RESUME_SEND 1 |
47 | 47 | ||
48 | 48 | ||
49 | #define ck_assert_call_control(a, b, c) do { \ | ||
50 | TOXAV_ERR_CALL_CONTROL cc_err; \ | ||
51 | bool ok = toxav_call_control(a, b, c, &cc_err); \ | ||
52 | if (!ok) { \ | ||
53 | printf("toxav_call_control returned error %d\n", cc_err); \ | ||
54 | } \ | ||
55 | ck_assert(ok); \ | ||
56 | ck_assert(cc_err == TOXAV_ERR_CALL_CONTROL_OK); \ | ||
57 | } while (0) | ||
58 | |||
59 | |||
49 | typedef struct { | 60 | typedef struct { |
50 | bool incoming; | 61 | bool incoming; |
51 | uint32_t state; | 62 | uint32_t state; |
@@ -123,6 +134,7 @@ void t_accept_friend_request_cb(Tox *m, const uint8_t *public_key, const uint8_t | |||
123 | */ | 134 | */ |
124 | int iterate_tox(Tox *bootstrap, Tox *Alice, Tox *Bob) | 135 | int iterate_tox(Tox *bootstrap, Tox *Alice, Tox *Bob) |
125 | { | 136 | { |
137 | c_sleep(100); | ||
126 | tox_iterate(bootstrap, NULL); | 138 | tox_iterate(bootstrap, NULL); |
127 | tox_iterate(Alice, NULL); | 139 | tox_iterate(Alice, NULL); |
128 | tox_iterate(Bob, NULL); | 140 | tox_iterate(Bob, NULL); |
@@ -394,34 +406,34 @@ START_TEST(test_AV_flows) | |||
394 | 406 | ||
395 | /* Pause and Resume */ | 407 | /* Pause and Resume */ |
396 | printf("Pause and Resume\n"); | 408 | printf("Pause and Resume\n"); |
397 | ck_assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_PAUSE, NULL)); | 409 | ck_assert_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_PAUSE); |
398 | iterate_tox(bootstrap, Alice, Bob); | 410 | iterate_tox(bootstrap, Alice, Bob); |
399 | ck_assert(BobCC.state == 0); | 411 | ck_assert(BobCC.state == 0); |
400 | ck_assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_RESUME, NULL)); | 412 | ck_assert_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_RESUME); |
401 | iterate_tox(bootstrap, Alice, Bob); | 413 | iterate_tox(bootstrap, Alice, Bob); |
402 | ck_assert(BobCC.state & (TOXAV_FRIEND_CALL_STATE_SENDING_A | TOXAV_FRIEND_CALL_STATE_SENDING_V)); | 414 | ck_assert(BobCC.state & (TOXAV_FRIEND_CALL_STATE_SENDING_A | TOXAV_FRIEND_CALL_STATE_SENDING_V)); |
403 | 415 | ||
404 | /* Mute/Unmute single */ | 416 | /* Mute/Unmute single */ |
405 | printf("Mute/Unmute single\n"); | 417 | printf("Mute/Unmute single\n"); |
406 | ck_assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_MUTE_AUDIO, NULL)); | 418 | ck_assert_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_MUTE_AUDIO); |
407 | iterate_tox(bootstrap, Alice, Bob); | 419 | iterate_tox(bootstrap, Alice, Bob); |
408 | ck_assert(BobCC.state ^ TOXAV_FRIEND_CALL_STATE_ACCEPTING_A); | 420 | ck_assert(BobCC.state ^ TOXAV_FRIEND_CALL_STATE_ACCEPTING_A); |
409 | ck_assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_UNMUTE_AUDIO, NULL)); | 421 | ck_assert_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_UNMUTE_AUDIO); |
410 | iterate_tox(bootstrap, Alice, Bob); | 422 | iterate_tox(bootstrap, Alice, Bob); |
411 | ck_assert(BobCC.state & TOXAV_FRIEND_CALL_STATE_ACCEPTING_A); | 423 | ck_assert(BobCC.state & TOXAV_FRIEND_CALL_STATE_ACCEPTING_A); |
412 | 424 | ||
413 | /* Mute/Unmute both */ | 425 | /* Mute/Unmute both */ |
414 | printf("Mute/Unmute both\n"); | 426 | printf("Mute/Unmute both\n"); |
415 | ck_assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_MUTE_AUDIO, NULL)); | 427 | ck_assert_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_MUTE_AUDIO); |
416 | iterate_tox(bootstrap, Alice, Bob); | 428 | iterate_tox(bootstrap, Alice, Bob); |
417 | ck_assert(BobCC.state ^ TOXAV_FRIEND_CALL_STATE_ACCEPTING_A); | 429 | ck_assert(BobCC.state ^ TOXAV_FRIEND_CALL_STATE_ACCEPTING_A); |
418 | ck_assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_HIDE_VIDEO, NULL)); | 430 | ck_assert_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_HIDE_VIDEO); |
419 | iterate_tox(bootstrap, Alice, Bob); | 431 | iterate_tox(bootstrap, Alice, Bob); |
420 | ck_assert(BobCC.state ^ TOXAV_FRIEND_CALL_STATE_ACCEPTING_V); | 432 | ck_assert(BobCC.state ^ TOXAV_FRIEND_CALL_STATE_ACCEPTING_V); |
421 | ck_assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_UNMUTE_AUDIO, NULL)); | 433 | ck_assert_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_UNMUTE_AUDIO); |
422 | iterate_tox(bootstrap, Alice, Bob); | 434 | iterate_tox(bootstrap, Alice, Bob); |
423 | ck_assert(BobCC.state & TOXAV_FRIEND_CALL_STATE_ACCEPTING_A); | 435 | ck_assert(BobCC.state & TOXAV_FRIEND_CALL_STATE_ACCEPTING_A); |
424 | ck_assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_SHOW_VIDEO, NULL)); | 436 | ck_assert_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_SHOW_VIDEO); |
425 | iterate_tox(bootstrap, Alice, Bob); | 437 | iterate_tox(bootstrap, Alice, Bob); |
426 | ck_assert(BobCC.state & TOXAV_FRIEND_CALL_STATE_ACCEPTING_V); | 438 | ck_assert(BobCC.state & TOXAV_FRIEND_CALL_STATE_ACCEPTING_V); |
427 | 439 | ||
@@ -543,11 +555,11 @@ START_TEST(test_AV_flows) | |||
543 | int16_t PCM[5670]; | 555 | int16_t PCM[5670]; |
544 | 556 | ||
545 | iterate_tox(bootstrap, Alice, Bob); | 557 | iterate_tox(bootstrap, Alice, Bob); |
546 | ck_assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_PAUSE, NULL)); | 558 | ck_assert_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_PAUSE); |
547 | iterate_tox(bootstrap, Alice, Bob); | 559 | iterate_tox(bootstrap, Alice, Bob); |
548 | ck_assert(!toxav_audio_send_frame(AliceAV, 0, PCM, 960, 1, 48000, NULL)); | 560 | ck_assert(!toxav_audio_send_frame(AliceAV, 0, PCM, 960, 1, 48000, NULL)); |
549 | ck_assert(!toxav_audio_send_frame(BobAV, 0, PCM, 960, 1, 48000, NULL)); | 561 | ck_assert(!toxav_audio_send_frame(BobAV, 0, PCM, 960, 1, 48000, NULL)); |
550 | ck_assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_RESUME, NULL)); | 562 | ck_assert_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_RESUME); |
551 | iterate_tox(bootstrap, Alice, Bob); | 563 | iterate_tox(bootstrap, Alice, Bob); |
552 | ck_assert(toxav_audio_send_frame(AliceAV, 0, PCM, 960, 1, 48000, NULL)); | 564 | ck_assert(toxav_audio_send_frame(AliceAV, 0, PCM, 960, 1, 48000, NULL)); |
553 | ck_assert(toxav_audio_send_frame(BobAV, 0, PCM, 960, 1, 48000, NULL)); | 565 | ck_assert(toxav_audio_send_frame(BobAV, 0, PCM, 960, 1, 48000, NULL)); |