CSHARP-5620 Fix CommandMessageBinaryEncoderTests failures on Big Endian systems #1714
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.
Jira: CSHARP-5620
This PR fixes endianness-related test failures on Big Endian systems.
Context
Several tests were failing because they assumed the system's native endianness when verifying wire-level byte sequences. However, the driver's implementation explicitly follows Little Endian encoding for I/O operations, as per the MongoDB wire protocol.
Tests Affected:
WriteMessage_should_write_messageLength
WriteMessage_should_write_flags
WriteMessage_should_write_responseTo
WriteMessage_should_write_requestId
WriteMessage_should_write_expected_opcode
ReadMessage_should_throw_when_flags_is_invalid
Updated the affected test cases to compare data in a platform-agnostic way, ensuring they match the expected Little Endian wire format, regardless of host architecture.
Since the driver's core implementation already adheres to the wire protocol's endianness requirements, I believe the issue lies in test assumptions, not in the source code. This change ensures the tests reflect the correct behavior on both Little and Big Endian platforms.
cc: @giritrivedi