mirror of
https://github.com/itzmeanjan/ml-kem.git
synced 2026-01-09 07:37:55 -05:00
add option for building tests with *address-sanitizer* enabled
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
This commit is contained in:
17
Makefile
17
Makefile
@@ -3,6 +3,8 @@ CXX_FLAGS = -std=c++20
|
||||
WARN_FLAGS = -Wall -Wextra -pedantic
|
||||
OPT_FLAGS = -O3 -march=native
|
||||
LINK_FLAGS = -flto
|
||||
DEBUG_FLAGS = -g3
|
||||
ASAN_FLAGS = -fno-omit-frame-pointer -fsanitize=address
|
||||
|
||||
SHA3_INC_DIR = ./sha3/include
|
||||
SUBTLE_INC_DIR = ./subtle/include
|
||||
@@ -12,12 +14,15 @@ DEP_IFLAGS = -I $(SHA3_INC_DIR) -I $(SUBTLE_INC_DIR)
|
||||
SRC_DIR = include
|
||||
KYBER_SOURCES := $(wildcard $(SRC_DIR)/*.hpp)
|
||||
BUILD_DIR = build
|
||||
ASAN_BUILD_DIR = $(BUILD_DIR)/asan
|
||||
|
||||
TEST_DIR = tests
|
||||
TEST_SOURCES := $(wildcard $(TEST_DIR)/*.cpp)
|
||||
TEST_OBJECTS := $(addprefix $(BUILD_DIR)/, $(notdir $(patsubst %.cpp,%.o,$(TEST_SOURCES))))
|
||||
ASAN_TEST_OBJECTS := $(addprefix $(ASAN_BUILD_DIR)/, $(notdir $(patsubst %.cpp,%.o,$(TEST_SOURCES))))
|
||||
TEST_LINK_FLAGS = -lgtest -lgtest_main
|
||||
TEST_BINARY = $(BUILD_DIR)/test.out
|
||||
ASAN_TEST_BINARY = $(ASAN_BUILD_DIR)/test.out
|
||||
|
||||
BENCHMARK_DIR = benchmarks
|
||||
BENCHMARK_SOURCES := $(wildcard $(BENCHMARK_DIR)/*.cpp)
|
||||
@@ -29,6 +34,9 @@ PERF_BINARY = $(BUILD_DIR)/perf.out
|
||||
|
||||
all: test
|
||||
|
||||
$(ASAN_BUILD_DIR):
|
||||
mkdir -p $@
|
||||
|
||||
$(BUILD_DIR):
|
||||
mkdir -p $@
|
||||
|
||||
@@ -40,12 +48,21 @@ $(SUBTLE_INC_DIR): $(SHA3_INC_DIR)
|
||||
$(BUILD_DIR)/%.o: $(TEST_DIR)/%.cpp $(BUILD_DIR) $(SHA3_INC_DIR) $(SUBTLE_INC_DIR)
|
||||
$(CXX) $(CXX_FLAGS) $(WARN_FLAGS) $(OPT_FLAGS) $(I_FLAGS) $(DEP_IFLAGS) -c $< -o $@
|
||||
|
||||
$(ASAN_BUILD_DIR)/%.o: $(TEST_DIR)/%.cpp $(ASAN_BUILD_DIR) $(SHA3_INC_DIR) $(SUBTLE_INC_DIR)
|
||||
$(CXX) $(CXX_FLAGS) $(WARN_FLAGS) $(DEBUG_FLAGS) $(ASAN_FLAGS) $(I_FLAGS) $(DEP_IFLAGS) -c $< -o $@
|
||||
|
||||
$(TEST_BINARY): $(TEST_OBJECTS)
|
||||
$(CXX) $(OPT_FLAGS) $(LINK_FLAGS) $^ $(TEST_LINK_FLAGS) -o $@
|
||||
|
||||
$(ASAN_TEST_BINARY): $(ASAN_TEST_OBJECTS)
|
||||
$(CXX) $(ASAN_FLAGS) $^ $(TEST_LINK_FLAGS) -o $@
|
||||
|
||||
test: $(TEST_BINARY)
|
||||
./$< --gtest_shuffle --gtest_random_seed=0
|
||||
|
||||
asan_test: $(ASAN_TEST_BINARY)
|
||||
./$< --gtest_shuffle --gtest_random_seed=0
|
||||
|
||||
$(BUILD_DIR)/%.o: $(BENCHMARK_DIR)/%.cpp $(BUILD_DIR) $(SHA3_INC_DIR) $(SUBTLE_INC_DIR)
|
||||
$(CXX) $(CXX_FLAGS) $(WARN_FLAGS) $(OPT_FLAGS) $(I_FLAGS) $(DEP_IFLAGS) -c $< -o $@
|
||||
|
||||
|
||||
Reference in New Issue
Block a user