Mercurial > dovecot > core-2.2
annotate src/lib/test-str-table.c @ 23007:36e01285b5b8
lib: buffer - Improve header comment for buffer_insert() and buffer_delete().
author | Stephan Bosch <stephan.bosch@dovecot.fi> |
---|---|
date | Mon, 18 Mar 2019 00:52:37 +0100 |
parents | cb108f786fb4 |
children |
rev | line source |
---|---|
22713
cb108f786fb4
Updated copyright notices to include the year 2018.
Stephan Bosch <stephan.bosch@dovecot.fi>
parents:
21390
diff
changeset
|
1 /* Copyright (c) 2014-2018 Dovecot authors, see the included COPYING file */ |
18069
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
2 |
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
3 #include "test-lib.h" |
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
4 #include "str-table.h" |
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
5 |
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
6 void test_str_table(void) |
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
7 { |
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
8 struct str_table *table; |
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
9 const char *key1, *key2, *key1_copy, *key2_copy; |
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
10 |
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
11 test_begin("str_table"); |
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
12 table = str_table_init(); |
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
13 |
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
14 key1 = str_table_ref(table, "str1"); |
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
15 key2 = str_table_ref(table, "str2"); |
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
16 test_assert(key1 != key2); |
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
17 key1_copy = str_table_ref(table, "str1"); |
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
18 test_assert(key1_copy == key1); |
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
19 key2_copy = str_table_ref(table, "str2"); |
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
20 test_assert(key2_copy == key2); |
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
21 |
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
22 str_table_unref(table, &key1); |
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
23 test_assert(key1 == NULL); |
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
24 str_table_unref(table, &key1_copy); |
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
25 |
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
26 str_table_unref(table, &key2); |
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
27 str_table_unref(table, &key2_copy); |
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
28 test_assert(str_table_is_empty(table)); |
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
29 |
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
30 str_table_deinit(&table); |
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
31 test_assert(table == NULL); |
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
32 test_end(); |
4c956747c36f
lib: Added str-table API for keeping reference counted strings in a hash table.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
33 } |