#include "meshkit-test.h" #define MOCK_HEARTBEAT_SCRIPT "mockheart.py" /** Tests for the heartbeat listener */ class HeartBeatListenerTests : public Test::Suite { public: HeartBeatListenerTests() { TEST_ADD(HeartBeatListenerTests::testStart); TEST_ADD(HeartBeatListenerTests::testUpdateHB1); TEST_ADD(HeartBeatListenerTests::testUpdateHB2); TEST_ADD(HeartBeatListenerTests::testListen1); } static HeartBeatPacket *makeHB2(); static HeartBeatPacket *makeHB3(); static HeartBeatPacket *makeHB4(); protected: void setup(); void tear_down(); void testStart(); void testUpdateHB1(); void testUpdateHB2(); void testListen1(); static HeartBeatPacket *makeHeartBeat(HeartBeatPacket *, NeighborInfo *); MKCommModel *cm; MKCommModel *cm2; }; /* For reference (MKPacket.h) struct NeighborPacket { uint16_t zsize; uint8_t mac[6]; uint32_t ip_addr; uint32_t metric; uint32_t inactive; uint32_t rx_bytes; uint32_t rx_packets; uint32_t tx_bytes; uint32_t tx_packets; uint16_t signal; uint8_t tx_rate; uint32_t throughput; } __attribute__((packed)); struct HeartBeatPacket { // populated by python script uint8_t pkt_vermaj; uint8_t pkt_vermin; uint16_t pkt_size; uint32_t uptime; uint8_t mac[6]; uint32_t ip_addr; uint8_t num_stations; NeighborPacket mp[1]; } __attribute__((packed)); */