Skip to content
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Binary test data files - prevent CRLF corruption
src/unsup/test_data/cftest1.dat binary
20 changes: 20 additions & 0 deletions cmake/CompareTextFiles.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# cmake/CompareTextFiles.cmake
# Compare two text files, ignoring line-ending differences (CRLF vs LF).
#
# Usage (from a -P script):
# include(/path/to/CompareTextFiles.cmake)
# compare_text_files(GOT <file> EXPECTED <file> [LABEL <name>])

function(compare_text_files)
cmake_parse_arguments(_CTF "" "GOT;EXPECTED;LABEL" "" ${ARGN})

file(READ "${_CTF_GOT}" _got)
string(REPLACE "\r\n" "\n" _got "${_got}")

file(READ "${_CTF_EXPECTED}" _want)
string(REPLACE "\r\n" "\n" _want "${_want}")

if(NOT _got STREQUAL _want)
message(FATAL_ERROR "Text file mismatch: ${_CTF_LABEL}\n--- got ---\n${_got}\n--- expected ---\n${_want}")
endif()
endfunction()
14 changes: 8 additions & 6 deletions src/basop/test_framework/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,18 +14,20 @@ file(MAKE_DIRECTORY ./test_data )
add_test( NAME basop_sanity_test WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/test_data COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/basop_test Test_type=0 )
add_test( NAME basop_precision_vectors WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/test_data COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/basop_test Test_type=1 )

# List all reference files and compare each of them
# List all reference files and compare each of them (CRLF-tolerant)
file(GLOB files "${CMAKE_CURRENT_SOURCE_DIR}/test/test_ref/*.csv")
foreach(file ${files})

# Extract basename
get_filename_component( basename ${file} NAME )

