Allow tests to run on systems with case-insensitive filesystems and newer compilers. #208
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This change allows the test suite to run on desktop machines with case-insenstive filesystems (e.g. macOS and Windows) without needing a Linux VM or special mount point.
The main issue is the conflict between "String.h" in the api directory and the standard "string.h" include; the API's one gets matched when included with
#include <String.h>"
which does not happen in a core because the include path points to the parent of the api directory. So the main change here is to alter the include path for the tests to the parent of theapi
directory to match. Unfortunately this meant modifying all the tests to includeapi/
in the header filename.Testing this on macOS with XCode 13.3 (native cc which is clang 14.x) and GCC 13 also tripped over stricter warnings related to the deprecation of
sprintf
and the self-move test for String. The PR includes#pragma
statements to suppress those warnings as I didn't want to change production code in this PR, saving it for separate patch.I confirmed the tests still pass on Ubuntu with GCC 12.