diff options
Diffstat (limited to 'volk/lib')
-rw-r--r-- | volk/lib/Makefile.am | 80 | ||||
-rw-r--r-- | volk/lib/testqa.cc | 101 |
2 files changed, 114 insertions, 67 deletions
diff --git a/volk/lib/Makefile.am b/volk/lib/Makefile.am index f609f5bf9..63df85244 100644 --- a/volk/lib/Makefile.am +++ b/volk/lib/Makefile.am @@ -1,5 +1,5 @@ # -# Copyright 2010 Free Software Foundation, Inc. +# Copyright 2010,2011 Free Software Foundation, Inc. # # This file is part of GNU Radio # @@ -63,76 +63,17 @@ EXTRA_DIST = \ # The main library # ---------------------------------------------------------------- -universal_runtime_CODE = \ - volk_runtime.c \ - volk_init.c \ +libvolk_runtime_la_SOURCES = \ + $(platform_CODE) \ + volk_runtime.c \ + volk_init.c \ volk_rank_archs.c -universal_CODE = \ +libvolk_la_SOURCES = \ + $(platform_CODE) \ volk.c \ volk_environment_init.c -generic_CODE = \ - volk_cpu_generic.c - -x86_CODE = \ - volk_cpu_x86.c - -x86_SUBCODE = \ - cpuid_x86.S - -x86_64_SUBCODE = \ - cpuid_x86_64.S - -powerpc_CODE = \ - volk_cpu_powerpc.c - - -if MD_CPU_generic -libvolk_la_SOURCES = \ - $(generic_CODE) \ - $(universal_CODE) -libvolk_runtime_la_SOURCES = \ - $(generic_CODE) \ - $(universal_runtime_CODE) - -endif - -if MD_CPU_x86 -if MD_SUBCPU_x86_64 -libvolk_la_SOURCES = \ - $(x86_CODE) \ - $(x86_64_SUBCODE) \ - $(universal_CODE) - -libvolk_runtime_la_SOURCES = \ - $(x86_CODE) \ - $(x86_64_SUBCODE) \ - $(universal_runtime_CODE) -else -libvolk_la_SOURCES = \ - $(x86_CODE) \ - $(x86_SUBCODE) \ - $(universal_CODE) - -libvolk_runtime_la_SOURCES = \ - $(x86_CODE) \ - $(x86_SUBCODE) \ - $(universal_runtime_CODE) -endif -endif - - -if MD_CPU_powerpc -libvolk_la_SOURCES = \ - $(powerpc_CODE) \ - $(universal_CODE) - -libvolk_runtime_la_SOURCES = \ - $(powerpc_CODE) \ - $(universal_runtime_CODE) -endif - volk_orc_LDFLAGS = \ $(ORC_LDFLAGS) \ -lorc-0.4 @@ -182,11 +123,16 @@ noinst_PROGRAMS = \ testqa_SOURCES = testqa.cc qa_utils.cc testqa_CPPFLAGS = -DBOOST_TEST_DYN_LINK -DBOOST_TEST_MAIN testqa_LDFLAGS = -lboost_unit_test_framework +if LV_HAVE_ORC testqa_LDADD = \ libvolk.la \ libvolk_runtime.la \ ../orc/libvolk_orc.la - +else +testqa_LDADD = \ + libvolk.la \ + libvolk_runtime.la +endif distclean-local: rm -f volk.c diff --git a/volk/lib/testqa.cc b/volk/lib/testqa.cc new file mode 100644 index 000000000..1ee264fb4 --- /dev/null +++ b/volk/lib/testqa.cc @@ -0,0 +1,101 @@ +#include "qa_utils.h" +#include "../include/volk/volk.h" +#include "../include/volk/volk_registry.h" +#include <boost/test/unit_test.hpp> + +BOOST_AUTO_TEST_CASE(volk_test_all) { + //in order... +// VOLK_RUN_TESTS(volk_16i_x5_add_quad_16i_x4_a16, 1e-4, 2046, 10000); +// VOLK_RUN_TESTS(volk_16i_branch_4_state_8_a16, 1e-4, 2046, 10000); +// VOLK_RUN_TESTS(volk_16ic_deinterleave_16i_x2_a16, 1e-4, 2046, 10000); +// VOLK_RUN_TESTS(volk_16ic_s32f_deinterleave_32f_x2_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_16ic_deinterleave_real_16i_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_16ic_s32f_deinterleave_real_32f_a16, 1e-5, 2046, 10000); + VOLK_RUN_TESTS(volk_16ic_deinterleave_real_8i_a16, 1e-4, 2046, 10000); +// VOLK_RUN_TESTS(volk_16ic_deinterleave_16i_x2_a16, 1e-4, 2046, 10000); +// VOLK_RUN_TESTS(volk_16ic_s32f_deinterleave_32f_x2_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_16ic_deinterleave_real_16i_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_16ic_s32f_deinterleave_real_32f_a16, 1e-5, 2046, 10000); + VOLK_RUN_TESTS(volk_16ic_deinterleave_real_8i_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_16ic_magnitude_16i_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_16ic_s32f_magnitude_32f_a16, 1e-5, 2046, 10000); + VOLK_RUN_TESTS(volk_16i_s32f_convert_32f_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_16i_s32f_convert_32f_u, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_16i_convert_8i_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_16i_convert_8i_u, 1e-4, 2046, 10000); +// VOLK_RUN_TESTS(volk_16i_max_star_16i_a16, 1e-4, 2046, 10000); +// VOLK_RUN_TESTS(volk_16i_max_star_horizontal_16i_a16, 1e-4, 2046, 10000); +// VOLK_RUN_TESTS(volk_16i_permute_and_scalar_add_a16, 1e-4, 2046, 10000); +// VOLK_RUN_TESTS(volk_16i_x4_quad_max_star_16i_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_16u_byteswap_a16, 1e-4, 2046, 10000); +// VOLK_RUN_TESTS(volk_32f_accumulator_s32f_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32f_x2_add_32f_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32fc_32f_multiply_32fc_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32fc_32f_power_32fc_a16, 1e-4, 2046, 1000); +// VOLK_RUN_TESTS(volk_32f_calc_spectral_noise_floor_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32fc_s32f_atan2_32f_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32fc_x2_conjugate_dot_prod_32fc_a16, 1e-4, 2046, 10000); +// VOLK_RUN_TESTS(volk_32fc_deinterleave_32f_x2_a16, 1e-4, 2046, 10000); +// VOLK_RUN_TESTS(volk_32fc_deinterleave_64f_x2_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32fc_deinterleave_real_16i_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32fc_deinterleave_real_32f_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32fc_deinterleave_real_64f_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32fc_x2_dot_prod_32fc_a16, 1e-4, 2046, 10000); +// VOLK_RUN_TESTS(volk_32fc_index_max_16u_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32fc_s32f_magnitude_16i_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32fc_magnitude_32f_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32fc_x2_multiply_32fc_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32f_s32f_convert_16i_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32f_s32f_convert_16i_u, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32f_s32f_convert_32i_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32f_s32f_convert_32i_u, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32f_convert_64f_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32f_convert_64f_u, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32f_s32f_convert_8i_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32f_s32f_convert_8i_u, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32fc_s32f_x2_power_spectral_density_32f_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32fc_s32f_power_spectrum_32f_a16, 1e-4, 2046, 10000); +// VOLK_RUN_TESTS(volk_32fc_x2_square_dist_32f_a16, 1e-4, 2046, 10000); +// VOLK_RUN_TESTS(volk_32fc_x2_s32f_square_dist_scalar_mult_32f_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32f_x2_divide_32f_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32f_x2_dot_prod_32f_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32f_x2_dot_prod_32f_u, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32f_s32f_32f_fm_detect_32f_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32f_index_max_16u_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32f_x2_s32f_interleave_16ic_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32f_x2_interleave_32fc_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32f_x2_max_32f_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32f_x2_min_32f_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32f_x2_multiply_32f_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32f_s32f_normalize_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32f_s32f_power_32f_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32f_sqrt_32f_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32f_s32f_stddev_32f_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32f_stddev_and_mean_32f_x2_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32f_x2_subtract_32f_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32f_x3_sum_of_poly_32f_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32i_x2_and_32i_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32i_s32f_convert_32f_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32i_s32f_convert_32f_u, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32i_x2_or_32i_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_32u_byteswap_a16, 1e-4, 2046, 10000); +// VOLK_RUN_TESTS(volk_32u_popcnt_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_64f_convert_32f_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_64f_convert_32f_u, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_64f_x2_max_64f_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_64f_x2_min_64f_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_64u_byteswap_a16, 1e-4, 2046, 10000); +// VOLK_RUN_TESTS(volk_64u_popcnt_a16, 1e-4, 2046, 10000); +// VOLK_RUN_TESTS(volk_8ic_deinterleave_16i_x2_a16, 1e-4, 2046, 10000); +// VOLK_RUN_TESTS(volk_8ic_s32f_deinterleave_32f_x2_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_8ic_deinterleave_real_16i_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_8ic_s32f_deinterleave_real_32f_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_8ic_deinterleave_real_8i_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_8ic_x2_multiply_conjugate_16ic_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_8ic_x2_s32f_multiply_conjugate_32fc_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_8i_convert_16i_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_8i_convert_16i_u, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_8i_s32f_convert_32f_a16, 1e-4, 2046, 10000); + VOLK_RUN_TESTS(volk_8i_s32f_convert_32f_u, 1e-4, 2046, 10000); + +} |