diff options
author | mannol <eniz_vukovic@hotmail.com> | 2015-05-22 23:22:31 +0200 |
---|---|---|
committer | mannol <eniz_vukovic@hotmail.com> | 2015-05-22 23:22:31 +0200 |
commit | 3100042a2b78f4f80d23f67e6113797cd8fb5df0 (patch) | |
tree | c226f4b25002784d93f9bb6415be4b55b76cddd1 /auto_tests | |
parent | 62c40af1a0c557ba8c77583c972ae3af9af15cf1 (diff) | |
parent | 2ba076ac5cc6efb5eb41fb4aa6a77a151885f26c (diff) |
Updated with master
Diffstat (limited to 'auto_tests')
-rw-r--r-- | auto_tests/tox_test.c | 196 | ||||
-rw-r--r-- | auto_tests/toxav_basic_test.c | 38 | ||||
-rw-r--r-- | auto_tests/toxav_many_test.c | 18 |
3 files changed, 226 insertions, 26 deletions
diff --git a/auto_tests/tox_test.c b/auto_tests/tox_test.c index 0dab2e69..40022b0a 100644 --- a/auto_tests/tox_test.c +++ b/auto_tests/tox_test.c | |||
@@ -332,6 +332,7 @@ START_TEST(test_one) | |||
332 | tox_self_set_name(tox1, name, sizeof(name), 0); | 332 | tox_self_set_name(tox1, name, sizeof(name), 0); |
333 | ck_assert_msg(tox_self_get_name_size(tox1) == sizeof(name), "Can't set name of TOX_MAX_NAME_LENGTH"); | 333 | ck_assert_msg(tox_self_get_name_size(tox1) == sizeof(name), "Can't set name of TOX_MAX_NAME_LENGTH"); |
334 | 334 | ||
335 | tox_self_get_address(tox1, address); | ||
335 | size_t save_size = tox_get_savedata_size(tox1); | 336 | size_t save_size = tox_get_savedata_size(tox1); |
336 | uint8_t data[save_size]; | 337 | uint8_t data[save_size]; |
337 | tox_get_savedata(tox1, data); | 338 | tox_get_savedata(tox1, data); |
@@ -344,6 +345,9 @@ START_TEST(test_one) | |||
344 | 345 | ||
345 | ck_assert_msg(tox_self_get_name_size(tox2) == sizeof name, "Wrong name size."); | 346 | ck_assert_msg(tox_self_get_name_size(tox2) == sizeof name, "Wrong name size."); |
346 | 347 | ||
348 | uint8_t address2[TOX_ADDRESS_SIZE]; | ||
349 | tox_self_get_address(tox2, address2); | ||
350 | ck_assert_msg(memcmp(address2, address, TOX_ADDRESS_SIZE) == 0, "Wrong address."); | ||
347 | uint8_t new_name[TOX_MAX_NAME_LENGTH] = { 0 }; | 351 | uint8_t new_name[TOX_MAX_NAME_LENGTH] = { 0 }; |
348 | tox_self_get_name(tox2, new_name); | 352 | tox_self_get_name(tox2, new_name); |
349 | ck_assert_msg(memcmp(name, new_name, TOX_MAX_NAME_LENGTH) == 0, "Wrong name"); | 353 | ck_assert_msg(memcmp(name, new_name, TOX_MAX_NAME_LENGTH) == 0, "Wrong name"); |
@@ -809,6 +813,196 @@ loop_top: | |||
809 | } | 813 | } |
810 | END_TEST | 814 | END_TEST |
811 | 815 | ||
816 | #define TCP_RELAY_PORT 33448 | ||
817 | |||
818 | START_TEST(test_many_clients_tcp) | ||
819 | { | ||
820 | long long unsigned int cur_time = time(NULL); | ||
821 | Tox *toxes[NUM_TOXES]; | ||
822 | uint32_t i, j; | ||
823 | uint32_t to_comp = 974536; | ||
824 | |||
825 | for (i = 0; i < NUM_TOXES; ++i) { | ||
826 | struct Tox_Options opts; | ||
827 | tox_options_default(&opts); | ||
828 | |||
829 | if (i == 0) { | ||
830 | opts.tcp_port = TCP_RELAY_PORT; | ||
831 | } else { | ||
832 | opts.udp_enabled = 0; | ||
833 | } | ||
834 | |||
835 | toxes[i] = tox_new(&opts, 0, 0, 0); | ||
836 | ck_assert_msg(toxes[i] != 0, "Failed to create tox instances %u", i); | ||
837 | tox_callback_friend_request(toxes[i], accept_friend_request, &to_comp); | ||
838 | uint8_t dpk[TOX_PUBLIC_KEY_SIZE]; | ||
839 | tox_self_get_dht_id(toxes[0], dpk); | ||
840 | ck_assert_msg(tox_add_tcp_relay(toxes[i], "::1", TCP_RELAY_PORT, dpk, 0), "add relay error"); | ||
841 | ck_assert_msg(tox_bootstrap(toxes[i], "::1", 33445, dpk, 0), "Bootstrap error"); | ||
842 | } | ||
843 | |||
844 | { | ||
845 | TOX_ERR_GET_PORT error; | ||
846 | ck_assert_msg(tox_self_get_udp_port(toxes[0], &error) == 33445, "First Tox instance did not bind to udp port 33445.\n"); | ||
847 | ck_assert_msg(error == TOX_ERR_GET_PORT_OK, "wrong error"); | ||
848 | ck_assert_msg(tox_self_get_tcp_port(toxes[0], &error) == TCP_RELAY_PORT, | ||
849 | "First Tox instance did not bind to tcp port %u.\n", TCP_RELAY_PORT); | ||
850 | ck_assert_msg(error == TOX_ERR_GET_PORT_OK, "wrong error"); | ||
851 | } | ||
852 | |||
853 | struct { | ||
854 | uint16_t tox1; | ||
855 | uint16_t tox2; | ||
856 | } pairs[NUM_FRIENDS]; | ||
857 | |||
858 | uint8_t address[TOX_ADDRESS_SIZE]; | ||
859 | |||
860 | for (i = 0; i < NUM_FRIENDS; ++i) { | ||
861 | loop_top: | ||
862 | pairs[i].tox1 = rand() % NUM_TOXES; | ||
863 | pairs[i].tox2 = (pairs[i].tox1 + rand() % (NUM_TOXES - 1) + 1) % NUM_TOXES; | ||
864 | |||
865 | for (j = 0; j < i; ++j) { | ||
866 | if (pairs[j].tox2 == pairs[i].tox1 && pairs[j].tox1 == pairs[i].tox2) | ||
867 | goto loop_top; | ||
868 | } | ||
869 | |||
870 | tox_self_get_address(toxes[pairs[i].tox1], address); | ||
871 | |||
872 | TOX_ERR_FRIEND_ADD test; | ||
873 | uint32_t num = tox_friend_add(toxes[pairs[i].tox2], address, (uint8_t *)"Gentoo", 7, &test); | ||
874 | |||
875 | if (test == TOX_ERR_FRIEND_ADD_ALREADY_SENT) { | ||
876 | goto loop_top; | ||
877 | } | ||
878 | |||
879 | ck_assert_msg(num != UINT32_MAX && test == TOX_ERR_FRIEND_ADD_OK, "Failed to add friend error code: %i", test); | ||
880 | } | ||
881 | |||
882 | while (1) { | ||
883 | uint16_t counter = 0; | ||
884 | |||
885 | for (i = 0; i < NUM_TOXES; ++i) { | ||
886 | for (j = 0; j < tox_self_get_friend_list_size(toxes[i]); ++j) | ||
887 | if (tox_friend_get_connection_status(toxes[i], j, 0) == TOX_CONNECTION_TCP) | ||
888 | ++counter; | ||
889 | } | ||
890 | |||
891 | if (counter == NUM_FRIENDS * 2) { | ||
892 | break; | ||
893 | } | ||
894 | |||
895 | for (i = 0; i < NUM_TOXES; ++i) { | ||
896 | tox_iterate(toxes[i]); | ||
897 | } | ||
898 | |||
899 | c_sleep(50); | ||
900 | } | ||
901 | |||
902 | for (i = 0; i < NUM_TOXES; ++i) { | ||
903 | tox_kill(toxes[i]); | ||
904 | } | ||
905 | |||
906 | printf("test_many_clients_tcp succeeded, took %llu seconds\n", time(NULL) - cur_time); | ||
907 | } | ||
908 | END_TEST | ||
909 | |||
910 | #define NUM_TCP_RELAYS 3 | ||
911 | |||
912 | START_TEST(test_many_clients_tcp_b) | ||
913 | { | ||
914 | long long unsigned int cur_time = time(NULL); | ||
915 | Tox *toxes[NUM_TOXES]; | ||
916 | uint32_t i, j; | ||
917 | uint32_t to_comp = 974536; | ||
918 | |||
919 | for (i = 0; i < NUM_TOXES; ++i) { | ||
920 | struct Tox_Options opts; | ||
921 | tox_options_default(&opts); | ||
922 | |||
923 | if (i < NUM_TCP_RELAYS) { | ||
924 | opts.tcp_port = TCP_RELAY_PORT + i; | ||
925 | } else { | ||
926 | opts.udp_enabled = 0; | ||
927 | } | ||
928 | |||
929 | toxes[i] = tox_new(&opts, 0, 0, 0); | ||
930 | ck_assert_msg(toxes[i] != 0, "Failed to create tox instances %u", i); | ||
931 | tox_callback_friend_request(toxes[i], accept_friend_request, &to_comp); | ||
932 | uint8_t dpk[TOX_PUBLIC_KEY_SIZE]; | ||
933 | tox_self_get_dht_id(toxes[(i % NUM_TCP_RELAYS)], dpk); | ||
934 | ck_assert_msg(tox_add_tcp_relay(toxes[i], "::1", TCP_RELAY_PORT + (i % NUM_TCP_RELAYS), dpk, 0), "add relay error"); | ||
935 | tox_self_get_dht_id(toxes[0], dpk); | ||
936 | ck_assert_msg(tox_bootstrap(toxes[i], "::1", 33445, dpk, 0), "Bootstrap error"); | ||
937 | } | ||
938 | |||
939 | { | ||
940 | TOX_ERR_GET_PORT error; | ||
941 | ck_assert_msg(tox_self_get_udp_port(toxes[0], &error) == 33445, "First Tox instance did not bind to udp port 33445.\n"); | ||
942 | ck_assert_msg(error == TOX_ERR_GET_PORT_OK, "wrong error"); | ||
943 | ck_assert_msg(tox_self_get_tcp_port(toxes[0], &error) == TCP_RELAY_PORT, | ||
944 | "First Tox instance did not bind to tcp port %u.\n", TCP_RELAY_PORT); | ||
945 | ck_assert_msg(error == TOX_ERR_GET_PORT_OK, "wrong error"); | ||
946 | } | ||
947 | |||
948 | struct { | ||
949 | uint16_t tox1; | ||
950 | uint16_t tox2; | ||
951 | } pairs[NUM_FRIENDS]; | ||
952 | |||
953 | uint8_t address[TOX_ADDRESS_SIZE]; | ||
954 | |||
955 | for (i = 0; i < NUM_FRIENDS; ++i) { | ||
956 | loop_top: | ||
957 | pairs[i].tox1 = rand() % NUM_TOXES; | ||
958 | pairs[i].tox2 = (pairs[i].tox1 + rand() % (NUM_TOXES - 1) + 1) % NUM_TOXES; | ||
959 | |||
960 | for (j = 0; j < i; ++j) { | ||
961 | if (pairs[j].tox2 == pairs[i].tox1 && pairs[j].tox1 == pairs[i].tox2) | ||
962 | goto loop_top; | ||
963 | } | ||
964 | |||
965 | tox_self_get_address(toxes[pairs[i].tox1], address); | ||
966 | |||
967 | TOX_ERR_FRIEND_ADD test; | ||
968 | uint32_t num = tox_friend_add(toxes[pairs[i].tox2], address, (uint8_t *)"Gentoo", 7, &test); | ||
969 | |||
970 | if (test == TOX_ERR_FRIEND_ADD_ALREADY_SENT) { | ||
971 | goto loop_top; | ||
972 | } | ||
973 | |||
974 | ck_assert_msg(num != UINT32_MAX && test == TOX_ERR_FRIEND_ADD_OK, "Failed to add friend error code: %i", test); | ||
975 | } | ||
976 | |||
977 | while (1) { | ||
978 | uint16_t counter = 0; | ||
979 | |||
980 | for (i = 0; i < NUM_TOXES; ++i) { | ||
981 | for (j = 0; j < tox_self_get_friend_list_size(toxes[i]); ++j) | ||
982 | if (tox_friend_get_connection_status(toxes[i], j, 0) == TOX_CONNECTION_TCP) | ||
983 | ++counter; | ||
984 | } | ||
985 | |||
986 | if (counter == NUM_FRIENDS * 2) { | ||
987 | break; | ||
988 | } | ||
989 | |||
990 | for (i = 0; i < NUM_TOXES; ++i) { | ||
991 | tox_iterate(toxes[i]); | ||
992 | } | ||
993 | |||
994 | c_sleep(50); | ||
995 | } | ||
996 | |||
997 | for (i = 0; i < NUM_TOXES; ++i) { | ||
998 | tox_kill(toxes[i]); | ||
999 | } | ||
1000 | |||
1001 | printf("test_many_clients_tcp_b succeeded, took %llu seconds\n", time(NULL) - cur_time); | ||
1002 | } | ||
1003 | END_TEST | ||
1004 | |||
1005 | |||
812 | #define NUM_GROUP_TOX 32 | 1006 | #define NUM_GROUP_TOX 32 |
813 | 1007 | ||
814 | void g_accept_friend_request(Tox *m, const uint8_t *public_key, const uint8_t *data, size_t length, void *userdata) | 1008 | void g_accept_friend_request(Tox *m, const uint8_t *public_key, const uint8_t *data, size_t length, void *userdata) |
@@ -996,6 +1190,8 @@ Suite *tox_suite(void) | |||
996 | DEFTESTCASE(one); | 1190 | DEFTESTCASE(one); |
997 | DEFTESTCASE_SLOW(few_clients, 50); | 1191 | DEFTESTCASE_SLOW(few_clients, 50); |
998 | DEFTESTCASE_SLOW(many_clients, 150); | 1192 | DEFTESTCASE_SLOW(many_clients, 150); |
1193 | DEFTESTCASE_SLOW(many_clients_tcp, 20); | ||
1194 | DEFTESTCASE_SLOW(many_clients_tcp_b, 20); | ||
999 | DEFTESTCASE_SLOW(many_group, 100); | 1195 | DEFTESTCASE_SLOW(many_group, 100); |
1000 | return s; | 1196 | return s; |
1001 | } | 1197 | } |
diff --git a/auto_tests/toxav_basic_test.c b/auto_tests/toxav_basic_test.c index 9f04dc11..79c5b724 100644 --- a/auto_tests/toxav_basic_test.c +++ b/auto_tests/toxav_basic_test.c | |||
@@ -66,8 +66,8 @@ void t_toxav_call_state_cb(ToxAV *av, uint32_t friend_number, uint32_t state, vo | |||
66 | } | 66 | } |
67 | void t_toxav_receive_video_frame_cb(ToxAV *av, uint32_t friend_number, | 67 | void t_toxav_receive_video_frame_cb(ToxAV *av, uint32_t friend_number, |
68 | uint16_t width, uint16_t height, | 68 | uint16_t width, uint16_t height, |
69 | uint8_t const *y, uint8_t const *u, uint8_t const *v, | 69 | uint8_t const *y, uint8_t const *u, uint8_t const *v, uint8_t const *a, |
70 | int32_t ystride, int32_t ustride, int32_t vstride, | 70 | int32_t ystride, int32_t ustride, int32_t vstride, int32_t astride, |
71 | void *user_data) | 71 | void *user_data) |
72 | { | 72 | { |
73 | (void) av; | 73 | (void) av; |
@@ -185,13 +185,13 @@ START_TEST(test_AV_flows) | |||
185 | 185 | ||
186 | toxav_callback_call(AliceAV, t_toxav_call_cb, &AliceCC); | 186 | toxav_callback_call(AliceAV, t_toxav_call_cb, &AliceCC); |
187 | toxav_callback_call_state(AliceAV, t_toxav_call_state_cb, &AliceCC); | 187 | toxav_callback_call_state(AliceAV, t_toxav_call_state_cb, &AliceCC); |
188 | toxav_callback_receive_video_frame(AliceAV, t_toxav_receive_video_frame_cb, &AliceCC); | 188 | toxav_callback_video_receive_frame(AliceAV, t_toxav_receive_video_frame_cb, &AliceCC); |
189 | toxav_callback_receive_audio_frame(AliceAV, t_toxav_receive_audio_frame_cb, &AliceCC); | 189 | toxav_callback_audio_receive_frame(AliceAV, t_toxav_receive_audio_frame_cb, &AliceCC); |
190 | 190 | ||
191 | toxav_callback_call(BobAV, t_toxav_call_cb, &BobCC); | 191 | toxav_callback_call(BobAV, t_toxav_call_cb, &BobCC); |
192 | toxav_callback_call_state(BobAV, t_toxav_call_state_cb, &BobCC); | 192 | toxav_callback_call_state(BobAV, t_toxav_call_state_cb, &BobCC); |
193 | toxav_callback_receive_video_frame(BobAV, t_toxav_receive_video_frame_cb, &BobCC); | 193 | toxav_callback_video_receive_frame(BobAV, t_toxav_receive_video_frame_cb, &BobCC); |
194 | toxav_callback_receive_audio_frame(BobAV, t_toxav_receive_audio_frame_cb, &BobCC); | 194 | toxav_callback_audio_receive_frame(BobAV, t_toxav_receive_audio_frame_cb, &BobCC); |
195 | 195 | ||
196 | printf("Created 2 instances of ToxAV\n"); | 196 | printf("Created 2 instances of ToxAV\n"); |
197 | printf("All set after %llu seconds!\n", time(NULL) - cur_time); | 197 | printf("All set after %llu seconds!\n", time(NULL) - cur_time); |
@@ -214,7 +214,7 @@ START_TEST(test_AV_flows) | |||
214 | long long unsigned int start_time = time(NULL); \ | 214 | long long unsigned int start_time = time(NULL); \ |
215 | \ | 215 | \ |
216 | \ | 216 | \ |
217 | while (BobCC.state != TOXAV_CALL_STATE_END) { \ | 217 | while (BobCC.state != TOXAV_CALL_STATE_FINISHED) { \ |
218 | \ | 218 | \ |
219 | if (BobCC.incoming) { \ | 219 | if (BobCC.incoming) { \ |
220 | TOXAV_ERR_ANSWER rc; \ | 220 | TOXAV_ERR_ANSWER rc; \ |
@@ -228,7 +228,7 @@ START_TEST(test_AV_flows) | |||
228 | } else { \ | 228 | } else { \ |
229 | /* TODO rtp */ \ | 229 | /* TODO rtp */ \ |
230 | \ | 230 | \ |
231 | if (time(NULL) - start_time == 5) { \ | 231 | if (time(NULL) - start_time >= 1) { \ |
232 | \ | 232 | \ |
233 | TOXAV_ERR_CALL_CONTROL rc; \ | 233 | TOXAV_ERR_CALL_CONTROL rc; \ |
234 | toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_CANCEL, &rc); \ | 234 | toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_CANCEL, &rc); \ |
@@ -358,8 +358,10 @@ START_TEST(test_AV_flows) | |||
358 | /* At first try all stuff while in invalid state */ | 358 | /* At first try all stuff while in invalid state */ |
359 | ck_assert(!toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_PAUSE, NULL)); | 359 | ck_assert(!toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_PAUSE, NULL)); |
360 | ck_assert(!toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_RESUME, NULL)); | 360 | ck_assert(!toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_RESUME, NULL)); |
361 | ck_assert(!toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_TOGGLE_MUTE_AUDIO, NULL)); | 361 | ck_assert(!toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_MUTE_AUDIO, NULL)); |
362 | ck_assert(!toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_TOGGLE_HIDE_VIDEO, NULL)); | 362 | ck_assert(!toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_UNMUTE_AUDIO, NULL)); |
363 | ck_assert(!toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_HIDE_VIDEO, NULL)); | ||
364 | ck_assert(!toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_SHOW_VIDEO, NULL)); | ||
363 | 365 | ||
364 | { | 366 | { |
365 | TOXAV_ERR_ANSWER rc; | 367 | TOXAV_ERR_ANSWER rc; |
@@ -377,32 +379,32 @@ START_TEST(test_AV_flows) | |||
377 | printf("Pause and Resume\n"); | 379 | printf("Pause and Resume\n"); |
378 | ck_assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_PAUSE, NULL)); | 380 | ck_assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_PAUSE, NULL)); |
379 | iterate_tox(bootstrap, Alice, Bob); | 381 | iterate_tox(bootstrap, Alice, Bob); |
380 | ck_assert(BobCC.state == TOXAV_CALL_STATE_PAUSED); | 382 | ck_assert(BobCC.state == 0); |
381 | ck_assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_RESUME, NULL)); | 383 | ck_assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_RESUME, NULL)); |
382 | iterate_tox(bootstrap, Alice, Bob); | 384 | iterate_tox(bootstrap, Alice, Bob); |
383 | ck_assert(BobCC.state & (TOXAV_CALL_STATE_SENDING_A | TOXAV_CALL_STATE_SENDING_V)); | 385 | ck_assert(BobCC.state & (TOXAV_CALL_STATE_SENDING_A | TOXAV_CALL_STATE_SENDING_V)); |
384 | 386 | ||
385 | /* Mute/Unmute single */ | 387 | /* Mute/Unmute single */ |
386 | printf("Mute/Unmute single\n"); | 388 | printf("Mute/Unmute single\n"); |
387 | ck_assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_TOGGLE_MUTE_AUDIO, NULL)); | 389 | ck_assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_MUTE_AUDIO, NULL)); |
388 | iterate_tox(bootstrap, Alice, Bob); | 390 | iterate_tox(bootstrap, Alice, Bob); |
389 | ck_assert(BobCC.state ^ TOXAV_CALL_STATE_RECEIVING_A); | 391 | ck_assert(BobCC.state ^ TOXAV_CALL_STATE_RECEIVING_A); |
390 | ck_assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_TOGGLE_MUTE_AUDIO, NULL)); | 392 | ck_assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_UNMUTE_AUDIO, NULL)); |
391 | iterate_tox(bootstrap, Alice, Bob); | 393 | iterate_tox(bootstrap, Alice, Bob); |
392 | ck_assert(BobCC.state & TOXAV_CALL_STATE_RECEIVING_A); | 394 | ck_assert(BobCC.state & TOXAV_CALL_STATE_RECEIVING_A); |
393 | 395 | ||
394 | /* Mute/Unmute both */ | 396 | /* Mute/Unmute both */ |
395 | printf("Mute/Unmute both\n"); | 397 | printf("Mute/Unmute both\n"); |
396 | ck_assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_TOGGLE_MUTE_AUDIO, NULL)); | 398 | ck_assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_MUTE_AUDIO, NULL)); |
397 | iterate_tox(bootstrap, Alice, Bob); | 399 | iterate_tox(bootstrap, Alice, Bob); |
398 | ck_assert(BobCC.state ^ TOXAV_CALL_STATE_RECEIVING_A); | 400 | ck_assert(BobCC.state ^ TOXAV_CALL_STATE_RECEIVING_A); |
399 | ck_assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_TOGGLE_HIDE_VIDEO, NULL)); | 401 | ck_assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_HIDE_VIDEO, NULL)); |
400 | iterate_tox(bootstrap, Alice, Bob); | 402 | iterate_tox(bootstrap, Alice, Bob); |
401 | ck_assert(BobCC.state ^ TOXAV_CALL_STATE_RECEIVING_V); | 403 | ck_assert(BobCC.state ^ TOXAV_CALL_STATE_RECEIVING_V); |
402 | ck_assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_TOGGLE_MUTE_AUDIO, NULL)); | 404 | ck_assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_UNMUTE_AUDIO, NULL)); |
403 | iterate_tox(bootstrap, Alice, Bob); | 405 | iterate_tox(bootstrap, Alice, Bob); |
404 | ck_assert(BobCC.state & TOXAV_CALL_STATE_RECEIVING_A); | 406 | ck_assert(BobCC.state & TOXAV_CALL_STATE_RECEIVING_A); |
405 | ck_assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_TOGGLE_HIDE_VIDEO, NULL)); | 407 | ck_assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_SHOW_VIDEO, NULL)); |
406 | iterate_tox(bootstrap, Alice, Bob); | 408 | iterate_tox(bootstrap, Alice, Bob); |
407 | ck_assert(BobCC.state & TOXAV_CALL_STATE_RECEIVING_V); | 409 | ck_assert(BobCC.state & TOXAV_CALL_STATE_RECEIVING_V); |
408 | 410 | ||
@@ -417,7 +419,7 @@ START_TEST(test_AV_flows) | |||
417 | } | 419 | } |
418 | 420 | ||
419 | iterate_tox(bootstrap, Alice, Bob); | 421 | iterate_tox(bootstrap, Alice, Bob); |
420 | ck_assert(BobCC.state == TOXAV_CALL_STATE_END); | 422 | ck_assert(BobCC.state == TOXAV_CALL_STATE_FINISHED); |
421 | 423 | ||
422 | printf("Success!\n"); | 424 | printf("Success!\n"); |
423 | } | 425 | } |
diff --git a/auto_tests/toxav_many_test.c b/auto_tests/toxav_many_test.c index f913c9d3..a15acce3 100644 --- a/auto_tests/toxav_many_test.c +++ b/auto_tests/toxav_many_test.c | |||
@@ -63,8 +63,8 @@ void t_toxav_call_state_cb(ToxAV *av, uint32_t friend_number, uint32_t state, vo | |||
63 | } | 63 | } |
64 | void t_toxav_receive_video_frame_cb(ToxAV *av, uint32_t friend_number, | 64 | void t_toxav_receive_video_frame_cb(ToxAV *av, uint32_t friend_number, |
65 | uint16_t width, uint16_t height, | 65 | uint16_t width, uint16_t height, |
66 | uint8_t const *y, uint8_t const *u, uint8_t const *v, | 66 | uint8_t const *y, uint8_t const *u, uint8_t const *v, uint8_t const *a, |
67 | int32_t ystride, int32_t ustride, int32_t vstride, | 67 | int32_t ystride, int32_t ustride, int32_t vstride, int32_t stride, |
68 | void *user_data) | 68 | void *user_data) |
69 | { | 69 | { |
70 | (void) av; | 70 | (void) av; |
@@ -115,8 +115,8 @@ ToxAV* setup_av_instance(Tox* tox, CallControl *CC) | |||
115 | 115 | ||
116 | toxav_callback_call(av, t_toxav_call_cb, CC); | 116 | toxav_callback_call(av, t_toxav_call_cb, CC); |
117 | toxav_callback_call_state(av, t_toxav_call_state_cb, CC); | 117 | toxav_callback_call_state(av, t_toxav_call_state_cb, CC); |
118 | toxav_callback_receive_video_frame(av, t_toxav_receive_video_frame_cb, CC); | 118 | toxav_callback_video_receive_frame(av, t_toxav_receive_video_frame_cb, CC); |
119 | toxav_callback_receive_audio_frame(av, t_toxav_receive_audio_frame_cb, CC); | 119 | toxav_callback_audio_receive_frame(av, t_toxav_receive_audio_frame_cb, CC); |
120 | 120 | ||
121 | return av; | 121 | return av; |
122 | } | 122 | } |
@@ -161,22 +161,24 @@ void* call_thread(void* pd) | |||
161 | uint8_t video_y[800*600]; | 161 | uint8_t video_y[800*600]; |
162 | uint8_t video_u[800*600 / 2]; | 162 | uint8_t video_u[800*600 / 2]; |
163 | uint8_t video_v[800*600 / 2]; | 163 | uint8_t video_v[800*600 / 2]; |
164 | uint8_t video_a[800*600]; | ||
164 | 165 | ||
165 | memset(PCM, 0, sizeof(PCM)); | 166 | memset(PCM, 0, sizeof(PCM)); |
166 | memset(video_y, 0, sizeof(video_y)); | 167 | memset(video_y, 0, sizeof(video_y)); |
167 | memset(video_u, 0, sizeof(video_u)); | 168 | memset(video_u, 0, sizeof(video_u)); |
168 | memset(video_v, 0, sizeof(video_v)); | 169 | memset(video_v, 0, sizeof(video_v)); |
170 | memset(video_a, 0, sizeof(video_a)); | ||
169 | 171 | ||
170 | time_t start_time = time(NULL); | 172 | time_t start_time = time(NULL); |
171 | while(time(NULL) - start_time < 4) { | 173 | while(time(NULL) - start_time < 4) { |
172 | toxav_iterate(AliceAV); | 174 | toxav_iterate(AliceAV); |
173 | toxav_iterate(BobAV); | 175 | toxav_iterate(BobAV); |
174 | 176 | ||
175 | toxav_send_audio_frame(AliceAV, friend_number, PCM, 960, 1, 48000, NULL); | 177 | toxav_audio_send_frame(AliceAV, friend_number, PCM, 960, 1, 48000, NULL); |
176 | toxav_send_audio_frame(BobAV, 0, PCM, 960, 1, 48000, NULL); | 178 | toxav_audio_send_frame(BobAV, 0, PCM, 960, 1, 48000, NULL); |
177 | 179 | ||
178 | toxav_send_video_frame(AliceAV, friend_number, 800, 600, video_y, video_u, video_v, NULL); | 180 | toxav_video_send_frame(AliceAV, friend_number, 800, 600, video_y, video_u, video_v, video_a, NULL); |
179 | toxav_send_video_frame(BobAV, 0, 800, 600, video_y, video_u, video_v, NULL); | 181 | toxav_video_send_frame(BobAV, 0, 800, 600, video_y, video_u, video_v, video_a, NULL); |
180 | 182 | ||
181 | c_sleep(10); | 183 | c_sleep(10); |
182 | } | 184 | } |