38 #include "uhal/log/log.hpp" 45 #include <boost/test/unit_test.hpp> 56 HwInterface
hw = getHwInterface();
59 BOOST_CHECK(
typeid( hw.getNode(
"SUBSYSTEM3.DERIVEDNODE") ) ==
typeid(tests::DummyParentNode) );
60 BOOST_CHECK(
typeid( hw.getNode(
"SUBSYSTEM3.DERIVEDMODULE1") ) ==
typeid(tests::DummyChildNode) );
61 BOOST_CHECK(
typeid( hw.getNode(
"SUBSYSTEM3.DERIVEDMODULE2") ) ==
typeid(tests::DummyChildNode) );
62 BOOST_CHECK(
typeid( hw.getNode(
"SUBSYSTEM3.DERIVEDMODULE3") ) ==
typeid(tests::DummyChildNode) );
63 BOOST_CHECK(
typeid( hw.getNode(
"SUBSYSTEM3.DERIVEDMODULE4") ) ==
typeid(tests::DummyChildNode) );
UHAL_TESTS_DEFINE_CLIENT_TEST_CASES(BlockReadWriteTestSuite, block_write_read, DummyHardwareFixture, { std::vector< size_t > lDepths=getBlockUnitTestDepths();for(size_t i=0;i< lDepths.size();i++) { const size_t N=lDepths.at(i);BOOST_TEST_MESSAGE(" N = "<< N);HwInterface hw=getHwInterface();std::vector< uint32_t > xx;xx.reserve(N);for(size_t i=0;i!=N;++i) { xx.push_back(static_cast< uint32_t >(rand()));} hw.getNode("LARGE_MEM").writeBlock(xx);ValVector< uint32_t > mem=hw.getNode("LARGE_MEM").readBlock(N);BOOST_CHECK(!mem.valid());BOOST_CHECK_EQUAL(mem.size(), N);if(N > 0) { BOOST_CHECK_THROW(mem.at(0), uhal::exception::NonValidatedMemory);} BOOST_CHECK_THROW(mem.value(), uhal::exception::NonValidatedMemory);BOOST_CHECK_NO_THROW(hw.dispatch());BOOST_CHECK(mem.valid());BOOST_CHECK_EQUAL(mem.size(), N);if(N< N_10MB) { bool correct_block_write_read=true;std::vector< uint32_t >::const_iterator j=xx.begin();for(ValVector< uint32_t >::const_iterator i(mem.begin());i!=mem.end();++i,++j) { correct_block_write_read=correct_block_write_read &&(*i== *j);} BOOST_CHECK(correct_block_write_read);} } }) UHAL_TESTS_DEFINE_CLIENT_TEST_CASES(BlockReadWriteTestSuite
BOOST_CHECK(!mem.valid())
A heirarchical node for navigating heirarchical firmwares.