@@ -242,6 +242,16 @@ build/test-evloop-tun: $(OBJ) build/test/test_eventloop_tun.o build/port/posix/l
242242 @echo " [LD] $@ "
243243 @$(CC ) $(CFLAGS ) -o $@ $(BEGIN_GROUP ) $(^ ) $(LDFLAGS ) $(END_GROUP )
244244
245+ build/test-multicast-interop : CFLAGS+=-DIP_MULTICAST
246+ build/test-multicast-interop : build/multicast/wolfip.o build/test/test_multicast_interop.o build/port/posix/tap_linux.o
247+ @echo " [LD] $@ "
248+ @$(CC ) $(CFLAGS ) -o $@ $(BEGIN_GROUP ) $(^ ) $(LDFLAGS ) $(END_GROUP )
249+
250+ build/multicast/wolfip.o : src/wolfip.c
251+ @mkdir -p ` dirname $@ ` || true
252+ @echo " [CC] $< (multicast)"
253+ @$(CC ) $(CFLAGS ) -DIP_MULTICAST -c $< -o $@
254+
245255build/test-dns : $(OBJ ) build/test/test_dhcp_dns.o
246256 @echo " [LD] $@ "
247257 @$(CC ) $(CFLAGS ) -o $@ $(BEGIN_GROUP ) $(^ ) $(LDFLAGS ) $(END_GROUP )
@@ -374,7 +384,8 @@ UNIT_TEST_SRCS:=src/test/unit/unit.c \
374384 src/test/unit/unit_tests_dns_dhcp.c \
375385 src/test/unit/unit_tests_tcp_ack.c \
376386 src/test/unit/unit_tests_tcp_flow.c \
377- src/test/unit/unit_tests_proto.c
387+ src/test/unit/unit_tests_proto.c \
388+ src/test/unit/unit_tests_multicast.c
378389
379390unit : build/test/unit
380391
@@ -385,6 +396,9 @@ build/test/unit: $(UNIT_TEST_SRCS)
385396 @echo " [LD] $@ "
386397 @$(CC ) build/test/unit.o -o build/test/unit $(UNIT_LDFLAGS ) $(LDFLAGS )
387398
399+ unit-multicast : CFLAGS+=-DIP_MULTICAST
400+ unit-multicast : clean-unit unit
401+
388402ESP_UNIT_CHECK_CFLAGS := $(CHECK_PKG_CFLAGS )
389403ifeq ($(UNAME_S ) ,Darwin)
390404 ifneq ($(CHECK_PREFIX),)
@@ -445,6 +459,8 @@ unit-leaksan: clean-unit build/test/unit
445459COV_DIR: =build/coverage
446460COV_UNIT: =$(COV_DIR ) /unit
447461COV_UNIT_O: =$(COV_DIR ) /unit.o
462+ COV_MCAST_UNIT: =$(COV_DIR ) /unit-multicast
463+ COV_MCAST_UNIT_O: =$(COV_DIR ) /unit-multicast.o
448464
449465$(COV_UNIT_O ) : $(UNIT_TEST_SRCS )
450466 @mkdir -p $(COV_DIR )
@@ -456,6 +472,16 @@ $(COV_UNIT): $(COV_UNIT_O)
456472 @echo " [LD] $@ "
457473 @$(CC ) $(COV_UNIT_O ) -o $(COV_UNIT ) $(UNIT_LDFLAGS ) $(LDFLAGS )
458474
475+ $(COV_MCAST_UNIT_O ) : $(UNIT_TEST_SRCS )
476+ @mkdir -p $(COV_DIR )
477+ @echo " [CC] unit.c (multicast coverage)"
478+ @$(CC ) $(UNIT_CFLAGS ) $(CFLAGS ) -DIP_MULTICAST --coverage -c src/test/unit/unit.c -o $(COV_MCAST_UNIT_O )
479+
480+ $(COV_MCAST_UNIT ) : LDFLAGS+=--coverage $(UNIT_LIBS )
481+ $(COV_MCAST_UNIT ) : $(COV_MCAST_UNIT_O )
482+ @echo " [LD] $@ "
483+ @$(CC ) $(COV_MCAST_UNIT_O ) -o $(COV_MCAST_UNIT ) $(UNIT_LDFLAGS ) $(LDFLAGS )
484+
459485cov : unit $(COV_UNIT )
460486 @echo " [RUN] unit (coverage)"
461487 @rm -f $(COV_DIR ) /* .gcda
@@ -473,6 +499,14 @@ autocov: unit $(COV_UNIT)
473499 @mkdir -p build/coverage
474500 @gcovr -r . --exclude " src/test/unit/.*" --html-details -o build/coverage/index.html
475501
502+ autocov-multicast : unit-multicast $(COV_MCAST_UNIT )
503+ @echo " [RUN] unit multicast (coverage)"
504+ @rm -f $(COV_DIR ) /* .gcda
505+ @$(COV_MCAST_UNIT )
506+ @echo " [COV] gcovr multicast html"
507+ @mkdir -p build/coverage
508+ @gcovr -r . --exclude " src/test/unit/.*" --html-details -o build/coverage/multicast.html
509+
476510# Install dynamic library to re-link linux applications
477511#
478512install :
@@ -571,7 +605,7 @@ build/test/test-wolfguard-interop: src/test/test_wolfguard_interop.c src/port/po
571605clean-test-wolfguard-interop :
572606 @rm -f build/test/test-wolfguard-interop build/test/test_wolfguard_interop.o build/test/linux_tun.o
573607
574- .PHONY : clean all static cppcheck cov autocov unit-asan unit-ubsan unit-leaksan clean-unit \
608+ .PHONY : clean all static cppcheck cov autocov autocov-multicast unit-multicast unit-asan unit-ubsan unit-leaksan clean-unit \
575609 unit-esp-asan unit-esp-ubsan unit-esp-leaksan clean-unit-esp \
576610 unit-wolfguard unit-wolfguard-asan unit-wolfguard-ubsan clean-unit-wolfguard \
577611 test-wolfguard-loopback test-wolfguard-loopback-asan test-wolfguard-loopback-ubsan \
0 commit comments