41 #include <boost/test/unit_test.hpp> 54 for (
size_t i = 0; i < 10; i++) {
58 if ( (hw.
uri().find (
"ipbustcp" ) != std::string::npos ) || (hw.
uri().find (
"ipbuspcie" ) != std::string::npos) )
71 HwInterface getHwWithModifiedControlHubPort(
const std::string& aConnectionFile,
const std::string& aDeviceId)
73 typedef boost::filesystem::path Path_t;
74 const std::string lAddrFilePath = ( Path_t(aConnectionFile).parent_path() / Path_t(
"dummy_address.xml") ).
string();
77 const std::string lModifiedUri = lOriginalUri.substr(0, lOriginalUri.find(
"?")-1) + lOriginalUri.substr(lOriginalUri.find(
"?"));
85 for (
size_t i = 0; i < 10; i++) {
86 HwInterface hw = getHwWithModifiedControlHubPort(connectionFileURI, deviceId);
92 BOOST_TEST_MESSAGE(
" *** Skipping check_nonreachable_controlhub test case, since client under test does not talk to ControlHub. ***");
A class which bundles a node tree and an IPbus client interface together providing everything you nee...
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
std::string uri() const
Return the url of the target for this client.
void dispatch()
Make the IPbus client issue a dispatch.
HwInterface getDevice(const std::string &aId)
Retrieves protocol, host, and port from the connection file to create an IPbus Client Retrieves the a...
BOOST_CHECK_THROW(hw.getNode("REG").writeBlockOffset(xx, 0), uhal::exception::BulkTransferOffsetRequestedForSingleRegister)
std::string uri() const
Ping the target for this client.
ClientInterface & getClient()
Get the underlying IPbus client.
ValWord< uint32_t > read() const
Read a single, unmasked, unsigned word.
const Node & getNode() const
Ping the target for this client.
A class to open and manage XML connection files and wrap up the interfaces to the NodeTreeBuilder and...