83 lines
2.2 KiB
C++
Executable File

#include "GeneralData.h"
#include "catch.hpp"
#include <iostream>
// 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<char *>(&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<char *>(&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);
}