summaryrefslogtreecommitdiffstats
path: root/libglusterfs
diff options
context:
space:
mode:
Diffstat (limited to 'libglusterfs')
-rw-r--r--libglusterfs/src/Makefile.am16
-rw-r--r--libglusterfs/src/mem-pool.c9
-rw-r--r--libglusterfs/src/unittest/mem_pool_unittest.c31
3 files changed, 42 insertions, 14 deletions
diff --git a/libglusterfs/src/Makefile.am b/libglusterfs/src/Makefile.am
index 25ee4c27a8b..de1b9b0b1f2 100644
--- a/libglusterfs/src/Makefile.am
+++ b/libglusterfs/src/Makefile.am
@@ -58,3 +58,19 @@ 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 #####
+CLEANFILES += *.gcda *.gcno *_xunit.xml
+noinst_PROGRAMS =
+TESTS =
+
+mem_pool_unittest_CPPFLAGS = $(libglusterfs_la_CPPFLAGS)
+mem_pool_unittest_SOURCES = mem-pool.c \
+ mem-pool.h \
+ unittest/mem_pool_unittest.c \
+ unittest/log_mock.c \
+ unittest/global_mock.c
+mem_pool_unittest_CFLAGS = $(UNITTEST_CFLAGS)
+mem_pool_unittest_LDFLAGS = $(UNITTEST_LDFLAGS)
+noinst_PROGRAMS += mem_pool_unittest
+TESTS += mem_pool_unittest
diff --git a/libglusterfs/src/mem-pool.c b/libglusterfs/src/mem-pool.c
index 356cfdb78ca..093592ec056 100644
--- a/libglusterfs/src/mem-pool.c
+++ b/libglusterfs/src/mem-pool.c
@@ -24,17 +24,24 @@
#define GLUSTERFS_ENV_MEM_ACCT_STR "GLUSTERFS_DISABLE_MEM_ACCT"
+#include <cmockery/pbc.h>
+#include <cmockery/cmockery_override.h>
+
void
gf_mem_acct_enable_set (void *data)
{
glusterfs_ctx_t *ctx = NULL;
+ REQUIRE(data != NULL);
+
ctx = data;
GF_ASSERT (ctx != NULL);
ctx->mem_acct_enable = 1;
+ ENSURE(1 == ctx->mem_acct_enable);
+
return;
}
@@ -151,6 +158,8 @@ __gf_realloc (void *ptr, size_t size)
if (!THIS->ctx->mem_acct_enable)
return REALLOC (ptr, size);
+ REQUIRE(NULL != ptr);
+
tot_size = size + GF_MEM_HEADER_SIZE + GF_MEM_TRAILER_SIZE;
orig_ptr = (char *)ptr - 8 - 4;
diff --git a/libglusterfs/src/unittest/mem_pool_unittest.c b/libglusterfs/src/unittest/mem_pool_unittest.c
index 3c0724d65e5..0d7aa199df0 100644
--- a/libglusterfs/src/unittest/mem_pool_unittest.c
+++ b/libglusterfs/src/unittest/mem_pool_unittest.c
@@ -35,8 +35,8 @@ typedef struct __attribute__((packed)) {
* Prototypes to private functions
*/
int
-gf_mem_set_acct_info (xlator_t *xl, char **alloc_ptr,
- size_t size, uint32_t type);
+gf_mem_set_acct_info (xlator_t *xl, char **alloc_ptr, size_t size,
+ uint32_t type, const char *typestr);
/*
* Helper functions
@@ -137,14 +137,14 @@ test_gf_mem_set_acct_info_asserts(void **state)
// Check xl is NULL
- expect_assert_failure(gf_mem_set_acct_info(NULL, &alloc_ptr, size, type));
+ expect_assert_failure(gf_mem_set_acct_info(NULL, &alloc_ptr, size, type, ""));
// Check xl->mem_acct.rec = NULL
- expect_assert_failure(gf_mem_set_acct_info(&xltest, &alloc_ptr, 0, type));
+ expect_assert_failure(gf_mem_set_acct_info(&xltest, &alloc_ptr, 0, type, ""));
// Check type <= xl->mem_acct.num_types
type = 100;
- expect_assert_failure(gf_mem_set_acct_info(&xltest, &alloc_ptr, 0, type));
+ expect_assert_failure(gf_mem_set_acct_info(&xltest, &alloc_ptr, 0, type, ""));
// Check alloc is NULL
- assert_int_equal(-1, gf_mem_set_acct_info(&xltest, NULL, size, type));
+ assert_int_equal(-1, gf_mem_set_acct_info(&xltest, NULL, size, type, ""));
// Initialize xl
xl = helper_xlator_init(10);
@@ -153,7 +153,7 @@ test_gf_mem_set_acct_info_asserts(void **state)
type = 100;
assert_true(NULL != xl->mem_acct.rec);
assert_true(type > xl->mem_acct.num_types);
- expect_assert_failure(gf_mem_set_acct_info(xl, &alloc_ptr, size, type));
+ expect_assert_failure(gf_mem_set_acct_info(xl, &alloc_ptr, size, type, ""));
helper_xlator_destroy(xl);
}
@@ -166,20 +166,23 @@ test_gf_mem_set_acct_info_memory(void **state)
char *temp_ptr;
size_t size;
uint32_t type;
+ const char *typestr = "TEST";
size = 8196;
type = 9;
// Initialize xl
xl = helper_xlator_init(10);
+ assert_null(xl->mem_acct.rec[type].typestr);
// Test allocation
temp_ptr = test_calloc(1, size + GF_MEM_HEADER_SIZE + GF_MEM_TRAILER_SIZE);
assert_non_null(temp_ptr);
alloc_ptr = temp_ptr;
- gf_mem_set_acct_info(xl, &alloc_ptr, size, type);
+ gf_mem_set_acct_info(xl, &alloc_ptr, size, type, typestr);
//Check values
+ assert_ptr_equal(typestr, xl->mem_acct.rec[type].typestr);
assert_int_equal(xl->mem_acct.rec[type].size, size);
assert_int_equal(xl->mem_acct.rec[type].num_allocs, 1);
assert_int_equal(xl->mem_acct.rec[type].total_allocs, 1);
@@ -220,7 +223,7 @@ test_gf_calloc_default_calloc(void **state)
// Call __gf_calloc
size = 1024;
type = 3;
- mem = __gf_calloc(1, size, type);
+ mem = __gf_calloc(1, size, type, "3");
assert_non_null(mem);
memset(mem, 0x5A, size);
@@ -254,7 +257,7 @@ test_gf_calloc_mem_acct_enabled(void **state)
// Call __gf_calloc
size = 1024;
type = 3;
- mem = __gf_calloc(1, size, type);
+ mem = __gf_calloc(1, size, type, "3");
assert_non_null(mem);
memset(mem, 0x5A, size);
@@ -287,7 +290,7 @@ test_gf_malloc_default_malloc(void **state)
// Call __gf_malloc
size = 1024;
type = 3;
- mem = __gf_malloc(size, type);
+ mem = __gf_malloc(size, type, "3");
assert_non_null(mem);
memset(mem, 0x5A, size);
@@ -321,7 +324,7 @@ test_gf_malloc_mem_acct_enabled(void **state)
// Call __gf_malloc
size = 1024;
type = 3;
- mem = __gf_malloc(size, type);
+ mem = __gf_malloc(size, type, "3");
assert_non_null(mem);
memset(mem, 0x5A, size);
@@ -354,7 +357,7 @@ test_gf_realloc_default_realloc(void **state)
// Call __gf_malloc then realloc
size = 10;
type = 3;
- mem = __gf_malloc(size, type);
+ mem = __gf_malloc(size, type, "3");
assert_non_null(mem);
memset(mem, 0xA5, size);
@@ -393,7 +396,7 @@ test_gf_realloc_mem_acct_enabled(void **state)
// Call __gf_malloc then realloc
size = 1024;
type = 3;
- mem = __gf_malloc(size, type);
+ mem = __gf_malloc(size, type, "3");
assert_non_null(mem);
memset(mem, 0xA5, size);