Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit5645b14

Browse files
Test fixes to accommodate recent infra changes (#2706)
Co-authored-by: David Engel <davidengel@microsoft.com>
1 parent505cb19 commit5645b14

File tree

9 files changed

+70
-35
lines changed

9 files changed

+70
-35
lines changed

‎src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/ActiveDirectoryAuthenticationProvider.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,11 @@ public override async Task<SqlAuthenticationToken> AcquireTokenAsync(SqlAuthenti
120120
CancellationTokenSourcects=newCancellationTokenSource();
121121

122122
// Use Connection timeout value to cancel token acquire request after certain period of time.
123-
cts.CancelAfter(parameters.ConnectionTimeout*1000);// Convert to milliseconds
123+
inttimeout=parameters.ConnectionTimeout*1000;
124+
if(timeout>0)// if ConnectionTimeout is 0 or the millis overflows an int, no need to set CancelAfter
125+
{
126+
cts.CancelAfter(timeout);// Convert to milliseconds
127+
}
124128

125129
stringscope=parameters.Resource.EndsWith(s_defaultScopeSuffix)?parameters.Resource:parameters.Resource+s_defaultScopeSuffix;
126130
string[]scopes=newstring[]{scope};

‎src/Microsoft.Data.SqlClient/tests/ManualTests/DataCommon/DataTestUtility.cs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ public static class DataTestUtility
6464
publicstaticreadonlystringEnclaveAzureDatabaseConnString=null;
6565
publicstaticboolManagedIdentitySupported=true;
6666
publicstaticstringAADAccessToken=null;
67+
publicstaticboolSupportsSystemAssignedManagedIdentity=false;
6768
publicstaticstringAADSystemIdentityAccessToken=null;
6869
publicstaticstringAADUserIdentityAccessToken=null;
6970
publicconststringApplicationClientId="2fd908ad-0664-4344-b9be-cd3e8b574c38";
@@ -83,6 +84,15 @@ public static class DataTestUtility
8384
publicstaticreadonlystringKerberosDomainUser=null;
8485
internalstaticreadonlystringKerberosDomainPassword=null;
8586

87+
publicstaticboolTcpConnectionStringDoesNotUseAadAuth
88+
{
89+
get
90+
{
91+
SqlConnectionStringBuilderbuilder=new(TCPConnectionString);
92+
returnbuilder.Authentication==SqlAuthenticationMethod.SqlPassword||builder.Authentication==SqlAuthenticationMethod.NotSpecified;
93+
}
94+
}
95+
8696
staticDataTestUtility()
8797
{
8898
Configc=Config.Load();
@@ -529,7 +539,7 @@ public static string GetAccessToken()
529539

530540
publicstaticstringGetSystemIdentityAccessToken()
531541
{
532-
if(true==ManagedIdentitySupported&&null==AADSystemIdentityAccessToken&&IsAADPasswordConnStrSetup())
542+
if(ManagedIdentitySupported&&SupportsSystemAssignedManagedIdentity&&null==AADSystemIdentityAccessToken&&IsAADPasswordConnStrSetup())
533543
{
534544
AADSystemIdentityAccessToken=AADUtility.GetManagedIdentityToken().GetAwaiter().GetResult();
535545
if(AADSystemIdentityAccessToken==null)
@@ -542,7 +552,7 @@ public static string GetSystemIdentityAccessToken()
542552

543553
publicstaticstringGetUserIdentityAccessToken()
544554
{
545-
if(true==ManagedIdentitySupported&&null==AADUserIdentityAccessToken&&IsAADPasswordConnStrSetup())
555+
if(ManagedIdentitySupported&&null==AADUserIdentityAccessToken&&IsAADPasswordConnStrSetup())
546556
{
547557
// Pass User Assigned Managed Identity Client Id here.
548558
AADUserIdentityAccessToken=AADUtility.GetManagedIdentityToken(UserManagedIdentityClientId).GetAwaiter().GetResult();

‎src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/AdapterTest/AdapterTest.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -991,7 +991,14 @@ public void UpdateOffsetTest()
991991
}
992992
}
993993

994-
[ConditionalFact(typeof(DataTestUtility),nameof(DataTestUtility.AreConnStringsSetup))]
994+
publicstaticboolCanRunSchemaTests()
995+
{
996+
returnDataTestUtility.AreConnStringsSetup()&&
997+
// Tests switch to master database, which is not guaranteed when using AAD auth
998+
DataTestUtility.TcpConnectionStringDoesNotUseAadAuth;
999+
}
1000+
1001+
[ConditionalFact(nameof(CanRunSchemaTests))]
9951002
publicvoidSelectAllTest()
9961003
{
9971004
// Test exceptions

‎src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ConnectivityTests/AADConnectionTest.cs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -72,13 +72,14 @@ private static void ConnectAndDisconnect(string connectionString, SqlCredential
7272
privatestaticboolIsAccessTokenSetup()=>DataTestUtility.IsAccessTokenSetup();
7373
privatestaticboolIsAADConnStringsSetup()=>DataTestUtility.IsAADPasswordConnStrSetup();
7474
privatestaticboolIsManagedIdentitySetup()=>DataTestUtility.ManagedIdentitySupported;
75+
privatestaticboolSupportsSystemAssignedManagedIdentity()=>DataTestUtility.SupportsSystemAssignedManagedIdentity;
7576

7677
[PlatformSpecific(TestPlatforms.Windows)]
77-
[ConditionalFact(nameof(IsAccessTokenSetup),nameof(IsAADConnStringsSetup))]
78+
[ConditionalFact(nameof(IsAccessTokenSetup),nameof(IsAADConnStringsSetup),nameof(IsManagedIdentitySetup))]
7879
publicstaticvoidKustoDatabaseTest()
7980
{
8081
// This is a sample Kusto database that can be connected by any AD account.
81-
usingSqlConnectionconnection=newSqlConnection("Data Source=help.kusto.windows.net; Authentication=Active Directory Default;Trust Server Certificate=True;");
82+
usingSqlConnectionconnection=newSqlConnection($"Data Source=help.kusto.windows.net; Authentication=Active Directory Default;Trust Server Certificate=True;User ID ={DataTestUtility.UserManagedIdentityClientId};");
8283
connection.Open();
8384
Assert.True(connection.State==System.Data.ConnectionState.Open);
8485
}
@@ -556,7 +557,7 @@ public static void ActiveDirectoryDefaultMustPass()
556557
{
557558
string[]credKeys={"Authentication","User ID","Password","UID","PWD"};
558559
stringconnStr=DataTestUtility.RemoveKeysInConnStr(DataTestUtility.AADPasswordConnectionString,credKeys)+
559-
"Authentication=ActiveDirectoryDefault;";
560+
$"Authentication=ActiveDirectoryDefault;User ID={DataTestUtility.UserManagedIdentityClientId};";
560561

561562
// Connection should be established using Managed Identity by default.
562563
ConnectAndDisconnect(connStr);
@@ -612,7 +613,7 @@ public static void ConnectionSpeed()
612613

613614
#region Managed Identity Authentication tests
614615

615-
[ConditionalFact(nameof(IsAADConnStringsSetup),nameof(IsManagedIdentitySetup))]
616+
[ConditionalFact(nameof(IsAADConnStringsSetup),nameof(IsManagedIdentitySetup),nameof(SupportsSystemAssignedManagedIdentity))]
616617
publicstaticvoidSystemAssigned_ManagedIdentityTest()
617618
{
618619
string[]removeKeys={"Authentication","User ID","Password","UID","PWD"};
@@ -630,7 +631,7 @@ public static void UserAssigned_ManagedIdentityTest()
630631
ConnectAndDisconnect(connStr);
631632
}
632633

633-
[ConditionalFact(nameof(IsAADConnStringsSetup),nameof(IsManagedIdentitySetup))]
634+
[ConditionalFact(nameof(IsAADConnStringsSetup),nameof(IsManagedIdentitySetup),nameof(SupportsSystemAssignedManagedIdentity))]
634635
publicstaticvoidAccessToken_SystemManagedIdentityTest()
635636
{
636637
string[]removeKeys={"Authentication","User ID","Password","UID","PWD"};
@@ -658,7 +659,7 @@ public static void AccessToken_UserManagedIdentityTest()
658659
}
659660
}
660661

661-
[ConditionalFact(nameof(AreConnStringsSetup),nameof(IsAzure),nameof(IsManagedIdentitySetup))]
662+
[ConditionalFact(nameof(AreConnStringsSetup),nameof(IsAzure),nameof(IsManagedIdentitySetup),nameof(SupportsSystemAssignedManagedIdentity))]
662663
publicstaticvoidAzure_SystemManagedIdentityTest()
663664
{
664665
string[]removeKeys={"Authentication","User ID","Password","UID","PWD","Trusted_Connection","Integrated Security"};
@@ -688,7 +689,7 @@ public static void Azure_UserManagedIdentityTest()
688689
}
689690
}
690691

691-
[ConditionalFact(nameof(AreConnStringsSetup),nameof(IsAzure),nameof(IsAccessTokenSetup),nameof(IsManagedIdentitySetup))]
692+
[ConditionalFact(nameof(AreConnStringsSetup),nameof(IsAzure),nameof(IsAccessTokenSetup),nameof(IsManagedIdentitySetup),nameof(SupportsSystemAssignedManagedIdentity))]
692693
publicstaticvoidAzure_AccessToken_SystemManagedIdentityTest()
693694
{
694695
string[]removeKeys={"Authentication","User ID","Password","UID","PWD","Trusted_Connection","Integrated Security"};

‎src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ConnectivityTests/ConnectivityTest.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,8 @@ public static void ConnectionStringPersistentInfoTest()
362362
}
363363
}
364364

365-
[ConditionalFact(typeof(DataTestUtility),nameof(DataTestUtility.AreConnStringsSetup))]
365+
// ConnectionOpenDisableRetry relies on error 4060 for automatic retry, which is not returned when using AAD auth
366+
[ConditionalFact(typeof(DataTestUtility),nameof(DataTestUtility.AreConnStringsSetup),nameof(DataTestUtility.IsNotAzureServer),nameof(DataTestUtility.TcpConnectionStringDoesNotUseAadAuth))]
366367
publicstaticvoidConnectionOpenDisableRetry()
367368
{
368369
SqlConnectionStringBuilderconnectionStringBuilder=new(DataTestUtility.TCPConnectionString)

‎src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/DataBaseSchemaTest/ConnectionSchemaTest.cs

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,92 +10,98 @@ namespace Microsoft.Data.SqlClient.ManualTesting.Tests
1010
{
1111
publicstaticclassConnectionSchemaTest
1212
{
13+
publicstaticboolCanRunSchemaTests()
14+
{
15+
returnDataTestUtility.AreConnStringsSetup()&&
16+
// Tests switch to master database, which is not guaranteed when using AAD auth
17+
DataTestUtility.TcpConnectionStringDoesNotUseAadAuth;
18+
}
1319

14-
[ConditionalFact(typeof(DataTestUtility),nameof(DataTestUtility.AreConnStringsSetup))]
20+
[ConditionalFact(nameof(CanRunSchemaTests))]
1521
publicstaticvoidGetTablesFromSchema()
1622
{
1723
VerifySchemaTable(SqlClientMetaDataCollectionNames.Tables,newstring[]{"TABLE_CATALOG","TABLE_SCHEMA","TABLE_NAME","TABLE_TYPE"});
1824
}
1925

20-
[ConditionalFact(typeof(DataTestUtility),nameof(DataTestUtility.AreConnStringsSetup))]
26+
[ConditionalFact(nameof(CanRunSchemaTests))]
2127
publicstaticvoidGetProceduresFromSchema()
2228
{
2329
VerifySchemaTable(SqlClientMetaDataCollectionNames.Procedures,newstring[]{"ROUTINE_SCHEMA","ROUTINE_NAME","ROUTINE_TYPE"});
2430
}
2531

26-
[ConditionalFact(typeof(DataTestUtility),nameof(DataTestUtility.AreConnStringsSetup))]
32+
[ConditionalFact(nameof(CanRunSchemaTests))]
2733
publicstaticvoidGetProcedureParametersFromSchema()
2834
{
2935
VerifySchemaTable(SqlClientMetaDataCollectionNames.ProcedureParameters,newstring[]{"PARAMETER_MODE","PARAMETER_NAME"});
3036
}
3137

32-
[ConditionalFact(typeof(DataTestUtility),nameof(DataTestUtility.AreConnStringsSetup))]
38+
[ConditionalFact(nameof(CanRunSchemaTests))]
3339
publicstaticvoidGetDatabasesFromSchema()
3440
{
3541
VerifySchemaTable(SqlClientMetaDataCollectionNames.Databases,newstring[]{"database_name","dbid","create_date"});
3642
}
3743

38-
[ConditionalFact(typeof(DataTestUtility),nameof(DataTestUtility.AreConnStringsSetup))]
44+
[ConditionalFact(nameof(CanRunSchemaTests))]
3945
publicstaticvoidGetForeignKeysFromSchema()
4046
{
4147
VerifySchemaTable(SqlClientMetaDataCollectionNames.ForeignKeys,newstring[]{"CONSTRAINT_TYPE","IS_DEFERRABLE","INITIALLY_DEFERRED"});
4248
}
4349

44-
[ConditionalFact(typeof(DataTestUtility),nameof(DataTestUtility.AreConnStringsSetup))]
50+
[ConditionalFact(nameof(CanRunSchemaTests))]
4551
publicstaticvoidGetIndexesFromSchema()
4652
{
4753
VerifySchemaTable(SqlClientMetaDataCollectionNames.Indexes,newstring[]{"index_name","constraint_name"});
4854
}
4955

50-
[ConditionalFact(typeof(DataTestUtility),nameof(DataTestUtility.AreConnStringsSetup))]
56+
[ConditionalFact(nameof(CanRunSchemaTests))]
5157
publicstaticvoidGetIndexColumnsFromSchema()
5258
{
5359
VerifySchemaTable(SqlClientMetaDataCollectionNames.IndexColumns,newstring[]{"index_name","KeyType","column_name"});
5460
}
5561

56-
[ConditionalFact(typeof(DataTestUtility),nameof(DataTestUtility.AreConnStringsSetup))]
62+
[ConditionalFact(nameof(CanRunSchemaTests))]
5763
publicstaticvoidGetColumnsFromSchema()
5864
{
5965
VerifySchemaTable(SqlClientMetaDataCollectionNames.Columns,newstring[]{"IS_NULLABLE","COLUMN_DEFAULT"});
6066
}
6167

62-
[ConditionalFact(typeof(DataTestUtility),nameof(DataTestUtility.AreConnStringsSetup))]
68+
[ConditionalFact(nameof(CanRunSchemaTests))]
6369
publicstaticvoidGetAllColumnsFromSchema()
6470
{
6571
VerifySchemaTable(SqlClientMetaDataCollectionNames.AllColumns,newstring[]{"IS_NULLABLE","COLUMN_DEFAULT","IS_FILESTREAM","IS_SPARSE","IS_COLUMN_SET"});
6672
}
6773

68-
[ConditionalFact(typeof(DataTestUtility),nameof(DataTestUtility.AreConnStringsSetup))]
74+
[ConditionalFact(nameof(CanRunSchemaTests))]
6975
publicstaticvoidGetColumnSetColumnsFromSchema()
7076
{
7177
VerifySchemaTable(SqlClientMetaDataCollectionNames.ColumnSetColumns,newstring[]{"IS_NULLABLE","COLUMN_DEFAULT","IS_FILESTREAM","IS_SPARSE","IS_COLUMN_SET"});
7278
}
7379

74-
[ConditionalFact(typeof(DataTestUtility),nameof(DataTestUtility.AreConnStringsSetup))]
80+
[ConditionalFact(nameof(CanRunSchemaTests))]
7581
publicstaticvoidGetUsersFromSchema()
7682
{
7783
VerifySchemaTable(SqlClientMetaDataCollectionNames.Users,newstring[]{"uid","user_name"});
7884
}
7985

80-
[ConditionalFact(typeof(DataTestUtility),nameof(DataTestUtility.AreConnStringsSetup))]
86+
[ConditionalFact(nameof(CanRunSchemaTests))]
8187
publicstaticvoidGetViewsFromSchema()
8288
{
8389
VerifySchemaTable(SqlClientMetaDataCollectionNames.Views,newstring[]{"TABLE_NAME","CHECK_OPTION","IS_UPDATABLE"});
8490
}
8591

86-
[ConditionalFact(typeof(DataTestUtility),nameof(DataTestUtility.AreConnStringsSetup))]
92+
[ConditionalFact(nameof(CanRunSchemaTests))]
8793
publicstaticvoidGetViewColumnsFromSchema()
8894
{
8995
VerifySchemaTable(SqlClientMetaDataCollectionNames.ViewColumns,newstring[]{"VIEW_CATALOG","VIEW_SCHEMA","VIEW_NAME"});
9096
}
9197

92-
[ConditionalFact(typeof(DataTestUtility),nameof(DataTestUtility.AreConnStringsSetup))]
98+
[ConditionalFact(nameof(CanRunSchemaTests))]
9399
publicstaticvoidGetUserDefinedTypesFromSchema()
94100
{
95101
VerifySchemaTable(SqlClientMetaDataCollectionNames.UserDefinedTypes,newstring[]{"assembly_name","version_revision","culture_info"});
96102
}
97103

98-
[ConditionalFact(typeof(DataTestUtility),nameof(DataTestUtility.AreConnStringsSetup))]
104+
[ConditionalFact(nameof(CanRunSchemaTests))]
99105
publicstaticvoidGetStructuredTypeMembersFromSchema()
100106
{
101107
VerifySchemaTable(SqlClientMetaDataCollectionNames.StructuredTypeMembers,newstring[]{"TYPE_CATALOG","TYPE_SCHEMA","TYPE_NAME","MEMBER_NAME","ORDINAL_POSITION"});

‎src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ExceptionTest/ExceptionTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ public static void ExceptionTests()
201201
}
202202

203203
// Synapse: 110003;Invalid user or password
204-
[ConditionalFact(typeof(DataTestUtility),nameof(DataTestUtility.AreConnStringsSetup),nameof(DataTestUtility.IsNotAzureSynapse))]
204+
[ConditionalFact(typeof(DataTestUtility),nameof(DataTestUtility.AreConnStringsSetup),nameof(DataTestUtility.IsNotAzureServer))]
205205
publicstaticvoidVariousExceptionTests()
206206
{
207207
SqlConnectionStringBuilderbuilder=newSqlConnectionStringBuilder(DataTestUtility.TCPConnectionString);
@@ -219,7 +219,7 @@ public static void VariousExceptionTests()
219219
}
220220

221221
// Test 1 - B
222-
badBuilder=newSqlConnectionStringBuilder(builder.ConnectionString){Password=string.Empty,IntegratedSecurity=false};
222+
badBuilder=newSqlConnectionStringBuilder(builder.ConnectionString){Password=string.Empty,IntegratedSecurity=false,Authentication=SqlAuthenticationMethod.NotSpecified};
223223
using(varsqlConnection=newSqlConnection(badBuilder.ConnectionString))
224224
{
225225
stringerrorMessage=string.Format(CultureInfo.InvariantCulture,logonFailedErrorMessage,badBuilder.UserID);

‎src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/RetryLogic/SqlConfigurationManagerReliabilityTest.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ public class SqlConfigurationManagerReliabilityTest
2323
{InitialCatalog=SqlConnectionReliabilityTest.InvalidInitialCatalog,ConnectTimeout=1}.ConnectionString;
2424

2525
#region Internal Functions
26-
[ConditionalTheory(typeof(DataTestUtility),nameof(DataTestUtility.AreConnStringsSetup))]
26+
// Test relies on error 4060 for automatic retry, which is not returned when using AAD auth
27+
[ConditionalTheory(typeof(DataTestUtility),nameof(DataTestUtility.AreConnStringsSetup),nameof(DataTestUtility.TcpConnectionStringDoesNotUseAadAuth))]
2728
[InlineData(RetryLogicConfigHelper.RetryMethodName_Fix,RetryLogicConfigHelper.RetryMethodName_Inc)]
2829
[InlineData(RetryLogicConfigHelper.RetryMethodName_Inc,RetryLogicConfigHelper.RetryMethodName_Exp)]
2930
[InlineData(RetryLogicConfigHelper.RetryMethodName_Exp,RetryLogicConfigHelper.RetryMethodName_Fix)]
@@ -129,7 +130,8 @@ public void InvalidRetryMethodName(string methodName)
129130
s_commandCRLTest.NoneRetriableExecuteFail(TcpCnnString,cmdProvider);
130131
}
131132

132-
[ConditionalTheory(typeof(DataTestUtility),nameof(DataTestUtility.AreConnStringsSetup))]
133+
// Test relies on error 4060 for automatic retry, which is not returned when using AAD auth
134+
[ConditionalTheory(typeof(DataTestUtility),nameof(DataTestUtility.AreConnStringsSetup),nameof(DataTestUtility.TcpConnectionStringDoesNotUseAadAuth))]
133135
[InlineData("InvalidRetrylogicTypeName")]
134136
[InlineData("")]
135137
[InlineData(null)]

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp