diff options
Diffstat (limited to 'auto_tests/conference_simple_test.c')
-rw-r--r-- | auto_tests/conference_simple_test.c | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/auto_tests/conference_simple_test.c b/auto_tests/conference_simple_test.c index 8d95bba8..f2bede30 100644 --- a/auto_tests/conference_simple_test.c +++ b/auto_tests/conference_simple_test.c | |||
@@ -13,6 +13,7 @@ typedef struct State { | |||
13 | uint32_t id; | 13 | uint32_t id; |
14 | bool self_online; | 14 | bool self_online; |
15 | bool friend_online; | 15 | bool friend_online; |
16 | bool invited_next; | ||
16 | 17 | ||
17 | bool joined; | 18 | bool joined; |
18 | uint32_t conference; | 19 | uint32_t conference; |
@@ -55,19 +56,6 @@ static void handle_conference_invite(Tox *tox, uint32_t friend_number, TOX_CONFE | |||
55 | fprintf(stderr, "tox%d Joined conference %d\n", state->id, state->conference); | 56 | fprintf(stderr, "tox%d Joined conference %d\n", state->id, state->conference); |
56 | state->joined = true; | 57 | state->joined = true; |
57 | } | 58 | } |
58 | |||
59 | // We're tox2, so now we invite tox3. | ||
60 | if (state->id == 2) { | ||
61 | TOX_ERR_CONFERENCE_INVITE err; | ||
62 | tox_conference_invite(tox, 1, state->conference, &err); | ||
63 | |||
64 | if (err != TOX_ERR_CONFERENCE_INVITE_OK) { | ||
65 | fprintf(stderr, "ERROR: %d\n", err); | ||
66 | exit(EXIT_FAILURE); | ||
67 | } | ||
68 | |||
69 | fprintf(stderr, "tox2 invited tox3\n"); | ||
70 | } | ||
71 | } | 59 | } |
72 | 60 | ||
73 | static void handle_conference_message(Tox *tox, uint32_t conference_number, uint32_t peer_number, | 61 | static void handle_conference_message(Tox *tox, uint32_t conference_number, uint32_t peer_number, |
@@ -99,6 +87,25 @@ static void handle_conference_peer_list_changed(Tox *tox, uint32_t conference_nu | |||
99 | 87 | ||
100 | fprintf(stderr, "tox%d has %d peers online\n", state->id, count); | 88 | fprintf(stderr, "tox%d has %d peers online\n", state->id, count); |
101 | state->peers = count; | 89 | state->peers = count; |
90 | |||
91 | // We're tox2, so now we invite tox3. | ||
92 | if (state->id == 2 && !state->invited_next) { | ||
93 | // TODO(zugz): neater way to determine whether we are connected, and when | ||
94 | // we become so | ||
95 | TOX_ERR_CONFERENCE_PEER_QUERY peer_err; | ||
96 | tox_conference_peer_number_is_ours(tox, 0, 0, &peer_err); | ||
97 | |||
98 | if (peer_err != TOX_ERR_CONFERENCE_PEER_QUERY_OK) { | ||
99 | return; | ||
100 | } | ||
101 | |||
102 | TOX_ERR_CONFERENCE_INVITE err; | ||
103 | tox_conference_invite(tox, 1, state->conference, &err); | ||
104 | ck_assert_msg(err == TOX_ERR_CONFERENCE_INVITE_OK, "tox2 failed to invite tox3: err = %d", err); | ||
105 | |||
106 | state->invited_next = true; | ||
107 | fprintf(stderr, "tox2 invited tox3\n"); | ||
108 | } | ||
102 | } | 109 | } |
103 | 110 | ||
104 | int main(void) | 111 | int main(void) |
@@ -195,6 +202,7 @@ int main(void) | |||
195 | TOX_ERR_CONFERENCE_INVITE err; | 202 | TOX_ERR_CONFERENCE_INVITE err; |
196 | tox_conference_invite(tox1, 0, state1.conference, &err); | 203 | tox_conference_invite(tox1, 0, state1.conference, &err); |
197 | ck_assert_msg(err == TOX_ERR_CONFERENCE_INVITE_OK, "failed to invite a friend: err = %d", err); | 204 | ck_assert_msg(err == TOX_ERR_CONFERENCE_INVITE_OK, "failed to invite a friend: err = %d", err); |
205 | state1.invited_next = true; | ||
198 | fprintf(stderr, "tox1 invited tox2\n"); | 206 | fprintf(stderr, "tox1 invited tox2\n"); |
199 | } | 207 | } |
200 | 208 | ||