# === These files must be included in any case ===
set(srcs "test_common.c"
         "test_relay_chn_notify_common.c"
         "test_app_main.c")

set(incdirs "."
            "../../private_include")

# === Selective compilation based on channel count ===
if(CONFIG_RELAY_CHN_COUNT GREATER 1)
    list(APPEND srcs "test_relay_chn_core_multi.c"
                     "test_relay_chn_notify_multi.c")
else()
    list(APPEND srcs "test_relay_chn_core_single.c"
                     "test_relay_chn_notify_single.c")
endif()

if(CONFIG_RELAY_CHN_ENABLE_TILTING)
    if(CONFIG_RELAY_CHN_COUNT GREATER 1)
        list(APPEND srcs "test_relay_chn_tilt_multi.c")
    else()
        list(APPEND srcs "test_relay_chn_tilt_single.c")
    endif()
endif()

if(CONFIG_RELAY_CHN_ENABLE_NVS)
    list(APPEND srcs "../../src/relay_chn_nvs.c")
    if(CONFIG_RELAY_CHN_COUNT GREATER 1)
        list(APPEND srcs "test_relay_chn_nvs_multi.c")
    else()
        list(APPEND srcs "test_relay_chn_nvs_single.c")
    endif()
endif()


# In order for the cases defined by `TEST_CASE` to be linked into the final elf,
# the component can be registered as WHOLE_ARCHIVE
idf_component_register(
    SRCS ${srcs}
    INCLUDE_DIRS ${incdirs}
    REQUIRES unity relay_chn
    WHOLE_ARCHIVE
)
