Skip to content

Commit f85ee35

Browse files
committed
Allow SSL Tests to be skipped.
This permits testing of SSL connections against servers where we can't control the CA or specific client certificates that must be used.
1 parent 15ed3df commit f85ee35

File tree

4 files changed

+8
-4
lines changed

4 files changed

+8
-4
lines changed

tests/SideBySide/ConfigSettings.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,6 @@ public enum ConfigSettings
1616
LocalTsvFile = 0x80,
1717
TcpConnection = 0x200,
1818
SecondaryDatabase = 0x400,
19+
KnownClientCertificate = 0x800,
1920
}
2021
}

tests/SideBySide/ServerFeatures.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,6 @@ public enum ServerFeatures
1515
SessionTrack = 64,
1616
Timeout = 128,
1717
ErrorCodes = 256,
18+
KnownCertificateAuthority = 512,
1819
}
1920
}

tests/SideBySide/SslTests.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public async Task ConnectSslPreferred()
4141
}
4242
}
4343

44-
[SkippableTheory(ConfigSettings.RequiresSsl)]
44+
[SkippableTheory(ConfigSettings.RequiresSsl | ConfigSettings.KnownClientCertificate)]
4545
[InlineData("ssl-client.pfx", null, null)]
4646
[InlineData("ssl-client-pw-test.pfx", "test", null)]
4747
[InlineData("ssl-client-cert.pem", null, null)]
@@ -74,7 +74,7 @@ public async Task ConnectSslClientCertificate(string certFile, string certFilePa
7474
}
7575
}
7676

77-
[SkippableFact(ConfigSettings.RequiresSsl)]
77+
[SkippableFact(ServerFeatures.KnownCertificateAuthority, ConfigSettings.RequiresSsl)]
7878
public async Task ConnectSslBadClientCertificate()
7979
{
8080
var csb = AppConfig.CreateConnectionStringBuilder();
@@ -91,7 +91,7 @@ public async Task ConnectSslBadClientCertificate()
9191
}
9292
}
9393

94-
[SkippableFact(ConfigSettings.RequiresSsl, Baseline = "MySql.Data does not support CACertificateFile")]
94+
[SkippableFact(ServerFeatures.KnownCertificateAuthority, ConfigSettings.RequiresSsl, Baseline = "MySql.Data does not support CACertificateFile")]
9595
public async Task ConnectSslBadCaCertificate()
9696
{
9797
var csb = AppConfig.CreateConnectionStringBuilder();
@@ -108,5 +108,4 @@ public async Task ConnectSslBadCaCertificate()
108108

109109
readonly DatabaseFixture m_database;
110110
}
111-
112111
}

tests/SideBySide/TestUtilities.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@ public static string GetSkipReason(ServerFeatures serverFeatures, ConfigSettings
5656
return "Requires SslMode=Required or lower in connection string";
5757
}
5858

59+
if (configSettings.HasFlag(ConfigSettings.KnownClientCertificate) && !(csb.CertificateFile?.EndsWith("ssl-client.pfx", StringComparison.OrdinalIgnoreCase) ?? false))
60+
return "Requires CertificateFile=client.pfx in connection string";
61+
5962
if (configSettings.HasFlag(ConfigSettings.PasswordlessUser) && string.IsNullOrWhiteSpace(AppConfig.PasswordlessUser))
6063
return "Requires PasswordlessUser in config.json";
6164

0 commit comments

Comments
 (0)