menu "BSP Testcases"

config BSP_USING_TESTCASES
    bool "Enable BSP testcases"
    default n
    select RT_USING_UTESTCASES
    
    if BSP_USING_TESTCASES
    
    config UTEST_TMPFS
        bool "Enable tmpfs testcase"
        default y
        depends on RT_USING_DFS
        help
            Enable tmpfs filesystem test case

    config UTEST_MEMORY
        bool "Enable memory testcase"
        default y
        help
            Enable memory operation test cases including
            Memory copy (memcpy)
            Dynamic memory allocation (malloc/free)
            RT-Thread memory allocation (rt_malloc/rt_free)
            Large memory block allocation
            DDR memory test 

    config UTEST_CIC
        bool "CIC interrupt controller test"
        default y
        help
            Enable CIC (Common Interrupt Controller) unit test case.
            This test case will test CIC interrupt index operations,
            channel operations, flag operations and ARM register operations.

    config UTEST_IPC
        bool "IPC inter-processor communication test"
        default y
        help
            Enable IPC (Inter-Processor Communication) unit test case.
            This test case will test IPC communication between DSP cores
            and ARM cores, including send/receive operations and AR
            (Auto-Release) functionality.
        
    config UTEST_GIC
        bool "GIC interrupt controller test case"
        default y
        help
            This is the test case for GIC interrupt controller.
            It tests GIC enable, disable, trigger mode, SGI and priority functions.

    config UTEST_BASIC
        bool "Basic functionality test case"
        default y
        help
            This is the test case for basic functionality including
            printf with float numbers, atomic operations and string conversion.

    config UTEST_CLC
        bool "CLC clock control test case"
        default y
        help
            This is the test case for CLC (Clock Control) module.
            It tests CLC register read/write operations.
            WARNING: This test may affect system clock settings.

    config UTEST_SCH
        bool "SCH (School) test case"
        default y
        help
            This is the test case for SCH (School) functionality.
            It tests the sch_test_main function and verifies the results.

    config UTEST_PNNA
        bool "PNNA test case"
        default y
        help
            This is the test case for PNNA functionality.
            It tests the pnna_test_main function with various scenarios.

    config UTEST_THREAD
        bool "Thread functionality test case"
        default y
        help
            This is the test case for RT-Thread thread functionality.
            It tests thread creation, scheduling, priority control and memory operations.
    
    config UTEST_ETH
        bool "Ethernet driver test case"
        default y
        depends on RT_USING_LWIP
        help
            This is the test case for Ethernet driver functionality.
            It tests ethernet initialization, device operations and status.

    config UTEST_PCIE
        bool "PCIe driver test case"
        default y
        help
            This is the test case for PCIe driver functionality.
            It tests PCIe configuration space access and device enumeration.

    endif
endmenu