diff --git a/eng/pipelines/common/templates/steps/build-and-run-tests-netcore-step.yml b/eng/pipelines/common/templates/steps/build-and-run-tests-netcore-step.yml
index f25b719bc2..f9f99aa23e 100644
--- a/eng/pipelines/common/templates/steps/build-and-run-tests-netcore-step.yml
+++ b/eng/pipelines/common/templates/steps/build-and-run-tests-netcore-step.yml
@@ -147,5 +147,4 @@ steps:
--blame-hang
--blame-hang-dump-type full
--blame-hang-timeout 10m
- retryCountOnTaskFailure: ${{parameters.retryCountOnManualTests }}
continueOnError: true
diff --git a/eng/pipelines/common/templates/steps/build-and-run-tests-netfx-step.yml b/eng/pipelines/common/templates/steps/build-and-run-tests-netfx-step.yml
index 7db39da4a6..9571569705 100644
--- a/eng/pipelines/common/templates/steps/build-and-run-tests-netfx-step.yml
+++ b/eng/pipelines/common/templates/steps/build-and-run-tests-netfx-step.yml
@@ -149,5 +149,4 @@ steps:
--blame-hang
--blame-hang-dump-type full
--blame-hang-timeout 10m
- retryCountOnTaskFailure: ${{parameters.retryCountOnManualTests }}
continueOnError: true
diff --git a/eng/pipelines/common/templates/steps/run-all-tests-step.yml b/eng/pipelines/common/templates/steps/run-all-tests-step.yml
index 5297795653..7c78e48a6c 100644
--- a/eng/pipelines/common/templates/steps/run-all-tests-step.yml
+++ b/eng/pipelines/common/templates/steps/run-all-tests-step.yml
@@ -226,7 +226,6 @@ steps:
-p:Filter="category=flaky"
-p:CollectCodeCoverage=false
continueOnError: true
- retryCountOnTaskFailure: ${{parameters.retryCountOnManualTests }}
- ${{ else }}: # Linux or macOS
- ${{if eq(parameters.referenceType, 'Project')}}:
@@ -350,4 +349,3 @@ steps:
verbosityRestore: Detailed
verbosityPack: Detailed
continueOnError: true
- retryCountOnTaskFailure: ${{parameters.retryCountOnManualTests }}
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTests.csproj b/src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTests.csproj
index a27e137cf3..8efbafbe7c 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTests.csproj
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTests.csproj
@@ -199,6 +199,12 @@
+
+
+
+
+
+
@@ -237,14 +243,104 @@
-
-
-
-
+
+
+
+ PreserveNewest
+ StreamInputParameter_DebugMode.bsl
+
+
+ PreserveNewest
+ StreamInputParameter_DebugMode_Azure.bsl
+
+
+ PreserveNewest
+ StreamInputParameter_ReleaseMode.bsl
+
+
+ PreserveNewest
+ StreamInputParameter_ReleaseMode_Azure.bsl
+
+
+ PreserveNewest
+ TvpColumnBoundaries_DebugMode.bsl
+
+
+ PreserveNewest
+ TvpColumnBoundaries_DebugMode_Azure.bsl
+
+
+ PreserveNewest
+ TvpColumnBoundaries_ReleaseMode.bsl
+
+
+ PreserveNewest
+ TvpColumnBoundaries_ReleaseMode_Azure.bsl
+
+
+ PreserveNewest
+ TvpQueryHints_DebugMode.bsl
+
+
+ PreserveNewest
+ TvpQueryHints_DebugMode_Azure.bsl
+
+
+ PreserveNewest
+ TvpQueryHints_ReleaseMode.bsl
+
+
+ PreserveNewest
+ TvpQueryHints_ReleaseMode_Azure.bsl
+
+
+ PreserveNewest
+ SqlVariantParameter_DebugMode.bsl
+
+
+ PreserveNewest
+ SqlVariantParameter_DebugMode_Azure.bsl
+
+
+ PreserveNewest
+ SqlVariantParameter_ReleaseMode.bsl
+
+
+ PreserveNewest
+ SqlVariantParameter_ReleaseMode_Azure.bsl
+
+
+ PreserveNewest
+ DateTimeVariant_DebugMode.bsl
+
+
+ PreserveNewest
+ DateTimeVariant_DebugMode_Azure.bsl
+
+
+ PreserveNewest
+ DateTimeVariant_ReleaseMode.bsl
+
+
+ PreserveNewest
+ DateTimeVariant_ReleaseMode_Azure.bsl
+
+
+ PreserveNewest
+ OutputParameter_DebugMode.bsl
+
+
+ PreserveNewest
+ OutputParameter_DebugMode_Azure.bsl
+
+
+ PreserveNewest
+ OutputParameter_ReleaseMode.bsl
+
+
+ PreserveNewest
+ OutputParameter_ReleaseMode_Azure.bsl
+
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/JsonTest/JsonStreamTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/JsonTest/JsonStreamTest.cs
index f580347f67..eee3b2d515 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/JsonTest/JsonStreamTest.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/JsonTest/JsonStreamTest.cs
@@ -69,10 +69,10 @@ private void CompareJsonFiles()
}
}
- private void PrintJsonDataToFile(SqlConnection connection)
+ private void PrintJsonDataToFile(SqlConnection connection, string tableName)
{
DeleteFile(_outputFile);
- using (SqlCommand command = new SqlCommand("SELECT [data] FROM [jsonTab]", connection))
+ using (SqlCommand command = new SqlCommand($"SELECT [data] FROM {tableName}", connection))
{
using (SqlDataReader reader = command.ExecuteReader(CommandBehavior.SequentialAccess))
{
@@ -99,10 +99,10 @@ private void PrintJsonDataToFile(SqlConnection connection)
}
}
- private async Task PrintJsonDataToFileAsync(SqlConnection connection)
+ private async Task PrintJsonDataToFileAsync(SqlConnection connection, string tableName)
{
DeleteFile(_outputFile);
- using (SqlCommand command = new SqlCommand("SELECT [data] FROM [jsonTab]", connection))
+ using (SqlCommand command = new SqlCommand($"SELECT [data] FROM {tableName}", connection))
{
using (SqlDataReader reader = await command.ExecuteReaderAsync(CommandBehavior.SequentialAccess))
{
@@ -129,9 +129,9 @@ private async Task PrintJsonDataToFileAsync(SqlConnection connection)
}
}
- private void StreamJsonFileToServer(SqlConnection connection)
+ private void StreamJsonFileToServer(SqlConnection connection, string tableName)
{
- using (SqlCommand cmd = new SqlCommand("INSERT INTO [jsonTab] (data) VALUES (@jsondata)", connection))
+ using (SqlCommand cmd = new SqlCommand($"INSERT INTO {tableName} (data) VALUES (@jsondata)", connection))
{
using (StreamReader jsonFile = File.OpenText(_jsonFile))
{
@@ -141,9 +141,9 @@ private void StreamJsonFileToServer(SqlConnection connection)
}
}
- private async Task StreamJsonFileToServerAsync(SqlConnection connection)
+ private async Task StreamJsonFileToServerAsync(SqlConnection connection, string tableName)
{
- using (SqlCommand cmd = new SqlCommand("INSERT INTO [jsonTab] (data) VALUES (@jsondata)", connection))
+ using (SqlCommand cmd = new SqlCommand($"INSERT INTO {tableName} (data) VALUES (@jsondata)", connection))
{
using (StreamReader jsonFile = File.OpenText(_jsonFile))
{
@@ -168,9 +168,10 @@ public void TestJsonStreaming()
using (SqlConnection connection = new SqlConnection(DataTestUtility.TCPConnectionString))
{
connection.Open();
- DataTestUtility.CreateTable(connection, "jsonTab", "(data json)");
- StreamJsonFileToServer(connection);
- PrintJsonDataToFile(connection);
+ var tableName = DataTestUtility.GetLongName("jsonTab");
+ DataTestUtility.CreateTable(connection, tableName, "(data json)");
+ StreamJsonFileToServer(connection, tableName);
+ PrintJsonDataToFile(connection, tableName);
CompareJsonFiles();
DeleteFile(_jsonFile);
DeleteFile(_outputFile);
@@ -184,9 +185,10 @@ public async Task TestJsonStreamingAsync()
using (SqlConnection connection = new SqlConnection(DataTestUtility.TCPConnectionString))
{
await connection.OpenAsync();
- DataTestUtility.CreateTable(connection, "jsonTab", "(data json)");
- await StreamJsonFileToServerAsync(connection);
- await PrintJsonDataToFileAsync(connection);
+ var tableName = DataTestUtility.GetLongName("jsonTab");
+ DataTestUtility.CreateTable(connection, tableName, "(data json)");
+ await StreamJsonFileToServerAsync(connection, tableName);
+ await PrintJsonDataToFileAsync(connection, tableName);
CompareJsonFiles();
DeleteFile(_jsonFile);
DeleteFile(_outputFile);
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariantTests.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariantTests.cs
new file mode 100644
index 0000000000..344f3798d7
--- /dev/null
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariantTests.cs
@@ -0,0 +1,146 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+using System.Globalization;
+using System.IO;
+using System.Text;
+using System.Threading;
+using Xunit;
+
+namespace Microsoft.Data.SqlClient.ManualTesting.Tests
+{
+ ///
+ /// Tests for DateTime variant parameters with different date/time types.
+ /// These tests run independently with their own baseline comparison.
+ ///
+ [Collection("ParameterBaselineTests")]
+ public class DateTimeVariantTests
+ {
+ private readonly string _connStr;
+
+ public DateTimeVariantTests()
+ {
+ _connStr = DataTestUtility.TCPConnectionString;
+ }
+
+ [Trait("Category", "flaky")]
+ [ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
+ public void DateTimeVariantParameterTest()
+ {
+ Assert.True(RunTestAndCompareWithBaseline());
+ }
+
+ private bool RunTestAndCompareWithBaseline()
+ {
+ CultureInfo previousCulture = Thread.CurrentThread.CurrentCulture;
+ Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
+ try
+ {
+ string outputPath = "DateTimeVariant.out";
+ string baselinePath;
+#if DEBUG
+ if (DataTestUtility.IsNotAzureServer() || DataTestUtility.IsManagedInstance)
+ {
+ baselinePath = "DateTimeVariant_DebugMode.bsl";
+ }
+ else
+ {
+ baselinePath = "DateTimeVariant_DebugMode_Azure.bsl";
+ }
+#else
+ if (DataTestUtility.IsNotAzureServer() || DataTestUtility.IsManagedInstance)
+ {
+ baselinePath = "DateTimeVariant_ReleaseMode.bsl";
+ }
+ else
+ {
+ baselinePath = "DateTimeVariant_ReleaseMode_Azure.bsl";
+ }
+#endif
+
+ var fstream = new FileStream(outputPath, FileMode.Create, FileAccess.Write, FileShare.Read);
+ var swriter = new StreamWriter(fstream, Encoding.UTF8);
+ var twriter = new TvpTest.CarriageReturnLineFeedReplacer(swriter);
+ Console.SetOut(twriter);
+
+ // Run Test
+ DateTimeVariantTest.TestAllDateTimeWithDataTypeAndVariant(_connStr);
+
+ Console.Out.Flush();
+ Console.Out.Dispose();
+
+ // Recover the standard output stream
+ StreamWriter standardOutput = new(Console.OpenStandardOutput());
+ standardOutput.AutoFlush = true;
+ Console.SetOut(standardOutput);
+
+ // Compare output file
+ var comparisonResult = FindDiffFromBaseline(baselinePath, outputPath);
+
+ if (string.IsNullOrEmpty(comparisonResult))
+ {
+ return true;
+ }
+
+ Console.WriteLine("DateTimeVariantParameterTest Failed!");
+ Console.WriteLine("Please compare baseline: {0} with output: {1}", Path.GetFullPath(baselinePath), Path.GetFullPath(outputPath));
+ Console.WriteLine("Comparison Results:");
+ Console.WriteLine(comparisonResult);
+ return false;
+ }
+ finally
+ {
+ Thread.CurrentThread.CurrentCulture = previousCulture;
+ }
+ }
+
+ private static string FindDiffFromBaseline(string baselinePath, string outputPath)
+ {
+ var expectedLines = File.ReadAllLines(baselinePath);
+ var outputLines = File.ReadAllLines(outputPath);
+
+ var comparisonSb = new StringBuilder();
+
+ var expectedLength = expectedLines.Length;
+ var outputLength = outputLines.Length;
+ var findDiffLength = Math.Min(expectedLength, outputLength);
+
+ for (var lineNo = 0; lineNo < findDiffLength; lineNo++)
+ {
+ if (!expectedLines[lineNo].Equals(outputLines[lineNo]))
+ {
+ comparisonSb.AppendFormat("** DIFF at line {0} \n", lineNo);
+ comparisonSb.AppendFormat("A : {0} \n", outputLines[lineNo]);
+ comparisonSb.AppendFormat("E : {0} \n", expectedLines[lineNo]);
+ }
+ }
+
+ var startIndex = findDiffLength - 1;
+ if (startIndex < 0)
+ {
+ startIndex = 0;
+ }
+
+ if (findDiffLength < expectedLength)
+ {
+ comparisonSb.AppendFormat("** MISSING \n");
+ for (var lineNo = startIndex; lineNo < expectedLength; lineNo++)
+ {
+ comparisonSb.AppendFormat("{0} : {1}", lineNo, expectedLines[lineNo]);
+ }
+ }
+ if (findDiffLength < outputLength)
+ {
+ comparisonSb.AppendFormat("** EXTRA \n");
+ for (var lineNo = startIndex; lineNo < outputLength; lineNo++)
+ {
+ comparisonSb.AppendFormat("{0} : {1}", lineNo, outputLines[lineNo]);
+ }
+ }
+
+ return comparisonSb.ToString();
+ }
+ }
+}
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SqlParameterTest_ReleaseMode.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariant_DebugMode.bsl
similarity index 78%
rename from src/Microsoft.Data.SqlClient/tests/ManualTests/SqlParameterTest_ReleaseMode.bsl
rename to src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariant_DebugMode.bsl
index 6e9cab52b9..aa19a20d9a 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SqlParameterTest_ReleaseMode.bsl
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariant_DebugMode.bsl
@@ -1,615 +1,3 @@
-Starting test 'TvpTest'
-Starting Test using AsyncDebugScope
-Tests using AsyncDebugScope are only supported in Debug mode!
-Finished Test using AsyncDebugScope
-Test immediate cancel for binary stream
-PASS: Task is cancelled
-Test immediate cancel for text stream
-PASS: Task is cancelled
-Test immediate cancel for xml stream
-PASS: Task is cancelled
-Test command preparation PASS
-Test reuse of command after cancel
-PASS
-Test reuse of command after cancel
-PASS
-Test reuse of command after cancel
-PASS
-+++++++ Iteration 0 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 1 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 2 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 28
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 3 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 4 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 5 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 28
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 6 ++++++++
-SqlException creating objects: 1701
-SqlException dropping objects: 3701
-+++++++ Iteration 7 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 28
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 8 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 28
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 9 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 10 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 11 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 28
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 12 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 13 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 14 ++++++++
-SqlException creating objects: 1701
-SqlException dropping objects: 3701
-+++++++ Iteration 15 ++++++++
-SqlException creating objects: 1701
-SqlException dropping objects: 3701
-+++++++ Iteration 16 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 28
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 17 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 28
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 18 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 19 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 20 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-Matches = 14
-SqlException. Error Code: 2628
-Matches = 28
-Matches = 14
-SqlException. Error Code: 2628
-Matches = 14
-Matches = 14
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 21 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-SqlException. Error Code: 2628
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 22 ++++++++
-SqlException creating objects: 1701
-SqlException dropping objects: 3701
-+++++++ Iteration 23 ++++++++
-SqlException creating objects: 1701
-SqlException dropping objects: 3701
-+++++++ Iteration 24 ++++++++
-SqlException creating objects: 1701
-SqlException dropping objects: 3701
-+++++++ Iteration 25 ++++++++
-------IEnumerable---------
-Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=0, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=1, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=4, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=5, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=8, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=9, Column=5
-Matches = 162
-------DbDataReader---------
-Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=0, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=1, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=4, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=5, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=8, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=9, Column=5
-Matches = 162
-------DataTables---------
-SqlException. Error Code: 242
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 28
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 26 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 28
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 27 ++++++++
-------IEnumerable---------
-Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[1]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Failed Row[2]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[10]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Failed Row[11]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=0, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=1, Column=5
-Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
- Row=1, Column=9
-Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
- Row=2, Column=9
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=4, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=5, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=8, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=9, Column=5
-Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
- Row=10, Column=9
-Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
- Row=11, Column=9
-Matches = 158
-------DbDataReader---------
-Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[1]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Failed Row[2]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[10]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Failed Row[11]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=0, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=1, Column=5
-Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
- Row=1, Column=9
-Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
- Row=2, Column=9
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=4, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=5, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=8, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=9, Column=5
-Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
- Row=10, Column=9
-Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
- Row=11, Column=9
-Matches = 158
-------DataTables---------
-SqlException. Error Code: 242
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 8115
-------- Sort order + uniqueness #1: simple -------
--------------
-0 Z-value 3/1/2000 12:00:00 AM 5
-1 X-value 1/1/2000 12:00:00 AM 7
-
--------------
-------- Sort order + uniqueness #2: mixed order -------
--------------
-4 X-value 1/1/2000 12:00:00 AM 3
-5 X-value 3/1/2000 12:00:00 AM 3
-
--------------
-------- default column #1: outer subset -------
--------------
--1 Y-value 1/1/2000 12:00:00 AM -1
--1 Z-value 1/1/2000 12:00:00 AM -1
-
--------------
-------- default column #1: middle subset -------
--------------
-4 DEFUALT 1/1/2006 12:00:00 AM 3
-5 DEFUALT 1/1/2006 12:00:00 AM 3
-
--------------
-------- default column #1: all -------
--------------
--1 DEFUALT 1/1/2006 12:00:00 AM -1
--1 DEFUALT 1/1/2006 12:00:00 AM -1
-
--------------
-
-Starting test 'SqlVariantParam'
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantParam -> System.Data.SqlTypes.SqlSingle:real
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantParam -> System.Data.SqlTypes.SqlSingle:real
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlString:nvarchar
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlString:nvarchar
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlString:nvarchar
-SendVariantParam -> System.Data.SqlTypes.SqlString:nvarchar
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlString:nvarchar
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlString:nvarchar
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDouble:float
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDouble:float
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDouble:float
-SendVariantParam -> System.Data.SqlTypes.SqlDouble:float
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDouble:float
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDouble:float
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBinary:varbinary
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBinary:varbinary
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBinary:varbinary
-SendVariantParam -> System.Data.SqlTypes.SqlBinary:varbinary
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBinary:varbinary
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBinary:varbinary
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
-SendVariantParam -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantParam -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantParam -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlByte:tinyint
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlByte:tinyint
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlByte:tinyint
-SendVariantParam -> System.Data.SqlTypes.SqlByte:tinyint
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlByte:tinyint
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlByte:tinyint
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt16:smallint
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt16:smallint
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt16:smallint
-SendVariantParam -> System.Data.SqlTypes.SqlInt16:smallint
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt16:smallint
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt16:smallint
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt32:int
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt32:int
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt32:int
-SendVariantParam -> System.Data.SqlTypes.SqlInt32:int
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt32:int
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt32:int
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt64:bigint
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt64:bigint
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt64:bigint
-SendVariantParam -> System.Data.SqlTypes.SqlInt64:bigint
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt64:bigint
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt64:bigint
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDecimal:numeric
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDecimal:numeric
-SendVariantParam -> System.Data.SqlTypes.SqlDecimal:numeric
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDecimal:numeric
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDateTime:datetime
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDateTime:datetime
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDateTime:datetime
-SendVariantParam -> System.Data.SqlTypes.SqlDateTime:datetime
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDateTime:datetime
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDateTime:datetime
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric
- --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal
- --> ERROR: Expected base type money does not match actual base type numeric
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDecimal:numeric
- --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal
- --> ERROR: Expected base type money does not match actual base type numeric
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDecimal:numeric
- --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal
- --> ERROR: Expected base type money does not match actual base type numeric
-SendVariantParam -> System.Data.SqlTypes.SqlMoney:money
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlMoney:money
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlMoney:money
-End test 'SqlVariantParam'
------------------------------ TestSimpleParameter_Type [type: date value:1/1/0001 00:00:00] ------------------------------
Type => Expected : Actual == System.DateTime : System.DateTime
@@ -1768,6 +1156,3 @@ Base Type => Expected : Actual == time : datetime
Value => Expected : Actual == 3155378975999999999 : 3155378975999970000
SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = time]
SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM]
-Starting 'OutputParameter' tests
-Test setting output SqlParameter to an invalid value
-Done
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SqlParameterTest_ReleaseMode_Azure.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariant_DebugMode_Azure.bsl
similarity index 78%
rename from src/Microsoft.Data.SqlClient/tests/ManualTests/SqlParameterTest_ReleaseMode_Azure.bsl
rename to src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariant_DebugMode_Azure.bsl
index 60bcac02f5..aa19a20d9a 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SqlParameterTest_ReleaseMode_Azure.bsl
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariant_DebugMode_Azure.bsl
@@ -1,615 +1,3 @@
-Starting test 'TvpTest'
-Starting Test using AsyncDebugScope
-Tests using AsyncDebugScope are only supported in Debug mode!
-Finished Test using AsyncDebugScope
-Test immediate cancel for binary stream
-PASS: Task is cancelled
-Test immediate cancel for text stream
-PASS: Task is cancelled
-Test immediate cancel for xml stream
-PASS: Task is cancelled
-Test command preparation PASS
-Test reuse of command after cancel
-PASS
-Test reuse of command after cancel
-PASS
-Test reuse of command after cancel
-PASS
-+++++++ Iteration 0 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 1 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 2 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 28
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 3 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 4 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 5 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 28
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 6 ++++++++
-SqlException creating objects: 1701
-SqlException dropping objects: 3701
-+++++++ Iteration 7 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 28
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 8 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 28
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 9 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 10 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 11 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 28
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 12 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 13 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 14 ++++++++
-SqlException creating objects: 1701
-SqlException dropping objects: 3701
-+++++++ Iteration 15 ++++++++
-SqlException creating objects: 1701
-SqlException dropping objects: 3701
-+++++++ Iteration 16 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 28
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 17 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 28
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 18 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 19 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 20 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-Matches = 14
-SqlException. Error Code: 8152
-Matches = 28
-Matches = 14
-SqlException. Error Code: 8152
-Matches = 14
-Matches = 14
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 21 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-SqlException. Error Code: 8152
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 22 ++++++++
-SqlException creating objects: 1701
-SqlException dropping objects: 3701
-+++++++ Iteration 23 ++++++++
-SqlException creating objects: 1701
-SqlException dropping objects: 3701
-+++++++ Iteration 24 ++++++++
-SqlException creating objects: 1701
-SqlException dropping objects: 3701
-+++++++ Iteration 25 ++++++++
-------IEnumerable---------
-Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=0, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=1, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=4, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=5, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=8, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=9, Column=5
-Matches = 162
-------DbDataReader---------
-Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=0, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=1, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=4, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=5, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=8, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=9, Column=5
-Matches = 162
-------DataTables---------
-SqlException. Error Code: 242
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 28
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 26 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 28
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 27 ++++++++
-------IEnumerable---------
-Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[1]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Failed Row[2]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[10]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Failed Row[11]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=0, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=1, Column=5
-Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
- Row=1, Column=9
-Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
- Row=2, Column=9
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=4, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=5, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=8, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=9, Column=5
-Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
- Row=10, Column=9
-Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
- Row=11, Column=9
-Matches = 158
-------DbDataReader---------
-Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[1]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Failed Row[2]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[10]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Failed Row[11]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=0, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=1, Column=5
-Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
- Row=1, Column=9
-Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
- Row=2, Column=9
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=4, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=5, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=8, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=9, Column=5
-Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
- Row=10, Column=9
-Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
- Row=11, Column=9
-Matches = 158
-------DataTables---------
-SqlException. Error Code: 242
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8115
-------- Sort order + uniqueness #1: simple -------
--------------
-0 Z-value 3/1/2000 12:00:00 AM 5
-1 X-value 1/1/2000 12:00:00 AM 7
-
--------------
-------- Sort order + uniqueness #2: mixed order -------
--------------
-4 X-value 1/1/2000 12:00:00 AM 3
-5 X-value 3/1/2000 12:00:00 AM 3
-
--------------
-------- default column #1: outer subset -------
--------------
--1 Y-value 1/1/2000 12:00:00 AM -1
--1 Z-value 1/1/2000 12:00:00 AM -1
-
--------------
-------- default column #1: middle subset -------
--------------
-4 DEFUALT 1/1/2006 12:00:00 AM 3
-5 DEFUALT 1/1/2006 12:00:00 AM 3
-
--------------
-------- default column #1: all -------
--------------
--1 DEFUALT 1/1/2006 12:00:00 AM -1
--1 DEFUALT 1/1/2006 12:00:00 AM -1
-
--------------
-
-Starting test 'SqlVariantParam'
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantParam -> System.Data.SqlTypes.SqlSingle:real
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantParam -> System.Data.SqlTypes.SqlSingle:real
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlString:nvarchar
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlString:nvarchar
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlString:nvarchar
-SendVariantParam -> System.Data.SqlTypes.SqlString:nvarchar
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlString:nvarchar
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlString:nvarchar
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDouble:float
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDouble:float
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDouble:float
-SendVariantParam -> System.Data.SqlTypes.SqlDouble:float
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDouble:float
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDouble:float
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBinary:varbinary
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBinary:varbinary
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBinary:varbinary
-SendVariantParam -> System.Data.SqlTypes.SqlBinary:varbinary
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBinary:varbinary
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBinary:varbinary
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
-SendVariantParam -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantParam -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantParam -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlByte:tinyint
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlByte:tinyint
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlByte:tinyint
-SendVariantParam -> System.Data.SqlTypes.SqlByte:tinyint
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlByte:tinyint
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlByte:tinyint
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt16:smallint
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt16:smallint
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt16:smallint
-SendVariantParam -> System.Data.SqlTypes.SqlInt16:smallint
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt16:smallint
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt16:smallint
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt32:int
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt32:int
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt32:int
-SendVariantParam -> System.Data.SqlTypes.SqlInt32:int
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt32:int
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt32:int
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt64:bigint
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt64:bigint
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt64:bigint
-SendVariantParam -> System.Data.SqlTypes.SqlInt64:bigint
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt64:bigint
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt64:bigint
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDecimal:numeric
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDecimal:numeric
-SendVariantParam -> System.Data.SqlTypes.SqlDecimal:numeric
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDecimal:numeric
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDateTime:datetime
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDateTime:datetime
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDateTime:datetime
-SendVariantParam -> System.Data.SqlTypes.SqlDateTime:datetime
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDateTime:datetime
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDateTime:datetime
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric
- --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal
- --> ERROR: Expected base type money does not match actual base type numeric
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDecimal:numeric
- --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal
- --> ERROR: Expected base type money does not match actual base type numeric
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDecimal:numeric
- --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal
- --> ERROR: Expected base type money does not match actual base type numeric
-SendVariantParam -> System.Data.SqlTypes.SqlMoney:money
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlMoney:money
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlMoney:money
-End test 'SqlVariantParam'
------------------------------ TestSimpleParameter_Type [type: date value:1/1/0001 00:00:00] ------------------------------
Type => Expected : Actual == System.DateTime : System.DateTime
@@ -1768,6 +1156,3 @@ Base Type => Expected : Actual == time : datetime
Value => Expected : Actual == 3155378975999999999 : 3155378975999970000
SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = time]
SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM]
-Starting 'OutputParameter' tests
-Test setting output SqlParameter to an invalid value
-Done
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SqlParameterTest_DebugMode.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariant_ReleaseMode.bsl
similarity index 58%
rename from src/Microsoft.Data.SqlClient/tests/ManualTests/SqlParameterTest_DebugMode.bsl
rename to src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariant_ReleaseMode.bsl
index 955d43c807..aa19a20d9a 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SqlParameterTest_DebugMode.bsl
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariant_ReleaseMode.bsl
@@ -1,1076 +1,3 @@
-Starting test 'TvpTest'
-Starting Test using AsyncDebugScope
-Using stored procedure False
-TestStream (Sync True DataLen 100000 ParamLen -1 OLD False AVW False) is OK
-TestStream (Sync True DataLen 10000 ParamLen 9000 OLD False AVW False) is OK
-TestStream (Sync True DataLen 10000 ParamLen 1000 OLD False AVW False) is OK
-TestStream (Sync True DataLen 500 ParamLen 9000 OLD False AVW False) is OK
-TestStream (Sync True DataLen 500 ParamLen 1000 OLD False AVW False) is OK
-TestStream (Sync True DataLen 0 ParamLen -1 OLD False AVW False) is OK
-TestStream (Sync True DataLen 0 ParamLen 9000 OLD False AVW False) is OK
-TestStream (Sync True DataLen 0 ParamLen 1000 OLD False AVW False) is OK
-TestStream (Sync True DataLen 10000 ParamLen 0 OLD False AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD False AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen 9000 Error False OLD False AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen 1000 Error False OLD False AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen 0 Error False OLD False AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False OLD False AVW False) is OK
-TestXml2Text (Sync True ParamLen -1 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync True ParamLen 1000000 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync True ParamLen 9000 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync True ParamLen 1000 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync True ParamLen 0 NVARCHAR False OLD False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True OLD False AVW False) is OK
-TestXml2Text (Sync True ParamLen -1 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync True ParamLen 1000000 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync True ParamLen 9000 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync True ParamLen 1000 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync True ParamLen 0 NVARCHAR True OLD False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW False) is OK
-TestXml (Sync True LimitLength True ) is OK
-TestXml (Sync True LimitLength False ) is OK
-TestStream (Sync True DataLen 100000 ParamLen -1 OLD False AVW True) is OK
-TestStream (Sync True DataLen 0 ParamLen -1 OLD False AVW True) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD False AVW True) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD False AVW True) is OK
-TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
-TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW True) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW True) is OK
-TestXml (Sync True LimitLength False ) is OK
-TestStream (Sync False DataLen 100000 ParamLen -1 OLD False AVW False) is OK
-TestStream (Sync False DataLen 10000 ParamLen 9000 OLD False AVW False) is OK
-TestStream (Sync False DataLen 10000 ParamLen 1000 OLD False AVW False) is OK
-TestStream (Sync False DataLen 500 ParamLen 9000 OLD False AVW False) is OK
-TestStream (Sync False DataLen 500 ParamLen 1000 OLD False AVW False) is OK
-TestStream (Sync False DataLen 0 ParamLen -1 OLD False AVW False) is OK
-TestStream (Sync False DataLen 0 ParamLen 9000 OLD False AVW False) is OK
-TestStream (Sync False DataLen 0 ParamLen 1000 OLD False AVW False) is OK
-TestStream (Sync False DataLen 10000 ParamLen 0 OLD False AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD False AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen 9000 Error False OLD False AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen 1000 Error False OLD False AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen 0 Error False OLD False AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False OLD False AVW False) is OK
-TestXml2Text (Sync False ParamLen -1 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync False ParamLen 1000000 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync False ParamLen 9000 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync False ParamLen 1000 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync False ParamLen 0 NVARCHAR False OLD False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True OLD False AVW False) is OK
-TestXml2Text (Sync False ParamLen -1 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync False ParamLen 1000000 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync False ParamLen 9000 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync False ParamLen 1000 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync False ParamLen 0 NVARCHAR True OLD False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW False) is OK
-TestXml (Sync False LimitLength True ) is OK
-TestXml (Sync False LimitLength False ) is OK
-TestStream (Sync False DataLen 100000 ParamLen -1 OLD False AVW True) is OK
-TestStream (Sync False DataLen 0 ParamLen -1 OLD False AVW True) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD False AVW True) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD False AVW True) is OK
-TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
-TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW True) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW True) is OK
-TestXml (Sync False LimitLength False ) is OK
-TestStream (Sync True DataLen 100000 ParamLen -1 OLD True AVW False) is OK
-TestStream (Sync True DataLen 10000 ParamLen 9000 OLD True AVW False) is OK
-TestStream (Sync True DataLen 10000 ParamLen 1000 OLD True AVW False) is OK
-TestStream (Sync True DataLen 500 ParamLen 9000 OLD True AVW False) is OK
-TestStream (Sync True DataLen 500 ParamLen 1000 OLD True AVW False) is OK
-TestStream (Sync True DataLen 0 ParamLen -1 OLD True AVW False) is OK
-TestStream (Sync True DataLen 0 ParamLen 9000 OLD True AVW False) is OK
-TestStream (Sync True DataLen 0 ParamLen 1000 OLD True AVW False) is OK
-TestStream (Sync True DataLen 10000 ParamLen 0 OLD True AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD True AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen 9000 Error False OLD True AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen 1000 Error False OLD True AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen 0 Error False OLD True AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False OLD True AVW False) is OK
-TestXml2Text (Sync True ParamLen -1 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync True ParamLen 1000000 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync True ParamLen 9000 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync True ParamLen 1000 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync True ParamLen 0 NVARCHAR False OLD True) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True OLD True AVW False) is OK
-TestXml2Text (Sync True ParamLen -1 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync True ParamLen 1000000 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync True ParamLen 9000 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync True ParamLen 1000 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync True ParamLen 0 NVARCHAR True OLD True) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD True AVW False) is OK
-TestStream (Sync False DataLen 100000 ParamLen -1 OLD True AVW False) is OK
-TestStream (Sync False DataLen 10000 ParamLen 9000 OLD True AVW False) is OK
-TestStream (Sync False DataLen 10000 ParamLen 1000 OLD True AVW False) is OK
-TestStream (Sync False DataLen 500 ParamLen 9000 OLD True AVW False) is OK
-TestStream (Sync False DataLen 500 ParamLen 1000 OLD True AVW False) is OK
-TestStream (Sync False DataLen 0 ParamLen -1 OLD True AVW False) is OK
-TestStream (Sync False DataLen 0 ParamLen 9000 OLD True AVW False) is OK
-TestStream (Sync False DataLen 0 ParamLen 1000 OLD True AVW False) is OK
-TestStream (Sync False DataLen 10000 ParamLen 0 OLD True AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD True AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen 9000 Error False OLD True AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen 1000 Error False OLD True AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen 0 Error False OLD True AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False OLD True AVW False) is OK
-TestXml2Text (Sync False ParamLen -1 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync False ParamLen 1000000 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync False ParamLen 9000 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync False ParamLen 1000 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync False ParamLen 0 NVARCHAR False OLD True) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True OLD True AVW False) is OK
-TestXml2Text (Sync False ParamLen -1 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync False ParamLen 1000000 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync False ParamLen 9000 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync False ParamLen 1000 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync False ParamLen 0 NVARCHAR True OLD True) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD True AVW False) is OK
-Using stored procedure True
-TestStream (Sync True DataLen 100000 ParamLen -1 OLD False AVW False) is OK
-TestStream (Sync True DataLen 10000 ParamLen 9000 OLD False AVW False) is OK
-TestStream (Sync True DataLen 10000 ParamLen 1000 OLD False AVW False) is OK
-TestStream (Sync True DataLen 500 ParamLen 9000 OLD False AVW False) is OK
-TestStream (Sync True DataLen 500 ParamLen 1000 OLD False AVW False) is OK
-TestStream (Sync True DataLen 0 ParamLen -1 OLD False AVW False) is OK
-TestStream (Sync True DataLen 0 ParamLen 9000 OLD False AVW False) is OK
-TestStream (Sync True DataLen 0 ParamLen 1000 OLD False AVW False) is OK
-TestStream (Sync True DataLen 10000 ParamLen 0 OLD False AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD False AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen 9000 Error False OLD False AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen 1000 Error False OLD False AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen 0 Error False OLD False AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False OLD False AVW False) is OK
-TestXml2Text (Sync True ParamLen -1 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync True ParamLen 1000000 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync True ParamLen 9000 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync True ParamLen 1000 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync True ParamLen 0 NVARCHAR False OLD False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True OLD False AVW False) is OK
-TestXml2Text (Sync True ParamLen -1 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync True ParamLen 1000000 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync True ParamLen 9000 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync True ParamLen 1000 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync True ParamLen 0 NVARCHAR True OLD False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW False) is OK
-TestXml (Sync True LimitLength True ) is OK
-TestXml (Sync True LimitLength False ) is OK
-TestStream (Sync True DataLen 100000 ParamLen -1 OLD False AVW True) is OK
-TestStream (Sync True DataLen 0 ParamLen -1 OLD False AVW True) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD False AVW True) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD False AVW True) is OK
-TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
-TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW True) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW True) is OK
-TestXml (Sync True LimitLength False ) is OK
-TestStream (Sync False DataLen 100000 ParamLen -1 OLD False AVW False) is OK
-TestStream (Sync False DataLen 10000 ParamLen 9000 OLD False AVW False) is OK
-TestStream (Sync False DataLen 10000 ParamLen 1000 OLD False AVW False) is OK
-TestStream (Sync False DataLen 500 ParamLen 9000 OLD False AVW False) is OK
-TestStream (Sync False DataLen 500 ParamLen 1000 OLD False AVW False) is OK
-TestStream (Sync False DataLen 0 ParamLen -1 OLD False AVW False) is OK
-TestStream (Sync False DataLen 0 ParamLen 9000 OLD False AVW False) is OK
-TestStream (Sync False DataLen 0 ParamLen 1000 OLD False AVW False) is OK
-TestStream (Sync False DataLen 10000 ParamLen 0 OLD False AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD False AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen 9000 Error False OLD False AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen 1000 Error False OLD False AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen 0 Error False OLD False AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False OLD False AVW False) is OK
-TestXml2Text (Sync False ParamLen -1 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync False ParamLen 1000000 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync False ParamLen 9000 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync False ParamLen 1000 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync False ParamLen 0 NVARCHAR False OLD False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True OLD False AVW False) is OK
-TestXml2Text (Sync False ParamLen -1 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync False ParamLen 1000000 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync False ParamLen 9000 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync False ParamLen 1000 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync False ParamLen 0 NVARCHAR True OLD False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW False) is OK
-TestXml (Sync False LimitLength True ) is OK
-TestXml (Sync False LimitLength False ) is OK
-TestStream (Sync False DataLen 100000 ParamLen -1 OLD False AVW True) is OK
-TestStream (Sync False DataLen 0 ParamLen -1 OLD False AVW True) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD False AVW True) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD False AVW True) is OK
-TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
-TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW True) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW True) is OK
-TestXml (Sync False LimitLength False ) is OK
-TestStream (Sync True DataLen 100000 ParamLen -1 OLD True AVW False) is OK
-TestStream (Sync True DataLen 10000 ParamLen 9000 OLD True AVW False) is OK
-TestStream (Sync True DataLen 10000 ParamLen 1000 OLD True AVW False) is OK
-TestStream (Sync True DataLen 500 ParamLen 9000 OLD True AVW False) is OK
-TestStream (Sync True DataLen 500 ParamLen 1000 OLD True AVW False) is OK
-TestStream (Sync True DataLen 0 ParamLen -1 OLD True AVW False) is OK
-TestStream (Sync True DataLen 0 ParamLen 9000 OLD True AVW False) is OK
-TestStream (Sync True DataLen 0 ParamLen 1000 OLD True AVW False) is OK
-TestStream (Sync True DataLen 10000 ParamLen 0 OLD True AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD True AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen 9000 Error False OLD True AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen 1000 Error False OLD True AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen 0 Error False OLD True AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False OLD True AVW False) is OK
-TestXml2Text (Sync True ParamLen -1 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync True ParamLen 1000000 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync True ParamLen 9000 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync True ParamLen 1000 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync True ParamLen 0 NVARCHAR False OLD True) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True OLD True AVW False) is OK
-TestXml2Text (Sync True ParamLen -1 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync True ParamLen 1000000 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync True ParamLen 9000 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync True ParamLen 1000 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync True ParamLen 0 NVARCHAR True OLD True) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD True AVW False) is OK
-TestStream (Sync False DataLen 100000 ParamLen -1 OLD True AVW False) is OK
-TestStream (Sync False DataLen 10000 ParamLen 9000 OLD True AVW False) is OK
-TestStream (Sync False DataLen 10000 ParamLen 1000 OLD True AVW False) is OK
-TestStream (Sync False DataLen 500 ParamLen 9000 OLD True AVW False) is OK
-TestStream (Sync False DataLen 500 ParamLen 1000 OLD True AVW False) is OK
-TestStream (Sync False DataLen 0 ParamLen -1 OLD True AVW False) is OK
-TestStream (Sync False DataLen 0 ParamLen 9000 OLD True AVW False) is OK
-TestStream (Sync False DataLen 0 ParamLen 1000 OLD True AVW False) is OK
-TestStream (Sync False DataLen 10000 ParamLen 0 OLD True AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD True AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen 9000 Error False OLD True AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen 1000 Error False OLD True AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen 0 Error False OLD True AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False OLD True AVW False) is OK
-TestXml2Text (Sync False ParamLen -1 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync False ParamLen 1000000 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync False ParamLen 9000 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync False ParamLen 1000 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync False ParamLen 0 NVARCHAR False OLD True) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True OLD True AVW False) is OK
-TestXml2Text (Sync False ParamLen -1 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync False ParamLen 1000000 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync False ParamLen 9000 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync False ParamLen 1000 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync False ParamLen 0 NVARCHAR True OLD True) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD True AVW False) is OK
-Finished Test using AsyncDebugScope
-Test immediate cancel for binary stream
-PASS: Task is cancelled
-Test immediate cancel for text stream
-PASS: Task is cancelled
-Test immediate cancel for xml stream
-PASS: Task is cancelled
-Test command preparation PASS
-Test reuse of command after cancel
-PASS
-Test reuse of command after cancel
-PASS
-Test reuse of command after cancel
-PASS
-+++++++ Iteration 0 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 1 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 2 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 28
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 3 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 4 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 5 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 28
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 6 ++++++++
-SqlException creating objects: 1701
-SqlException dropping objects: 3701
-+++++++ Iteration 7 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 28
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 8 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 28
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 9 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 10 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 11 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 28
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 12 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 13 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 14 ++++++++
-SqlException creating objects: 1701
-SqlException dropping objects: 3701
-+++++++ Iteration 15 ++++++++
-SqlException creating objects: 1701
-SqlException dropping objects: 3701
-+++++++ Iteration 16 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 28
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 17 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 28
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 18 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 19 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 20 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-Matches = 14
-SqlException. Error Code: 2628
-Matches = 28
-Matches = 14
-SqlException. Error Code: 2628
-Matches = 14
-Matches = 14
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 21 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-SqlException. Error Code: 2628
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 22 ++++++++
-SqlException creating objects: 1701
-SqlException dropping objects: 3701
-+++++++ Iteration 23 ++++++++
-SqlException creating objects: 1701
-SqlException dropping objects: 3701
-+++++++ Iteration 24 ++++++++
-SqlException creating objects: 1701
-SqlException dropping objects: 3701
-+++++++ Iteration 25 ++++++++
-------IEnumerable---------
-Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=0, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=1, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=4, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=5, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=8, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=9, Column=5
-Matches = 162
-------DbDataReader---------
-Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=0, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=1, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=4, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=5, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=8, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=9, Column=5
-Matches = 162
-------DataTables---------
-SqlException. Error Code: 242
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 28
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 26 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 28
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-Matches = 14
-+++++++ Iteration 27 ++++++++
-------IEnumerable---------
-Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[1]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Failed Row[2]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[10]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Failed Row[11]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=0, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=1, Column=5
-Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
- Row=1, Column=9
-Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
- Row=2, Column=9
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=4, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=5, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=8, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=9, Column=5
-Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
- Row=10, Column=9
-Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
- Row=11, Column=9
-Matches = 158
-------DbDataReader---------
-Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[1]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Failed Row[2]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[10]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Failed Row[11]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=0, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=1, Column=5
-Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
- Row=1, Column=9
-Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
- Row=2, Column=9
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=4, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=5, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=8, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=9, Column=5
-Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
- Row=10, Column=9
-Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
- Row=11, Column=9
-Matches = 158
-------DataTables---------
-SqlException. Error Code: 242
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 2628
-SqlException. Error Code: 8115
-------- Sort order + uniqueness #1: simple -------
--------------
-0 Z-value 3/1/2000 12:00:00 AM 5
-1 X-value 1/1/2000 12:00:00 AM 7
-
--------------
-------- Sort order + uniqueness #2: mixed order -------
--------------
-4 X-value 1/1/2000 12:00:00 AM 3
-5 X-value 3/1/2000 12:00:00 AM 3
-
--------------
-------- default column #1: outer subset -------
--------------
--1 Y-value 1/1/2000 12:00:00 AM -1
--1 Z-value 1/1/2000 12:00:00 AM -1
-
--------------
-------- default column #1: middle subset -------
--------------
-4 DEFUALT 1/1/2006 12:00:00 AM 3
-5 DEFUALT 1/1/2006 12:00:00 AM 3
-
--------------
-------- default column #1: all -------
--------------
--1 DEFUALT 1/1/2006 12:00:00 AM -1
--1 DEFUALT 1/1/2006 12:00:00 AM -1
-
--------------
-
-Starting test 'SqlVariantParam'
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantParam -> System.Data.SqlTypes.SqlSingle:real
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantParam -> System.Data.SqlTypes.SqlSingle:real
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlString:nvarchar
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlString:nvarchar
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlString:nvarchar
-SendVariantParam -> System.Data.SqlTypes.SqlString:nvarchar
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlString:nvarchar
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlString:nvarchar
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDouble:float
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDouble:float
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDouble:float
-SendVariantParam -> System.Data.SqlTypes.SqlDouble:float
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDouble:float
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDouble:float
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBinary:varbinary
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBinary:varbinary
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBinary:varbinary
-SendVariantParam -> System.Data.SqlTypes.SqlBinary:varbinary
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBinary:varbinary
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBinary:varbinary
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
-SendVariantParam -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantParam -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantParam -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlByte:tinyint
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlByte:tinyint
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlByte:tinyint
-SendVariantParam -> System.Data.SqlTypes.SqlByte:tinyint
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlByte:tinyint
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlByte:tinyint
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt16:smallint
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt16:smallint
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt16:smallint
-SendVariantParam -> System.Data.SqlTypes.SqlInt16:smallint
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt16:smallint
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt16:smallint
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt32:int
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt32:int
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt32:int
-SendVariantParam -> System.Data.SqlTypes.SqlInt32:int
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt32:int
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt32:int
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt64:bigint
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt64:bigint
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt64:bigint
-SendVariantParam -> System.Data.SqlTypes.SqlInt64:bigint
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt64:bigint
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt64:bigint
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDecimal:numeric
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDecimal:numeric
-SendVariantParam -> System.Data.SqlTypes.SqlDecimal:numeric
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDecimal:numeric
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDateTime:datetime
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDateTime:datetime
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDateTime:datetime
-SendVariantParam -> System.Data.SqlTypes.SqlDateTime:datetime
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDateTime:datetime
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDateTime:datetime
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric
- --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal
- --> ERROR: Expected base type money does not match actual base type numeric
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDecimal:numeric
- --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal
- --> ERROR: Expected base type money does not match actual base type numeric
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDecimal:numeric
- --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal
- --> ERROR: Expected base type money does not match actual base type numeric
-SendVariantParam -> System.Data.SqlTypes.SqlMoney:money
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlMoney:money
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlMoney:money
-End test 'SqlVariantParam'
------------------------------ TestSimpleParameter_Type [type: date value:1/1/0001 00:00:00] ------------------------------
Type => Expected : Actual == System.DateTime : System.DateTime
@@ -2229,6 +1156,3 @@ Base Type => Expected : Actual == time : datetime
Value => Expected : Actual == 3155378975999999999 : 3155378975999970000
SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = time]
SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM]
-Starting 'OutputParameter' tests
-Test setting output SqlParameter to an invalid value
-Done
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SqlParameterTest_DebugMode_Azure.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariant_ReleaseMode_Azure.bsl
similarity index 58%
rename from src/Microsoft.Data.SqlClient/tests/ManualTests/SqlParameterTest_DebugMode_Azure.bsl
rename to src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariant_ReleaseMode_Azure.bsl
index 47929daf5c..aa19a20d9a 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SqlParameterTest_DebugMode_Azure.bsl
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariant_ReleaseMode_Azure.bsl
@@ -1,1076 +1,3 @@
-Starting test 'TvpTest'
-Starting Test using AsyncDebugScope
-Using stored procedure False
-TestStream (Sync True DataLen 100000 ParamLen -1 OLD False AVW False) is OK
-TestStream (Sync True DataLen 10000 ParamLen 9000 OLD False AVW False) is OK
-TestStream (Sync True DataLen 10000 ParamLen 1000 OLD False AVW False) is OK
-TestStream (Sync True DataLen 500 ParamLen 9000 OLD False AVW False) is OK
-TestStream (Sync True DataLen 500 ParamLen 1000 OLD False AVW False) is OK
-TestStream (Sync True DataLen 0 ParamLen -1 OLD False AVW False) is OK
-TestStream (Sync True DataLen 0 ParamLen 9000 OLD False AVW False) is OK
-TestStream (Sync True DataLen 0 ParamLen 1000 OLD False AVW False) is OK
-TestStream (Sync True DataLen 10000 ParamLen 0 OLD False AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD False AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen 9000 Error False OLD False AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen 1000 Error False OLD False AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen 0 Error False OLD False AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False OLD False AVW False) is OK
-TestXml2Text (Sync True ParamLen -1 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync True ParamLen 1000000 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync True ParamLen 9000 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync True ParamLen 1000 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync True ParamLen 0 NVARCHAR False OLD False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True OLD False AVW False) is OK
-TestXml2Text (Sync True ParamLen -1 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync True ParamLen 1000000 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync True ParamLen 9000 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync True ParamLen 1000 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync True ParamLen 0 NVARCHAR True OLD False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW False) is OK
-TestXml (Sync True LimitLength True ) is OK
-TestXml (Sync True LimitLength False ) is OK
-TestStream (Sync True DataLen 100000 ParamLen -1 OLD False AVW True) is OK
-TestStream (Sync True DataLen 0 ParamLen -1 OLD False AVW True) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD False AVW True) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD False AVW True) is OK
-TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
-TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW True) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW True) is OK
-TestXml (Sync True LimitLength False ) is OK
-TestStream (Sync False DataLen 100000 ParamLen -1 OLD False AVW False) is OK
-TestStream (Sync False DataLen 10000 ParamLen 9000 OLD False AVW False) is OK
-TestStream (Sync False DataLen 10000 ParamLen 1000 OLD False AVW False) is OK
-TestStream (Sync False DataLen 500 ParamLen 9000 OLD False AVW False) is OK
-TestStream (Sync False DataLen 500 ParamLen 1000 OLD False AVW False) is OK
-TestStream (Sync False DataLen 0 ParamLen -1 OLD False AVW False) is OK
-TestStream (Sync False DataLen 0 ParamLen 9000 OLD False AVW False) is OK
-TestStream (Sync False DataLen 0 ParamLen 1000 OLD False AVW False) is OK
-TestStream (Sync False DataLen 10000 ParamLen 0 OLD False AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD False AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen 9000 Error False OLD False AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen 1000 Error False OLD False AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen 0 Error False OLD False AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False OLD False AVW False) is OK
-TestXml2Text (Sync False ParamLen -1 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync False ParamLen 1000000 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync False ParamLen 9000 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync False ParamLen 1000 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync False ParamLen 0 NVARCHAR False OLD False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True OLD False AVW False) is OK
-TestXml2Text (Sync False ParamLen -1 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync False ParamLen 1000000 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync False ParamLen 9000 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync False ParamLen 1000 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync False ParamLen 0 NVARCHAR True OLD False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW False) is OK
-TestXml (Sync False LimitLength True ) is OK
-TestXml (Sync False LimitLength False ) is OK
-TestStream (Sync False DataLen 100000 ParamLen -1 OLD False AVW True) is OK
-TestStream (Sync False DataLen 0 ParamLen -1 OLD False AVW True) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD False AVW True) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD False AVW True) is OK
-TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
-TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW True) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW True) is OK
-TestXml (Sync False LimitLength False ) is OK
-TestStream (Sync True DataLen 100000 ParamLen -1 OLD True AVW False) is OK
-TestStream (Sync True DataLen 10000 ParamLen 9000 OLD True AVW False) is OK
-TestStream (Sync True DataLen 10000 ParamLen 1000 OLD True AVW False) is OK
-TestStream (Sync True DataLen 500 ParamLen 9000 OLD True AVW False) is OK
-TestStream (Sync True DataLen 500 ParamLen 1000 OLD True AVW False) is OK
-TestStream (Sync True DataLen 0 ParamLen -1 OLD True AVW False) is OK
-TestStream (Sync True DataLen 0 ParamLen 9000 OLD True AVW False) is OK
-TestStream (Sync True DataLen 0 ParamLen 1000 OLD True AVW False) is OK
-TestStream (Sync True DataLen 10000 ParamLen 0 OLD True AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD True AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen 9000 Error False OLD True AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen 1000 Error False OLD True AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen 0 Error False OLD True AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False OLD True AVW False) is OK
-TestXml2Text (Sync True ParamLen -1 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync True ParamLen 1000000 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync True ParamLen 9000 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync True ParamLen 1000 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync True ParamLen 0 NVARCHAR False OLD True) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True OLD True AVW False) is OK
-TestXml2Text (Sync True ParamLen -1 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync True ParamLen 1000000 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync True ParamLen 9000 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync True ParamLen 1000 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync True ParamLen 0 NVARCHAR True OLD True) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD True AVW False) is OK
-TestStream (Sync False DataLen 100000 ParamLen -1 OLD True AVW False) is OK
-TestStream (Sync False DataLen 10000 ParamLen 9000 OLD True AVW False) is OK
-TestStream (Sync False DataLen 10000 ParamLen 1000 OLD True AVW False) is OK
-TestStream (Sync False DataLen 500 ParamLen 9000 OLD True AVW False) is OK
-TestStream (Sync False DataLen 500 ParamLen 1000 OLD True AVW False) is OK
-TestStream (Sync False DataLen 0 ParamLen -1 OLD True AVW False) is OK
-TestStream (Sync False DataLen 0 ParamLen 9000 OLD True AVW False) is OK
-TestStream (Sync False DataLen 0 ParamLen 1000 OLD True AVW False) is OK
-TestStream (Sync False DataLen 10000 ParamLen 0 OLD True AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD True AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen 9000 Error False OLD True AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen 1000 Error False OLD True AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen 0 Error False OLD True AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False OLD True AVW False) is OK
-TestXml2Text (Sync False ParamLen -1 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync False ParamLen 1000000 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync False ParamLen 9000 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync False ParamLen 1000 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync False ParamLen 0 NVARCHAR False OLD True) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True OLD True AVW False) is OK
-TestXml2Text (Sync False ParamLen -1 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync False ParamLen 1000000 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync False ParamLen 9000 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync False ParamLen 1000 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync False ParamLen 0 NVARCHAR True OLD True) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD True AVW False) is OK
-Using stored procedure True
-TestStream (Sync True DataLen 100000 ParamLen -1 OLD False AVW False) is OK
-TestStream (Sync True DataLen 10000 ParamLen 9000 OLD False AVW False) is OK
-TestStream (Sync True DataLen 10000 ParamLen 1000 OLD False AVW False) is OK
-TestStream (Sync True DataLen 500 ParamLen 9000 OLD False AVW False) is OK
-TestStream (Sync True DataLen 500 ParamLen 1000 OLD False AVW False) is OK
-TestStream (Sync True DataLen 0 ParamLen -1 OLD False AVW False) is OK
-TestStream (Sync True DataLen 0 ParamLen 9000 OLD False AVW False) is OK
-TestStream (Sync True DataLen 0 ParamLen 1000 OLD False AVW False) is OK
-TestStream (Sync True DataLen 10000 ParamLen 0 OLD False AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD False AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen 9000 Error False OLD False AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen 1000 Error False OLD False AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen 0 Error False OLD False AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False OLD False AVW False) is OK
-TestXml2Text (Sync True ParamLen -1 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync True ParamLen 1000000 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync True ParamLen 9000 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync True ParamLen 1000 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync True ParamLen 0 NVARCHAR False OLD False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True OLD False AVW False) is OK
-TestXml2Text (Sync True ParamLen -1 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync True ParamLen 1000000 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync True ParamLen 9000 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync True ParamLen 1000 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync True ParamLen 0 NVARCHAR True OLD False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW False) is OK
-TestXml (Sync True LimitLength True ) is OK
-TestXml (Sync True LimitLength False ) is OK
-TestStream (Sync True DataLen 100000 ParamLen -1 OLD False AVW True) is OK
-TestStream (Sync True DataLen 0 ParamLen -1 OLD False AVW True) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD False AVW True) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD False AVW True) is OK
-TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
-TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW True) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW True) is OK
-TestXml (Sync True LimitLength False ) is OK
-TestStream (Sync False DataLen 100000 ParamLen -1 OLD False AVW False) is OK
-TestStream (Sync False DataLen 10000 ParamLen 9000 OLD False AVW False) is OK
-TestStream (Sync False DataLen 10000 ParamLen 1000 OLD False AVW False) is OK
-TestStream (Sync False DataLen 500 ParamLen 9000 OLD False AVW False) is OK
-TestStream (Sync False DataLen 500 ParamLen 1000 OLD False AVW False) is OK
-TestStream (Sync False DataLen 0 ParamLen -1 OLD False AVW False) is OK
-TestStream (Sync False DataLen 0 ParamLen 9000 OLD False AVW False) is OK
-TestStream (Sync False DataLen 0 ParamLen 1000 OLD False AVW False) is OK
-TestStream (Sync False DataLen 10000 ParamLen 0 OLD False AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD False AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen 9000 Error False OLD False AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen 1000 Error False OLD False AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen 0 Error False OLD False AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False OLD False AVW False) is OK
-TestXml2Text (Sync False ParamLen -1 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync False ParamLen 1000000 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync False ParamLen 9000 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync False ParamLen 1000 NVARCHAR False OLD False) is OK
-TestXml2Text (Sync False ParamLen 0 NVARCHAR False OLD False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True OLD False AVW False) is OK
-TestXml2Text (Sync False ParamLen -1 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync False ParamLen 1000000 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync False ParamLen 9000 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync False ParamLen 1000 NVARCHAR True OLD False) is OK
-TestXml2Text (Sync False ParamLen 0 NVARCHAR True OLD False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD False AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW False) is OK
-TestXml (Sync False LimitLength True ) is OK
-TestXml (Sync False LimitLength False ) is OK
-TestStream (Sync False DataLen 100000 ParamLen -1 OLD False AVW True) is OK
-TestStream (Sync False DataLen 0 ParamLen -1 OLD False AVW True) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD False AVW True) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD False AVW True) is OK
-TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
-TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW True) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW True) is OK
-TestXml (Sync False LimitLength False ) is OK
-TestStream (Sync True DataLen 100000 ParamLen -1 OLD True AVW False) is OK
-TestStream (Sync True DataLen 10000 ParamLen 9000 OLD True AVW False) is OK
-TestStream (Sync True DataLen 10000 ParamLen 1000 OLD True AVW False) is OK
-TestStream (Sync True DataLen 500 ParamLen 9000 OLD True AVW False) is OK
-TestStream (Sync True DataLen 500 ParamLen 1000 OLD True AVW False) is OK
-TestStream (Sync True DataLen 0 ParamLen -1 OLD True AVW False) is OK
-TestStream (Sync True DataLen 0 ParamLen 9000 OLD True AVW False) is OK
-TestStream (Sync True DataLen 0 ParamLen 1000 OLD True AVW False) is OK
-TestStream (Sync True DataLen 10000 ParamLen 0 OLD True AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD True AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen 9000 Error False OLD True AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen 1000 Error False OLD True AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen 0 Error False OLD True AVW False) is OK
-TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False OLD True AVW False) is OK
-TestXml2Text (Sync True ParamLen -1 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync True ParamLen 1000000 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync True ParamLen 9000 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync True ParamLen 1000 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync True ParamLen 0 NVARCHAR False OLD True) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True OLD True AVW False) is OK
-TestXml2Text (Sync True ParamLen -1 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync True ParamLen 1000000 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync True ParamLen 9000 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync True ParamLen 1000 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync True ParamLen 0 NVARCHAR True OLD True) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD True AVW False) is OK
-TestStream (Sync False DataLen 100000 ParamLen -1 OLD True AVW False) is OK
-TestStream (Sync False DataLen 10000 ParamLen 9000 OLD True AVW False) is OK
-TestStream (Sync False DataLen 10000 ParamLen 1000 OLD True AVW False) is OK
-TestStream (Sync False DataLen 500 ParamLen 9000 OLD True AVW False) is OK
-TestStream (Sync False DataLen 500 ParamLen 1000 OLD True AVW False) is OK
-TestStream (Sync False DataLen 0 ParamLen -1 OLD True AVW False) is OK
-TestStream (Sync False DataLen 0 ParamLen 9000 OLD True AVW False) is OK
-TestStream (Sync False DataLen 0 ParamLen 1000 OLD True AVW False) is OK
-TestStream (Sync False DataLen 10000 ParamLen 0 OLD True AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD True AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen 9000 Error False OLD True AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen 1000 Error False OLD True AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen 0 Error False OLD True AVW False) is OK
-TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False OLD True AVW False) is OK
-TestXml2Text (Sync False ParamLen -1 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync False ParamLen 1000000 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync False ParamLen 9000 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync False ParamLen 1000 NVARCHAR False OLD True) is OK
-TestXml2Text (Sync False ParamLen 0 NVARCHAR False OLD True) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
-TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True OLD True AVW False) is OK
-TestXml2Text (Sync False ParamLen -1 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync False ParamLen 1000000 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync False ParamLen 9000 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync False ParamLen 1000 NVARCHAR True OLD True) is OK
-TestXml2Text (Sync False ParamLen 0 NVARCHAR True OLD True) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD True AVW False) is OK
-TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD True AVW False) is OK
-Finished Test using AsyncDebugScope
-Test immediate cancel for binary stream
-PASS: Task is cancelled
-Test immediate cancel for text stream
-PASS: Task is cancelled
-Test immediate cancel for xml stream
-PASS: Task is cancelled
-Test command preparation PASS
-Test reuse of command after cancel
-PASS
-Test reuse of command after cancel
-PASS
-Test reuse of command after cancel
-PASS
-+++++++ Iteration 0 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 1 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 2 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 28
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 3 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 4 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 5 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 28
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 6 ++++++++
-SqlException creating objects: 1701
-SqlException dropping objects: 3701
-+++++++ Iteration 7 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 28
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 8 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 28
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 9 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 10 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 11 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 28
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 12 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 13 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 14 ++++++++
-SqlException creating objects: 1701
-SqlException dropping objects: 3701
-+++++++ Iteration 15 ++++++++
-SqlException creating objects: 1701
-SqlException dropping objects: 3701
-+++++++ Iteration 16 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 28
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 17 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 28
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 18 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 19 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 20 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-Matches = 14
-SqlException. Error Code: 8152
-Matches = 28
-Matches = 14
-SqlException. Error Code: 8152
-Matches = 14
-Matches = 14
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 21 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-SqlException. Error Code: 8152
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 22 ++++++++
-SqlException creating objects: 1701
-SqlException dropping objects: 3701
-+++++++ Iteration 23 ++++++++
-SqlException creating objects: 1701
-SqlException dropping objects: 3701
-+++++++ Iteration 24 ++++++++
-SqlException creating objects: 1701
-SqlException dropping objects: 3701
-+++++++ Iteration 25 ++++++++
-------IEnumerable---------
-Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=0, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=1, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=4, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=5, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=8, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=9, Column=5
-Matches = 162
-------DbDataReader---------
-Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=0, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=1, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=4, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=5, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=8, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=9, Column=5
-Matches = 162
-------DataTables---------
-SqlException. Error Code: 242
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 28
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 26 ++++++++
-------IEnumerable---------
-Matches = 168
-------DbDataReader---------
-Matches = 168
-------DataTables---------
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 28
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-Matches = 14
-+++++++ Iteration 27 ++++++++
-------IEnumerable---------
-Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[1]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Failed Row[2]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[10]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Failed Row[11]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=0, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=1, Column=5
-Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
- Row=1, Column=9
-Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
- Row=2, Column=9
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=4, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=5, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=8, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=9, Column=5
-Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
- Row=10, Column=9
-Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
- Row=11, Column=9
-Matches = 158
-------DbDataReader---------
-Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[1]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Failed Row[2]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
-Failed Row[10]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Failed Row[11]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=0, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=1, Column=5
-Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
- Row=1, Column=9
-Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
- Row=2, Column=9
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=4, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=5, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=8, Column=5
-Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
- Row=9, Column=5
-Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
- Row=10, Column=9
-Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
- Row=11, Column=9
-Matches = 158
-------DataTables---------
-SqlException. Error Code: 242
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8152
-SqlException. Error Code: 8115
-------- Sort order + uniqueness #1: simple -------
--------------
-0 Z-value 3/1/2000 12:00:00 AM 5
-1 X-value 1/1/2000 12:00:00 AM 7
-
--------------
-------- Sort order + uniqueness #2: mixed order -------
--------------
-4 X-value 1/1/2000 12:00:00 AM 3
-5 X-value 3/1/2000 12:00:00 AM 3
-
--------------
-------- default column #1: outer subset -------
--------------
--1 Y-value 1/1/2000 12:00:00 AM -1
--1 Z-value 1/1/2000 12:00:00 AM -1
-
--------------
-------- default column #1: middle subset -------
--------------
-4 DEFUALT 1/1/2006 12:00:00 AM 3
-5 DEFUALT 1/1/2006 12:00:00 AM 3
-
--------------
-------- default column #1: all -------
--------------
--1 DEFUALT 1/1/2006 12:00:00 AM -1
--1 DEFUALT 1/1/2006 12:00:00 AM -1
-
--------------
-
-Starting test 'SqlVariantParam'
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantParam -> System.Data.SqlTypes.SqlSingle:real
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantParam -> System.Data.SqlTypes.SqlSingle:real
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlString:nvarchar
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlString:nvarchar
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlString:nvarchar
-SendVariantParam -> System.Data.SqlTypes.SqlString:nvarchar
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlString:nvarchar
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlString:nvarchar
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDouble:float
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDouble:float
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDouble:float
-SendVariantParam -> System.Data.SqlTypes.SqlDouble:float
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDouble:float
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDouble:float
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBinary:varbinary
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBinary:varbinary
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBinary:varbinary
-SendVariantParam -> System.Data.SqlTypes.SqlBinary:varbinary
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBinary:varbinary
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBinary:varbinary
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
-SendVariantParam -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantParam -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantParam -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlByte:tinyint
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlByte:tinyint
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlByte:tinyint
-SendVariantParam -> System.Data.SqlTypes.SqlByte:tinyint
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlByte:tinyint
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlByte:tinyint
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt16:smallint
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt16:smallint
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt16:smallint
-SendVariantParam -> System.Data.SqlTypes.SqlInt16:smallint
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt16:smallint
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt16:smallint
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt32:int
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt32:int
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt32:int
-SendVariantParam -> System.Data.SqlTypes.SqlInt32:int
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt32:int
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt32:int
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt64:bigint
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt64:bigint
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt64:bigint
-SendVariantParam -> System.Data.SqlTypes.SqlInt64:bigint
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt64:bigint
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt64:bigint
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDecimal:numeric
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDecimal:numeric
-SendVariantParam -> System.Data.SqlTypes.SqlDecimal:numeric
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDecimal:numeric
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDateTime:datetime
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDateTime:datetime
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDateTime:datetime
-SendVariantParam -> System.Data.SqlTypes.SqlDateTime:datetime
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDateTime:datetime
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDateTime:datetime
-SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric
- --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal
- --> ERROR: Expected base type money does not match actual base type numeric
-SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDecimal:numeric
- --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal
- --> ERROR: Expected base type money does not match actual base type numeric
-SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDecimal:numeric
- --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal
- --> ERROR: Expected base type money does not match actual base type numeric
-SendVariantParam -> System.Data.SqlTypes.SqlMoney:money
-SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlMoney:money
-SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlMoney:money
-End test 'SqlVariantParam'
------------------------------ TestSimpleParameter_Type [type: date value:1/1/0001 00:00:00] ------------------------------
Type => Expected : Actual == System.DateTime : System.DateTime
@@ -2229,6 +1156,3 @@ Base Type => Expected : Actual == time : datetime
Value => Expected : Actual == 3155378975999999999 : 3155378975999970000
SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VARIANT BASE TYPE MISMATCH!!! [Actual = datetime] [Expected = time]
SqlBulkCopy From Data Row [Variant Type]>>> ERROR: VALUE MISMATCH!!! [Actual = 12/31/9999 11:59:59 PM] [Expected = 12/31/9999 11:59:59 PM]
-Starting 'OutputParameter' tests
-Test setting output SqlParameter to an invalid value
-Done
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameterTests.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameterTests.cs
new file mode 100644
index 0000000000..7719ed2c01
--- /dev/null
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameterTests.cs
@@ -0,0 +1,146 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+using System.Globalization;
+using System.IO;
+using System.Text;
+using System.Threading;
+using Xunit;
+
+namespace Microsoft.Data.SqlClient.ManualTesting.Tests
+{
+ ///
+ /// Tests for output parameters.
+ /// These tests run independently with their own baseline comparison.
+ ///
+ [Collection("ParameterBaselineTests")]
+ public class OutputParameterTests
+ {
+ private readonly string _connStr;
+
+ public OutputParameterTests()
+ {
+ _connStr = DataTestUtility.TCPConnectionString;
+ }
+
+ [Trait("Category", "flaky")]
+ [ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
+ public void OutputParameterTest()
+ {
+ Assert.True(RunTestAndCompareWithBaseline());
+ }
+
+ private bool RunTestAndCompareWithBaseline()
+ {
+ CultureInfo previousCulture = Thread.CurrentThread.CurrentCulture;
+ Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
+ try
+ {
+ string outputPath = "OutputParameter.out";
+ string baselinePath;
+#if DEBUG
+ if (DataTestUtility.IsNotAzureServer() || DataTestUtility.IsManagedInstance)
+ {
+ baselinePath = "OutputParameter_DebugMode.bsl";
+ }
+ else
+ {
+ baselinePath = "OutputParameter_DebugMode_Azure.bsl";
+ }
+#else
+ if (DataTestUtility.IsNotAzureServer() || DataTestUtility.IsManagedInstance)
+ {
+ baselinePath = "OutputParameter_ReleaseMode.bsl";
+ }
+ else
+ {
+ baselinePath = "OutputParameter_ReleaseMode_Azure.bsl";
+ }
+#endif
+
+ var fstream = new FileStream(outputPath, FileMode.Create, FileAccess.Write, FileShare.Read);
+ var swriter = new StreamWriter(fstream, Encoding.UTF8);
+ var twriter = new TvpTest.CarriageReturnLineFeedReplacer(swriter);
+ Console.SetOut(twriter);
+
+ // Run Test
+ OutputParameter.Run(_connStr);
+
+ Console.Out.Flush();
+ Console.Out.Dispose();
+
+ // Recover the standard output stream
+ StreamWriter standardOutput = new(Console.OpenStandardOutput());
+ standardOutput.AutoFlush = true;
+ Console.SetOut(standardOutput);
+
+ // Compare output file
+ var comparisonResult = FindDiffFromBaseline(baselinePath, outputPath);
+
+ if (string.IsNullOrEmpty(comparisonResult))
+ {
+ return true;
+ }
+
+ Console.WriteLine("OutputParameterTest Failed!");
+ Console.WriteLine("Please compare baseline: {0} with output: {1}", Path.GetFullPath(baselinePath), Path.GetFullPath(outputPath));
+ Console.WriteLine("Comparison Results:");
+ Console.WriteLine(comparisonResult);
+ return false;
+ }
+ finally
+ {
+ Thread.CurrentThread.CurrentCulture = previousCulture;
+ }
+ }
+
+ private static string FindDiffFromBaseline(string baselinePath, string outputPath)
+ {
+ var expectedLines = File.ReadAllLines(baselinePath);
+ var outputLines = File.ReadAllLines(outputPath);
+
+ var comparisonSb = new StringBuilder();
+
+ var expectedLength = expectedLines.Length;
+ var outputLength = outputLines.Length;
+ var findDiffLength = Math.Min(expectedLength, outputLength);
+
+ for (var lineNo = 0; lineNo < findDiffLength; lineNo++)
+ {
+ if (!expectedLines[lineNo].Equals(outputLines[lineNo]))
+ {
+ comparisonSb.AppendFormat("** DIFF at line {0} \n", lineNo);
+ comparisonSb.AppendFormat("A : {0} \n", outputLines[lineNo]);
+ comparisonSb.AppendFormat("E : {0} \n", expectedLines[lineNo]);
+ }
+ }
+
+ var startIndex = findDiffLength - 1;
+ if (startIndex < 0)
+ {
+ startIndex = 0;
+ }
+
+ if (findDiffLength < expectedLength)
+ {
+ comparisonSb.AppendFormat("** MISSING \n");
+ for (var lineNo = startIndex; lineNo < expectedLength; lineNo++)
+ {
+ comparisonSb.AppendFormat("{0} : {1}", lineNo, expectedLines[lineNo]);
+ }
+ }
+ if (findDiffLength < outputLength)
+ {
+ comparisonSb.AppendFormat("** EXTRA \n");
+ for (var lineNo = startIndex; lineNo < outputLength; lineNo++)
+ {
+ comparisonSb.AppendFormat("{0} : {1}", lineNo, outputLines[lineNo]);
+ }
+ }
+
+ return comparisonSb.ToString();
+ }
+ }
+}
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameter_DebugMode.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameter_DebugMode.bsl
new file mode 100644
index 0000000000..14ce4d701d
--- /dev/null
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameter_DebugMode.bsl
@@ -0,0 +1,3 @@
+Starting 'OutputParameter' tests
+Test setting output SqlParameter to an invalid value
+Done
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameter_DebugMode_Azure.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameter_DebugMode_Azure.bsl
new file mode 100644
index 0000000000..14ce4d701d
--- /dev/null
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameter_DebugMode_Azure.bsl
@@ -0,0 +1,3 @@
+Starting 'OutputParameter' tests
+Test setting output SqlParameter to an invalid value
+Done
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameter_ReleaseMode.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameter_ReleaseMode.bsl
new file mode 100644
index 0000000000..14ce4d701d
--- /dev/null
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameter_ReleaseMode.bsl
@@ -0,0 +1,3 @@
+Starting 'OutputParameter' tests
+Test setting output SqlParameter to an invalid value
+Done
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameter_ReleaseMode_Azure.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameter_ReleaseMode_Azure.bsl
new file mode 100644
index 0000000000..14ce4d701d
--- /dev/null
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameter_ReleaseMode_Azure.bsl
@@ -0,0 +1,3 @@
+Starting 'OutputParameter' tests
+Test setting output SqlParameter to an invalid value
+Done
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/ParametersTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/ParametersTest.cs
index 4574f81a93..67c9d0aa2b 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/ParametersTest.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/ParametersTest.cs
@@ -258,6 +258,7 @@ public static void Test_WithGuidValue_ShouldReturnGuid()
}
// Synapse: Parse error at line: 1, column: 8: Incorrect syntax near 'TYPE'.
+ [Trait("Category", "flaky")]
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
public static void TestParametersWithDatatablesTVPInsert()
{
@@ -326,6 +327,7 @@ public static void TestParametersWithDatatablesTVPInsert()
#if !NETFRAMEWORK
// Synapse: Parse error at line: 1, column: 8: Incorrect syntax near 'TYPE'.
+ [Trait("Category", "flaky")]
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
public static void TestParametersWithSqlRecordsTVPInsert()
{
@@ -409,6 +411,7 @@ @newRoads as {typeName} READONLY
}
}
+ [Trait("Category", "flaky")]
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
public static void TestDateOnlyTVPDataTable_CommandSP()
{
@@ -457,6 +460,7 @@ public static void TestDateOnlyTVPDataTable_CommandSP()
}
}
+ [Trait("Category", "flaky")]
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
public static void TestDateOnlyTVPSqlDataRecord_CommandSP()
{
@@ -648,6 +652,7 @@ public static void TestScaledDecimalParameter_BulkCopy(string connectionString,
}
// Synapse: Parse error at line: 2, column: 8: Incorrect syntax near 'TYPE'.
+ [Trait("Category", "flaky")]
[ConditionalTheory(typeof(DataTestUtility), nameof(DataTestUtility.IsNotAzureSynapse))]
[ClassData(typeof(ConnectionStringsProvider))]
public static void TestScaledDecimalTVP_CommandSP(string connectionString, bool truncateScaledDecimal)
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParameterTests.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParameterTests.cs
new file mode 100644
index 0000000000..f7002f559a
--- /dev/null
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParameterTests.cs
@@ -0,0 +1,146 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+using System.Globalization;
+using System.IO;
+using System.Text;
+using System.Threading;
+using Xunit;
+
+namespace Microsoft.Data.SqlClient.ManualTesting.Tests
+{
+ ///
+ /// Tests for SQL Variant parameters.
+ /// These tests run independently with their own baseline comparison.
+ ///
+ [Collection("ParameterBaselineTests")]
+ public class SqlVariantParameterTests
+ {
+ private readonly string _connStr;
+
+ public SqlVariantParameterTests()
+ {
+ _connStr = DataTestUtility.TCPConnectionString;
+ }
+
+ [Trait("Category", "flaky")]
+ [ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
+ public void SqlVariantParameterTest()
+ {
+ Assert.True(RunTestAndCompareWithBaseline());
+ }
+
+ private bool RunTestAndCompareWithBaseline()
+ {
+ CultureInfo previousCulture = Thread.CurrentThread.CurrentCulture;
+ Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
+ try
+ {
+ string outputPath = "SqlVariantParameter.out";
+ string baselinePath;
+#if DEBUG
+ if (DataTestUtility.IsNotAzureServer() || DataTestUtility.IsManagedInstance)
+ {
+ baselinePath = "SqlVariantParameter_DebugMode.bsl";
+ }
+ else
+ {
+ baselinePath = "SqlVariantParameter_DebugMode_Azure.bsl";
+ }
+#else
+ if (DataTestUtility.IsNotAzureServer() || DataTestUtility.IsManagedInstance)
+ {
+ baselinePath = "SqlVariantParameter_ReleaseMode.bsl";
+ }
+ else
+ {
+ baselinePath = "SqlVariantParameter_ReleaseMode_Azure.bsl";
+ }
+#endif
+
+ var fstream = new FileStream(outputPath, FileMode.Create, FileAccess.Write, FileShare.Read);
+ var swriter = new StreamWriter(fstream, Encoding.UTF8);
+ var twriter = new TvpTest.CarriageReturnLineFeedReplacer(swriter);
+ Console.SetOut(twriter);
+
+ // Run Test
+ SqlVariantParam.SendAllSqlTypesInsideVariant(_connStr);
+
+ Console.Out.Flush();
+ Console.Out.Dispose();
+
+ // Recover the standard output stream
+ StreamWriter standardOutput = new(Console.OpenStandardOutput());
+ standardOutput.AutoFlush = true;
+ Console.SetOut(standardOutput);
+
+ // Compare output file
+ var comparisonResult = FindDiffFromBaseline(baselinePath, outputPath);
+
+ if (string.IsNullOrEmpty(comparisonResult))
+ {
+ return true;
+ }
+
+ Console.WriteLine("SqlVariantParameterTest Failed!");
+ Console.WriteLine("Please compare baseline: {0} with output: {1}", Path.GetFullPath(baselinePath), Path.GetFullPath(outputPath));
+ Console.WriteLine("Comparison Results:");
+ Console.WriteLine(comparisonResult);
+ return false;
+ }
+ finally
+ {
+ Thread.CurrentThread.CurrentCulture = previousCulture;
+ }
+ }
+
+ private static string FindDiffFromBaseline(string baselinePath, string outputPath)
+ {
+ var expectedLines = File.ReadAllLines(baselinePath);
+ var outputLines = File.ReadAllLines(outputPath);
+
+ var comparisonSb = new StringBuilder();
+
+ var expectedLength = expectedLines.Length;
+ var outputLength = outputLines.Length;
+ var findDiffLength = Math.Min(expectedLength, outputLength);
+
+ for (var lineNo = 0; lineNo < findDiffLength; lineNo++)
+ {
+ if (!expectedLines[lineNo].Equals(outputLines[lineNo]))
+ {
+ comparisonSb.AppendFormat("** DIFF at line {0} \n", lineNo);
+ comparisonSb.AppendFormat("A : {0} \n", outputLines[lineNo]);
+ comparisonSb.AppendFormat("E : {0} \n", expectedLines[lineNo]);
+ }
+ }
+
+ var startIndex = findDiffLength - 1;
+ if (startIndex < 0)
+ {
+ startIndex = 0;
+ }
+
+ if (findDiffLength < expectedLength)
+ {
+ comparisonSb.AppendFormat("** MISSING \n");
+ for (var lineNo = startIndex; lineNo < expectedLength; lineNo++)
+ {
+ comparisonSb.AppendFormat("{0} : {1}", lineNo, expectedLines[lineNo]);
+ }
+ }
+ if (findDiffLength < outputLength)
+ {
+ comparisonSb.AppendFormat("** EXTRA \n");
+ for (var lineNo = startIndex; lineNo < outputLength; lineNo++)
+ {
+ comparisonSb.AppendFormat("{0} : {1}", lineNo, outputLines[lineNo]);
+ }
+ }
+
+ return comparisonSb.ToString();
+ }
+ }
+}
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParameter_DebugMode.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParameter_DebugMode.bsl
new file mode 100644
index 0000000000..1b8f54d980
--- /dev/null
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParameter_DebugMode.bsl
@@ -0,0 +1,99 @@
+
+Starting test 'SqlVariantParam'
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantParam -> System.Data.SqlTypes.SqlSingle:real
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantParam -> System.Data.SqlTypes.SqlSingle:real
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlString:nvarchar
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlString:nvarchar
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlString:nvarchar
+SendVariantParam -> System.Data.SqlTypes.SqlString:nvarchar
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlString:nvarchar
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlString:nvarchar
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDouble:float
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDouble:float
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDouble:float
+SendVariantParam -> System.Data.SqlTypes.SqlDouble:float
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDouble:float
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDouble:float
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBinary:varbinary
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBinary:varbinary
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBinary:varbinary
+SendVariantParam -> System.Data.SqlTypes.SqlBinary:varbinary
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBinary:varbinary
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBinary:varbinary
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
+SendVariantParam -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantParam -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantParam -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlByte:tinyint
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlByte:tinyint
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlByte:tinyint
+SendVariantParam -> System.Data.SqlTypes.SqlByte:tinyint
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlByte:tinyint
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlByte:tinyint
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt16:smallint
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt16:smallint
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt16:smallint
+SendVariantParam -> System.Data.SqlTypes.SqlInt16:smallint
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt16:smallint
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt16:smallint
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt32:int
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt32:int
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt32:int
+SendVariantParam -> System.Data.SqlTypes.SqlInt32:int
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt32:int
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt32:int
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt64:bigint
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt64:bigint
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt64:bigint
+SendVariantParam -> System.Data.SqlTypes.SqlInt64:bigint
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt64:bigint
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt64:bigint
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDecimal:numeric
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDecimal:numeric
+SendVariantParam -> System.Data.SqlTypes.SqlDecimal:numeric
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDecimal:numeric
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDateTime:datetime
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDateTime:datetime
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDateTime:datetime
+SendVariantParam -> System.Data.SqlTypes.SqlDateTime:datetime
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDateTime:datetime
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDateTime:datetime
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric
+ --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal
+ --> ERROR: Expected base type money does not match actual base type numeric
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDecimal:numeric
+ --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal
+ --> ERROR: Expected base type money does not match actual base type numeric
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDecimal:numeric
+ --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal
+ --> ERROR: Expected base type money does not match actual base type numeric
+SendVariantParam -> System.Data.SqlTypes.SqlMoney:money
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlMoney:money
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlMoney:money
+End test 'SqlVariantParam'
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParameter_DebugMode_Azure.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParameter_DebugMode_Azure.bsl
new file mode 100644
index 0000000000..1b8f54d980
--- /dev/null
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParameter_DebugMode_Azure.bsl
@@ -0,0 +1,99 @@
+
+Starting test 'SqlVariantParam'
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantParam -> System.Data.SqlTypes.SqlSingle:real
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantParam -> System.Data.SqlTypes.SqlSingle:real
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlString:nvarchar
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlString:nvarchar
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlString:nvarchar
+SendVariantParam -> System.Data.SqlTypes.SqlString:nvarchar
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlString:nvarchar
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlString:nvarchar
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDouble:float
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDouble:float
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDouble:float
+SendVariantParam -> System.Data.SqlTypes.SqlDouble:float
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDouble:float
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDouble:float
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBinary:varbinary
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBinary:varbinary
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBinary:varbinary
+SendVariantParam -> System.Data.SqlTypes.SqlBinary:varbinary
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBinary:varbinary
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBinary:varbinary
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
+SendVariantParam -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantParam -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantParam -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlByte:tinyint
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlByte:tinyint
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlByte:tinyint
+SendVariantParam -> System.Data.SqlTypes.SqlByte:tinyint
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlByte:tinyint
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlByte:tinyint
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt16:smallint
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt16:smallint
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt16:smallint
+SendVariantParam -> System.Data.SqlTypes.SqlInt16:smallint
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt16:smallint
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt16:smallint
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt32:int
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt32:int
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt32:int
+SendVariantParam -> System.Data.SqlTypes.SqlInt32:int
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt32:int
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt32:int
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt64:bigint
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt64:bigint
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt64:bigint
+SendVariantParam -> System.Data.SqlTypes.SqlInt64:bigint
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt64:bigint
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt64:bigint
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDecimal:numeric
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDecimal:numeric
+SendVariantParam -> System.Data.SqlTypes.SqlDecimal:numeric
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDecimal:numeric
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDateTime:datetime
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDateTime:datetime
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDateTime:datetime
+SendVariantParam -> System.Data.SqlTypes.SqlDateTime:datetime
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDateTime:datetime
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDateTime:datetime
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric
+ --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal
+ --> ERROR: Expected base type money does not match actual base type numeric
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDecimal:numeric
+ --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal
+ --> ERROR: Expected base type money does not match actual base type numeric
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDecimal:numeric
+ --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal
+ --> ERROR: Expected base type money does not match actual base type numeric
+SendVariantParam -> System.Data.SqlTypes.SqlMoney:money
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlMoney:money
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlMoney:money
+End test 'SqlVariantParam'
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParameter_ReleaseMode.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParameter_ReleaseMode.bsl
new file mode 100644
index 0000000000..1b8f54d980
--- /dev/null
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParameter_ReleaseMode.bsl
@@ -0,0 +1,99 @@
+
+Starting test 'SqlVariantParam'
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantParam -> System.Data.SqlTypes.SqlSingle:real
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantParam -> System.Data.SqlTypes.SqlSingle:real
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlString:nvarchar
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlString:nvarchar
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlString:nvarchar
+SendVariantParam -> System.Data.SqlTypes.SqlString:nvarchar
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlString:nvarchar
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlString:nvarchar
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDouble:float
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDouble:float
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDouble:float
+SendVariantParam -> System.Data.SqlTypes.SqlDouble:float
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDouble:float
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDouble:float
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBinary:varbinary
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBinary:varbinary
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBinary:varbinary
+SendVariantParam -> System.Data.SqlTypes.SqlBinary:varbinary
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBinary:varbinary
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBinary:varbinary
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
+SendVariantParam -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantParam -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantParam -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlByte:tinyint
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlByte:tinyint
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlByte:tinyint
+SendVariantParam -> System.Data.SqlTypes.SqlByte:tinyint
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlByte:tinyint
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlByte:tinyint
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt16:smallint
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt16:smallint
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt16:smallint
+SendVariantParam -> System.Data.SqlTypes.SqlInt16:smallint
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt16:smallint
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt16:smallint
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt32:int
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt32:int
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt32:int
+SendVariantParam -> System.Data.SqlTypes.SqlInt32:int
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt32:int
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt32:int
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt64:bigint
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt64:bigint
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt64:bigint
+SendVariantParam -> System.Data.SqlTypes.SqlInt64:bigint
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt64:bigint
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt64:bigint
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDecimal:numeric
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDecimal:numeric
+SendVariantParam -> System.Data.SqlTypes.SqlDecimal:numeric
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDecimal:numeric
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDateTime:datetime
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDateTime:datetime
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDateTime:datetime
+SendVariantParam -> System.Data.SqlTypes.SqlDateTime:datetime
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDateTime:datetime
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDateTime:datetime
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric
+ --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal
+ --> ERROR: Expected base type money does not match actual base type numeric
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDecimal:numeric
+ --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal
+ --> ERROR: Expected base type money does not match actual base type numeric
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDecimal:numeric
+ --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal
+ --> ERROR: Expected base type money does not match actual base type numeric
+SendVariantParam -> System.Data.SqlTypes.SqlMoney:money
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlMoney:money
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlMoney:money
+End test 'SqlVariantParam'
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParameter_ReleaseMode_Azure.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParameter_ReleaseMode_Azure.bsl
new file mode 100644
index 0000000000..1b8f54d980
--- /dev/null
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParameter_ReleaseMode_Azure.bsl
@@ -0,0 +1,99 @@
+
+Starting test 'SqlVariantParam'
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantParam -> System.Data.SqlTypes.SqlSingle:real
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantParam -> System.Data.SqlTypes.SqlSingle:real
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlSingle:real
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlString:nvarchar
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlString:nvarchar
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlString:nvarchar
+SendVariantParam -> System.Data.SqlTypes.SqlString:nvarchar
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlString:nvarchar
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlString:nvarchar
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDouble:float
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDouble:float
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDouble:float
+SendVariantParam -> System.Data.SqlTypes.SqlDouble:float
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDouble:float
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDouble:float
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBinary:varbinary
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBinary:varbinary
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBinary:varbinary
+SendVariantParam -> System.Data.SqlTypes.SqlBinary:varbinary
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBinary:varbinary
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBinary:varbinary
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
+SendVariantParam -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlGuid:uniqueidentifier
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantParam -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantParam -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlBoolean:bit
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlByte:tinyint
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlByte:tinyint
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlByte:tinyint
+SendVariantParam -> System.Data.SqlTypes.SqlByte:tinyint
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlByte:tinyint
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlByte:tinyint
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt16:smallint
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt16:smallint
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt16:smallint
+SendVariantParam -> System.Data.SqlTypes.SqlInt16:smallint
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt16:smallint
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt16:smallint
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt32:int
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt32:int
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt32:int
+SendVariantParam -> System.Data.SqlTypes.SqlInt32:int
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt32:int
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt32:int
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlInt64:bigint
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlInt64:bigint
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlInt64:bigint
+SendVariantParam -> System.Data.SqlTypes.SqlInt64:bigint
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlInt64:bigint
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlInt64:bigint
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDecimal:numeric
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDecimal:numeric
+SendVariantParam -> System.Data.SqlTypes.SqlDecimal:numeric
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDecimal:numeric
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDateTime:datetime
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDateTime:datetime
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDateTime:datetime
+SendVariantParam -> System.Data.SqlTypes.SqlDateTime:datetime
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlDateTime:datetime
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlDateTime:datetime
+SendVariantBulkCopy[SqlDataReader] -> System.Data.SqlTypes.SqlDecimal:numeric
+ --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal
+ --> ERROR: Expected base type money does not match actual base type numeric
+SendVariantBulkCopy[DataTable] -> System.Data.SqlTypes.SqlDecimal:numeric
+ --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal
+ --> ERROR: Expected base type money does not match actual base type numeric
+SendVariantBulkCopy[DataRow] -> System.Data.SqlTypes.SqlDecimal:numeric
+ --> ERROR: Expected type System.Data.SqlTypes.SqlMoney does not match actual type System.Data.SqlTypes.SqlDecimal
+ --> ERROR: Expected base type money does not match actual base type numeric
+SendVariantParam -> System.Data.SqlTypes.SqlMoney:money
+SendVariantTvp[SqlMetaData] -> System.Data.SqlTypes.SqlMoney:money
+SendVariantTvp[SqlDataReader] -> System.Data.SqlTypes.SqlMoney:money
+End test 'SqlVariantParam'
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParameterTests.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParameterTests.cs
new file mode 100644
index 0000000000..4d69360e68
--- /dev/null
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParameterTests.cs
@@ -0,0 +1,149 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+using System.Globalization;
+using System.IO;
+using System.Text;
+using System.Threading;
+using Xunit;
+
+namespace Microsoft.Data.SqlClient.ManualTesting.Tests
+{
+ ///
+ /// Tests for stream input parameters (binary streams, text readers, XML).
+ /// These tests run independently with their own baseline comparison.
+ ///
+ [Collection("ParameterBaselineTests")]
+ public class StreamInputParameterTests
+ {
+ private readonly string _connStr;
+
+ public StreamInputParameterTests()
+ {
+ _connStr = DataTestUtility.TCPConnectionString;
+ }
+
+ [Trait("Category", "flaky")]
+ [ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
+ public void StreamInputParameterTest()
+ {
+ Assert.True(RunTestAndCompareWithBaseline());
+ }
+
+ private bool RunTestAndCompareWithBaseline()
+ {
+ CultureInfo previousCulture = Thread.CurrentThread.CurrentCulture;
+ Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
+ try
+ {
+ string outputPath = "StreamInputParameter.out";
+ string baselinePath;
+#if DEBUG
+ if (DataTestUtility.IsNotAzureServer() || DataTestUtility.IsManagedInstance)
+ {
+ baselinePath = "StreamInputParameter_DebugMode.bsl";
+ }
+ else
+ {
+ baselinePath = "StreamInputParameter_DebugMode_Azure.bsl";
+ }
+#else
+ if (DataTestUtility.IsNotAzureServer() || DataTestUtility.IsManagedInstance)
+ {
+ baselinePath = "StreamInputParameter_ReleaseMode.bsl";
+ }
+ else
+ {
+ baselinePath = "StreamInputParameter_ReleaseMode_Azure.bsl";
+ }
+#endif
+
+ var fstream = new FileStream(outputPath, FileMode.Create, FileAccess.Write, FileShare.Read);
+ var swriter = new StreamWriter(fstream, Encoding.UTF8);
+ var twriter = new TvpTest.CarriageReturnLineFeedReplacer(swriter);
+ Console.SetOut(twriter);
+
+ // Print header to match baseline (original RunTest() printed this)
+ Console.WriteLine("Starting test 'TvpTest'");
+
+ // Run Test
+ StreamInputParam.Run(_connStr);
+
+ Console.Out.Flush();
+ Console.Out.Dispose();
+
+ // Recover the standard output stream
+ StreamWriter standardOutput = new(Console.OpenStandardOutput());
+ standardOutput.AutoFlush = true;
+ Console.SetOut(standardOutput);
+
+ // Compare output file
+ var comparisonResult = FindDiffFromBaseline(baselinePath, outputPath);
+
+ if (string.IsNullOrEmpty(comparisonResult))
+ {
+ return true;
+ }
+
+ Console.WriteLine("StreamInputParameterTest Failed!");
+ Console.WriteLine("Please compare baseline: {0} with output: {1}", Path.GetFullPath(baselinePath), Path.GetFullPath(outputPath));
+ Console.WriteLine("Comparison Results:");
+ Console.WriteLine(comparisonResult);
+ return false;
+ }
+ finally
+ {
+ Thread.CurrentThread.CurrentCulture = previousCulture;
+ }
+ }
+
+ private static string FindDiffFromBaseline(string baselinePath, string outputPath)
+ {
+ var expectedLines = File.ReadAllLines(baselinePath);
+ var outputLines = File.ReadAllLines(outputPath);
+
+ var comparisonSb = new StringBuilder();
+
+ var expectedLength = expectedLines.Length;
+ var outputLength = outputLines.Length;
+ var findDiffLength = Math.Min(expectedLength, outputLength);
+
+ for (var lineNo = 0; lineNo < findDiffLength; lineNo++)
+ {
+ if (!expectedLines[lineNo].Equals(outputLines[lineNo]))
+ {
+ comparisonSb.AppendFormat("** DIFF at line {0} \n", lineNo);
+ comparisonSb.AppendFormat("A : {0} \n", outputLines[lineNo]);
+ comparisonSb.AppendFormat("E : {0} \n", expectedLines[lineNo]);
+ }
+ }
+
+ var startIndex = findDiffLength - 1;
+ if (startIndex < 0)
+ {
+ startIndex = 0;
+ }
+
+ if (findDiffLength < expectedLength)
+ {
+ comparisonSb.AppendFormat("** MISSING \n");
+ for (var lineNo = startIndex; lineNo < expectedLength; lineNo++)
+ {
+ comparisonSb.AppendFormat("{0} : {1}", lineNo, expectedLines[lineNo]);
+ }
+ }
+ if (findDiffLength < outputLength)
+ {
+ comparisonSb.AppendFormat("** EXTRA \n");
+ for (var lineNo = startIndex; lineNo < outputLength; lineNo++)
+ {
+ comparisonSb.AppendFormat("{0} : {1}", lineNo, outputLines[lineNo]);
+ }
+ }
+
+ return comparisonSb.ToString();
+ }
+ }
+}
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParameter_DebugMode.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParameter_DebugMode.bsl
new file mode 100644
index 0000000000..111aae41a4
--- /dev/null
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParameter_DebugMode.bsl
@@ -0,0 +1,478 @@
+Starting test 'TvpTest'
+Starting Test using AsyncDebugScope
+Using stored procedure False
+TestStream (Sync True DataLen 100000 ParamLen -1 OLD False AVW False) is OK
+TestStream (Sync True DataLen 10000 ParamLen 9000 OLD False AVW False) is OK
+TestStream (Sync True DataLen 10000 ParamLen 1000 OLD False AVW False) is OK
+TestStream (Sync True DataLen 500 ParamLen 9000 OLD False AVW False) is OK
+TestStream (Sync True DataLen 500 ParamLen 1000 OLD False AVW False) is OK
+TestStream (Sync True DataLen 0 ParamLen -1 OLD False AVW False) is OK
+TestStream (Sync True DataLen 0 ParamLen 9000 OLD False AVW False) is OK
+TestStream (Sync True DataLen 0 ParamLen 1000 OLD False AVW False) is OK
+TestStream (Sync True DataLen 10000 ParamLen 0 OLD False AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD False AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen 9000 Error False OLD False AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen 1000 Error False OLD False AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen 0 Error False OLD False AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False OLD False AVW False) is OK
+TestXml2Text (Sync True ParamLen -1 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync True ParamLen 1000000 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync True ParamLen 9000 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync True ParamLen 1000 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync True ParamLen 0 NVARCHAR False OLD False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True OLD False AVW False) is OK
+TestXml2Text (Sync True ParamLen -1 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync True ParamLen 1000000 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync True ParamLen 9000 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync True ParamLen 1000 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync True ParamLen 0 NVARCHAR True OLD False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW False) is OK
+TestXml (Sync True LimitLength True ) is OK
+TestXml (Sync True LimitLength False ) is OK
+TestStream (Sync True DataLen 100000 ParamLen -1 OLD False AVW True) is OK
+TestStream (Sync True DataLen 0 ParamLen -1 OLD False AVW True) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD False AVW True) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD False AVW True) is OK
+TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
+TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW True) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW True) is OK
+TestXml (Sync True LimitLength False ) is OK
+TestStream (Sync False DataLen 100000 ParamLen -1 OLD False AVW False) is OK
+TestStream (Sync False DataLen 10000 ParamLen 9000 OLD False AVW False) is OK
+TestStream (Sync False DataLen 10000 ParamLen 1000 OLD False AVW False) is OK
+TestStream (Sync False DataLen 500 ParamLen 9000 OLD False AVW False) is OK
+TestStream (Sync False DataLen 500 ParamLen 1000 OLD False AVW False) is OK
+TestStream (Sync False DataLen 0 ParamLen -1 OLD False AVW False) is OK
+TestStream (Sync False DataLen 0 ParamLen 9000 OLD False AVW False) is OK
+TestStream (Sync False DataLen 0 ParamLen 1000 OLD False AVW False) is OK
+TestStream (Sync False DataLen 10000 ParamLen 0 OLD False AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD False AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen 9000 Error False OLD False AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen 1000 Error False OLD False AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen 0 Error False OLD False AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False OLD False AVW False) is OK
+TestXml2Text (Sync False ParamLen -1 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync False ParamLen 1000000 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync False ParamLen 9000 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync False ParamLen 1000 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync False ParamLen 0 NVARCHAR False OLD False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True OLD False AVW False) is OK
+TestXml2Text (Sync False ParamLen -1 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync False ParamLen 1000000 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync False ParamLen 9000 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync False ParamLen 1000 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync False ParamLen 0 NVARCHAR True OLD False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW False) is OK
+TestXml (Sync False LimitLength True ) is OK
+TestXml (Sync False LimitLength False ) is OK
+TestStream (Sync False DataLen 100000 ParamLen -1 OLD False AVW True) is OK
+TestStream (Sync False DataLen 0 ParamLen -1 OLD False AVW True) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD False AVW True) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD False AVW True) is OK
+TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
+TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW True) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW True) is OK
+TestXml (Sync False LimitLength False ) is OK
+TestStream (Sync True DataLen 100000 ParamLen -1 OLD True AVW False) is OK
+TestStream (Sync True DataLen 10000 ParamLen 9000 OLD True AVW False) is OK
+TestStream (Sync True DataLen 10000 ParamLen 1000 OLD True AVW False) is OK
+TestStream (Sync True DataLen 500 ParamLen 9000 OLD True AVW False) is OK
+TestStream (Sync True DataLen 500 ParamLen 1000 OLD True AVW False) is OK
+TestStream (Sync True DataLen 0 ParamLen -1 OLD True AVW False) is OK
+TestStream (Sync True DataLen 0 ParamLen 9000 OLD True AVW False) is OK
+TestStream (Sync True DataLen 0 ParamLen 1000 OLD True AVW False) is OK
+TestStream (Sync True DataLen 10000 ParamLen 0 OLD True AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD True AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen 9000 Error False OLD True AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen 1000 Error False OLD True AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen 0 Error False OLD True AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False OLD True AVW False) is OK
+TestXml2Text (Sync True ParamLen -1 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync True ParamLen 1000000 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync True ParamLen 9000 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync True ParamLen 1000 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync True ParamLen 0 NVARCHAR False OLD True) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True OLD True AVW False) is OK
+TestXml2Text (Sync True ParamLen -1 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync True ParamLen 1000000 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync True ParamLen 9000 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync True ParamLen 1000 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync True ParamLen 0 NVARCHAR True OLD True) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD True AVW False) is OK
+TestStream (Sync False DataLen 100000 ParamLen -1 OLD True AVW False) is OK
+TestStream (Sync False DataLen 10000 ParamLen 9000 OLD True AVW False) is OK
+TestStream (Sync False DataLen 10000 ParamLen 1000 OLD True AVW False) is OK
+TestStream (Sync False DataLen 500 ParamLen 9000 OLD True AVW False) is OK
+TestStream (Sync False DataLen 500 ParamLen 1000 OLD True AVW False) is OK
+TestStream (Sync False DataLen 0 ParamLen -1 OLD True AVW False) is OK
+TestStream (Sync False DataLen 0 ParamLen 9000 OLD True AVW False) is OK
+TestStream (Sync False DataLen 0 ParamLen 1000 OLD True AVW False) is OK
+TestStream (Sync False DataLen 10000 ParamLen 0 OLD True AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD True AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen 9000 Error False OLD True AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen 1000 Error False OLD True AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen 0 Error False OLD True AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False OLD True AVW False) is OK
+TestXml2Text (Sync False ParamLen -1 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync False ParamLen 1000000 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync False ParamLen 9000 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync False ParamLen 1000 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync False ParamLen 0 NVARCHAR False OLD True) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True OLD True AVW False) is OK
+TestXml2Text (Sync False ParamLen -1 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync False ParamLen 1000000 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync False ParamLen 9000 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync False ParamLen 1000 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync False ParamLen 0 NVARCHAR True OLD True) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD True AVW False) is OK
+Using stored procedure True
+TestStream (Sync True DataLen 100000 ParamLen -1 OLD False AVW False) is OK
+TestStream (Sync True DataLen 10000 ParamLen 9000 OLD False AVW False) is OK
+TestStream (Sync True DataLen 10000 ParamLen 1000 OLD False AVW False) is OK
+TestStream (Sync True DataLen 500 ParamLen 9000 OLD False AVW False) is OK
+TestStream (Sync True DataLen 500 ParamLen 1000 OLD False AVW False) is OK
+TestStream (Sync True DataLen 0 ParamLen -1 OLD False AVW False) is OK
+TestStream (Sync True DataLen 0 ParamLen 9000 OLD False AVW False) is OK
+TestStream (Sync True DataLen 0 ParamLen 1000 OLD False AVW False) is OK
+TestStream (Sync True DataLen 10000 ParamLen 0 OLD False AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD False AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen 9000 Error False OLD False AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen 1000 Error False OLD False AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen 0 Error False OLD False AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False OLD False AVW False) is OK
+TestXml2Text (Sync True ParamLen -1 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync True ParamLen 1000000 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync True ParamLen 9000 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync True ParamLen 1000 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync True ParamLen 0 NVARCHAR False OLD False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True OLD False AVW False) is OK
+TestXml2Text (Sync True ParamLen -1 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync True ParamLen 1000000 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync True ParamLen 9000 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync True ParamLen 1000 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync True ParamLen 0 NVARCHAR True OLD False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW False) is OK
+TestXml (Sync True LimitLength True ) is OK
+TestXml (Sync True LimitLength False ) is OK
+TestStream (Sync True DataLen 100000 ParamLen -1 OLD False AVW True) is OK
+TestStream (Sync True DataLen 0 ParamLen -1 OLD False AVW True) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD False AVW True) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD False AVW True) is OK
+TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
+TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW True) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW True) is OK
+TestXml (Sync True LimitLength False ) is OK
+TestStream (Sync False DataLen 100000 ParamLen -1 OLD False AVW False) is OK
+TestStream (Sync False DataLen 10000 ParamLen 9000 OLD False AVW False) is OK
+TestStream (Sync False DataLen 10000 ParamLen 1000 OLD False AVW False) is OK
+TestStream (Sync False DataLen 500 ParamLen 9000 OLD False AVW False) is OK
+TestStream (Sync False DataLen 500 ParamLen 1000 OLD False AVW False) is OK
+TestStream (Sync False DataLen 0 ParamLen -1 OLD False AVW False) is OK
+TestStream (Sync False DataLen 0 ParamLen 9000 OLD False AVW False) is OK
+TestStream (Sync False DataLen 0 ParamLen 1000 OLD False AVW False) is OK
+TestStream (Sync False DataLen 10000 ParamLen 0 OLD False AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD False AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen 9000 Error False OLD False AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen 1000 Error False OLD False AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen 0 Error False OLD False AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False OLD False AVW False) is OK
+TestXml2Text (Sync False ParamLen -1 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync False ParamLen 1000000 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync False ParamLen 9000 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync False ParamLen 1000 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync False ParamLen 0 NVARCHAR False OLD False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True OLD False AVW False) is OK
+TestXml2Text (Sync False ParamLen -1 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync False ParamLen 1000000 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync False ParamLen 9000 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync False ParamLen 1000 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync False ParamLen 0 NVARCHAR True OLD False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW False) is OK
+TestXml (Sync False LimitLength True ) is OK
+TestXml (Sync False LimitLength False ) is OK
+TestStream (Sync False DataLen 100000 ParamLen -1 OLD False AVW True) is OK
+TestStream (Sync False DataLen 0 ParamLen -1 OLD False AVW True) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD False AVW True) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD False AVW True) is OK
+TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
+TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW True) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW True) is OK
+TestXml (Sync False LimitLength False ) is OK
+TestStream (Sync True DataLen 100000 ParamLen -1 OLD True AVW False) is OK
+TestStream (Sync True DataLen 10000 ParamLen 9000 OLD True AVW False) is OK
+TestStream (Sync True DataLen 10000 ParamLen 1000 OLD True AVW False) is OK
+TestStream (Sync True DataLen 500 ParamLen 9000 OLD True AVW False) is OK
+TestStream (Sync True DataLen 500 ParamLen 1000 OLD True AVW False) is OK
+TestStream (Sync True DataLen 0 ParamLen -1 OLD True AVW False) is OK
+TestStream (Sync True DataLen 0 ParamLen 9000 OLD True AVW False) is OK
+TestStream (Sync True DataLen 0 ParamLen 1000 OLD True AVW False) is OK
+TestStream (Sync True DataLen 10000 ParamLen 0 OLD True AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD True AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen 9000 Error False OLD True AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen 1000 Error False OLD True AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen 0 Error False OLD True AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False OLD True AVW False) is OK
+TestXml2Text (Sync True ParamLen -1 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync True ParamLen 1000000 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync True ParamLen 9000 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync True ParamLen 1000 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync True ParamLen 0 NVARCHAR False OLD True) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True OLD True AVW False) is OK
+TestXml2Text (Sync True ParamLen -1 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync True ParamLen 1000000 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync True ParamLen 9000 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync True ParamLen 1000 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync True ParamLen 0 NVARCHAR True OLD True) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD True AVW False) is OK
+TestStream (Sync False DataLen 100000 ParamLen -1 OLD True AVW False) is OK
+TestStream (Sync False DataLen 10000 ParamLen 9000 OLD True AVW False) is OK
+TestStream (Sync False DataLen 10000 ParamLen 1000 OLD True AVW False) is OK
+TestStream (Sync False DataLen 500 ParamLen 9000 OLD True AVW False) is OK
+TestStream (Sync False DataLen 500 ParamLen 1000 OLD True AVW False) is OK
+TestStream (Sync False DataLen 0 ParamLen -1 OLD True AVW False) is OK
+TestStream (Sync False DataLen 0 ParamLen 9000 OLD True AVW False) is OK
+TestStream (Sync False DataLen 0 ParamLen 1000 OLD True AVW False) is OK
+TestStream (Sync False DataLen 10000 ParamLen 0 OLD True AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD True AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen 9000 Error False OLD True AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen 1000 Error False OLD True AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen 0 Error False OLD True AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False OLD True AVW False) is OK
+TestXml2Text (Sync False ParamLen -1 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync False ParamLen 1000000 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync False ParamLen 9000 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync False ParamLen 1000 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync False ParamLen 0 NVARCHAR False OLD True) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True OLD True AVW False) is OK
+TestXml2Text (Sync False ParamLen -1 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync False ParamLen 1000000 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync False ParamLen 9000 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync False ParamLen 1000 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync False ParamLen 0 NVARCHAR True OLD True) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD True AVW False) is OK
+Finished Test using AsyncDebugScope
+Test immediate cancel for binary stream
+PASS: Task is cancelled
+Test immediate cancel for text stream
+PASS: Task is cancelled
+Test immediate cancel for xml stream
+PASS: Task is cancelled
+Test command preparation PASS
+Test reuse of command after cancel
+PASS
+Test reuse of command after cancel
+PASS
+Test reuse of command after cancel
+PASS
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParameter_DebugMode_Azure.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParameter_DebugMode_Azure.bsl
new file mode 100644
index 0000000000..111aae41a4
--- /dev/null
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParameter_DebugMode_Azure.bsl
@@ -0,0 +1,478 @@
+Starting test 'TvpTest'
+Starting Test using AsyncDebugScope
+Using stored procedure False
+TestStream (Sync True DataLen 100000 ParamLen -1 OLD False AVW False) is OK
+TestStream (Sync True DataLen 10000 ParamLen 9000 OLD False AVW False) is OK
+TestStream (Sync True DataLen 10000 ParamLen 1000 OLD False AVW False) is OK
+TestStream (Sync True DataLen 500 ParamLen 9000 OLD False AVW False) is OK
+TestStream (Sync True DataLen 500 ParamLen 1000 OLD False AVW False) is OK
+TestStream (Sync True DataLen 0 ParamLen -1 OLD False AVW False) is OK
+TestStream (Sync True DataLen 0 ParamLen 9000 OLD False AVW False) is OK
+TestStream (Sync True DataLen 0 ParamLen 1000 OLD False AVW False) is OK
+TestStream (Sync True DataLen 10000 ParamLen 0 OLD False AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD False AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen 9000 Error False OLD False AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen 1000 Error False OLD False AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen 0 Error False OLD False AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False OLD False AVW False) is OK
+TestXml2Text (Sync True ParamLen -1 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync True ParamLen 1000000 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync True ParamLen 9000 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync True ParamLen 1000 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync True ParamLen 0 NVARCHAR False OLD False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True OLD False AVW False) is OK
+TestXml2Text (Sync True ParamLen -1 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync True ParamLen 1000000 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync True ParamLen 9000 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync True ParamLen 1000 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync True ParamLen 0 NVARCHAR True OLD False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW False) is OK
+TestXml (Sync True LimitLength True ) is OK
+TestXml (Sync True LimitLength False ) is OK
+TestStream (Sync True DataLen 100000 ParamLen -1 OLD False AVW True) is OK
+TestStream (Sync True DataLen 0 ParamLen -1 OLD False AVW True) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD False AVW True) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD False AVW True) is OK
+TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
+TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW True) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW True) is OK
+TestXml (Sync True LimitLength False ) is OK
+TestStream (Sync False DataLen 100000 ParamLen -1 OLD False AVW False) is OK
+TestStream (Sync False DataLen 10000 ParamLen 9000 OLD False AVW False) is OK
+TestStream (Sync False DataLen 10000 ParamLen 1000 OLD False AVW False) is OK
+TestStream (Sync False DataLen 500 ParamLen 9000 OLD False AVW False) is OK
+TestStream (Sync False DataLen 500 ParamLen 1000 OLD False AVW False) is OK
+TestStream (Sync False DataLen 0 ParamLen -1 OLD False AVW False) is OK
+TestStream (Sync False DataLen 0 ParamLen 9000 OLD False AVW False) is OK
+TestStream (Sync False DataLen 0 ParamLen 1000 OLD False AVW False) is OK
+TestStream (Sync False DataLen 10000 ParamLen 0 OLD False AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD False AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen 9000 Error False OLD False AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen 1000 Error False OLD False AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen 0 Error False OLD False AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False OLD False AVW False) is OK
+TestXml2Text (Sync False ParamLen -1 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync False ParamLen 1000000 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync False ParamLen 9000 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync False ParamLen 1000 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync False ParamLen 0 NVARCHAR False OLD False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True OLD False AVW False) is OK
+TestXml2Text (Sync False ParamLen -1 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync False ParamLen 1000000 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync False ParamLen 9000 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync False ParamLen 1000 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync False ParamLen 0 NVARCHAR True OLD False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW False) is OK
+TestXml (Sync False LimitLength True ) is OK
+TestXml (Sync False LimitLength False ) is OK
+TestStream (Sync False DataLen 100000 ParamLen -1 OLD False AVW True) is OK
+TestStream (Sync False DataLen 0 ParamLen -1 OLD False AVW True) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD False AVW True) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD False AVW True) is OK
+TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
+TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW True) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW True) is OK
+TestXml (Sync False LimitLength False ) is OK
+TestStream (Sync True DataLen 100000 ParamLen -1 OLD True AVW False) is OK
+TestStream (Sync True DataLen 10000 ParamLen 9000 OLD True AVW False) is OK
+TestStream (Sync True DataLen 10000 ParamLen 1000 OLD True AVW False) is OK
+TestStream (Sync True DataLen 500 ParamLen 9000 OLD True AVW False) is OK
+TestStream (Sync True DataLen 500 ParamLen 1000 OLD True AVW False) is OK
+TestStream (Sync True DataLen 0 ParamLen -1 OLD True AVW False) is OK
+TestStream (Sync True DataLen 0 ParamLen 9000 OLD True AVW False) is OK
+TestStream (Sync True DataLen 0 ParamLen 1000 OLD True AVW False) is OK
+TestStream (Sync True DataLen 10000 ParamLen 0 OLD True AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD True AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen 9000 Error False OLD True AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen 1000 Error False OLD True AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen 0 Error False OLD True AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False OLD True AVW False) is OK
+TestXml2Text (Sync True ParamLen -1 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync True ParamLen 1000000 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync True ParamLen 9000 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync True ParamLen 1000 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync True ParamLen 0 NVARCHAR False OLD True) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True OLD True AVW False) is OK
+TestXml2Text (Sync True ParamLen -1 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync True ParamLen 1000000 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync True ParamLen 9000 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync True ParamLen 1000 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync True ParamLen 0 NVARCHAR True OLD True) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD True AVW False) is OK
+TestStream (Sync False DataLen 100000 ParamLen -1 OLD True AVW False) is OK
+TestStream (Sync False DataLen 10000 ParamLen 9000 OLD True AVW False) is OK
+TestStream (Sync False DataLen 10000 ParamLen 1000 OLD True AVW False) is OK
+TestStream (Sync False DataLen 500 ParamLen 9000 OLD True AVW False) is OK
+TestStream (Sync False DataLen 500 ParamLen 1000 OLD True AVW False) is OK
+TestStream (Sync False DataLen 0 ParamLen -1 OLD True AVW False) is OK
+TestStream (Sync False DataLen 0 ParamLen 9000 OLD True AVW False) is OK
+TestStream (Sync False DataLen 0 ParamLen 1000 OLD True AVW False) is OK
+TestStream (Sync False DataLen 10000 ParamLen 0 OLD True AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD True AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen 9000 Error False OLD True AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen 1000 Error False OLD True AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen 0 Error False OLD True AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False OLD True AVW False) is OK
+TestXml2Text (Sync False ParamLen -1 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync False ParamLen 1000000 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync False ParamLen 9000 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync False ParamLen 1000 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync False ParamLen 0 NVARCHAR False OLD True) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True OLD True AVW False) is OK
+TestXml2Text (Sync False ParamLen -1 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync False ParamLen 1000000 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync False ParamLen 9000 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync False ParamLen 1000 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync False ParamLen 0 NVARCHAR True OLD True) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD True AVW False) is OK
+Using stored procedure True
+TestStream (Sync True DataLen 100000 ParamLen -1 OLD False AVW False) is OK
+TestStream (Sync True DataLen 10000 ParamLen 9000 OLD False AVW False) is OK
+TestStream (Sync True DataLen 10000 ParamLen 1000 OLD False AVW False) is OK
+TestStream (Sync True DataLen 500 ParamLen 9000 OLD False AVW False) is OK
+TestStream (Sync True DataLen 500 ParamLen 1000 OLD False AVW False) is OK
+TestStream (Sync True DataLen 0 ParamLen -1 OLD False AVW False) is OK
+TestStream (Sync True DataLen 0 ParamLen 9000 OLD False AVW False) is OK
+TestStream (Sync True DataLen 0 ParamLen 1000 OLD False AVW False) is OK
+TestStream (Sync True DataLen 10000 ParamLen 0 OLD False AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD False AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen 9000 Error False OLD False AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen 1000 Error False OLD False AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen 0 Error False OLD False AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False OLD False AVW False) is OK
+TestXml2Text (Sync True ParamLen -1 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync True ParamLen 1000000 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync True ParamLen 9000 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync True ParamLen 1000 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync True ParamLen 0 NVARCHAR False OLD False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True OLD False AVW False) is OK
+TestXml2Text (Sync True ParamLen -1 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync True ParamLen 1000000 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync True ParamLen 9000 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync True ParamLen 1000 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync True ParamLen 0 NVARCHAR True OLD False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW False) is OK
+TestXml (Sync True LimitLength True ) is OK
+TestXml (Sync True LimitLength False ) is OK
+TestStream (Sync True DataLen 100000 ParamLen -1 OLD False AVW True) is OK
+TestStream (Sync True DataLen 0 ParamLen -1 OLD False AVW True) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD False AVW True) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD False AVW True) is OK
+TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
+TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW True) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW True) is OK
+TestXml (Sync True LimitLength False ) is OK
+TestStream (Sync False DataLen 100000 ParamLen -1 OLD False AVW False) is OK
+TestStream (Sync False DataLen 10000 ParamLen 9000 OLD False AVW False) is OK
+TestStream (Sync False DataLen 10000 ParamLen 1000 OLD False AVW False) is OK
+TestStream (Sync False DataLen 500 ParamLen 9000 OLD False AVW False) is OK
+TestStream (Sync False DataLen 500 ParamLen 1000 OLD False AVW False) is OK
+TestStream (Sync False DataLen 0 ParamLen -1 OLD False AVW False) is OK
+TestStream (Sync False DataLen 0 ParamLen 9000 OLD False AVW False) is OK
+TestStream (Sync False DataLen 0 ParamLen 1000 OLD False AVW False) is OK
+TestStream (Sync False DataLen 10000 ParamLen 0 OLD False AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD False AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen 9000 Error False OLD False AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen 1000 Error False OLD False AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen 0 Error False OLD False AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR False OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False OLD False AVW False) is OK
+TestXml2Text (Sync False ParamLen -1 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync False ParamLen 1000000 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync False ParamLen 9000 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync False ParamLen 1000 NVARCHAR False OLD False) is OK
+TestXml2Text (Sync False ParamLen 0 NVARCHAR False OLD False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR True OLD False AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True OLD False AVW False) is OK
+TestXml2Text (Sync False ParamLen -1 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync False ParamLen 1000000 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync False ParamLen 9000 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync False ParamLen 1000 NVARCHAR True OLD False) is OK
+TestXml2Text (Sync False ParamLen 0 NVARCHAR True OLD False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD False AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW False) is OK
+TestXml (Sync False LimitLength True ) is OK
+TestXml (Sync False LimitLength False ) is OK
+TestStream (Sync False DataLen 100000 ParamLen -1 OLD False AVW True) is OK
+TestStream (Sync False DataLen 0 ParamLen -1 OLD False AVW True) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD False AVW True) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD False AVW True) is OK
+TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
+TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD False AVW True) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD False AVW True) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD False AVW True) is OK
+TestXml (Sync False LimitLength False ) is OK
+TestStream (Sync True DataLen 100000 ParamLen -1 OLD True AVW False) is OK
+TestStream (Sync True DataLen 10000 ParamLen 9000 OLD True AVW False) is OK
+TestStream (Sync True DataLen 10000 ParamLen 1000 OLD True AVW False) is OK
+TestStream (Sync True DataLen 500 ParamLen 9000 OLD True AVW False) is OK
+TestStream (Sync True DataLen 500 ParamLen 1000 OLD True AVW False) is OK
+TestStream (Sync True DataLen 0 ParamLen -1 OLD True AVW False) is OK
+TestStream (Sync True DataLen 0 ParamLen 9000 OLD True AVW False) is OK
+TestStream (Sync True DataLen 0 ParamLen 1000 OLD True AVW False) is OK
+TestStream (Sync True DataLen 10000 ParamLen 0 OLD True AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error False OLD True AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen 9000 Error False OLD True AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen 1000 Error False OLD True AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen 0 Error False OLD True AVW False) is OK
+TestCustomStream (Sync True DataLen 10000 ParamLen -1 Error True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False OLD True AVW False) is OK
+TestXml2Text (Sync True ParamLen -1 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync True ParamLen 1000000 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync True ParamLen 9000 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync True ParamLen 1000 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync True ParamLen 0 NVARCHAR False OLD True) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 100000 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 500 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 0 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True OLD True AVW False) is OK
+TestXml2Text (Sync True ParamLen -1 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync True ParamLen 1000000 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync True ParamLen 9000 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync True ParamLen 1000 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync True ParamLen 0 NVARCHAR True OLD True) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync True DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD True AVW False) is OK
+TestStream (Sync False DataLen 100000 ParamLen -1 OLD True AVW False) is OK
+TestStream (Sync False DataLen 10000 ParamLen 9000 OLD True AVW False) is OK
+TestStream (Sync False DataLen 10000 ParamLen 1000 OLD True AVW False) is OK
+TestStream (Sync False DataLen 500 ParamLen 9000 OLD True AVW False) is OK
+TestStream (Sync False DataLen 500 ParamLen 1000 OLD True AVW False) is OK
+TestStream (Sync False DataLen 0 ParamLen -1 OLD True AVW False) is OK
+TestStream (Sync False DataLen 0 ParamLen 9000 OLD True AVW False) is OK
+TestStream (Sync False DataLen 0 ParamLen 1000 OLD True AVW False) is OK
+TestStream (Sync False DataLen 10000 ParamLen 0 OLD True AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error False OLD True AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen 9000 Error False OLD True AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen 1000 Error False OLD True AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen 0 Error False OLD True AVW False) is OK
+TestCustomStream (Sync False DataLen 10000 ParamLen -1 Error True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR False OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False OLD True AVW False) is OK
+TestXml2Text (Sync False ParamLen -1 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync False ParamLen 1000000 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync False ParamLen 9000 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync False ParamLen 1000 NVARCHAR False OLD True) is OK
+TestXml2Text (Sync False ParamLen 0 NVARCHAR False OLD True) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR False Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR False Error True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 100000 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 500 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen -1 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 9000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 0 ParamLen 1000 NVARCHAR True OLD True AVW False) is OK
+TestTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True OLD True AVW False) is OK
+TestXml2Text (Sync False ParamLen -1 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync False ParamLen 1000000 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync False ParamLen 9000 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync False ParamLen 1000 NVARCHAR True OLD True) is OK
+TestXml2Text (Sync False ParamLen 0 NVARCHAR True OLD True) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 9000 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 1000 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen 0 NVARCHAR True Error False OLD True AVW False) is OK
+TestCustomTextReader (Sync False DataLen 10000 ParamLen -1 NVARCHAR True Error True OLD True AVW False) is OK
+Finished Test using AsyncDebugScope
+Test immediate cancel for binary stream
+PASS: Task is cancelled
+Test immediate cancel for text stream
+PASS: Task is cancelled
+Test immediate cancel for xml stream
+PASS: Task is cancelled
+Test command preparation PASS
+Test reuse of command after cancel
+PASS
+Test reuse of command after cancel
+PASS
+Test reuse of command after cancel
+PASS
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParameter_ReleaseMode.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParameter_ReleaseMode.bsl
new file mode 100644
index 0000000000..3f3569899b
--- /dev/null
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParameter_ReleaseMode.bsl
@@ -0,0 +1,17 @@
+Starting test 'TvpTest'
+Starting Test using AsyncDebugScope
+Tests using AsyncDebugScope are only supported in Debug mode!
+Finished Test using AsyncDebugScope
+Test immediate cancel for binary stream
+PASS: Task is cancelled
+Test immediate cancel for text stream
+PASS: Task is cancelled
+Test immediate cancel for xml stream
+PASS: Task is cancelled
+Test command preparation PASS
+Test reuse of command after cancel
+PASS
+Test reuse of command after cancel
+PASS
+Test reuse of command after cancel
+PASS
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParameter_ReleaseMode_Azure.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParameter_ReleaseMode_Azure.bsl
new file mode 100644
index 0000000000..3f3569899b
--- /dev/null
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParameter_ReleaseMode_Azure.bsl
@@ -0,0 +1,17 @@
+Starting test 'TvpTest'
+Starting Test using AsyncDebugScope
+Tests using AsyncDebugScope are only supported in Debug mode!
+Finished Test using AsyncDebugScope
+Test immediate cancel for binary stream
+PASS: Task is cancelled
+Test immediate cancel for text stream
+PASS: Task is cancelled
+Test immediate cancel for xml stream
+PASS: Task is cancelled
+Test command preparation PASS
+Test reuse of command after cancel
+PASS
+Test reuse of command after cancel
+PASS
+Test reuse of command after cancel
+PASS
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpColumnBoundariesTests.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpColumnBoundariesTests.cs
new file mode 100644
index 0000000000..6793bcfd06
--- /dev/null
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpColumnBoundariesTests.cs
@@ -0,0 +1,140 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+using System.Globalization;
+using System.IO;
+using System.Text;
+using System.Threading;
+using Xunit;
+
+namespace Microsoft.Data.SqlClient.ManualTesting.Tests
+{
+ ///
+ /// Tests for TVP column boundaries with various data types.
+ /// These tests run independently with their own baseline comparison.
+ ///
+ [Collection("ParameterBaselineTests")]
+ public class TvpColumnBoundariesTests
+ {
+ [Trait("Category", "flaky")]
+ [ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
+ public void TvpColumnBoundariesTest()
+ {
+ Assert.True(RunTestAndCompareWithBaseline());
+ }
+
+ private bool RunTestAndCompareWithBaseline()
+ {
+ CultureInfo previousCulture = Thread.CurrentThread.CurrentCulture;
+ Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
+ try
+ {
+ string outputPath = "TvpColumnBoundaries.out";
+ string baselinePath;
+#if DEBUG
+ if (DataTestUtility.IsNotAzureServer() || DataTestUtility.IsManagedInstance)
+ {
+ baselinePath = "TvpColumnBoundaries_DebugMode.bsl";
+ }
+ else
+ {
+ baselinePath = "TvpColumnBoundaries_DebugMode_Azure.bsl";
+ }
+#else
+ if (DataTestUtility.IsNotAzureServer() || DataTestUtility.IsManagedInstance)
+ {
+ baselinePath = "TvpColumnBoundaries_ReleaseMode.bsl";
+ }
+ else
+ {
+ baselinePath = "TvpColumnBoundaries_ReleaseMode_Azure.bsl";
+ }
+#endif
+
+ var fstream = new FileStream(outputPath, FileMode.Create, FileAccess.Write, FileShare.Read);
+ var swriter = new StreamWriter(fstream, Encoding.UTF8);
+ var twriter = new TvpTest.CarriageReturnLineFeedReplacer(swriter);
+ Console.SetOut(twriter);
+
+ // Run Test - TvpTest instance is needed to access ColumnBoundariesTest
+ var tvpTest = new TvpTest();
+ tvpTest.ColumnBoundariesTest();
+
+ Console.Out.Flush();
+ Console.Out.Dispose();
+
+ // Recover the standard output stream
+ StreamWriter standardOutput = new(Console.OpenStandardOutput());
+ standardOutput.AutoFlush = true;
+ Console.SetOut(standardOutput);
+
+ // Compare output file
+ var comparisonResult = FindDiffFromBaseline(baselinePath, outputPath);
+
+ if (string.IsNullOrEmpty(comparisonResult))
+ {
+ return true;
+ }
+
+ Console.WriteLine("TvpColumnBoundariesTest Failed!");
+ Console.WriteLine("Please compare baseline: {0} with output: {1}", Path.GetFullPath(baselinePath), Path.GetFullPath(outputPath));
+ Console.WriteLine("Comparison Results:");
+ Console.WriteLine(comparisonResult);
+ return false;
+ }
+ finally
+ {
+ Thread.CurrentThread.CurrentCulture = previousCulture;
+ }
+ }
+
+ private static string FindDiffFromBaseline(string baselinePath, string outputPath)
+ {
+ var expectedLines = File.ReadAllLines(baselinePath);
+ var outputLines = File.ReadAllLines(outputPath);
+
+ var comparisonSb = new StringBuilder();
+
+ var expectedLength = expectedLines.Length;
+ var outputLength = outputLines.Length;
+ var findDiffLength = Math.Min(expectedLength, outputLength);
+
+ for (var lineNo = 0; lineNo < findDiffLength; lineNo++)
+ {
+ if (!expectedLines[lineNo].Equals(outputLines[lineNo]))
+ {
+ comparisonSb.AppendFormat("** DIFF at line {0} \n", lineNo);
+ comparisonSb.AppendFormat("A : {0} \n", outputLines[lineNo]);
+ comparisonSb.AppendFormat("E : {0} \n", expectedLines[lineNo]);
+ }
+ }
+
+ var startIndex = findDiffLength - 1;
+ if (startIndex < 0)
+ {
+ startIndex = 0;
+ }
+
+ if (findDiffLength < expectedLength)
+ {
+ comparisonSb.AppendFormat("** MISSING \n");
+ for (var lineNo = startIndex; lineNo < expectedLength; lineNo++)
+ {
+ comparisonSb.AppendFormat("{0} : {1}", lineNo, expectedLines[lineNo]);
+ }
+ }
+ if (findDiffLength < outputLength)
+ {
+ comparisonSb.AppendFormat("** EXTRA \n");
+ for (var lineNo = startIndex; lineNo < outputLength; lineNo++)
+ {
+ comparisonSb.AppendFormat("{0} : {1}", lineNo, outputLines[lineNo]);
+ }
+ }
+
+ return comparisonSb.ToString();
+ }
+ }
+}
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpColumnBoundaries_DebugMode.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpColumnBoundaries_DebugMode.bsl
new file mode 100644
index 0000000000..89f59d8715
--- /dev/null
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpColumnBoundaries_DebugMode.bsl
@@ -0,0 +1,466 @@
++++++++ Iteration 0 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 1 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 2 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 28
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 3 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 4 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 5 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 28
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 6 ++++++++
+SqlException creating objects: 1701
+SqlException dropping objects: 3701
++++++++ Iteration 7 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 28
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 8 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 28
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 9 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 10 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 11 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 28
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 12 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 13 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 14 ++++++++
+SqlException creating objects: 1701
+SqlException dropping objects: 3701
++++++++ Iteration 15 ++++++++
+SqlException creating objects: 1701
+SqlException dropping objects: 3701
++++++++ Iteration 16 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 28
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 17 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 28
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 18 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 19 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 20 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+Matches = 14
+SqlException. Error Code: 2628
+Matches = 28
+Matches = 14
+SqlException. Error Code: 2628
+Matches = 14
+Matches = 14
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 21 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
+SqlException. Error Code: 2628
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 22 ++++++++
+SqlException creating objects: 1701
+SqlException dropping objects: 3701
++++++++ Iteration 23 ++++++++
+SqlException creating objects: 1701
+SqlException dropping objects: 3701
++++++++ Iteration 24 ++++++++
+SqlException creating objects: 1701
+SqlException dropping objects: 3701
++++++++ Iteration 25 ++++++++
+------IEnumerable---------
+Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=0, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=1, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=4, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=5, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=8, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=9, Column=5
+Matches = 162
+------DbDataReader---------
+Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=0, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=1, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=4, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=5, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=8, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=9, Column=5
+Matches = 162
+------DataTables---------
+SqlException. Error Code: 242
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 28
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 26 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 28
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 27 ++++++++
+------IEnumerable---------
+Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[1]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Failed Row[2]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[10]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Failed Row[11]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=0, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=1, Column=5
+Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
+ Row=1, Column=9
+Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
+ Row=2, Column=9
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=4, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=5, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=8, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=9, Column=5
+Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
+ Row=10, Column=9
+Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
+ Row=11, Column=9
+Matches = 158
+------DbDataReader---------
+Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[1]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Failed Row[2]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[10]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Failed Row[11]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=0, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=1, Column=5
+Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
+ Row=1, Column=9
+Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
+ Row=2, Column=9
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=4, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=5, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=8, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=9, Column=5
+Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
+ Row=10, Column=9
+Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
+ Row=11, Column=9
+Matches = 158
+------DataTables---------
+SqlException. Error Code: 242
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 8115
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpColumnBoundaries_DebugMode_Azure.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpColumnBoundaries_DebugMode_Azure.bsl
new file mode 100644
index 0000000000..b59044ae03
--- /dev/null
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpColumnBoundaries_DebugMode_Azure.bsl
@@ -0,0 +1,466 @@
++++++++ Iteration 0 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 1 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 2 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 28
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 3 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 4 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 5 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 28
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 6 ++++++++
+SqlException creating objects: 1701
+SqlException dropping objects: 3701
++++++++ Iteration 7 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 28
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 8 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 28
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 9 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 10 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 11 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 28
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 12 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 13 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 14 ++++++++
+SqlException creating objects: 1701
+SqlException dropping objects: 3701
++++++++ Iteration 15 ++++++++
+SqlException creating objects: 1701
+SqlException dropping objects: 3701
++++++++ Iteration 16 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 28
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 17 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 28
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 18 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 19 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 20 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+Matches = 14
+SqlException. Error Code: 8152
+Matches = 28
+Matches = 14
+SqlException. Error Code: 8152
+Matches = 14
+Matches = 14
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 21 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
+SqlException. Error Code: 8152
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 22 ++++++++
+SqlException creating objects: 1701
+SqlException dropping objects: 3701
++++++++ Iteration 23 ++++++++
+SqlException creating objects: 1701
+SqlException dropping objects: 3701
++++++++ Iteration 24 ++++++++
+SqlException creating objects: 1701
+SqlException dropping objects: 3701
++++++++ Iteration 25 ++++++++
+------IEnumerable---------
+Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=0, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=1, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=4, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=5, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=8, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=9, Column=5
+Matches = 162
+------DbDataReader---------
+Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=0, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=1, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=4, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=5, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=8, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=9, Column=5
+Matches = 162
+------DataTables---------
+SqlException. Error Code: 242
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 28
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 26 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 28
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 27 ++++++++
+------IEnumerable---------
+Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[1]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Failed Row[2]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[10]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Failed Row[11]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=0, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=1, Column=5
+Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
+ Row=1, Column=9
+Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
+ Row=2, Column=9
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=4, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=5, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=8, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=9, Column=5
+Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
+ Row=10, Column=9
+Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
+ Row=11, Column=9
+Matches = 158
+------DbDataReader---------
+Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[1]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Failed Row[2]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[10]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Failed Row[11]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=0, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=1, Column=5
+Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
+ Row=1, Column=9
+Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
+ Row=2, Column=9
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=4, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=5, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=8, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=9, Column=5
+Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
+ Row=10, Column=9
+Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
+ Row=11, Column=9
+Matches = 158
+------DataTables---------
+SqlException. Error Code: 242
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8115
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpColumnBoundaries_ReleaseMode.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpColumnBoundaries_ReleaseMode.bsl
new file mode 100644
index 0000000000..89f59d8715
--- /dev/null
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpColumnBoundaries_ReleaseMode.bsl
@@ -0,0 +1,466 @@
++++++++ Iteration 0 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 1 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 2 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 28
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 3 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 4 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 5 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 28
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 6 ++++++++
+SqlException creating objects: 1701
+SqlException dropping objects: 3701
++++++++ Iteration 7 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 28
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 8 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 28
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 9 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 10 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 11 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 28
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 12 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 13 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 14 ++++++++
+SqlException creating objects: 1701
+SqlException dropping objects: 3701
++++++++ Iteration 15 ++++++++
+SqlException creating objects: 1701
+SqlException dropping objects: 3701
++++++++ Iteration 16 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 28
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 17 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 28
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 18 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 19 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 20 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+Matches = 14
+SqlException. Error Code: 2628
+Matches = 28
+Matches = 14
+SqlException. Error Code: 2628
+Matches = 14
+Matches = 14
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 21 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
+SqlException. Error Code: 2628
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 22 ++++++++
+SqlException creating objects: 1701
+SqlException dropping objects: 3701
++++++++ Iteration 23 ++++++++
+SqlException creating objects: 1701
+SqlException dropping objects: 3701
++++++++ Iteration 24 ++++++++
+SqlException creating objects: 1701
+SqlException dropping objects: 3701
++++++++ Iteration 25 ++++++++
+------IEnumerable---------
+Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=0, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=1, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=4, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=5, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=8, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=9, Column=5
+Matches = 162
+------DbDataReader---------
+Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=0, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=1, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=4, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=5, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=8, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=9, Column=5
+Matches = 162
+------DataTables---------
+SqlException. Error Code: 242
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 28
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 26 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 28
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+Matches = 14
++++++++ Iteration 27 ++++++++
+------IEnumerable---------
+Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[1]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Failed Row[2]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[10]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Failed Row[11]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=0, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=1, Column=5
+Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
+ Row=1, Column=9
+Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
+ Row=2, Column=9
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=4, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=5, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=8, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=9, Column=5
+Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
+ Row=10, Column=9
+Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
+ Row=11, Column=9
+Matches = 158
+------DbDataReader---------
+Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[1]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Failed Row[2]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[10]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Failed Row[11]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=0, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=1, Column=5
+Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
+ Row=1, Column=9
+Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
+ Row=2, Column=9
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=4, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=5, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=8, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=9, Column=5
+Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
+ Row=10, Column=9
+Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
+ Row=11, Column=9
+Matches = 158
+------DataTables---------
+SqlException. Error Code: 242
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 2628
+SqlException. Error Code: 8115
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpColumnBoundaries_ReleaseMode_Azure.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpColumnBoundaries_ReleaseMode_Azure.bsl
new file mode 100644
index 0000000000..b59044ae03
--- /dev/null
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpColumnBoundaries_ReleaseMode_Azure.bsl
@@ -0,0 +1,466 @@
++++++++ Iteration 0 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 1 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 2 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 28
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 3 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 4 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 5 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 28
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 6 ++++++++
+SqlException creating objects: 1701
+SqlException dropping objects: 3701
++++++++ Iteration 7 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 28
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 8 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 28
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 9 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 10 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 11 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 28
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 12 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 13 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 14 ++++++++
+SqlException creating objects: 1701
+SqlException dropping objects: 3701
++++++++ Iteration 15 ++++++++
+SqlException creating objects: 1701
+SqlException dropping objects: 3701
++++++++ Iteration 16 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 28
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 17 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 28
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 18 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 19 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 20 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+Matches = 14
+SqlException. Error Code: 8152
+Matches = 28
+Matches = 14
+SqlException. Error Code: 8152
+Matches = 14
+Matches = 14
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 21 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
+SqlException. Error Code: 8152
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 22 ++++++++
+SqlException creating objects: 1701
+SqlException dropping objects: 3701
++++++++ Iteration 23 ++++++++
+SqlException creating objects: 1701
+SqlException dropping objects: 3701
++++++++ Iteration 24 ++++++++
+SqlException creating objects: 1701
+SqlException dropping objects: 3701
++++++++ Iteration 25 ++++++++
+------IEnumerable---------
+Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=0, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=1, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=4, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=5, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=8, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=9, Column=5
+Matches = 162
+------DbDataReader---------
+Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=0, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=1, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=4, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=5, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=8, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=9, Column=5
+Matches = 162
+------DataTables---------
+SqlException. Error Code: 242
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 28
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 26 ++++++++
+------IEnumerable---------
+Matches = 168
+------DbDataReader---------
+Matches = 168
+------DataTables---------
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 28
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+Matches = 14
++++++++ Iteration 27 ++++++++
+------IEnumerable---------
+Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[1]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Failed Row[2]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[10]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Failed Row[11]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=0, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=1, Column=5
+Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
+ Row=1, Column=9
+Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
+ Row=2, Column=9
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=4, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=5, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=8, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=9, Column=5
+Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
+ Row=10, Column=9
+Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
+ Row=11, Column=9
+Matches = 158
+------DbDataReader---------
+Failed Row[0]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[1]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[1]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Failed Row[2]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Failed Row[4]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[5]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[8]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[9]Col[5] = 1/1/1753 12:00:00 AM: Invalid value for this metadata.
+Failed Row[10]Col[9] = -922337203685477: SqlDbType.SmallMoney overflow. Value '-922337203685477.0000' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Failed Row[11]Col[9] = 922337203685477.5807: SqlDbType.SmallMoney overflow. Value '922337203685477.5807' is out of range. Must be between -214,748.3648 and 214,748.3647.
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=0, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=1, Column=5
+Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
+ Row=1, Column=9
+Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
+ Row=2, Column=9
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=4, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=5, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=8, Column=5
+Mismatch: Source = 1/1/1753 12:00:00 AM, result = , metadata=SteAttributeKey=SmallDateTime
+ Row=9, Column=5
+Mismatch: Source = -922337203685477, result = , metadata=SteAttributeKey=SmallMoney
+ Row=10, Column=9
+Mismatch: Source = 922337203685477.5807, result = , metadata=SteAttributeKey=SmallMoney
+ Row=11, Column=9
+Matches = 158
+------DataTables---------
+SqlException. Error Code: 242
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8152
+SqlException. Error Code: 8115
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpQueryHintsTests.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpQueryHintsTests.cs
new file mode 100644
index 0000000000..512026f0a5
--- /dev/null
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpQueryHintsTests.cs
@@ -0,0 +1,140 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+using System.Globalization;
+using System.IO;
+using System.Text;
+using System.Threading;
+using Xunit;
+
+namespace Microsoft.Data.SqlClient.ManualTesting.Tests
+{
+ ///
+ /// Tests for TVP query hints (sort order, uniqueness, default columns).
+ /// These tests run independently with their own baseline comparison.
+ ///
+ [Collection("ParameterBaselineTests")]
+ public class TvpQueryHintsTests
+ {
+ [Trait("Category", "flaky")]
+ [ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
+ public void TvpQueryHintsTest()
+ {
+ Assert.True(RunTestAndCompareWithBaseline());
+ }
+
+ private bool RunTestAndCompareWithBaseline()
+ {
+ CultureInfo previousCulture = Thread.CurrentThread.CurrentCulture;
+ Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
+ try
+ {
+ string outputPath = "TvpQueryHints.out";
+ string baselinePath;
+#if DEBUG
+ if (DataTestUtility.IsNotAzureServer() || DataTestUtility.IsManagedInstance)
+ {
+ baselinePath = "TvpQueryHints_DebugMode.bsl";
+ }
+ else
+ {
+ baselinePath = "TvpQueryHints_DebugMode_Azure.bsl";
+ }
+#else
+ if (DataTestUtility.IsNotAzureServer() || DataTestUtility.IsManagedInstance)
+ {
+ baselinePath = "TvpQueryHints_ReleaseMode.bsl";
+ }
+ else
+ {
+ baselinePath = "TvpQueryHints_ReleaseMode_Azure.bsl";
+ }
+#endif
+
+ var fstream = new FileStream(outputPath, FileMode.Create, FileAccess.Write, FileShare.Read);
+ var swriter = new StreamWriter(fstream, Encoding.UTF8);
+ var twriter = new TvpTest.CarriageReturnLineFeedReplacer(swriter);
+ Console.SetOut(twriter);
+
+ // Run Test - TvpTest instance is needed to access QueryHintsTest
+ var tvpTest = new TvpTest();
+ tvpTest.QueryHintsTest();
+
+ Console.Out.Flush();
+ Console.Out.Dispose();
+
+ // Recover the standard output stream
+ StreamWriter standardOutput = new(Console.OpenStandardOutput());
+ standardOutput.AutoFlush = true;
+ Console.SetOut(standardOutput);
+
+ // Compare output file
+ var comparisonResult = FindDiffFromBaseline(baselinePath, outputPath);
+
+ if (string.IsNullOrEmpty(comparisonResult))
+ {
+ return true;
+ }
+
+ Console.WriteLine("TvpQueryHintsTest Failed!");
+ Console.WriteLine("Please compare baseline: {0} with output: {1}", Path.GetFullPath(baselinePath), Path.GetFullPath(outputPath));
+ Console.WriteLine("Comparison Results:");
+ Console.WriteLine(comparisonResult);
+ return false;
+ }
+ finally
+ {
+ Thread.CurrentThread.CurrentCulture = previousCulture;
+ }
+ }
+
+ private static string FindDiffFromBaseline(string baselinePath, string outputPath)
+ {
+ var expectedLines = File.ReadAllLines(baselinePath);
+ var outputLines = File.ReadAllLines(outputPath);
+
+ var comparisonSb = new StringBuilder();
+
+ var expectedLength = expectedLines.Length;
+ var outputLength = outputLines.Length;
+ var findDiffLength = Math.Min(expectedLength, outputLength);
+
+ for (var lineNo = 0; lineNo < findDiffLength; lineNo++)
+ {
+ if (!expectedLines[lineNo].Equals(outputLines[lineNo]))
+ {
+ comparisonSb.AppendFormat("** DIFF at line {0} \n", lineNo);
+ comparisonSb.AppendFormat("A : {0} \n", outputLines[lineNo]);
+ comparisonSb.AppendFormat("E : {0} \n", expectedLines[lineNo]);
+ }
+ }
+
+ var startIndex = findDiffLength - 1;
+ if (startIndex < 0)
+ {
+ startIndex = 0;
+ }
+
+ if (findDiffLength < expectedLength)
+ {
+ comparisonSb.AppendFormat("** MISSING \n");
+ for (var lineNo = startIndex; lineNo < expectedLength; lineNo++)
+ {
+ comparisonSb.AppendFormat("{0} : {1}", lineNo, expectedLines[lineNo]);
+ }
+ }
+ if (findDiffLength < outputLength)
+ {
+ comparisonSb.AppendFormat("** EXTRA \n");
+ for (var lineNo = startIndex; lineNo < outputLength; lineNo++)
+ {
+ comparisonSb.AppendFormat("{0} : {1}", lineNo, outputLines[lineNo]);
+ }
+ }
+
+ return comparisonSb.ToString();
+ }
+ }
+}
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpQueryHints_DebugMode.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpQueryHints_DebugMode.bsl
new file mode 100644
index 0000000000..e72190c064
--- /dev/null
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpQueryHints_DebugMode.bsl
@@ -0,0 +1,30 @@
+------- Sort order + uniqueness #1: simple -------
+-------------
+0 Z-value 3/1/2000 12:00:00 AM 5
+1 X-value 1/1/2000 12:00:00 AM 7
+
+-------------
+------- Sort order + uniqueness #2: mixed order -------
+-------------
+4 X-value 1/1/2000 12:00:00 AM 3
+5 X-value 3/1/2000 12:00:00 AM 3
+
+-------------
+------- default column #1: outer subset -------
+-------------
+-1 Y-value 1/1/2000 12:00:00 AM -1
+-1 Z-value 1/1/2000 12:00:00 AM -1
+
+-------------
+------- default column #1: middle subset -------
+-------------
+4 DEFUALT 1/1/2006 12:00:00 AM 3
+5 DEFUALT 1/1/2006 12:00:00 AM 3
+
+-------------
+------- default column #1: all -------
+-------------
+-1 DEFUALT 1/1/2006 12:00:00 AM -1
+-1 DEFUALT 1/1/2006 12:00:00 AM -1
+
+-------------
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpQueryHints_DebugMode_Azure.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpQueryHints_DebugMode_Azure.bsl
new file mode 100644
index 0000000000..e72190c064
--- /dev/null
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpQueryHints_DebugMode_Azure.bsl
@@ -0,0 +1,30 @@
+------- Sort order + uniqueness #1: simple -------
+-------------
+0 Z-value 3/1/2000 12:00:00 AM 5
+1 X-value 1/1/2000 12:00:00 AM 7
+
+-------------
+------- Sort order + uniqueness #2: mixed order -------
+-------------
+4 X-value 1/1/2000 12:00:00 AM 3
+5 X-value 3/1/2000 12:00:00 AM 3
+
+-------------
+------- default column #1: outer subset -------
+-------------
+-1 Y-value 1/1/2000 12:00:00 AM -1
+-1 Z-value 1/1/2000 12:00:00 AM -1
+
+-------------
+------- default column #1: middle subset -------
+-------------
+4 DEFUALT 1/1/2006 12:00:00 AM 3
+5 DEFUALT 1/1/2006 12:00:00 AM 3
+
+-------------
+------- default column #1: all -------
+-------------
+-1 DEFUALT 1/1/2006 12:00:00 AM -1
+-1 DEFUALT 1/1/2006 12:00:00 AM -1
+
+-------------
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpQueryHints_ReleaseMode.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpQueryHints_ReleaseMode.bsl
new file mode 100644
index 0000000000..e72190c064
--- /dev/null
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpQueryHints_ReleaseMode.bsl
@@ -0,0 +1,30 @@
+------- Sort order + uniqueness #1: simple -------
+-------------
+0 Z-value 3/1/2000 12:00:00 AM 5
+1 X-value 1/1/2000 12:00:00 AM 7
+
+-------------
+------- Sort order + uniqueness #2: mixed order -------
+-------------
+4 X-value 1/1/2000 12:00:00 AM 3
+5 X-value 3/1/2000 12:00:00 AM 3
+
+-------------
+------- default column #1: outer subset -------
+-------------
+-1 Y-value 1/1/2000 12:00:00 AM -1
+-1 Z-value 1/1/2000 12:00:00 AM -1
+
+-------------
+------- default column #1: middle subset -------
+-------------
+4 DEFUALT 1/1/2006 12:00:00 AM 3
+5 DEFUALT 1/1/2006 12:00:00 AM 3
+
+-------------
+------- default column #1: all -------
+-------------
+-1 DEFUALT 1/1/2006 12:00:00 AM -1
+-1 DEFUALT 1/1/2006 12:00:00 AM -1
+
+-------------
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpQueryHints_ReleaseMode_Azure.bsl b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpQueryHints_ReleaseMode_Azure.bsl
new file mode 100644
index 0000000000..e72190c064
--- /dev/null
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpQueryHints_ReleaseMode_Azure.bsl
@@ -0,0 +1,30 @@
+------- Sort order + uniqueness #1: simple -------
+-------------
+0 Z-value 3/1/2000 12:00:00 AM 5
+1 X-value 1/1/2000 12:00:00 AM 7
+
+-------------
+------- Sort order + uniqueness #2: mixed order -------
+-------------
+4 X-value 1/1/2000 12:00:00 AM 3
+5 X-value 3/1/2000 12:00:00 AM 3
+
+-------------
+------- default column #1: outer subset -------
+-------------
+-1 Y-value 1/1/2000 12:00:00 AM -1
+-1 Z-value 1/1/2000 12:00:00 AM -1
+
+-------------
+------- default column #1: middle subset -------
+-------------
+4 DEFUALT 1/1/2006 12:00:00 AM 3
+5 DEFUALT 1/1/2006 12:00:00 AM 3
+
+-------------
+------- default column #1: all -------
+-------------
+-1 DEFUALT 1/1/2006 12:00:00 AM -1
+-1 DEFUALT 1/1/2006 12:00:00 AM -1
+
+-------------
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpTest.cs
index 912800016e..5c788be58a 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpTest.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpTest.cs
@@ -42,18 +42,6 @@ public class TvpTest
// data value and server consts
private readonly string _connStr;
- // This test occasionally hangs forever, hence marked as flaky.
- [Trait("Category", "flaky")]
- // Synapse: The statement failed. Column 'blob' has a data type that cannot participate in a columnstore index.
- [ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
- public void TestMain()
- {
- Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); // To keep things consistent since we output dates as strings
-
- // This test is additionally affected by #26, where a Cancel throws SqlException instead of InvalidOperationException on Linux.
- Assert.True(RunTestCoreAndCompareWithBaseline());
- }
-
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureServer))]
public async Task TestPacketNumberWraparound()
{
@@ -195,123 +183,7 @@ public TvpTest()
_connStr = DataTestUtility.TCPConnectionString;
}
- private void RunTest()
- {
- Console.WriteLine("Starting test \'TvpTest\'");
- StreamInputParam.Run(_connStr);
- ColumnBoundariesTest();
- QueryHintsTest();
- SqlVariantParam.SendAllSqlTypesInsideVariant(_connStr);
- DateTimeVariantTest.TestAllDateTimeWithDataTypeAndVariant(_connStr);
- OutputParameter.Run(_connStr);
- }
-
- private bool RunTestCoreAndCompareWithBaseline()
- {
- string outputPath = "SqlParameterTest.out";
- string baselinePath;
-#if DEBUG
- if (DataTestUtility.IsNotAzureServer() || DataTestUtility.IsManagedInstance)
- {
- baselinePath = "SqlParameterTest_DebugMode.bsl";
- }
- else
- {
- baselinePath = "SqlParameterTest_DebugMode_Azure.bsl";
- }
-#else
- if (DataTestUtility.IsNotAzureServer() || DataTestUtility.IsManagedInstance)
- {
- baselinePath = "SqlParameterTest_ReleaseMode.bsl";
- }
- else
- {
- baselinePath = "SqlParameterTest_ReleaseMode_Azure.bsl";
- }
-#endif
-
- var fstream = new FileStream(outputPath, FileMode.Create, FileAccess.Write, FileShare.Read);
- var swriter = new StreamWriter(fstream, Encoding.UTF8);
- // Convert all string writes of '\n' to '\r\n' so output files can be 'text' not 'binary'
- var twriter = new CarriageReturnLineFeedReplacer(swriter);
- Console.SetOut(twriter); // "redirect" Console.Out
-
- // Run Test
- RunTest();
-
- Console.Out.Flush();
- Console.Out.Dispose();
-
- // Recover the standard output stream
- StreamWriter standardOutput = new(Console.OpenStandardOutput());
- standardOutput.AutoFlush = true;
- Console.SetOut(standardOutput);
-
- // Compare output file
- var comparisonResult = FindDiffFromBaseline(baselinePath, outputPath);
-
- if (string.IsNullOrEmpty(comparisonResult))
- {
- return true;
- }
-
- Console.WriteLine("Test Failed!");
- Console.WriteLine("Please compare baseline : {0} with output :{1}", Path.GetFullPath(baselinePath), Path.GetFullPath(outputPath));
- Console.WriteLine("Comparison Results : ");
- Console.WriteLine(comparisonResult);
- return false;
- }
-
- private string FindDiffFromBaseline(string baselinePath, string outputPath)
- {
- var expectedLines = File.ReadAllLines(baselinePath);
- var outputLines = File.ReadAllLines(outputPath);
-
- var comparisonSb = new StringBuilder();
-
- // Start compare results
- var expectedLength = expectedLines.Length;
- var outputLength = outputLines.Length;
- var findDiffLength = Math.Min(expectedLength, outputLength);
-
- // Find diff for each lines
- for (var lineNo = 0; lineNo < findDiffLength; lineNo++)
- {
- if (!expectedLines[lineNo].Equals(outputLines[lineNo]))
- {
- comparisonSb.AppendFormat("** DIFF at line {0} \n", lineNo);
- comparisonSb.AppendFormat("A : {0} \n", outputLines[lineNo]);
- comparisonSb.AppendFormat("E : {0} \n", expectedLines[lineNo]);
- }
- }
-
- var startIndex = findDiffLength - 1;
- if (startIndex < 0)
- {
- startIndex = 0;
- }
-
- if (findDiffLength < expectedLength)
- {
- comparisonSb.AppendFormat("** MISSING \n");
- for (var lineNo = startIndex; lineNo < expectedLength; lineNo++)
- {
- comparisonSb.AppendFormat("{0} : {1}", lineNo, expectedLines[lineNo]);
- }
- }
- if (findDiffLength < outputLength)
- {
- comparisonSb.AppendFormat("** EXTRA \n");
- for (var lineNo = startIndex; lineNo < outputLength; lineNo++)
- {
- comparisonSb.AppendFormat("{0} : {1}", lineNo, outputLines[lineNo]);
- }
- }
-
- return comparisonSb.ToString();
- }
-
- private sealed class CarriageReturnLineFeedReplacer : TextWriter
+ internal sealed class CarriageReturnLineFeedReplacer : TextWriter
{
private TextWriter _output;
private int _lineFeedCount;
@@ -373,7 +245,7 @@ public override void Write(char value)
}
#region Main test methods
- private void ColumnBoundariesTest()
+ internal void ColumnBoundariesTest()
{
_ = SteStructuredTypeBoundaries.AllColumnTypesExceptUdts.GetEnumerator(
s_boundariesTestKeys);
@@ -466,7 +338,7 @@ private void TestTVPPermutations(SteStructuredTypeBoundaries bounds, bool runOnl
}
}
- private void QueryHintsTest()
+ internal void QueryHintsTest()
{
using SqlConnection conn = new(_connStr);
conn.Open();
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlSchemaInfoTest/SqlSchemaInfoTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlSchemaInfoTest/SqlSchemaInfoTest.cs
index 4d2e964a5a..742a4fbbad 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlSchemaInfoTest/SqlSchemaInfoTest.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlSchemaInfoTest/SqlSchemaInfoTest.cs
@@ -45,6 +45,7 @@ public static void TestGetSchema(bool openTransaction)
DataTable metaDataSourceInfo = conn.GetSchema(DbMetaDataCollectionNames.DataSourceInformation);
Assert.True(metaDataSourceInfo != null && metaDataSourceInfo.Rows.Count > 0);
+ //TODO: lots of contention on data types. need to fix locking in other tests to make this more reliable
DataTable metaDataTypes = conn.GetSchema(DbMetaDataCollectionNames.DataTypes);
Assert.True(metaDataTypes != null && metaDataTypes.Rows.Count > 0);