diff options
Diffstat (limited to 'libglusterfs')
-rw-r--r-- | libglusterfs/src/Makefile.am | 6 | ||||
-rw-r--r-- | libglusterfs/src/mem-pool.c | 3 | ||||
-rw-r--r-- | libglusterfs/src/mem-pool.h | 4 | ||||
-rw-r--r-- | libglusterfs/src/unittest/global_mock.c | 2 | ||||
-rw-r--r-- | libglusterfs/src/unittest/log_mock.c | 2 | ||||
-rw-r--r-- | libglusterfs/src/unittest/mem_pool_unittest.c | 45 | ||||
-rw-r--r-- | libglusterfs/src/unittest/unittest.h | 45 |
7 files changed, 81 insertions, 26 deletions
diff --git a/libglusterfs/src/Makefile.am b/libglusterfs/src/Makefile.am index 181babe85b0..3d1de02e894 100644 --- a/libglusterfs/src/Makefile.am +++ b/libglusterfs/src/Makefile.am @@ -47,7 +47,8 @@ noinst_HEADERS = common-utils.h defaults.h dict.h glusterfs.h hashfn.h timespec. gidcache.h client_t.h glusterfs-acl.h glfs-message-id.h \ template-component-messages.h strfd.h syncop-utils.h parse-utils.h \ $(CONTRIBDIR)/mount/mntent_compat.h lvm-defaults.h \ - $(CONTRIBDIR)/libexecinfo/execinfo_compat.h + $(CONTRIBDIR)/libexecinfo/execinfo_compat.h \ + unittest/unittest.h EXTRA_DIST = graph.l graph.y @@ -61,7 +62,7 @@ y.tab.h: graph.y CLEANFILES = graph.lex.c y.tab.c y.tab.h CONFIG_CLEAN_FILES = $(CONTRIB_BUILDDIR)/uuid/uuid_types.h -#### UNIT TESTS ##### +if UNITTEST CLEANFILES += *.gcda *.gcno *_xunit.xml noinst_PROGRAMS = TESTS = @@ -76,3 +77,4 @@ mem_pool_unittest_CFLAGS = $(UNITTEST_CFLAGS) mem_pool_unittest_LDFLAGS = $(UNITTEST_LDFLAGS) noinst_PROGRAMS += mem_pool_unittest TESTS += mem_pool_unittest +endif diff --git a/libglusterfs/src/mem-pool.c b/libglusterfs/src/mem-pool.c index 019be95e37e..3bba30fc72e 100644 --- a/libglusterfs/src/mem-pool.c +++ b/libglusterfs/src/mem-pool.c @@ -24,8 +24,7 @@ #define GLUSTERFS_ENV_MEM_ACCT_STR "GLUSTERFS_DISABLE_MEM_ACCT" -#include <cmockery/pbc.h> -#include <cmockery/cmockery_override.h> +#include "unittest/unittest.h" void gf_mem_acct_enable_set (void *data) diff --git a/libglusterfs/src/mem-pool.h b/libglusterfs/src/mem-pool.h index a6adb6cc8c2..88ec9705604 100644 --- a/libglusterfs/src/mem-pool.h +++ b/libglusterfs/src/mem-pool.h @@ -26,7 +26,9 @@ * unit test versions */ #ifdef UNIT_TESTING -#include <cmockery/cmockery_override.h> +#include <stddef.h> +#include <setjmp.h> +#include <cmocka.h> #endif #define GF_MEM_HEADER_SIZE (4 + sizeof (size_t) + sizeof (xlator_t *) + 4 + 8) diff --git a/libglusterfs/src/unittest/global_mock.c b/libglusterfs/src/unittest/global_mock.c index b50638d1023..afdadc4e868 100644 --- a/libglusterfs/src/unittest/global_mock.c +++ b/libglusterfs/src/unittest/global_mock.c @@ -16,7 +16,7 @@ #include <setjmp.h> #include <inttypes.h> -#include <cmockery/cmockery.h> +#include <cmocka.h> xlator_t **__glusterfs_this_location () { diff --git a/libglusterfs/src/unittest/log_mock.c b/libglusterfs/src/unittest/log_mock.c index fec48bafc19..b35e03b3618 100644 --- a/libglusterfs/src/unittest/log_mock.c +++ b/libglusterfs/src/unittest/log_mock.c @@ -16,7 +16,7 @@ #include <setjmp.h> #include <inttypes.h> -#include <cmockery/cmockery.h> +#include <cmocka.h> int _gf_log (const char *domain, const char *file, const char *function, int32_t line, gf_loglevel_t level, diff --git a/libglusterfs/src/unittest/mem_pool_unittest.c b/libglusterfs/src/unittest/mem_pool_unittest.c index 0d7aa199df0..906ebb0a7f3 100644 --- a/libglusterfs/src/unittest/mem_pool_unittest.c +++ b/libglusterfs/src/unittest/mem_pool_unittest.c @@ -17,8 +17,15 @@ #include <setjmp.h> #include <inttypes.h> #include <string.h> -#include <cmockery/pbc.h> -#include <cmockery/cmockery.h> +#include <cmocka_pbc.h> +#include <cmocka.h> + +#ifndef assert_ptr_equal +#define assert_ptr_equal(a, b) \ + _assert_int_equal(cast_ptr_to_largest_integral_type(a), \ + cast_ptr_to_largest_integral_type(b), \ + __FILE__, __LINE__) +#endif /* * memory header for gf_mem_set_acct_info @@ -252,7 +259,7 @@ test_gf_calloc_mem_acct_enabled(void **state) xl->ctx->mem_acct_enable = 1; // For line mem-pool.c:115 and mem-pool:118 - will_always_return(__glusterfs_this_location, &xl); + will_return_always(__glusterfs_this_location, &xl); // Call __gf_calloc size = 1024; @@ -319,7 +326,7 @@ test_gf_malloc_mem_acct_enabled(void **state) xl->ctx->mem_acct_enable = 1; // For line mem-pool.c:115 and mem-pool:118 - will_always_return(__glusterfs_this_location, &xl); + will_return_always(__glusterfs_this_location, &xl); // Call __gf_malloc size = 1024; @@ -352,7 +359,7 @@ test_gf_realloc_default_realloc(void **state) // Initialize xl xl = helper_xlator_init(10); assert_int_equal(xl->ctx->mem_acct_enable, 0); - will_always_return(__glusterfs_this_location, &xl); + will_return_always(__glusterfs_this_location, &xl); // Call __gf_malloc then realloc size = 10; @@ -391,7 +398,7 @@ test_gf_realloc_mem_acct_enabled(void **state) xl->ctx->mem_acct_enable = 1; // For line mem-pool.c:115 and mem-pool:118 - will_always_return(__glusterfs_this_location, &xl); + will_return_always(__glusterfs_this_location, &xl); // Call __gf_malloc then realloc size = 1024; @@ -436,7 +443,7 @@ test_gf_realloc_ptr(void **state) assert_int_equal(xl->ctx->mem_acct_enable, 0); // For line mem-pool.c:115 and mem-pool:118 - will_always_return(__glusterfs_this_location, &xl); + will_return_always(__glusterfs_this_location, &xl); // Tests according to the manpage for realloc @@ -458,18 +465,18 @@ test_gf_realloc_ptr(void **state) } int main(void) { - const UnitTest tests[] = { - unit_test(test_gf_mem_acct_enable_set), - unit_test(test_gf_mem_set_acct_info_asserts), - unit_test(test_gf_mem_set_acct_info_memory), - unit_test(test_gf_calloc_default_calloc), - unit_test(test_gf_calloc_mem_acct_enabled), - unit_test(test_gf_malloc_default_malloc), - unit_test(test_gf_malloc_mem_acct_enabled), - unit_test(test_gf_realloc_default_realloc), - unit_test(test_gf_realloc_mem_acct_enabled), - unit_test(test_gf_realloc_ptr), + const struct CMUnitTest libglusterfs_mem_pool_tests[] = { + cmocka_unit_test(test_gf_mem_acct_enable_set), + cmocka_unit_test(test_gf_mem_set_acct_info_asserts), + cmocka_unit_test(test_gf_mem_set_acct_info_memory), + cmocka_unit_test(test_gf_calloc_default_calloc), + cmocka_unit_test(test_gf_calloc_mem_acct_enabled), + cmocka_unit_test(test_gf_malloc_default_malloc), + cmocka_unit_test(test_gf_malloc_mem_acct_enabled), + cmocka_unit_test(test_gf_realloc_default_realloc), + cmocka_unit_test(test_gf_realloc_mem_acct_enabled), + cmocka_unit_test(test_gf_realloc_ptr), }; - return run_tests(tests, "libglusterfs_mem_pool"); + return cmocka_run_group_tests(libglusterfs_mem_pool_tests, NULL, NULL); } diff --git a/libglusterfs/src/unittest/unittest.h b/libglusterfs/src/unittest/unittest.h new file mode 100644 index 00000000000..6320217db0d --- /dev/null +++ b/libglusterfs/src/unittest/unittest.h @@ -0,0 +1,45 @@ +/* + Copyright (c) 2015 Red Hat, Inc. <http://www.redhat.com> + This file is part of GlusterFS. + + This file is licensed to you under your choice of the GNU Lesser + General Public License, version 3 or any later version (LGPLv3 or + later), or the GNU General Public License, version 2 (GPLv2), in all + cases as published by the Free Software Foundation. +*/ + +#ifndef _GF_UNITTEST_H_ +#define _GF_UNITTEST_H_ + +#ifdef UNIT_TESTING +#include <stdarg.h> +#include <stddef.h> +#include <setjmp.h> +#include <cmocka_pbc.h> +#include <cmocka.h> + +extern void mock_assert(const int result, const char* const expression, + const char * const file, const int line); + +// Change GF_CALLOC and GF_FREE to use +// cmocka memory allocation versions +#ifdef UNIT_TESTING +#undef GF_CALLOC +#define GF_CALLOC(n, s, t) test_calloc(n, s) +#undef GF_FREE +#define GF_FREE test_free + +/* Catch intended assert()'s while unit-testing */ +extern void mock_assert(const int result, const char* const expression, + const char * const file, const int line); + +#undef assert +#define assert(expression) \ + mock_assert((int)(expression), #expression, __FILE__, __LINE__); +#endif +#else +#define REQUIRE(p) /**/ +#define ENSURE(p) /**/ +#endif + +#endif /* _GF_UNITTEST */ |