Use drivers-evergreen-tools for Windows testing #1615
Merged
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 PR makes several changes, all related to how we start MongoDB on Windows. Since the previous method of starting MongoDB would often time out, the Windows workflow now uses drivers-evergreen-tools to start clusters. This should be more reliable and as a side effect uses the same configs we use for our Linux testing. As part of this change, I have also re-organised the windows workflows so that tests for a given variant (i.e. the combination of PHP version, architecture, and thread safety) start immediately after the corresponding build has completed, not only after all builds have completed. This yields faster test results.
During testing, I discovered an issue in the tests for
ServerHeartbeatFailedEvent
, where an expected integer return was actually returned as anInt64
instance on 32-bit platforms. After some investigation I found that this was due to the type being wrong - libmongoc returns anint64_t
, while we store auint64_t
. This caused issues when comparing the value toINT32_MAX
andINT32_MIN
on 32-bit platforms, erroneously returning anInt64
instance which should only happen when the value exceeds the bounds of a 32-bit integer. During that investigation I also found that the same issue affectsServerHeartbeatSucceededEvent
, but it didn't get exposed because the duration was not added to thevar_dump
output. All these issues have been fixed.