diff --git a/CMakeLists.txt b/CMakeLists.txt index ded53c54..0127bf0b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -296,7 +296,6 @@ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin") set(CBF_F90FLAGS_ENV $ENV{F90FLAGS}) -set(CBF_USE_ULP $ENV{CBF_USE_ULP}) set(CBF_M4FLAGS_ENV $ENV{M4FLAGS}) option(BUILD_SHARED_LIBS "Build using shared libraries" ON) @@ -311,15 +310,11 @@ if(CBF_ENABLE_FORTRAN) message(FATAL_ERROR "Fortran 90 support requested, but no compiler found") endif() endif() -enable_testing() + +option(CBF_ENABLE_ULP "Enable ULP" OFF) set (CBF_CMAKE_DEBUG "ON") -if (CBF_USE_ULP STREQUAL "YES") - set(CMAKE_C_FLAGS "-Wall -g -fno-strict-aliasing -DCBF_USE_ULP") -else (CBF_USE_ULP STREQUAL "YES") - set(CMAKE_C_FLAGS "-Wall -g -fno-strict-aliasing") -endif (CBF_USE_ULP STREQUAL "YES") # # User setable parameters @@ -435,7 +430,6 @@ set(BIN "${CBFlib_BINARY_DIR}/bin" CACHE STRING "") set(PYCBF "${CBFlib_SOURCE_DIR}/pycbf" CACHE STRING "") set(EXAMPLES "${CBFlib_SOURCE_DIR}/examples" CACHE STRING "" ) set(DECTRIS_EXAMPLES "${EXAMPLES}/dectris_cbf_template_test" CACHE STRING "") -set(MINICBF_TEST "${CBFlib_SOURCE_DIR}/minicbf_test" CACHE STRING "") set(GRAPHICS "${CBFlib_SOURCE_DIR}/html_graphics" CACHE STRING "") if(CBF_DONT_USE_LONG_LONG) @@ -446,8 +440,10 @@ endif(CBF_DONT_USE_LONG_LONG) # -# URLs from which to retrieve needed external package snapshots +# Dependencies, external packages # +# Verify the checksums. The --binary option appears to be required +# for patching the test data on MSYS2. include(FetchContent) find_program(PATCH patch REQUIRED) @@ -457,6 +453,18 @@ fetchcontent_declare(cqrlib PATCH_COMMAND "${PATCH}" -N -i "${CMAKE_CURRENT_SOURCE_DIR}/patches/cqrlib-1.1.4.patch" -p 1 -t) +fetchcontent_declare(data_input + URL "http://downloads.sf.net/cbflib/CBFlib_${PROJECT_VERSION}_Data_Files_Input.tar.gz" + URL_HASH MD5=f98ae4214b3e57acb42437ea4b685c4d + PATCH_COMMAND "${PATCH}" + -N -i "${CMAKE_CURRENT_SOURCE_DIR}/patches/cbflib-data-input-${PROJECT_VERSION}.patch" -p 1 -t --binary) + +fetchcontent_declare(data_output + URL "http://downloads.sf.net/cbflib/CBFlib_${PROJECT_VERSION}_Data_Files_Output.tar.gz" + URL_HASH MD5=716346077fe2bcbe29e5153f0ecbb8e7 + PATCH_COMMAND "${PATCH}" + -N -i "${CMAKE_CURRENT_SOURCE_DIR}/patches/cbflib-data-output-${PROJECT_VERSION}.patch" -p 1 -t --binary) + fetchcontent_declare(hdf5 URL "http://downloads.sf.net/cbflib/hdf5-1.14.4-2.tar.gz" URL_HASH MD5=1791c5f70660bf4ec2e05fc15526c181) @@ -495,6 +503,35 @@ else() endif() +# +# INPUT/OUTPUT TEST DATA +# +# If CBF_WITH_DATA_INPUT and/or CBF_WITH_DATA_OUTPUT are set +# externally, the test data in the corresponding directories are +# assumed to be patched. +set(CBF_WITH_DATA_INPUT "" CACHE FILEPATH + "Path to input test data directory") +mark_as_advanced(CBF_WITH_DATA_INPUT) + +if(CBF_WITH_DATA_INPUT) + set(data_input "${CBF_WITH_DATA_INPUT}") +else() + fetchcontent_makeavailable(data_input) + set(data_input "${data_input_SOURCE_DIR}") +endif() + +set(CBF_WITH_DATA_OUTPUT "" CACHE FILEPATH + "Path to reference output test data directory") +mark_as_advanced(CBF_WITH_DATA_OUTPUT) + +if(CBF_WITH_DATA_OUTPUT) + set(data_output "${CBF_WITH_DATA_OUTPUT}") +else() + fetchcontent_makeavailable(data_output) + set(data_output "${data_output_SOURCE_DIR}") +endif() + + # # HDF5 # @@ -635,53 +672,13 @@ else() endif() -# -# Data Directories -# -# Verify the checksums. The --binary option appears to be required -# for patching the test data on MSYS2. -fetchcontent_declare(data_input - URL "http://downloads.sf.net/cbflib/CBFlib_${PROJECT_VERSION}_Data_Files_Input.tar.gz" - URL_HASH MD5=f98ae4214b3e57acb42437ea4b685c4d) - -fetchcontent_declare(data_output - URL "http://downloads.sf.net/cbflib/CBFlib_${PROJECT_VERSION}_Data_Files_Output.tar.gz" - URL_HASH MD5=edde13b20baf16bb9ab91cfc647ba4d6 - PATCH_COMMAND "${PATCH}" - -N -i "${CMAKE_CURRENT_SOURCE_DIR}/patches/cbflib-data-output-${PROJECT_VERSION}.patch" -p 1 -t --binary) - - -# -# INPUT/OUTPUT TEST DATA -# -# If CBF_DATA_INPUT and/or CBF_DATA_OUTPUT are set externally, the -# test data in the corresponding directories are assumed to be -# patched. -set(CBF_DATA_INPUT "" CACHE FILEPATH - "Path to input test data directory") -mark_as_advanced(CBF_DATA_INPUT) - -if(NOT CBF_DATA_INPUT) - fetchcontent_makeavailable(data_input) - set(CBF_DATA_INPUT "${data_input_SOURCE_DIR}") -endif() - -set(CBF_DATA_OUTPUT "" CACHE FILEPATH - "Path to reference output test data directory") -mark_as_advanced(CBF_DATA_OUTPUT) - -if(NOT CBF_DATA_OUTPUT) - fetchcontent_makeavailable(data_output) - set(CBF_DATA_OUTPUT "${data_output_SOURCE_DIR}") -endif() - - # # Source files # set( CBF_C_SOURCES ${CBF__SRC}/cbf.c + "${CBF__SRC}/cbf_airy_disk.c" ${CBF__SRC}/cbf_alloc.c ${CBF__SRC}/cbf_ascii.c ${CBF__SRC}/cbf_binary.c @@ -707,7 +704,6 @@ set( ${CBF__SRC}/cbf_stx.c ${CBF__SRC}/cbf_tree.c ${CBF__SRC}/cbf_uncompressed.c - ${CBF__SRC}/cbf_ulp.c ${CBF__SRC}/cbf_write.c ${CBF__SRC}/cbf_write_binary.c ${CBF__SRC}/cbf_ws.c @@ -792,7 +788,6 @@ set( ${CBF__INCLUDE}/cbf_stx.h ${CBF__INCLUDE}/cbf_tree.h ${CBF__INCLUDE}/cbf_uncompressed.h - ${CBF__INCLUDE}/cbf_ulp.h ${CBF__INCLUDE}/cbf_write.h ${CBF__INCLUDE}/cbf_write_binary.h ${CBF__INCLUDE}/cbf_ws.h @@ -801,6 +796,10 @@ set( ${CBF__INCLUDE}/md5.h ${CBF__INCLUDE}/img.h ) +if(CBF_ENABLE_ULP) + list(APPEND CBF_HEADERS + "${CBF__INCLUDE}/cbf_ulp.h") +endif() if(CBF_ENABLE_FORTRAN) @@ -880,6 +879,11 @@ include_directories(BEFORE SYSTEM # Note that HDF5 is a PUBLIC dependency of CBFlib, because cbf_hdf5.h # includes hdf5.h. add_library(cbf ${CBF_C_SOURCES}) +if(CBF_ENABLE_ULP) + target_compile_definitions(cbf PUBLIC CBF_USE_ULP) + target_sources(cbf PRIVATE "${CBF__SRC}/cbf_ulp.c") +endif() + set_target_properties(cbf PROPERTIES OUTPUT_NAME "cbf") set_target_properties(cbf PROPERTIES LINKER_LANGUAGE C) set_target_properties(cbf PROPERTIES SOVERSION "${SOVERSION}") @@ -986,6 +990,12 @@ add_executable(cbf_tail target_link_libraries(cbf_tail cbf) +add_executable(cbf_testxfelread + "${CBF__EXAMPLES}/cbf_testxfelread.c") +target_link_libraries(cbf_testxfelread + cbf + "${libm}") + add_executable(changtestcompression "${CBF__EXAMPLES}/changtestcompression.c") target_link_libraries(changtestcompression @@ -1023,21 +1033,24 @@ add_executable(sequence_match target_link_libraries(sequence_match cbf) -add_executable(testulp - "${CBF__EXAMPLES}/testulp.c") -target_link_libraries(testulp - cbf) +add_executable(test_cbf_airy_disk + "${CBF__EXAMPLES}/test_cbf_airy_disk.c") +target_link_libraries(test_cbf_airy_disk + cbf + "${libm}") + +if(CBF_ENABLE_ULP) + add_executable(testulp + "${CBF__EXAMPLES}/testulp.c") + target_link_libraries(testulp + cbf) +endif() add_executable(testhdf5 "${CBF__EXAMPLES}/testhdf5.c") target_link_libraries(testhdf5 cbf) -add_executable(testtree - "${CBF__EXAMPLES}/testtree.c") -target_link_libraries(testtree - cbf) - add_executable(testalloc "${CBF__EXAMPLES}/testalloc.c") target_link_libraries(testalloc @@ -1119,19 +1132,25 @@ install (DIRECTORY ${CBF__BIN_INCLUDE}/* DESTINATION include/cbflib FILES_MATCHI # message(STATUS "CMAKE_INSTALL_PREFIX/lib ${CMAKE_INSTALL_PREFIX}/lib") -# path to the valgrind executable -set(VALGRIND_COMMAND "") -find_program(VALGRIND valgrind) -if (VALGRIND) - CBF_DEBUG_MESSAGE("valgrind found at ${VALGRIND}") - set(VALGRIND_COMMAND ${VALGRIND} --error-exitcode=3 --leak-check=full) -else () - CBF_DEBUG_MESSAGE("valgrind could not be not found") -endif () # # tests -- to be extended # +# Fixtures are named like the tests that set them up and generally +# correspond to filenames. The cleanup tests not only keep the build +# directory clean after ctest, but also verify that any expected +# output files were created for tests without comparison steps. +enable_testing() + + +# Path to the valgrind executable +find_program(VALGRIND valgrind) +if(VALGRIND) + set(VALGRIND_COMMAND ${VALGRIND} --error-exitcode=3 --leak-check=full) +else() + set(VALGRIND_COMMAND "") +endif() + # Set up a wrapper to call 'h5dump' and redirect its output to a file. file(GENERATE @@ -1139,525 +1158,1125 @@ file(GENERATE INPUT "h5dump.cmake") -# core tests +# +# Basic (core) tests -add_test(makecbf ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/makecbf "${CBF_DATA_INPUT}/example.mar2300" ${CBF__DATA}/makecbf.cbf) +# +# makecbf +add_test(NAME makecbf + COMMAND makecbf + "${data_input}/example.mar2300" + "${CBF__DATA}/makecbf.cbf") +set_tests_properties(makecbf PROPERTIES + FIXTURES_SETUP makecbf + REQUIRED_FILES "${data_input}/example.mar2300") -# $(BIN)/img2cif -c flatpacked -m headers -d digest -e base64 example.mar2300 img2cif_packed.cif -add_test(img2cif_packed.cif ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/img2cif -c flatpacked -m headers -d digest -e base64 "${CBF_DATA_INPUT}/example.mar2300" ${CBF__DATA}/img2cif_packed.cif) +add_test(NAME makecbf-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/makecbf.cbf") +set_tests_properties(makecbf-cleanup PROPERTIES + FIXTURES_CLEANUP makecbf) -# $(BIN)/img2cif -c canonical -m headers -d digest -e base64 example.mar2300 img2cif_canonical.cif -add_test(img2cif_canonical.cif ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/img2cif -c canonical -m headers -d digest -e base64 "${CBF_DATA_INPUT}/example.mar2300" ${CBF__DATA}/img2cif_canonical.cif) -# $(BIN)/img2cif -c flatpacked -m headers -d digest -e none example.mar2300 img2cif_packed.cbf -add_test(img2cif_packed.cbf ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/img2cif -c flatpacked -m headers -d digest -e none "${CBF_DATA_INPUT}/example.mar2300" ${CBF__DATA}/img2cif_packed.cbf) +# +# img2cif/cif2cbf +add_test(NAME img2cif-flatpacked-cif + COMMAND img2cif -c flatpacked -m headers -d digest -e base64 + "${data_input}/example.mar2300" + "${CBF__DATA}/img2cif_packed.cif") +set_tests_properties(img2cif-flatpacked-cif PROPERTIES + FIXTURES_SETUP img2cif-flatpacked-cif + REQUIRED_FILES "${data_input}/example.mar2300") + +add_test(NAME img2cif-flatpacked-cif-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/img2cif_packed.cif") +set_tests_properties(img2cif-flatpacked-cif-cleanup PROPERTIES + FIXTURES_CLEANUP img2cif-flatpacked-cif) + +add_test(NAME img2cif-canonical-cif + COMMAND img2cif -c canonical -m headers -d digest -e base64 + "${data_input}/example.mar2300" + "${CBF__DATA}/img2cif_canonical.cif") +set_tests_properties(img2cif-canonical-cif PROPERTIES + FIXTURES_SETUP img2cif-canonical-cif + REQUIRED_FILES "${data_input}/example.mar2300") + +add_test(NAME img2cif-canonical-cif-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/img2cif_canonical.cif") +set_tests_properties(img2cif-canonical-cif-cleanup PROPERTIES + FIXTURES_CLEANUP img2cif-canonical-cif) + +add_test(NAME img2cif-flatpacked-cbf + COMMAND img2cif -c flatpacked -m headers -d digest -e none + "${data_input}/example.mar2300" + "${CBF__DATA}/img2cif_packed.cbf") +set_tests_properties(img2cif-flatpacked-cbf PROPERTIES + FIXTURES_SETUP img2cif-flatpacked-cbf + REQUIRED_FILES "${data_input}/example.mar2300") + +add_test(NAME img2cif-flatpacked-cbf-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/img2cif_packed.cbf") +set_tests_properties(img2cif-flatpacked-cbf-cleanup PROPERTIES + FIXTURES_CLEANUP img2cif-flatpacked-cbf) + +add_test(NAME img2cif-canonical-cbf + COMMAND img2cif -c canonical -m headers -d digest -e none + "${data_input}/example.mar2300" + "${CBF__DATA}/img2cif_canonical.cbf") +set_tests_properties(img2cif-canonical-cbf PROPERTIES + FIXTURES_SETUP img2cif-canonical-cbf + REQUIRED_FILES "${data_input}/example.mar2300") + +add_test(NAME img2cif-canonical-cbf-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/img2cif_canonical.cbf") +set_tests_properties(img2cif-canonical-cbf-cleanup PROPERTIES + FIXTURES_CLEANUP img2cif-canonical-cbf) + +add_test(NAME cif2cbf-flatpacked-cbf + COMMAND cif2cbf -e none -c flatpacked + "${CBF__DATA}/img2cif_canonical.cif" + "${CBF__DATA}/cif2cbf_packed.cbf") +set_tests_properties(cif2cbf-flatpacked-cbf PROPERTIES + FIXTURES_REQUIRED img2cif-canonical-cif + FIXTURES_SETUP cif2cbf-flatpacked-cbf) + +add_test(NAME cif2cbf-flatpacked-cbf-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/cif2cbf_packed.cbf") +set_tests_properties(cif2cbf-flatpacked-cbf-cleanup PROPERTIES + FIXTURES_CLEANUP cif2cbf-flatpacked-cbf) + +add_test(NAME cif2cbf-canonical-cbf + COMMAND cif2cbf -e none -c canonical + "${CBF__DATA}/img2cif_packed.cif" + "${CBF__DATA}/cif2cbf_canonical.cbf") +set_tests_properties(cif2cbf-canonical-cbf PROPERTIES + FIXTURES_REQUIRED img2cif-flatpacked-cif + FIXTURES_SETUP cif2cbf-canonical-cbf) + +add_test(NAME cif2cbf-canonical-cbf-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/cif2cbf_canonical.cbf") +set_tests_properties(cif2cbf-canonical-cbf-cleanup PROPERTIES + FIXTURES_CLEANUP cif2cbf-canonical-cbf) + +add_test(NAME makecbf-cmp + COMMAND ${CMAKE_COMMAND} -E compare_files + "${CBF__DATA}/cif2cbf_packed.cbf" + "${CBF__DATA}/makecbf.cbf") +set_tests_properties(makecbf-cmp PROPERTIES + FIXTURES_REQUIRED "cif2cbf-flatpacked-cbf;makecbf") + +add_test(NAME cif2cbf-img2cif-flatpacked-cmp + COMMAND ${CMAKE_COMMAND} -E compare_files + "${CBF__DATA}/cif2cbf_packed.cbf" + "${CBF__DATA}/img2cif_packed.cbf") +set_tests_properties(cif2cbf-img2cif-flatpacked-cmp PROPERTIES + FIXTURES_REQUIRED "cif2cbf-flatpacked-cbf;img2cif-flatpacked-cbf") + +add_test(NAME cif2cbf-img2cif-canonical-cmp + COMMAND ${CMAKE_COMMAND} -E compare_files + "${CBF__DATA}/cif2cbf_canonical.cbf" + "${CBF__DATA}/img2cif_canonical.cbf") +set_tests_properties(cif2cbf-img2cif-canonical-cmp PROPERTIES + FIXTURES_REQUIRED "cif2cbf-canonical-cbf;img2cif-canonical-cbf") -# $(BIN)/img2cif -c canonical -m headers -d digest -e none example.mar2300 img2cif_canonical.cbf -add_test(img2cif_canonical.cbf ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/img2cif -c canonical -m headers -d digest -e none "${CBF_DATA_INPUT}/example.mar2300" ${CBF__DATA}/img2cif_canonical.cbf) -# $(BIN)/cif2cbf -e none -c flatpacked img2cif_canonical.cif cif2cbf_packed.cbf -add_test(cif2cbf_packed.cbf ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cif2cbf -e none -c flatpacked ${CBF__DATA}/img2cif_canonical.cif ${CBF__DATA}/cif2cbf_packed.cbf) -set_property(TEST cif2cbf_packed.cbf APPEND PROPERTY DEPENDS img2cif_canonical.cif) +# +# Extra tests +add_test(NAME cif2cbf-ehcn + COMMAND cif2cbf -e hex -c none + "${CBF__DATA}/makecbf.cbf" + "${CBF__DATA}/cif2cbf_ehcn.cif") +set_tests_properties(cif2cbf-ehcn PROPERTIES + FIXTURES_REQUIRED makecbf + FIXTURES_SETUP cif2cbf-ehcn) + +add_test(NAME cif2cbf-ehcn-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/cif2cbf_ehcn.cif") +set_tests_properties(cif2cbf-ehcn-cleanup PROPERTIES + FIXTURES_CLEANUP cif2cbf-ehcn) + +add_test(NAME cif2cbf-ehcn-encp + COMMAND cif2cbf -e none -c flatpacked + "${CBF__DATA}/cif2cbf_ehcn.cif" + "${CBF__DATA}/cif2cbf_encp.cbf") +set_tests_properties(cif2cbf-ehcn-encp PROPERTIES + FIXTURES_REQUIRED cif2cbf-ehcn + FIXTURES_SETUP cif2cbf-ehcn-encp) + +add_test(NAME cif2cbf-ehcn-encp-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/cif2cbf_encp.cbf") +set_tests_properties(cif2cbf-ehcn-encp-cleanup PROPERTIES + FIXTURES_CLEANUP cif2cbf-ehcn-encp) + +add_test(NAME cif2cbf-ehcn-encp-cmp + COMMAND ${CMAKE_COMMAND} -E compare_files + "${CBF__DATA}/makecbf.cbf" + "${CBF__DATA}/cif2cbf_encp.cbf") +set_tests_properties(cif2cbf-ehcn-encp-cmp PROPERTIES + FIXTURES_REQUIRED "makecbf;cif2cbf-ehcn-encp") -# $(BIN)/cif2cbf -e none -c canonical img2cif_packed.cif cif2cbf_canonical.cbf -add_test(cif2cbf_canonical.cbf ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cif2cbf -e none -c canonical ${CBF__DATA}/img2cif_packed.cif ${CBF__DATA}/cif2cbf_canonical.cbf) -set_property(TEST cif2cbf_canonical.cbf APPEND PROPERTY DEPENDS img2cif_packed.cif) -# -cmp cif2cbf_packed.cbf makecbf.cbf -add_test(cmp-cif2cbf_packed.cbf-makecbf.cbf ${CMAKE_COMMAND} -E compare_files ${CBF__DATA}/cif2cbf_packed.cbf ${CBF__DATA}/makecbf.cbf) -set_property(TEST cmp-cif2cbf_packed.cbf-makecbf.cbf APPEND PROPERTY DEPENDS cif2cbf_packed.cbf) -set_property(TEST cmp-cif2cbf_packed.cbf-makecbf.cbf APPEND PROPERTY DEPENDS makecbf) +# +# 9ins +add_test(NAME 9ins + COMMAND cif2cbf + -i "${data_input}/9ins.cif" + -o "${CBF__DATA}/9ins.cbf") +set_tests_properties(9ins PROPERTIES + FIXTURES_SETUP 9ins + REQUIRED_FILES "${data_input}/9ins.cif") + +add_test(NAME 9ins-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/9ins.cbf") +set_tests_properties(9ins-cleanup PROPERTIES + FIXTURES_CLEANUP 9ins) + +add_test(NAME 9ins-cmp + COMMAND ${CMAKE_COMMAND} -E compare_files + "${data_input}/9ins.cif" + "${CBF__DATA}/9ins.cbf") +set_tests_properties(9ins-cmp PROPERTIES + FIXTURES_REQUIRED 9ins + REQUIRED_FILES "${data_input}/9ins.cif") -# -cmp cif2cbf_packed.cbf img2cif_packed.cbf -add_test(cmp-cif2cbf_packed.cbf-img2cif_packed.cbf ${CMAKE_COMMAND} -E compare_files ${CBF__DATA}/cif2cbf_packed.cbf ${CBF__DATA}/img2cif_packed.cbf) -set_property(TEST cmp-cif2cbf_packed.cbf-img2cif_packed.cbf APPEND PROPERTY DEPENDS cif2cbf_packed.cbf) -set_property(TEST cmp-cif2cbf_packed.cbf-img2cif_packed.cbf APPEND PROPERTY DEPENDS img2cif_packed.cbf) -# -cmp cif2cbf_canonical.cbf img2cif_canonical.cbf -add_test(cmp-cif2cbf_canonical.cbf-img2cif_canonical.cbf ${CMAKE_COMMAND} -E compare_files ${CBF__DATA}/cif2cbf_canonical.cbf ${CBF__DATA}/img2cif_canonical.cbf) -set_property(TEST cmp-cif2cbf_canonical.cbf-img2cif_canonical.cbf APPEND PROPERTY DEPENDS cif2cbf_canonical.cbf) -set_property(TEST cmp-cif2cbf_canonical.cbf-img2cif_canonical.cbf APPEND PROPERTY DEPENDS img2cif_canonical.cbf) +# +# convert_image-flat +add_test(NAME convert_image-flat + COMMAND convert_image + -p "${CBFlib_SOURCE_DIR}/templates/template_mar345_2300x2300.cbf" + -F "${data_input}/example.mar2300" + "${CBF__DATA}/converted_flat.cbf") +set_tests_properties(convert_image-flat PROPERTIES + FIXTURES_SETUP convert_image-flat + REQUIRED_FILES "${CBFlib_SOURCE_DIR}/templates/template_mar345_2300x2300.cbf;${data_input}/example.mar2300") + +add_test(NAME convert_image-flat-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/converted_flat.cbf") +set_tests_properties(convert_image-flat-cleanup PROPERTIES + FIXTURES_CLEANUP convert_image-flat) + +add_test(NAME convert_image-flat-cmp + COMMAND ${CMAKE_COMMAND} -E compare_files + "${data_output}/converted_flat_orig.cbf" + "${CBF__DATA}/converted_flat.cbf") +set_tests_properties(convert_image-flat-cmp PROPERTIES + FIXTURES_REQUIRED convert_image-flat + REQUIRED_FILES "${data_output}/converted_flat_orig.cbf") -# $(BIN)/cif2cbf -e hex -c none makecbf.cbf cif2cbf_ehcn.cif -add_test(cif2cbf_ehcn.cif ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cif2cbf -e hex -c none ${CBF__DATA}/makecbf.cbf ${CBF__DATA}/cif2cbf_ehcn.cif) -set_property(TEST cif2cbf_ehcn.cif APPEND PROPERTY DEPENDS makecbf) -# $(BIN)/cif2cbf -e none -c flatpacked cif2cbf_ehcn.cif cif2cbf_encp.cbf -add_test(cif2cbf_encp.cbf ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cif2cbf -e none -c flatpacked ${CBF__DATA}/cif2cbf_ehcn.cif ${CBF__DATA}/cif2cbf_encp.cbf) -set_property(TEST cif2cbf_encp.cbf APPEND PROPERTY DEPENDS cif2cbf_ehcn.cif) +# +# convert_image +add_test(NAME convert_image + COMMAND convert_image + -p "${CBFlib_SOURCE_DIR}/templates/template_mar345_2300x2300.cbf" + "${data_input}/example.mar2300" + "${CBF__DATA}/converted.cbf") +set_tests_properties(convert_image PROPERTIES + FIXTURES_SETUP convert_image + REQUIRED_FILES "${CBFlib_SOURCE_DIR}/templates/template_mar345_2300x2300.cbf;${data_input}/example.mar2300") + +add_test(NAME convert_image-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/converted.cbf") +set_tests_properties(convert_image-cleanup PROPERTIES + FIXTURES_CLEANUP convert_image) + +add_test(NAME convert_image-cmp + COMMAND ${CMAKE_COMMAND} -E compare_files + "${data_output}/converted_orig.cbf" + "${CBF__DATA}/converted.cbf") +set_tests_properties(convert_image-cmp PROPERTIES + FIXTURES_REQUIRED convert_image + REQUIRED_FILES "${data_output}/converted_orig.cbf") -#-cmp makecbf.cbf cif2cbf_encp.cbf -add_test(cmp-makecbf.cbf-cif2cbf_encp.cbf ${CMAKE_COMMAND} -E compare_files ${CBF__DATA}/makecbf.cbf ${CBF__DATA}/cif2cbf_encp.cbf) -set_property(TEST cmp-makecbf.cbf-cif2cbf_encp.cbf APPEND PROPERTY DEPENDS makecbf) -set_property(TEST cmp-makecbf.cbf-cif2cbf_encp.cbf APPEND PROPERTY DEPENDS cif2cbf_encp.cbf) -# $(BIN)/cif2cbf -i 9ins.cif -o 9ins.cbf -add_test(9ins.cbf ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cif2cbf -i "${CBF_DATA_INPUT}/9ins.cif" -o ${CBF__DATA}/9ins.cbf) +# +# convert_image-adscimg-flat +add_test(NAME convert_image-adscimg-flat + COMMAND convert_image + -p "${CBFlib_SOURCE_DIR}/templates/template_adscquantum315_3072x3072.cbf" + -F -d adscquantum315 + "${data_input}/mb_LP_1_001.img" + "${CBF__DATA}/adscconverted_flat.cbf") +set_tests_properties(convert_image-adscimg-flat PROPERTIES + FIXTURES_SETUP convert_image-adscimg-flat + REQUIRED_FILES "${CBFlib_SOURCE_DIR}/templates/template_adscquantum315_3072x3072.cbf;${data_input}/mb_LP_1_001.img") + +add_test(NAME convert_image-adscimg-flat-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/adscconverted_flat.cbf") +set_tests_properties(convert_image-adscimg-flat-cleanup PROPERTIES + FIXTURES_CLEANUP convert_image-adscimg-flat) + +add_test(NAME convert_image-adscimg-flat-cmp + COMMAND ${CMAKE_COMMAND} -E compare_files + "${data_output}/adscconverted_flat_orig.cbf" + "${CBF__DATA}/adscconverted_flat.cbf") +set_tests_properties(convert_image-adscimg-flat-cmp PROPERTIES + FIXTURES_REQUIRED convert_image-adscimg-flat + REQUIRED_FILES "${data_output}/adscconverted_flat_orig.cbf") -# -cmp 9ins.cif 9ins.cbf -add_test(cmp-9ins.cif-9ins.cbf ${CMAKE_COMMAND} -E compare_files "${CBF_DATA_INPUT}/9ins.cif" ${CBF__DATA}/9ins.cbf) -set_property(TEST cmp-9ins.cif-9ins.cbf APPEND PROPERTY DEPENDS 9ins.cbf) -# $(BIN)/convert_image -F example.mar2300 converted_flat.cbf -add_test( - converted_flat.cbf - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/convert_image - -F -p ${CBFlib_SOURCE_DIR}/templates/template_mar345_2300x2300.cbf - "${CBF_DATA_INPUT}/example.mar2300" - ${CBF__DATA}/converted_flat.cbf -) +# +# convert_image-adscimg +add_test(NAME convert_image-adscimg + COMMAND convert_image + -p "${CBFlib_SOURCE_DIR}/templates/template_adscquantum315_3072x3072.cbf" + -d adscquantum315 + "${data_input}/mb_LP_1_001.img" + "${CBF__DATA}/adscconverted.cbf") +set_tests_properties(convert_image-adscimg PROPERTIES + FIXTURES_SETUP convert_image-adscimg + REQUIRED_FILES "${CBFlib_SOURCE_DIR}/templates/template_adscquantum315_3072x3072.cbf;${data_input}/mb_LP_1_001.img") + +add_test(NAME convert_image-adscimg-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/adscconverted.cbf") +set_tests_properties(convert_image-adscimg-cleanup PROPERTIES + FIXTURES_CLEANUP convert_image-adscimg) + +add_test(NAME convert_image-adscimg-cmp + COMMAND ${CMAKE_COMMAND} -E compare_files + "${data_output}/adscconverted_orig.cbf" + "${CBF__DATA}/adscconverted.cbf") +set_tests_properties(convert_image-adscimg-cmp PROPERTIES + FIXTURES_REQUIRED convert_image-adscimg + REQUIRED_FILES "${data_output}/adscconverted_orig.cbf") -# -cmp converted_flat_orig.cbf converted_flat.cbf -add_test(cmp-converted_flat_orig.cbf-converted_flat.cbf ${CMAKE_COMMAND} -E compare_files "${CBF_DATA_OUTPUT}/converted_flat_orig.cbf" ${CBF__DATA}/converted_flat.cbf) -set_property(TEST cmp-converted_flat_orig.cbf-converted_flat.cbf APPEND PROPERTY DEPENDS converted_flat.cbf) -# $(BIN)/convert_image example.mar2300 converted.cbf -add_test(converted.cbf ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/convert_image -p ${CBFlib_SOURCE_DIR}/templates/template_mar345_2300x2300.cbf "${CBF_DATA_INPUT}/example.mar2300" ${CBF__DATA}/converted.cbf) +# +# adscimg2cbf +add_test(NAME adscimg2cbf + COMMAND adscimg2cbf --no_pad --cbf_packed,flat + "--output=${CBF__DATA}/mb_LP_1_001.cbf" + "${data_input}/mb_LP_1_001.img") +set_tests_properties(adscimg2cbf PROPERTIES + FIXTURES_SETUP adscimg2cbf + REQUIRED_FILES "${data_input}/mb_LP_1_001.img") + +add_test(NAME adscimg2cbf-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/mb_LP_1_001.cbf") +set_tests_properties(adscimg2cbf-cleanup PROPERTIES + FIXTURES_CLEANUP adscimg2cbf) + +add_test(NAME adscimg2cbf-cmp + COMMAND ${CMAKE_COMMAND} -E compare_files + "${data_output}/mb_LP_1_001_orig.cbf" + "${CBF__DATA}/mb_LP_1_001.cbf") +set_tests_properties(adscimg2cbf-cmp PROPERTIES + FIXTURES_REQUIRED adscimg2cbf + REQUIRED_FILES "${data_output}/mb_LP_1_001_orig.cbf") -# -cmp converted_orig.cbf converted.cbf -add_test(cmp-converted_orig.cbf-converted.cbf ${CMAKE_COMMAND} -E compare_files "${CBF_DATA_OUTPUT}/converted_orig.cbf" ${CBF__DATA}/converted.cbf) -set_property(TEST cmp-converted_orig.cbf-converted.cbf APPEND PROPERTY DEPENDS converted.cbf) -# copy a file into another directory so that test input data is not modified -add_test(mb_LP_1_001.img ${CMAKE_COMMAND} -E copy "${CBF_DATA_INPUT}/mb_LP_1_001.img" ${CBF__DATA}/mb_LP_1_001.img) +# +# cbf2adscimg +add_test(NAME cbf2adscimg + COMMAND cbf2adscimg "${CBF__DATA}/mb_LP_1_001.cbf") +set_tests_properties(cbf2adscimg PROPERTIES + FIXTURES_REQUIRED adscimg2cbf + FIXTURES_SETUP cbf2adscimg) + +add_test(NAME cbf2adscimg-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/mb_LP_1_001.img") +set_tests_properties(cbf2adscimg-cleanup PROPERTIES + FIXTURES_CLEANUP cbf2adscimg) + +add_test(NAME cbf2adscimg-cmp + COMMAND ${CMAKE_COMMAND} -E compare_files + "${data_input}/mb_LP_1_001.img" + "${CBF__DATA}/mb_LP_1_001.img") +set_tests_properties(cbf2adscimg-cmp PROPERTIES + FIXTURES_REQUIRED cbf2adscimg + REQUIRED_FILES "${data_input}/mb_LP_1_001.img") -# $(BIN)/convert_image -F -d adscquantum315 mb_LP_1_001.img adscconverted_flat.cbf -add_test( - adscconverted_flat.cbf - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/convert_image - -F -p ${CBFlib_SOURCE_DIR}/templates/template_adscquantum315_3072x3072.cbf - -d adscquantum315 - ${CBF__DATA}/mb_LP_1_001.img - ${CBF__DATA}/adscconverted_flat.cbf -) -set_property(TEST adscconverted_flat.cbf APPEND PROPERTY DEPENDS mb_LP_1_001.img) - -# -cmp adscconverted_flat_orig.cbf adscconverted_flat.cbf -add_test(cmp-adscconverted_flat_orig.cbf-adscconverted_flat.cbf ${CMAKE_COMMAND} -E compare_files "${CBF_DATA_OUTPUT}/adscconverted_flat_orig.cbf" ${CBF__DATA}/adscconverted_flat.cbf) -set_property(TEST cmp-adscconverted_flat_orig.cbf-adscconverted_flat.cbf APPEND PROPERTY DEPENDS adscconverted_flat.cbf) - -# $(BIN)/convert_image -d adscquantum315 mb_LP_1_001.img adscconverted.cbf -add_test( - adscconverted.cbf - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/convert_image - -p ${CBFlib_SOURCE_DIR}/templates/template_adscquantum315_3072x3072.cbf - -d adscquantum315 - ${CBF__DATA}/mb_LP_1_001.img - ${CBF__DATA}/adscconverted.cbf -) -set_property(TEST adscconverted.cbf APPEND PROPERTY DEPENDS mb_LP_1_001.img) - -# -cmp adscconverted_orig.cbf adscconverted.cbf -add_test(cmp-adscconverted_orig.cbf-adscconverted.cbf ${CMAKE_COMMAND} -E compare_files "${CBF_DATA_OUTPUT}/adscconverted_orig.cbf" ${CBF__DATA}/adscconverted.cbf) -set_property(TEST cmp-adscconverted_orig.cbf-adscconverted.cbf APPEND PROPERTY DEPENDS adscconverted.cbf) - -# $(BIN)/adscimg2cbf --no_pad --cbf_packed,flat mb_LP_1_001.img -add_test(mb_LP_1_001.cbf ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/adscimg2cbf --no_pad --cbf_packed,flat ${CBF__DATA}/mb_LP_1_001.img) -set_property(TEST mb_LP_1_001.cbf APPEND PROPERTY DEPENDS mb_LP_1_001.img) - -# -cmp mb_LP_1_001_orig.cbf mb_LP_1_001.cbf -add_test(cmp-mb_LP_1_001_orig.cbf-mb_LP_1_001.cbf ${CMAKE_COMMAND} -E compare_files "${CBF_DATA_OUTPUT}/mb_LP_1_001_orig.cbf" ${CBF__DATA}/mb_LP_1_001.cbf) -set_property(TEST cmp-mb_LP_1_001_orig.cbf-mb_LP_1_001.cbf APPEND PROPERTY DEPENDS mb_LP_1_001.cbf) - -# cp mb_LP_1_001.cbf nmb_LP_1_001.cbf -add_test(nmb_LP_1_001.cbf ${CMAKE_COMMAND} -E copy ${CBF__DATA}/mb_LP_1_001.cbf ${CBF__DATA}/nmb_LP_1_001.cbf) -set_property(TEST nmb_LP_1_001.cbf APPEND PROPERTY DEPENDS mb_LP_1_001.cbf) - -# $(BIN)/cbf2adscimg nmb_LP_1_001.cbf -add_test(nmb_LP_1_001.img ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cbf2adscimg ${CBF__DATA}/nmb_LP_1_001.cbf) -set_property(TEST nmb_LP_1_001.img APPEND PROPERTY DEPENDS nmb_LP_1_001.cbf) - -# -cmp mb_LP_1_001.img nmb_LP_1_001.img -add_test(cmp-mb_LP_1_001.img-nmb_LP_1_001.img ${CMAKE_COMMAND} -E compare_files ${CBF__DATA}/mb_LP_1_001.img ${CBF__DATA}/nmb_LP_1_001.img) -set_property(TEST cmp-mb_LP_1_001.img-nmb_LP_1_001.img APPEND PROPERTY DEPENDS mb_LP_1_001.img) -set_property(TEST cmp-mb_LP_1_001.img-nmb_LP_1_001.img APPEND PROPERTY DEPENDS nmb_LP_1_001.img) - -# $(BIN)/convert_minicbf -d pilatus6m -v 1 insulin_pilatus6m.cbf insulin_pilatus6mconverted.cbf -add_test( - insulin_pilatus6mconverted.cbf - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/convert_minicbf - -p ${CBFlib_SOURCE_DIR}/templates/template_pilatus6m_2463x2527.cbf - -d pilatus6m -v 1 - "${CBF_DATA_INPUT}/insulin_pilatus6m.cbf" - ${CBF__DATA}/insulin_pilatus6mconverted.cbf -) -# -cmp insulin_pilatus6mconverted_rev_orig.cbf insulin_pilatus6mconverted.cbf -add_test( - cmp-insulin_pilatus6mconverted_rev_orig.cbf-insulin_pilatus6mconverted.cbf - ${CMAKE_COMMAND} -E compare_files - "${CBF_DATA_OUTPUT}/insulin_pilatus6mconverted_rev_orig.cbf" - ${CBF__DATA}/insulin_pilatus6mconverted.cbf -) -set_property(TEST cmp-insulin_pilatus6mconverted_rev_orig.cbf-insulin_pilatus6mconverted.cbf APPEND PROPERTY DEPENDS insulin_pilatus6mconverted.cbf) - -# $(BIN)/convert_minicbf -d pilatus6m insulin_pilatus6m.cbf insulin_pilatus6mconverted_v2.cbf -add_test( - insulin_pilatus6mconverted_v2.cbf - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/convert_minicbf - -p ${CBFlib_SOURCE_DIR}/templates/template_pilatus6m_2463x2527.cbf - -d pilatus6m - "${CBF_DATA_INPUT}/insulin_pilatus6m.cbf" - ${CBF__DATA}/insulin_pilatus6mconverted_v2.cbf -) +# +# batch_convert_minicbf +add_test(NAME batch_convert_minicbf + COMMAND ${CMAKE_COMMAND} + "-DCBF_CONVERT_MINICBF_PATH=$" + -P "${CMAKE_CURRENT_SOURCE_DIR}/examples/batch_convert_minicbf.cmake" -- + "${data_input}" + "${CBF__DATA}" + "X4_lots_M1S4_1_*.cbf" + "${CBFlib_SOURCE_DIR}/templates/template_X4_lots_M1S4.cbf") +set_tests_properties(batch_convert_minicbf PROPERTIES + FIXTURES_SETUP batch_convert_minicbf + REQUIRED_FILES "${data_input}/X4_lots_M1S4_1_0001.cbf;${data_input}/X4_lots_M1S4_1_0002.cbf;${data_input}/X4_lots_M1S4_1_0003.cbf;${data_input}/X4_lots_M1S4_1_0004.cbf;${data_input}/X4_lots_M1S4_1_0005.cbf") + +add_test(NAME batch_convert_minicbf-cleanup + COMMAND ${CMAKE_COMMAND} -E rm + "${CBF__DATA}/X4_lots_M1S4_1_0001.cbf" + "${CBF__DATA}/X4_lots_M1S4_1_0002.cbf" + "${CBF__DATA}/X4_lots_M1S4_1_0003.cbf" + "${CBF__DATA}/X4_lots_M1S4_1_0004.cbf" + "${CBF__DATA}/X4_lots_M1S4_1_0005.cbf") +set_tests_properties(batch_convert_minicbf-cleanup PROPERTIES + FIXTURES_CLEANUP batch_convert_minicbf) -# -cmp insulin_pilatus6mconverted_v2_orig.cbf insulin_pilatus6mconverted_v2.cbf -add_test( - cmp-insulin_pilatus6mconverted_v2_orig.cbf-insulin_pilatus6mconverted_v2.cbf - ${CMAKE_COMMAND} -E compare_files - "${CBF_DATA_OUTPUT}/insulin_pilatus6mconverted_v2_orig.cbf" - ${CBF__DATA}/insulin_pilatus6mconverted_v2.cbf -) -set_property(TEST cmp-insulin_pilatus6mconverted_v2_orig.cbf-insulin_pilatus6mconverted_v2.cbf APPEND PROPERTY DEPENDS insulin_pilatus6mconverted_v2.cbf) -# cif2cbf basic round-trip to hdf5 tests +# +# convert_minicbf-v1 +add_test(NAME convert_minicbf-v1 + COMMAND convert_minicbf + -p "${CBFlib_SOURCE_DIR}/templates/template_pilatus6m_2463x2527.cbf" + -d pilatus6m -v 1 + "${data_input}/insulin_pilatus6m.cbf" + "${CBF__DATA}/insulin_pilatus6mconverted.cbf") +set_tests_properties(convert_minicbf-v1 PROPERTIES + FIXTURES_SETUP convert_minicbf-v1 + REQUIRED_FILES "${CBFlib_SOURCE_DIR}/templates/template_pilatus6m_2463x2527.cbf;${data_input}/insulin_pilatus6m.cbf") + +add_test(NAME convert_minicbf-v1-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/insulin_pilatus6mconverted.cbf") +set_tests_properties(convert_minicbf-v1-cleanup PROPERTIES + FIXTURES_CLEANUP convert_minicbf-v1) + +add_test(NAME convert_minicbf-v1-cmp + COMMAND ${CMAKE_COMMAND} -E compare_files + "${data_output}/insulin_pilatus6mconverted_orig.cbf" + "${CBF__DATA}/insulin_pilatus6mconverted.cbf") +set_tests_properties(convert_minicbf-v1-cmp PROPERTIES + FIXTURES_REQUIRED convert_minicbf-v1 + REQUIRED_FILES "${data_output}/insulin_pilatus6mconverted_orig.cbf") -# $(BIN)/cif2cbf -5 w -O $(HDF5REGISTER) -i insulin_pilatus6mconverted.cbf -o insulin_pilatus6mconverted.cbf.h5 -add_test( - insulin_pilatus6mconverted.cbf.h5 - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cif2cbf -5 w -O - ${HDF5REGISTER} - -i ${CBF__DATA}/insulin_pilatus6mconverted.cbf - -o ${CBF__DATA}/insulin_pilatus6mconverted.cbf.h5 -) -set_property(TEST insulin_pilatus6mconverted.cbf.h5 APPEND PROPERTY DEPENDS insulin_pilatus6mconverted.cbf) - -# $(BIN)/cif2cbf -5 rn $(HDF5REGISTER) -en -cp -i insulin_pilatus6mconverted.cbf.h5 -o insulin_pilatus6mconverted.cbf.h5.cbf -add_test( - insulin_pilatus6mconverted.cbf.h5.cbf - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cif2cbf -5 rn -en -cp - ${HDF5REGISTER} - -i ${CBF__DATA}/insulin_pilatus6mconverted.cbf.h5 - -o ${CBF__DATA}/insulin_pilatus6mconverted.cbf.h5.cbf -) -set_property(TEST insulin_pilatus6mconverted.cbf.h5.cbf APPEND PROPERTY DEPENDS insulin_pilatus6mconverted.cbf.h5) - -# -cmp insulin_pilatus6mconverted.cbf.h5.cbf insulin_pilatus6mconverted_orig.cbf.h5.cbf -add_test( - cmp-insulin_pilatus6mconverted_orig.cbf.h5.cbf-insulin_pilatus6mconverted.cbf.h5.cbf - ${CMAKE_COMMAND} -E compare_files - "${CBF_DATA_OUTPUT}/insulin_pilatus6mconverted_orig.cbf.h5.cbf" - ${CBF__DATA}/insulin_pilatus6mconverted.cbf.h5.cbf -) -set_property(TEST cmp-insulin_pilatus6mconverted_orig.cbf.h5.cbf-insulin_pilatus6mconverted.cbf.h5.cbf APPEND PROPERTY DEPENDS insulin_pilatus6mconverted.cbf.h5.cbf) -# $(BIN)/h5dump insulin_pilatus6mconverted_orig.cbf.h5 | $(ALLBUTONE) > insulin_pilatus6mconverted_orig.cbf.h5.dump -add_test(NAME insulin_pilatus6mconverted_orig.cbf.h5.dump +# +# convert_minicbf-v2 +add_test(NAME convert_minicbf-v2 + COMMAND convert_minicbf + -p "${CBFlib_SOURCE_DIR}/templates/template_pilatus6m_2463x2527.cbf" + -d pilatus6m + "${data_input}/insulin_pilatus6m.cbf" + "${CBF__DATA}/insulin_pilatus6mconverted_v2.cbf") +set_tests_properties(convert_minicbf-v2 PROPERTIES + FIXTURES_SETUP convert_minicbf-v2 + REQUIRED_FILES "${CBFlib_SOURCE_DIR}/templates/template_pilatus6m_2463x2527.cbf;${data_input}/insulin_pilatus6m.cbf") + +add_test(NAME convert_minicbf-v2-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/insulin_pilatus6mconverted_v2.cbf") +set_tests_properties(convert_minicbf-v2-cleanup PROPERTIES + FIXTURES_CLEANUP convert_minicbf-v2) + +add_test(NAME convert_minicbf-v2-cmp + COMMAND ${CMAKE_COMMAND} -E compare_files + "${data_output}/insulin_pilatus6mconverted_v2_orig.cbf" + "${CBF__DATA}/insulin_pilatus6mconverted_v2.cbf") +set_tests_properties(convert_minicbf-v2-cmp PROPERTIES + FIXTURES_REQUIRED convert_minicbf-v2 + REQUIRED_FILES "${data_output}/insulin_pilatus6mconverted_v2_orig.cbf") + + +# +# cif2cbf basic roundtrip to HDF5 tests +add_test(NAME cif2cbf-opaque + COMMAND cif2cbf -5 w -O ${HDF5REGISTER} + -i "${CBF__DATA}/insulin_pilatus6mconverted.cbf" + -o "${CBF__DATA}/insulin_pilatus6mconverted.cbf.h5") +set_tests_properties(cif2cbf-opaque PROPERTIES + FIXTURES_REQUIRED convert_minicbf-v1 + FIXTURES_SETUP cif2cbf-opaque) + +add_test(NAME cif2cbf-opaque-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/insulin_pilatus6mconverted.cbf.h5") +set_tests_properties(cif2cbf-opaque-cleanup PROPERTIES + FIXTURES_CLEANUP cif2cbf-opaque) + + +# +# Check the default as HDF5 dumps +add_test(NAME insulin-orig-dump COMMAND ${CMAKE_COMMAND} - "-Dinput-file=${CBF_DATA_OUTPUT}/insulin_pilatus6mconverted_orig.cbf.h5" + "-Dinput-file=${data_output}/insulin_pilatus6mconverted_orig.cbf.h5" "-Doutput-file=${CBF__DATA}/insulin_pilatus6mconverted_orig.cbf.h5.dump" -P "${PROJECT_BINARY_DIR}/h5dump-$.cmake") -# $(BIN)/h5dump insulin_pilatus6mconverted.cbf.h5 | $(ALLBUTONE) > insulin_pilatus6mconverted.cbf.h5.dump -add_test(NAME insulin_pilatus6mconverted.cbf.h5.dump +set_tests_properties(insulin-orig-dump PROPERTIES + FIXTURES_SETUP insulin-orig-dump + REQUIRED_FILES "${data_output}/insulin_pilatus6mconverted_orig.cbf.h5") + +add_test(NAME insulin-orig-dump-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/insulin_pilatus6mconverted_orig.cbf.h5.dump") +set_tests_properties(insulin-orig-dump-cleanup PROPERTIES + FIXTURES_CLEANUP insulin-orig-dump) + +add_test(NAME cif2cbf-opaque-dump COMMAND ${CMAKE_COMMAND} "-Dinput-file=${CBF__DATA}/insulin_pilatus6mconverted.cbf.h5" "-Doutput-file=${CBF__DATA}/insulin_pilatus6mconverted.cbf.h5.dump" -P "${PROJECT_BINARY_DIR}/h5dump-$.cmake") -set_property(TEST insulin_pilatus6mconverted.cbf.h5.dump APPEND PROPERTY DEPENDS insulin_pilatus6mconverted.cbf.h5) -# $(DIFF) insulin_pilatus6mconverted_orig.cbf.h5.dump insulin_pilatus6mconverted.cbf.h5.dump -add_test( - cmp-insulin_pilatus6mconverted_orig.cbf.h5.dump-insulin_pilatus6mconverted.cbf.h5.dump - ${CMAKE_COMMAND} -E compare_files - ${CBF__DATA}/insulin_pilatus6mconverted_orig.cbf.h5.dump - ${CBF__DATA}/insulin_pilatus6mconverted.cbf.h5.dump -) -set_property(TEST cmp-insulin_pilatus6mconverted_orig.cbf.h5.dump-insulin_pilatus6mconverted.cbf.h5.dump APPEND PROPERTY DEPENDS insulin_pilatus6mconverted_orig.cbf.h5.dump) -set_property(TEST cmp-insulin_pilatus6mconverted_orig.cbf.h5.dump-insulin_pilatus6mconverted.cbf.h5.dump APPEND PROPERTY DEPENDS insulin_pilatus6mconverted.cbf.h5.dump) +set_tests_properties(cif2cbf-opaque-dump PROPERTIES + FIXTURES_REQUIRED cif2cbf-opaque + FIXTURES_SETUP cif2cbf-opaque-dump) -# cif2cbf round-trip tests +add_test(NAME cif2cbf-opaque-dump-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/insulin_pilatus6mconverted.cbf.h5.dump") +set_tests_properties(cif2cbf-opaque-dump-cleanup PROPERTIES + FIXTURES_CLEANUP cif2cbf-opaque-dump) -# convert to hdf5 with '-en -cI' options, then back to cbf with '-en -cp' options to check the file against a reference file +add_test(NAME cif2cbf-opaque-cmp + COMMAND ${CMAKE_COMMAND} -E compare_files + "${CBF__DATA}/insulin_pilatus6mconverted_orig.cbf.h5.dump" + "${CBF__DATA}/insulin_pilatus6mconverted.cbf.h5.dump") +set_tests_properties(cif2cbf-opaque-cmp PROPERTIES + FIXTURES_REQUIRED "insulin-orig-dump;cif2cbf-opaque-dump") -# $(BIN)/cif2cbf -5 w $(HDF5REGISTER) -en -cI -i insulin_pilatus6mconverted.cbf -o insulin_pilatus6mconverted_encI.cbf.h5 -add_test( - insulin_pilatus6mconverted_encI.cbf.h5 - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cif2cbf -5 w -en -cI - ${HDF5REGISTER} - -i ${CBF__DATA}/insulin_pilatus6mconverted.cbf - -o ${CBF__DATA}/insulin_pilatus6mconverted_encI.cbf.h5 -) -set_property(TEST insulin_pilatus6mconverted_encI.cbf.h5 APPEND PROPERTY DEPENDS insulin_pilatus6mconverted.cbf) -# $(BIN)/cif2cbf -5 rn $(HDF5REGISTER) -en -cp -i insulin_pilatus6mconverted_encI.cbf.h5 -o insulin_pilatus6mconverted_encI.cbf.h5.cbf -add_test( - insulin_pilatus6mconverted_encI.cbf.h5.cbf - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cif2cbf -5 rn -en -cp - ${HDF5REGISTER} - -i ${CBF__DATA}/insulin_pilatus6mconverted_encI.cbf.h5 - -o ${CBF__DATA}/insulin_pilatus6mconverted_encI.cbf.h5.cbf -) -set_property(TEST insulin_pilatus6mconverted_encI.cbf.h5.cbf APPEND PROPERTY DEPENDS insulin_pilatus6mconverted_encI.cbf.h5) -# -cmp insulin_pilatus6mconverted_encI.cbf.h5.cbf insulin_pilatus6mconverted_orig.cbf.h5.cbf -add_test( - cmp-insulin_pilatus6mconverted_orig.cbf.h5.cbf-insulin_pilatus6mconverted_encI.cbf.h5.cbf - ${CMAKE_COMMAND} -E compare_files - "${CBF_DATA_OUTPUT}/insulin_pilatus6mconverted_orig.cbf.h5.cbf" - ${CBF__DATA}/insulin_pilatus6mconverted_encI.cbf.h5.cbf -) -set_property(TEST cmp-insulin_pilatus6mconverted_orig.cbf.h5.cbf-insulin_pilatus6mconverted_encI.cbf.h5.cbf APPEND PROPERTY DEPENDS insulin_pilatus6mconverted_encI.cbf.h5.cbf) -# convert to hdf5 with '-en -cp' options, then back to cbf with '-en -cp' options to check the file against a reference file +# +# cif2cbf roundtrip tests +add_test(NAME cif2cbf-encI + COMMAND cif2cbf -5 w ${HDF5REGISTER} -en -cI + -i "${CBF__DATA}/insulin_pilatus6mconverted.cbf" + -o "${CBF__DATA}/insulin_pilatus6mconverted_encI.cbf.h5") +set_tests_properties(cif2cbf-encI PROPERTIES + FIXTURES_REQUIRED convert_minicbf-v1 + FIXTURES_SETUP cif2cbf-encI) + +add_test(NAME cif2cbf-encI-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/insulin_pilatus6mconverted_encI.cbf.h5") +set_tests_properties(cif2cbf-encI-cleanup PROPERTIES + FIXTURES_CLEANUP cif2cbf-encI) + +add_test(NAME cif2cbf-encI-cbf + COMMAND cif2cbf -5 rn ${HDF5REGISTER} -en -cI + -i "${CBF__DATA}/insulin_pilatus6mconverted_encI.cbf.h5" + -o "${CBF__DATA}/insulin_pilatus6mconverted_encI.cbf.h5.cbf") +set_tests_properties(cif2cbf-encI-cbf PROPERTIES + FIXTURES_REQUIRED cif2cbf-encI + FIXTURES_SETUP cif2cbf-encI-cbf) + +add_test(NAME cif2cbf-encI-cbf-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/insulin_pilatus6mconverted_encI.cbf.h5.cbf") +set_tests_properties(cif2cbf-encI-cbf-cleanup PROPERTIES + FIXTURES_CLEANUP cif2cbf-encI-cbf) -# $(BIN)/cif2cbf -5 w $(HDF5REGISTER) -en -cp -i insulin_pilatus6mconverted.cbf -o insulin_pilatus6mconverted_encp.cbf.h5 -add_test( - insulin_pilatus6mconverted_encp.cbf.h5 - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cif2cbf -5 w -en -cp - ${HDF5REGISTER} - -i ${CBF__DATA}/insulin_pilatus6mconverted.cbf - -o ${CBF__DATA}/insulin_pilatus6mconverted_encp.cbf.h5 -) -set_property(TEST insulin_pilatus6mconverted_encp.cbf.h5 APPEND PROPERTY DEPENDS insulin_pilatus6mconverted.cbf) -# $(BIN)/cif2cbf -5 rn $(HDF5REGISTER) -en -cp -i insulin_pilatus6mconverted_encp.cbf.h5 -o insulin_pilatus6mconverted_encp.cbf.h5.cbf -add_test( - insulin_pilatus6mconverted_encp.cbf.h5.cbf - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cif2cbf -5 rn -en -cp - ${HDF5REGISTER} - -i ${CBF__DATA}/insulin_pilatus6mconverted_encp.cbf.h5 - -o ${CBF__DATA}/insulin_pilatus6mconverted_encp.cbf.h5.cbf -) -set_property(TEST insulin_pilatus6mconverted_encp.cbf.h5.cbf APPEND PROPERTY DEPENDS insulin_pilatus6mconverted_encp.cbf.h5) -# -cmp insulin_pilatus6mconverted_encp.cbf.h5.cbf insulin_pilatus6mconverted_orig.cbf.h5.cbf -add_test( - cmp-insulin_pilatus6mconverted_orig.cbf.h5.cbf-insulin_pilatus6mconverted_encp.cbf.h5.cbf - ${CMAKE_COMMAND} -E compare_files - "${CBF_DATA_OUTPUT}/insulin_pilatus6mconverted_orig.cbf.h5.cbf" - ${CBF__DATA}/insulin_pilatus6mconverted_encp.cbf.h5.cbf -) -set_property(TEST cmp-insulin_pilatus6mconverted_orig.cbf.h5.cbf-insulin_pilatus6mconverted_encp.cbf.h5.cbf APPEND PROPERTY DEPENDS insulin_pilatus6mconverted_encp.cbf.h5.cbf) -# convert to hdf5 with '-en -cb' options, then back to cbf with '-en -cp' options to check the file against a reference file +# +# cif2cbf-encp +add_test(NAME cif2cbf-encp + COMMAND cif2cbf -5 w ${HDF5REGISTER} -en -cp + -i "${CBF__DATA}/insulin_pilatus6mconverted.cbf" + -o "${CBF__DATA}/insulin_pilatus6mconverted_encp.cbf.h5") +set_tests_properties(cif2cbf-encp PROPERTIES + FIXTURES_REQUIRED convert_minicbf-v1 + FIXTURES_SETUP cif2cbf-encp) + +add_test(NAME cif2cbf-encp-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/insulin_pilatus6mconverted_encp.cbf.h5") +set_tests_properties(cif2cbf-encp-cleanup PROPERTIES + FIXTURES_CLEANUP cif2cbf-encp) + +add_test(NAME cif2cbf-encp-cbf + COMMAND cif2cbf -5 rn ${HDF5REGISTER} -en -cI + -i "${CBF__DATA}/insulin_pilatus6mconverted_encp.cbf.h5" + -o "${CBF__DATA}/insulin_pilatus6mconverted_encp.cbf.h5.cbf") +set_tests_properties(cif2cbf-encp-cbf PROPERTIES + FIXTURES_REQUIRED cif2cbf-encp + FIXTURES_SETUP cif2cbf-encp-cbf) + +add_test(NAME cif2cbf-encp-cbf-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/insulin_pilatus6mconverted_encp.cbf.h5.cbf") +set_tests_properties(cif2cbf-encp-cbf-cleanup PROPERTIES + FIXTURES_CLEANUP cif2cbf-encp-cbf) + +add_test(NAME cif2cbf-encp-cmp + COMMAND ${CMAKE_COMMAND} -E compare_files + "${CBF__DATA}/insulin_pilatus6mconverted_encI.cbf.h5.cbf" + "${CBF__DATA}/insulin_pilatus6mconverted_encp.cbf.h5.cbf") +set_tests_properties(cif2cbf-encp-cmp PROPERTIES + FIXTURES_REQUIRED "cif2cbf-encI-cbf;cif2cbf-encp-cbf") -# $(BIN)/cif2cbf -5 w $(HDF5REGISTER) -en -cb -i insulin_pilatus6mconverted.cbf -o insulin_pilatus6mconverted_encb.cbf.h5 -add_test( - insulin_pilatus6mconverted_encb.cbf.h5 - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cif2cbf -5 w -en -cb - ${HDF5REGISTER} - -i ${CBF__DATA}/insulin_pilatus6mconverted.cbf - -o ${CBF__DATA}/insulin_pilatus6mconverted_encb.cbf.h5 -) -set_property(TEST insulin_pilatus6mconverted_encb.cbf.h5 APPEND PROPERTY DEPENDS insulin_pilatus6mconverted.cbf) -# $(BIN)/cif2cbf -5 rn $(HDF5REGISTER) -en -cp -i insulin_pilatus6mconverted_encb.cbf.h5 -o insulin_pilatus6mconverted_encb.cbf.h5.cbf -add_test( - insulin_pilatus6mconverted_encb.cbf.h5.cbf - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cif2cbf -5 rn -en -cp - ${HDF5REGISTER} - -i ${CBF__DATA}/insulin_pilatus6mconverted_encb.cbf.h5 - -o ${CBF__DATA}/insulin_pilatus6mconverted_encb.cbf.h5.cbf -) -set_property(TEST insulin_pilatus6mconverted_encb.cbf.h5.cbf APPEND PROPERTY DEPENDS insulin_pilatus6mconverted_encb.cbf.h5) -# -cmp insulin_pilatus6mconverted_encb.cbf.h5.cbf insulin_pilatus6mconverted_orig.cbf.h5.cbf -add_test( - cmp-insulin_pilatus6mconverted_orig.cbf.h5.cbf-insulin_pilatus6mconverted_encb.cbf.h5.cbf - ${CMAKE_COMMAND} -E compare_files - "${CBF_DATA_OUTPUT}/insulin_pilatus6mconverted_orig.cbf.h5.cbf" - ${CBF__DATA}/insulin_pilatus6mconverted_encb.cbf.h5.cbf -) -set_property(TEST cmp-insulin_pilatus6mconverted_orig.cbf.h5.cbf-insulin_pilatus6mconverted_encb.cbf.h5.cbf APPEND PROPERTY DEPENDS insulin_pilatus6mconverted_encb.cbf.h5.cbf) -# convert to hdf5 with '-en -cc' options, then back to cbf with '-en -cp' options to check the file against a reference file +# +# cif2cbf-encb +add_test(NAME cif2cbf-encb + COMMAND cif2cbf -5 w ${HDF5REGISTER} -en -cb + -i "${CBF__DATA}/insulin_pilatus6mconverted.cbf" + -o "${CBF__DATA}/insulin_pilatus6mconverted_encb.cbf.h5") +set_tests_properties(cif2cbf-encb PROPERTIES + FIXTURES_REQUIRED convert_minicbf-v1 + FIXTURES_SETUP cif2cbf-encb) + +add_test(NAME cif2cbf-encb-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/insulin_pilatus6mconverted_encb.cbf.h5") +set_tests_properties(cif2cbf-encb-cleanup PROPERTIES + FIXTURES_CLEANUP cif2cbf-encb) + +add_test(NAME cif2cbf-encb-cbf + COMMAND cif2cbf -5 rn ${HDF5REGISTER} -en -cI + -i "${CBF__DATA}/insulin_pilatus6mconverted_encb.cbf.h5" + -o "${CBF__DATA}/insulin_pilatus6mconverted_encb.cbf.h5.cbf") +set_tests_properties(cif2cbf-encb-cbf PROPERTIES + FIXTURES_REQUIRED cif2cbf-encb + FIXTURES_SETUP cif2cbf-encb-cbf) + +add_test(NAME cif2cbf-encb-cbf-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/insulin_pilatus6mconverted_encb.cbf.h5.cbf") +set_tests_properties(cif2cbf-encb-cbf-cleanup PROPERTIES + FIXTURES_CLEANUP cif2cbf-encb-cbf) + +add_test(NAME cif2cbf-encb-cmp + COMMAND ${CMAKE_COMMAND} -E compare_files + "${CBF__DATA}/insulin_pilatus6mconverted_encI.cbf.h5.cbf" + "${CBF__DATA}/insulin_pilatus6mconverted_encb.cbf.h5.cbf") +set_tests_properties(cif2cbf-encb-cmp PROPERTIES + FIXTURES_REQUIRED "cif2cbf-encI-cbf;cif2cbf-encb-cbf") -# $(BIN)/cif2cbf -5 w $(HDF5REGISTER) -en -cc -i insulin_pilatus6mconverted.cbf -o insulin_pilatus6mconverted_encc.cbf.h5 -add_test( - insulin_pilatus6mconverted_encc.cbf.h5 - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cif2cbf -5 w -en -cc - ${HDF5REGISTER} - -i ${CBF__DATA}/insulin_pilatus6mconverted.cbf - -o ${CBF__DATA}/insulin_pilatus6mconverted_encc.cbf.h5 -) -set_property(TEST insulin_pilatus6mconverted_encc.cbf.h5 APPEND PROPERTY DEPENDS insulin_pilatus6mconverted.cbf) -# $(BIN)/cif2cbf -5 rn $(HDF5REGISTER) -en -cp -i insulin_pilatus6mconverted_encc.cbf.h5 -o insulin_pilatus6mconverted_encc.cbf.h5.cbf -add_test( - insulin_pilatus6mconverted_encc.cbf.h5.cbf - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cif2cbf -5 rn -en -cp - ${HDF5REGISTER} - -i ${CBF__DATA}/insulin_pilatus6mconverted_encc.cbf.h5 - -o ${CBF__DATA}/insulin_pilatus6mconverted_encc.cbf.h5.cbf -) -set_property(TEST insulin_pilatus6mconverted_encc.cbf.h5.cbf APPEND PROPERTY DEPENDS insulin_pilatus6mconverted_encc.cbf.h5) -# -cmp insulin_pilatus6mconverted_encc.cbf.h5.cbf insulin_pilatus6mconverted_orig.cbf.h5.cbf -add_test( - cmp-insulin_pilatus6mconverted_orig.cbf.h5.cbf-insulin_pilatus6mconverted_encc.cbf.h5.cbf - ${CMAKE_COMMAND} -E compare_files - "${CBF_DATA_OUTPUT}/insulin_pilatus6mconverted_orig.cbf.h5.cbf" - ${CBF__DATA}/insulin_pilatus6mconverted_encc.cbf.h5.cbf -) -set_property(TEST cmp-insulin_pilatus6mconverted_orig.cbf.h5.cbf-insulin_pilatus6mconverted_encc.cbf.h5.cbf APPEND PROPERTY DEPENDS insulin_pilatus6mconverted_encc.cbf.h5.cbf) -# conversion tests for tiff2cbf +# +# cif2cbf-encc +add_test(NAME cif2cbf-encc + COMMAND cif2cbf -5 w ${HDF5REGISTER} -en -cc + -i "${CBF__DATA}/insulin_pilatus6mconverted.cbf" + -o "${CBF__DATA}/insulin_pilatus6mconverted_encc.cbf.h5") +set_tests_properties(cif2cbf-encc PROPERTIES + FIXTURES_REQUIRED convert_minicbf-v1 + FIXTURES_SETUP cif2cbf-encc) + +add_test(NAME cif2cbf-encc-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/insulin_pilatus6mconverted_encc.cbf.h5") +set_tests_properties(cif2cbf-encc-cleanup PROPERTIES + FIXTURES_CLEANUP cif2cbf-encc) + +add_test(NAME cif2cbf-encc-cbf + COMMAND cif2cbf -5 rn ${HDF5REGISTER} -en -cI + -i "${CBF__DATA}/insulin_pilatus6mconverted_encc.cbf.h5" + -o "${CBF__DATA}/insulin_pilatus6mconverted_encc.cbf.h5.cbf") +set_tests_properties(cif2cbf-encc-cbf PROPERTIES + FIXTURES_REQUIRED cif2cbf-encc + FIXTURES_SETUP cif2cbf-encc-cbf) + +add_test(NAME cif2cbf-encc-cbf-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/insulin_pilatus6mconverted_encc.cbf.h5.cbf") +set_tests_properties(cif2cbf-encc-cbf-cleanup PROPERTIES + FIXTURES_CLEANUP cif2cbf-encc-cbf) + +add_test(NAME cif2cbf-encc-cmp + COMMAND ${CMAKE_COMMAND} -E compare_files + "${CBF__DATA}/insulin_pilatus6mconverted_encI.cbf.h5.cbf" + "${CBF__DATA}/insulin_pilatus6mconverted_encc.cbf.h5.cbf") +set_tests_properties(cif2cbf-encc-cmp PROPERTIES + FIXTURES_REQUIRED "cif2cbf-encI-cbf;cif2cbf-encc-cbf") -# $(BIN)/tiff2cbf XRD1621.tif XRD1621.cbf -add_test(XRD1621.cbf ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/tiff2cbf -cn "${CBF_DATA_INPUT}/XRD1621.tif" ${CBF__DATA}/XRD1621.cbf) -# $(DIFF) XRD1621_orig.cbf XRD1621.cbf -add_test( - cmp-XRD1621_orig.cbf-XRD1621.cbf - ${CMAKE_COMMAND} -E compare_files - "${CBF_DATA_OUTPUT}/XRD1621_orig.cbf" - ${CBF__DATA}/XRD1621.cbf -) -set_property(TEST cmp-XRD1621_orig.cbf-XRD1621.cbf APPEND PROPERTY DEPENDS XRD1621.cbf) -# $(BIN)/cif2cbf -I 4 -C 100. -L 0. -e n -c b -i XRD1621.cbf -o XRD1621_I4encbC100.cbf -# $(DIFF) XRD1621_I4encbC100_orig.cbf XRD1621_I4encbC100.cbf +# +# cif2cbf-encz +add_test(NAME cif2cbf-encz + COMMAND cif2cbf -5 w ${HDF5REGISTER} -en -cz + -i "${CBF__DATA}/insulin_pilatus6mconverted.cbf" + -o "${CBF__DATA}/insulin_pilatus6mconverted_encz.cbf.h5") +set_tests_properties(cif2cbf-encz PROPERTIES + FIXTURES_REQUIRED convert_minicbf-v1 + FIXTURES_SETUP cif2cbf-encz) + +add_test(NAME cif2cbf-encz-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/insulin_pilatus6mconverted_encz.cbf.h5") +set_tests_properties(cif2cbf-encz-cleanup PROPERTIES + FIXTURES_CLEANUP cif2cbf-encz) + +add_test(NAME cif2cbf-encz-cbf + COMMAND cif2cbf -5 rn ${HDF5REGISTER} -en -cI + -i "${CBF__DATA}/insulin_pilatus6mconverted_encz.cbf.h5" + -o "${CBF__DATA}/insulin_pilatus6mconverted_encz.cbf.h5.cbf") +set_tests_properties(cif2cbf-encz-cbf PROPERTIES + FIXTURES_REQUIRED cif2cbf-encz + FIXTURES_SETUP cif2cbf-encz-cbf) + +add_test(NAME cif2cbf-encz-cbf-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/insulin_pilatus6mconverted_encz.cbf.h5.cbf") +set_tests_properties(cif2cbf-encz-cbf-cleanup PROPERTIES + FIXTURES_CLEANUP cif2cbf-encz-cbf) + +add_test(NAME cif2cbf-encz-cmp + COMMAND ${CMAKE_COMMAND} -E compare_files + "${CBF__DATA}/insulin_pilatus6mconverted_encI.cbf.h5.cbf" + "${CBF__DATA}/insulin_pilatus6mconverted_encz.cbf.h5.cbf") +set_tests_properties(cif2cbf-encz-cmp PROPERTIES + FIXTURES_REQUIRED "cif2cbf-encI-cbf;cif2cbf-encz-cbf") -# unit tests -add_test(testalloc ${VALGRIND_COMMAND} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/testalloc) +# +# tiff2cbf-XRD1621 +add_test(NAME tiff2cbf-XRD1621 + COMMAND tiff2cbf -cn + "${data_input}/XRD1621.tif" + "${CBF__DATA}/XRD1621.cbf") +set_tests_properties(tiff2cbf-XRD1621 PROPERTIES + FIXTURES_SETUP tiff2cbf-XRD1621 + REQUIRED_FILES "${data_input}/XRD1621.tif") + +add_test(NAME tiff2cbf-XRD1621-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/XRD1621.cbf") +set_tests_properties(tiff2cbf-XRD1621-cleanup PROPERTIES + FIXTURES_CLEANUP tiff2cbf-XRD1621) + +add_test(NAME tiff2cbf-XRD1621-cmp + COMMAND ${CMAKE_COMMAND} -E compare_files + "${data_output}/XRD1621_orig.cbf" + "${CBF__DATA}/XRD1621.cbf") +set_tests_properties(tiff2cbf-XRD1621-cmp PROPERTIES + FIXTURES_REQUIRED tiff2cbf-XRD1621 + REQUIRED_FILES "${data_output}/XRD1621_orig.cbf") + + +# +# cif2cbf-XRD1621 +add_test(NAME cif2cbf-XRD1621 + COMMAND cif2cbf -I 4 -C 100. -L 0. -e n -c b + -i "${data_output}/XRD1621_orig.cbf" + -o "${CBF__DATA}/XRD1621_I4encbC100.cbf") +set_tests_properties(cif2cbf-XRD1621 PROPERTIES + FIXTURES_SETUP cif2cbf-XRD1621 + REQUIRED_FILES "${data_output}/XRD1621_orig.cbf") + +add_test(NAME cif2cbf-XRD1621-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/XRD1621_I4encbC100.cbf") +set_tests_properties(cif2cbf-XRD1621-cleanup PROPERTIES + FIXTURES_CLEANUP cif2cbf-XRD1621) + +add_test(NAME cif2cbf-XRD1621-cmp + COMMAND ${CMAKE_COMMAND} -E compare_files + "${data_output}/XRD1621_I4encbC100_orig.cbf" + "${CBF__DATA}/XRD1621_I4encbC100.cbf") +set_tests_properties(cif2cbf-XRD1621-cmp PROPERTIES + FIXTURES_REQUIRED cif2cbf-XRD1621 + REQUIRED_FILES "${data_output}/XRD1621_I4encbC100_orig.cbf") + + +# +# airy_disk +add_test(NAME airy_disk + COMMAND test_cbf_airy_disk) + + +# +# cbf_testxfelread +# +# cbf_testxfelread reads idx-s00-20131106040304531.cbf and writes +# idx-s00-20131106040304531_flat.cbf, both in the current working +# directory. +add_test(NAME xfelread-setup + COMMAND ${CMAKE_COMMAND} -E copy + "${CMAKE_CURRENT_SOURCE_DIR}/idx-s00-20131106040304531.cbf" + "${CBF__DATA}") +set_tests_properties(xfelread-setup PROPERTIES + FIXTURES_SETUP xfelread-setup) + +add_test(NAME xfelread-setup-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/idx-s00-20131106040304531.cbf") +set_tests_properties(xfelread-setup-cleanup PROPERTIES + FIXTURES_CLEANUP xfelread-setup) + +add_test(NAME xfelread + COMMAND cbf_testxfelread + WORKING_DIRECTORY "${CBF__DATA}") +set_tests_properties(xfelread PROPERTIES + FIXTURES_REQUIRED xfelread-setup + FIXTURES_SETUP xfelread) + +add_test(NAME xfelread-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/idx-s00-20131106040304531_flat.cbf") +set_tests_properties(xfelread-cleanup PROPERTIES + FIXTURES_CLEANUP xfelread) + + +# +# Unit tests +# +# testalloc +if(VALGRIND) + add_test(NAME testalloc + COMMAND ${VALGRIND_COMMAND} $) +else() + add_test(NAME testalloc + COMMAND testalloc) +endif() # # testhdf5 add_test(NAME testhdf5 - COMMAND testhdf5) + COMMAND testhdf5 + WORKING_DIRECTORY "${CBF__DATA}") set_tests_properties(testhdf5 PROPERTIES FIXTURES_SETUP testhdf5) add_test(NAME testhdf5-cleanup - COMMAND ${CMAKE_COMMAND} -E rm "testfile.h5") + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/testfile.h5") set_tests_properties(testhdf5-cleanup PROPERTIES FIXTURES_CLEANUP testhdf5) -add_test(testtree ${VALGRIND_COMMAND} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/testtree) -add_test(testulp ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/testulp) - -add_test(testflatin.cbf ${CMAKE_COMMAND} -E copy "${CBF_DATA_INPUT}/testflatin.cbf" ${CBF__DATA}/testflatin.cbf) -add_test(NAME testflat COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/testflat WORKING_DIRECTORY ${CBF__DATA}) -set_property(TEST testflat APPEND PROPERTY DEPENDS testflatin.cbf) -add_test(cmp-testflatin.cbf-testflatout.cbf ${CMAKE_COMMAND} -E compare_files ${CBF__DATA}/testflatin.cbf ${CBF__DATA}/testflatout.cbf) -set_property(TEST cmp-testflatin.cbf-testflatout.cbf APPEND PROPERTY DEPENDS testflat) - -add_test(testflatpackedin.cbf ${CMAKE_COMMAND} -E copy "${CBF_DATA_INPUT}/testflatpackedin.cbf" ${CBF__DATA}/testflatpackedin.cbf) -add_test(NAME testflatpacked COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/testflatpacked WORKING_DIRECTORY ${CBF__DATA}) -set_property(TEST testflatpacked APPEND PROPERTY DEPENDS testflatpackedin.cbf) -add_test(cmp-testflatpackedin.cbf-testflatpackedout.cbf ${CMAKE_COMMAND} -E compare_files ${CBF__DATA}/testflatpackedin.cbf ${CBF__DATA}/testflatpackedout.cbf) -set_property(TEST cmp-testflatpackedin.cbf-testflatpackedout.cbf APPEND PROPERTY DEPENDS testflatpacked) - -add_test(testrealin.cbf ${CMAKE_COMMAND} -E copy "${CBF_DATA_INPUT}/testrealin.cbf" ${CBF__DATA}/testrealin.cbf) -add_test(NAME testreals COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/testreals WORKING_DIRECTORY ${CBF__DATA}) -set_property(TEST testreals APPEND PROPERTY DEPENDS testrealin.cbf) -add_test(cmp-testrealin.cbf-testrealout.cbf ${CMAKE_COMMAND} -E compare_files ${CBF__DATA}/testrealin.cbf ${CBF__DATA}/testrealout.cbf) -set_property(TEST cmp-testrealin.cbf-testrealout.cbf APPEND PROPERTY DEPENDS testreals) - -# $(BIN)/sauter_test -add_test(NAME sauter_test COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/sauter_test WORKING_DIRECTORY ${CBF__DATA}) -set_property(TEST sauter_test APPEND PROPERTY DEPENDS adscconverted_flat.cbf) -# $(BIN)/changtestcompression -add_test(changtestcompression ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/changtestcompression) - -# set up a test script for 'testcell': -configure_file(${CBF__EXAMPLES}/testcell.cmake ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/testcell.cmake) -# $(BIN)/testcell < testcell.dat > testcell.prt -add_test(testcell ${CMAKE_COMMAND} -P ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/testcell.cmake) -# -cmp testcell_orig.prt testcell.prt -add_test(cmp-testcell_orig.prt-testcell.prt ${CMAKE_COMMAND} -E compare_files "${CBF_DATA_OUTPUT}/testcell_orig.prt" ${CBF__DATA}/testcell.prt) -set_property(TEST cmp-testcell_orig.prt-testcell.prt APPEND PROPERTY DEPENDS testcell) - -# basic minicbf2nexus tests - -# generate a hfd5 file from minicbf data -add_test( - minicbf.h5 - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/minicbf2nexus - -c zlib - -C ${CBFlib_SOURCE_DIR}/minicbf_test/config - ${HDF5REGISTER} - -o ${CBF__DATA}/minicbf.h5 - "${CBF_DATA_INPUT}/X4_lots_M1S4_1_0001.cbf" - "${CBF_DATA_INPUT}/X4_lots_M1S4_1_0002.cbf" - "${CBF_DATA_INPUT}/X4_lots_M1S4_1_0003.cbf" - "${CBF_DATA_INPUT}/X4_lots_M1S4_1_0004.cbf" - "${CBF_DATA_INPUT}/X4_lots_M1S4_1_0005.cbf" -) - -# dump the content of generated and reference hdf5 files & use 'cbf_tail' to strip off some file names -add_test(NAME minicbf_original.dump - COMMAND ${CMAKE_COMMAND} - "-Dinput-file=${CBF_DATA_OUTPUT}/minicbf_original.h5" - "-Doutput-file=${CBF__DATA}/minicbf_original.dump" - -P "${PROJECT_BINARY_DIR}/h5dump-$.cmake") -add_test(NAME minicbf.dump - COMMAND ${CMAKE_COMMAND} - "-Dinput-file=${CBF__DATA}/minicbf.h5" - "-Doutput-file=${CBF__DATA}/minicbf.dump" - -P "${PROJECT_BINARY_DIR}/h5dump-$.cmake") -set_property(TEST minicbf.dump APPEND PROPERTY DEPENDS minicbf.h5) -# compare dumped hdf5 file content -add_test(cmp-minicbf_original.dump-minicbf.dump ${CMAKE_COMMAND} -E compare_files ${CBF__DATA}/minicbf_original.dump ${CBF__DATA}/minicbf.dump) -set_property(TEST cmp-minicbf_original.dump-minicbf.dump APPEND PROPERTY DEPENDS minicbf_original.dump) -set_property(TEST cmp-minicbf_original.dump-minicbf.dump APPEND PROPERTY DEPENDS minicbf.dump) +# +# testulp +if(CBF_ENABLE_ULP) + add_test(NAME testulp + COMMAND testulp) +endif() -# round-trip cbf2nexus & nexus2cbf tests using i19 data -# generate the data -add_test(i19-1.h5 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cbf2nexus -c zlib --list -o ${CBF__DATA}/i19-1.h5 "${CBF_DATA_INPUT}/1191_00005.cbf") +# +# flat +# +# testflat reads testflatin.cbf and writes testflatout.cbf, both in +# the current working directory. +add_test(NAME flat-setup + COMMAND ${CMAKE_COMMAND} -E copy + "${data_input}/testflatin.cbf" + "${CBF__DATA}/testflatin.cbf") +set_tests_properties(flat-setup PROPERTIES + FIXTURES_SETUP flat-setup + REQUIRED_FILES "${data_input}/testflatin.cbf") + +add_test(NAME flat-setup-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/testflatin.cbf") +set_tests_properties(flat-setup-cleanup PROPERTIES + FIXTURES_CLEANUP flat-setup) + +add_test(NAME flat + COMMAND testflat + WORKING_DIRECTORY "${CBF__DATA}") +set_tests_properties(flat PROPERTIES + FIXTURES_REQUIRED flat-setup + FIXTURES_SETUP flat) + +add_test(NAME flat-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/testflatout.cbf") +set_tests_properties(flat-cleanup PROPERTIES + FIXTURES_CLEANUP flat) + +add_test(NAME flat-cmp + COMMAND ${CMAKE_COMMAND} -E compare_files + "${CBF__DATA}/testflatin.cbf" + "${CBF__DATA}/testflatout.cbf") +set_tests_properties(flat-cmp PROPERTIES + FIXTURES_REQUIRED "flat-setup;flat") -add_test(i19-1.cbf ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/nexus2cbf -o ${CBF__DATA}/i19-1.cbf ${CBF__DATA}/i19-1.h5) -set_property(TEST i19-1.cbf APPEND PROPERTY DEPENDS i19-1.h5) -add_test(i19-2.h5 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cbf2nexus -c zlib --list -o ${CBF__DATA}/i19-2.h5 ${CBF__DATA}/i19-1.cbf) -set_property(TEST i19-2.h5 APPEND PROPERTY DEPENDS i19-1.cbf) +# +# flatpacked +# +# testflatpacked reads testflatpackedin.cbf and writes +# testflatpackedout.cbf, both in the current working directory. +add_test(NAME flatpacked-setup + COMMAND ${CMAKE_COMMAND} -E copy + "${data_input}/testflatpackedin.cbf" + "${CBF__DATA}/testflatpackedin.cbf") +set_tests_properties(flatpacked-setup PROPERTIES + FIXTURES_SETUP flatpacked-setup + REQUIRED_FILES "${data_input}/testflatpackedin.cbf") + +add_test(NAME flatpacked-setup-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/testflatpackedin.cbf") +set_tests_properties(flatpacked-setup-cleanup PROPERTIES + FIXTURES_CLEANUP flatpacked-setup) + +add_test(NAME flatpacked + COMMAND testflatpacked + WORKING_DIRECTORY "${CBF__DATA}") +set_tests_properties(flatpacked PROPERTIES + FIXTURES_REQUIRED flatpacked-setup + FIXTURES_SETUP flatpacked) + +add_test(NAME flatpacked-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/testflatpackedout.cbf") +set_tests_properties(flatpacked-cleanup PROPERTIES + FIXTURES_CLEANUP flatpacked) + +add_test(NAME flatpacked-cmp + COMMAND ${CMAKE_COMMAND} -E compare_files + "${CBF__DATA}/testflatpackedin.cbf" + "${CBF__DATA}/testflatpackedout.cbf") +set_tests_properties(flatpacked-cmp PROPERTIES + FIXTURES_REQUIRED "flatpacked-setup;flatpacked") -add_test(i19-2.cbf ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/nexus2cbf -o ${CBF__DATA}/i19-2.cbf ${CBF__DATA}/i19-2.h5) -set_property(TEST i19-2.cbf APPEND PROPERTY DEPENDS i19-2.h5) -# compare the cbf files from i19 data -add_test(cmp-i19-1.cbf-i19-2.cbf ${CMAKE_COMMAND} -E compare_files ${CBF__DATA}/i19-1.cbf ${CBF__DATA}/i19-2.cbf) -set_property(TEST cmp-i19-1.cbf-i19-2.cbf APPEND PROPERTY DEPENDS i19-1.cbf) -set_property(TEST cmp-i19-1.cbf-i19-2.cbf APPEND PROPERTY DEPENDS i19-2.cbf) +# +# reals +# +# testreals reads testrealin.cbf and writes testrealout.cbf, both in +# the current working directory. +add_test(NAME reals-setup + COMMAND ${CMAKE_COMMAND} -E copy + "${data_input}/testrealin.cbf" + "${CBF__DATA}/testrealin.cbf") +set_tests_properties(reals-setup PROPERTIES + FIXTURES_SETUP reals-setup + REQUIRED_FILES "${data_input}/testrealin.cbf") + +add_test(NAME reals-setup-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/testrealin.cbf") +set_tests_properties(reals-setup-cleanup PROPERTIES + FIXTURES_CLEANUP reals-setup) + +add_test(NAME reals + COMMAND testreals + WORKING_DIRECTORY "${CBF__DATA}") +set_tests_properties(reals PROPERTIES + FIXTURES_REQUIRED reals-setup + FIXTURES_SETUP reals) + +add_test(NAME reals-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/testrealout.cbf") +set_tests_properties(reals-cleanup PROPERTIES + FIXTURES_CLEANUP reals) + +add_test(NAME reals-cmp + COMMAND ${CMAKE_COMMAND} -E compare_files + "${CBF__DATA}/testrealin.cbf" + "${CBF__DATA}/testrealout.cbf") +set_tests_properties(reals-cmp PROPERTIES + FIXTURES_REQUIRED "reals-setup;reals") -# dump the content of generated hdf5 files & use 'cbf_tail' to strip off some file names -add_test(NAME i19-1.dump - COMMAND ${CMAKE_COMMAND} - "-Dinput-file=${CBF__DATA}/i19-1.h5" - "-Doutput-file=${CBF__DATA}/i19-1.dump" - -P "${PROJECT_BINARY_DIR}/h5dump-$.cmake") -set_property(TEST i19-1.dump APPEND PROPERTY DEPENDS i19-1.h5) -add_test(NAME i19-2.dump + +# +# sauter +# +# sauter_test reads adscconverted_flat.cbf in the current working +# directory. If convert_image-adscimg-flat passes, the file should +# exist; if convert_image-adscimg-flat-cmp also passes, it is +# identical to ${data_output}/adscconverted_flat_orig.cbf. +add_test(NAME sauter + COMMAND sauter_test + WORKING_DIRECTORY "${CBF__DATA}") +set_tests_properties(sauter PROPERTIES + FIXTURES_REQUIRED "convert_image-adscimg-flat;convert_image-adscimg-flat-cmp") + + + +# +# changtestcompression +add_test(NAME changtestcompression + COMMAND changtestcompression + WORKING_DIRECTORY "${CBF__DATA}") +set_tests_properties(changtestcompression PROPERTIES + FIXTURES_SETUP changtestcompression) + +add_test(NAME changtestcompression-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/CTC.cbf") +set_tests_properties(changtestcompression-cleanup PROPERTIES + FIXTURES_CLEANUP changtestcompression) + + +# +# testcell +add_test(NAME testcell COMMAND ${CMAKE_COMMAND} - "-Dinput-file=${CBF__DATA}/i19-2.h5" - "-Doutput-file=${CBF__DATA}/i19-2.dump" - -P "${PROJECT_BINARY_DIR}/h5dump-$.cmake") -set_property(TEST i19-2.dump APPEND PROPERTY DEPENDS i19-2.h5) + "-Dcommand=$" + "-Dinput-file=${CMAKE_CURRENT_SOURCE_DIR}/testcell.dat" + "-Doutput-file=${CBF__DATA}/testcell.prt" + -P "${CMAKE_CURRENT_SOURCE_DIR}/redirect.cmake") +set_tests_properties(testcell PROPERTIES + FIXTURES_SETUP testcell + REQUIRED_FILES "${CMAKE_CURRENT_SOURCE_DIR}/testcell.dat") + +add_test(NAME testcell-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/testcell.prt") +set_tests_properties(testcell-cleanup PROPERTIES + FIXTURES_CLEANUP testcell) + +add_test(NAME testcell-cmp + COMMAND ${CMAKE_COMMAND} -E compare_files --ignore-eol + "${data_output}/testcell_orig.prt" + "${CBF__DATA}/testcell.prt") +set_tests_properties(testcell-cmp PROPERTIES + FIXTURES_REQUIRED testcell + REQUIRED_FILES "${data_output}/testcell_orig.prt") -# compare dumped hdf5 file content -add_test(cmp-i19-1.dump-i19-2.dump ${CMAKE_COMMAND} -E compare_files ${CBF__DATA}/i19-1.dump ${CBF__DATA}/i19-2.dump) -set_property(TEST cmp-i19-1.dump-i19-2.dump APPEND PROPERTY DEPENDS i19-1.dump) -set_property(TEST cmp-i19-1.dump-i19-2.dump APPEND PROPERTY DEPENDS i19-2.dump) -# round-trip cbf2nexus & nexus2cbf tests using i03 data +# +# minicbf2nexus +# +# Avoid file(GLOB ...) in the source tree. Dump the content of +# generated and reference HDF5 files and use cbf_tail to strip off +# some file names. +set(_minicbf2nexus_files + "${data_input}/X4_lots_M1S4_1_0001.cbf" + "${data_input}/X4_lots_M1S4_1_0002.cbf" + "${data_input}/X4_lots_M1S4_1_0003.cbf" + "${data_input}/X4_lots_M1S4_1_0004.cbf" + "${data_input}/X4_lots_M1S4_1_0005.cbf") +add_test(NAME minicbf2nexus + COMMAND minicbf2nexus -c zlib + -C "${CBFlib_SOURCE_DIR}/minicbf_test/config" ${HDF5REGISTER} + -o "${CBF__DATA}/minicbf.h5" + ${_minicbf2nexus_files}) +set_tests_properties(minicbf2nexus PROPERTIES + FIXTURES_SETUP minicbf2nexus + REQUIRED_FILES ${_minicbf2nexus_files}) + +add_test(NAME minicbf2nexus-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/minicbf.h5") +set_tests_properties(minicbf2nexus-cleanup PROPERTIES + FIXTURES_CLEANUP minicbf2nexus) + +add_test(NAME minicbf2nexus-orig + COMMAND ${CMAKE_COMMAND} + "-Dinput-file=${data_output}/minicbf_orig.h5" + "-Doutput-file=${CBF__DATA}/minicbf_orig.dump" + -P "${PROJECT_BINARY_DIR}/h5dump-$.cmake") +set_tests_properties(minicbf2nexus-orig PROPERTIES + FIXTURES_SETUP minicbf2nexus-orig + REQUIRED_FILES "${data_output}/minicbf_orig.h5") -# generate the data -add_test(i03-1.h5 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cbf2nexus -c zlib --list -o ${CBF__DATA}/i03-1.h5 "${CBF_DATA_INPUT}/thaumatin_die_M1S5_1_0005_2.cbf") +add_test(NAME minicbf2nexus-orig-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/minicbf_orig.dump") +set_tests_properties(minicbf2nexus-orig-cleanup PROPERTIES + FIXTURES_CLEANUP minicbf2nexus-orig) -add_test(i03-1.cbf ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/nexus2cbf -o ${CBF__DATA}/i03-1.cbf ${CBF__DATA}/i03-1.h5) -set_property(TEST i03-1.cbf APPEND PROPERTY DEPENDS i03-1.h5) +add_test(NAME minicbf2nexus-dump + COMMAND ${CMAKE_COMMAND} + "-Dinput-file=${CBF__DATA}/minicbf.h5" + "-Doutput-file=${CBF__DATA}/minicbf.dump" + -P "${PROJECT_BINARY_DIR}/h5dump-$.cmake") +set_tests_properties(minicbf2nexus-dump PROPERTIES + FIXTURES_REQUIRED minicbf2nexus + FIXTURES_SETUP minicbf2nexus-dump) -add_test(i03-2.h5 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cbf2nexus -c zlib --list -o ${CBF__DATA}/i03-2.h5 ${CBF__DATA}/i03-1.cbf) -set_property(TEST i03-2.h5 APPEND PROPERTY DEPENDS i03-1.cbf) +add_test(NAME minicbf2nexus-dump-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/minicbf.dump") +set_tests_properties(minicbf2nexus-dump-cleanup PROPERTIES + FIXTURES_CLEANUP minicbf2nexus-dump) -add_test(i03-2.cbf ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/nexus2cbf -o ${CBF__DATA}/i03-2.cbf ${CBF__DATA}/i03-2.h5) -set_property(TEST i03-2.cbf APPEND PROPERTY DEPENDS i03-2.h5) +add_test(NAME minicbf2nexus-cmp + COMMAND ${CMAKE_COMMAND} -E compare_files + "${CBF__DATA}/minicbf_orig.dump" + "${CBF__DATA}/minicbf.dump") +set_tests_properties(minicbf2nexus-cmp PROPERTIES + FIXTURES_REQUIRED "minicbf2nexus-orig;minicbf2nexus-dump") -# compare the cbf files from i03 data -add_test(cmp-i03-1.cbf-i03-2.cbf ${CMAKE_COMMAND} -E compare_files ${CBF__DATA}/i03-1.cbf ${CBF__DATA}/i03-2.cbf) -set_property(TEST cmp-i03-1.cbf-i03-2.cbf APPEND PROPERTY DEPENDS i03-1.cbf) -set_property(TEST cmp-i03-1.cbf-i03-2.cbf APPEND PROPERTY DEPENDS i03-2.cbf) -# dump the content of generated hdf5 files & use 'cbf_tail' to strip off some file names -add_test(NAME i03-1.dump +# +# cbf2nexus/nexus2cbf +# +# Roundtrip cbf2nexus and nexus2cbf using i19 data. Dump the content +# of generated HDF5 files and use cbf_tail to strip off some file +# names. +add_test(NAME cbf2nexus-1 + COMMAND cbf2nexus -c zlib --list + -o "${CBF__DATA}/i19-1.h5" + "${data_input}/1191_00005.cbf") +set_tests_properties(cbf2nexus-1 PROPERTIES + FIXTURES_SETUP cbf2nexus-1 + REQUIRED_FILES "${data_input}/1191_00005.cbf") + +add_test(NAME cbf2nexus-1-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/i19-1.h5") +set_tests_properties(cbf2nexus-1-cleanup PROPERTIES + FIXTURES_CLEANUP cbf2nexus-1) + +add_test(NAME nexus2cbf-1 + COMMAND nexus2cbf + -o "${CBF__DATA}/i19-1.cbf" + "${CBF__DATA}/i19-1.h5") +set_tests_properties(nexus2cbf-1 PROPERTIES + FIXTURES_REQUIRED cbf2nexus-1 + FIXTURES_SETUP nexus2cbf-1) + +add_test(NAME nexus2cbf-1-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/i19-1.cbf") +set_tests_properties(nexus2cbf-1-cleanup PROPERTIES + FIXTURES_CLEANUP nexus2cbf-1) + +add_test(NAME cbf2nexus-2 + COMMAND cbf2nexus -c zlib --list + -o "${CBF__DATA}/i19-2.h5" + "${CBF__DATA}/i19-1.cbf") +set_tests_properties(cbf2nexus-2 PROPERTIES + FIXTURES_REQUIRED nexus2cbf-1 + FIXTURES_SETUP cbf2nexus-2) + +add_test(NAME cbf2nexus-2-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/i19-2.h5") +set_tests_properties(cbf2nexus-2-cleanup PROPERTIES + FIXTURES_CLEANUP cbf2nexus-2) + +add_test(NAME nexus2cbf-2 + COMMAND nexus2cbf + -o "${CBF__DATA}/i19-2.cbf" + "${CBF__DATA}/i19-2.h5") +set_tests_properties(nexus2cbf-2 PROPERTIES + FIXTURES_REQUIRED cbf2nexus-2 + FIXTURES_SETUP nexus2cbf-2) + +add_test(NAME nexus2cbf-2-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/i19-2.cbf") +set_tests_properties(nexus2cbf-2-cleanup PROPERTIES + FIXTURES_CLEANUP nexus2cbf-2) + +add_test(NAME nexus2cbf-cmp + COMMAND ${CMAKE_COMMAND} -E compare_files + "${CBF__DATA}/i19-1.cbf" + "${CBF__DATA}/i19-2.cbf") +set_tests_properties(nexus2cbf-cmp PROPERTIES + FIXTURES_REQUIRED "nexus2cbf-1;nexus2cbf-2") + +add_test(NAME h5dump-1 COMMAND ${CMAKE_COMMAND} - "-Dinput-file=${CBF__DATA}/i03-1.h5" - "-Doutput-file=${CBF__DATA}/i03-1.dump" + "-Dinput-file=${CBF__DATA}/i19-1.h5" + "-Doutput-file=${CBF__DATA}/i19-1.dump" -P "${PROJECT_BINARY_DIR}/h5dump-$.cmake") -set_property(TEST i03-1.dump APPEND PROPERTY DEPENDS i03-1.h5) -add_test(NAME i03-2.dump +set_tests_properties(h5dump-1 PROPERTIES + FIXTURES_REQUIRED cbf2nexus-1 + FIXTURES_SETUP h5dump-1) + +add_test(NAME h5dump-1-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/i19-1.dump") +set_tests_properties(h5dump-1-cleanup PROPERTIES + FIXTURES_CLEANUP h5dump-1) + +add_test(NAME h5dump-2 COMMAND ${CMAKE_COMMAND} - "-Dinput-file=${CBF__DATA}/i03-2.h5" - "-Doutput-file=${CBF__DATA}/i03-2.dump" + "-Dinput-file=${CBF__DATA}/i19-2.h5" + "-Doutput-file=${CBF__DATA}/i19-2.dump" -P "${PROJECT_BINARY_DIR}/h5dump-$.cmake") -set_property(TEST i03-2.dump APPEND PROPERTY DEPENDS i03-2.h5) +set_tests_properties(h5dump-2 PROPERTIES + FIXTURES_REQUIRED cbf2nexus-2 + FIXTURES_SETUP h5dump-2) + +add_test(NAME h5dump-2-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/i19-2.dump") +set_tests_properties(h5dump-2-cleanup PROPERTIES + FIXTURES_CLEANUP h5dump-2) -# compare dumped hdf5 file content -add_test(cmp-i03-1.dump-i03-2.dump ${CMAKE_COMMAND} -E compare_files ${CBF__DATA}/i03-1.dump ${CBF__DATA}/i03-2.dump) -set_property(TEST cmp-i03-1.dump-i03-2.dump APPEND PROPERTY DEPENDS i03-1.dump) -set_property(TEST cmp-i03-1.dump-i03-2.dump APPEND PROPERTY DEPENDS i03-2.dump) +add_test(NAME h5dump-cmp + COMMAND ${CMAKE_COMMAND} -E compare_files + "${CBF__DATA}/i19-1.dump" + "${CBF__DATA}/i19-2.dump") +set_tests_properties(h5dump-cmp PROPERTIES + FIXTURES_REQUIRED "h5dump-1;h5dump-2") + +# +# dectristests +# +# cbf_template_t reads cbf_6M_template.cbf and writes +# cbf_template_t.out, both in the current working directory. +add_test(NAME dectris-setup + COMMAND ${CMAKE_COMMAND} -E copy + "${CBFlib_SOURCE_DIR}/templates/cbf_6M_template.cbf" + "${CBF__DATA}/cbf_6M_template.cbf") +set_tests_properties(dectris-setup PROPERTIES + REQUIRED_FILES "${CBFlib_SOURCE_DIR}/templates/cbf_6M_template.cbf" + FIXTURES_SETUP dectris-setup) + +add_test(NAME dectris-setup-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/cbf_6M_template.cbf") +set_tests_properties(dectris-setup-cleanup PROPERTIES + FIXTURES_CLEANUP dectris-setup) + +add_test(NAME dectris + COMMAND cbf_template_t + WORKING_DIRECTORY "${CBF__DATA}") +set_tests_properties(dectris PROPERTIES + FIXTURES_REQUIRED dectris-setup + FIXTURES_SETUP dectris) + +add_test(NAME dectris-cleanup + COMMAND ${CMAKE_COMMAND} -E rm "${CBF__DATA}/cbf_template_t.out") +set_tests_properties(dectris-cleanup PROPERTIES + FIXTURES_CLEANUP dectris) + +add_test(NAME dectris-cmp + COMMAND ${CMAKE_COMMAND} -E compare_files + "${CBFlib_SOURCE_DIR}/templates/cbf_test_orig.out" + "${CBF__DATA}/cbf_template_t.out") +set_tests_properties(dectris-cmp PROPERTIES + FIXTURES_REQUIRED dectris + REQUIRED_FILES "${CBFlib_SOURCE_DIR}/templates/cbf_test_orig.out") diff --git a/examples/batch_convert_minicbf.cmake b/examples/batch_convert_minicbf.cmake new file mode 100644 index 00000000..c8243bed --- /dev/null +++ b/examples/batch_convert_minicbf.cmake @@ -0,0 +1,77 @@ +function(usage) + message("usage:") + message(" CBF_CONVERT_MINICBF_PATH=\"path_to_convert_minicbf_directory\"") + message(" export CBF_CONVERT_MINICBF_PATH") + message(" cmake -P batch_convert_minicbf.cbf [input_directory [output_directory\\") + message(" [name_template [cbf_template]]]]") +endfunction() + +foreach(n RANGE ${CMAKE_ARGC}) + if("${CMAKE_ARGV${n}}" STREQUAL "--") + set(m "0") + elseif(m GREATER_EQUAL "0") + math(EXPR m "${m} + 1") + set(argv${m} "${CMAKE_ARGV${n}}") + endif() +endforeach() + +set(program "convert_minicbf") +if(argv1 STREQUAL "--help") + usage() +elseif(argv1 STREQUAL "-h") + usage() +else() + if(CBF_CONVERT_MINICBF_PATH) + set(program "${CBF_CONVERT_MINICBF_PATH}/convert_minicbf") + endif() + + if(argv1) + set(input_directory "${argv1}") + else() + set(input_directory ".") + endif() + + if(argv2) + set(output_directory "${argv2}") + else() + set(output_directory "./full_cbf") + endif() + + if(argv3) + set(name_template "${argv3}") + else() + set(name_template "*.cbf") + endif() + + if(argv4) + set(cbf_template "-p;${argv4}") + else() + set(cbf_template "${argv4}") + endif() + + message("program: ${program}") + message("input_directory: ${input_directory}") + message("output_directory: ${output_directory}") + message("name_template: ${name_template}") + message("cbf_template: ${cbf_template}") + + if(input_directory STREQUAL output_directory) + message(FATAL_ERROR "The input directory will be clobbered, run aborted.") + endif() + + message("processing files") + file(GLOB files "${input_directory}/${name_template}") + foreach(name ${files}) + get_filename_component(output_name "${name}" NAME) + message("${program} -i ${name} -o ${output_directory}/${output_name} ${cbf_template}") + + execute_process( + COMMAND ${program} -i ${name} -o ${output_directory}/${output_name} ${cbf_template} + ERROR_VARIABLE error + RESULT_VARIABLE result) + if (result) + message(FATAL_ERROR "${program}: ${error}") + endif() + endforeach() + message("completed") +endif() diff --git a/examples/testcell.cmake b/examples/testcell.cmake deleted file mode 100644 index b5ac9684..00000000 --- a/examples/testcell.cmake +++ /dev/null @@ -1,247 +0,0 @@ -###################################################################### -# # -# YOU MAY REDISTRIBUTE THE CBFLIB PACKAGE UNDER THE TERMS OF THE GPL # -# # -# ALTERNATIVELY YOU MAY REDISTRIBUTE THE CBFLIB API UNDER THE TERMS # -# OF THE LGPL # -# # -###################################################################### - -########################### GPL NOTICES ############################## -# # -# This program is free software; you can redistribute it and/or # -# modify it under the terms of the GNU General Public License as # -# published by the Free Software Foundation; either version 2 of # -# (the License, or (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA # -# 02111-1307 USA # -# # -###################################################################### - -######################### LGPL NOTICES ############################### -# # -# This library is free software; you can redistribute it and/or # -# modify it under the terms of the GNU Lesser General Public # -# License as published by the Free Software Foundation; either # -# version 2.1 of the License, or (at your option) any later version. # -# # -# This library is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # -# Lesser General Public License for more details. # -# # -# You should have received a copy of the GNU Lesser General Public # -# License along with this library; if not, write to the Free # -# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, # -# MA 02110-1301 USA # -# # -###################################################################### - -###################################################################### -# # -# Stanford University Notices # -# for the CBFlib software package that incorporates SLAC software # -# on which copyright is disclaimed # -# # -# This software # -# ------------- # -# The term "this software", as used in these Notices, refers to # -# those portions of the software package CBFlib that were created by # -# employees of the Stanford Linear Accelerator Center, Stanford # -# University. # -# # -# Stanford disclaimer of copyright # -# -------------------------------- # -# Stanford University, owner of the copyright, hereby disclaims its # -# copyright and all other rights in this software. Hence, anyone # -# may freely use it for any purpose without restriction. # -# # -# Acknowledgement of sponsorship # -# ------------------------------ # -# This software was produced by the Stanford Linear Accelerator # -# Center, Stanford University, under Contract DE-AC03-76SFO0515 with # -# the Department of Energy. # -# # -# Government disclaimer of liability # -# ---------------------------------- # -# Neither the United States nor the United States Department of # -# Energy, nor any of their employees, makes any warranty, express or # -# implied, or assumes any legal liability or responsibility for the # -# accuracy, completeness, or usefulness of any data, apparatus, # -# product, or process disclosed, or represents that its use would # -# not infringe privately owned rights. # -# # -# Stanford disclaimer of liability # -# -------------------------------- # -# Stanford University makes no representations or warranties, # -# express or implied, nor assumes any liability for the use of this # -# software. # -# # -# Maintenance of notices # -# ---------------------- # -# In the interest of clarity regarding the origin and status of this # -# software, this and all the preceding Stanford University notices # -# are to remain affixed to any copy or derivative of this software # -# made or distributed by the recipient and are to be affixed to any # -# copy of software made or distributed by the recipient that # -# contains a copy or derivative of this software. # -# # -# Based on SLAC Software Notices, Set 4 # -# OTT.002a, 2004 FEB 03 # -###################################################################### - -###################################################################### -# NOTICE # -# Creative endeavors depend on the lively exchange of ideas. There # -# are laws and customs which establish rights and responsibilities # -# for authors and the users of what authors create. This notice # -# is not intended to prevent you from using the software and # -# documents in this package, but to ensure that there are no # -# misunderstandings about terms and conditions of such use. # -# # -# Please read the following notice carefully. If you do not # -# understand any portion of this notice, please seek appropriate # -# professional legal advice before making use of the software and # -# documents included in this software package. In addition to # -# whatever other steps you may be obliged to take to respect the # -# intellectual property rights of the various parties involved, if # -# you do make use of the software and documents in this package, # -# please give credit where credit is due by citing this package, # -# its authors and the URL or other source from which you obtained # -# it, or equivalent primary references in the literature with the # -# same authors. # -# # -# Some of the software and documents included within this software # -# package are the intellectual property of various parties, and # -# placement in this package does not in any way imply that any # -# such rights have in any way been waived or diminished. # -# # -# With respect to any software or documents for which a copyright # -# exists, ALL RIGHTS ARE RESERVED TO THE OWNERS OF SUCH COPYRIGHT. # -# # -# Even though the authors of the various documents and software # -# found here have made a good faith effort to ensure that the # -# documents are correct and that the software performs according # -# to its documentation, and we would greatly appreciate hearing of # -# any problems you may encounter, the programs and documents any # -# files created by the programs are provided **AS IS** without any * -# warranty as to correctness, merchantability or fitness for any # -# particular or general use. # -# # -# THE RESPONSIBILITY FOR ANY ADVERSE CONSEQUENCES FROM THE USE OF # -# PROGRAMS OR DOCUMENTS OR ANY FILE OR FILES CREATED BY USE OF THE # -# PROGRAMS OR DOCUMENTS LIES SOLELY WITH THE USERS OF THE PROGRAMS # -# OR DOCUMENTS OR FILE OR FILES AND NOT WITH AUTHORS OF THE # -# PROGRAMS OR DOCUMENTS. # -###################################################################### - -###################################################################### -# # -# The IUCr Policy # -# for the Protection and the Promotion of the STAR File and # -# CIF Standards for Exchanging and Archiving Electronic Data # -# # -# Overview # -# # -# The Crystallographic Information File (CIF)[1] is a standard for # -# information interchange promulgated by the International Union of # -# Crystallography (IUCr). CIF (Hall, Allen & Brown, 1991) is the # -# recommended method for submitting publications to Acta # -# Crystallographica Section C and reports of crystal structure # -# determinations to other sections of Acta Crystallographica # -# and many other journals. The syntax of a CIF is a subset of the # -# more general STAR File[2] format. The CIF and STAR File approaches # -# are used increasingly in the structural sciences for data exchange # -# and archiving, and are having a significant influence on these # -# activities in other fields. # -# # -# Statement of intent # -# # -# The IUCr's interest in the STAR File is as a general data # -# interchange standard for science, and its interest in the CIF, # -# a conformant derivative of the STAR File, is as a concise data # -# exchange and archival standard for crystallography and structural # -# science. # -# # -# Protection of the standards # -# # -# To protect the STAR File and the CIF as standards for # -# interchanging and archiving electronic data, the IUCr, on behalf # -# of the scientific community, # -# # -# # holds the copyrights on the standards themselves, * -# # -# # owns the associated trademarks and service marks, and * -# # -# # holds a patent on the STAR File. * -# # -# These intellectual property rights relate solely to the # -# interchange formats, not to the data contained therein, nor to # -# the software used in the generation, access or manipulation of # -# the data. # -# # -# Promotion of the standards # -# # -# The sole requirement that the IUCr, in its protective role, # -# imposes on software purporting to process STAR File or CIF data # -# is that the following conditions be met prior to sale or # -# distribution. # -# # -# # Software claiming to read files written to either the STAR * -# File or the CIF standard must be able to extract the pertinent # -# data from a file conformant to the STAR File syntax, or the CIF # -# syntax, respectively. # -# # -# # Software claiming to write files in either the STAR File, or * -# the CIF, standard must produce files that are conformant to the # -# STAR File syntax, or the CIF syntax, respectively. # -# # -# # Software claiming to read definitions from a specific data * -# dictionary approved by the IUCr must be able to extract any # -# pertinent definition which is conformant to the dictionary # -# definition language (DDL)[3] associated with that dictionary. # -# # -# The IUCr, through its Committee on CIF Standards, will assist # -# any developer to verify that software meets these conformance # -# conditions. # -# # -# Glossary of terms # -# # -# [1] CIF: is a data file conformant to the file syntax defined # -# at http://www.iucr.org/iucr-top/cif/spec/index.html # -# # -# [2] STAR File: is a data file conformant to the file syntax # -# defined at http://www.iucr.org/iucr-top/cif/spec/star/index.html # -# # -# [3] DDL: is a language used in a data dictionary to define data # -# items in terms of "attributes". Dictionaries currently approved # -# by the IUCr, and the DDL versions used to construct these # -# dictionaries, are listed at # -# http://www.iucr.org/iucr-top/cif/spec/ddl/index.html # -# # -# Last modified: 30 September 2000 # -# # -# IUCr Policy Copyright (C) 2000 International Union of # -# Crystallography # -###################################################################### - -# $(BIN)/testcell < testcell.dat > testcell.prt - -message(STATUS "Running 'testcell'...") -execute_process( - COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/testcell - INPUT_FILE ${CBFlib_SOURCE_DIR}/testcell.dat - OUTPUT_FILE ${CBF__DATA}/testcell.prt - RESULT_VARIABLE result -) -if (result) - message(FATAL_ERROR "failed") -endif () diff --git a/patches/cbflib-data-input-0.9.8.patch b/patches/cbflib-data-input-0.9.8.patch new file mode 100644 index 00000000..15b88084 --- /dev/null +++ b/patches/cbflib-data-input-0.9.8.patch @@ -0,0 +1,37 @@ +--- a/9ins.cif ++++ b/9ins.cif +@@ -1,5 +1,5 @@ +-###CBF: VERSION 1.7.10 +-# CIF file written by CBFlib v0.9.5 ++###CBF: VERSION 1.7.11 ++# CIF file written by CBFlib v0.9.8 + + data_9INS + +--- a/testflatin.cbf ++++ b/testflatin.cbf +@@ -1,5 +1,5 @@ + ###CBF: VERSION 1.7.11 +-# CBF file written by CBFlib v0.9.6 ++# CBF file written by CBFlib v0.9.8 + + data_testflat + +--- a/testflatpackedin.cbf ++++ b/testflatpackedin.cbf +@@ -1,5 +1,5 @@ + ###CBF: VERSION 1.7.11 +-# CBF file written by CBFlib v0.9.6 ++# CBF file written by CBFlib v0.9.8 + + data_testflat + +--- a/testrealin.cbf ++++ b/testrealin.cbf +@@ -1,5 +1,5 @@ + ###CBF: VERSION 1.7.11 +-# CBF file written by CBFlib v0.9.6 ++# CBF file written by CBFlib v0.9.8 + + data_testreals + diff --git a/patches/cbflib-data-output-0.9.8.patch b/patches/cbflib-data-output-0.9.8.patch index cd5f0735..0ccd6947 100644 --- a/patches/cbflib-data-output-0.9.8.patch +++ b/patches/cbflib-data-output-0.9.8.patch @@ -1,9 +1,64 @@ ---- a/XRD1621_orig.cbf -+++ b/XRD1621_orig.cbf +--- a/adscconverted_flat_orig.cbf ++++ b/adscconverted_flat_orig.cbf @@ -1,5 +1,5 @@ ###CBF: VERSION 1.7.11 -# CBF file written by CBFlib v0.9.6 -+# CBF file written by CBFlib v0.9.7 ++# CBF file written by CBFlib v0.9.8 + + data_image_1 + +--- a/adscconverted_orig.cbf ++++ b/adscconverted_orig.cbf +@@ -1,5 +1,5 @@ + ###CBF: VERSION 1.7.11 +-# CBF file written by CBFlib v0.9.6 ++# CBF file written by CBFlib v0.9.8 + + data_image_1 + +--- a/converted_flat_orig.cbf ++++ b/converted_flat_orig.cbf +@@ -1,5 +1,5 @@ + ###CBF: VERSION 1.7.11 +-# CBF file written by CBFlib v0.9.6 ++# CBF file written by CBFlib v0.9.8 + + data_image_1 + +--- a/converted_orig.cbf ++++ b/converted_orig.cbf +@@ -1,5 +1,5 @@ + ###CBF: VERSION 1.7.11 +-# CBF file written by CBFlib v0.9.6 ++# CBF file written by CBFlib v0.9.8 + + data_image_1 + +--- a/insulin_pilatus6mconverted_orig.cbf ++++ b/insulin_pilatus6mconverted_orig.cbf +@@ -1,5 +1,5 @@ +-###CBF: VERSION 1.7.6 +-# CBF file written by CBFlib v0.9.3 ++###CBF: VERSION 1.7.11 ++# CBF file written by CBFlib v0.9.8 + + data_image_1 + +--- a/insulin_pilatus6mconverted_v2_orig.cbf ++++ b/insulin_pilatus6mconverted_v2_orig.cbf +@@ -1,5 +1,5 @@ + ###CBF: VERSION 1.7.11 +-# CBF file written by CBFlib v0.9.6 ++# CBF file written by CBFlib v0.9.8 + + data_image_1 + +--- a/mb_LP_1_001_orig.cbf ++++ b/mb_LP_1_001_orig.cbf +@@ -1,5 +1,5 @@ + ###CBF: VERSION 1.7.11 +-# CBF file written by CBFlib v0.9.6 ++# CBF file written by CBFlib v0.9.8 data_image_1 diff --git a/redirect.cmake b/redirect.cmake new file mode 100644 index 00000000..cd43f655 --- /dev/null +++ b/redirect.cmake @@ -0,0 +1,29 @@ +if(input) + if(input-file) + message(FATAL_ERROR "Both input and input-file") + endif() + execute_process( + COMMAND ${CMAKE_ARGV0} -E echo ${input} + COMMAND ${command} + OUTPUT_FILE ${output-file} + RESULTS_VARIABLE results + ERROR_VARIABLE error) +elseif(input-file) + execute_process( + COMMAND ${CMAKE_ARGV0} -E cat ${input-file} + COMMAND ${command} + OUTPUT_FILE ${output-file} + RESULTS_VARIABLE results + ERROR_VARIABLE error) +else() + execute_process( + COMMAND ${command} + OUTPUT_FILE ${output-file} + RESULTS_VARIABLE results + ERROR_VARIABLE error) +endif() +foreach(result IN LISTS results) + if(result) + message(FATAL_ERROR "${command}: ${error}") + endif () +endforeach()