mirror of
https://github.com/eclipse-mosquitto/mosquitto.git
synced 2026-02-07 21:06:48 +08:00
167 lines
4.6 KiB
Makefile
167 lines
4.6 KiB
Makefile
R=../../..
|
|
include ${R}/config.mk
|
|
|
|
.PHONY: all check test-compile test test-mock test-lib clean
|
|
|
|
LOCAL_CPPFLAGS+= \
|
|
-DWITH_THREADING \
|
|
-DWITH_TLS \
|
|
-I../ \
|
|
-I${R}/include \
|
|
-I${R} \
|
|
-I${R}/apps/mosquitto_ctrl \
|
|
-I${R}/lib \
|
|
-I${R}/test/mock \
|
|
-I${R}/test/mock/apps/mosquitto_ctrl \
|
|
-I${R}/test/mock/lib
|
|
|
|
LOCAL_CXXFLAGS+=-std=c++20 -Wall -ggdb -D TEST_SOURCE_DIR='"$(realpath .)"'
|
|
LOCAL_LDFLAGS+=
|
|
LOCAL_LIBADD+=-lcjson -lgmock -lgtest_main -lgtest ${R}/libcommon/libmosquitto_common.a
|
|
|
|
CTRL_OBJS = \
|
|
${R}/apps/mosquitto_ctrl/ctrl_shell_broker.o \
|
|
${R}/apps/mosquitto_ctrl/ctrl_shell.o \
|
|
${R}/apps/mosquitto_ctrl/ctrl_shell_client.o \
|
|
${R}/apps/mosquitto_ctrl/ctrl_shell_completion_tree.o \
|
|
${R}/apps/mosquitto_ctrl/ctrl_shell_dynsec.o \
|
|
${R}/apps/mosquitto_ctrl/ctrl_shell_post_connect.o \
|
|
${R}/apps/mosquitto_ctrl/ctrl_shell_pre_connect.o \
|
|
${R}/apps/mosquitto_ctrl/ctrl_shell_printf.o
|
|
|
|
LIBMOSQ_MOCKS = \
|
|
${R}/test/mock/lib/libmosquitto_mock.o \
|
|
${R}/test/mock/lib/actions_publish_mock.o \
|
|
${R}/test/mock/lib/actions_subscribe_mock.o \
|
|
${R}/test/mock/lib/callbacks_mock.o \
|
|
${R}/test/mock/lib/connect_mock.o \
|
|
${R}/test/mock/lib/loop_mock.o \
|
|
${R}/test/mock/lib/options_mock.o \
|
|
${R}/test/mock/lib/thread_mosq_mock.o
|
|
|
|
LIB_OBJS = \
|
|
${CTRL_OBJS} \
|
|
${R}/common/json_help.o \
|
|
${R}/test/mock/apps/mosquitto_ctrl/ctrl_shell_mock.o \
|
|
${R}/test/mock/editline_mock.o \
|
|
${R}/test/mock/pthread_mock.o \
|
|
${LIBMOSQ_MOCKS}
|
|
|
|
COMPLETION_OBJS = \
|
|
${CTRL_OBJS} \
|
|
${R}/common/json_help.o \
|
|
${R}/test/mock/apps/mosquitto_ctrl/ctrl_shell_mock.o \
|
|
${R}/test/mock/pthread_mock.o \
|
|
${LIBMOSQ_MOCKS}
|
|
|
|
TEST_OBJS = \
|
|
ctrl_shell_test.o \
|
|
ctrl_shell_broker_test.o \
|
|
ctrl_shell_completion_test.o \
|
|
ctrl_shell_dynsec_test.o \
|
|
ctrl_shell_help_test.o \
|
|
ctrl_shell_options_test.o \
|
|
ctrl_shell_pre_connect_test.o
|
|
|
|
ifeq ($(WITH_GMOCK),yes)
|
|
ifeq ($(WITH_EDITLINE),yes)
|
|
LOCAL_CPPFLAGS+=-DWITH_CTRL_SHELL -DWITH_EDITLINE
|
|
MOCK_TESTS = \
|
|
ctrl_shell_test \
|
|
ctrl_shell_broker_test \
|
|
ctrl_shell_completion_test \
|
|
ctrl_shell_dynsec_test \
|
|
ctrl_shell_help_test \
|
|
ctrl_shell_options_test \
|
|
ctrl_shell_pre_connect_test
|
|
else
|
|
MOCK_TESTS =
|
|
endif
|
|
else
|
|
MOCK_TESTS =
|
|
endif
|
|
|
|
all : test-compile
|
|
|
|
check : test
|
|
|
|
# DEPS
|
|
|
|
${LIBMOSQ_MOCKS}:
|
|
$(MAKE) -C ${R}/lib
|
|
|
|
${CTRL_OBJS} :
|
|
$(MAKE) -C ${R}/apps/mosquitto_ctrl
|
|
|
|
${R}/common/json_help.o : ${R}/common/json_help.c ${R}/common/json_help.h
|
|
${CROSS_COMPILE}${CC} $(LOCAL_CPPFLAGS) $(LOCAL_CFLAGS) -c $< -o $@
|
|
|
|
# MOCKS
|
|
|
|
${R}/test/mock/apps/mosquitto_ctrl/ctrl_shell_mock.o : ${R}/test/mock/apps/mosquitto_ctrl/ctrl_shell_mock.cpp ${R}/test/mock/apps/mosquitto_ctrl/ctrl_shell_mock.hpp
|
|
$(MAKE) -C ${R}/test/mock/apps/mosquitto_ctrl test-compile
|
|
|
|
${R}/test/mock/editline_mock.o : ${R}/test/mock/editline_mock.cpp ${R}/test/mock/editline_mock.hpp
|
|
$(MAKE) -C ${R}/test/mock test-compile
|
|
|
|
${R}/test/mock/pthread_mock.o : ${R}/test/mock/pthread_mock.cpp ${R}/test/mock/pthread_mock.hpp
|
|
$(MAKE) -C ${R}/test/mock test-compile
|
|
|
|
# TESTS
|
|
|
|
${TEST_OBJS} : %.o: %.cpp
|
|
$(CROSS_COMPILE)$(CXX) $(LOCAL_CPPFLAGS) $(LOCAL_CXXFLAGS) -c $< -o $@
|
|
|
|
ctrl_shell_test : ctrl_shell_test.o ${LIB_OBJS}
|
|
$(CROSS_COMPILE)$(CXX) $(LOCAL_CPPFLAGS) $(LOCAL_LDFLAGS) -o $@ $^ $(LOCAL_LIBADD)
|
|
|
|
ctrl_shell_broker_test : ctrl_shell_broker_test.o ${LIB_OBJS}
|
|
$(CROSS_COMPILE)$(CXX) $(LOCAL_CPPFLAGS) $(LOCAL_LDFLAGS) -o $@ $^ $(LOCAL_LIBADD)
|
|
|
|
ctrl_shell_completion_test : ctrl_shell_completion_test.o ${COMPLETION_OBJS}
|
|
$(CROSS_COMPILE)$(CXX) $(LOCAL_CPPFLAGS) $(LOCAL_LDFLAGS) -o $@ $^ $(LOCAL_LIBADD) -ledit
|
|
|
|
ctrl_shell_dynsec_test : ctrl_shell_dynsec_test.o ${LIB_OBJS}
|
|
$(CROSS_COMPILE)$(CXX) $(LOCAL_CPPFLAGS) $(LOCAL_LDFLAGS) -o $@ $^ $(LOCAL_LIBADD)
|
|
|
|
ctrl_shell_help_test : ctrl_shell_help_test.o ${LIB_OBJS}
|
|
$(CROSS_COMPILE)$(CXX) $(LOCAL_CPPFLAGS) $(LOCAL_LDFLAGS) -o $@ $^ $(LOCAL_LIBADD)
|
|
|
|
ctrl_shell_options_test : ctrl_shell_options_test.o ${LIB_OBJS}
|
|
$(CROSS_COMPILE)$(CXX) $(LOCAL_CPPFLAGS) $(LOCAL_LDFLAGS) -o $@ $^ $(LOCAL_LIBADD)
|
|
|
|
ctrl_shell_pre_connect_test : ctrl_shell_pre_connect_test.o ${LIB_OBJS}
|
|
$(CROSS_COMPILE)$(CXX) $(LOCAL_CPPFLAGS) $(LOCAL_LDFLAGS) -o $@ $^ $(LOCAL_LIBADD)
|
|
|
|
|
|
test-compile : $(MOCK_TESTS)
|
|
|
|
test-mock : $(MOCK_TESTS)
|
|
./ctrl_shell_broker_test
|
|
./ctrl_shell_completion_test
|
|
./ctrl_shell_dynsec_test
|
|
./ctrl_shell_help_test
|
|
./ctrl_shell_options_test
|
|
./ctrl_shell_pre_connect_test
|
|
./ctrl_shell_test
|
|
|
|
test : test-mock
|
|
./ctrl-args.py
|
|
./ctrl-broker.py
|
|
./ctrl-dynsec.py
|
|
|
|
ptest: test-mock
|
|
./test.py
|
|
|
|
clean :
|
|
-rm -rf $(MOCK_TESTS)
|
|
-rm -rf *.o *.gcda *.gcno coverage.info out/
|
|
|
|
coverage :
|
|
lcov --capture --directory . --output-file coverage.info
|
|
genhtml coverage.info --output-directory out
|
|
|
|
install:
|
|
|
|
uninstall:
|