summaryrefslogtreecommitdiff
path: root/auto_tests
diff options
context:
space:
mode:
authorirungentoo <irungentoo@gmail.com>2015-03-17 15:05:17 -0400
committerirungentoo <irungentoo@gmail.com>2015-03-17 15:05:17 -0400
commitea8d27259f7d0314b08f6eb32edf15fec3822530 (patch)
tree1479c057231a83715963a9c4edf41f8dbb2c7a70 /auto_tests
parente072079620d7353fc06e1c2ba6d4b5228d444422 (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.c27
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
103uint64_t size_recv;
104uint64_t sending_pos;
105
103uint8_t file_cmp_id[TOX_FILE_ID_LENGTH]; 106uint8_t file_cmp_id[TOX_FILE_ID_LENGTH];
104uint8_t filenum; 107uint8_t filenum;
105uint32_t file_accepted; 108uint32_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
150uint32_t sendf_ok; 168uint32_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
162uint8_t sending_num; 180uint8_t sending_num;
163uint64_t sending_pos;
164_Bool file_sending_done; 181_Bool file_sending_done;
165void tox_file_request_chunk(Tox *tox, uint32_t friend_number, uint32_t file_number, uint64_t position, size_t length, 182void 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
202uint64_t size_recv;
203uint8_t num; 219uint8_t num;
204_Bool file_recv; 220_Bool file_recv;
205void write_file(Tox *tox, uint32_t friendnumber, uint32_t filenumber, uint64_t position, const uint8_t *data, 221void 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