diff options
author | hugbubby <hugbubby@protonmail.com> | 2018-07-15 20:55:45 -0700 |
---|---|---|
committer | iphydf <iphydf@users.noreply.github.com> | 2018-07-23 15:10:22 +0000 |
commit | c4d58403f966328fb26e062b71adf05842ff3039 (patch) | |
tree | 6fd8129885666eac4595036b424c6b2e9a8439dc /auto_tests | |
parent | f627a26a7b1c3619ba66f84b87092ff8ba7a95b6 (diff) |
More fixed_width ints and incorporating file_saving_test.c
The file_saving_test.c was not included in the cmake list
and thus was ignored by travis and "make check". I found this
out while introducing ck_assert_msg into the integration test.
Furthermore, removed some variable width integers from encryptsave_test.c,
and the SRunner utilization. Implemmented ck_assert_msg, reorganized some
loops, and removed some longs in file_transfer_test.c.
Diffstat (limited to 'auto_tests')
-rw-r--r-- | auto_tests/encryptsave_test.c | 48 | ||||
-rw-r--r-- | auto_tests/file_saving_test.c | 37 | ||||
-rw-r--r-- | auto_tests/file_transfer_test.c | 144 |
3 files changed, 80 insertions, 149 deletions
diff --git a/auto_tests/encryptsave_test.c b/auto_tests/encryptsave_test.c index 365a9dbb..41a4ed5c 100644 --- a/auto_tests/encryptsave_test.c +++ b/auto_tests/encryptsave_test.c | |||
@@ -40,22 +40,21 @@ static void accept_friend_request(Tox *m, const uint8_t *public_key, const uint8 | |||
40 | } | 40 | } |
41 | } | 41 | } |
42 | 42 | ||
43 | START_TEST(test_known_kdf) | 43 | static void test_known_kdf(void) |
44 | { | 44 | { |
45 | unsigned char out[CRYPTO_SHARED_KEY_SIZE]; | 45 | unsigned char out[CRYPTO_SHARED_KEY_SIZE]; |
46 | int res = crypto_pwhash_scryptsalsa208sha256(out, | 46 | int16_t res = crypto_pwhash_scryptsalsa208sha256(out, |
47 | CRYPTO_SHARED_KEY_SIZE, | 47 | CRYPTO_SHARED_KEY_SIZE, |
48 | pw, | 48 | pw, |
49 | pwlen, | 49 | pwlen, |
50 | test_salt, | 50 | test_salt, |
51 | crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_INTERACTIVE * 8, | 51 | crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_INTERACTIVE * 8, |
52 | crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_INTERACTIVE); | 52 | crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_INTERACTIVE); |
53 | ck_assert_msg(res != -1, "crypto function failed"); | 53 | ck_assert_msg(res != -1, "crypto function failed"); |
54 | ck_assert_msg(memcmp(out, known_key, CRYPTO_SHARED_KEY_SIZE) == 0, "derived key is wrong"); | 54 | ck_assert_msg(memcmp(out, known_key, CRYPTO_SHARED_KEY_SIZE) == 0, "derived key is wrong"); |
55 | } | 55 | } |
56 | END_TEST | ||
57 | 56 | ||
58 | START_TEST(test_save_friend) | 57 | static void test_save_friend(void) |
59 | { | 58 | { |
60 | Tox *tox1 = tox_new_log(nullptr, nullptr, nullptr); | 59 | Tox *tox1 = tox_new_log(nullptr, nullptr, nullptr); |
61 | Tox *tox2 = tox_new_log(nullptr, nullptr, nullptr); | 60 | Tox *tox2 = tox_new_log(nullptr, nullptr, nullptr); |
@@ -137,9 +136,8 @@ START_TEST(test_save_friend) | |||
137 | tox_kill(tox3); | 136 | tox_kill(tox3); |
138 | tox_kill(tox4); | 137 | tox_kill(tox4); |
139 | } | 138 | } |
140 | END_TEST | ||
141 | 139 | ||
142 | START_TEST(test_keys) | 140 | static void test_keys(void) |
143 | { | 141 | { |
144 | TOX_ERR_ENCRYPTION encerr; | 142 | TOX_ERR_ENCRYPTION encerr; |
145 | TOX_ERR_DECRYPTION decerr; | 143 | TOX_ERR_DECRYPTION decerr; |
@@ -188,31 +186,13 @@ START_TEST(test_keys) | |||
188 | tox_pass_key_free(key2); | 186 | tox_pass_key_free(key2); |
189 | tox_pass_key_free(key); | 187 | tox_pass_key_free(key); |
190 | } | 188 | } |
191 | END_TEST | ||
192 | |||
193 | static Suite *encryptsave_suite(void) | ||
194 | { | ||
195 | Suite *s = suite_create("encryptsave"); | ||
196 | |||
197 | DEFTESTCASE_SLOW(known_kdf, 60); | ||
198 | DEFTESTCASE_SLOW(save_friend, 20); | ||
199 | DEFTESTCASE_SLOW(keys, 30); | ||
200 | |||
201 | return s; | ||
202 | } | ||
203 | 189 | ||
204 | int main(void) | 190 | int main(void) |
205 | { | 191 | { |
206 | setvbuf(stdout, nullptr, _IONBF, 0); | 192 | setvbuf(stdout, nullptr, _IONBF, 0); |
193 | test_known_kdf(); | ||
194 | test_save_friend(); | ||
195 | test_keys(); | ||
207 | 196 | ||
208 | Suite *encryptsave = encryptsave_suite(); | 197 | return 0; |
209 | SRunner *test_runner = srunner_create(encryptsave); | ||
210 | |||
211 | int number_failed = 0; | ||
212 | srunner_run_all(test_runner, CK_NORMAL); | ||
213 | number_failed = srunner_ntests_failed(test_runner); | ||
214 | |||
215 | srunner_free(test_runner); | ||
216 | |||
217 | return number_failed; | ||
218 | } | 198 | } |
diff --git a/auto_tests/file_saving_test.c b/auto_tests/file_saving_test.c index 0f27f1d6..a5ba7e1f 100644 --- a/auto_tests/file_saving_test.c +++ b/auto_tests/file_saving_test.c | |||
@@ -33,6 +33,8 @@ | |||
33 | 33 | ||
34 | #include "../testing/misc_tools.h" | 34 | #include "../testing/misc_tools.h" |
35 | #include "../toxcore/ccompat.h" | 35 | #include "../toxcore/ccompat.h" |
36 | #include "check_compat.h" | ||
37 | |||
36 | #include "../toxencryptsave/toxencryptsave.h" | 38 | #include "../toxencryptsave/toxencryptsave.h" |
37 | 39 | ||
38 | static const char *pphrase = "bar"; | 40 | static const char *pphrase = "bar"; |
@@ -60,11 +62,9 @@ static void save_data_encrypted(void) | |||
60 | 62 | ||
61 | TOX_ERR_ENCRYPTION eerr; | 63 | TOX_ERR_ENCRYPTION eerr; |
62 | 64 | ||
63 | if (!tox_pass_encrypt(clear, size - TOX_PASS_ENCRYPTION_EXTRA_LENGTH, (const uint8_t *)pphrase, strlen(pphrase), cipher, | 65 | ck_assert_msg(tox_pass_encrypt(clear, size - TOX_PASS_ENCRYPTION_EXTRA_LENGTH, (const uint8_t *)pphrase, |
64 | &eerr)) { | 66 | strlen(pphrase), cipher, |
65 | fprintf(stderr, "error: could not encrypt, error code %d\n", eerr); | 67 | &eerr), "Could not encrypt, error code %d.", eerr); |
66 | exit(4); | ||
67 | } | ||
68 | 68 | ||
69 | size_t written_value = fwrite(cipher, sizeof(*cipher), size, f); | 69 | size_t written_value = fwrite(cipher, sizeof(*cipher), size, f); |
70 | printf("written written_value = %u of %u\n", (unsigned)written_value, (unsigned)size); | 70 | printf("written written_value = %u of %u\n", (unsigned)written_value, (unsigned)size); |
@@ -79,20 +79,18 @@ static void load_data_decrypted(void) | |||
79 | { | 79 | { |
80 | FILE *f = fopen(savefile, "r"); | 80 | FILE *f = fopen(savefile, "r"); |
81 | fseek(f, 0, SEEK_END); | 81 | fseek(f, 0, SEEK_END); |
82 | long size = ftell(f); | 82 | int64_t size = ftell(f); |
83 | fseek(f, 0, SEEK_SET); | 83 | fseek(f, 0, SEEK_SET); |
84 | 84 | ||
85 | uint8_t *cipher = (uint8_t *)malloc(size); | 85 | uint8_t *cipher = (uint8_t *)malloc(size); |
86 | uint8_t *clear = (uint8_t *)malloc(size - TOX_PASS_ENCRYPTION_EXTRA_LENGTH); | 86 | uint8_t *clear = (uint8_t *)malloc(size - TOX_PASS_ENCRYPTION_EXTRA_LENGTH); |
87 | size_t read_value = fread(cipher, sizeof(*cipher), size, f); | 87 | size_t read_value = fread(cipher, sizeof(*cipher), size, f); |
88 | printf("read read_vavue = %u of %ld\n", (unsigned)read_value, size); | 88 | printf("Read read_vavue = %u of %ld\n", (unsigned)read_value, size); |
89 | 89 | ||
90 | TOX_ERR_DECRYPTION derr; | 90 | TOX_ERR_DECRYPTION derr; |
91 | 91 | ||
92 | if (!tox_pass_decrypt(cipher, size, (const uint8_t *)pphrase, strlen(pphrase), clear, &derr)) { | 92 | ck_assert_msg(tox_pass_decrypt(cipher, size, (const uint8_t *)pphrase, strlen(pphrase), clear, &derr), |
93 | fprintf(stderr, "error: could not decrypt, error code %d\n", derr); | 93 | "Could not decrypt, error code %d.", derr); |
94 | exit(3); | ||
95 | } | ||
96 | 94 | ||
97 | struct Tox_Options *options = tox_options_new(nullptr); | 95 | struct Tox_Options *options = tox_options_new(nullptr); |
98 | 96 | ||
@@ -106,19 +104,14 @@ static void load_data_decrypted(void) | |||
106 | 104 | ||
107 | tox_options_free(options); | 105 | tox_options_free(options); |
108 | 106 | ||
109 | if (t == nullptr) { | 107 | ck_assert_msg(t != nullptr, "tox_new returned the error value %d", err); |
110 | fprintf(stderr, "error: tox_new returned the error value %d\n", err); | ||
111 | return; | ||
112 | } | ||
113 | 108 | ||
114 | uint8_t readname[TOX_MAX_NAME_LENGTH]; | 109 | uint8_t readname[TOX_MAX_NAME_LENGTH]; |
115 | tox_self_get_name(t, readname); | 110 | tox_self_get_name(t, readname); |
116 | readname[tox_self_get_name_size(t)] = '\0'; | 111 | readname[tox_self_get_name_size(t)] = '\0'; |
117 | 112 | ||
118 | if (strcmp((const char *)readname, name)) { | 113 | ck_assert_msg(strcmp((const char *)readname, name) == 0, |
119 | fprintf(stderr, "error: name returned by tox_self_get_name does not match expected result\n"); | 114 | "name returned by tox_self_get_name does not match expected result"); |
120 | exit(2); | ||
121 | } | ||
122 | 115 | ||
123 | free(cipher); | 116 | free(cipher); |
124 | free(clear); | 117 | free(clear); |
@@ -132,11 +125,7 @@ int main(void) | |||
132 | save_data_encrypted(); | 125 | save_data_encrypted(); |
133 | load_data_decrypted(); | 126 | load_data_decrypted(); |
134 | 127 | ||
135 | int ret = remove(savefile); | 128 | ck_assert_msg(remove(savefile) == 0, "Could not remove the savefile."); |
136 | |||
137 | if (ret != 0) { | ||
138 | fprintf(stderr, "error: could not remove savefile\n"); | ||
139 | } | ||
140 | 129 | ||
141 | return 0; | 130 | return 0; |
142 | } | 131 | } |
diff --git a/auto_tests/file_transfer_test.c b/auto_tests/file_transfer_test.c index 94bdb42f..9af339e5 100644 --- a/auto_tests/file_transfer_test.c +++ b/auto_tests/file_transfer_test.c | |||
@@ -40,29 +40,20 @@ static uint64_t file_size; | |||
40 | static void tox_file_receive(Tox *tox, uint32_t friend_number, uint32_t file_number, uint32_t kind, uint64_t filesize, | 40 | static void tox_file_receive(Tox *tox, uint32_t friend_number, uint32_t file_number, uint32_t kind, uint64_t filesize, |
41 | const uint8_t *filename, size_t filename_length, void *userdata) | 41 | const uint8_t *filename, size_t filename_length, void *userdata) |
42 | { | 42 | { |
43 | if (kind != TOX_FILE_KIND_DATA) { | 43 | ck_assert_msg(kind == TOX_FILE_KIND_DATA, "bad kind"); |
44 | ck_abort_msg("Bad kind"); | ||
45 | } | ||
46 | 44 | ||
47 | if (!(filename_length == sizeof("Gentoo.exe") && memcmp(filename, "Gentoo.exe", sizeof("Gentoo.exe")) == 0)) { | 45 | ck_assert_msg(filename_length == sizeof("Gentoo.exe") |
48 | ck_abort_msg("Bad filename"); | 46 | && memcmp(filename, "Gentoo.exe", sizeof("Gentoo.exe")) == 0, "bad filename"); |
49 | } | ||
50 | 47 | ||
51 | uint8_t file_id[TOX_FILE_ID_LENGTH]; | 48 | uint8_t file_id[TOX_FILE_ID_LENGTH]; |
52 | 49 | ||
53 | if (!tox_file_get_file_id(tox, friend_number, file_number, file_id, nullptr)) { | 50 | ck_assert_msg(tox_file_get_file_id(tox, friend_number, file_number, file_id, nullptr), "tox_file_get_file_id error"); |
54 | ck_abort_msg("tox_file_get_file_id error"); | ||
55 | } | ||
56 | 51 | ||
57 | if (memcmp(file_id, file_cmp_id, TOX_FILE_ID_LENGTH) != 0) { | 52 | ck_assert_msg(memcmp(file_id, file_cmp_id, TOX_FILE_ID_LENGTH) == 0, "bad file_id"); |
58 | ck_abort_msg("bad file_id"); | ||
59 | } | ||
60 | 53 | ||
61 | uint8_t empty[TOX_FILE_ID_LENGTH] = {0}; | 54 | uint8_t empty[TOX_FILE_ID_LENGTH] = {0}; |
62 | 55 | ||
63 | if (memcmp(empty, file_cmp_id, TOX_FILE_ID_LENGTH) == 0) { | 56 | ck_assert_msg(memcmp(empty, file_cmp_id, TOX_FILE_ID_LENGTH) != 0, "empty file_id"); |
64 | ck_abort_msg("empty file_id"); | ||
65 | } | ||
66 | 57 | ||
67 | file_size = filesize; | 58 | file_size = filesize; |
68 | 59 | ||
@@ -71,28 +62,23 @@ static void tox_file_receive(Tox *tox, uint32_t friend_number, uint32_t file_num | |||
71 | 62 | ||
72 | TOX_ERR_FILE_SEEK err_s; | 63 | TOX_ERR_FILE_SEEK err_s; |
73 | 64 | ||
74 | if (!tox_file_seek(tox, friend_number, file_number, 1337, &err_s)) { | 65 | ck_assert_msg(tox_file_seek(tox, friend_number, file_number, 1337, &err_s), "tox_file_seek error"); |
75 | ck_abort_msg("tox_file_seek error"); | ||
76 | } | ||
77 | 66 | ||
78 | ck_assert_msg(err_s == TOX_ERR_FILE_SEEK_OK, "tox_file_seek wrong error"); | 67 | ck_assert_msg(err_s == TOX_ERR_FILE_SEEK_OK, "tox_file_seek wrong error"); |
68 | |||
79 | } else { | 69 | } else { |
80 | sending_pos = size_recv = 0; | 70 | sending_pos = size_recv = 0; |
81 | } | 71 | } |
82 | 72 | ||
83 | TOX_ERR_FILE_CONTROL error; | 73 | TOX_ERR_FILE_CONTROL error; |
84 | 74 | ||
85 | if (tox_file_control(tox, friend_number, file_number, TOX_FILE_CONTROL_RESUME, &error)) { | 75 | ck_assert_msg(tox_file_control(tox, friend_number, file_number, TOX_FILE_CONTROL_RESUME, &error), |
86 | ++file_accepted; | 76 | "tox_file_control failed. %i", error); |
87 | } else { | 77 | ++file_accepted; |
88 | ck_abort_msg("tox_file_control failed. %i", error); | ||
89 | } | ||
90 | 78 | ||
91 | TOX_ERR_FILE_SEEK err_s; | 79 | TOX_ERR_FILE_SEEK err_s; |
92 | 80 | ||
93 | if (tox_file_seek(tox, friend_number, file_number, 1234, &err_s)) { | 81 | ck_assert_msg(!tox_file_seek(tox, friend_number, file_number, 1234, &err_s), "tox_file_seek no error"); |
94 | ck_abort_msg("tox_file_seek no error"); | ||
95 | } | ||
96 | 82 | ||
97 | ck_assert_msg(err_s == TOX_ERR_FILE_SEEK_DENIED, "tox_file_seek wrong error"); | 83 | ck_assert_msg(err_s == TOX_ERR_FILE_SEEK_DENIED, "tox_file_seek wrong error"); |
98 | } | 84 | } |
@@ -114,27 +100,19 @@ static bool file_sending_done; | |||
114 | static void tox_file_chunk_request(Tox *tox, uint32_t friend_number, uint32_t file_number, uint64_t position, | 100 | static void tox_file_chunk_request(Tox *tox, uint32_t friend_number, uint32_t file_number, uint64_t position, |
115 | size_t length, void *user_data) | 101 | size_t length, void *user_data) |
116 | { | 102 | { |
117 | if (!sendf_ok) { | 103 | ck_assert_msg(sendf_ok, "didn't get resume control"); |
118 | ck_abort_msg("Didn't get resume control"); | ||
119 | } | ||
120 | 104 | ||
121 | if (sending_pos != position) { | 105 | ck_assert_msg(sending_pos == position, "bad position %lu", (unsigned long)position); |
122 | ck_abort_msg("Bad position %llu", (unsigned long long)position); | ||
123 | } | ||
124 | 106 | ||
125 | if (length == 0) { | 107 | if (length == 0) { |
126 | if (file_sending_done) { | 108 | ck_assert_msg(!file_sending_done, "file sending already done"); |
127 | ck_abort_msg("File sending already done."); | ||
128 | } | ||
129 | 109 | ||
130 | file_sending_done = 1; | 110 | file_sending_done = 1; |
131 | return; | 111 | return; |
132 | } | 112 | } |
133 | 113 | ||
134 | if (position + length > max_sending) { | 114 | if (position + length > max_sending) { |
135 | if (m_send_reached) { | 115 | ck_assert_msg(!m_send_reached, "requested done file transfer"); |
136 | ck_abort_msg("Requested done file transfer."); | ||
137 | } | ||
138 | 116 | ||
139 | length = max_sending - position; | 117 | length = max_sending - position; |
140 | m_send_reached = 1; | 118 | m_send_reached = 1; |
@@ -146,9 +124,9 @@ static void tox_file_chunk_request(Tox *tox, uint32_t friend_number, uint32_t fi | |||
146 | TOX_ERR_FILE_SEND_CHUNK error; | 124 | TOX_ERR_FILE_SEND_CHUNK error; |
147 | tox_file_send_chunk(tox, friend_number, file_number, position, f_data, length, &error); | 125 | tox_file_send_chunk(tox, friend_number, file_number, position, f_data, length, &error); |
148 | 126 | ||
149 | if (error != TOX_ERR_FILE_SEND_CHUNK_OK) { | 127 | |
150 | ck_abort_msg("Could not send chunk, error num=%d pos=%d len=%d", (int)error, (int)position, (int)length); | 128 | ck_assert_msg(error == TOX_ERR_FILE_SEND_CHUNK_OK, |
151 | } | 129 | "could not send chunk, error num=%d pos=%d len=%d", (int)error, (int)position, (int)length); |
152 | 130 | ||
153 | ++sending_num; | 131 | ++sending_num; |
154 | sending_pos += length; | 132 | sending_pos += length; |
@@ -160,9 +138,7 @@ static bool file_recv; | |||
160 | static void write_file(Tox *tox, uint32_t friendnumber, uint32_t filenumber, uint64_t position, const uint8_t *data, | 138 | static void write_file(Tox *tox, uint32_t friendnumber, uint32_t filenumber, uint64_t position, const uint8_t *data, |
161 | size_t length, void *user_data) | 139 | size_t length, void *user_data) |
162 | { | 140 | { |
163 | if (size_recv != position) { | 141 | ck_assert_msg(size_recv == position, "bad position"); |
164 | ck_abort_msg("Bad position"); | ||
165 | } | ||
166 | 142 | ||
167 | if (length == 0) { | 143 | if (length == 0) { |
168 | file_recv = 1; | 144 | file_recv = 1; |
@@ -173,11 +149,9 @@ static void write_file(Tox *tox, uint32_t friendnumber, uint32_t filenumber, uin | |||
173 | memset(f_data, num, length); | 149 | memset(f_data, num, length); |
174 | ++num; | 150 | ++num; |
175 | 151 | ||
176 | if (memcmp(f_data, data, length) == 0) { | 152 | ck_assert_msg(memcmp(f_data, data, length) == 0, "FILE_CORRUPTED"); |
177 | size_recv += length; | 153 | |
178 | } else { | 154 | size_recv += length; |
179 | ck_abort_msg("FILE_CORRUPTED"); | ||
180 | } | ||
181 | } | 155 | } |
182 | 156 | ||
183 | static void file_transfer_test(void) | 157 | static void file_transfer_test(void) |
@@ -233,7 +207,7 @@ static void file_transfer_test(void) | |||
233 | file_accepted = file_size = sendf_ok = size_recv = 0; | 207 | file_accepted = file_size = sendf_ok = size_recv = 0; |
234 | file_recv = 0; | 208 | file_recv = 0; |
235 | max_sending = UINT64_MAX; | 209 | max_sending = UINT64_MAX; |
236 | long long unsigned int f_time = time(nullptr); | 210 | uint64_t f_time = time(nullptr); |
237 | tox_callback_file_recv_chunk(tox3, write_file); | 211 | tox_callback_file_recv_chunk(tox3, write_file); |
238 | tox_callback_file_recv_control(tox2, file_print_control); | 212 | tox_callback_file_recv_control(tox2, file_print_control); |
239 | tox_callback_file_chunk_request(tox2, tox_file_chunk_request); | 213 | tox_callback_file_chunk_request(tox2, tox_file_chunk_request); |
@@ -260,15 +234,13 @@ static void file_transfer_test(void) | |||
260 | tox_iterate(tox3, nullptr); | 234 | tox_iterate(tox3, nullptr); |
261 | 235 | ||
262 | if (file_sending_done) { | 236 | if (file_sending_done) { |
263 | if (sendf_ok && file_recv && totalf_size == file_size && size_recv == file_size && sending_pos == size_recv | 237 | ck_assert_msg(sendf_ok && file_recv && totalf_size == file_size && size_recv == file_size && sending_pos == size_recv |
264 | && file_accepted == 1) { | 238 | && file_accepted == 1, |
265 | break; | 239 | "Something went wrong in file transfer %u %u %u %u %u %u %lu %lu %lu", |
266 | } | 240 | sendf_ok, file_recv, totalf_size == file_size, size_recv == file_size, sending_pos == size_recv, |
267 | 241 | file_accepted == 1, (unsigned long)totalf_size, (unsigned long)size_recv, | |
268 | ck_abort_msg("Something went wrong in file transfer %u %u %u %u %u %u %lu %lu %lu", sendf_ok, file_recv, | 242 | (unsigned long)sending_pos); |
269 | totalf_size == file_size, size_recv == file_size, sending_pos == size_recv, file_accepted == 1, | 243 | break; |
270 | (unsigned long)totalf_size, (unsigned long)size_recv, | ||
271 | (unsigned long)sending_pos); | ||
272 | } | 244 | } |
273 | 245 | ||
274 | uint32_t tox1_interval = tox_iteration_interval(tox1); | 246 | uint32_t tox1_interval = tox_iteration_interval(tox1); |
@@ -290,7 +262,7 @@ static void file_transfer_test(void) | |||
290 | (unsigned long)totalf_size, (unsigned long)size_recv, | 262 | (unsigned long)totalf_size, (unsigned long)size_recv, |
291 | (unsigned long)sending_pos); | 263 | (unsigned long)sending_pos); |
292 | 264 | ||
293 | printf("100MiB file sent in %llu seconds\n", time(nullptr) - f_time); | 265 | printf("100MiB file sent in %lu seconds\n", (unsigned long)(time(nullptr) - f_time)); |
294 | 266 | ||
295 | printf("Starting file streaming transfer test.\n"); | 267 | printf("Starting file streaming transfer test.\n"); |
296 | 268 | ||
@@ -320,23 +292,11 @@ static void file_transfer_test(void) | |||
320 | max_sending = 100 * 1024; | 292 | max_sending = 100 * 1024; |
321 | m_send_reached = 0; | 293 | m_send_reached = 0; |
322 | 294 | ||
323 | while (1) { | 295 | while (!file_sending_done) { |
324 | tox_iterate(tox1, nullptr); | 296 | tox_iterate(tox1, nullptr); |
325 | tox_iterate(tox2, nullptr); | 297 | tox_iterate(tox2, nullptr); |
326 | tox_iterate(tox3, nullptr); | 298 | tox_iterate(tox3, nullptr); |
327 | 299 | ||
328 | if (file_sending_done) { | ||
329 | if (sendf_ok && file_recv && m_send_reached && totalf_size == file_size && size_recv == max_sending | ||
330 | && sending_pos == size_recv && file_accepted == 1) { | ||
331 | break; | ||
332 | } | ||
333 | |||
334 | ck_abort_msg("Something went wrong in file transfer %u %u %u %u %u %u %u %llu %llu %llu %llu", sendf_ok, file_recv, | ||
335 | m_send_reached, totalf_size == file_size, size_recv == max_sending, sending_pos == size_recv, file_accepted == 1, | ||
336 | (unsigned long long)totalf_size, (unsigned long long)file_size, | ||
337 | (unsigned long long)size_recv, (unsigned long long)sending_pos); | ||
338 | } | ||
339 | |||
340 | uint32_t tox1_interval = tox_iteration_interval(tox1); | 300 | uint32_t tox1_interval = tox_iteration_interval(tox1); |
341 | uint32_t tox2_interval = tox_iteration_interval(tox2); | 301 | uint32_t tox2_interval = tox_iteration_interval(tox2); |
342 | uint32_t tox3_interval = tox_iteration_interval(tox3); | 302 | uint32_t tox3_interval = tox_iteration_interval(tox3); |
@@ -344,7 +304,14 @@ static void file_transfer_test(void) | |||
344 | c_sleep(min_u32(tox1_interval, min_u32(tox2_interval, tox3_interval))); | 304 | c_sleep(min_u32(tox1_interval, min_u32(tox2_interval, tox3_interval))); |
345 | } | 305 | } |
346 | 306 | ||
347 | printf("Starting file 0 transfer test.\n"); | 307 | ck_assert_msg(sendf_ok && file_recv && m_send_reached && totalf_size == file_size && size_recv == max_sending |
308 | && sending_pos == size_recv && file_accepted == 1, | ||
309 | "something went wrong in file transfer %u %u %u %u %u %u %u %lu %lu %lu %lu", sendf_ok, file_recv, | ||
310 | m_send_reached, totalf_size == file_size, size_recv == max_sending, sending_pos == size_recv, file_accepted == 1, | ||
311 | (unsigned long)totalf_size, (unsigned long)file_size, | ||
312 | (unsigned long)size_recv, (unsigned long)sending_pos); | ||
313 | |||
314 | printf("starting file 0 transfer test.\n"); | ||
348 | 315 | ||
349 | file_sending_done = 0; | 316 | file_sending_done = 0; |
350 | file_accepted = 0; | 317 | file_accepted = 0; |
@@ -369,30 +336,25 @@ static void file_transfer_test(void) | |||
369 | ck_assert_msg(tox_file_get_file_id(tox2, 0, fnum, file_cmp_id, &gfierr), "tox_file_get_file_id failed"); | 336 | ck_assert_msg(tox_file_get_file_id(tox2, 0, fnum, file_cmp_id, &gfierr), "tox_file_get_file_id failed"); |
370 | ck_assert_msg(gfierr == TOX_ERR_FILE_GET_OK, "wrong error"); | 337 | ck_assert_msg(gfierr == TOX_ERR_FILE_GET_OK, "wrong error"); |
371 | 338 | ||
372 | while (1) { | 339 | while (!file_sending_done) { |
373 | tox_iterate(tox1, nullptr); | ||
374 | tox_iterate(tox2, nullptr); | ||
375 | tox_iterate(tox3, nullptr); | ||
376 | |||
377 | if (file_sending_done) { | ||
378 | if (sendf_ok && file_recv && totalf_size == file_size && size_recv == file_size && sending_pos == size_recv | ||
379 | && file_accepted == 1) { | ||
380 | break; | ||
381 | } | ||
382 | |||
383 | ck_abort_msg("Something went wrong in file transfer %u %u %u %u %u %u %llu %llu %llu", sendf_ok, file_recv, | ||
384 | totalf_size == file_size, size_recv == file_size, sending_pos == size_recv, file_accepted == 1, | ||
385 | (unsigned long long)totalf_size, (unsigned long long)size_recv, | ||
386 | (unsigned long long)sending_pos); | ||
387 | } | ||
388 | |||
389 | uint32_t tox1_interval = tox_iteration_interval(tox1); | 340 | uint32_t tox1_interval = tox_iteration_interval(tox1); |
390 | uint32_t tox2_interval = tox_iteration_interval(tox2); | 341 | uint32_t tox2_interval = tox_iteration_interval(tox2); |
391 | uint32_t tox3_interval = tox_iteration_interval(tox3); | 342 | uint32_t tox3_interval = tox_iteration_interval(tox3); |
392 | 343 | ||
393 | c_sleep(min_u32(tox1_interval, min_u32(tox2_interval, tox3_interval))); | 344 | c_sleep(min_u32(tox1_interval, min_u32(tox2_interval, tox3_interval))); |
345 | |||
346 | tox_iterate(tox1, nullptr); | ||
347 | tox_iterate(tox2, nullptr); | ||
348 | tox_iterate(tox3, nullptr); | ||
394 | } | 349 | } |
395 | 350 | ||
351 | ck_assert_msg(sendf_ok && file_recv && totalf_size == file_size && size_recv == file_size | ||
352 | && sending_pos == size_recv && file_accepted == 1, | ||
353 | "something went wrong in file transfer %u %u %u %u %u %u %llu %llu %llu", sendf_ok, file_recv, | ||
354 | totalf_size == file_size, size_recv == file_size, sending_pos == size_recv, file_accepted == 1, | ||
355 | (unsigned long long)totalf_size, (unsigned long long)size_recv, | ||
356 | (unsigned long long)sending_pos); | ||
357 | |||
396 | printf("file_transfer_test succeeded, took %llu seconds\n", time(nullptr) - cur_time); | 358 | printf("file_transfer_test succeeded, took %llu seconds\n", time(nullptr) - cur_time); |
397 | 359 | ||
398 | tox_kill(tox1); | 360 | tox_kill(tox1); |