diff --git a/CMakeLists.txt b/CMakeLists.txt index 2925e3f8..0419a48b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,6 +19,9 @@ set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) +option(NOTEST "Disable all tests" OFF) +option(BUILD_ACQUIRE_DRIVER_ZARR "Build the Acquire Zarr driver" ON) + add_subdirectory(src) add_subdirectory(tests) add_subdirectory(examples) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9e6668d6..31635d84 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,57 +1,3 @@ -if (NOT TARGET acquire-core-logger) - add_subdirectory(../acquire-common/acquire-core-libs ${CMAKE_CURRENT_BINARY_DIR}/acquire-core-libs) +if (BUILD_ACQUIRE_DRIVER_ZARR) + add_subdirectory(driver) endif () - -set(tgt acquire-driver-zarr) -add_library(${tgt} MODULE - common/dimension.hh - common/dimension.cpp - common/thread.pool.hh - common/thread.pool.cpp - common/s3.connection.hh - common/s3.connection.cpp - common/utilities.hh - common/utilities.cpp - writers/sink.hh - writers/sink.creator.hh - writers/sink.creator.cpp - writers/file.sink.hh - writers/file.sink.cpp - writers/s3.sink.hh - writers/s3.sink.cpp - writers/array.writer.hh - writers/array.writer.cpp - writers/zarrv2.array.writer.hh - writers/zarrv2.array.writer.cpp - writers/zarrv3.array.writer.hh - writers/zarrv3.array.writer.cpp - writers/blosc.compressor.hh - writers/blosc.compressor.cpp - zarr.hh - zarr.cpp - zarr.v2.hh - zarr.v2.cpp - zarr.v3.hh - zarr.v3.cpp - zarr.driver.c -) - -target_include_directories(${tgt} PRIVATE - $ -) - -target_enable_simd(${tgt}) -target_link_libraries(${tgt} PRIVATE - acquire-core-logger - acquire-core-platform - acquire-device-kit - acquire-device-properties - blosc_static - nlohmann_json::nlohmann_json - miniocpp::miniocpp -) -set_target_properties(${tgt} PROPERTIES - MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>" -) - -install(TARGETS ${tgt} LIBRARY DESTINATION lib) diff --git a/src/driver/CMakeLists.txt b/src/driver/CMakeLists.txt new file mode 100644 index 00000000..5b72798a --- /dev/null +++ b/src/driver/CMakeLists.txt @@ -0,0 +1,57 @@ +if (NOT TARGET acquire-core-logger) + add_subdirectory(${CMAKE_SOURCE_DIR}/acquire-common/acquire-core-libs ${CMAKE_CURRENT_BINARY_DIR}/acquire-core-libs) +endif () + +set(tgt acquire-driver-zarr) +add_library(${tgt} MODULE + common/dimension.hh + common/dimension.cpp + common/thread.pool.hh + common/thread.pool.cpp + common/s3.connection.hh + common/s3.connection.cpp + common/utilities.hh + common/utilities.cpp + writers/sink.hh + writers/sink.creator.hh + writers/sink.creator.cpp + writers/file.sink.hh + writers/file.sink.cpp + writers/s3.sink.hh + writers/s3.sink.cpp + writers/array.writer.hh + writers/array.writer.cpp + writers/zarrv2.array.writer.hh + writers/zarrv2.array.writer.cpp + writers/zarrv3.array.writer.hh + writers/zarrv3.array.writer.cpp + writers/blosc.compressor.hh + writers/blosc.compressor.cpp + zarr.hh + zarr.cpp + zarr.v2.hh + zarr.v2.cpp + zarr.v3.hh + zarr.v3.cpp + zarr.driver.c +) + +target_include_directories(${tgt} PRIVATE + $ +) + +target_enable_simd(${tgt}) +target_link_libraries(${tgt} PRIVATE + acquire-core-logger + acquire-core-platform + acquire-device-kit + acquire-device-properties + blosc_static + nlohmann_json::nlohmann_json + miniocpp::miniocpp +) +set_target_properties(${tgt} PROPERTIES + MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>" +) + +install(TARGETS ${tgt} LIBRARY DESTINATION lib) \ No newline at end of file diff --git a/src/README.md b/src/driver/README.md similarity index 100% rename from src/README.md rename to src/driver/README.md diff --git a/src/common/dimension.cpp b/src/driver/common/dimension.cpp similarity index 100% rename from src/common/dimension.cpp rename to src/driver/common/dimension.cpp diff --git a/src/common/dimension.hh b/src/driver/common/dimension.hh similarity index 100% rename from src/common/dimension.hh rename to src/driver/common/dimension.hh diff --git a/src/common/macros.hh b/src/driver/common/macros.hh similarity index 100% rename from src/common/macros.hh rename to src/driver/common/macros.hh diff --git a/src/common/s3.connection.cpp b/src/driver/common/s3.connection.cpp similarity index 100% rename from src/common/s3.connection.cpp rename to src/driver/common/s3.connection.cpp diff --git a/src/common/s3.connection.hh b/src/driver/common/s3.connection.hh similarity index 100% rename from src/common/s3.connection.hh rename to src/driver/common/s3.connection.hh diff --git a/src/common/thread.pool.cpp b/src/driver/common/thread.pool.cpp similarity index 100% rename from src/common/thread.pool.cpp rename to src/driver/common/thread.pool.cpp diff --git a/src/common/thread.pool.hh b/src/driver/common/thread.pool.hh similarity index 100% rename from src/common/thread.pool.hh rename to src/driver/common/thread.pool.hh diff --git a/src/common/utilities.cpp b/src/driver/common/utilities.cpp similarity index 100% rename from src/common/utilities.cpp rename to src/driver/common/utilities.cpp diff --git a/src/common/utilities.hh b/src/driver/common/utilities.hh similarity index 100% rename from src/common/utilities.hh rename to src/driver/common/utilities.hh diff --git a/src/writers/array.writer.cpp b/src/driver/writers/array.writer.cpp similarity index 100% rename from src/writers/array.writer.cpp rename to src/driver/writers/array.writer.cpp diff --git a/src/writers/array.writer.hh b/src/driver/writers/array.writer.hh similarity index 100% rename from src/writers/array.writer.hh rename to src/driver/writers/array.writer.hh diff --git a/src/writers/blosc.compressor.cpp b/src/driver/writers/blosc.compressor.cpp similarity index 100% rename from src/writers/blosc.compressor.cpp rename to src/driver/writers/blosc.compressor.cpp diff --git a/src/writers/blosc.compressor.hh b/src/driver/writers/blosc.compressor.hh similarity index 100% rename from src/writers/blosc.compressor.hh rename to src/driver/writers/blosc.compressor.hh diff --git a/src/writers/file.sink.cpp b/src/driver/writers/file.sink.cpp similarity index 100% rename from src/writers/file.sink.cpp rename to src/driver/writers/file.sink.cpp diff --git a/src/writers/file.sink.hh b/src/driver/writers/file.sink.hh similarity index 100% rename from src/writers/file.sink.hh rename to src/driver/writers/file.sink.hh diff --git a/src/writers/s3.sink.cpp b/src/driver/writers/s3.sink.cpp similarity index 100% rename from src/writers/s3.sink.cpp rename to src/driver/writers/s3.sink.cpp diff --git a/src/writers/s3.sink.hh b/src/driver/writers/s3.sink.hh similarity index 100% rename from src/writers/s3.sink.hh rename to src/driver/writers/s3.sink.hh diff --git a/src/writers/sink.creator.cpp b/src/driver/writers/sink.creator.cpp similarity index 100% rename from src/writers/sink.creator.cpp rename to src/driver/writers/sink.creator.cpp diff --git a/src/writers/sink.creator.hh b/src/driver/writers/sink.creator.hh similarity index 100% rename from src/writers/sink.creator.hh rename to src/driver/writers/sink.creator.hh diff --git a/src/writers/sink.hh b/src/driver/writers/sink.hh similarity index 100% rename from src/writers/sink.hh rename to src/driver/writers/sink.hh diff --git a/src/writers/zarrv2.array.writer.cpp b/src/driver/writers/zarrv2.array.writer.cpp similarity index 100% rename from src/writers/zarrv2.array.writer.cpp rename to src/driver/writers/zarrv2.array.writer.cpp diff --git a/src/writers/zarrv2.array.writer.hh b/src/driver/writers/zarrv2.array.writer.hh similarity index 100% rename from src/writers/zarrv2.array.writer.hh rename to src/driver/writers/zarrv2.array.writer.hh diff --git a/src/writers/zarrv3.array.writer.cpp b/src/driver/writers/zarrv3.array.writer.cpp similarity index 100% rename from src/writers/zarrv3.array.writer.cpp rename to src/driver/writers/zarrv3.array.writer.cpp diff --git a/src/writers/zarrv3.array.writer.hh b/src/driver/writers/zarrv3.array.writer.hh similarity index 100% rename from src/writers/zarrv3.array.writer.hh rename to src/driver/writers/zarrv3.array.writer.hh diff --git a/src/zarr.cpp b/src/driver/zarr.cpp similarity index 100% rename from src/zarr.cpp rename to src/driver/zarr.cpp diff --git a/src/zarr.driver.c b/src/driver/zarr.driver.c similarity index 100% rename from src/zarr.driver.c rename to src/driver/zarr.driver.c diff --git a/src/zarr.hh b/src/driver/zarr.hh similarity index 100% rename from src/zarr.hh rename to src/driver/zarr.hh diff --git a/src/zarr.v2.cpp b/src/driver/zarr.v2.cpp similarity index 100% rename from src/zarr.v2.cpp rename to src/driver/zarr.v2.cpp diff --git a/src/zarr.v2.hh b/src/driver/zarr.v2.hh similarity index 100% rename from src/zarr.v2.hh rename to src/driver/zarr.v2.hh diff --git a/src/zarr.v3.cpp b/src/driver/zarr.v3.cpp similarity index 100% rename from src/zarr.v3.cpp rename to src/driver/zarr.v3.cpp diff --git a/src/zarr.v3.hh b/src/driver/zarr.v3.hh similarity index 100% rename from src/zarr.v3.hh rename to src/driver/zarr.v3.hh diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index cc4c2f4b..d10a9f44 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,90 +1,7 @@ if (${NOTEST}) message(STATUS "Skipping test targets") else () - set(NOTEST "TRUE") - add_subdirectory(../acquire-common/acquire-driver-common ${CMAKE_CURRENT_BINARY_DIR}/acquire-driver-common) - add_subdirectory(../acquire-common/acquire-video-runtime ${CMAKE_CURRENT_BINARY_DIR}/acquire-video-runtime) - set(NOTEST "FALSE") - - # - # PARAMETERS - # - set(project acquire-driver-zarr) # CMAKE_PROJECT_NAME gets overridden if this is a subtree of another project - - # - # Tests - # - set(tests - list-devices - unit-tests - get - get-meta - get-set-get - external-metadata-with-whitespace-ok - restart-stopped-zarr-resets-threadpool - repeat-start - metadata-dimension-sizes - write-zarr-v2-raw - write-zarr-v2-raw-chunk-size-larger-than-frame-size - write-zarr-v2-raw-with-even-chunking - write-zarr-v2-raw-with-even-chunking-and-rollover - write-zarr-v2-raw-with-ragged-chunking - write-zarr-v2-with-lz4-compression - write-zarr-v2-with-zstd-compression - write-zarr-v2-compressed-with-chunking - write-zarr-v2-compressed-with-chunking-and-rollover - write-zarr-v2-raw-multiscale - write-zarr-v2-raw-multiscale-with-trivial-tile-size - write-zarr-v2-compressed-multiscale - write-zarr-v2-to-s3 - multiscales-metadata - write-zarr-v3-raw - write-zarr-v3-raw-with-ragged-sharding - write-zarr-v3-raw-chunk-exceeds-array - write-zarr-v3-compressed - write-zarr-v3-raw-multiscale - write-zarr-v3-to-s3 - ) - - foreach (name ${tests}) - set(tgt "${project}-${name}") - add_executable(${tgt} ${name}.cpp) - target_compile_definitions(${tgt} PUBLIC "TEST=\"${tgt}\"") - set_target_properties(${tgt} PROPERTIES - MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>" - ) - target_include_directories(${tgt} PRIVATE "${CMAKE_CURRENT_LIST_DIR}/../") - target_link_libraries(${tgt} - acquire-core-logger - acquire-core-platform - acquire-video-runtime - nlohmann_json::nlohmann_json - miniocpp::miniocpp - ) - - add_test(NAME test-${tgt} COMMAND ${tgt}) - set_tests_properties(test-${tgt} PROPERTIES LABELS "anyplatform;acquire-driver-zarr") - endforeach () - - # - # Copy driver to tests - # - list(POP_FRONT tests onename) - - foreach (driver - acquire-driver-common - acquire-driver-zarr - ) - add_custom_target(${project}-copy-${driver}-for-tests - COMMAND ${CMAKE_COMMAND} -E copy - $ - $ - DEPENDS ${driver} - COMMENT "Copying ${driver} to $" - ) - - foreach (name ${tests}) - add_dependencies(${tgt} ${project}-copy-${driver}-for-tests) - endforeach () - endforeach () + if (BUILD_ACQUIRE_DRIVER_ZARR) + add_subdirectory(driver) + endif () endif () diff --git a/tests/driver/CMakeLists.txt b/tests/driver/CMakeLists.txt new file mode 100644 index 00000000..b2ea8266 --- /dev/null +++ b/tests/driver/CMakeLists.txt @@ -0,0 +1,85 @@ +set(NOTEST "TRUE") +add_subdirectory(${CMAKE_SOURCE_DIR}/acquire-common ${CMAKE_CURRENT_BINARY_DIR}/acquire-common) +set(NOTEST "FALSE") + +# +# PARAMETERS +# +set(project acquire-driver-zarr) # CMAKE_PROJECT_NAME gets overridden if this is a subtree of another project + +# +# Tests +# +set(tests + list-devices + unit-tests + get + get-meta + get-set-get + external-metadata-with-whitespace-ok + restart-stopped-zarr-resets-threadpool + repeat-start + metadata-dimension-sizes + write-zarr-v2-raw + write-zarr-v2-raw-chunk-size-larger-than-frame-size + write-zarr-v2-raw-with-even-chunking + write-zarr-v2-raw-with-even-chunking-and-rollover + write-zarr-v2-raw-with-ragged-chunking + write-zarr-v2-with-lz4-compression + write-zarr-v2-with-zstd-compression + write-zarr-v2-compressed-with-chunking + write-zarr-v2-compressed-with-chunking-and-rollover + write-zarr-v2-raw-multiscale + write-zarr-v2-raw-multiscale-with-trivial-tile-size + write-zarr-v2-compressed-multiscale + write-zarr-v2-to-s3 + multiscales-metadata + write-zarr-v3-raw + write-zarr-v3-raw-with-ragged-sharding + write-zarr-v3-raw-chunk-exceeds-array + write-zarr-v3-compressed + write-zarr-v3-raw-multiscale + write-zarr-v3-to-s3 +) + +foreach (name ${tests}) + set(tgt "${project}-${name}") + add_executable(${tgt} ${name}.cpp) + target_compile_definitions(${tgt} PUBLIC "TEST=\"${tgt}\"") + set_target_properties(${tgt} PROPERTIES + MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>" + ) + target_include_directories(${tgt} PRIVATE "${CMAKE_CURRENT_LIST_DIR}/../") + target_link_libraries(${tgt} + acquire-core-logger + acquire-core-platform + acquire-video-runtime + nlohmann_json::nlohmann_json + miniocpp::miniocpp + ) + + add_test(NAME test-${tgt} COMMAND ${tgt}) + set_tests_properties(test-${tgt} PROPERTIES LABELS "anyplatform;acquire-driver-zarr") +endforeach () + +# +# Copy driver to tests +# +list(POP_FRONT tests onename) + +foreach (driver + acquire-driver-common + acquire-driver-zarr +) + add_custom_target(${project}-copy-${driver}-for-tests + COMMAND ${CMAKE_COMMAND} -E copy + $ + $ + DEPENDS ${driver} + COMMENT "Copying ${driver} to $" + ) + + foreach (name ${tests}) + add_dependencies(${tgt} ${project}-copy-${driver}-for-tests) + endforeach () +endforeach () \ No newline at end of file diff --git a/tests/README.md b/tests/driver/README.md similarity index 100% rename from tests/README.md rename to tests/driver/README.md diff --git a/tests/external-metadata-with-whitespace-ok.cpp b/tests/driver/external-metadata-with-whitespace-ok.cpp similarity index 100% rename from tests/external-metadata-with-whitespace-ok.cpp rename to tests/driver/external-metadata-with-whitespace-ok.cpp diff --git a/tests/get-meta.cpp b/tests/driver/get-meta.cpp similarity index 100% rename from tests/get-meta.cpp rename to tests/driver/get-meta.cpp diff --git a/tests/get-set-get.cpp b/tests/driver/get-set-get.cpp similarity index 100% rename from tests/get-set-get.cpp rename to tests/driver/get-set-get.cpp diff --git a/tests/get.cpp b/tests/driver/get.cpp similarity index 100% rename from tests/get.cpp rename to tests/driver/get.cpp diff --git a/tests/list-devices.cpp b/tests/driver/list-devices.cpp similarity index 100% rename from tests/list-devices.cpp rename to tests/driver/list-devices.cpp diff --git a/tests/metadata-dimension-sizes.cpp b/tests/driver/metadata-dimension-sizes.cpp similarity index 100% rename from tests/metadata-dimension-sizes.cpp rename to tests/driver/metadata-dimension-sizes.cpp diff --git a/tests/multiscales-metadata.cpp b/tests/driver/multiscales-metadata.cpp similarity index 100% rename from tests/multiscales-metadata.cpp rename to tests/driver/multiscales-metadata.cpp diff --git a/tests/repeat-start.cpp b/tests/driver/repeat-start.cpp similarity index 100% rename from tests/repeat-start.cpp rename to tests/driver/repeat-start.cpp diff --git a/tests/restart-stopped-zarr-resets-threadpool.cpp b/tests/driver/restart-stopped-zarr-resets-threadpool.cpp similarity index 100% rename from tests/restart-stopped-zarr-resets-threadpool.cpp rename to tests/driver/restart-stopped-zarr-resets-threadpool.cpp diff --git a/tests/unit-tests.cpp b/tests/driver/unit-tests.cpp similarity index 100% rename from tests/unit-tests.cpp rename to tests/driver/unit-tests.cpp diff --git a/tests/write-zarr-v2-compressed-multiscale.cpp b/tests/driver/write-zarr-v2-compressed-multiscale.cpp similarity index 100% rename from tests/write-zarr-v2-compressed-multiscale.cpp rename to tests/driver/write-zarr-v2-compressed-multiscale.cpp diff --git a/tests/write-zarr-v2-compressed-with-chunking-and-rollover.cpp b/tests/driver/write-zarr-v2-compressed-with-chunking-and-rollover.cpp similarity index 100% rename from tests/write-zarr-v2-compressed-with-chunking-and-rollover.cpp rename to tests/driver/write-zarr-v2-compressed-with-chunking-and-rollover.cpp diff --git a/tests/write-zarr-v2-compressed-with-chunking.cpp b/tests/driver/write-zarr-v2-compressed-with-chunking.cpp similarity index 100% rename from tests/write-zarr-v2-compressed-with-chunking.cpp rename to tests/driver/write-zarr-v2-compressed-with-chunking.cpp diff --git a/tests/write-zarr-v2-raw-chunk-size-larger-than-frame-size.cpp b/tests/driver/write-zarr-v2-raw-chunk-size-larger-than-frame-size.cpp similarity index 100% rename from tests/write-zarr-v2-raw-chunk-size-larger-than-frame-size.cpp rename to tests/driver/write-zarr-v2-raw-chunk-size-larger-than-frame-size.cpp diff --git a/tests/write-zarr-v2-raw-multiscale-with-trivial-tile-size.cpp b/tests/driver/write-zarr-v2-raw-multiscale-with-trivial-tile-size.cpp similarity index 100% rename from tests/write-zarr-v2-raw-multiscale-with-trivial-tile-size.cpp rename to tests/driver/write-zarr-v2-raw-multiscale-with-trivial-tile-size.cpp diff --git a/tests/write-zarr-v2-raw-multiscale.cpp b/tests/driver/write-zarr-v2-raw-multiscale.cpp similarity index 100% rename from tests/write-zarr-v2-raw-multiscale.cpp rename to tests/driver/write-zarr-v2-raw-multiscale.cpp diff --git a/tests/write-zarr-v2-raw-with-even-chunking-and-rollover.cpp b/tests/driver/write-zarr-v2-raw-with-even-chunking-and-rollover.cpp similarity index 100% rename from tests/write-zarr-v2-raw-with-even-chunking-and-rollover.cpp rename to tests/driver/write-zarr-v2-raw-with-even-chunking-and-rollover.cpp diff --git a/tests/write-zarr-v2-raw-with-even-chunking.cpp b/tests/driver/write-zarr-v2-raw-with-even-chunking.cpp similarity index 100% rename from tests/write-zarr-v2-raw-with-even-chunking.cpp rename to tests/driver/write-zarr-v2-raw-with-even-chunking.cpp diff --git a/tests/write-zarr-v2-raw-with-ragged-chunking.cpp b/tests/driver/write-zarr-v2-raw-with-ragged-chunking.cpp similarity index 100% rename from tests/write-zarr-v2-raw-with-ragged-chunking.cpp rename to tests/driver/write-zarr-v2-raw-with-ragged-chunking.cpp diff --git a/tests/write-zarr-v2-raw.cpp b/tests/driver/write-zarr-v2-raw.cpp similarity index 100% rename from tests/write-zarr-v2-raw.cpp rename to tests/driver/write-zarr-v2-raw.cpp diff --git a/tests/write-zarr-v2-to-s3.cpp b/tests/driver/write-zarr-v2-to-s3.cpp similarity index 100% rename from tests/write-zarr-v2-to-s3.cpp rename to tests/driver/write-zarr-v2-to-s3.cpp diff --git a/tests/write-zarr-v2-with-lz4-compression.cpp b/tests/driver/write-zarr-v2-with-lz4-compression.cpp similarity index 100% rename from tests/write-zarr-v2-with-lz4-compression.cpp rename to tests/driver/write-zarr-v2-with-lz4-compression.cpp diff --git a/tests/write-zarr-v2-with-zstd-compression.cpp b/tests/driver/write-zarr-v2-with-zstd-compression.cpp similarity index 100% rename from tests/write-zarr-v2-with-zstd-compression.cpp rename to tests/driver/write-zarr-v2-with-zstd-compression.cpp diff --git a/tests/write-zarr-v3-compressed.cpp b/tests/driver/write-zarr-v3-compressed.cpp similarity index 100% rename from tests/write-zarr-v3-compressed.cpp rename to tests/driver/write-zarr-v3-compressed.cpp diff --git a/tests/write-zarr-v3-raw-chunk-exceeds-array.cpp b/tests/driver/write-zarr-v3-raw-chunk-exceeds-array.cpp similarity index 100% rename from tests/write-zarr-v3-raw-chunk-exceeds-array.cpp rename to tests/driver/write-zarr-v3-raw-chunk-exceeds-array.cpp diff --git a/tests/write-zarr-v3-raw-multiscale.cpp b/tests/driver/write-zarr-v3-raw-multiscale.cpp similarity index 100% rename from tests/write-zarr-v3-raw-multiscale.cpp rename to tests/driver/write-zarr-v3-raw-multiscale.cpp diff --git a/tests/write-zarr-v3-raw-with-ragged-sharding.cpp b/tests/driver/write-zarr-v3-raw-with-ragged-sharding.cpp similarity index 100% rename from tests/write-zarr-v3-raw-with-ragged-sharding.cpp rename to tests/driver/write-zarr-v3-raw-with-ragged-sharding.cpp diff --git a/tests/write-zarr-v3-raw.cpp b/tests/driver/write-zarr-v3-raw.cpp similarity index 100% rename from tests/write-zarr-v3-raw.cpp rename to tests/driver/write-zarr-v3-raw.cpp diff --git a/tests/write-zarr-v3-to-s3.cpp b/tests/driver/write-zarr-v3-to-s3.cpp similarity index 100% rename from tests/write-zarr-v3-to-s3.cpp rename to tests/driver/write-zarr-v3-to-s3.cpp