diff --git a/CMakeLists.txt b/CMakeLists.txt index 0b78699e8..8007a672e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -48,8 +48,31 @@ if(NOT FYPP) message(FATAL_ERROR "Preprocessor fypp not found! Please install fypp following the instructions in https://fypp.readthedocs.io/en/stable/fypp.html#installing") endif() +# Custom preprocessor flags +if(DEFINED CMAKE_MAXIMUM_RANK) + set(fyppFlags "-DMAXRANK=${CMAKE_MAXIMUM_RANK}") +elseif(f03rank) + set(fyppFlags) +else() + set(fyppFlags "-DVERSION90") +endif() + +list( + APPEND fyppFlags + "-DWITH_QP=$" + "-DWITH_XDP=$" + "-DPROJECT_VERSION_MAJOR=${PROJECT_VERSION_MAJOR}" + "-DPROJECT_VERSION_MINOR=${PROJECT_VERSION_MINOR}" + "-DPROJECT_VERSION_PATCH=${PROJECT_VERSION_PATCH}" +) + add_subdirectory(src) +if(BUILD_TESTING) + enable_testing() + add_subdirectory(test) +endif() + install(EXPORT ${PROJECT_NAME}-targets NAMESPACE ${PROJECT_NAME}:: DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" diff --git a/STYLE_GUIDE.md b/STYLE_GUIDE.md index e9f37379e..70c2ebb8a 100644 --- a/STYLE_GUIDE.md +++ b/STYLE_GUIDE.md @@ -20,9 +20,9 @@ This style guide is a living document and proposed changes may be adopted after * If the interface and implementation is split using submodules the implementation submodule file should have the same name as the interface (parent) module but end in `_implementation` E.g., `string_class.f90` and `string_class_implementation.f90` -* Tests should be added in the `tests` subdirectory and have the same name as the module they are testing with the `test_` prefix +* Tests should be added in the `test` subdirectory and have the same name as the module they are testing with the `test_` prefix added - E.g., `string_class.f90` and `tests/test_string_class.f90` + E.g., `string_class.f90` and `test/test_string_class.f90` ## Indentation & whitespace diff --git a/WORKFLOW.md b/WORKFLOW.md index e9ffe14a3..e85fbf077 100644 --- a/WORKFLOW.md +++ b/WORKFLOW.md @@ -81,8 +81,8 @@ To add tests, the macro ``ADDTEST`` should be used instead of the CMake function ``add_test``, the macro hides creation of the executable target, linking against the main library target and registering the test. The tests themselves are defined as standalone executables in the subdirectories -in ``src/tests``, a new subdirectory with tests has to be registred in -``src/tests/CMakeLists.txt``. +in ``test``, a new subdirectory with tests has to be registered in +``test/CMakeLists.txt``. The source tree should be considered read-only. References to ``PROJECT_SOURCE_DIR`` and ``CMAKE_CURRENT_SOURCE_DIR`` should only be used for accessing source files, diff --git a/ci/fpm-deployment.sh b/ci/fpm-deployment.sh index 8d80c24f6..7f80338c2 100644 --- a/ci/fpm-deployment.sh +++ b/ci/fpm-deployment.sh @@ -47,8 +47,8 @@ find src -maxdepth 1 -iname "*.fypp" \ # Collect stdlib source files find src -maxdepth 1 -iname "*.f90" -exec cp {} "$destdir/src/" \; -find src/tests -name "test_*.f90" -exec cp {} "$destdir/test/" \; -find src/tests -name "*.dat" -exec cp {} "$destdir/" \; +find test -name "test_*.f90" -exec cp {} "$destdir/test/" \; +find test -name "*.dat" -exec cp {} "$destdir/" \; # Include additional files cp "${include[@]}" "$destdir/" diff --git a/doc/specs/stdlib_hash_procedures.md b/doc/specs/stdlib_hash_procedures.md index d01e04b8c..5d2e601a7 100755 --- a/doc/specs/stdlib_hash_procedures.md +++ b/doc/specs/stdlib_hash_procedures.md @@ -1623,7 +1623,7 @@ various hash functions. The other is a comparison of the outputs of the Fortran hash functions, with the outputs of the C and C++ hash procedures that are the inspiration for the Fortran hash functions. -In the `src/test/hash_functions_perf` subdirectory, the Fortran Standard +In the `test/hash_functions_perf` subdirectory, the Fortran Standard Library provides two performance test codes for the hash functions of `stdlib_hash_32bit` and `stdlib_hash_64bit`, `test_32_bit_hash_performance` and @@ -1726,7 +1726,7 @@ severely impact the performance of `nmhash32`, `nmhash32x`, `water_hash`, `pengy_hash`, and `spooky_hash` relative to `fnv_1_hash` and `fnv_1a_hash`. -In the `src/test/hash_functions` subdirectory, the Fortran +In the `test/hash_functions` subdirectory, the Fortran Standard Library contains codes to test the validity of the Fortran codes against the original C and C++ codes. It consists of one executable `test_hash_functions` that diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b79d920e9..0fb95a2d3 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -61,24 +61,6 @@ set(fppFiles ) -# Custom preprocessor flags -if(DEFINED CMAKE_MAXIMUM_RANK) - set(fyppFlags "-DMAXRANK=${CMAKE_MAXIMUM_RANK}") -elseif(f03rank) - set(fyppFlags) -else() - set(fyppFlags "-DVERSION90") -endif() - -list( - APPEND fyppFlags - "-DWITH_QP=$" - "-DWITH_XDP=$" - "-DPROJECT_VERSION_MAJOR=${PROJECT_VERSION_MAJOR}" - "-DPROJECT_VERSION_MINOR=${PROJECT_VERSION_MINOR}" - "-DPROJECT_VERSION_PATCH=${PROJECT_VERSION_PATCH}" -) - fypp_f90("${fyppFlags}" "${fppFiles}" outFiles) set(SRC @@ -134,11 +116,6 @@ else() target_sources(${PROJECT_NAME} PRIVATE f08estop.f90) endif() -if(BUILD_TESTING) - enable_testing() - add_subdirectory(tests) -endif() - install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}-targets RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" diff --git a/src/tests/CMakeLists.txt b/test/CMakeLists.txt similarity index 100% rename from src/tests/CMakeLists.txt rename to test/CMakeLists.txt diff --git a/src/tests/array/CMakeLists.txt b/test/array/CMakeLists.txt similarity index 100% rename from src/tests/array/CMakeLists.txt rename to test/array/CMakeLists.txt diff --git a/src/tests/array/test_logicalloc.f90 b/test/array/test_logicalloc.f90 similarity index 100% rename from src/tests/array/test_logicalloc.f90 rename to test/array/test_logicalloc.f90 diff --git a/src/tests/ascii/CMakeLists.txt b/test/ascii/CMakeLists.txt similarity index 100% rename from src/tests/ascii/CMakeLists.txt rename to test/ascii/CMakeLists.txt diff --git a/src/tests/ascii/test_ascii.f90 b/test/ascii/test_ascii.f90 similarity index 100% rename from src/tests/ascii/test_ascii.f90 rename to test/ascii/test_ascii.f90 diff --git a/src/tests/bitsets/CMakeLists.txt b/test/bitsets/CMakeLists.txt similarity index 100% rename from src/tests/bitsets/CMakeLists.txt rename to test/bitsets/CMakeLists.txt diff --git a/src/tests/bitsets/test_stdlib_bitset_64.f90 b/test/bitsets/test_stdlib_bitset_64.f90 similarity index 100% rename from src/tests/bitsets/test_stdlib_bitset_64.f90 rename to test/bitsets/test_stdlib_bitset_64.f90 diff --git a/src/tests/bitsets/test_stdlib_bitset_large.f90 b/test/bitsets/test_stdlib_bitset_large.f90 similarity index 100% rename from src/tests/bitsets/test_stdlib_bitset_large.f90 rename to test/bitsets/test_stdlib_bitset_large.f90 diff --git a/src/tests/hash_functions/CMakeLists.txt b/test/hash_functions/CMakeLists.txt similarity index 100% rename from src/tests/hash_functions/CMakeLists.txt rename to test/hash_functions/CMakeLists.txt diff --git a/src/tests/hash_functions/README.md b/test/hash_functions/README.md similarity index 100% rename from src/tests/hash_functions/README.md rename to test/hash_functions/README.md diff --git a/src/tests/hash_functions/SpookyV2.cpp b/test/hash_functions/SpookyV2.cpp similarity index 100% rename from src/tests/hash_functions/SpookyV2.cpp rename to test/hash_functions/SpookyV2.cpp diff --git a/src/tests/hash_functions/SpookyV2.h b/test/hash_functions/SpookyV2.h similarity index 100% rename from src/tests/hash_functions/SpookyV2.h rename to test/hash_functions/SpookyV2.h diff --git a/src/tests/hash_functions/SpookyV2Test.cpp b/test/hash_functions/SpookyV2Test.cpp similarity index 100% rename from src/tests/hash_functions/SpookyV2Test.cpp rename to test/hash_functions/SpookyV2Test.cpp diff --git a/src/tests/hash_functions/generate_hash_arrays.cpp b/test/hash_functions/generate_hash_arrays.cpp similarity index 100% rename from src/tests/hash_functions/generate_hash_arrays.cpp rename to test/hash_functions/generate_hash_arrays.cpp diff --git a/src/tests/hash_functions/nmhash.c b/test/hash_functions/nmhash.c similarity index 100% rename from src/tests/hash_functions/nmhash.c rename to test/hash_functions/nmhash.c diff --git a/src/tests/hash_functions/nmhash.h b/test/hash_functions/nmhash.h similarity index 100% rename from src/tests/hash_functions/nmhash.h rename to test/hash_functions/nmhash.h diff --git a/src/tests/hash_functions/nmhash_scalar.c b/test/hash_functions/nmhash_scalar.c similarity index 100% rename from src/tests/hash_functions/nmhash_scalar.c rename to test/hash_functions/nmhash_scalar.c diff --git a/src/tests/hash_functions/nmhash_scalar.h b/test/hash_functions/nmhash_scalar.h similarity index 100% rename from src/tests/hash_functions/nmhash_scalar.h rename to test/hash_functions/nmhash_scalar.h diff --git a/src/tests/hash_functions/pengyhash.c b/test/hash_functions/pengyhash.c similarity index 100% rename from src/tests/hash_functions/pengyhash.c rename to test/hash_functions/pengyhash.c diff --git a/src/tests/hash_functions/pengyhash.h b/test/hash_functions/pengyhash.h similarity index 100% rename from src/tests/hash_functions/pengyhash.h rename to test/hash_functions/pengyhash.h diff --git a/src/tests/hash_functions/test_hash_functions.f90 b/test/hash_functions/test_hash_functions.f90 similarity index 100% rename from src/tests/hash_functions/test_hash_functions.f90 rename to test/hash_functions/test_hash_functions.f90 diff --git a/src/tests/hash_functions/waterhash.c b/test/hash_functions/waterhash.c similarity index 100% rename from src/tests/hash_functions/waterhash.c rename to test/hash_functions/waterhash.c diff --git a/src/tests/hash_functions/waterhash.h b/test/hash_functions/waterhash.h similarity index 100% rename from src/tests/hash_functions/waterhash.h rename to test/hash_functions/waterhash.h diff --git a/src/tests/hash_functions_perf/CMakeLists.txt b/test/hash_functions_perf/CMakeLists.txt similarity index 100% rename from src/tests/hash_functions_perf/CMakeLists.txt rename to test/hash_functions_perf/CMakeLists.txt diff --git a/src/tests/hash_functions_perf/test_32_bit_hash_performance.f90 b/test/hash_functions_perf/test_32_bit_hash_performance.f90 similarity index 100% rename from src/tests/hash_functions_perf/test_32_bit_hash_performance.f90 rename to test/hash_functions_perf/test_32_bit_hash_performance.f90 diff --git a/src/tests/hash_functions_perf/test_64_bit_hash_performance.f90 b/test/hash_functions_perf/test_64_bit_hash_performance.f90 similarity index 100% rename from src/tests/hash_functions_perf/test_64_bit_hash_performance.f90 rename to test/hash_functions_perf/test_64_bit_hash_performance.f90 diff --git a/src/tests/hashmaps/CMakeLists.txt b/test/hashmaps/CMakeLists.txt similarity index 100% rename from src/tests/hashmaps/CMakeLists.txt rename to test/hashmaps/CMakeLists.txt diff --git a/src/tests/hashmaps/Makefile.manual b/test/hashmaps/Makefile.manual similarity index 100% rename from src/tests/hashmaps/Makefile.manual rename to test/hashmaps/Makefile.manual diff --git a/src/tests/hashmaps/test_chaining_maps.f90 b/test/hashmaps/test_chaining_maps.f90 similarity index 100% rename from src/tests/hashmaps/test_chaining_maps.f90 rename to test/hashmaps/test_chaining_maps.f90 diff --git a/src/tests/hashmaps/test_maps.fypp b/test/hashmaps/test_maps.fypp similarity index 100% rename from src/tests/hashmaps/test_maps.fypp rename to test/hashmaps/test_maps.fypp diff --git a/src/tests/hashmaps/test_open_maps.f90 b/test/hashmaps/test_open_maps.f90 similarity index 100% rename from src/tests/hashmaps/test_open_maps.f90 rename to test/hashmaps/test_open_maps.f90 diff --git a/src/tests/io/CMakeLists.txt b/test/io/CMakeLists.txt similarity index 100% rename from src/tests/io/CMakeLists.txt rename to test/io/CMakeLists.txt diff --git a/src/tests/io/test_getline.f90 b/test/io/test_getline.f90 similarity index 100% rename from src/tests/io/test_getline.f90 rename to test/io/test_getline.f90 diff --git a/src/tests/io/test_loadtxt.f90 b/test/io/test_loadtxt.f90 similarity index 100% rename from src/tests/io/test_loadtxt.f90 rename to test/io/test_loadtxt.f90 diff --git a/src/tests/io/test_loadtxt_qp.fypp b/test/io/test_loadtxt_qp.fypp similarity index 100% rename from src/tests/io/test_loadtxt_qp.fypp rename to test/io/test_loadtxt_qp.fypp diff --git a/src/tests/io/test_npy.f90 b/test/io/test_npy.f90 similarity index 100% rename from src/tests/io/test_npy.f90 rename to test/io/test_npy.f90 diff --git a/src/tests/io/test_open.f90 b/test/io/test_open.f90 similarity index 100% rename from src/tests/io/test_open.f90 rename to test/io/test_open.f90 diff --git a/src/tests/io/test_parse_mode.f90 b/test/io/test_parse_mode.f90 similarity index 100% rename from src/tests/io/test_parse_mode.f90 rename to test/io/test_parse_mode.f90 diff --git a/src/tests/io/test_savetxt.f90 b/test/io/test_savetxt.f90 similarity index 100% rename from src/tests/io/test_savetxt.f90 rename to test/io/test_savetxt.f90 diff --git a/src/tests/io/test_savetxt_qp.fypp b/test/io/test_savetxt_qp.fypp similarity index 100% rename from src/tests/io/test_savetxt_qp.fypp rename to test/io/test_savetxt_qp.fypp diff --git a/src/tests/linalg/CMakeLists.txt b/test/linalg/CMakeLists.txt similarity index 100% rename from src/tests/linalg/CMakeLists.txt rename to test/linalg/CMakeLists.txt diff --git a/src/tests/linalg/test_linalg.fypp b/test/linalg/test_linalg.fypp similarity index 100% rename from src/tests/linalg/test_linalg.fypp rename to test/linalg/test_linalg.fypp diff --git a/src/tests/linalg/test_linalg_matrix_property_checks.fypp b/test/linalg/test_linalg_matrix_property_checks.fypp similarity index 100% rename from src/tests/linalg/test_linalg_matrix_property_checks.fypp rename to test/linalg/test_linalg_matrix_property_checks.fypp diff --git a/src/tests/logger/CMakeLists.txt b/test/logger/CMakeLists.txt similarity index 100% rename from src/tests/logger/CMakeLists.txt rename to test/logger/CMakeLists.txt diff --git a/src/tests/logger/test_stdlib_logger.f90 b/test/logger/test_stdlib_logger.f90 similarity index 100% rename from src/tests/logger/test_stdlib_logger.f90 rename to test/logger/test_stdlib_logger.f90 diff --git a/src/tests/math/CMakeLists.txt b/test/math/CMakeLists.txt similarity index 100% rename from src/tests/math/CMakeLists.txt rename to test/math/CMakeLists.txt diff --git a/src/tests/math/test_linspace.f90 b/test/math/test_linspace.f90 similarity index 100% rename from src/tests/math/test_linspace.f90 rename to test/math/test_linspace.f90 diff --git a/src/tests/math/test_logspace.f90 b/test/math/test_logspace.f90 similarity index 100% rename from src/tests/math/test_logspace.f90 rename to test/math/test_logspace.f90 diff --git a/src/tests/math/test_stdlib_math.fypp b/test/math/test_stdlib_math.fypp similarity index 100% rename from src/tests/math/test_stdlib_math.fypp rename to test/math/test_stdlib_math.fypp diff --git a/src/tests/optval/CMakeLists.txt b/test/optval/CMakeLists.txt similarity index 100% rename from src/tests/optval/CMakeLists.txt rename to test/optval/CMakeLists.txt diff --git a/src/tests/optval/test_optval.fypp b/test/optval/test_optval.fypp similarity index 100% rename from src/tests/optval/test_optval.fypp rename to test/optval/test_optval.fypp diff --git a/src/tests/quadrature/CMakeLists.txt b/test/quadrature/CMakeLists.txt similarity index 100% rename from src/tests/quadrature/CMakeLists.txt rename to test/quadrature/CMakeLists.txt diff --git a/src/tests/quadrature/test_gauss.f90 b/test/quadrature/test_gauss.f90 similarity index 100% rename from src/tests/quadrature/test_gauss.f90 rename to test/quadrature/test_gauss.f90 diff --git a/src/tests/quadrature/test_simps.fypp b/test/quadrature/test_simps.fypp similarity index 100% rename from src/tests/quadrature/test_simps.fypp rename to test/quadrature/test_simps.fypp diff --git a/src/tests/quadrature/test_trapz.fypp b/test/quadrature/test_trapz.fypp similarity index 100% rename from src/tests/quadrature/test_trapz.fypp rename to test/quadrature/test_trapz.fypp diff --git a/src/tests/selection/CMakeLists.txt b/test/selection/CMakeLists.txt similarity index 100% rename from src/tests/selection/CMakeLists.txt rename to test/selection/CMakeLists.txt diff --git a/src/tests/selection/test_selection.fypp b/test/selection/test_selection.fypp similarity index 100% rename from src/tests/selection/test_selection.fypp rename to test/selection/test_selection.fypp diff --git a/src/tests/sorting/CMakeLists.txt b/test/sorting/CMakeLists.txt similarity index 100% rename from src/tests/sorting/CMakeLists.txt rename to test/sorting/CMakeLists.txt diff --git a/src/tests/sorting/test_sorting.f90 b/test/sorting/test_sorting.f90 similarity index 100% rename from src/tests/sorting/test_sorting.f90 rename to test/sorting/test_sorting.f90 diff --git a/src/tests/specialfunctions/CMakeLists.txt b/test/specialfunctions/CMakeLists.txt similarity index 100% rename from src/tests/specialfunctions/CMakeLists.txt rename to test/specialfunctions/CMakeLists.txt diff --git a/src/tests/specialfunctions/Makefile.manual b/test/specialfunctions/Makefile.manual similarity index 100% rename from src/tests/specialfunctions/Makefile.manual rename to test/specialfunctions/Makefile.manual diff --git a/src/tests/specialfunctions/test_specialfunctions_gamma.fypp b/test/specialfunctions/test_specialfunctions_gamma.fypp similarity index 100% rename from src/tests/specialfunctions/test_specialfunctions_gamma.fypp rename to test/specialfunctions/test_specialfunctions_gamma.fypp diff --git a/src/tests/stats/CMakeLists.txt b/test/stats/CMakeLists.txt similarity index 100% rename from src/tests/stats/CMakeLists.txt rename to test/stats/CMakeLists.txt diff --git a/src/tests/stats/array3.dat b/test/stats/array3.dat similarity index 100% rename from src/tests/stats/array3.dat rename to test/stats/array3.dat diff --git a/src/tests/stats/test_corr.f90 b/test/stats/test_corr.f90 similarity index 100% rename from src/tests/stats/test_corr.f90 rename to test/stats/test_corr.f90 diff --git a/src/tests/stats/test_cov.f90 b/test/stats/test_cov.f90 similarity index 100% rename from src/tests/stats/test_cov.f90 rename to test/stats/test_cov.f90 diff --git a/src/tests/stats/test_distribution_exponential.fypp b/test/stats/test_distribution_exponential.fypp similarity index 100% rename from src/tests/stats/test_distribution_exponential.fypp rename to test/stats/test_distribution_exponential.fypp diff --git a/src/tests/stats/test_distribution_normal.fypp b/test/stats/test_distribution_normal.fypp similarity index 100% rename from src/tests/stats/test_distribution_normal.fypp rename to test/stats/test_distribution_normal.fypp diff --git a/src/tests/stats/test_distribution_uniform.fypp b/test/stats/test_distribution_uniform.fypp similarity index 100% rename from src/tests/stats/test_distribution_uniform.fypp rename to test/stats/test_distribution_uniform.fypp diff --git a/src/tests/stats/test_mean.fypp b/test/stats/test_mean.fypp similarity index 100% rename from src/tests/stats/test_mean.fypp rename to test/stats/test_mean.fypp diff --git a/src/tests/stats/test_mean_f03.fypp b/test/stats/test_mean_f03.fypp similarity index 100% rename from src/tests/stats/test_mean_f03.fypp rename to test/stats/test_mean_f03.fypp diff --git a/src/tests/stats/test_median.fypp b/test/stats/test_median.fypp similarity index 100% rename from src/tests/stats/test_median.fypp rename to test/stats/test_median.fypp diff --git a/src/tests/stats/test_moment.f90 b/test/stats/test_moment.f90 similarity index 100% rename from src/tests/stats/test_moment.f90 rename to test/stats/test_moment.f90 diff --git a/src/tests/stats/test_random.f90 b/test/stats/test_random.f90 similarity index 100% rename from src/tests/stats/test_random.f90 rename to test/stats/test_random.f90 diff --git a/src/tests/stats/test_rawmoment.f90 b/test/stats/test_rawmoment.f90 similarity index 100% rename from src/tests/stats/test_rawmoment.f90 rename to test/stats/test_rawmoment.f90 diff --git a/src/tests/stats/test_var.f90 b/test/stats/test_var.f90 similarity index 100% rename from src/tests/stats/test_var.f90 rename to test/stats/test_var.f90 diff --git a/src/tests/stats/test_varn.f90 b/test/stats/test_varn.f90 similarity index 100% rename from src/tests/stats/test_varn.f90 rename to test/stats/test_varn.f90 diff --git a/src/tests/string/CMakeLists.txt b/test/string/CMakeLists.txt similarity index 100% rename from src/tests/string/CMakeLists.txt rename to test/string/CMakeLists.txt diff --git a/src/tests/string/test_string_assignment.f90 b/test/string/test_string_assignment.f90 similarity index 100% rename from src/tests/string/test_string_assignment.f90 rename to test/string/test_string_assignment.f90 diff --git a/src/tests/string/test_string_derivedtype_io.f90 b/test/string/test_string_derivedtype_io.f90 similarity index 100% rename from src/tests/string/test_string_derivedtype_io.f90 rename to test/string/test_string_derivedtype_io.f90 diff --git a/src/tests/string/test_string_functions.f90 b/test/string/test_string_functions.f90 similarity index 100% rename from src/tests/string/test_string_functions.f90 rename to test/string/test_string_functions.f90 diff --git a/src/tests/string/test_string_intrinsic.f90 b/test/string/test_string_intrinsic.f90 similarity index 100% rename from src/tests/string/test_string_intrinsic.f90 rename to test/string/test_string_intrinsic.f90 diff --git a/src/tests/string/test_string_match.f90 b/test/string/test_string_match.f90 similarity index 100% rename from src/tests/string/test_string_match.f90 rename to test/string/test_string_match.f90 diff --git a/src/tests/string/test_string_operator.f90 b/test/string/test_string_operator.f90 similarity index 100% rename from src/tests/string/test_string_operator.f90 rename to test/string/test_string_operator.f90 diff --git a/src/tests/string/test_string_strip_chomp.f90 b/test/string/test_string_strip_chomp.f90 similarity index 100% rename from src/tests/string/test_string_strip_chomp.f90 rename to test/string/test_string_strip_chomp.f90 diff --git a/src/tests/string/test_string_to_string.f90 b/test/string/test_string_to_string.f90 similarity index 100% rename from src/tests/string/test_string_to_string.f90 rename to test/string/test_string_to_string.f90 diff --git a/src/tests/stringlist/CMakeLists.txt b/test/stringlist/CMakeLists.txt similarity index 100% rename from src/tests/stringlist/CMakeLists.txt rename to test/stringlist/CMakeLists.txt diff --git a/src/tests/stringlist/test_append_prepend.f90 b/test/stringlist/test_append_prepend.f90 similarity index 100% rename from src/tests/stringlist/test_append_prepend.f90 rename to test/stringlist/test_append_prepend.f90 diff --git a/src/tests/stringlist/test_insert_at.f90 b/test/stringlist/test_insert_at.f90 similarity index 100% rename from src/tests/stringlist/test_insert_at.f90 rename to test/stringlist/test_insert_at.f90 diff --git a/src/tests/system/CMakeLists.txt b/test/system/CMakeLists.txt similarity index 100% rename from src/tests/system/CMakeLists.txt rename to test/system/CMakeLists.txt diff --git a/src/tests/system/test_sleep.f90 b/test/system/test_sleep.f90 similarity index 100% rename from src/tests/system/test_sleep.f90 rename to test/system/test_sleep.f90 diff --git a/src/tests/test_always_fail.f90 b/test/test_always_fail.f90 similarity index 100% rename from src/tests/test_always_fail.f90 rename to test/test_always_fail.f90 diff --git a/src/tests/test_always_skip.f90 b/test/test_always_skip.f90 similarity index 100% rename from src/tests/test_always_skip.f90 rename to test/test_always_skip.f90