From 60ca903776c5e6c676a52551f45a8a09d2dfe374 Mon Sep 17 00:00:00 2001 From: Jonathon Pendlum Date: Fri, 11 Feb 2022 00:53:06 -0500 Subject: rfnoc: window: Set window size register after loading coefficients --- host/tests/rfnoc_block_tests/window_block_test.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'host/tests') diff --git a/host/tests/rfnoc_block_tests/window_block_test.cpp b/host/tests/rfnoc_block_tests/window_block_test.cpp index 26978464b..e45c00cbb 100644 --- a/host/tests/rfnoc_block_tests/window_block_test.cpp +++ b/host/tests/rfnoc_block_tests/window_block_test.cpp @@ -35,6 +35,7 @@ class window_mock_reg_iface_t : public mock_reg_iface_t public: window_mock_reg_iface_t(size_t num_chans, std::vector max_num_coeffs) : last_coeff_write_pos(num_chans, 0) + , num_coeffs(num_chans) , coeffs(num_chans) , _num_chans(num_chans) , _max_num_coeffs(max_num_coeffs) @@ -58,6 +59,8 @@ public: } else if (offset == window_block_control::REG_WINDOW_LOAD_COEFF_LAST_OFFSET) { last_coeff_write_pos[chan] = coeffs.at(chan).size(); coeffs.at(chan).push_back(uhd::narrow_cast(data)); + } else if (offset == window_block_control::REG_WINDOW_LEN_OFFSET) { + num_coeffs[chan] = uhd::narrow_cast(data); } else { throw uhd::assertion_error("Invalid write to out of bounds offset"); } @@ -87,6 +90,7 @@ public: } std::vector last_coeff_write_pos; + std::vector num_coeffs; std::vector> coeffs; private: @@ -179,6 +183,9 @@ BOOST_FIXTURE_TEST_CASE(window_test_set_get_coefficients, window_block_fixture) // Check that all coefficients were written BOOST_CHECK_EQUAL(reg_iface->coeffs.at(chan).size(), num_coeffs_chan); + // Check correct window length was written + BOOST_CHECK_EQUAL(reg_iface->num_coeffs.at(chan), num_coeffs_chan); + // Check correctness of coefficients for (size_t i = 0; i < coeffs.size(); i++) { BOOST_CHECK_EQUAL(reg_iface->coeffs.at(chan).at(i), chan); -- cgit v1.2.3