Fix TcpListener disposal in ReadLineAsync_AfterDispose_ReturnsNull test#270
Conversation
Co-authored-by: HowardvanRooijen <128664+HowardvanRooijen@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
This PR fixes a resource leak risk in the ReadLineAsync_AfterDispose_ReturnsNull test by adding proper resource disposal. The test previously lacked a try-finally block, which could leave the TcpListener running if test assertions failed.
- Wraps test code in try-finally block to guarantee
TcpListener.Stop()is called - Adds defensive
reader.DisposeAsync()call in finally block for consistency - Aligns resource disposal pattern with all other tests in the class
Comments suppressed due to low confidence (11)
Solutions/Ais.Net.Receiver.Tests/TcpClientNmeaStreamReaderTests.cs:20
- Disposable 'TcpListener' is created but not disposed.
TcpListener listener = new(IPAddress.Loopback, 0);
Solutions/Ais.Net.Receiver.Tests/TcpClientNmeaStreamReaderTests.cs:44
- Disposable 'TcpListener' is created but not disposed.
TcpListener listener = new(IPAddress.Loopback, 0);
Solutions/Ais.Net.Receiver.Tests/TcpClientNmeaStreamReaderTests.cs:81
- Disposable 'TcpListener' is created but not disposed.
TcpListener listener = new(IPAddress.Loopback, 0);
Solutions/Ais.Net.Receiver.Tests/TcpClientNmeaStreamReaderTests.cs:117
- Disposable 'TcpListener' is created but not disposed.
TcpListener listener = new(IPAddress.Loopback, 0);
Solutions/Ais.Net.Receiver.Tests/TcpClientNmeaStreamReaderTests.cs:186
- Disposable 'TcpListener' is created but not disposed.
TcpListener listener = new(IPAddress.Loopback, 0);
Solutions/Ais.Net.Receiver.Tests/TcpClientNmeaStreamReaderTests.cs:214
- Disposable 'TcpListener' is created but not disposed.
TcpListener listener = new(IPAddress.Loopback, 0);
Solutions/Ais.Net.Receiver.Tests/TcpClientNmeaStreamReaderTests.cs:253
- Disposable 'TcpListener' is created but not disposed.
TcpListener listener = new(IPAddress.Loopback, 0);
Solutions/Ais.Net.Receiver.Tests/TcpClientNmeaStreamReaderTests.cs:286
- Disposable 'TcpListener' is created but not disposed.
TcpListener listener = new(IPAddress.Loopback, 0);
Solutions/Ais.Net.Receiver.Tests/TcpClientNmeaStreamReaderTests.cs:317
- Disposable 'TcpListener' is created but not disposed.
TcpListener listener = new(IPAddress.Loopback, 0);
Solutions/Ais.Net.Receiver.Tests/TcpClientNmeaStreamReaderTests.cs:361
- Disposable 'TcpListener' is created but not disposed.
TcpListener listener = new(IPAddress.Loopback, 0);
Solutions/Ais.Net.Receiver.Tests/TcpClientNmeaStreamReaderTests.cs:396
- Disposable 'TcpListener' is created but not disposed.
TcpListener listener = new(IPAddress.Loopback, 0);
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Addresses code review feedback:
TcpListenerinReadLineAsync_AfterDispose_ReturnsNulltest was not wrapped in try-finally, risking resource leaks if assertions fail.Changes
TcpListener.Stop()is called on all code pathsTcpClientNmeaStreamReaderTestsNote: Double dispose of
readeris safe—existing testDisposeAsync_CanBeCalledMultipleTimesverifies idempotency.💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.