Files
Jungfraujoch/tests/jfjoch_hdf5_enospc_test.cpp
T
leonarski_f 2dc9a043be
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 9m14s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 8m23s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 10m12s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 7m38s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 9m50s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 9m28s
Build Packages / build:rpm (rocky8) (push) Successful in 10m14s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 9m54s
Build Packages / build:rpm (rocky9) (push) Successful in 11m41s
Build Packages / Generate python client (push) Successful in 24s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 9m16s
Build Packages / Build documentation (push) Successful in 59s
Build Packages / Create release (push) Has been skipped
Build Packages / XDS test (durin plugin) (push) Successful in 8m2s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 7m14s
Build Packages / DIALS test (push) Successful in 11m57s
Build Packages / XDS test (neggia plugin) (push) Successful in 8m10s
Build Packages / Unit tests (push) Successful in 56m13s
enospc tests (not sure how useful)
2026-05-05 16:08:23 +02:00

45 lines
1.6 KiB
C++

// SPDX-FileCopyrightText: 2026 Filip Leonarski, Paul Scherrer Institute <filip.leonarski@psi.ch>
// SPDX-License-Identifier: GPL-3.0-only
// Run with LD_PRELOAD=enospc_shim.so ./jfjoch_hdf5_enospc_test
#include <catch2/catch_all.hpp>
#include "../writer/HDF5Objects.h"
#include "../writer/FileWriter.h"
#include "../common/DiffractionExperiment.h"
TEST_CASE("HDF5File_enospc") {
auto file = std::make_unique<HDF5File>("enospc_test.h5");
std::vector<uint8_t> small_vector(2056), large_vector(40 * 1024 * 1024);
REQUIRE_NOTHROW(file->SaveVector("/small", small_vector));
REQUIRE_NOTHROW(file->SaveVector("/large1", large_vector));
REQUIRE_THROWS(file->SaveVector("/large2", large_vector));
REQUIRE_NOTHROW(file.reset());
}
TEST_CASE("FileWriter_enospc") {
{
RegisterHDF5Filter();
DiffractionExperiment x(DetJF4M());
x.FilePrefix("test02_1p10").ImagesPerTrigger(5).ImagesPerFile(2).Compression(CompressionAlgorithm::NO_COMPRESSION);
StartMessage start_message;
x.FillMessage(start_message);
FileWriter file_set(start_message);
std::vector<uint16_t> image(x.GetPixelsNum());
DataMessage message{};
message.image = CompressedImage(image, x.GetXPixelsNum(), x.GetYPixelsNum());
message.number = 0;
REQUIRE_NOTHROW(file_set.Write(message));
message.number = 1;
REQUIRE_THROWS(file_set.Write(message));
message.number = 2;
REQUIRE_THROWS(file_set.Write(message));
}
// No leftover HDF5 objects
REQUIRE (H5Fget_obj_count(H5F_OBJ_ALL, H5F_OBJ_ALL) == 0);
}