Fix fast queue implementation

This commit is contained in:
2020-05-15 10:48:00 +02:00
parent 1f771bf444
commit 9beb050afc
+16 -16
View File
@@ -7,7 +7,7 @@ TEST(FastQueue, basic_interaction)
{
size_t n_slots = 5;
size_t slot_data_n_bytes = MODULE_N_BYTES * 2;
FastQueue<DetectorFrame> queue(slot_data_n_bytes, n_slots);
FastQueue<ImageMetadata> queue(slot_data_n_bytes, n_slots);
int slot_id;
// The queue at the beginning should be empty.
@@ -47,7 +47,7 @@ TEST(FastQueue, queue_full)
{
size_t n_slots = 5;
size_t slot_data_n_bytes = MODULE_N_BYTES * 2;
FastQueue<DetectorFrame> queue(slot_data_n_bytes, n_slots);
FastQueue<ImageMetadata> queue(slot_data_n_bytes, n_slots);
// There is nothing to be read in the queue.
ASSERT_EQ(queue.read(), -1);
@@ -74,15 +74,15 @@ TEST(FastQueue, data_transfer)
{
size_t n_slots = 5;
size_t slot_data_n_bytes = MODULE_N_BYTES * 2;
FastQueue<DetectorFrame> queue(slot_data_n_bytes, n_slots);
FastQueue<ImageMetadata> queue(slot_data_n_bytes, n_slots);
int write_slot_id = queue.reserve();
auto w_metadata = queue.get_metadata_buffer(write_slot_id);
w_metadata->pulse_id[0] = 1;
w_metadata->frame_index[0] = 2;
w_metadata->daq_rec[0] = 3;
w_metadata->n_received_packets[0] = 4;
w_metadata->pulse_id = 1;
w_metadata->frame_index = 2;
w_metadata->daq_rec = 3;
w_metadata->n_received_packets = 4;
auto w_data = (uint16_t*)(queue.get_data_buffer(write_slot_id));
for (size_t i=0; i<MODULE_N_PIXELS; i++) {
@@ -94,14 +94,14 @@ TEST(FastQueue, data_transfer)
auto read_slot_id = queue.read();
auto r_metadata = queue.get_metadata_buffer(read_slot_id);
EXPECT_EQ(w_metadata->pulse_id[0],
r_metadata->pulse_id[0]);
EXPECT_EQ(w_metadata->frame_index[0],
r_metadata->frame_index[0]);
EXPECT_EQ(w_metadata->daq_rec[0],
r_metadata->daq_rec[0]);
EXPECT_EQ(w_metadata->n_received_packets[0],
r_metadata->n_received_packets[0]);
EXPECT_EQ(w_metadata->pulse_id,
r_metadata->pulse_id);
EXPECT_EQ(w_metadata->frame_index,
r_metadata->frame_index);
EXPECT_EQ(w_metadata->daq_rec,
r_metadata->daq_rec);
EXPECT_EQ(w_metadata->n_received_packets,
r_metadata->n_received_packets);
auto r_data = (uint16_t*)(queue.get_data_buffer(read_slot_id));
for (size_t i=0; i<MODULE_N_PIXELS; i++) {
@@ -114,7 +114,7 @@ TEST(FaseQueue, array_parameter)
size_t n_modules = 32;
FastQueue<ModuleFrameBuffer> queue(
n_modules * MODULE_N_BYTES,
WRITER_RB_BUFFER_SLOTS);
WRITER_FASTQUEUE_SLOTS);
ModuleFrame frame;