diff --git a/core-buffer/test/test_FastH5Writer.cpp b/core-buffer/test/test_FastH5Writer.cpp index 067ed4d..e8c2c75 100644 --- a/core-buffer/test/test_FastH5Writer.cpp +++ b/core-buffer/test/test_FastH5Writer.cpp @@ -5,13 +5,14 @@ TEST(FastH5Writer, basic_interaction) { auto root_folder = "."; auto device_name = "fast_device"; + size_t pulse_id = 1; - auto buffer = make_shared(512*1024*2); + auto buffer = make_unique(512*1024*2); UdpFrameMetadata metadata; metadata.pulse_id = 1; metadata.frame_index = 2; - metadata.daq_rec = 2; + metadata.daq_rec = 3; metadata.n_recv_packets = 128; FastH5Writer writer( @@ -22,7 +23,7 @@ TEST(FastH5Writer, basic_interaction) writer.add_scalar_metadata("daq_rec"); writer.add_scalar_metadata("received_packets"); - writer.set_pulse_id(1); + writer.set_pulse_id(pulse_id); writer.write_data(buffer.get()); @@ -46,5 +47,42 @@ TEST(FastH5Writer, basic_interaction) &(metadata.n_recv_packets), sizeof(uint16_t)); + 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"); + auto image_buffer = make_unique(1000*512*1024); + image_dataset.read( + image_buffer.get(), H5::PredType::NATIVE_UINT16); + + auto pulse_id_dataset = input_file.openDataSet("pulse_id"); + auto pulse_id_buffer = make_unique(1000); + pulse_id_dataset.read( + pulse_id_buffer.get(), H5::PredType::NATIVE_UINT64); + EXPECT_EQ(pulse_id_buffer[file_frame_index], 1); + + auto frame_id_dataset = input_file.openDataSet("frame_id"); + auto frame_id_buffer = make_unique(1000); + frame_id_dataset.read( + frame_id_buffer.get(), H5::PredType::NATIVE_UINT64); + EXPECT_EQ(frame_id_buffer[file_frame_index], 2); + + auto daq_rec_dataset = input_file.openDataSet("daq_rec"); + auto daq_rec_buffer = make_unique(1000); + daq_rec_dataset.read( + daq_rec_buffer.get(), H5::PredType::NATIVE_UINT32); + EXPECT_EQ(daq_rec_buffer[file_frame_index], 3); + + auto received_packets_dataset = + input_file.openDataSet("received_packets"); + auto received_packets_buffer = make_unique(1000); + received_packets_dataset.read( + received_packets_buffer.get(), H5::PredType::NATIVE_UINT16); + EXPECT_EQ(received_packets_buffer[file_frame_index], 128); }