summaryrefslogtreecommitdiff
path: root/test/fuzz/make.mk
diff options
context:
space:
mode:
authorhathach <[email protected]>2022-12-08 10:39:54 +0700
committerhathach <[email protected]>2022-12-08 10:39:54 +0700
commit56f846cf74961eecd00242276dd566e1b6134e10 (patch)
treeed5475326aa9cbf9b923fc2e497182ab30e5854a /test/fuzz/make.mk
parent19400c8556ce4bf5e40653d0c87a9f07db0870a3 (diff)
move fuzz into test/fuzz
Diffstat (limited to 'test/fuzz/make.mk')
-rw-r--r--test/fuzz/make.mk104
1 files changed, 104 insertions, 0 deletions
diff --git a/test/fuzz/make.mk b/test/fuzz/make.mk
new file mode 100644
index 000000000..3da79e8ff
--- /dev/null
+++ b/test/fuzz/make.mk
@@ -0,0 +1,104 @@
+# ---------------------------------------
+# Common make definition for all examples
+# ---------------------------------------
+
+# Build directory
+BUILD := _build
+PROJECT := $(notdir $(CURDIR))
+
+# Handy check parameter function
+check_defined = \
+ $(strip $(foreach 1,$1, \
+ $(call __check_defined,$1,$(strip $(value 2)))))
+__check_defined = \
+ $(if $(value $1),, \
+ $(error Undefined make flag: $1$(if $2, ($2))))
+
+#-------------- Fuzz harness compiler ------------
+
+CC ?= clang
+CXX ?= clang++
+GDB ?= gdb
+OBJCOPY = objcopy
+SIZE = size
+MKDIR = mkdir
+
+ifeq ($(CMDEXE),1)
+ CP = copy
+ RM = del
+ PYTHON = python
+else
+ SED = sed
+ CP = cp
+ RM = rm
+ PYTHON = python3
+endif
+
+#-------------- Source files and compiler flags --------------
+
+
+INC += $(TOP)/test
+
+# Compiler Flags
+CFLAGS += \
+ -ggdb \
+ -fsanitize=fuzzer \
+ -fsanitize=address \
+ -fsanitize=undefined \
+ -fdata-sections \
+ -ffunction-sections \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wextra \
+ -Werror \
+ -Wfatal-errors \
+ -Wdouble-promotion \
+ -Wstrict-prototypes \
+ -Wstrict-overflow \
+ -Werror-implicit-function-declaration \
+ -Wfloat-equal \
+ -Wundef \
+ -Wshadow \
+ -Wwrite-strings \
+ -Wsign-compare \
+ -Wmissing-format-attribute \
+ -Wunreachable-code \
+ -Wcast-align \
+ -Wcast-qual \
+ -Wnull-dereference \
+ -Wuninitialized \
+ -Wunused \
+ -Wredundant-decls \
+ -O1
+
+CFLAGS += \
+ -Wno-error=unreachable-code \
+ -DOPT_MCU_FUZZ=1 \
+ -DCFG_TUSB_MCU=OPT_MCU_FUZZ
+
+CXXFLAGS += \
+ -xc++ \
+ -Wno-c++11-narrowing \
+ -fno-implicit-templates
+
+# conversion is too strict for most mcu driver, may be disable sign/int/arith-conversion
+# -Wconversion
+
+# Debugging/Optimization
+ifeq ($(DEBUG), 1)
+ CFLAGS += -Og
+else
+ CFLAGS += $(CFLAGS_OPTIMIZED)
+endif
+
+# Log level is mapped to TUSB DEBUG option
+ifneq ($(LOG),)
+ CMAKE_DEFSYM += -DLOG=$(LOG)
+ CFLAGS += -DCFG_TUSB_DEBUG=$(LOG)
+endif
+
+# Logger: default is uart, can be set to rtt or swo
+ifneq ($(LOGGER),)
+ CMAKE_DEFSYM += -DLOGGER=$(LOGGER)
+endif
+