diff --git a/core-buffer/test/test_FastQueue.cpp b/core-buffer/test/test_FastQueue.cpp index 74b3ecb..3257321 100644 --- a/core-buffer/test/test_FastQueue.cpp +++ b/core-buffer/test/test_FastQueue.cpp @@ -68,4 +68,39 @@ TEST(FastQueue, queue_full) queue.release(); // After the release, the first slot is again ready for writing. ASSERT_EQ(queue.reserve(), 0); +} + +TEST(FastQueue, data_transfer) +{ + size_t n_slots = 5; + size_t slot_data_n_bytes = MODULE_N_BYTES * 2; + FastQueue 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 = 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; ipulse_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