ADD_EXECUTABLE(jfjoch_test
        DiffractionExperimentTest.cpp
        RawToConvertedGeometryTest.cpp
        ../common/RawToConvertedGeometry.h
        ../common/DiffractionExperiment.h
        CheckImageOutput.h
        FPGAIntegrationTest.cpp
        StrongPixelSetTest.cpp
        AdaptiveThresholdTest.cpp
        AdaptiveSpotFinderCPUTest.cpp
        ZSTDCompressorTest.cpp
        FrameTransformationTest.cpp
        HDF5WritingTest.cpp PedestalCalcTest.cpp
        ZMQImagePusherTest.cpp StreamWriterTest.cpp
        CoordTest.cpp JFJochStateMachineTest.cpp
        JFJochReceiverIntegrationTest.cpp
        AcquisitionCountersTest.cpp
        IndexingUnitTest.cpp
        ThreadSafeFIFOSetTest.cpp
        FPGANetworkTest.cpp
        JFPedestalTest.cpp
        JFCalibrationTest.cpp
        AzimuthalIntegrationTest.cpp
        StatusVectorTest.cpp
        CBORTest.cpp
        DetectorGeometryTest.cpp DetectorSetupTest.cpp DiffractionGeometryTest.cpp
        FPGASpotFindingUnitTest.cpp
        PreviewCounterTest.cpp
        FPGAFrameGeneratorTest.cpp
        FPGAHostWriterTest.cpp
        DiffractionSpotTest.cpp
        TIFFTest.cpp
        JFJochReceiverProcessingTest.cpp
        JPEGTest.cpp
        HistogramTest.cpp
        ROIMapTest.cpp
        ROIIntegrationCPUTest.cpp
        ROIIntegrationGPUTest.cpp
        BraggIntegrationEngineGPUTest.cpp
        BraggIntegrationEngineCompressedImageTest.cpp
        BraggStencilTest.cpp
        LossyFilterTest.cpp
        ImageBufferTest.cpp
        PixelMaskTest.cpp
        RegressionTest.cpp
        FPGAHLSModulesTest.cpp
        ZMQPreviewSocketTest.cpp
        DetectorSettingsTest.cpp
        AutoIncrVectorTest.cpp
        ModuleSummationTest.cpp
        ZMQMetadataSocketTest.cpp
        JFJochReaderTest.cpp
        SweepLayoutTest.cpp
        ShadowFinderTest.cpp
        HotPixelFinderTest.cpp
        BandwidthEstimateTest.cpp
        ParallelForTest.cpp
        RugnuxTest.cpp
        ResultReportTest.cpp
        DiagnosticOutputTest.cpp
        PostRefineTest.cpp
        RotationScaleWalkTest.cpp
        RugnuxLargeTest.cpp
        TestData.h
        MovingAverageTest.cpp
        ImageMetadataTest.cpp
        JFJochReceiverLiteTest.cpp
        GridScanSettingsTest.cpp
        JFJochReceiverPlotsTest.cpp
        GoniometerAxisTest.cpp
        DetGeomCalibTest.cpp
        RingsFromProfileTest.cpp
        CalibrationTest.cpp
        XtalOptimizerTest.cpp
        CrystalLatticeTest.cpp
        FPGAPTPTest.cpp
        ResolutionShellsTest.cpp
        ImageSpotFinderCPUTest.cpp
        ImageSpotFinderGPUTest.cpp
        BSLZ4DecoderGPUTest.cpp
        BSLZ4DecoderGPUFuzzTest.cpp
        ImagePreprocessorGPUFusedTest.cpp
        AdaptiveSpotFinderGPUTest.cpp
        SpotExtractorGPUParityTest.cpp
        CUDAMemHelpersTest.cpp
        CudaHandledErrorTest.cpp
        CalcBraggPredictionTest.cpp
        SpotUtilsTest.cpp
        LatticeSearchTest.cpp
        LePageLatticeTest.cpp
        TimeTest.cpp
        RotationIndexerTest.cpp
        SpindleBlindFractionTest.cpp
        SpindleCuspLossTest.cpp
        TopPixelsTest.cpp
        HKLKeyTest.cpp
        TCPImagePusherTest.cpp
        PreflightTest.cpp
        ModelValidationTest.cpp
        SearchSpaceGroupTest.cpp
        SearchSpaceGroupTwinTest.cpp
        SyntheticMergedReflections.h
        XDSPluginTest.cpp
        MergeScaleTest.cpp
        AnisotropyAnalysisTest.cpp
        ModelScalingTest.cpp
        TwinningAnalysisTest.cpp
        TranslationalNCSTest.cpp
        RfreeFlagsTest.cpp
        FrenchWilsonTest.cpp
        SphericalHarmonicSurfaceTest.cpp
        WilsonOutliersTest.cpp
        ReindexAmbiguityTest.cpp
        CrystalSettingTest.cpp
        LoadReferenceMtzFreeFlagsTest.cpp
        LoadReferenceSfCifTest.cpp
        WriteReflectionsTest.cpp
        UnitCellTest.cpp
        CCTest.cpp
        MultiLatticeSearchTest.cpp
        LatticeReductionTest.cpp
        BeamCenterFromBackgroundTest.cpp
        BeamCenterFFTTest.cpp
        BeamCenterFFTGPUTest.cpp
        BeamCenterFromSpotsTest.cpp
        BearerTokensTest.cpp
        BrokerHttpAuthTest.cpp
        ../broker/JFJochBrokerHttp.cpp
)

target_link_libraries(jfjoch_test Catch2WithMain JFJochBroker JFJochReceiver JFJochReader JFJochStreamWriter
                      JFJochRugnux JFJochImageAnalysis JFJochCommon JFJochHLSSimulation JFJochPreview
                      jfjoch_xds_plugin ZLIB::ZLIB httplib::httplib)
target_include_directories(jfjoch_test PRIVATE .)

find_package(Threads REQUIRED)

add_library(enospc_shim MODULE enospc_shim.c)
target_link_libraries(enospc_shim PRIVATE Threads::Threads dl)
set_target_properties(enospc_shim PROPERTIES PREFIX "" POSITION_INDEPENDENT_CODE ON) # remove "lib"

ADD_EXECUTABLE(jfjoch_hdf5_enospc_test jfjoch_hdf5_enospc_test.cpp)
target_link_libraries(jfjoch_hdf5_enospc_test Catch2WithMain JFJochWriter)