Fix test parallelism failures - #360
Merged
Merged
Conversation
Member
|
I like having the date & time in the version string, so what about only disabling that for testing? if(SC_ENABLE_TESTING)
set( date_time_string "NA - disabled for testing")
else ()
# existing logic goes here
endif() |
As analyzed in #359, if the header contains the current time, it will be updated while running the testsuite; this, in turn, causes multiple cmake processes to attempt to update targets like lib/libexpress.so.2.0.0 at the same time, causing test failures.
In #359 I identify a race condition between multiple parallel invocations of cmake, which can arise naturally during ctests. Now that the file contents will not change without an intervening git commit, it is sufficient to ensure that the parallel invocations use distinct temporary file names with high probability.
Contributor
Author
|
@mpictor as requested, I've updated this branch so that the timestamp is only disabled when SC_ENABLE_TESTING. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
These two changes fix the overt and subtle problem I identified with parallel ctest. After applying these two changes locally, I was able to complete 24 consecutive 'ctest' invocations each with a parallelism of 24 (on an 4C/8T system). Typical end of successful test output:
Closes: #359