Skip to content

Commit d07bc9d

Browse files
committed
Improvements
1 parent 49091c8 commit d07bc9d

File tree

4 files changed

+17
-35
lines changed

4 files changed

+17
-35
lines changed

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

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -355,14 +355,15 @@ public static bool IsDatabasePresent(string name)
355355
return present;
356356
}
357357

358-
public static bool IsAdmin
358+
public static bool IsAdminOnWindows
359359
{
360360
get
361361
{
362-
#if !NETFRAMEWORK
363-
System.Diagnostics.Debug.Assert(OperatingSystem.IsWindows());
364-
#endif
362+
#if NET
363+
return !OperatingSystem.IsWindows() || new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator);
364+
#else
365365
return new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator);
366+
#endif
366367
}
367368
}
368369

@@ -502,7 +503,7 @@ public static bool IsSupportingDistributedTransactions()
502503
public static bool IsUsingNativeSNI() =>
503504
#if !NETFRAMEWORK
504505
IsNotUsingManagedSNIOnWindows();
505-
#else
506+
#else
506507
true;
507508
#endif
508509
// Synapse: UTF8 collations are not supported with Azure Synapse.

src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ConnectionTestWithSSLCert/CertificateTest.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ public CertificateTest(ITestOutputHelper testOutputHelper)
7979
SlashInstanceName = $"\\{InstanceName}";
8080
}
8181

