diff options
author | irungentoo <irungentoo@gmail.com> | 2015-03-17 15:05:17 -0400 |
---|---|---|
committer | irungentoo <irungentoo@gmail.com> | 2015-03-17 15:05:17 -0400 |
commit | ea8d27259f7d0314b08f6eb32edf15fec3822530 (patch) | |
tree | 1479c057231a83715963a9c4edf41f8dbb2c7a70 /auto_tests | |
parent | e072079620d7353fc06e1c2ba6d4b5228d444422 (diff) |
Added tox_file_send_seek() function to api.
This function can be used to seek an incoming file tranfer right
before accepting it.
It is meant to be used to resume incomplete file tranfers by clients.
Diffstat (limited to 'auto_tests')
-rw-r--r-- | auto_tests/tox_test.c | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/auto_tests/tox_test.c b/auto_tests/tox_test.c index 942931a1..31f65505 100644 --- a/auto_tests/tox_test.c +++ b/auto_tests/tox_test.c | |||
@@ -100,6 +100,9 @@ void handle_custom_packet(Tox *m, uint32_t friend_num, const uint8_t *data, size | |||
100 | return; | 100 | return; |
101 | } | 101 | } |
102 | 102 | ||
103 | uint64_t size_recv; | ||
104 | uint64_t sending_pos; | ||
105 | |||
103 | uint8_t file_cmp_id[TOX_FILE_ID_LENGTH]; | 106 | uint8_t file_cmp_id[TOX_FILE_ID_LENGTH]; |
104 | uint8_t filenum; | 107 | uint8_t filenum; |
105 | uint32_t file_accepted; | 108 | uint32_t file_accepted; |
@@ -137,6 +140,15 @@ void tox_file_receive(Tox *tox, uint32_t friend_number, uint32_t file_number, ui | |||
137 | } | 140 | } |
138 | 141 | ||
139 | file_size = filesize; | 142 | file_size = filesize; |
143 | sending_pos = size_recv = 1337; | ||
144 | |||
145 | TOX_ERR_FILE_SEEK err_s; | ||
146 | |||
147 | if (!tox_file_send_seek(tox, friend_number, file_number, 1337, &err_s)) { | ||
148 | ck_abort_msg("tox_file_send_seek error"); | ||
149 | } | ||
150 | |||
151 | ck_assert_msg(err_s == TOX_ERR_FILE_SEEK_OK, "tox_file_send_seek wrong error"); | ||
140 | 152 | ||
141 | TOX_ERR_FILE_CONTROL error; | 153 | TOX_ERR_FILE_CONTROL error; |
142 | 154 | ||
@@ -145,6 +157,12 @@ void tox_file_receive(Tox *tox, uint32_t friend_number, uint32_t file_number, ui | |||
145 | } else { | 157 | } else { |
146 | ck_abort_msg("tox_file_send_control failed. %i", error); | 158 | ck_abort_msg("tox_file_send_control failed. %i", error); |
147 | } | 159 | } |
160 | |||
161 | if (tox_file_send_seek(tox, friend_number, file_number, 1234, &err_s)) { | ||
162 | ck_abort_msg("tox_file_send_seek no error"); | ||
163 | } | ||
164 | |||
165 | ck_assert_msg(err_s == TOX_ERR_FILE_SEEK_DENIED, "tox_file_send_seek wrong error"); | ||
148 | } | 166 | } |
149 | 167 | ||
150 | uint32_t sendf_ok; | 168 | uint32_t sendf_ok; |
@@ -160,7 +178,6 @@ void file_print_control(Tox *tox, uint32_t friend_number, uint32_t file_number, | |||
160 | } | 178 | } |
161 | 179 | ||
162 | uint8_t sending_num; | 180 | uint8_t sending_num; |
163 | uint64_t sending_pos; | ||
164 | _Bool file_sending_done; | 181 | _Bool file_sending_done; |
165 | void tox_file_request_chunk(Tox *tox, uint32_t friend_number, uint32_t file_number, uint64_t position, size_t length, | 182 | void tox_file_request_chunk(Tox *tox, uint32_t friend_number, uint32_t file_number, uint64_t position, size_t length, |
166 | void *user_data) | 183 | void *user_data) |
@@ -173,7 +190,7 @@ void tox_file_request_chunk(Tox *tox, uint32_t friend_number, uint32_t file_numb | |||
173 | } | 190 | } |
174 | 191 | ||
175 | if (sending_pos != position) { | 192 | if (sending_pos != position) { |
176 | ck_abort_msg("Bad position"); | 193 | ck_abort_msg("Bad position %llu", position); |
177 | return; | 194 | return; |
178 | } | 195 | } |
179 | 196 | ||
@@ -199,7 +216,6 @@ void tox_file_request_chunk(Tox *tox, uint32_t friend_number, uint32_t file_numb | |||
199 | } | 216 | } |
200 | 217 | ||
201 | 218 | ||
202 | uint64_t size_recv; | ||
203 | uint8_t num; | 219 | uint8_t num; |
204 | _Bool file_recv; | 220 | _Bool file_recv; |
205 | void write_file(Tox *tox, uint32_t friendnumber, uint32_t filenumber, uint64_t position, const uint8_t *data, | 221 | void write_file(Tox *tox, uint32_t friendnumber, uint32_t filenumber, uint64_t position, const uint8_t *data, |
@@ -549,7 +565,6 @@ START_TEST(test_few_clients) | |||
549 | ck_assert_msg(tox_file_get_file_id(tox2, 0, fnum, file_cmp_id, &gfierr), "tox_file_get_file_id failed"); | 565 | ck_assert_msg(tox_file_get_file_id(tox2, 0, fnum, file_cmp_id, &gfierr), "tox_file_get_file_id failed"); |
550 | ck_assert_msg(gfierr == TOX_ERR_FILE_GET_OK, "wrong error"); | 566 | ck_assert_msg(gfierr == TOX_ERR_FILE_GET_OK, "wrong error"); |
551 | 567 | ||
552 | |||
553 | while (1) { | 568 | while (1) { |
554 | tox_iterate(tox1); | 569 | tox_iterate(tox1); |
555 | tox_iterate(tox2); | 570 | tox_iterate(tox2); |
@@ -559,8 +574,8 @@ START_TEST(test_few_clients) | |||
559 | if (sendf_ok && file_recv && totalf_size == file_size && size_recv == file_size && sending_pos == size_recv) { | 574 | if (sendf_ok && file_recv && totalf_size == file_size && size_recv == file_size && sending_pos == size_recv) { |
560 | break; | 575 | break; |
561 | } else { | 576 | } else { |
562 | ck_abort_msg("Something went wrong in file transfer %u %u %u %u %u", sendf_ok, file_recv, totalf_size == file_size, | 577 | ck_abort_msg("Something went wrong in file transfer %u %u %u %u %u %llu %llu %llu", sendf_ok, file_recv, |
563 | size_recv == file_size, sending_pos == size_recv); | 578 | totalf_size == file_size, size_recv == file_size, sending_pos == size_recv, totalf_size, size_recv, sending_pos); |
564 | } | 579 | } |
565 | } | 580 | } |
566 | 581 | ||