summaryrefslogtreecommitdiffstats
path: root/libglusterfs
diff options
context:
space:
mode:
Diffstat (limited to 'libglusterfs')
-rw-r--r--libglusterfs/src/Makefile.am6
-rw-r--r--libglusterfs/src/mem-pool.c3
-rw-r--r--libglusterfs/src/mem-pool.h4
-rw-r--r--libglusterfs/src/unittest/global_mock.c2
-rw-r--r--libglusterfs/src/unittest/log_mock.c2
-rw-r--r--libglusterfs/src/unittest/mem_pool_unittest.c45
-rw-r--r--libglusterfs/src/unittest/unittest.h45
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 */