5 #include <gtest/gtest.h> 25 EXPECT_EQ(7, masks.write);
26 EXPECT_EQ(0, masks.read);
28 for (
unsigned i = 0; i < 3; i++)
30 driver.
ifaces.at(i).writeable =
false;
37 EXPECT_EQ(0, masks.write);
38 EXPECT_EQ(0, masks.read);
40 EXPECT_EQ(100, clockmock.
utc);
44 driver.
ifaces.at(1).pushRx(fr1);
48 EXPECT_EQ(0, masks.write);
49 EXPECT_EQ(2, masks.read);
54 EXPECT_EQ(1, driver.
getIface(1)->
receive(fr2, ts_monotonic, ts_utc, flags));
57 EXPECT_EQ(100, ts_monotonic.
toUSec());
58 EXPECT_EQ(0, ts_utc.
toUSec());
61 driver.
ifaces.at(0).writeable =
true;
66 EXPECT_EQ(1, masks.write);
67 EXPECT_EQ(7, masks.read);
84 EXPECT_EQ(1, masks.write);
85 EXPECT_EQ(0, masks.read);
90 fr1.id = 123 | CanFrame::FlagEFF;
96 EXPECT_EQ(0, masks.write);
97 EXPECT_EQ(1, masks.read);
103 EXPECT_EQ(1, driver.
getIface(0)->
receive(fr2, ts_monotonic, ts_utc, flags));
106 EXPECT_EQ(200, ts_monotonic.
toUSec());
107 EXPECT_EQ(0, ts_utc.
toUSec());
virtual uavcan::int16_t select(uavcan::CanSelectMasks &inout_masks, const uavcan::CanFrame *(&pending_tx)[uavcan::MaxCanIfaces], uavcan::MonotonicTime deadline)
virtual int16_t send(const CanFrame &frame, MonotonicTime tx_deadline, CanIOFlags flags)=0
TEST(CanDriverMock, Basic)
static MonotonicTime fromUSec(uint64_t us)
virtual int16_t receive(CanFrame &out_frame, MonotonicTime &out_ts_monotonic, UtcTime &out_ts_utc, CanIOFlags &out_flags)=0
virtual uavcan::ICanIface * getIface(uavcan::uint8_t iface_index)
void advance(uint64_t usec) const
virtual uavcan::uint8_t getNumIfaces() const
Implicitly convertible to/from uavcan.Timestamp.
uavcan::CanFrame makeCanFrame(uint32_t id, const std::string &str_data, FrameType type)
static const CanIOFlags CanIOFlagLoopback
std::vector< CanIfaceMock > ifaces