82-
if (IsAdmin())
82+
if (IsAdminOnWindows())
8383
{
8484
CreateValidCertificate(s_fullPathToPowershellScript);
8585
_thumbprint = Environment.GetEnvironmentVariable(ThumbPrintEnvName, EnvironmentVariableTarget.Machine);
@@ -96,10 +96,10 @@ private static bool IsLocalHost()
9696
private static bool AreConnStringsSetup() => DataTestUtility.AreConnStringsSetup();
9797
private static bool IsNotAzureServer() => DataTestUtility.IsNotAzureServer();
9898
private static bool UseManagedSNIOnWindows() => DataTestUtility.UseManagedSNIOnWindows;
99-
private static bool IsAdmin() => DataTestUtility.IsAdmin;
99+
private static bool IsAdminOnWindows() => DataTestUtility.IsAdminOnWindows;
100100

101101
// [ActiveIssue("31754")]
102-
[ConditionalFact(nameof(AreConnStringsSetup), nameof(IsNotAzureServer), nameof(IsLocalHost), nameof(IsAdmin))]
102+
[ConditionalFact(nameof(AreConnStringsSetup), nameof(IsNotAzureServer), nameof(IsLocalHost), nameof(IsAdminOnWindows))]
103103
[PlatformSpecific(TestPlatforms.Windows)]
104104
public void OpeningConnectionWithGoodCertificateTest()
105105
{
@@ -129,7 +129,7 @@ public void OpeningConnectionWithGoodCertificateTest()
129129
// Provided hostname in certificate are:
130130
// localhost, FQDN, Loopback IPv4: 127.0.0.1, IPv6: ::1
131131
//[ActiveIssue("31754")]
132-
[ConditionalFact(nameof(AreConnStringsSetup), nameof(IsNotAzureServer), nameof(IsLocalHost), nameof(IsAdmin))]
132+
[ConditionalFact(nameof(AreConnStringsSetup), nameof(IsNotAzureServer), nameof(IsLocalHost), nameof(IsAdminOnWindows))]
133133
[PlatformSpecific(TestPlatforms.Windows)]
134134
public void OpeningConnectionWitHNICTest()
135135
{
@@ -173,7 +173,7 @@ public void OpeningConnectionWitHNICTest()
173173
}
174174

175175
[ActiveIssue("31754")]
176-
[ConditionalFact(nameof(AreConnStringsSetup), nameof(UseManagedSNIOnWindows), nameof(IsNotAzureServer), nameof(IsLocalHost), nameof(IsAdmin), Skip = "For some reason does not throw on CI")]
176+
[ConditionalFact(nameof(AreConnStringsSetup), nameof(UseManagedSNIOnWindows), nameof(IsNotAzureServer), nameof(IsLocalHost), nameof(IsAdminOnWindows), Skip = "For some reason does not throw on CI")]
177177
[PlatformSpecific(TestPlatforms.Windows)]
178178
public void RemoteCertificateNameMismatchErrorTest()
179179
{

src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ConnectionTestWithSSLCert/CertificateTestWithTdsServer.cs

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
using System.IO;
99
using System.Runtime.InteropServices;
1010
using System.Security.Cryptography.X509Certificates;
11-
using System.Security.Principal;
1211
using System.ServiceProcess;
1312
using System.Text;
1413
using Microsoft.Data.SqlClient.ManualTesting.Tests.DataCommon;
@@ -24,7 +23,6 @@ public class CertificateTestWithTdsServer : IDisposable
2423
private static readonly string s_fullPathToPfx = Path.Combine(Directory.GetCurrentDirectory(), "localhostcert.pfx");
2524
private static readonly string s_fullPathTothumbprint = Path.Combine(Directory.GetCurrentDirectory(), "thumbprint.txt");
2625
private static readonly string s_fullPathToClientCert = Path.Combine(Directory.GetCurrentDirectory(), "clientcert");
27-
private static bool s_windowsAdmin = true;
2826
private static string s_instanceName = "MSSQLSERVER";
2927
// s_instanceNamePrefix will get replaced with MSSQL$ is there is an instance name in the connection string
3028
private static string s_instanceNamePrefix = "";
@@ -41,17 +39,6 @@ public CertificateTestWithTdsServer()
4139
s_instanceNamePrefix = "MSSQL$";
4240
}
4341

44-
// Confirm that user has elevated access on Windows
45-
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
46-
{
47-
using WindowsIdentity identity = WindowsIdentity.GetCurrent();
48-
WindowsPrincipal principal = new(identity);
49-
if (principal.IsInRole(WindowsBuiltInRole.Administrator))
50-
s_windowsAdmin = true;
51-
else
52-
s_windowsAdmin = false;
53-
}
54-
5542
if (!Directory.Exists(s_fullPathToClientCert))
5643
{
5744
Directory.CreateDirectory(s_fullPathToClientCert);
@@ -70,6 +57,7 @@ private static bool IsLocalHost()
7057
private static bool AreConnStringsSetup() => DataTestUtility.AreConnStringsSetup();
7158
private static bool IsNotAzureServer() => DataTestUtility.IsNotAzureServer();
7259
private static bool UseManagedSNIOnWindows() => DataTestUtility.UseManagedSNIOnWindows;
60+
private static bool IsAdminOnWindows() => DataTestUtility.IsAdminOnWindows;
7361

7462
private static string ForceEncryptionRegistryPath
7563
{
@@ -91,16 +79,11 @@ private static string ForceEncryptionRegistryPath
9179
}
9280
}
9381

94-
[ConditionalTheory(nameof(AreConnStringsSetup), nameof(IsNotAzureServer), nameof(IsLocalHost))]
82+
[ConditionalTheory(nameof(AreConnStringsSetup), nameof(IsNotAzureServer), nameof(IsLocalHost), nameof(IsAdminOnWindows))]
9583
[MemberData(nameof(ConnectionTestParametersData.GetConnectionTestParameters), MemberType = typeof(ConnectionTestParametersData))]
9684
[PlatformSpecific(TestPlatforms.Windows)]
9785
public void BeginWindowsConnectionTest(ConnectionTestParameters connectionTestParameters)
9886
{
99-
if (!s_windowsAdmin)
100-
{
101-
Assert.Fail("User needs to have elevated access for these set of tests");
102-
}
103-
10487
ConnectionTest(connectionTestParameters);
10588
}
10689

src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/MARSSessionPoolingTest/MARSSessionPoolingTest.cs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -252,21 +252,19 @@ private static void TestMARSSessionPooling(string caseName, string connectionStr
252252
// 1 for connection, 1 for current command, 1 for 0 based array offset, plus i for open readers
253253
Assert.True(connections == (3 + i),
254254
"Failure - incorrect number of connections for NoCloses: " + connections +
255-
"\ni: " + i + " :::: requests: " + requests + " :::: spid1: " + spid1 +
256-
" ::::: spid2: " + spid2 + " " + caseName);
255+
"\ni: " + i + " :::: requests: " + requests + " :::: spid1: " + spid1 + " ::::: spid2: " + spid2 + " " + caseName);
257256

258257
// 1 for current command, 1 for 0 based array offset, plus i open readers
259258
Assert.True(requests == (2 + i),
260259
"Failure - incorrect number of requests for NoCloses: " + requests +
261-
"\ni: " + i + " :::: connections: " + connections + " :::: spid1: " + spid1 +
262-
" ::::: spid2: " + spid2 + " " + caseName);
260+
"\ni: " + i + " :::: connections: " + connections + " :::: spid1: " + spid1 + " ::::: spid2: " + spid2 + " " + caseName);
263261
break;
264262
}
265263
catch (Exception)
266264
{
265+
// Dumping additional info for debugging
267266
using (SqlCommand additionalInfoCommand = con.CreateCommand())
268267
{
269-
270268
additionalInfoCommand.CommandText = COMMAND_REQUESTS;
271269
using (SqlDataReader rdr2 = additionalInfoCommand.ExecuteReader())
272270
{
@@ -281,7 +279,7 @@ private static void TestMARSSessionPooling(string caseName, string connectionStr
281279
}
282280
}
283281

284-
break;
282+
throw;
285283
}
286284
}
287285
break;

0 commit comments

Comments
 (0)