diff --git a/tests/FPGAIntegrationTest.cpp b/tests/FPGAIntegrationTest.cpp index 0c74026e..efc793de 100644 --- a/tests/FPGAIntegrationTest.cpp +++ b/tests/FPGAIntegrationTest.cpp @@ -282,6 +282,12 @@ TEST_CASE("HLS_C_Simulation_check_single_packet", "[FPGA][Full]") { DiffractionExperiment x((DetectorGeometry(nmodules))); uint16_t data[4096]; + uint16_t wrong[4096]; + + for (int i = 0; i < 4096; i++) { + data[i] = (7 * i + 534 + 5 * i * i) % UINT16_MAX; + wrong[i] = UINT16_MAX; + } x.Mode(DetectorMode::Raw); x.PedestalG0Frames(0).ImagesPerTrigger(3).NumTriggers(1); @@ -320,6 +326,18 @@ TEST_CASE("HLS_C_Simulation_check_single_packet", "[FPGA][Full]") { REQUIRE(test.GetBytesReceived() == 15 * JUNGFRAU_PACKET_SIZE_BYTES); + REQUIRE(memcmp(test.GetFrameBuffer(0,0), data, JUNGFRAU_PACKET_SIZE_BYTES) == 0); + REQUIRE(memcmp(test.GetFrameBuffer(0,0) + 1 * JUNGFRAU_PACKET_SIZE_BYTES/2, wrong, JUNGFRAU_PACKET_SIZE_BYTES) == 0); + REQUIRE(memcmp(test.GetFrameBuffer(0,0) + 2 * JUNGFRAU_PACKET_SIZE_BYTES/2, wrong, JUNGFRAU_PACKET_SIZE_BYTES) == 0); + REQUIRE(memcmp(test.GetFrameBuffer(0,0) + 3 * JUNGFRAU_PACKET_SIZE_BYTES/2, wrong, JUNGFRAU_PACKET_SIZE_BYTES) == 0); + REQUIRE(memcmp(test.GetFrameBuffer(0,0) + 4 * JUNGFRAU_PACKET_SIZE_BYTES/2, data, JUNGFRAU_PACKET_SIZE_BYTES) == 0); + REQUIRE(memcmp(test.GetFrameBuffer(0,0) + 5 * JUNGFRAU_PACKET_SIZE_BYTES/2, data, JUNGFRAU_PACKET_SIZE_BYTES) == 0); + REQUIRE(memcmp(test.GetFrameBuffer(0,0) + 6 * JUNGFRAU_PACKET_SIZE_BYTES/2, wrong, JUNGFRAU_PACKET_SIZE_BYTES) == 0); + REQUIRE(memcmp(test.GetFrameBuffer(0,0) + 64 * JUNGFRAU_PACKET_SIZE_BYTES/2, data, JUNGFRAU_PACKET_SIZE_BYTES) == 0); + + REQUIRE(memcmp(test.GetFrameBuffer(0,1) + 67 * JUNGFRAU_PACKET_SIZE_BYTES/2, data, JUNGFRAU_PACKET_SIZE_BYTES) == 0); + REQUIRE(memcmp(test.GetFrameBuffer(0,1) + 65 * JUNGFRAU_PACKET_SIZE_BYTES/2, wrong, JUNGFRAU_PACKET_SIZE_BYTES) == 0); + JFJochProtoBuf::AcquisitionDeviceStatistics device_statistics; REQUIRE_NOTHROW(test.SaveStatistics(x, device_statistics)); REQUIRE(device_statistics.good_packets() == 15);