diff --git a/DSP_Lib_TestSuite/CMakeLists.txt b/DSP_Lib_TestSuite/CMakeLists.txt index 56614459..7a05c5c3 100644 --- a/DSP_Lib_TestSuite/CMakeLists.txt +++ b/DSP_Lib_TestSuite/CMakeLists.txt @@ -5,6 +5,19 @@ cmake_policy(SET CMP0077 NEW) set(MATRIXCHECK ON) set(FASTMATHCOMPUTATIONS OFF) option(DUMPPATTERN "Dump test patterns when test is failing" ON) + +option(BASICMATH_TESTS "Enable Basic Math testing" ON) +option(COMPLEXMATH_TESTS "Enable Complex Math testing" ON) +option(CONTROLLER_TESTS "Enable Controller testing" ON) +option(FASTMATH_TESTS "Enable Fast Math testing" ON) +option(INTRINSICS_TESTS "Enable Intrinsics testing" ON) +option(FILTERING_TESTS "Enable Filtering testing" ON) +option(MATRIX_TESTS "Enable Matrix testing" ON) +option(STATISTICS_TESTS "Enable Statistics testing" ON) +option(SUPPORT_TESTS "Enable Support testing" ON) +option(TRANSFORM_TESTS "Enable Transform testing" ON) + + project(DSP_Lib_TestSuite) # Needed to find the config modules @@ -15,29 +28,29 @@ set(ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../../..) file(GLOB MAIN "Common/src/*.c") -file(GLOB BASICMATH_TESTS "Common/src/basic_math_tests/*.c") -file(GLOB COMPLEXMATH_TESTS "Common/src/complex_math_tests/*.c") -file(GLOB CONTROLLER_TESTS "Common/src/controller_tests/*.c") -file(GLOB FASTMATH_TESTS "Common/src/fast_math_tests/*.c") -file(GLOB FILTERING_TESTS "Common/src/filtering_tests/*.c") -file(GLOB INTRINSINCS_TESTS "Common/src/intrinsics_tests/*.c") -file(GLOB MATRIX_TESTS "Common/src/matrix_tests/*.c") -file(GLOB STATISTICS_TESTS "Common/src/statistics_tests/*.c") -file(GLOB SUPPORT_TESTS "Common/src/support_tests/*.c") -file(GLOB TRANSFORM_TESTS "Common/src/transform_tests/*.c") +file(GLOB BASICMATH_TESTS_SRC "Common/src/basic_math_tests/*.c") +file(GLOB COMPLEXMATH_TESTS_SRC "Common/src/complex_math_tests/*.c") +file(GLOB CONTROLLER_TESTS_SRC "Common/src/controller_tests/*.c") +file(GLOB FASTMATH_TESTS_SRC "Common/src/fast_math_tests/*.c") +file(GLOB FILTERING_TESTS_SRC "Common/src/filtering_tests/*.c") +file(GLOB INTRINSINCS_TESTS_SRC "Common/src/intrinsics_tests/*.c") +file(GLOB MATRIX_TESTS_SRC "Common/src/matrix_tests/*.c") +file(GLOB STATISTICS_TESTS_SRC "Common/src/statistics_tests/*.c") +file(GLOB SUPPORT_TESTS_SRC "Common/src/support_tests/*.c") +file(GLOB TRANSFORM_TESTS_SRC "Common/src/transform_tests/*.c") file(GLOB JTEST_MAIN "Common/JTest/src/*.c") set(TESTSRC ${MAIN} - ${BASICMATH_TESTS} - ${COMPLEXMATH_TESTS} - ${CONTROLLER_TESTS} - ${FASTMATH_TESTS} - ${FILTERING_TESTS} - ${INTRINSINCS_TESTS} - ${MATRIX_TESTS} - ${STATISTICS_TESTS} - ${SUPPORT_TESTS} - ${TRANSFORM_TESTS} + ${BASICMATH_TESTS_SRC} + ${COMPLEXMATH_TESTS_SRC} + ${CONTROLLER_TESTS_SRC} + ${FASTMATH_TESTS_SRC} + ${FILTERING_TESTS_SRC} + ${INTRINSINCS_TESTS_SRC} + ${MATRIX_TESTS_SRC} + ${STATISTICS_TESTS_SRC} + ${SUPPORT_TESTS_SRC} + ${TRANSFORM_TESTS_SRC} ${JTEST_MAIN} ) @@ -62,6 +75,38 @@ add_subdirectory(RefLibs bin_ref) add_executable(DSP_Lib_TestSuite) +if (BASICMATH_TESTS) + target_compile_definitions(DSP_Lib_TestSuite PRIVATE ENABLE_BASICMATH_TESTS) +endif() +if (COMPLEXMATH_TESTS) + target_compile_definitions(DSP_Lib_TestSuite PRIVATE ENABLE_COMPLEXMATH_TESTS) +endif() +if (CONTROLLER_TESTS) + target_compile_definitions(DSP_Lib_TestSuite PRIVATE ENABLE_CONTROLLER_TESTS) +endif() +if (FASTMATH_TESTS) + target_compile_definitions(DSP_Lib_TestSuite PRIVATE ENABLE_FASTMATH_TESTS) +endif() +if (FILTERING_TESTS) + target_compile_definitions(DSP_Lib_TestSuite PRIVATE ENABLE_FILTERING_TESTS) +endif() +if (INTRINSICS_TESTS) + target_compile_definitions(DSP_Lib_TestSuite PRIVATE ENABLE_INTRINSICS_TESTS) +endif() +if (MATRIX_TESTS) + target_compile_definitions(DSP_Lib_TestSuite PRIVATE ENABLE_MATRIX_TESTS) +endif() +if (STATISTICS_TESTS) + target_compile_definitions(DSP_Lib_TestSuite PRIVATE ENABLE_STATISTICS_TESTS) +endif() +if (SUPPORT_TESTS) + target_compile_definitions(DSP_Lib_TestSuite PRIVATE ENABLE_SUPPORT_TESTS) +endif() +if (TRANSFORM_TESTS) + target_compile_definitions(DSP_Lib_TestSuite PRIVATE ENABLE_TRANSFORM_TESTS) +endif() + + if (DUMPPATTERN) target_compile_definitions(DSP_Lib_TestSuite PRIVATE DUMPPATTERN) endif() diff --git a/DSP_Lib_TestSuite/Common/inc/templates/test_templates.h b/DSP_Lib_TestSuite/Common/inc/templates/test_templates.h index 844e7c9e..3badc800 100644 --- a/DSP_Lib_TestSuite/Common/inc/templates/test_templates.h +++ b/DSP_Lib_TestSuite/Common/inc/templates/test_templates.h @@ -62,22 +62,6 @@ /** * Assert that buffers A and B are byte-equivalent for a number of bytes. */ -#if defined(DUMPPATTERN) -#define TEST_ASSERT_BUFFERS_EQUAL(buf_a, buf_b, bytes) \ - do \ - { \ - if (memcmp(buf_a, buf_b, bytes) != 0) \ - { \ - JTEST_DUMP_STRF("%s","DUMP PATTERNS\n"); \ - for(unsigned long i=0;i < bytes; i++) \ - { \ - /*JTEST_DUMP_STRF("%0x %0x\n", *a,*b);*/\ - } \ - return JTEST_TEST_FAILED; \ - } \ - } while (0) - -#else #define TEST_ASSERT_BUFFERS_EQUAL(buf_a, buf_b, bytes)\ do \ @@ -89,7 +73,7 @@ } while (0) -#endif + /** * Assert that the two entities are equal. @@ -131,7 +115,6 @@ * Assert that the SNR between a reference and test sample is above a given * threshold. */ -#if defined(DUMPPATTERN) #define TEST_ASSERT_SNR(ref_ptr, tst_ptr, block_size, threshold) \ do \ @@ -139,53 +122,16 @@ float32_t snr = arm_snr_f32(ref_ptr, tst_ptr, block_size);\ if ( snr <= threshold) \ { \ - JTEST_DUMP_STRF("%s","DUMP PATTERNS\n"); \ - for(unsigned long i=0;i < block_size; i++) \ - { \ - /*JTEST_DUMP_STRF("%f %f\n", ref_ptr[i],tst_ptr[i]);*/\ - } \ JTEST_DUMP_STRF("SNR: %f\n", snr); \ return JTEST_TEST_FAILED; \ } \ } while (0) -#else - -#define TEST_ASSERT_SNR(ref_ptr, tst_ptr, block_size, threshold) \ - do \ - { \ - float32_t snr = arm_snr_f32(ref_ptr, tst_ptr, block_size);\ - if ( snr <= threshold) \ - { \ - JTEST_DUMP_STRF("SNR: %f\n", snr); \ - return JTEST_TEST_FAILED; \ - } \ - } while (0) -#endif /** * Assert that the SNR between a reference and test sample is above a given * threshold. Special case for float64_t */ -#if defined(DUMPPATTERN) - -#define TEST_ASSERT_DBL_SNR(ref_ptr, tst_ptr, block_size, threshold)\ - do \ - { \ - float64_t snr = arm_snr_f64(ref_ptr, tst_ptr, block_size); \ - if ( snr <= threshold) \ - { \ - JTEST_DUMP_STRF("%s","DUMP PATTERNS\n"); \ - for(unsigned long i=0;i < block_size; i++) \ - { \ - /* JTEST_DUMP_STRF("%f %f\n", ref_ptr[i],tst_ptr[i]);*/ \ - } \ - JTEST_DUMP_STRF("SNR: %f\n", snr); \ - return JTEST_TEST_FAILED; \ - } \ - } while (0) - -#else #define TEST_ASSERT_DBL_SNR(ref_ptr, tst_ptr, block_size, threshold)\ do \ @@ -198,7 +144,6 @@ } \ } while (0) -#endif /** * Compare test and reference elements by converting to float and diff --git a/DSP_Lib_TestSuite/Common/src/all_tests.c b/DSP_Lib_TestSuite/Common/src/all_tests.c index 3c2f1b24..a0f45b4d 100644 --- a/DSP_Lib_TestSuite/Common/src/all_tests.c +++ b/DSP_Lib_TestSuite/Common/src/all_tests.c @@ -7,9 +7,7 @@ #include "matrix_test_group.h" #include "statistics_test_group.h" #include "support_test_group.h" -#ifndef ARMv7A #include "transform_test_group.h" -#endif #include "intrinsics_test_group.h" JTEST_DEFINE_GROUP(all_tests) @@ -17,21 +15,48 @@ JTEST_DEFINE_GROUP(all_tests) /* To skip a test, comment it out */ +#if defined(ENABLE_BASICMATH_TESTS) JTEST_GROUP_CALL(basic_math_tests); +#endif + +#if defined(ENABLE_COMPLEXMATH_TESTS) JTEST_GROUP_CALL(complex_math_tests); +#endif + +#if defined(ENABLE_CONTROLLER_TESTS) JTEST_GROUP_CALL(controller_tests); +#endif + +#if defined(ENABLE_FASTMATH_TESTS) JTEST_GROUP_CALL(fast_math_tests); +#endif + +#if defined(ENABLE_FILTERING_TESTS) /* Biquad df2T_f32 will fail with Neon. The test must be updated. Neon implementation is requiring a different initialization. */ JTEST_GROUP_CALL(filtering_tests); +#endif + +#if defined(ENABLE_MATRIX_TESTS) JTEST_GROUP_CALL(matrix_tests); +#endif + +#if defined(ENABLE_STATISTICS_TESTS) JTEST_GROUP_CALL(statistics_tests); +#endif() + +#if defined(ENABLE_SUPPORT_TESTS) JTEST_GROUP_CALL(support_tests); -#ifndef ARMv7A +#endif + +#if defined(ENABLE_TRANSFORM_TESTS) JTEST_GROUP_CALL(transform_tests); #endif + +#if defined(ENABLE_INTRINSICS_TESTS) JTEST_GROUP_CALL(intrinsics_tests); +#endif return; }