libredismodule_la_SOURCES = \
include/redismodule.h\
- src/exstrings.c
+ src/exstrings.c
libredismodule_la_CFLAGS = \
- -std=c11 -fPIC -g \
- -I${includedir} -I${top_srcdir}/include
+ -std=c11 -fPIC -g -Wall -Werror -Wextra \
+ -DREDISMODULE_EXPERIMENTAL_API \
+ -I${includedir} -I${top_srcdir}/include
libredismodule_la_LDFLAGS = $(BASE_LDFLAGS) -avoid-version -module -shared
#pkgincludedir = ${includedir}
-#pkginclude_HEADERS = include/redismodule.h
+#pkginclude_HEADERS = include/redismodule.h
-clean-local:
+clean-local:
rm -rf ${builddir}/libredismodule.pc
+if UNIT_TEST_ENABLED
# UT
CPP_U_TEST=$(CPP_U_TEST_LATEST)
-check_PROGRAMS = redismodule_ut
-#TESTS = ${check_PROGRAMS}
+check_PROGRAMS = redismodule_ut redismodule_ut2
+#TESTS = ${check_PROGRAMS}
redismodule_ut_SOURCES = \
- tst/mock/include/redismodule.h \
- tst/mock/include/exstringsStub.h \
src/exstrings.c \
+ tst/mock/include/commonStub.h \
+ tst/mock/include/exstringsStub.h \
+ tst/mock/include/redismodule.h \
+ tst/mock/src/commonStub.cpp \
tst/mock/src/redismoduleStub.cpp \
- tst/src/main.cpp \
- tst/src/exstrings_test.cpp
+ tst/src/exstrings_test.cpp \
+ tst/src/main.cpp
redismodule_ut_CFLAGS = \
- -std=c11 -g -Wall \
- -fprofile-arcs -ftest-coverage \
- -D__UT__ \
+ -std=c11 -g -Wall \
+ -fprofile-arcs -ftest-coverage \
+ -D__UT__ \
+ $(LIBCPPUTEST_CFLAGS) \
-I${top_srcdir}/tst/mock/include \
-I${includedir} \
-I${top_srcdir}/include \
- -I${CPP_U_TEST_LATEST}/include
+ -I${CPP_U_TEST_LATEST}/include \
+ -Wall -Werror -Wextra
redismodule_ut_CXXFLAGS = \
-std=c++11 -g -Wall \
-fprofile-arcs -ftest-coverage \
-D__UT__ \
+ $(LIBCPPUTEST_CFLAGS) \
-I${top_srcdir}/tst/mock/include \
-I${includedir} \
-I${top_srcdir}/include \
- -I${CPP_U_TEST_LATEST}/include
+ -I${CPP_U_TEST_LATEST}/include \
+ -Wall -Werror -Wextra
redismodule_ut_LDFLAGS = -Wl,-rpath=${libdir} ${UT_COVERAGE_LDFLAGS}
-redismodule_ut_LDADD = -L${libdir} -L${CPP_U_TEST_LATEST}/lib -lCppUTest -lCppUTestExt -lgcov
+redismodule_ut_LDADD = -L${libdir} $(LIBCPPUTEST_LIBS) -lgcov
-test: redismodule_ut
- ./run-tests.sh
+
+redismodule_ut2_SOURCES = \
+ src/exstrings.c \
+ tst/include/ut_helpers.hpp \
+ tst/mock/include/commonStub.h \
+ tst/mock/include/exstringsStub.h \
+ tst/mock/include/redismodule.h \
+ tst/mock/src/commonStub.cpp \
+ tst/mock/src/redismoduleNewStub.cpp \
+ tst/src/exstrings_ndel_test.cpp \
+ tst/src/exstrings_nget_test.cpp \
+ tst/src/main.cpp \
+ tst/src/ut_helpers.cpp
+
+
+redismodule_ut2_CFLAGS = \
+ -std=c11 -g -Wall \
+ -fprofile-arcs -ftest-coverage \
+ -D__UT__ \
+ $(LIBCPPUTEST_CFLAGS) \
+ -I${top_srcdir}/tst/mock/include \
+ -I${includedir} \
+ -I${top_srcdir}/include \
+ -I${CPP_U_TEST_LATEST}/include \
+ -Wall -Werror -Wextra
+
+redismodule_ut2_CXXFLAGS = \
+ -std=c++11 -g -Wall \
+ -fprofile-arcs -ftest-coverage \
+ -D__UT__ \
+ $(LIBCPPUTEST_CFLAGS) \
+ -I${top_srcdir}/tst/mock/include \
+ -I${top_srcdir}/tst/include \
+ -I${includedir} \
+ -I${top_srcdir}/include \
+ -I${CPP_U_TEST_LATEST}/include \
+ -Wall -Werror -Wextra
+
+
+redismodule_ut2_LDFLAGS = -Wl,-rpath=${libdir} ${UT_COVERAGE_LDFLAGS}
+redismodule_ut2_LDADD = -L${libdir} $(LIBCPPUTEST_LIBS) -lgcov
+
+
+if UNIT_TEST_MEMCHECK_ENABLED
+test: ut_memcheck_test
+else
+test: ut_test
+endif
+
+ut_test: redismodule_ut redismodule_ut2
+ ./redismodule_ut -ojunit
+ ./redismodule_ut2 -ojunit
+
+ut_memcheck_test: redismodule_ut redismodule_ut2
+ valgrind --error-exitcode=1 \
+ --tool=memcheck \
+ --show-emwarns=yes \
+ -v -d \
+ --stats=yes \
+ --read-var-info=yes \
+ --leak-check=full \
+ --log-file=/tmp/redimodule_ut_valgrind_leak.log \
+ --track-origins=yes \
+ ./redismodule_ut
+ valgrind --error-exitcode=1 \
+ --tool=memcheck \
+ --show-emwarns=yes \
+ -v -d \
+ --stats=yes \
+ --read-var-info=yes \
+ --leak-check=full \
+ --log-file=/tmp/redimodule_ut2_valgrind_leak.log \
+ --track-origins=yes \
+ ./redismodule_ut2
TESTS = run-tests.sh
+
+else
+
+test:
+ echo 'enable ut with configure flag: --enable-unit-test and valgrind memcheck with: --enable-unit-test-memcheck'
+ exit 1
+
+endif #UNIT_TEST_ENABLED