4#define BOOST_TEST_DYN_LINK
5#define BOOST_TEST_MODULE NumericAddressingSyntaxTest
6#include <boost/test/unit_test.hpp>
7using namespace boost::unit_test_framework;
16 uint64_t address, uint32_t nBytes, uint64_t bar, uint32_t width, int32_t nFractionalBits,
bool signedFlag) {
17 BOOST_TEST(info.
pathName == pathName);
18 BOOST_CHECK_MESSAGE(info.
nElements == nElements,
19 "nElements mismatch in " << pathName <<
": " << info.
nElements <<
" != " << nElements);
21 info.
address == address,
"address mismatch in " << pathName <<
": " << info.
address <<
" != " << address);
23 "nBytes mismatch in " << pathName <<
": " << info.
elementPitchBits / 8 * nElements <<
" != " << nBytes);
24 BOOST_CHECK_MESSAGE(info.
bar == bar,
"bar mismatch in " << pathName <<
": " << info.
bar <<
" != " << bar);
26 info.
channels.size() == 1,
"channels.size() mismatch in " << pathName <<
": " << info.
channels.size() <<
" != 1");
27 BOOST_CHECK_MESSAGE(info.
channels.front().width == width,
28 "width mismatch in " << pathName <<
": " << info.
channels.front().width <<
" != " << width);
29 BOOST_CHECK_MESSAGE(info.
channels.front().nFractionalBits == nFractionalBits,
30 "nFractionalBits mismatch in " << pathName <<
": " << info.
channels.front().nFractionalBits
31 <<
" != " << nFractionalBits);
32 BOOST_CHECK_MESSAGE(info.
channels.front().signedFlag == signedFlag,
33 "signedFlag mismatch in " << pathName <<
": " << info.
channels.front().signedFlag <<
" != " << signedFlag);
226 BOOST_TEST(info1.elementPitchBits == 64);
237 BOOST_TEST(info1.elementPitchBits == 32);
247 BOOST_TEST(info1.elementPitchBits == 64);
257 BOOST_TEST(info1.elementPitchBits == 32);
NumericAddressedRegisterInfo getBackendRegister(const RegisterPath ®isterPathName) const override
Note: Override this function if backend has "hidden" registers which are not added to the map and hen...
uint32_t nElements
Number of elements in register.
std::vector< ChannelInfo > channels
Define per-channel information (bit interpretation etc.), 1D/scalars have exactly one entry.
uint64_t bar
Upper part of the address (name originally from PCIe, meaning now generalised)
uint32_t elementPitchBits
Distance in bits (!) between two elements (of the same channel)
uint64_t address
Lower part of the address relative to BAR, in bytes.
Class to store a register path name.
Exception thrown when a logic error has occured.
This header collects some conversion routines which should be useful both for ApplicationCore Python ...
void compareRegister(NumericAddressedRegisterInfo info, RegisterPath const &pathName, uint32_t nElements, uint64_t address, uint32_t nBytes, uint64_t bar, uint32_t width, int32_t nFractionalBits, bool signedFlag)
BOOST_AUTO_TEST_CASE(TestLegacyScalar)