From 3e907aa38b0417f3b0506e1d2d42aa0bb6d21e7a Mon Sep 17 00:00:00 2001 From: eduazocar Date: Mon, 18 Jul 2022 10:36:15 -0400 Subject: [PATCH] sys/uniqueid: Fixed compilation dependencies of HWRNG and radio hardware --- firmware/sys/uniqueid/Kconfig | 2 ++ firmware/sys/uniqueid/Makefile.dep | 6 ++++-- firmware/sys/uniqueid/uniqueid.c | 2 +- tests/uniqueid/main.c | 12 ++++++++---- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/firmware/sys/uniqueid/Kconfig b/firmware/sys/uniqueid/Kconfig index 7949edc59..d66d0704d 100644 --- a/firmware/sys/uniqueid/Kconfig +++ b/firmware/sys/uniqueid/Kconfig @@ -20,8 +20,10 @@ menu "Subnet" config MODE_STATIC bool "STATIC" + if USEMODULE_AT86RF2XX || USEMODULE_AT86RF215 || USEMODULE_PERIPH_HWRNG config MODE_RANDOM bool "RANDOM" + endif config MODE_MANUAL bool "MANUAL" diff --git a/firmware/sys/uniqueid/Makefile.dep b/firmware/sys/uniqueid/Makefile.dep index 3cdf49152..daf712726 100644 --- a/firmware/sys/uniqueid/Makefile.dep +++ b/firmware/sys/uniqueid/Makefile.dep @@ -4,8 +4,10 @@ USEMODULE += netdev_default USEMODULE += gnrc_ipv6_default USEMODULE += auto_init_gnrc_netif -ifneq (,$(filter m4a-24g m4a-mb,$(BOARD))) +ifneq (,$(filter at86rf2xx at86rf215,$(USEMODULE))) USEMODULE += radio else - USEMODULE += periph_hwrng + ifneq (,$(filter periph_hwrng,$(HAS_PERIPH_HWRNG))) + USEMODULE += periph_hwrng + endif endif diff --git a/firmware/sys/uniqueid/uniqueid.c b/firmware/sys/uniqueid/uniqueid.c index a1ed233e9..b4a189f69 100644 --- a/firmware/sys/uniqueid/uniqueid.c +++ b/firmware/sys/uniqueid/uniqueid.c @@ -29,7 +29,7 @@ #include "net/gnrc.h" #if MODULE_AT86RF2XX || MODULE_AT86RF215 #include "radio.h" -#else +#elif MODULE_PERIPH_HWRNG #include "periph/hwrng.h" #endif void subnet_to_ipv6(ipv6_addr_t *addr) { diff --git a/tests/uniqueid/main.c b/tests/uniqueid/main.c index fa900744c..33726205e 100644 --- a/tests/uniqueid/main.c +++ b/tests/uniqueid/main.c @@ -42,18 +42,23 @@ void get_unique_from_mac(ipv6_addr_t *output) { } void test_get_ipv6Address(void) { +#if CONFIG_MODE_STATIC || CONFIG_MODE_MANUAL ipv6_addr_t ipv6 = { .u8 = {0}, }; - - subnet_to_ipv6(&ipv6); -#ifdef CONFIG_MODE_STATIC ipv6_addr_t output = { .u8 = {0}, }; + printf("\n"); + subnet_to_ipv6(&ipv6); ipv6_addr_print(&ipv6); + printf("\n"); get_unique_from_mac(&output); +#if CONFIG_MODE_STATIC TEST_ASSERT_EQUAL_INT(1, ipv6_addr_equal(&ipv6, &output)); +#elif CONFIG_MODE_MANUAL + TEST_ASSERT_EQUAL_INT(1, !ipv6_addr_equal(&ipv6, &output)); +#endif #endif #ifdef CONFIG_MODE_RANDOM @@ -63,7 +68,6 @@ void test_get_ipv6Address(void) { ipv6_addr_t output2 = { .u8 = {0}, }; - subnet_to_ipv6(&output1); subnet_to_ipv6(&output2); printf("\nFirst random IPv6\n");