annotate src/lib-index/test-mail-index-map.c @ 22576:707ae9de3812

lib: istream-multiplex - Minor code cleanup Avoid propagating the error twice, and avoid any confusion about what "got" actually contains.
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Thu, 05 Oct 2017 20:24:11 +0300
parents 2e2563132d5f
children cb108f786fb4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
21390
2e2563132d5f Updated copyright notices to include the year 2017.
Stephan Bosch <stephan.bosch@dovecot.fi>
parents: 21389
diff changeset
1 /* Copyright (c) 2016-2017 Dovecot authors, see the included COPYING file */
19667
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
2
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
3 #include "lib.h"
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
4 #include "array.h"
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
5 #include "test-common.h"
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
6 #include "mail-index-private.h"
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
7 #include "mail-index-modseq.h"
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
8 #include "mail-index-transaction-private.h"
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
9
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
10 static void test_mail_index_map_lookup_seq_range_count(unsigned int messages_count)
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
11 {
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
12 struct mail_index_record_map rec_map;
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
13 struct mail_index_map map;
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
14 uint32_t seq, first_uid, last_uid, first_seq, last_seq, max_uid;
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
15
21389
59437f8764c6 global: Replaced all instances of memset(p, 0, sizeof(*p)) with the new i_zero() macro.
Stephan Bosch <stephan.bosch@dovecot.fi>
parents: 19673
diff changeset
16 i_zero(&map);
59437f8764c6 global: Replaced all instances of memset(p, 0, sizeof(*p)) with the new i_zero() macro.
Stephan Bosch <stephan.bosch@dovecot.fi>
parents: 19673
diff changeset
17 i_zero(&rec_map);
19667
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
18 map.rec_map = &rec_map;
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
19 map.hdr.messages_count = messages_count;
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
20 map.hdr.record_size = sizeof(struct mail_index_record);
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
21 rec_map.records_count = map.hdr.messages_count;
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
22 rec_map.records = i_new(struct mail_index_record, map.hdr.messages_count);
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
23
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
24 for (seq = 1; seq <= map.hdr.messages_count; seq++)
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
25 MAIL_INDEX_REC_AT_SEQ(&map, seq)->uid = seq*2;
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
26 max_uid = (seq-1)*2;
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
27 map.hdr.next_uid = max_uid + 1;
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
28
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
29 for (first_uid = 2; first_uid <= max_uid; first_uid++) {
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
30 for (last_uid = first_uid; last_uid <= max_uid; last_uid++) {
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
31 if (first_uid == last_uid && first_uid%2 != 0)
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
32 continue;
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
33 mail_index_map_lookup_seq_range(&map, first_uid, last_uid, &first_seq, &last_seq);
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
34 test_assert((first_uid+1)/2 == first_seq && last_uid/2 == last_seq);
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
35 }
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
36 }
19673
f22a6d0198c4 lib-index: Memory leak fix for test-mail-index-map
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 19667
diff changeset
37 i_free(rec_map.records);
19667
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
38 }
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
39
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
40 static void test_mail_index_map_lookup_seq_range(void)
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
41 {
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
42 unsigned int i;
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
43
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
44 test_begin("mail index map lookup seq range");
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
45 for (i = 1; i < 20; i++)
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
46 test_mail_index_map_lookup_seq_range_count(i);
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
47 test_end();
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
48 }
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
49
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
50 int main(void)
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
51 {
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
52 static void (*test_functions[])(void) = {
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
53 test_mail_index_map_lookup_seq_range,
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
54 NULL
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
55 };
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
56 return test_run(test_functions);
36e7280c42a5 lib-index: Added unit test to mail_index_map_lookup_seq_range()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
57 }