#include "GeneralData.h" #include "catch.hpp" #include // using namespace sls; TEST_CASE("Parse jungfrauctb header", "[receiver]") { struct packet { unsigned char emptyHeader[6]; unsigned char reserved[4]; unsigned char packetNumber[1]; unsigned char frameNumber[3]; unsigned char bunchid[8]; unsigned char data[UDP_PACKET_DATA_BYTES]; } __attribute__((packed)); MoenchData data; packet test_packet; test_packet.packetNumber[0] = 53u; test_packet.frameNumber[0] = 32u; test_packet.frameNumber[1] = 15u; test_packet.frameNumber[2] = 91u; test_packet.bunchid[0] = 91u; test_packet.bunchid[1] = 25u; test_packet.bunchid[2] = 15u; test_packet.bunchid[3] = 1u; test_packet.bunchid[4] = 32u; test_packet.bunchid[5] = 251u; test_packet.bunchid[6] = 18u; test_packet.bunchid[7] = 240u; int index = 0; char *packetData = reinterpret_cast(&test_packet); uint32_t dynamicRange{0}; bool oddStartingPacket{0}; uint64_t frameNumber{0}; uint32_t packetNumber{0}; uint32_t subFrameNumber{0}; uint64_t bunchId{0}; data.GetHeaderInfo(index, packetData, dynamicRange, oddStartingPacket, frameNumber, packetNumber, subFrameNumber, bunchId); CHECK(packetNumber == 53); CHECK(frameNumber == 0x5b0f20); CHECK(bunchId == 0xf012fb20010f195b); CHECK(subFrameNumber == -1); } TEST_CASE("Parse header gotthard data", "[receiver]") { GotthardData data; struct packet { uint32_t frameNumber; unsigned char data[GOTTHARD_PACKET_SIZE]; } __attribute__((packed)); packet test_packet; test_packet.frameNumber = 25698u; int index = 0; char *packetData = reinterpret_cast(&test_packet); uint32_t dynamicRange{0}; bool oddStartingPacket{0}; uint64_t frameNumber{0}; uint32_t packetNumber{0}; uint32_t subFrameNumber{0}; uint64_t bunchId{0}; data.GetHeaderInfo(index, packetData, dynamicRange, oddStartingPacket, frameNumber, packetNumber, subFrameNumber, bunchId); CHECK(frameNumber == test_packet.frameNumber/2); CHECK(subFrameNumber == -1); CHECK(bunchId == -1); }