Mercurial > dovecot > core-2.2
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 |
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 } |