From 8b4c902f33e2fc1d2b862beb195231185b7235ac Mon Sep 17 00:00:00 2001 From: DavoudEshtehari <61173489+DavoudEshtehari@users.noreply.github.com> Date: Thu, 13 Jan 2022 16:52:28 -0800 Subject: [PATCH] Include derived types of ArgumentException in DataStreamTest when reading past end of stream (#1472) 1404 $ 1405 --- .../ManualTests/SQL/DataStreamTest/DataStreamTest.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/DataStreamTest/DataStreamTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/DataStreamTest/DataStreamTest.cs index 2c5bce8c82..8026aa479c 100644 --- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/DataStreamTest/DataStreamTest.cs +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/DataStreamTest/DataStreamTest.cs @@ -1555,8 +1555,14 @@ private static void ReadStream(string connectionString) DataTestUtility.AssertThrowsWrapper(() => stream.Read(null, 0, 1)); DataTestUtility.AssertThrowsWrapper(() => stream.Read(buffer, -1, 2)); DataTestUtility.AssertThrowsWrapper(() => stream.Read(buffer, 2, -1)); - DataTestUtility.AssertThrowsWrapper(() => stream.Read(buffer, buffer.Length, buffer.Length)); - DataTestUtility.AssertThrowsWrapper(() => stream.Read(buffer, int.MaxValue, int.MaxValue)); + + // ArgumentException is thrown in net5 and earlier. ArgumentOutOfRangeException in net6 and later + ArgumentException ex = Assert.ThrowsAny(() => stream.Read(buffer, buffer.Length, buffer.Length)); + Assert.True(ex.GetType() == typeof(ArgumentException) || ex.GetType() == typeof(ArgumentOutOfRangeException), + "Expected: ArgumentException in net5 and earlier. ArgumentOutOfRangeException in net6 and later."); + ex = Assert.ThrowsAny(() => stream.Read(buffer, int.MaxValue, int.MaxValue)); + Assert.True(ex.GetType() == typeof(ArgumentException) || ex.GetType() == typeof(ArgumentOutOfRangeException), + "Expected: ArgumentException in net5 and earlier. ArgumentOutOfRangeException in net6 and later."); } // Once Reader is closed