In order to be Quality Level 1, the Quality Declaration Rep 2004 states packages must do performance tests, unless they don't make sense. In which case, it should be documented in the QD why they aren't.
I'm creating this issue to get comments from maintainers and contributors whether it makes sense for a package like this.
While a lot of this package are just macros, type traits, and other compile-time definitions, there are some functions that may have performance implications. The files that absolutely have no worthwhile functions to test in my opinion would be (asserts.hpp, endian.hpp, pointer_traits.hpp, thread_safety_annotations.hpp and visibily_control.hpp).
It also doesn't seem worth the effort to develop performance tests for filesystem_helper.hpp since that functionality is now in the std library (++17) and it's just a matter of verifying the compilers on the supported platforms all have it before switching over to std::filesystem. I think in regards to Ubuntu, focal's build-essential should have it, MSVC 2019 supports it, and XCode 11.0 should support it. But that might require more investigation.
That leaves find_and_replace.hpp, find_library.hpp, join.hpp and split.hpp. If tests were to be written for these files, the important metrics in my mind would be the computation time of the function and allocated memory.
In my mind, there should be performance tests for the following couple of reasons, but other people might have other opinions.
- For the sake of completeness with QL 1, there should be performance tests.
- While these files might not be critical to performance and will be rarely modified, new functionality added to this package might need performance tests. Developing these tests now would provide contributors with existing infrastructure and some examples so they can add performance tests to new features