chore: fix intermittent encoding test failures by handling READ_EXPIRED correctly #1303
+296
−4
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.
Problem
Fixes #1296
The
MultiEncodingTerminalTest
was experiencing intermittent failures on Windows CI environments with:The replacement character
�
(U+FFFE) was appearing randomly in test output, initially suggesting an encoding issue in the NonBlocking implementation.Root Cause Discovered
🎯 The issue was NOT in the NonBlocking implementation, but in the test logic itself!
When
NonBlockingReader.read(timeout)
times out, it returnsREAD_EXPIRED
(-2). The test code was incorrectly casting this directly tochar
:Key insight:
(char)(-2) == (char)0xFFFE == �
(replacement character)Solution
✅ Fixed test logic to properly handle read timeout conditions:
Tests Fixed
MultiEncodingTerminalTest.testReadWithEncoding
MultiEncodingTerminalTest.testMultipleEncodings
NonBlockingEncodingTest
suiteVerification
Impact
Pull Request opened by Augment Code with guidance from the PR author