From 8a5719248f02f56aaef7c18995e14a92f7ec297a Mon Sep 17 00:00:00 2001 From: Ilia Date: Sat, 19 Dec 2015 16:43:29 +0000 Subject: [PATCH] HW acceptance filters unit test corrected. specificator changed for cfg.MK-ID print --- .../uc_can_acceptance_filter_configurator.cpp | 4 +- .../can_acceptance_filter_configurator.cpp | 109 ++++++++++++------ 2 files changed, 77 insertions(+), 36 deletions(-) diff --git a/libuavcan/src/transport/uc_can_acceptance_filter_configurator.cpp b/libuavcan/src/transport/uc_can_acceptance_filter_configurator.cpp index 448ebe8405..9a2f9af901 100644 --- a/libuavcan/src/transport/uc_can_acceptance_filter_configurator.cpp +++ b/libuavcan/src/transport/uc_can_acceptance_filter_configurator.cpp @@ -136,9 +136,9 @@ int16_t CanAcceptanceFilterConfigurator::applyConfiguration(void) #if UAVCAN_DEBUG for (uint16_t i = 0; i < multiset_configs_.getSize(); i++) { - UAVCAN_TRACE("CanAcceptanceFilterConfigurator::applyConfiguration()", "cfg.ID [%u] = %d", i, + UAVCAN_TRACE("CanAcceptanceFilterConfigurator::applyConfiguration()", "cfg.ID [%u] = %u", i, multiset_configs_.getByIndex(i)->id); - UAVCAN_TRACE("CanAcceptanceFilterConfigurator::applyConfiguration()", "cfg.MK [%u] = %d", i, + UAVCAN_TRACE("CanAcceptanceFilterConfigurator::applyConfiguration()", "cfg.MK [%u] = %u", i, multiset_configs_.getByIndex(i)->mask); } #endif diff --git a/libuavcan/test/transport/can_acceptance_filter_configurator.cpp b/libuavcan/test/transport/can_acceptance_filter_configurator.cpp index ff3e647989..c3d2ba963a 100644 --- a/libuavcan/test/transport/can_acceptance_filter_configurator.cpp +++ b/libuavcan/test/transport/can_acceptance_filter_configurator.cpp @@ -123,21 +123,49 @@ TEST(CanAcceptanceFilter, Basic_test) sub_6.start(listener_6.bindExtended()); sub_6_1.start(listener_6.bindExtended()); server.start(writeServiceServerCallback); - std::cout << "Subscribers are initialized ..." << std::endl; + std::cout << "Subscribers are initialized." << std::endl; + uavcan::CanAcceptanceFilterConfigurator anon_test_configuration(node, 10); - uavcan::CanAcceptanceFilterConfigurator anon_test_configuration(node); - int configure_filters_assert = anon_test_configuration.configureFilters(); - if (configure_filters_assert == 0) - { - std::cout << "Filters are configured with anonymous configuration..." << std::endl; - } + uavcan::CanFilterConfig aux_config_1, aux_config_2; + aux_config_1.id = 0; + aux_config_1.mask = 1488; + aux_config_2.id = 24; + aux_config_2.mask = 72; + int configure_filters_assert; + configure_filters_assert = anon_test_configuration.addFilterConfig(aux_config_1); + ASSERT_EQ(configure_filters_assert, 0); + configure_filters_assert = anon_test_configuration.addFilterConfig(aux_config_2); + ASSERT_EQ(configure_filters_assert, 0); + + configure_filters_assert = anon_test_configuration.computeConfiguration(); + ASSERT_EQ(configure_filters_assert, 0); + std::cout << "Filters are calculated with anonymous configuration." << std::endl; const auto& configure_array = anon_test_configuration.getConfiguration(); uint32_t configure_array_size = configure_array.getSize(); + std::cout << "Number of configs after first time computeConfiguration() invoked: " + << configure_array_size << std::endl; + ASSERT_EQ(configure_array_size, 10); + std::cout << "Adding two additional configurations ... " << std::endl; + aux_config_2.id = 999999; + aux_config_2.mask = 849128412; + configure_filters_assert = anon_test_configuration.addFilterConfig(aux_config_1); ASSERT_EQ(configure_filters_assert, 0); - ASSERT_EQ(configure_array_size, 4); + configure_filters_assert = anon_test_configuration.addFilterConfig(aux_config_2); + ASSERT_EQ(configure_filters_assert, 0); + configure_array_size = configure_array.getSize(); + std::cout << "New configuration anon_container size: " << configure_array_size << std::endl; + ASSERT_EQ(configure_array_size, 12); + + std::cout << "Applying configuration ... " << std::endl; + configure_filters_assert = anon_test_configuration.applyConfiguration(); + ASSERT_EQ(configure_filters_assert, 0); + std::cout << "Filters are configured." << std::endl; + configure_array_size = configure_array.getSize(); + std::cout << "Final configuration anon_container size: " << configure_array_size << std::endl; + ASSERT_EQ(configure_array_size, 10); for (uint16_t i = 0; i