From bb29e7e6462a6a7c2efb9a873a0527f58a8ec4e9 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Thu, 21 Sep 2023 18:39:05 +0200 Subject: [PATCH] HLS_C_Simulation_check_single_packet: check for memory content for missed packets --- tests/FPGAIntegrationTest.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) 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);