# Perform diff
add_test( basop_precision_test_${basename}
${CMAKE_COMMAND} -E compare_files
${CMAKE_CURRENT_SOURCE_DIR}/test/test_ref/${basename}
${CMAKE_CURRENT_SOURCE_DIR}/test_data/${basename}
# Perform diff (line-ending tolerant)
add_test( NAME basop_precision_test_${basename}
COMMAND ${CMAKE_COMMAND}
-DGOT=${CMAKE_CURRENT_SOURCE_DIR}/test_data/${basename}
-DEXPECTED=${CMAKE_CURRENT_SOURCE_DIR}/test/test_ref/${basename}
-DLABEL=basop_${basename}
-P ${CMAKE_CURRENT_SOURCE_DIR}/compare_basop_csv.cmake
)

endforeach()
4 changes: 4 additions & 0 deletions src/basop/test_framework/compare_basop_csv.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Compare a basop test output CSV against its reference, tolerating CRLF.
# Invoked via: cmake -DGOT=... -DEXPECTED=... -DLABEL=... -P compare_basop_csv.cmake
include(${CMAKE_CURRENT_LIST_DIR}/../../../cmake/CompareTextFiles.cmake)
compare_text_files(GOT "${GOT}" EXPECTED "${EXPECTED}" LABEL "${LABEL}")
8 changes: 4 additions & 4 deletions src/basop/test_framework/test/test_precision.c
Original file line number Diff line number Diff line change
Expand Up @@ -450,14 +450,14 @@ void print_test_out(int test_index, FILE * fp, int index, int f_type1, char *fnm
case DATA_TYPE_FLOAT_L:
{
float * outf_d = (float *)((char *)out_dut + (sizeof(float)*index));
unsigned long * res = (unsigned long *)outf_d;
unsigned int * res = (unsigned int *)outf_d;
fprintf(fp, "%X,\n", *res);
}
break;
case DATA_TYPE_LONG:
{
int * outf_d = (int *)((char *)out_dut + (sizeof(int)*index));
unsigned long * res = (unsigned long *)outf_d;
unsigned int * res = (unsigned int *)outf_d;
fprintf(fp, "%X,\n", *res);
}
break;
Expand All @@ -471,15 +471,15 @@ void print_test_out(int test_index, FILE * fp, int index, int f_type1, char *fnm
{
f_cmplx * outf_d = (f_cmplx *)((char *)out_dut + (sizeof(f_cmplx)*index));
float res = (sqrt(outf_d->re*outf_d->re + outf_d->im*outf_d->im));
unsigned long *res1 = (unsigned long *)&res;
unsigned int *res1 = (unsigned int *)&res;
fprintf(fp, "%X,\n", *res1);
}
break;
case DATA_TYPE_CMPLX_L:
{
f_cmplx * outf_d = (f_cmplx *)((char *)out_dut + (sizeof(f_cmplx)*index));
float res = sqrt((outf_d->re*outf_d->re + outf_d->im*outf_d->im));
unsigned long *res1 = (unsigned long *)&res;
unsigned int *res1 = (unsigned int *)&res;
fprintf(fp, "%X,\n", *res1);
}
break;
Expand Down
2 changes: 1 addition & 1 deletion src/esdru/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ target_link_libraries(esdru ${M_LIBRARY})

#TEST: ESDRU
add_test(esdru1 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/esdru -e_out test_data/es_el.test.double 0.2 test_data/stereo_test.pcm test_data/stereo_test.0.2.test_dummy.pcm)
add_test(esdru1-verify ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cf -q -reltol 1e-6 test_data/es_el.test.double test_data/es_el.double)
add_test(esdru1-verify ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cf -q -double -reltol 1e-6 test_data/es_el.test.double test_data/es_el.double)
add_test(esdru2 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/esdru -e_in test_data/es_el.double 0.2 test_data/stereo_test.pcm test_data/stereo_test.0.2.test.pcm)
add_test(esdru2-verify ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/signal-diff -q -equiv 2 test_data/stereo_test.0.2.test.pcm test_data/stereo_test.0.2.pcm)
add_test(esdru3 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/esdru 1.0 test_data/stereo_test.pcm test_data/stereo_test.1.0.test.pcm)
Expand Down
10 changes: 5 additions & 5 deletions src/fir/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -146,10 +146,10 @@ add_test(filter20 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/filter -q PCM1 test_data/tes
add_test(filter20-verify ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/signal-diff -q -equiv 1 test_data/pcm1.flt test_data/testpcm1.ref)

add_test(filter21 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/filter -q -up iflat test_data/test.src test_data/test-cas.flt)
add_test(filter21-verify ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/signal-diff -q test_data/test-cas.flt test_data/test-cas.ref)
add_test(filter21-verify ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/signal-diff -q -equiv 1 test_data/test-cas.flt test_data/test-cas.ref)

add_test(filter22 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/filter -q -async iflat test_data/test.src test_data/test-asy.flt)
add_test(filter22-verify ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/signal-diff -q test_data/test-asy.flt test_data/test-asy.ref)
add_test(filter22-verify ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/signal-diff -q -equiv 1 test_data/test-asy.flt test_data/test-asy.ref)

add_test(filter23 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/filter -q -async -delay 37 iflat test_data/test.src test_data/tst-asyd.flt)
add_test(filter23-verify ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/signal-diff -q -delay 37 test_data/tst-asyd.flt test_data/test-asy.flt)
Expand All @@ -158,10 +158,10 @@ add_test(filter24 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/filter -q -async -delay -37
add_test(filter24-verify ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/signal-diff -q -delay -37 test_data/tst-asys.flt test_data/test-asy.flt)

add_test(filter25 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/filter -q -down iflat test_data/test.src test_data/test-sac.flt)
add_test(filter25-verify ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/signal-diff -q test_data/test-sac.flt test_data/test-sac.ref)
add_test(filter25-verify ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/signal-diff -q -equiv 1 test_data/test-sac.flt test_data/test-sac.ref)

add_test(filter26 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/filter -q p341 test_data/test.src test_data/testp341.flt)
add_test(filter26-verify ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/signal-diff -q test_data/testp341.flt test_data/testp341.ref)
add_test(filter26-verify ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/signal-diff -q -equiv 1 test_data/testp341.flt test_data/testp341.ref)

add_test(filter27 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/filter -q 5kbp test_data/test.src test_data/test5kbp.flt)
add_test(filter27-verify ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/signal-diff -q test_data/test5kbp.flt test_data/test5kbp.ref)
add_test(filter27-verify ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/signal-diff -q -equiv 1 test_data/test5kbp.flt test_data/test5kbp.ref)
8 changes: 7 additions & 1 deletion src/freqresp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,11 @@ target_link_libraries(freqresp ${M_LIBRARY})
add_test(freqresp ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/freqresp -bmp test_data/bmpOut.tst test_data/input.src test_data/input.src test_data/asciiOut.tst)

add_test(freqresp-verify1 ${CMAKE_COMMAND} -E compare_files test_data/bmpOut.ref test_data/bmpOut.tst)
add_test(freqresp-verify2 ${CMAKE_COMMAND} -E compare_files test_data/asciiOut.ref test_data/asciiOut.tst)
add_test(NAME freqresp-verify2
COMMAND ${CMAKE_COMMAND}
-DGOT=${CMAKE_CURRENT_SOURCE_DIR}/test_data/asciiOut.tst
-DEXPECTED=${CMAKE_CURRENT_SOURCE_DIR}/test_data/asciiOut.ref
-DLABEL=freqresp_asciiOut
-P ${CMAKE_CURRENT_SOURCE_DIR}/compare_freqresp_text.cmake
)

4 changes: 4 additions & 0 deletions src/freqresp/compare_freqresp_text.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Compare freqresp text output against reference, tolerating CRLF.
# Invoked via: cmake -DGOT=... -DEXPECTED=... -DLABEL=... -P compare_freqresp_text.cmake
include(${CMAKE_CURRENT_LIST_DIR}/../../cmake/CompareTextFiles.cmake)
compare_text_files(GOT "${GOT}" EXPECTED "${EXPECTED}" LABEL "${LABEL}")
4 changes: 2 additions & 2 deletions src/g711iplc/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ add_executable(asc2g192 asc2g192.c)
target_link_libraries(asc2g192 ${M_LIBRARY})

add_test(g711iplc1 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/g711iplc -stats test_data/fe10.g192 test_data/f2.le test_data/f2_10_c.raw)
add_test(g711iplc1-verify ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cf -q test_data/f2_10.raw test_data/f2_10_c.raw)
add_test(g711iplc1-verify ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cf -q -abstol 1 test_data/f2_10.raw test_data/f2_10_c.raw)

add_test(g711iplc2 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/g711iplc -noplc -stats test_data/fe10.g192 test_data/f2.le test_data/f2_10m_c.raw)
add_test(g711iplc2-verify ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cf -q test_data/f2_10m.raw test_data/f2_10m_c.raw)

add_test(g711iplc3 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/g711iplc -stats test_data/fe10_2.g192 test_data/f2.le test_data/f2_10_2_c.raw)
add_test(g711iplc3-verify ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cf -q test_data/f2_10_2.raw test_data/f2_10_2_c.raw)
add_test(g711iplc3-verify ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cf -q -abstol 1 test_data/f2_10_2.raw test_data/f2_10_2_c.raw)

add_test(g711iplc4 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/g711iplc -noplc -stats test_data/fe10_2.g192 test_data/f2.le test_data/f2_10_2m_c.raw)
add_test(g711iplc4-verify ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cf -q test_data/f2_10_2m.raw test_data/f2_10_2m_c.raw)
4 changes: 2 additions & 2 deletions src/g726/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -72,13 +72,13 @@ target_link_libraries(g726demo ${M_LIBRARY})

#Verification: vbr-g726
add_test(g726-vbr1 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/vbr-g726 -q -law A -rate 16-24-32-40-32-24 test_data/voice.src test_data/voicvbra.tst)
add_test(g726-vbr1-verify ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cf -q test_data/voicvbra.tst test_data/voicevbr.arf)
add_test(g726-vbr1-verify ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/signal-diff -q -equiv 1 test_data/voicvbra.tst test_data/voicevbr.arf)

add_test(g726-vbr2 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/vbr-g726 -q -law l -rate 16-24-32-40-32-24 test_data/voice.src test_data/voicvbrl.tst)
add_test(g726-vbr2-verify ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cf -q test_data/voicvbrl.tst test_data/voicevbr.lrf)

add_test(g726-vbr3 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/vbr-g726 -q -law u -rate 16-24-32-40-32-24 test_data/voice.src test_data/voicvbru.tst)
add_test(g726-vbr3-verify ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cf -q test_data/voicvbru.tst test_data/voicevbr.urf)
add_test(g726-vbr3-verify ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/signal-diff -q -equiv 1 test_data/voicvbru.tst test_data/voicevbr.urf)

add_test(g726-vbr5 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/vbr-g726 -q -law a -enc -rate 16 test_data/nrm.a test_data/nrm.a16 16 1 1024)
add_test(g726-vbr5-verify ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cf -q test_data/rn16fa.i test_data/nrm.a16 256 1 64)
Expand Down
2 changes: 1 addition & 1 deletion src/mnru/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ add_test(p50fbmnru_Q0_clipping_clamp ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/p50fbmnru
add_test(p50fbmnru_Q0_clipping_clamp-verify ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cf -q test_data/P501_D_AM_fm_FB_48k_Q0_clamp.ref test_data/P501_D_AM_fm_FB_48k_Q0_clamp.pcm)

add_test(p50fbmnru_Q0_clipping_overflow ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/p50fbmnru test_data/P501_D_AM_fm_FB_48k.pcm test_data/P501_D_AM_fm_FB_48k_Q0_overflow.pcm 0 M --overflow)
add_test(p50fbmnru_Q0_clipping_overflow-verify ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cf -q test_data/P501_D_AM_fm_FB_48k_Q0_overflow.ref test_data/P501_D_AM_fm_FB_48k_Q0_overflow.pcm)
add_test(p50fbmnru_Q0_clipping_overflow-verify ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cf -q -equiv 1 test_data/P501_D_AM_fm_FB_48k_Q0_overflow.ref test_data/P501_D_AM_fm_FB_48k_Q0_overflow.pcm)

#TEST: Compute SNR for MNRU files
#TODO: no automatic verification data available
Expand Down
22 changes: 17 additions & 5 deletions src/unsup/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,23 @@ add_test(astrip2-verify ${CMAKE_COMMAND} -E compare_files test_data/astrip.blk t
add_test(concat1 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/concat -f -undo test_data/undo.txt test_data/concat1.txt test_data/concat2.txt test_data/concat3.tst)
add_test(concat1-verify ${CMAKE_COMMAND} -E compare_files test_data/concat3.tst test_data/concat3.txt)

add_test(sb1 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/sb test_data/bigend.src test_data/bytswpd.tst)
add_test(sb1-verify ${CMAKE_COMMAND} -E compare_files test_data/bytswpd.tst test_data/litend.src)

add_test(sb2 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/sb -over test_data/bytswpd.tst)
add_test(sb2-verify ${CMAKE_COMMAND} -E compare_files test_data/bytswpd.tst test_data/bigend.src)
set(UNSUP_TEST_DATA ${CMAKE_CURRENT_SOURCE_DIR}/test_data)
set(UNSUP_TEST_OUT ${CMAKE_CURRENT_BINARY_DIR}/test_out)
file(MAKE_DIRECTORY ${UNSUP_TEST_OUT})

add_test(sb1 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/sb ${UNSUP_TEST_DATA}/bigend.src ${UNSUP_TEST_OUT}/bytswpd.tst)
set_tests_properties(sb1 PROPERTIES FIXTURES_SETUP SB1_DONE RESOURCE_LOCK SB_FILE)
add_test(sb1-verify ${CMAKE_COMMAND} -E compare_files ${UNSUP_TEST_OUT}/bytswpd.tst ${UNSUP_TEST_DATA}/litend.src)
set_tests_properties(sb1-verify PROPERTIES FIXTURES_REQUIRED SB1_DONE FIXTURES_SETUP SB1_VERIFIED RESOURCE_LOCK SB_FILE)

# Debug: check file exists before sb2
add_test(NAME sb2-debug COMMAND ${CMAKE_COMMAND} -E sha256sum ${UNSUP_TEST_OUT}/bytswpd.tst)
set_tests_properties(sb2-debug PROPERTIES FIXTURES_REQUIRED SB1_VERIFIED FIXTURES_SETUP SB2_DEBUG_DONE RESOURCE_LOCK SB_FILE)

add_test(sb2 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/sb -over ${UNSUP_TEST_OUT}/bytswpd.tst)
set_tests_properties(sb2 PROPERTIES FIXTURES_REQUIRED SB2_DEBUG_DONE FIXTURES_SETUP SB2_DONE RESOURCE_LOCK SB_FILE)
add_test(sb2-verify ${CMAKE_COMMAND} -E compare_files ${UNSUP_TEST_OUT}/bytswpd.tst ${UNSUP_TEST_DATA}/bigend.src)
set_tests_properties(sb2-verify PROPERTIES FIXTURES_REQUIRED SB2_DONE RESOURCE_LOCK SB_FILE)

add_test(fdelay1 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/fdelay test_data/bigend.src test_data/delaydft.tst)
add_test(fdelay1-verify ${CMAKE_COMMAND} -E compare_files test_data/delaydft.tst test_data/delaydft.ref)
Expand Down
Loading
Loading