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 */  | 
