diff options
author | Denis Kenzior <denkenz@gmail.com> | 2010-01-07 13:00:41 -0600 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-01-07 13:00:41 -0600 |
commit | b72451ef8c5f68bb81189c7ddfffb13a78bff675 (patch) | |
tree | 6b4ca9de5ca8b85bd9cfb256666e6a4e1cc733a6 /unit/test-idmap.c | |
parent | 35cbb135f65d93acbc35f76802bcc18693e0e970 (diff) | |
download | ofono-b72451ef8c5f68bb81189c7ddfffb13a78bff675.tar.bz2 |
Add unit test for idmap utilities
Diffstat (limited to 'unit/test-idmap.c')
-rw-r--r-- | unit/test-idmap.c | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/unit/test-idmap.c b/unit/test-idmap.c new file mode 100644 index 00000000..0a8c4ff4 --- /dev/null +++ b/unit/test-idmap.c @@ -0,0 +1,97 @@ +/* + * + * oFono - Open Source Telephony + * + * Copyright (C) 2008-2010 Intel Corporation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <glib.h> + +#include "idmap.h" + +static void test_alloc() +{ + struct idmap *idmap; + unsigned int bit; + + idmap = idmap_new(2); + + g_assert(idmap); + + bit = idmap_alloc(idmap); + g_assert(bit == 1); + + bit = idmap_alloc(idmap); + g_assert(bit == 2); + + bit = idmap_alloc(idmap); + g_assert(bit == 0); + + idmap_put(idmap, 3); + bit = idmap_alloc(idmap); + g_assert(bit == 0); + + idmap_put(idmap, 0); + bit = idmap_alloc(idmap); + g_assert(bit == 0); + + idmap_put(idmap, 1); + bit = idmap_alloc(idmap); + g_assert(bit == 1); + + idmap_put(idmap, 1); + idmap_put(idmap, 2); + bit = idmap_alloc(idmap); + g_assert(bit == 1); + + idmap_free(idmap); +} + +static void test_alloc_next() +{ + struct idmap *idmap; + unsigned int bit; + + idmap = idmap_new(256); + + g_assert(idmap); + + bit = idmap_alloc_next(idmap, 255); + g_assert(bit == 256); + + bit = idmap_alloc_next(idmap, 255); + g_assert(bit == 1); + + bit = idmap_alloc_next(idmap, 1); + g_assert(bit == 2); + + idmap_free(idmap); +} + +int main(int argc, char **argv) +{ + g_test_init(&argc, &argv, NULL); + + g_test_add_func("/testidmap/alloc", test_alloc); + g_test_add_func("/testidmap/alloc_next", test_alloc_next); + + return g_test_run(); +} |