diff --git a/eng/pipelines/common/templates/jobs/run-tests-package-reference-job.yml b/eng/pipelines/common/templates/jobs/run-tests-package-reference-job.yml
index a9fcd12720..9973e362e7 100644
--- a/eng/pipelines/common/templates/jobs/run-tests-package-reference-job.yml
+++ b/eng/pipelines/common/templates/jobs/run-tests-package-reference-job.yml
@@ -17,11 +17,21 @@ parameters:
type: string
default: empty
+ # The timeout, in minutes, for this job.
+ - name: timeout
+ type: string
+ default: 90
+
jobs:
- job: run_tests_package_reference
displayName: 'Run tests with package reference'
${{ if ne(parameters.dependsOn, 'empty')}}:
dependsOn: '${{parameters.dependsOn }}'
+
+ # Some of our tests take longer than the default 60 minutes to run on some
+ # OSes and configurations.
+ timeoutInMinutes: ${{ parameters.timeout }}
+
pool:
type: windows # read more about custom job pool types at https://aka.ms/obpipelines/yaml/jobs
isCustom: true
diff --git a/eng/pipelines/dotnet-sqlclient-signing-pipeline.yml b/eng/pipelines/dotnet-sqlclient-signing-pipeline.yml
index 64dbcc2573..a4490de1fa 100644
--- a/eng/pipelines/dotnet-sqlclient-signing-pipeline.yml
+++ b/eng/pipelines/dotnet-sqlclient-signing-pipeline.yml
@@ -65,6 +65,12 @@ parameters: # parameters are shown up in ADO UI in a build queue time
- NonOfficial
- Official
+# The timeout, in minutes, for each test job.
+- name: testsTimeout
+ displayName: 'Tests timeout (in minutes)'
+ type: string
+ default: 90
+
variables:
- template: /eng/pipelines/libraries/variables.yml@self
- name: packageFolderName
@@ -164,6 +170,7 @@ extends:
- template: eng/pipelines/common/templates/jobs/run-tests-package-reference-job.yml@self
parameters:
packageFolderName: $(packageFolderName)
+ timeout: ${{ parameters.testsTimeout }}
downloadPackageStep:
download: current
artifact: $(packageFolderName)
diff --git a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SNI/SNITcpHandle.cs b/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SNI/SNITcpHandle.cs
index b90cb821c4..1487f14fa3 100644
--- a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SNI/SNITcpHandle.cs
+++ b/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SNI/SNITcpHandle.cs
@@ -867,9 +867,30 @@ public override uint Receive(out SNIPacket packet, int timeoutInMilliseconds)
}
finally
{
- // Reset the socket timeout to Timeout.Infinite after the receive operation is done
- // to avoid blocking the thread in case of a timeout error.
- _socket.ReceiveTimeout = Timeout.Infinite;
+ const int resetTimeout = Timeout.Infinite;
+
+ try
+ {
+ // Reset the socket timeout to Timeout.Infinite after
+ // the receive operation is done to avoid blocking the
+ // thread in case of a timeout error.
+ _socket.ReceiveTimeout = resetTimeout;
+
+ }
+ catch (SocketException ex)
+ {
+ // We sometimes see setting the ReceiveTimeout fail
+ // on macOS. There's isn't much we can do about it
+ // though, so just log and move on.
+ SqlClientEventSource.Log.TrySNITraceEvent(
+ nameof(SNITCPHandle),
+ EventType.ERR,
+ "Connection Id {0}, Failed to reset socket " +
+ "receive timeout to {1}: {2}",
+ _connectionId,
+ resetTimeout,
+ ex.Message);
+ }
}
}
}
diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/ActiveDirectoryAuthenticationProvider.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/ActiveDirectoryAuthenticationProvider.cs
index 40fceda2c9..5ac75ee1a6 100644
--- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/ActiveDirectoryAuthenticationProvider.cs
+++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/ActiveDirectoryAuthenticationProvider.cs
@@ -599,7 +599,28 @@ private static TokenCredentialData CreateTokenCredentialInstance(TokenCredential
defaultAzureCredentialOptions.WorkloadIdentityClientId = tokenCredentialKey._clientId;
}
- return new TokenCredentialData(new DefaultAzureCredential(defaultAzureCredentialOptions), GetHash(secret));
+ // SqlClient is a library and provides support to acquire access
+ // token using 'DefaultAzureCredential' on user demand when they
+ // specify 'Authentication = Active Directory Default' in
+ // connection string.
+ //
+ // Default Azure Credential is instantiated by the calling
+ // application when using "Active Directory Default"
+ // authentication code to connect to Azure SQL instance.
+ // SqlClient is a library, doesn't instantiate the credential
+ // without running application instructions.
+ //
+ // Note that CodeQL suppression support can only detect
+ // suppression comments that appear immediately above the
+ // flagged statement, or appended to the end of the statement.
+ // Multi-line justifications are not supported.
+ //
+ // https://eng.ms/docs/cloud-ai-platform/devdiv/one-engineering-system-1es/1es-docs/codeql/codeql-semmle#guidance-on-suppressions
+ //
+ // CodeQL [SM05137] See above for justification.
+ DefaultAzureCredential cred = new(defaultAzureCredentialOptions);
+
+ return new TokenCredentialData(cred, GetHash(secret));
}
TokenCredentialOptions tokenCredentialOptions = new() { AuthorityHost = new Uri(tokenCredentialKey._authority) };
diff --git a/src/Microsoft.Data.SqlClient/tests/FunctionalTests/Microsoft.Data.SqlClient.Tests.csproj b/src/Microsoft.Data.SqlClient/tests/FunctionalTests/Microsoft.Data.SqlClient.Tests.csproj
index 506960d3b6..413a00e253 100644
--- a/src/Microsoft.Data.SqlClient/tests/FunctionalTests/Microsoft.Data.SqlClient.Tests.csproj
+++ b/src/Microsoft.Data.SqlClient/tests/FunctionalTests/Microsoft.Data.SqlClient.Tests.csproj
@@ -96,6 +96,8 @@
+
+
diff --git a/src/Microsoft.Data.SqlClient/tests/FunctionalTests/SqlConfigurableRetryLogicTest.cs b/src/Microsoft.Data.SqlClient/tests/FunctionalTests/SqlConfigurableRetryLogicTest.cs
index cd3fb3bdec..b04115b191 100644
--- a/src/Microsoft.Data.SqlClient/tests/FunctionalTests/SqlConfigurableRetryLogicTest.cs
+++ b/src/Microsoft.Data.SqlClient/tests/FunctionalTests/SqlConfigurableRetryLogicTest.cs
@@ -3,6 +3,7 @@
// See the LICENSE file in the project root for more information.
using System;
+using System.Threading.Tasks;
using Xunit;
namespace Microsoft.Data.SqlClient.Tests
@@ -10,7 +11,7 @@ namespace Microsoft.Data.SqlClient.Tests
public class SqlConfigurableRetryLogicTest
{
[Fact]
- public async void InvalidExecute()
+ public async Task InvalidExecute()
{
SqlRetryLogicOption option = new SqlRetryLogicOption()
{
diff --git a/src/Microsoft.Data.SqlClient/tests/FunctionalTests/SqlConnectionBasicTests.cs b/src/Microsoft.Data.SqlClient/tests/FunctionalTests/SqlConnectionBasicTests.cs
index 6b9713d4a0..24da19e995 100644
--- a/src/Microsoft.Data.SqlClient/tests/FunctionalTests/SqlConnectionBasicTests.cs
+++ b/src/Microsoft.Data.SqlClient/tests/FunctionalTests/SqlConnectionBasicTests.cs
@@ -281,7 +281,7 @@ public void ConnectionTimeoutTest(int timeout)
[InlineData(10)]
[InlineData(5)]
[InlineData(1)]
- public async void ConnectionTimeoutTestAsync(int timeout)
+ public async Task ConnectionTimeoutTestAsync(int timeout)
{
// Start a server with connection timeout from the inline data.
using TestTdsServer server = TestTdsServer.StartTestServer(false, false, timeout);
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/AlwaysEncrypted/ApiShould.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/AlwaysEncrypted/ApiShould.cs
index f6e203c8b7..15c51ccee4 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/AlwaysEncrypted/ApiShould.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/AlwaysEncrypted/ApiShould.cs
@@ -148,8 +148,8 @@ public void SqlParameterProperties(string connection)
const string firstColumnName = @"firstColumn";
const string secondColumnName = @"secondColumn";
const string thirdColumnName = @"thirdColumn";
- string inputProcedureName = DataTestUtility.GetUniqueName("InputProc").ToString();
- string outputProcedureName = DataTestUtility.GetUniqueName("OutputProc").ToString();
+ string inputProcedureName = DataTestUtility.GetShortName("InputProc").ToString();
+ string outputProcedureName = DataTestUtility.GetShortName("OutputProc").ToString();
const int charColumnSize = 100;
const int decimalColumnPrecision = 10;
const int decimalColumnScale = 4;
@@ -692,9 +692,9 @@ public void TestExecuteReader(string connection)
[ConditionalTheory(typeof(DataTestUtility), nameof(DataTestUtility.IsTargetReadyForAeWithKeyStore))]
[ClassData(typeof(AEConnectionStringProvider))]
- public async void TestExecuteReaderAsyncWithLargeQuery(string connectionString)
+ public async Task TestExecuteReaderAsyncWithLargeQuery(string connectionString)
{
- string randomName = DataTestUtility.GetUniqueName(Guid.NewGuid().ToString().Replace("-", ""), false);
+ string randomName = DataTestUtility.GetShortName(Guid.NewGuid().ToString().Replace("-", ""), false);
if (randomName.Length > 50)
{
randomName = randomName.Substring(0, 50);
@@ -878,8 +878,8 @@ public void TestEnclaveStoredProceduresWithAndWithoutParameters(string connectio
using SqlCommand sqlCommand = new("", sqlConnection, transaction: null,
columnEncryptionSetting: SqlCommandColumnEncryptionSetting.Enabled);
- string procWithoutParams = DataTestUtility.GetUniqueName("EnclaveWithoutParams", withBracket: false);
- string procWithParam = DataTestUtility.GetUniqueName("EnclaveWithParams", withBracket: false);
+ string procWithoutParams = DataTestUtility.GetShortName("EnclaveWithoutParams", withBracket: false);
+ string procWithParam = DataTestUtility.GetShortName("EnclaveWithParams", withBracket: false);
try
{
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/AlwaysEncrypted/CspProviderExt.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/AlwaysEncrypted/CspProviderExt.cs
index 52f52c72df..a2a0945293 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/AlwaysEncrypted/CspProviderExt.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/AlwaysEncrypted/CspProviderExt.cs
@@ -162,7 +162,7 @@ public void TestRoundTripWithCSPAndCertStoreProvider()
public void TestEncryptDecryptWithCSP(string connectionString)
{
string providerName = @"Microsoft Enhanced RSA and AES Cryptographic Provider";
- string keyIdentifier = DataTestUtility.GetUniqueNameForSqlServer("CSP");
+ string keyIdentifier = DataTestUtility.GetLongName("CSP");
try
{
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/DataCommon/DataTestUtility.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/DataCommon/DataTestUtility.cs
index ef1586f51c..14598056dd 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/DataCommon/DataTestUtility.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/DataCommon/DataTestUtility.cs
@@ -117,7 +117,7 @@ public static bool TcpConnectionStringDoesNotUseAadAuth
{
get
{
- SqlConnectionStringBuilder builder = new (TCPConnectionString);
+ SqlConnectionStringBuilder builder = new(TCPConnectionString);
return builder.Authentication == SqlAuthenticationMethod.SqlPassword || builder.Authentication == SqlAuthenticationMethod.NotSpecified;
}
}
@@ -546,48 +546,176 @@ public static bool DoesHostAddressContainBothIPv4AndIPv6()
}
}
+ // Generate a new GUID and return the characters from its 1st and 4th
+ // parts, as shown here:
+ //
+ // 7ff01cb8-88c7-11f0-b433-00155d7e531e
+ // ^^^^^^^^ ^^^^
+ //
+ // These 12 characters are concatenated together without any
+ // separators. These 2 parts typically comprise a timestamp and clock
+ // sequence, most likely to be unique for tests that generate names in
+ // quick succession.
+ private static string GetGuidParts()
+ {
+ var guid = Guid.NewGuid().ToString();
+ // GOTCHA: The slice operator is inclusive of the start index and
+ // exclusive of the end index!
+ return guid.Substring(0, 8) + guid.Substring(19, 4);
+ }
+
///
- /// Generate a unique name to use in Sql Server;
- /// some providers does not support names (Oracle supports up to 30).
+ /// Generate a short unique database object name, whose maximum length
+ /// is 30 characters, with the format:
+ ///
+ /// _
+ ///
+ /// The Prefix will be truncated to satisfy the overall maximum length.
+ ///
+ /// The GUID parts will be the characters from the 1st and 4th blocks
+ /// from a traditional string representation, as shown here:
+ ///
+ /// 7ff01cb8-88c7-11f0-b433-00155d7e531e
+ /// ^^^^^^^^ ^^^^
+ ///
+ /// These 2 parts typically comprise a timestamp and clock sequence,
+ /// most likely to be unique for tests that generate names in quick
+ /// succession. The 12 characters are concatenated together without any
+ /// separators.
///
- /// The name length will be no more then (16 + prefix.Length + escapeLeft.Length + escapeRight.Length).
- /// Name without brackets.
- /// Unique name by considering the Sql Server naming rules.
- public static string GetUniqueName(string prefix, bool withBracket = true)
- {
- string escapeLeft = withBracket ? "[" : string.Empty;
- string escapeRight = withBracket ? "]" : string.Empty;
- string uniqueName = string.Format("{0}{1}_{2}_{3}{4}",
- escapeLeft,
- prefix,
- DateTime.Now.Ticks.ToString("X", CultureInfo.InvariantCulture), // up to 8 characters
- Guid.NewGuid().ToString().Substring(0, 6), // take the first 6 characters only
- escapeRight);
- return uniqueName;
+ ///
+ ///
+ /// The prefix to use when generating the unique name, truncated to at
+ /// most 18 characters when withBracket is false, and 16 characters when
+ /// withBracket is true.
+ ///
+ /// This should not contain any characters that cannot be used in
+ /// database object names. See:
+ ///
+ /// https://learn.microsoft.com/en-us/sql/relational-databases/databases/database-identifiers?view=sql-server-ver17#rules-for-regular-identifiers
+ ///
+ ///
+ ///
+ /// When true, the entire generated name will be enclosed in square
+ /// brackets, for example:
+ ///
+ /// [MyPrefix_7ff01cb811f0]
+ ///
+ ///
+ ///
+ /// A unique database object name, no more than 30 characters long.
+ ///
+ public static string GetShortName(string prefix, bool withBracket = true)
+ {
+ StringBuilder name = new(30);
+
+ if (withBracket)
+ {
+ name.Append('[');
+ }
+
+ int maxPrefixLength = withBracket ? 16 : 18;
+ if (prefix.Length > maxPrefixLength)
+ {
+ prefix = prefix.Substring(0, maxPrefixLength);
+ }
+
+ name.Append(prefix);
+ name.Append('_');
+ name.Append(GetGuidParts());
+
+ if (withBracket)
+ {
+ name.Append(']');
+ }
+
+ return name.ToString();
}
///
- /// Uses environment values `UserName` and `MachineName` in addition to the specified `prefix` and current date
- /// to generate a unique name to use in Sql Server;
- /// SQL Server supports long names (up to 128 characters), add extra info for troubleshooting.
+ /// Generate a long unique database object name, whose maximum length is
+ /// 96 characters, with the format:
+ ///
+ /// ___
+ ///
+ /// The Prefix will be truncated to satisfy the overall maximum length.
+ ///
+ /// The GUID Parts will be the characters from the 1st and 4th blocks
+ /// from a traditional string representation, as shown here:
+ ///
+ /// 7ff01cb8-88c7-11f0-b433-00155d7e531e
+ /// ^^^^^^^^ ^^^^
+ ///
+ /// These 2 parts typically comprise a timestamp and clock sequence,
+ /// most likely to be unique for tests that generate names in quick
+ /// succession. The 12 characters are concatenated together without any
+ /// separators.
+ ///
+ /// The UserName and MachineName are obtained from the Environment,
+ /// and will be truncated to satisfy the maximum overall length.
///
- /// Add the prefix to the generate string.
- /// Database name must be pass with brackets by default.
- /// Unique name by considering the Sql Server naming rules.
- public static string GetUniqueNameForSqlServer(string prefix, bool withBracket = true)
- {
- string extendedPrefix = string.Format(
- "{0}_{1}_{2}@{3}",
- prefix,
- Environment.UserName,
- Environment.MachineName,
- DateTime.Now.ToString("yyyy_MM_dd", CultureInfo.InvariantCulture));
- string name = GetUniqueName(extendedPrefix, withBracket);
- if (name.Length > 128)
- {
- throw new ArgumentOutOfRangeException("the name is too long - SQL Server names are limited to 128");
- }
- return name;
+ ///
+ ///
+ /// The prefix to use when generating the unique name, truncated to at
+ /// most 32 characters.
+ ///
+ /// This should not contain any characters that cannot be used in
+ /// database object names. See:
+ ///
+ /// https://learn.microsoft.com/en-us/sql/relational-databases/databases/database-identifiers?view=sql-server-ver17#rules-for-regular-identifiers
+ ///
+ ///
+ ///
+ /// When true, the entire generated name will be enclosed in square
+ /// brackets, for example:
+ ///
+ /// [MyPrefix_7ff01cb811f0_test_user_ci_agent_machine_name]
+ ///
+ ///
+ ///
+ /// A unique database object name, no more than 96 characters long.
+ ///
+ public static string GetLongName(string prefix, bool withBracket = true)
+ {
+ StringBuilder name = new(96);
+
+ if (withBracket)
+ {
+ name.Append('[');
+ }
+
+ if (prefix.Length > 32)
+ {
+ prefix = prefix.Substring(0, 32);
+ }
+
+ name.Append(prefix);
+ name.Append('_');
+ name.Append(GetGuidParts());
+ name.Append('_');
+
+ var suffix =
+ Environment.UserName + '_' +
+ Environment.MachineName;
+
+ int maxSuffixLength = 96 - name.Length;
+ if (withBracket)
+ {
+ --maxSuffixLength;
+ }
+ if (suffix.Length > maxSuffixLength)
+ {
+ suffix = suffix.Substring(0, maxSuffixLength);
+ }
+
+ name.Append(suffix);
+
+ if (withBracket)
+ {
+ name.Append(']');
+ }
+
+ return name.ToString();
}
public static void DropTable(SqlConnection sqlConnection, string tableName)
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTesting.Tests.csproj b/src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTesting.Tests.csproj
index 7eb2b1140c..5ccb1b6111 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTesting.Tests.csproj
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTesting.Tests.csproj
@@ -345,6 +345,8 @@
+
+
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/ProviderAgnostic/ReaderTest/ReaderTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/ProviderAgnostic/ReaderTest/ReaderTest.cs
index 5d09be77f4..5728a8b1ac 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/ProviderAgnostic/ReaderTest/ReaderTest.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/ProviderAgnostic/ReaderTest/ReaderTest.cs
@@ -19,7 +19,7 @@ public static void TestMain()
{
string connectionString = DataTestUtility.TCPConnectionString;
- string tempTable = DataTestUtility.GetUniqueNameForSqlServer("table");
+ string tempTable = DataTestUtility.GetLongName("table");
DbProviderFactory provider = SqlClientFactory.Instance;
try
@@ -275,7 +275,7 @@ public static void TestMain()
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
public static void SqlDataReader_SqlBuffer_GetFieldValue()
{
- string tableName = DataTestUtility.GetUniqueNameForSqlServer("SqlBuffer_GetFieldValue");
+ string tableName = DataTestUtility.GetLongName("SqlBuffer_GetFieldValue");
DateTimeOffset dtoffset = DateTimeOffset.Now;
DateTime dt = DateTime.Now;
//Exclude the millisecond because of rounding at some points by SQL Server.
@@ -374,7 +374,7 @@ public static void SqlDataReader_SqlBuffer_GetFieldValue()
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
public static async Task SqlDataReader_SqlBuffer_GetFieldValue_Async()
{
- string tableName = DataTestUtility.GetUniqueNameForSqlServer("SqlBuffer_GetFieldValue_Async");
+ string tableName = DataTestUtility.GetLongName("SqlBuffer_GetFieldValue_Async");
DateTimeOffset dtoffset = DateTimeOffset.Now;
DateTime dt = DateTime.Now;
//Exclude the millisecond because of rounding at some points by SQL Server.
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/AdapterTest/AdapterTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/AdapterTest/AdapterTest.cs
index e3226c5e3c..4938fc5a76 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/AdapterTest/AdapterTest.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/AdapterTest/AdapterTest.cs
@@ -54,7 +54,7 @@ public class AdapterTest
public AdapterTest()
{
// create random name for temp tables
- _tempTable = DataTestUtility.GetUniqueName("AdapterTest");
+ _tempTable = DataTestUtility.GetShortName("AdapterTest");
_tempTable = _tempTable.Replace('-', '_');
_randomGuid = Guid.NewGuid().ToString();
@@ -555,7 +555,7 @@ public void ParameterTest_AllTypes()
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
public void ParameterTest_InOut()
{
- string procName = DataTestUtility.GetUniqueName("P");
+ string procName = DataTestUtility.GetShortName("P");
// input, output
string spCreateInOut =
"CREATE PROCEDURE " + procName + " @in int, @inout int OUTPUT, @out nvarchar(8) OUTPUT " +
@@ -836,13 +836,13 @@ public void BulkUpdateTest()
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
public void UpdateRefreshTest()
{
- string identTableName = DataTestUtility.GetUniqueName("ID_");
+ string identTableName = DataTestUtility.GetShortName("ID_");
string createIdentTable =
$"CREATE TABLE {identTableName} (id int IDENTITY," +
"LastName nvarchar(50) NULL," +
"Firstname nvarchar(50) NULL)";
- string spName = DataTestUtility.GetUniqueName("sp_insert", withBracket: false);
+ string spName = DataTestUtility.GetShortName("sp_insert", withBracket: false);
string spCreateInsert =
$"CREATE PROCEDURE {spName}" +
"(@FirstName nvarchar(50), @LastName nvarchar(50), @id int OUTPUT) " +
@@ -1155,7 +1155,7 @@ public void AutoGenUpdateTest()
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
public void AutoGenErrorTest()
{
- string identTableName = DataTestUtility.GetUniqueName("ID_");
+ string identTableName = DataTestUtility.GetShortName("ID_");
string createIdentTable =
$"CREATE TABLE {identTableName} (id int IDENTITY," +
"LastName nvarchar(50) NULL," +
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/AsyncTest/XmlReaderAsyncTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/AsyncTest/XmlReaderAsyncTest.cs
index af5045e6ad..2f430245e9 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/AsyncTest/XmlReaderAsyncTest.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/AsyncTest/XmlReaderAsyncTest.cs
@@ -3,8 +3,8 @@
// See the LICENSE file in the project root for more information.
using System;
+using System.Threading.Tasks;
using System.Xml;
-using System.Xml.Linq;
using Xunit;
namespace Microsoft.Data.SqlClient.ManualTesting.Tests
@@ -71,7 +71,7 @@ public static void ExceptionTest()
// Synapse: Parse error at line: 1, column: 29: Incorrect syntax near 'FOR'.
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
- public static async void MoveToContentAsyncTest()
+ public static async Task MoveToContentAsyncTest()
{
using (SqlConnection connection = new SqlConnection(DataTestUtility.TCPConnectionString))
using (SqlCommand command = new SqlCommand(CommandText, connection))
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/Batch/BatchTests.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/Batch/BatchTests.cs
index c02658284b..1a22af41e9 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/Batch/BatchTests.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/Batch/BatchTests.cs
@@ -3,6 +3,7 @@
// See the LICENSE file in the project root for more information.
using System;
+using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using System.Threading.Tasks;
@@ -10,6 +11,7 @@
namespace Microsoft.Data.SqlClient.ManualTesting.Tests
{
+ [Collection("BatchTestsCollection")]
public static class BatchTests
{
@@ -74,9 +76,13 @@ public static void SqlBatchCanCreateParameter()
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup))]
public static void StoredProcedureBatchSupported()
{
+ SqlRetryLogicOption rto = new() { NumberOfTries = 3, DeltaTime = TimeSpan.FromMilliseconds(100), TransientErrors = new[] { 1205 } }; // Retry on 1205 / Deadlock
+ SqlRetryLogicBaseProvider prov = SqlConfigurableRetryFactory.CreateIncrementalRetryProvider(rto);
+
using (var connection = new SqlConnection(DataTestUtility.TCPConnectionString))
- using (var batch = new SqlBatch { Connection = connection, BatchCommands = { new SqlBatchCommand("sp_help", CommandType.StoredProcedure) } })
+ using (var batch = new SqlBatch { Connection = connection, BatchCommands = { new SqlBatchCommand("sp_help", CommandType.StoredProcedure, new List { new("@objname", "sys.indexes") }) } })
{
+ connection.RetryLogicProvider = prov;
connection.Open();
batch.ExecuteNonQuery();
}
@@ -102,19 +108,24 @@ public static void TableDirectBatchNotSupported()
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup))]
public static void MixedBatchSupported()
{
+ SqlRetryLogicOption rto = new() { NumberOfTries = 3, DeltaTime = TimeSpan.FromMilliseconds(100), TransientErrors = new[] { 1205 } }; // Retry on 1205 / Deadlock
+ SqlRetryLogicBaseProvider prov = SqlConfigurableRetryFactory.CreateIncrementalRetryProvider(rto);
+
using (var connection = new SqlConnection(DataTestUtility.TCPConnectionString))
using (var batch = new SqlBatch
+ {
+ Connection = connection,
+ BatchCommands =
+ {
+ new SqlBatchCommand("select @@SPID", CommandType.Text),
+ new SqlBatchCommand("sp_help", CommandType.StoredProcedure, new List { new("@objname", "sys.indexes") })
+ }
+ })
{
- Connection = connection,
- BatchCommands =
- {
- new SqlBatchCommand("select @@SPID", CommandType.Text),
- new SqlBatchCommand("sp_help",CommandType.StoredProcedure)
- }
- })
- {
+ connection.RetryLogicProvider = prov;
connection.Open();
batch.ExecuteNonQuery();
+ return;
}
}
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ConnectivityTests/ConnectivityTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ConnectivityTests/ConnectivityTest.cs
index da09f3406c..7a22f87ea6 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ConnectivityTests/ConnectivityTest.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ConnectivityTests/ConnectivityTest.cs
@@ -7,6 +7,7 @@
using System.Data;
using System.Diagnostics;
using System.Threading;
+using System.Threading.Tasks;
using Xunit;
namespace Microsoft.Data.SqlClient.ManualTesting.Tests
@@ -87,7 +88,7 @@ public static void EnvironmentHostNameSPIDTest()
}
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup))]
- public static async void ConnectionTimeoutInfiniteTest()
+ public static async Task ConnectionTimeoutInfiniteTest()
{
// Exercise the special-case infinite connect timeout code path
SqlConnectionStringBuilder builder = new(DataTestUtility.TCPConnectionString)
@@ -383,7 +384,7 @@ public static void ConnectionOpenDisableRetry()
Assert.Throws(() => sqlConnection.Open());
timer.Stop();
duration = timer.Elapsed;
- Assert.True(duration.Seconds > 5, $"Connection Open() with retries took less time than expected. Expect > 5 sec with transient fault handling. Took {duration.Seconds} sec."); // sqlConnection.Open();
+ Assert.True(duration.Seconds > 5, $"Connection Open() with retries took less time than expected. Expect > 5 sec with transient fault handling. Took {duration.Seconds} sec."); // sqlConnection.Open();
}
[PlatformSpecific(TestPlatforms.Windows)]
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/DataClassificationTest/DataClassificationTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/DataClassificationTest/DataClassificationTest.cs
index 8119bd2586..24786999e7 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/DataClassificationTest/DataClassificationTest.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/DataClassificationTest/DataClassificationTest.cs
@@ -18,7 +18,7 @@ public static class DataClassificationTest
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse), nameof(DataTestUtility.IsSupportedDataClassification))]
public static void TestDataClassificationResultSetRank()
{
- s_tableName = DataTestUtility.GetUniqueNameForSqlServer("DC");
+ s_tableName = DataTestUtility.GetLongName("DC");
using (SqlConnection sqlConnection = new SqlConnection(DataTestUtility.TCPConnectionString))
using (SqlCommand sqlCommand = sqlConnection.CreateCommand())
{
@@ -41,7 +41,7 @@ public static void TestDataClassificationResultSetRank()
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsSupportedDataClassification))]
public static void TestDataClassificationResultSet()
{
- s_tableName = DataTestUtility.GetUniqueNameForSqlServer("DC");
+ s_tableName = DataTestUtility.GetLongName("DC");
using (SqlConnection sqlConnection = new SqlConnection(DataTestUtility.TCPConnectionString))
using (SqlCommand sqlCommand = sqlConnection.CreateCommand())
{
@@ -232,7 +232,7 @@ public static void TestDataClassificationBulkCopy()
data.Rows.Add(Guid.NewGuid(), "Company 2", "sample2@contoso.com", 1);
data.Rows.Add(Guid.NewGuid(), "Company 3", "sample3@contoso.com", 1);
- var tableName = DataTestUtility.GetUniqueNameForSqlServer("DC");
+ var tableName = DataTestUtility.GetLongName("DC");
using (var connection = new SqlConnection(DataTestUtility.TCPConnectionString))
{
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/DataReaderTest/DataReaderStreamsTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/DataReaderTest/DataReaderStreamsTest.cs
index 3f16a3a138..01b1429afd 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/DataReaderTest/DataReaderStreamsTest.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/DataReaderTest/DataReaderStreamsTest.cs
@@ -157,7 +157,7 @@ public static async Task GetFieldValueAsync_Char_OfTextReader(CommandBehavior be
// Synapse: Cannot find data type 'XML'.
[ConditionalTheory(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
[MemberData(nameof(GetCommandBehavioursAndIsAsync))]
- public static async void GetFieldValue_OfXmlReader(CommandBehavior behavior, bool isExecuteAsync)
+ public static async Task GetFieldValue_OfXmlReader(CommandBehavior behavior, bool isExecuteAsync)
{
const int PacketSize = 512; // force minimun packet size so that the test data spans multiple packets to test sequential access spanning
string connectionString = SetConnectionStringPacketSize(DataTestUtility.TCPConnectionString, PacketSize);
@@ -191,7 +191,7 @@ public static async void GetFieldValue_OfXmlReader(CommandBehavior behavior, boo
[ConditionalTheory(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup))]
[MemberData(nameof(GetCommandBehavioursAndIsAsync))]
- public static async void GetFieldValue_OfStream(CommandBehavior behavior, bool isExecuteAsync)
+ public static async Task GetFieldValue_OfStream(CommandBehavior behavior, bool isExecuteAsync)
{
const int PacketSize = 512; // force minimun packet size so that the test data spans multiple packets to test sequential access spanning
string connectionString = SetConnectionStringPacketSize(DataTestUtility.TCPConnectionString, PacketSize);
@@ -224,7 +224,7 @@ public static async void GetFieldValue_OfStream(CommandBehavior behavior, bool i
[ConditionalTheory(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
[MemberData(nameof(GetCommandBehavioursAndIsAsync))]
- public static async void GetFieldValue_OfTextReader(CommandBehavior behavior, bool isExecuteAsync)
+ public static async Task GetFieldValue_OfTextReader(CommandBehavior behavior, bool isExecuteAsync)
{
const int PacketSize = 512; // force minimun packet size so that the test data spans multiple packets to test sequential access spanning
string connectionString = SetConnectionStringPacketSize(DataTestUtility.TCPConnectionString, PacketSize);
@@ -258,7 +258,7 @@ public static async void GetFieldValue_OfTextReader(CommandBehavior behavior, bo
[ConditionalTheory(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup))]
[MemberData(nameof(GetCommandBehavioursAndIsAsync))]
- public static async void GetStream(CommandBehavior behavior, bool isExecuteAsync)
+ public static async Task GetStream(CommandBehavior behavior, bool isExecuteAsync)
{
const int PacketSize = 512; // force minimun packet size so that the test data spans multiple packets to test sequential access spanning
string connectionString = SetConnectionStringPacketSize(DataTestUtility.TCPConnectionString, PacketSize);
@@ -294,7 +294,7 @@ public static async void GetStream(CommandBehavior behavior, bool isExecuteAsync
[ConditionalTheory(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
[MemberData(nameof(GetCommandBehavioursAndIsAsync))]
- public static async void GetXmlReader(CommandBehavior behavior, bool isExecuteAsync)
+ public static async Task GetXmlReader(CommandBehavior behavior, bool isExecuteAsync)
{
const int PacketSize = 512; // force minimun packet size so that the test data spans multiple packets to test sequential access spanning
string connectionString = SetConnectionStringPacketSize(DataTestUtility.TCPConnectionString, PacketSize);
@@ -328,7 +328,7 @@ public static async void GetXmlReader(CommandBehavior behavior, bool isExecuteAs
[ConditionalTheory(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup))]
[MemberData(nameof(GetCommandBehavioursAndIsAsync))]
- public static async void GetTextReader(CommandBehavior behavior, bool isExecuteAsync)
+ public static async Task GetTextReader(CommandBehavior behavior, bool isExecuteAsync)
{
const int PacketSize = 512; // force minimun packet size so that the test data spans multiple packets to test sequential access spanning
string connectionString = SetConnectionStringPacketSize(DataTestUtility.TCPConnectionString, PacketSize);
@@ -474,7 +474,7 @@ public static void InvalidCastExceptionStream(CommandBehavior behavior, Accessor
#if NETCOREAPP
[ConditionalFact(typeof(DataTestUtility),nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
- public static async void ReadAsyncContentsCompletes()
+ public static async Task ReadAsyncContentsCompletes()
{
string expectedXml = "This is a test string";
string query = $"SELECT CAST('{expectedXml}' AS NVARCHAR(MAX))";
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/DataReaderTest/DataReaderTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/DataReaderTest/DataReaderTest.cs
index d00ea1d226..60917e50e0 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/DataReaderTest/DataReaderTest.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/DataReaderTest/DataReaderTest.cs
@@ -133,7 +133,7 @@ public static void CheckSparseColumnBit()
[InlineData("Georgian_Modern_Sort_CI_AS")]
public static void CollatedDataReaderTest(string collation)
{
- string dbName = DataTestUtility.GetUniqueName("CollationTest", false);
+ string dbName = DataTestUtility.GetShortName("CollationTest", false);
SqlConnectionStringBuilder builder = new(DataTestUtility.TCPConnectionString)
{
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/DataStreamTest/DataStreamTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/DataStreamTest/DataStreamTest.cs
index cc11acc1da..5bc0c8a7d7 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/DataStreamTest/DataStreamTest.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/DataStreamTest/DataStreamTest.cs
@@ -50,7 +50,7 @@ public static async Task AsyncMultiPacketStreamRead()
byte[] inputData = null;
byte[] outputData = null;
- string tableName = DataTestUtility.GetUniqueNameForSqlServer("data");
+ string tableName = DataTestUtility.GetLongName("data");
using (SqlConnection connection = new(connectionString))
{
@@ -546,7 +546,7 @@ private static void RowBuffer(string connectionString)
private static void TimestampRead(string connectionString)
{
- string tempTable = DataTestUtility.GetUniqueNameForSqlServer("##Temp");
+ string tempTable = DataTestUtility.GetLongName("##Temp");
tempTable = tempTable.Replace('-', '_');
using (SqlConnection conn = new SqlConnection(connectionString))
@@ -1041,7 +1041,7 @@ private static void SequentialAccess(string connectionString)
private static void NumericRead(string connectionString)
{
- string tempTable = DataTestUtility.GetUniqueNameForSqlServer("##Temp");
+ string tempTable = DataTestUtility.GetLongName("##Temp");
tempTable = tempTable.Replace('-', '_');
using (SqlConnection conn = new SqlConnection(connectionString))
@@ -1872,8 +1872,8 @@ private static void StreamingBlobDataTypes(string connectionString)
private static void VariantCollationsTest(string connectionString)
{
- string dbName = DataTestUtility.GetUniqueName("JPN");
- string tableName = DataTestUtility.GetUniqueName("T");
+ string dbName = DataTestUtility.GetShortName("JPN");
+ string tableName = DataTestUtility.GetShortName("T");
using (SqlConnection connection = new SqlConnection(connectionString))
{
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/MARSTest/MARSTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/MARSTest/MARSTest.cs
index 2cdbfdcc40..9bbccb8b31 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/MARSTest/MARSTest.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/MARSTest/MARSTest.cs
@@ -251,7 +251,7 @@ public static void MARSSyncBusyReaderTest()
}
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
- public static async void MARSAsyncExecuteNonQueryTest()
+ public static async Task MARSAsyncExecuteNonQueryTest()
{
using SqlConnection con = new(_connStr);
con.Open();
@@ -298,7 +298,7 @@ public static void MARSSyncExecuteNonQueryTest()
}
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
- public static async void MARSAsyncExecuteReaderTest1()
+ public static async Task MARSAsyncExecuteReaderTest1()
{
using SqlConnection con = new(_connStr);
con.Open();
@@ -412,7 +412,7 @@ public static void MARSSyncExecuteReaderTest1()
}
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
- public static async void MARSAsyncExecuteReaderTest2()
+ public static async Task MARSAsyncExecuteReaderTest2()
{
using SqlConnection con = new(_connStr);
con.Open();
@@ -463,7 +463,7 @@ public static void MARSSyncExecuteReaderTest2()
}
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
- public static async void MARSAsyncExecuteReaderTest3()
+ public static async Task MARSAsyncExecuteReaderTest3()
{
using SqlConnection con = new(_connStr);
con.Open();
@@ -525,7 +525,7 @@ public static void MARSSyncExecuteReaderTest3()
}
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
- public static async void MARSAsyncExecuteReaderTest4()
+ public static async Task MARSAsyncExecuteReaderTest4()
{
using SqlConnection con = new(_connStr);
con.Open();
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariantTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariantTest.cs
index 31c232e3d0..20768e9329 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariantTest.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariantTest.cs
@@ -75,7 +75,7 @@ private static void TestSimpleParameter_Type(object paramValue, string expectedT
{
string tag = "TestSimpleParameter_Type";
DisplayHeader(tag, paramValue, expectedBaseTypeName);
- string procName = DataTestUtility.GetUniqueNameForSqlServer("paramProc1");
+ string procName = DataTestUtility.GetLongName("paramProc1");
try
{
using SqlConnection conn = new(s_connStr);
@@ -115,7 +115,7 @@ private static void TestSimpleParameter_Variant(object paramValue, string expect
{
string tag = "TestSimpleParameter_Variant";
DisplayHeader(tag, paramValue, expectedBaseTypeName);
- string procName = DataTestUtility.GetUniqueNameForSqlServer("paramProc2");
+ string procName = DataTestUtility.GetLongName("paramProc2");
try
{
using SqlConnection conn = new(s_connStr);
@@ -153,7 +153,7 @@ private static void TestSqlDataRecordParameterToTVP_Type(object paramValue, stri
{
string tag = "TestSqlDataRecordParameterToTVP_Type";
DisplayHeader(tag, paramValue, expectedBaseTypeName);
- string tvpTypeName = DataTestUtility.GetUniqueNameForSqlServer("tvpType");
+ string tvpTypeName = DataTestUtility.GetLongName("tvpType");
try
{
using SqlConnection conn = new(s_connStr);
@@ -200,7 +200,7 @@ private static void TestSqlDataRecordParameterToTVP_Variant(object paramValue, s
{
string tag = "TestSqlDataRecordParameterToTVP_Variant";
DisplayHeader(tag, paramValue, expectedBaseTypeName);
- string tvpTypeName = DataTestUtility.GetUniqueNameForSqlServer("tvpVariant");
+ string tvpTypeName = DataTestUtility.GetLongName("tvpVariant");
try
{
using SqlConnection conn = new(s_connStr);
@@ -245,7 +245,7 @@ private static void TestSqlDataReaderParameterToTVP_Type(object paramValue, stri
{
string tag = "TestSqlDataReaderParameterToTVP_Type";
DisplayHeader(tag, paramValue, expectedBaseTypeName);
- string tvpTypeName = DataTestUtility.GetUniqueNameForSqlServer("tvpType");
+ string tvpTypeName = DataTestUtility.GetLongName("tvpType");
try
{
using SqlConnection conn = new(s_connStr);
@@ -295,7 +295,7 @@ private static void TestSqlDataReaderParameterToTVP_Variant(object paramValue, s
{
string tag = "TestSqlDataReaderParameterToTVP_Variant";
DisplayHeader(tag, paramValue, expectedBaseTypeName);
- string tvpTypeName = DataTestUtility.GetUniqueNameForSqlServer("tvpVariant");
+ string tvpTypeName = DataTestUtility.GetLongName("tvpVariant");
try
{
using SqlConnection conn = new(s_connStr);
@@ -347,10 +347,10 @@ private static void TestSqlDataReader_TVP_Type(object paramValue, string expecte
{
string tag = "TestSqlDataReader_TVP_Type";
DisplayHeader(tag, paramValue, expectedBaseTypeName);
- string tvpTypeName = DataTestUtility.GetUniqueNameForSqlServer("tvpType");
- string InputTableName = DataTestUtility.GetUniqueNameForSqlServer("InputTable");
- string OutputTableName = DataTestUtility.GetUniqueNameForSqlServer("OutputTable");
- string ProcName = DataTestUtility.GetUniqueNameForSqlServer("spTVPProc");
+ string tvpTypeName = DataTestUtility.GetLongName("tvpType");
+ string InputTableName = DataTestUtility.GetLongName("InputTable");
+ string OutputTableName = DataTestUtility.GetLongName("OutputTable");
+ string ProcName = DataTestUtility.GetLongName("spTVPProc");
try
{
using SqlConnection conn = new(s_connStr);
@@ -428,10 +428,10 @@ private static void TestSqlDataReader_TVP_Variant(object paramValue, string expe
{
string tag = "TestSqlDataReader_TVP_Variant";
DisplayHeader(tag, paramValue, expectedBaseTypeName);
- string tvpTypeName = DataTestUtility.GetUniqueNameForSqlServer("tvpVariant_DRdrTVPVar");
- string InputTableName = DataTestUtility.GetUniqueNameForSqlServer("InputTable");
- string OutputTableName = DataTestUtility.GetUniqueNameForSqlServer("OutputTable");
- string ProcName = DataTestUtility.GetUniqueNameForSqlServer("spTVPProc_DRdrTVPVar");
+ string tvpTypeName = DataTestUtility.GetLongName("tvpVariant_DRdrTVPVar");
+ string InputTableName = DataTestUtility.GetLongName("InputTable");
+ string OutputTableName = DataTestUtility.GetLongName("OutputTable");
+ string ProcName = DataTestUtility.GetLongName("spTVPProc_DRdrTVPVar");
try
{
using SqlConnection conn = new(s_connStr);
@@ -512,8 +512,8 @@ private static void TestSimpleDataReader_Type(object paramValue, string expected
{
string tag = "TestSimpleDataReader_Type";
DisplayHeader(tag, paramValue, expectedBaseTypeName);
- string inputTable = DataTestUtility.GetUniqueNameForSqlServer("inputTable");
- string procName = DataTestUtility.GetUniqueNameForSqlServer("paramProc3");
+ string inputTable = DataTestUtility.GetLongName("inputTable");
+ string procName = DataTestUtility.GetLongName("paramProc3");
try
{
using SqlConnection conn = new(s_connStr);
@@ -568,8 +568,8 @@ private static void TestSimpleDataReader_Variant(object paramValue, string expec
{
string tag = "TestSimpleDataReader_Variant";
DisplayHeader(tag, paramValue, expectedBaseTypeName);
- string inputTable = DataTestUtility.GetUniqueNameForSqlServer("inputTable");
- string procName = DataTestUtility.GetUniqueNameForSqlServer("paramProc4");
+ string inputTable = DataTestUtility.GetLongName("inputTable");
+ string procName = DataTestUtility.GetLongName("paramProc4");
try
{
using SqlConnection conn = new(s_connStr);
@@ -624,8 +624,8 @@ private static void SqlBulkCopySqlDataReader_Type(object paramValue, string expe
{
string tag = "SqlBulkCopySqlDataReader_Type";
DisplayHeader(tag, paramValue, expectedBaseTypeName);
- string bulkCopySrcTableName = DataTestUtility.GetUniqueNameForSqlServer("bulkSrcTable");
- string bulkCopyTableName = DataTestUtility.GetUniqueNameForSqlServer("bulkDestTable");
+ string bulkCopySrcTableName = DataTestUtility.GetLongName("bulkSrcTable");
+ string bulkCopyTableName = DataTestUtility.GetLongName("bulkDestTable");
try
{
using SqlConnection conn = new(s_connStr);
@@ -698,8 +698,8 @@ private static void SqlBulkCopySqlDataReader_Variant(object paramValue, string e
{
string tag = "SqlBulkCopySqlDataReader_Variant";
DisplayHeader(tag, paramValue, expectedBaseTypeName);
- string bulkCopySrcTableName = DataTestUtility.GetUniqueNameForSqlServer("bulkSrcTable");
- string bulkCopyTableName = DataTestUtility.GetUniqueNameForSqlServer("bulkDestTable");
+ string bulkCopySrcTableName = DataTestUtility.GetLongName("bulkSrcTable");
+ string bulkCopyTableName = DataTestUtility.GetLongName("bulkDestTable");
try
{
using SqlConnection conn = new(s_connStr);
@@ -776,7 +776,7 @@ private static void SqlBulkCopyDataTable_Type(object paramValue, string expected
{
string tag = "SqlBulkCopyDataTable_Type";
DisplayHeader(tag, paramValue, expectedBaseTypeName);
- string bulkCopyTableName = DataTestUtility.GetUniqueNameForSqlServer("bulkDestType");
+ string bulkCopyTableName = DataTestUtility.GetLongName("bulkDestType");
try
{
using SqlConnection conn = new(s_connStr);
@@ -836,7 +836,7 @@ private static void SqlBulkCopyDataTable_Variant(object paramValue, string expec
{
string tag = "SqlBulkCopyDataTable_Variant";
DisplayHeader(tag, paramValue, expectedBaseTypeName);
- string bulkCopyTableName = DataTestUtility.GetUniqueNameForSqlServer("bulkDestVariant");
+ string bulkCopyTableName = DataTestUtility.GetLongName("bulkDestVariant");
try
{
using SqlConnection conn = new(s_connStr);
@@ -886,7 +886,7 @@ private static void SqlBulkCopyDataRow_Type(object paramValue, string expectedTy
{
string tag = "SqlBulkCopyDataRow_Type";
DisplayHeader(tag, paramValue, expectedBaseTypeName);
- string bulkCopyTableName = DataTestUtility.GetUniqueNameForSqlServer("bulkDestType");
+ string bulkCopyTableName = DataTestUtility.GetLongName("bulkDestType");
try
{
using SqlConnection conn = new(s_connStr);
@@ -941,7 +941,7 @@ private static void SqlBulkCopyDataRow_Variant(object paramValue, string expecte
{
string tag = "SqlBulkCopyDataRow_Variant";
DisplayHeader(tag, paramValue, expectedBaseTypeName);
- string bulkCopyTableName = DataTestUtility.GetUniqueNameForSqlServer("bulkDestVariant");
+ string bulkCopyTableName = DataTestUtility.GetLongName("bulkDestVariant");
try
{
using SqlConnection conn = new(s_connStr);
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 3b71cbf851..5c3e1867c5 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/ParametersTest.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/ParametersTest.cs
@@ -8,6 +8,8 @@
using System.Data;
using System.Data.SqlTypes;
using System.Threading;
+using Microsoft.Data.SqlClient.Server;
+using Microsoft.SqlServer.Types;
using Xunit;
namespace Microsoft.Data.SqlClient.ManualTesting.Tests
@@ -111,7 +113,7 @@ public static void CodeCoverageSqlClient()
public static void Test_Copy_SqlParameter()
{
using var conn = new SqlConnection(s_connString);
- string cTableName = DataTestUtility.GetUniqueNameForSqlServer("#tmp");
+ string cTableName = DataTestUtility.GetLongName("#tmp");
try
{
// Create tmp table
@@ -253,9 +255,9 @@ public static void TestParametersWithDatatablesTVPInsert()
};
using SqlConnection connection = new(builder.ConnectionString);
- string tableName = DataTestUtility.GetUniqueNameForSqlServer("Table");
- string procName = DataTestUtility.GetUniqueNameForSqlServer("Proc");
- string typeName = DataTestUtility.GetUniqueName("Type");
+ string tableName = DataTestUtility.GetLongName("Table");
+ string procName = DataTestUtility.GetLongName("Proc");
+ string typeName = DataTestUtility.GetShortName("Type");
try
{
connection.Open();
@@ -306,6 +308,92 @@ public static void TestParametersWithDatatablesTVPInsert()
}
}
+#if !NETFRAMEWORK
+ // Synapse: Parse error at line: 1, column: 8: Incorrect syntax near 'TYPE'.
+ [ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
+ public static void TestParametersWithSqlRecordsTVPInsert()
+ {
+ SqlConnectionStringBuilder builder = new(DataTestUtility.TCPConnectionString);
+
+ SqlGeography geog = SqlGeography.Point(43, -81, 4326);
+
+ SqlMetaData[] metadata = new SqlMetaData[]
+ {
+ new SqlMetaData("Id", SqlDbType.UniqueIdentifier),
+ new SqlMetaData("geom", SqlDbType.Udt, typeof(SqlGeography), "Geography")
+ };
+
+ SqlDataRecord record1 = new SqlDataRecord(metadata);
+ record1.SetValues(Guid.NewGuid(), geog);
+
+ SqlDataRecord record2 = new SqlDataRecord(metadata);
+ record2.SetValues(Guid.NewGuid(), geog);
+
+ IList featureInserts = new List
+ {
+ record1,
+ record2,
+ };
+
+ using SqlConnection connection = new(builder.ConnectionString);
+ string procName = DataTestUtility.GetLongName("Proc");
+ string typeName = DataTestUtility.GetShortName("Type");
+ try
+ {
+ connection.Open();
+
+ using (SqlCommand cmd = connection.CreateCommand())
+ {
+ cmd.CommandText = $"CREATE TYPE {typeName} AS TABLE([Id] [uniqueidentifier] NULL, [geom] [geography] NULL)";
+ cmd.ExecuteNonQuery();
+
+ cmd.CommandText = @$"CREATE PROCEDURE {procName}
+ @newRoads as {typeName} READONLY
+ AS
+ BEGIN
+ SELECT* FROM @newRoads
+ END";
+ cmd.ExecuteNonQuery();
+
+ }
+ using (SqlCommand cmd = connection.CreateCommand())
+ {
+ // Update Data Using TVPs
+ cmd.CommandText = procName;
+ cmd.CommandType = CommandType.StoredProcedure;
+
+ SqlParameter param = new SqlParameter("@newRoads", SqlDbType.Structured);
+ param.Value = featureInserts;
+ param.TypeName = typeName;
+
+ cmd.Parameters.Add(param);
+
+ using var reader = cmd.ExecuteReader();
+
+ Assert.True(reader.HasRows);
+
+ int count = 0;
+ while (reader.Read())
+ {
+ Assert.NotNull(reader[0]);
+ Assert.NotNull(reader[1]);
+ count++;
+ }
+
+ Assert.Equal(2, count);
+ }
+ }
+ finally
+ {
+ using SqlCommand cmd = connection.CreateCommand();
+ cmd.CommandText = "DROP PROCEDURE " + procName;
+ cmd.ExecuteNonQuery();
+ cmd.CommandText = "DROP TYPE " + typeName;
+ cmd.ExecuteNonQuery();
+ }
+ }
+#endif
+
#region Scaled Decimal Parameter & TVP Test
[ConditionalTheory(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup))]
[InlineData("CAST(1.0 as decimal(38, 37))", "1.0000000000000000000000000000")]
@@ -360,7 +448,7 @@ public static void SqlDecimalConvertToDecimal_TestOutOfRange(string sqlDecimalVa
[ClassData(typeof(ConnectionStringsProvider))]
public static void TestScaledDecimalParameter_CommandInsert(string connectionString, bool truncateScaledDecimal)
{
- string tableName = DataTestUtility.GetUniqueNameForSqlServer("TestDecimalParameterCMD");
+ string tableName = DataTestUtility.GetLongName("TestDecimalParameterCMD");
using SqlConnection connection = InitialDatabaseTable(connectionString, tableName);
try
{
@@ -392,7 +480,7 @@ public static void TestScaledDecimalParameter_CommandInsert(string connectionStr
[ClassData(typeof(ConnectionStringsProvider))]
public static void TestScaledDecimalParameter_BulkCopy(string connectionString, bool truncateScaledDecimal)
{
- string tableName = DataTestUtility.GetUniqueNameForSqlServer("TestDecimalParameterBC");
+ string tableName = DataTestUtility.GetLongName("TestDecimalParameterBC");
using SqlConnection connection = InitialDatabaseTable(connectionString, tableName);
try
{
@@ -426,9 +514,9 @@ public static void TestScaledDecimalParameter_BulkCopy(string connectionString,
[ClassData(typeof(ConnectionStringsProvider))]
public static void TestScaledDecimalTVP_CommandSP(string connectionString, bool truncateScaledDecimal)
{
- string tableName = DataTestUtility.GetUniqueNameForSqlServer("TestDecimalParameterBC");
- string tableTypeName = DataTestUtility.GetUniqueNameForSqlServer("UDTTTestDecimalParameterBC");
- string spName = DataTestUtility.GetUniqueNameForSqlServer("spTestDecimalParameterBC");
+ string tableName = DataTestUtility.GetLongName("TestDecimalParameterBC");
+ string tableTypeName = DataTestUtility.GetLongName("UDTTTestDecimalParameterBC");
+ string spName = DataTestUtility.GetLongName("spTestDecimalParameterBC");
using SqlConnection connection = InitialDatabaseUDTT(connectionString, tableName, tableTypeName, spName);
try
{
@@ -713,7 +801,7 @@ private static void EnableOptimizedParameterBinding_ReturnSucceeds()
{
int firstInput = 12;
- string sprocName = DataTestUtility.GetUniqueName("P");
+ string sprocName = DataTestUtility.GetShortName("P");
// input, output
string createSprocQuery =
"CREATE PROCEDURE " + sprocName + " @in int " +
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlAdapterUpdateBatch.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlAdapterUpdateBatch.cs
index 7f383e8201..aa59bc319c 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlAdapterUpdateBatch.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlAdapterUpdateBatch.cs
@@ -15,7 +15,7 @@ public class SqlAdapterUpdateBatch
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
public void SqlAdapterTest()
{
- string tableName = DataTestUtility.GetUniqueNameForSqlServer("Adapter");
+ string tableName = DataTestUtility.GetLongName("Adapter");
string tableNameNoBrackets = tableName.Substring(1, tableName.Length - 2);
try
{
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParam.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParam.cs
index 2d11274191..e1592825b1 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParam.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParam.cs
@@ -108,7 +108,7 @@ private static void SendVariantParam(object paramValue, string expectedTypeName,
///
private static void SendVariantBulkCopy(object paramValue, string expectedTypeName, string expectedBaseTypeName)
{
- string bulkCopyTableName = DataTestUtility.GetUniqueNameForSqlServer("bulkDest");
+ string bulkCopyTableName = DataTestUtility.GetLongName("bulkDest");
// Fetch reader using type.
using SqlDataReader dr = GetReaderForVariant(paramValue, false);
@@ -194,7 +194,7 @@ private static void SendVariantBulkCopy(object paramValue, string expectedTypeNa
///
private static void SendVariantTvp(object paramValue, string expectedTypeName, string expectedBaseTypeName)
{
- string tvpTypeName = DataTestUtility.GetUniqueNameForSqlServer("tvpVariant");
+ string tvpTypeName = DataTestUtility.GetLongName("tvpVariant");
using SqlConnection connTvp = new(s_connStr);
connTvp.Open();
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/RetryLogic/RetryLogicCounterTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/RetryLogic/RetryLogicCounterTest.cs
index e451091315..4b1b7add4d 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/RetryLogic/RetryLogicCounterTest.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/RetryLogic/RetryLogicCounterTest.cs
@@ -16,7 +16,7 @@ public class RetryLogicCounterTest
[InlineData("ExecuteReaderAsync", 3)]
[InlineData("ExecuteXmlReaderAsync", 3)]
[InlineData("ExecuteNonQueryAsync", 3)]
- public async void ValidateRetryCount_SqlCommand_Async(string methodName, int numOfTries)
+ public async Task ValidateRetryCount_SqlCommand_Async(string methodName, int numOfTries)
{
ErrorInfoRetryLogicProvider _errorInfoRetryProvider = new(
SqlConfigurableRetryFactory.CreateFixedRetryProvider(new SqlRetryLogicOption()
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/RetryLogic/SqlCommandReliabilityTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/RetryLogic/SqlCommandReliabilityTest.cs
index c25df6e069..21165e7624 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/RetryLogic/SqlCommandReliabilityTest.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/RetryLogic/SqlCommandReliabilityTest.cs
@@ -268,7 +268,7 @@ public void RetryExecuteUnauthorizedSqlStatementDML(string cnnString, SqlRetryLo
public void DropDatabaseWithActiveConnection(string cnnString, SqlRetryLogicBaseProvider provider)
{
int currentRetries = 0;
- string database = DataTestUtility.GetUniqueNameForSqlServer($"RetryLogic_{provider.RetryLogic.RetryIntervalEnumerator.GetType().Name}", false);
+ string database = DataTestUtility.GetLongName($"RetryLogic_{provider.RetryLogic.RetryIntervalEnumerator.GetType().Name}", false);
var builder = new SqlConnectionStringBuilder(cnnString)
{
InitialCatalog = database,
@@ -330,7 +330,7 @@ public void DropDatabaseWithActiveConnection(string cnnString, SqlRetryLogicBase
public void UpdateALockedTable(string cnnString, SqlRetryLogicBaseProvider provider)
{
int currentRetries = 0;
- string tableName = DataTestUtility.GetUniqueNameForSqlServer("Region");
+ string tableName = DataTestUtility.GetLongName("Region");
string fieldName = "RegionDescription";
using (var cnn1 = new SqlConnection(cnnString))
@@ -418,7 +418,7 @@ public void NoneRetriableExecuteFail(string cnnString, SqlRetryLogicBaseProvider
#region Async
[ConditionalTheory(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup))]
[MemberData(nameof(RetryLogicTestHelper.GetConnectionAndRetryStrategyInvalidCommand), parameters: new object[] { 2 }, MemberType = typeof(RetryLogicTestHelper), DisableDiscoveryEnumeration = true)]
- public async void RetryExecuteAsyncFail(string cnnString, SqlRetryLogicBaseProvider provider)
+ public async Task RetryExecuteAsyncFail(string cnnString, SqlRetryLogicBaseProvider provider)
{
int numberOfTries = provider.RetryLogic.NumberOfTries;
int cancelAfterRetries = numberOfTries + 1;
@@ -483,7 +483,7 @@ public async void RetryExecuteAsyncFail(string cnnString, SqlRetryLogicBaseProvi
[ConditionalTheory(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup))]
[MemberData(nameof(RetryLogicTestHelper.GetConnectionAndRetryStrategyInvalidCommand), parameters: new object[] { 2 }, MemberType = typeof(RetryLogicTestHelper), DisableDiscoveryEnumeration = true)]
- public async void RetryExecuteAsyncCancel(string cnnString, SqlRetryLogicBaseProvider provider)
+ public async Task RetryExecuteAsyncCancel(string cnnString, SqlRetryLogicBaseProvider provider)
{
int numberOfTries = provider.RetryLogic.NumberOfTries;
int cancelAfterRetries = numberOfTries - 1;
@@ -567,7 +567,7 @@ public void ConcurrentExecution(string cnnString, SqlRetryLogicBaseProvider prov
[ConditionalTheory(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup))]
[MemberData(nameof(RetryLogicTestHelper.GetConnectionAndRetryStrategyInvalidCommand), parameters: new object[] { 2 }, MemberType = typeof(RetryLogicTestHelper), DisableDiscoveryEnumeration = true)]
- public async void ConcurrentExecutionAsync(string cnnString, SqlRetryLogicBaseProvider provider)
+ public async Task ConcurrentExecutionAsync(string cnnString, SqlRetryLogicBaseProvider provider)
{
string query = "SELECT bad command";
await ProcessDataAsAsync(cnnString, provider, query, cmd => cmd.ExecuteScalarAsync());
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/RetryLogic/SqlConnectionReliabilityTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/RetryLogic/SqlConnectionReliabilityTest.cs
index 7bdebfcfc1..4dfa9269d9 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/RetryLogic/SqlConnectionReliabilityTest.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/RetryLogic/SqlConnectionReliabilityTest.cs
@@ -58,7 +58,7 @@ public void ConnectionCancelRetryOpenInvalidCatalog(string cnnString, SqlRetryLo
public void CreateDatabaseWhileTryingToConnect(string cnnString, SqlRetryLogicBaseProvider provider)
{
int currentRetries = 0;
- string database = DataTestUtility.GetUniqueNameForSqlServer($"RetryLogic_{provider.RetryLogic.RetryIntervalEnumerator.GetType().Name}", false);
+ string database = DataTestUtility.GetLongName($"RetryLogic_{provider.RetryLogic.RetryIntervalEnumerator.GetType().Name}", false);
var builder = new SqlConnectionStringBuilder(cnnString)
{
InitialCatalog = database,
@@ -160,7 +160,7 @@ public void DefaultOpenWithoutRetry(string connectionString, SqlRetryLogicBasePr
// Test relies on error 4060 for automatic retry, which is not reliable when using Azure or AAD auth
[ConditionalTheory(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup))]
[MemberData(nameof(RetryLogicTestHelper.GetConnectionAndRetryStrategyInvalidCatalog), parameters: new object[] { 5 }, MemberType = typeof(RetryLogicTestHelper), DisableDiscoveryEnumeration = true)]
- public async void ConnectionRetryOpenAsyncInvalidCatalogFailed(string cnnString, SqlRetryLogicBaseProvider provider)
+ public async Task ConnectionRetryOpenAsyncInvalidCatalogFailed(string cnnString, SqlRetryLogicBaseProvider provider)
{
int numberOfTries = provider.RetryLogic.NumberOfTries;
int cancelAfterRetries = numberOfTries + 1;
@@ -178,7 +178,7 @@ public async void ConnectionRetryOpenAsyncInvalidCatalogFailed(string cnnString,
// Test relies on error 4060 for automatic retry, which is not returned when using AAD auth
[ConditionalTheory(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.TcpConnectionStringDoesNotUseAadAuth))]
[MemberData(nameof(RetryLogicTestHelper.GetConnectionAndRetryStrategyInvalidCatalog), parameters: new object[] { 2 }, MemberType = typeof(RetryLogicTestHelper), DisableDiscoveryEnumeration = true)]
- public async void ConnectionCancelRetryOpenAsyncInvalidCatalog(string cnnString, SqlRetryLogicBaseProvider provider)
+ public async Task ConnectionCancelRetryOpenAsyncInvalidCatalog(string cnnString, SqlRetryLogicBaseProvider provider)
{
int numberOfTries = provider.RetryLogic.NumberOfTries;
int cancelAfterRetries = numberOfTries - 1;
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/AdjustPrecScaleForBulkCopy.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/AdjustPrecScaleForBulkCopy.cs
index 72bab47869..a845710d50 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/AdjustPrecScaleForBulkCopy.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/AdjustPrecScaleForBulkCopy.cs
@@ -41,7 +41,7 @@ public static void RunTest()
private static SqlDecimal BulkCopySqlDecimalToTable(SqlDecimal decimalValue, int sourcePrecision, int sourceScale, int targetPrecision, int targetScale)
{
- string tableName = DataTestUtility.GetUniqueNameForSqlServer("Table");
+ string tableName = DataTestUtility.GetLongName("Table");
string connectionString = DataTestUtility.TCPConnectionString;
SqlDecimal resultValue;
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/AzureDistributedTransaction.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/AzureDistributedTransaction.cs
index 823bc50a9d..2a853d7ed4 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/AzureDistributedTransaction.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/AzureDistributedTransaction.cs
@@ -11,7 +11,7 @@ namespace Microsoft.Data.SqlClient.ManualTesting.Tests
public class AzureDistributedTransaction
{
private static readonly string s_connectionString = DataTestUtility.TCPConnectionString;
- private static readonly string s_tableName = DataTestUtility.GetUniqueNameForSqlServer("Azure");
+ private static readonly string s_tableName = DataTestUtility.GetLongName("Azure");
private static readonly string s_createTableCmd = $"CREATE TABLE {s_tableName} (NAME NVARCHAR(40), AGE INT)";
private static readonly string s_sqlBulkCopyCmd = "SELECT * FROM(VALUES ('Fuller', 33), ('Davon', 49)) AS q (FirstName, Age)";
private static readonly int s_commandTimeout = 30;
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopyWidenNullInexactNumerics.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopyWidenNullInexactNumerics.cs
index 5ccda71fb9..f961521233 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopyWidenNullInexactNumerics.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopyWidenNullInexactNumerics.cs
@@ -12,8 +12,8 @@ public class CopyWidenNullInexactNumerics
{
public static void Test(string sourceDatabaseConnectionString, string destinationDatabaseConnectionString)
{
- string sourceTableName = DataTestUtility.GetUniqueNameForSqlServer("BCP_SRC");
- string destTableName = DataTestUtility.GetUniqueNameForSqlServer("BCP_DST");
+ string sourceTableName = DataTestUtility.GetLongName("BCP_SRC");
+ string destTableName = DataTestUtility.GetLongName("BCP_DST");
// this test copies float and real inexact numeric types into decimal targets using bulk copy to check that the widening of the type succeeds.
using (var sourceConnection = new SqlConnection(sourceDatabaseConnectionString))
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/DataConversionErrorMessageTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/DataConversionErrorMessageTest.cs
index 4c3d594ad1..4a722dd409 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/DataConversionErrorMessageTest.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/DataConversionErrorMessageTest.cs
@@ -28,7 +28,7 @@ public InitialDatabase()
srcConstr = DataTestUtility.TCPConnectionString;
Connection = new SqlConnection(srcConstr);
- TableName = DataTestUtility.GetUniqueNameForSqlServer("SqlBulkCopyTest_CopyStringToIntTest_");
+ TableName = DataTestUtility.GetLongName("SqlBulkCopyTest_CopyStringToIntTest_");
InitialTable(Connection, TableName);
}
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlCommand/SqlCommandCompletedTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlCommand/SqlCommandCompletedTest.cs
index 8e38bee7c0..21ff771ac0 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlCommand/SqlCommandCompletedTest.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlCommand/SqlCommandCompletedTest.cs
@@ -11,7 +11,7 @@ public static class SqlCommandCompletedTest
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup))]
public static void VerifyStatmentCompletedCalled()
{
- string tableName = DataTestUtility.GetUniqueNameForSqlServer("stmt");
+ string tableName = DataTestUtility.GetLongName("stmt");
using (var conn = new SqlConnection(s_connStr))
using (var cmd = conn.CreateCommand())
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlCommand/SqlCommandSetTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlCommand/SqlCommandSetTest.cs
index 26b11055c2..7f28a4a09a 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlCommand/SqlCommandSetTest.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlCommand/SqlCommandSetTest.cs
@@ -15,8 +15,8 @@ public class SqlCommandSetTest
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
public void TestByteArrayParameters()
{
- string tableName = DataTestUtility.GetUniqueNameForSqlServer("CMD");
- string procName = DataTestUtility.GetUniqueNameForSqlServer("CMD");
+ string tableName = DataTestUtility.GetLongName("CMD");
+ string procName = DataTestUtility.GetLongName("CMD");
byte[] bArray = new byte[] { 1, 2, 3 };
using (var connection = new SqlConnection(DataTestUtility.TCPConnectionString))
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlFileStreamTest/SqlFileStreamTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlFileStreamTest/SqlFileStreamTest.cs
index c34b7e9ceb..4d3533f6c9 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlFileStreamTest/SqlFileStreamTest.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlFileStreamTest/SqlFileStreamTest.cs
@@ -221,7 +221,7 @@ private static string SetupFileStreamDB()
fileStreamDir += "\\";
}
- string dbName = DataTestUtility.GetUniqueName("FS", false);
+ string dbName = DataTestUtility.GetShortName("FS", false);
string createDBQuery = @$"CREATE DATABASE [{dbName}]
ON PRIMARY
(NAME = PhotoLibrary_data,
@@ -266,7 +266,7 @@ private static void DropFileStreamDb(string connString)
private static string SetupTable(string connString)
{
// Generate random table name
- string tempTable = DataTestUtility.GetUniqueNameForSqlServer("fs");
+ string tempTable = DataTestUtility.GetLongName("fs");
// Create table
string createTable = $"CREATE TABLE {tempTable} (EmployeeId INT NOT NULL PRIMARY KEY, Photo VARBINARY(MAX) FILESTREAM NULL, RowGuid UNIQUEIDENTIFIER NOT NULL ROWGUIDCOL UNIQUE DEFAULT NEWID() ) ";
ExecuteNonQueryCommand(createTable, connString);
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/SqlServerTypesTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/SqlServerTypesTest.cs
index bdbd805e73..c28f1d0c96 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/SqlServerTypesTest.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/SqlServerTypesTest.cs
@@ -410,7 +410,7 @@ private static string GetUdtName(Type udtClrType)
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
public static void TestSqlServerTypesInsertAndRead()
{
- string tableName = DataTestUtility.GetUniqueNameForSqlServer("Type");
+ string tableName = DataTestUtility.GetLongName("Type");
string allTypesSQL = @$"
if not exists (select * from sysobjects where name='{tableName}' and xtype='U')
Begin
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtBulkCopyTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtBulkCopyTest.cs
index 8adf6c7bb5..469c895a61 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtBulkCopyTest.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtBulkCopyTest.cs
@@ -18,9 +18,9 @@ public void RunCopyTest()
_connStr = (new SqlConnectionStringBuilder(DataTestUtility.TCPConnectionString) { InitialCatalog = DataTestUtility.UdtTestDbName }).ConnectionString;
SqlConnection conn = new SqlConnection(_connStr);
- string cities = DataTestUtility.GetUniqueNameForSqlServer("UdtBulkCopy_cities");
- string customers = DataTestUtility.GetUniqueNameForSqlServer("UdtBulkCopy_customers");
- string circles = DataTestUtility.GetUniqueNameForSqlServer("UdtBulkCopy_circles");
+ string cities = DataTestUtility.GetLongName("UdtBulkCopy_cities");
+ string customers = DataTestUtility.GetLongName("UdtBulkCopy_customers");
+ string circles = DataTestUtility.GetLongName("UdtBulkCopy_circles");
conn.Open();
try
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtDateTimeOffsetTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtDateTimeOffsetTest.cs
index a09d00895c..9052da57a1 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtDateTimeOffsetTest.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtDateTimeOffsetTest.cs
@@ -30,7 +30,7 @@ public DateTimeOffsetVariableScale(DateTimeOffset dateTimeOffset, int scale)
public class UdtDateTimeOffsetTest
{
private readonly string _connectionString = null;
- private readonly string _udtTableType = DataTestUtility.GetUniqueNameForSqlServer("DataTimeOffsetTableType");
+ private readonly string _udtTableType = DataTestUtility.GetLongName("DataTimeOffsetTableType");
public UdtDateTimeOffsetTest()
{
@@ -74,26 +74,26 @@ public void SelectFromSqlParameterShouldSucceed()
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureServer), nameof(DataTestUtility.IsNotAzureSynapse))]
public void DateTimeOffsetAllScalesTestShouldSucceed()
{
- string tvpTypeName = DataTestUtility.GetUniqueNameForSqlServer("tvpType");
-
using SqlConnection connection = new(_connectionString);
connection.Open();
- try
+ // Use different scale for each test: 0 to 7
+ int fromScale = 0;
+ int toScale = 7;
+ string tvpTypeName = DataTestUtility.GetLongName("tvpType"); // Need a unique name per scale, else we get errors. See https://github.com/dotnet/SqlClient/issues/3011
+
+ for (int scale = fromScale; scale <= toScale; scale++)
{
- // Use different scale for each test: 0 to 7
- int fromScale = 0;
- int toScale = 7;
+ DateTimeOffset dateTimeOffset = new DateTimeOffset(2024, 1, 1, 23, 59, 59, TimeSpan.Zero);
- for (int scale = fromScale; scale <= toScale; scale++)
- {
- DateTimeOffset dateTimeOffset = new DateTimeOffset(2024, 1, 1, 23, 59, 59, TimeSpan.Zero);
+ // Add sub-second offset corresponding to the scale being tested
+ TimeSpan subSeconds = TimeSpan.FromTicks((long)(TimeSpan.TicksPerSecond / Math.Pow(10, scale)));
+ dateTimeOffset = dateTimeOffset.Add(subSeconds);
- // Add sub-second offset corresponding to the scale being tested
- TimeSpan subSeconds = TimeSpan.FromTicks((long)(TimeSpan.TicksPerSecond / Math.Pow(10, scale)));
- dateTimeOffset = dateTimeOffset.Add(subSeconds);
+ DataTestUtility.DropUserDefinedType(connection, tvpTypeName);
- DataTestUtility.DropUserDefinedType(connection, tvpTypeName);
+ try
+ {
SetupDateTimeOffsetTableType(connection, tvpTypeName, scale);
var param = new SqlParameter
@@ -113,10 +113,10 @@ public void DateTimeOffsetAllScalesTestShouldSucceed()
Assert.Equal(dateTimeOffset, result);
}
}
- }
- finally
- {
- DataTestUtility.DropUserDefinedType(connection, tvpTypeName);
+ finally
+ {
+ DataTestUtility.DropUserDefinedType(connection, tvpTypeName);
+ }
}
}
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtTest2.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtTest2.cs
index 16d48d7c37..85dbf99b33 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtTest2.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtTest2.cs
@@ -84,8 +84,8 @@ public void UDTParams_Binary()
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.IsUdtTestDatabasePresent), nameof(DataTestUtility.AreConnStringsSetup))]
public void UDTParams_Invalid2()
{
- string spInsertCustomer = DataTestUtility.GetUniqueNameForSqlServer("spUdtTest2_InsertCustomer");
- string tableName = DataTestUtility.GetUniqueNameForSqlServer("UdtTest2");
+ string spInsertCustomer = DataTestUtility.GetLongName("spUdtTest2_InsertCustomer");
+ string tableName = DataTestUtility.GetLongName("UdtTest2");
using (SqlConnection conn = new SqlConnection(_connStr))
using (SqlCommand cmd = conn.CreateCommand())
@@ -143,8 +143,8 @@ public void UDTParams_Invalid()
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.IsUdtTestDatabasePresent), nameof(DataTestUtility.AreConnStringsSetup))]
public void UDTParams_TypedNull()
{
- string spInsertCustomer = DataTestUtility.GetUniqueNameForSqlServer("spUdtTest2_InsertCustomer");
- string tableName = DataTestUtility.GetUniqueNameForSqlServer("UdtTest2_Customer");
+ string spInsertCustomer = DataTestUtility.GetLongName("spUdtTest2_InsertCustomer");
+ string tableName = DataTestUtility.GetLongName("UdtTest2_Customer");
using (SqlConnection conn = new SqlConnection(_connStr))
using (SqlCommand cmd = conn.CreateCommand())
@@ -188,8 +188,8 @@ public void UDTParams_TypedNull()
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.IsUdtTestDatabasePresent), nameof(DataTestUtility.AreConnStringsSetup))]
public void UDTParams_NullInput()
{
- string spInsertCustomer = DataTestUtility.GetUniqueNameForSqlServer("spUdtTest2_InsertCustomer");
- string tableName = DataTestUtility.GetUniqueNameForSqlServer("UdtTest2_Customer");
+ string spInsertCustomer = DataTestUtility.GetLongName("spUdtTest2_InsertCustomer");
+ string tableName = DataTestUtility.GetLongName("UdtTest2_Customer");
using (SqlConnection conn = new SqlConnection(_connStr))
using (SqlCommand cmd = conn.CreateCommand())
@@ -232,8 +232,8 @@ public void UDTParams_NullInput()
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.IsUdtTestDatabasePresent), nameof(DataTestUtility.AreConnStringsSetup))]
public void UDTParams_InputOutput()
{
- string spInsertCity = DataTestUtility.GetUniqueNameForSqlServer("spUdtTest2_InsertCity");
- string tableName = DataTestUtility.GetUniqueNameForSqlServer("UdtTest2");
+ string spInsertCity = DataTestUtility.GetLongName("spUdtTest2_InsertCity");
+ string tableName = DataTestUtility.GetLongName("UdtTest2");
using (SqlConnection conn = new SqlConnection(_connStr))
{
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/Utf8SupportTest/Utf8SupportTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/Utf8SupportTest/Utf8SupportTest.cs
index effecb35b3..41f81b12e3 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/Utf8SupportTest/Utf8SupportTest.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/Utf8SupportTest/Utf8SupportTest.cs
@@ -37,7 +37,7 @@ public static void CheckSupportUtf8ConnectionProperty()
public static void UTF8databaseTest()
{
const string letters = @"!\#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u007f€\u0081‚ƒ„…†‡ˆ‰Š‹Œ\u008dŽ\u008f\u0090‘’“”•–—˜™š›œ\u009džŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ";
- string dbName = DataTestUtility.GetUniqueNameForSqlServer("UTF8databaseTest", false);
+ string dbName = DataTestUtility.GetLongName("UTF8databaseTest", false);
string tblName = "Table1";
SqlConnectionStringBuilder builder = new(DataTestUtility.TCPConnectionString);
diff --git a/src/Microsoft.Data.SqlClient/tests/PerformanceTests/BenchmarkRunners/DataTypeReaderAsyncRunner.cs b/src/Microsoft.Data.SqlClient/tests/PerformanceTests/BenchmarkRunners/DataTypeReaderAsyncRunner.cs
index 84e9046cda..07391ce35f 100644
--- a/src/Microsoft.Data.SqlClient/tests/PerformanceTests/BenchmarkRunners/DataTypeReaderAsyncRunner.cs
+++ b/src/Microsoft.Data.SqlClient/tests/PerformanceTests/BenchmarkRunners/DataTypeReaderAsyncRunner.cs
@@ -53,78 +53,78 @@ private static async Task RunBenchmarkAsync(DataType type)
}
[Benchmark]
- public static async void BitAsync() => await RunBenchmarkAsync(s_datatypes.Numerics[n_bit]);
+ public static async Task BitAsync() => await RunBenchmarkAsync(s_datatypes.Numerics[n_bit]);
[Benchmark]
- public static async void IntAsync() => await RunBenchmarkAsync(s_datatypes.Numerics[n_int]);
+ public static async Task IntAsync() => await RunBenchmarkAsync(s_datatypes.Numerics[n_int]);
[Benchmark]
- public static async void TinyIntAsync() => await RunBenchmarkAsync(s_datatypes.Numerics[n_tinyint]);
+ public static async Task TinyIntAsync() => await RunBenchmarkAsync(s_datatypes.Numerics[n_tinyint]);
[Benchmark]
- public static async void SmallIntAsync() => await RunBenchmarkAsync(s_datatypes.Numerics[n_smallint]);
+ public static async Task SmallIntAsync() => await RunBenchmarkAsync(s_datatypes.Numerics[n_smallint]);
[Benchmark]
- public static async void BigIntAsync() => await RunBenchmarkAsync(s_datatypes.Numerics[n_bigint]);
+ public static async Task BigIntAsync() => await RunBenchmarkAsync(s_datatypes.Numerics[n_bigint]);
[Benchmark]
- public static async void MoneyAsync() => await RunBenchmarkAsync(s_datatypes.Numerics[n_money]);
+ public static async Task MoneyAsync() => await RunBenchmarkAsync(s_datatypes.Numerics[n_money]);
[Benchmark]
- public static async void SmallMoneyAsync() => await RunBenchmarkAsync(s_datatypes.Numerics[n_smallmoney]);
+ public static async Task SmallMoneyAsync() => await RunBenchmarkAsync(s_datatypes.Numerics[n_smallmoney]);
[Benchmark]
- public static async void DecimalAsync() => await RunBenchmarkAsync(s_datatypes.Decimals[d_decimal]);
+ public static async Task DecimalAsync() => await RunBenchmarkAsync(s_datatypes.Decimals[d_decimal]);
[Benchmark]
- public static async void NumericAsync() => await RunBenchmarkAsync(s_datatypes.Decimals[d_numeric]);
+ public static async Task NumericAsync() => await RunBenchmarkAsync(s_datatypes.Decimals[d_numeric]);
[Benchmark]
- public static async void FloatAsync() => await RunBenchmarkAsync(s_datatypes.Decimals[d_float]);
+ public static async Task FloatAsync() => await RunBenchmarkAsync(s_datatypes.Decimals[d_float]);
[Benchmark]
- public static async void RealAsync() => await RunBenchmarkAsync(s_datatypes.Decimals[d_real]);
+ public static async Task RealAsync() => await RunBenchmarkAsync(s_datatypes.Decimals[d_real]);
[Benchmark]
- public static async void DateAsync() => await RunBenchmarkAsync(s_datatypes.DateTimes[t_date]);
+ public static async Task DateAsync() => await RunBenchmarkAsync(s_datatypes.DateTimes[t_date]);
[Benchmark]
- public static async void DatetimeAsync() => await RunBenchmarkAsync(s_datatypes.DateTimes[t_datetime]);
+ public static async Task DatetimeAsync() => await RunBenchmarkAsync(s_datatypes.DateTimes[t_datetime]);
[Benchmark]
- public static async void Datetime2Async() => await RunBenchmarkAsync(s_datatypes.DateTimes[t_datetime2]);
+ public static async Task Datetime2Async() => await RunBenchmarkAsync(s_datatypes.DateTimes[t_datetime2]);
[Benchmark]
- public static async void TimeAsync() => await RunBenchmarkAsync(s_datatypes.DateTimes[t_time]);
+ public static async Task TimeAsync() => await RunBenchmarkAsync(s_datatypes.DateTimes[t_time]);
[Benchmark]
- public static async void SmallDateTimeAsync() => await RunBenchmarkAsync(s_datatypes.DateTimes[t_smalldatetime]);
+ public static async Task SmallDateTimeAsync() => await RunBenchmarkAsync(s_datatypes.DateTimes[t_smalldatetime]);
[Benchmark]
- public static async void DateTimeOffsetAsync() => await RunBenchmarkAsync(s_datatypes.DateTimes[t_datetimeoffset]);
+ public static async Task DateTimeOffsetAsync() => await RunBenchmarkAsync(s_datatypes.DateTimes[t_datetimeoffset]);
[Benchmark]
- public static async void CharAsync() => await RunBenchmarkAsync(s_datatypes.Characters[c_char]);
+ public static async Task CharAsync() => await RunBenchmarkAsync(s_datatypes.Characters[c_char]);
[Benchmark]
- public static async void NCharAsync() => await RunBenchmarkAsync(s_datatypes.Characters[c_nchar]);
+ public static async Task NCharAsync() => await RunBenchmarkAsync(s_datatypes.Characters[c_nchar]);
[Benchmark]
- public static async void BinaryAsync() => await RunBenchmarkAsync(s_datatypes.Binary[b_binary]);
+ public static async Task BinaryAsync() => await RunBenchmarkAsync(s_datatypes.Binary[b_binary]);
[Benchmark]
- public static async void VarCharAsync() => await RunBenchmarkAsync(s_datatypes.MaxTypes[m_varchar]);
+ public static async Task VarCharAsync() => await RunBenchmarkAsync(s_datatypes.MaxTypes[m_varchar]);
[Benchmark]
- public static async void NVarCharAsync() => await RunBenchmarkAsync(s_datatypes.MaxTypes[m_nvarchar]);
+ public static async Task NVarCharAsync() => await RunBenchmarkAsync(s_datatypes.MaxTypes[m_nvarchar]);
[Benchmark]
- public static async void VarBinaryAsync() => await RunBenchmarkAsync(s_datatypes.MaxTypes[m_varbinary]);
+ public static async Task VarBinaryAsync() => await RunBenchmarkAsync(s_datatypes.MaxTypes[m_varbinary]);
[Benchmark]
- public static async void UniqueIdentifierAsync() => await RunBenchmarkAsync(s_datatypes.Others[o_uniqueidentifier]);
+ public static async Task UniqueIdentifierAsync() => await RunBenchmarkAsync(s_datatypes.Others[o_uniqueidentifier]);
[Benchmark]
- public static async void XmlAsync() => await RunBenchmarkAsync(s_datatypes.Others[o_xml]);
+ public static async Task XmlAsync() => await RunBenchmarkAsync(s_datatypes.Others[o_xml]);
}
}
diff --git a/tools/props/Versions.props b/tools/props/Versions.props
index 1576a8a7ce..50c059bedc 100644
--- a/tools/props/Versions.props
+++ b/tools/props/Versions.props
@@ -34,6 +34,7 @@
4.5.1
6.0.0
8.0.0
+ 6.0.11
@@ -67,8 +68,8 @@
13.0.1
4.3.0
6.0.1
- 2.6.3
- 2.5.5
+ 2.9.3
+ 2.8.2
1.0.3
7.0.0-beta.22316.1
2.0.8