Lines Matching refs:modseq
25 /* expunges: increase modseq */
28 /* expunges: don't increase modseq */
34 /* flag changes: don't increase modseq */
60 /* flag changes: increase modseq */
108 /* flag changes: increase modseq with old version */
119 /* modseq updates: don't increase modseq */
130 /* modseq updates: increase modseq */
154 /* appends, keyword changes, attribute changes: increase modseq */
160 /* others: don't increase modseq */
272 /* start with modseq=2, because modseq=1 is the initial state */
275 for (uint64_t modseq = 2; modseq <= max_modseq; modseq++) {
281 mail_index_append(trans, modseq, &seq);
283 modseq_next_offset[modseq] = file->sync_offset;
286 /* add a non-modseq updating change */
293 modseq_alt_next_offset[modseq] = file->sync_offset;
301 #define MODSEQ_MATCH(modseq, next_offset) \
302 ((next_offset) == modseq_next_offset[modseq] || \
303 (next_offset) == modseq_alt_next_offset[modseq])
306 uint64_t modseq;
332 modseq = i_rand_minmax(1, max_modseq);
333 test_assert(mail_transaction_log_file_get_modseq_next_offset(file, modseq, &next_offset) == 0);
334 test_assert(MODSEQ_MATCH(modseq, next_offset));
338 for (modseq = 1; modseq <= max_modseq; modseq++) {
339 test_assert(mail_transaction_log_file_get_modseq_next_offset(file, modseq, &next_offset) == 0);
340 test_assert(MODSEQ_MATCH(modseq, next_offset));
347 test_assert(mail_transaction_log_file_get_highest_modseq_at(file, modseq_next_offset[1], &modseq, &error) == 0);
348 test_assert(modseq == 1);
350 test_assert(mail_transaction_log_file_get_highest_modseq_at(file, file->sync_offset, &modseq, &error) == 0);
351 test_assert(modseq == max_modseq);
354 modseq = i_rand_minmax(1, max_modseq);
355 test_assert(mail_transaction_log_file_get_highest_modseq_at(file, modseq_next_offset[modseq], &modseq_at, &error) == 0);
356 test_assert(modseq_at == modseq);
357 test_assert(mail_transaction_log_file_get_highest_modseq_at(file, modseq_alt_next_offset[modseq], &modseq_at, &error) == 0);
358 test_assert(modseq_at == modseq);
362 for (modseq = 1; modseq <= max_modseq; modseq++) {
363 test_assert(mail_transaction_log_file_get_highest_modseq_at(file, modseq_next_offset[modseq], &modseq_at, &error) == 0);
364 test_assert(modseq_at == modseq);
381 /* add modseq=2 */
393 test_expect_error_string("Transaction log modseq tracking is corrupted");