If we are tweaking the tree hierarchy (check CMake add_subdirectory shorthands - CC: @dsankel ), I also propose to add a requirement / recommendation to the standard relative to the tests directory/. I’m fine with any convention, if it’s a convention.
The full tree from Beman.Optional26 is:
include/Beman/Optional26/ - public header interface (as stated in the standard); NO change proposed here.
src/Beman/Optional26/ (only prefix src/ is stated in the standard) - I would also add suffix Beman/$Library` to the standard)
src/Beman/Optional26/tests (folder for tests) - not mentioned in the standard.
examples/ (folder for public examples; it can be optional) - not mentioned in the standard.
docs/ (folder for docs; it can be optional) - not mentioned in the standard.
scripts/ (folder for scripts; it can be optional) - not mentioned in the standard.
papers/ (folder for papers; it can be optional) - not mentioned in the standard.
I would like your input. I think it’s better to have explicit requirements / recommendations for all mentioned aspects.
The extra directory might make these tests a bit cumbersome to work with. What you think about having unit tests live next to the source files with filenames matching a convention (e.g. ending in .test.cpp)? Integration tests could live in <root>/tests/.
These look good to me. I think the standard could recommend these directory names.
I’ve seen this directory used in many repositories, but I’ve never understood the criteria for files in here.