11CC = g++
22CFLAGS = -fPIC -Wall -Wextra -std=c++17 -I./src
3- PLUGIN_CFLAGS = -shared $(CFLAGS )
4- TEST_CFLAGS = -g $(CFLAGS ) -fprofile-arcs -ftest-coverage
5- LDFLAGS = -lmysqlclient -lssl -lcrypto
3+ PLUGIN_CFLAGS = -shared $(CFLAGS ) -fprofile-arcs -ftest-coverage
4+ TEST_CFLAGS = -g $(CFLAGS )
5+ LDFLAGS = -lmysqlclient -lssl -lcrypto -lgcov
66GTEST_LDFLAGS = $(LDFLAGS ) -lgtest -lgtest_main -pthread
77
88BUILD_DIR = ./build
@@ -20,14 +20,14 @@ TEST_OBJS = $(patsubst $(TEST_DIR)/%.cpp, $(BUILD_DIR)/%.o, $(TEST_SOURCES))
2020
2121default : $(TARGET )
2222
23- $(TARGET ) : $(SRC_OBJS )
24- @echo " Linking plugin: $@ "
25- $(CC ) $(PLUGIN_CFLAGS ) -o $@ $^ $(LDFLAGS )
26-
2723$(BUILD_DIR ) /% .o : $(SRC_DIR ) /% .cpp
2824 @mkdir -p $(BUILD_DIR )
2925 @echo " Compiling source: $<"
30- $(CC ) $(PLUGIN_CFLAGS ) -c $< -o $@
26+ $(CC ) $(CFLAGS ) -fprofile-arcs -ftest-coverage -c $< -o $@
27+
28+ $(TARGET ) : $(SRC_OBJS )
29+ @echo " Linking plugin: $@ "
30+ $(CC ) $(PLUGIN_CFLAGS ) -o $@ $^ $(LDFLAGS )
3131
3232$(BUILD_DIR ) /% .o : $(TEST_DIR ) /% .cpp
3333 @mkdir -p $(BUILD_DIR )
@@ -38,19 +38,14 @@ $(TEST_TARGET): $(SRC_OBJS) $(TEST_OBJS)
3838 @echo " Linking test runner: $@ "
3939 $(CC ) $(TEST_CFLAGS ) -o $@ $(BUILD_DIR ) /openssl_encrypt.o $(BUILD_DIR ) /openssl_decrypt.o $(BUILD_DIR ) /iv_generator.o $(BUILD_DIR ) /openssl_encryption_test.o $(GTEST_LDFLAGS )
4040
41- # Test with coverage
4241test : $(TEST_TARGET )
4342 @echo " Running unit tests..."
4443 $(TEST_TARGET )
4544
4645cov :
4746 @echo " Collecting coverage data..."
48- lcov --directory . --capture --output-file $(BUILD_DIR ) /coverage.info
49-
50- # Default test target (without coverage)
51- test_without_coverage : $(TEST_TARGET )
52- @echo " Running unit tests..."
53- $(TEST_TARGET )
47+ lcov --directory ./build --capture --output-file $(BUILD_DIR ) /coverage.info --exclude ' /usr/*' --exclude ' */bits/*'
48+ genhtml $(BUILD_DIR ) /coverage.info --output-directory $(BUILD_DIR ) /coverage_report
5449
5550install : $(TARGET )
5651 @echo " Installing plugin to /usr/lib/mysql/plugin/"
0 commit comments