test-hashmap.c revision 4b3eff61640672bf0b19cb8cdd88ce5e84dcda1c
12b42c76672a66c2d4ea7212c14f8f1b5a62b78dTom Gundersen This file is part of systemd
4149f86d816fc0fef41d35de5beb09bfe81e0d6aBrandon Philips Copyright 2013 Daniel Buch
4149f86d816fc0fef41d35de5beb09bfe81e0d6aBrandon Philips systemd is free software; you can redistribute it and/or modify it
4149f86d816fc0fef41d35de5beb09bfe81e0d6aBrandon Philips under the terms of the GNU Lesser General Public License as published by
4149f86d816fc0fef41d35de5beb09bfe81e0d6aBrandon Philips the Free Software Foundation; either version 2.1 of the License, or
5430f7f2bc7330f3088b894166bf3524a067e3d8Lennart Poettering (at your option) any later version.
4149f86d816fc0fef41d35de5beb09bfe81e0d6aBrandon Philips systemd is distributed in the hope that it will be useful, but
4149f86d816fc0fef41d35de5beb09bfe81e0d6aBrandon Philips WITHOUT ANY WARRANTY; without even the implied warranty of
4149f86d816fc0fef41d35de5beb09bfe81e0d6aBrandon Philips MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
4149f86d816fc0fef41d35de5beb09bfe81e0d6aBrandon Philips Lesser General Public License for more details.
5430f7f2bc7330f3088b894166bf3524a067e3d8Lennart Poettering You should have received a copy of the GNU Lesser General Public License
4149f86d816fc0fef41d35de5beb09bfe81e0d6aBrandon Philips along with systemd; If not, see <http://www.gnu.org/licenses/>.
302fbdf29eb0ad4ca1fe8ee18755edad7db11b37Zbigniew Jędrzejewski-Szmekvoid test_ordered_hashmap_funcs(void);
302fbdf29eb0ad4ca1fe8ee18755edad7db11b37Zbigniew Jędrzejewski-Szmekstatic void test_ordered_hashmap_next(void) {
302fbdf29eb0ad4ca1fe8ee18755edad7db11b37Zbigniew Jędrzejewski-Szmek char *val1, *val2, *val3, *val4, *r;
302fbdf29eb0ad4ca1fe8ee18755edad7db11b37Zbigniew Jędrzejewski-Szmek m = ordered_hashmap_new(&string_hash_ops);
302fbdf29eb0ad4ca1fe8ee18755edad7db11b37Zbigniew Jędrzejewski-Szmek ordered_hashmap_put(m, "key 1", val1);
302fbdf29eb0ad4ca1fe8ee18755edad7db11b37Zbigniew Jędrzejewski-Szmek ordered_hashmap_put(m, "key 2", val2);
302fbdf29eb0ad4ca1fe8ee18755edad7db11b37Zbigniew Jędrzejewski-Szmek ordered_hashmap_put(m, "key 3", val3);
302fbdf29eb0ad4ca1fe8ee18755edad7db11b37Zbigniew Jędrzejewski-Szmek ordered_hashmap_put(m, "key 4", val4);
302fbdf29eb0ad4ca1fe8ee18755edad7db11b37Zbigniew Jędrzejewski-Szmek r = ordered_hashmap_next(m, "key 1");
302fbdf29eb0ad4ca1fe8ee18755edad7db11b37Zbigniew Jędrzejewski-Szmek r = ordered_hashmap_next(m, "key 2");
302fbdf29eb0ad4ca1fe8ee18755edad7db11b37Zbigniew Jędrzejewski-Szmek r = ordered_hashmap_next(m, "key 3");
302fbdf29eb0ad4ca1fe8ee18755edad7db11b37Zbigniew Jędrzejewski-Szmek r = ordered_hashmap_next(m, "key 4");
302fbdf29eb0ad4ca1fe8ee18755edad7db11b37Zbigniew Jędrzejewski-Szmek r = ordered_hashmap_next(NULL, "key 1");
302fbdf29eb0ad4ca1fe8ee18755edad7db11b37Zbigniew Jędrzejewski-Szmek r = ordered_hashmap_next(m, "key 5");
302fbdf29eb0ad4ca1fe8ee18755edad7db11b37Zbigniew Jędrzejewski-Szmekstatic void test_uint64_compare_func(void) {
302fbdf29eb0ad4ca1fe8ee18755edad7db11b37Zbigniew Jędrzejewski-Szmek const uint64_t a = 0x100, b = 0x101;
302fbdf29eb0ad4ca1fe8ee18755edad7db11b37Zbigniew Jędrzejewski-Szmek assert_se(uint64_compare_func(&a, &a) == 0);
302fbdf29eb0ad4ca1fe8ee18755edad7db11b37Zbigniew Jędrzejewski-Szmek assert_se(uint64_compare_func(&a, &b) == -1);
302fbdf29eb0ad4ca1fe8ee18755edad7db11b37Zbigniew Jędrzejewski-Szmek assert_se(uint64_compare_func(&b, &a) == 1);
302fbdf29eb0ad4ca1fe8ee18755edad7db11b37Zbigniew Jędrzejewski-Szmekstatic void test_trivial_compare_func(void) {
302fbdf29eb0ad4ca1fe8ee18755edad7db11b37Zbigniew Jędrzejewski-Szmek assert_se(trivial_compare_func(INT_TO_PTR('a'), INT_TO_PTR('a')) == 0);
302fbdf29eb0ad4ca1fe8ee18755edad7db11b37Zbigniew Jędrzejewski-Szmek assert_se(trivial_compare_func(INT_TO_PTR('a'), INT_TO_PTR('b')) == -1);
302fbdf29eb0ad4ca1fe8ee18755edad7db11b37Zbigniew Jędrzejewski-Szmek assert_se(trivial_compare_func(INT_TO_PTR('b'), INT_TO_PTR('a')) == 1);
302fbdf29eb0ad4ca1fe8ee18755edad7db11b37Zbigniew Jędrzejewski-Szmekstatic void test_string_compare_func(void) {
302fbdf29eb0ad4ca1fe8ee18755edad7db11b37Zbigniew Jędrzejewski-Szmek assert_se(string_compare_func("fred", "wilma") != 0);
302fbdf29eb0ad4ca1fe8ee18755edad7db11b37Zbigniew Jędrzejewski-Szmek assert_se(string_compare_func("fred", "fred") == 0);
302fbdf29eb0ad4ca1fe8ee18755edad7db11b37Zbigniew Jędrzejewski-Szmekint main(int argc, const char *argv[]) {