#include "BufferH5Writer.hpp" #include "gtest/gtest.h" using namespace core_buffer; TEST(BufferH5Writer, basic_interaction) { auto root_folder = "."; auto device_name = "fast_device"; size_t pulse_id = 1; auto buffer = make_unique(JUNGFRAU_DATA_BYTES_PER_FRAME); ModuleFrame metadata; metadata.pulse_id = 1; metadata.frame_index = 2; metadata.daq_rec = 3; metadata.n_received_packets = 128; BufferH5Writer writer(root_folder, device_name); writer.set_pulse_id(pulse_id); writer.write(&metadata, buffer.get()); writer.close_file(); auto filename = BufferUtils::get_filename( root_folder, device_name, pulse_id); auto file_frame_index = BufferUtils::get_file_frame_index(pulse_id); H5::H5File input_file(filename, H5F_ACC_RDONLY); auto image_dataset = input_file.openDataSet("image"); size_t image_buffer_n_bytes = JUNGFRAU_DATA_BYTES_PER_FRAME * FILE_MOD; auto image_buffer = make_unique(image_buffer_n_bytes); image_dataset.read(image_buffer.get(), H5::PredType::NATIVE_UINT16); auto metadata_dataset = input_file.openDataSet("metadata"); auto metadata_buffer = make_unique(FILE_MOD); metadata_dataset.read(metadata_buffer.get(), H5::PredType::NATIVE_UINT64); EXPECT_EQ(metadata_buffer[file_frame_index].pulse_id, 1); EXPECT_EQ(metadata_buffer[file_frame_index].frame_index, 2); EXPECT_EQ(metadata_buffer[file_frame_index].daq_rec, 3); EXPECT_EQ(metadata_buffer[file_frame_index].n_received_packets, 128); } // //TEST(BufferH5Writer, SWMR) //{ // auto root_folder = "."; // auto device_name = "fast_device"; // size_t pulse_id = 0; // // auto i_write_buffer = make_unique(JUNGFRAU_DATA_BYTES_PER_FRAME); // size_t image_buffer_n_bytes = JUNGFRAU_DATA_BYTES_PER_FRAME * FILE_MOD; // auto i_read_buffer = make_unique(image_buffer_n_bytes); // // ModuleFrame m_write_buffer = {1, 2, 3, 4, 5}; // auto m_read_buffer = make_unique(FILE_MOD); // // for (size_t i=0; i