Skip to content

Commit 3262b4c

Browse files
committed
Run SSL tests with netcoreapp3.0.
This tests TLS 1.3 support on Linux.
1 parent d8e2f78 commit 3262b4c

File tree

9 files changed

+28
-15
lines changed

9 files changed

+28
-15
lines changed

.ci/config/config.compression+ssl.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"SocketPath": "./../../../../../.ci/run/mysql/mysqld.sock",
55
"PasswordlessUser": "no_password",
66
"SecondaryDatabase": "testdb2",
7-
"UnsupportedFeatures": "RsaEncryption,CachingSha2Password,Tls12,UuidToBin",
7+
"UnsupportedFeatures": "RsaEncryption,CachingSha2Password,Tls12,Tls13,UuidToBin",
88
"MySqlBulkLoaderLocalCsvFile": "../../../../TestData/LoadData_UTF8_BOM_Unix.CSV",
99
"MySqlBulkLoaderLocalTsvFile": "../../../../TestData/LoadData_UTF8_BOM_Unix.TSV",
1010
"CertificatesPath": "../../../../../.ci/server/certs"

.ci/config/config.compression.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"SocketPath": "./../../../../../.ci/run/mysql/mysqld.sock",
55
"PasswordlessUser": "no_password",
66
"SecondaryDatabase": "testdb2",
7-
"UnsupportedFeatures": "Ed25519,RsaEncryption,CachingSha2Password,Tls12,UnixDomainSocket,UuidToBin",
7+
"UnsupportedFeatures": "Ed25519,RsaEncryption,CachingSha2Password,Tls12,Tls13,UnixDomainSocket,UuidToBin",
88
"MySqlBulkLoaderLocalCsvFile": "../../../../TestData/LoadData_UTF8_BOM_Unix.CSV",
99
"MySqlBulkLoaderLocalTsvFile": "../../../../TestData/LoadData_UTF8_BOM_Unix.TSV"
1010
}

.ci/config/config.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"SocketPath": "./../../../../../.ci/run/mysql/mysqld.sock",
55
"PasswordlessUser": "no_password",
66
"SecondaryDatabase": "testdb2",
7-
"UnsupportedFeatures": "Ed25519,RsaEncryption,CachingSha2Password,Tls12,UnixDomainSocket,UuidToBin",
7+
"UnsupportedFeatures": "Ed25519,RsaEncryption,CachingSha2Password,Tls12,Tls13,UnixDomainSocket,UuidToBin",
88
"MySqlBulkLoaderLocalCsvFile": "../../../../TestData/LoadData_UTF8_BOM_Unix.CSV",
99
"MySqlBulkLoaderLocalTsvFile": "../../../../TestData/LoadData_UTF8_BOM_Unix.TSV"
1010
}

.ci/config/config.ssl.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"SocketPath": "./../../../../../.ci/run/mysql/mysqld.sock",
55
"PasswordlessUser": "no_password",
66
"SecondaryDatabase": "testdb2",
7-
"UnsupportedFeatures": "RsaEncryption,CachingSha2Password,Tls12,UuidToBin",
7+
"UnsupportedFeatures": "RsaEncryption,CachingSha2Password,Tls12,Tls13,UuidToBin",
88
"MySqlBulkLoaderLocalCsvFile": "../../../../TestData/LoadData_UTF8_BOM_Unix.CSV",
99
"MySqlBulkLoaderLocalTsvFile": "../../../../TestData/LoadData_UTF8_BOM_Unix.TSV",
1010
"CertificatesPath": "../../../../../.ci/server/certs"

.ci/integration-tests-steps.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,6 @@ steps:
2727
connectionString: 'server=localhost;port=3300;user id=mysqltest;password=test;database=mysqltest;ssl mode=none;DefaultCommandTimeout=3600'
2828
platform: 'netcoreapp2.1'
2929
description: 'No SSL'
30-
- template: 'sidebyside-test-steps.yml'
31-
parameters:
32-
image: ${{ parameters.image }}
33-
unsupportedFeatures: ${{ parameters.unsupportedFeatures }}
34-
connectionString: 'server=localhost;port=3300;user id=mysqltest;password=test;database=mysqltest;ssl mode=required;DefaultCommandTimeout=3600;certificate file=$(Build.Repository.LocalPath)/.ci/server/certs/ssl-client.pfx'
35-
platform: 'netcoreapp2.1'
36-
description: 'SSL'
3730
- task: UseDotNet@2
3831
displayName: 'Install .NET Core'
3932
inputs:
@@ -45,6 +38,13 @@ steps:
4538
connectionString: 'server=localhost;port=3300;user id=mysqltest;password=test;database=mysqltest;ssl mode=none;DefaultCommandTimeout=3600'
4639
platform: 'netcoreapp3.0'
4740
description: 'No SSL'
41+
- template: 'sidebyside-test-steps.yml'
42+
parameters:
43+
image: ${{ parameters.image }}
44+
unsupportedFeatures: ${{ parameters.unsupportedFeatures }}
45+
connectionString: 'server=localhost;port=3300;user id=mysqltest;password=test;database=mysqltest;ssl mode=required;DefaultCommandTimeout=3600;certificate file=$(Build.Repository.LocalPath)/.ci/server/certs/ssl-client.pfx'
46+
platform: 'netcoreapp3.0'
47+
description: 'SSL'
4848
- template: 'sidebyside-test-steps.yml'
4949
parameters:
5050
image: ${{ parameters.image }}

azure-pipelines.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -134,16 +134,16 @@ jobs:
134134
matrix:
135135
'MySQL 5.6':
136136
image: 'mysql:5.6'
137-
unsupportedFeatures: 'Ed25519,Json,Sha256Password,RsaEncryption,LargePackets,CachingSha2Password,SessionTrack,Tls11,Tls12,UuidToBin'
137+
unsupportedFeatures: 'Ed25519,Json,Sha256Password,RsaEncryption,LargePackets,CachingSha2Password,SessionTrack,Tls11,Tls12,Tls13,UuidToBin'
138138
'MySQL 5.7':
139139
image: 'mysql:5.7'
140-
unsupportedFeatures: 'Ed25519,RsaEncryption,CachingSha2Password,Tls12,UuidToBin'
140+
unsupportedFeatures: 'Ed25519,RsaEncryption,CachingSha2Password,Tls12,Tls13,UuidToBin'
141141
'MySQL 8.0':
142142
image: 'mysql:8.0'
143-
unsupportedFeatures: 'Ed25519'
143+
unsupportedFeatures: 'Ed25519,Tls13'
144144
'Percona 5.7':
145145
image: 'percona:5.7.22'
146-
unsupportedFeatures: 'CachingSha2Password,Ed25519,UuidToBin'
146+
unsupportedFeatures: 'CachingSha2Password,Ed25519,Tls13,UuidToBin'
147147
'MariaDB 10.2':
148148
image: 'mariadb:10.2'
149149
unsupportedFeatures: 'Ed25519,Json,Sha256Password,CachingSha2Password,RoundDateTime,UuidToBin'

tests/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ Otherwise, set the following options appropriately:
3434
* `Timeout`: server can cancel queries promptly (so timed tests don't time out)
3535
* `Tls11`: server supports TLS 1.1
3636
* `Tls12`: server supports TLS 1.2
37+
* `Tls13`: server supports TLS 1.3
38+
* `UnixDomainSocket`: server is accessible via a Unix domain socket
3739
* `UuidToBin`: server supports `UUID_TO_BIN` (MySQL 8.0 and later)
3840

3941
## Running Tests

tests/SideBySide/ServerFeatures.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,6 @@ public enum ServerFeatures
2222
UuidToBin = 0x2000,
2323
Ed25519 = 0x4000,
2424
UnixDomainSocket = 0x8000,
25+
Tls13 = 0x1_0000,
2526
}
2627
}

tests/SideBySide/SslTests.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System.IO;
2+
using System.Runtime.InteropServices;
23
using System.Security.Authentication;
34
using System.Security.Cryptography.X509Certificates;
45
using System.Threading.Tasks;
@@ -177,6 +178,15 @@ public async Task ConnectSslTlsVersion()
177178
var expectedProtocolString = expectedProtocol == SslProtocols.Tls12 ? "TLSv1.2" :
178179
expectedProtocol == SslProtocols.Tls11 ? "TLSv1.1" : "TLSv1";
179180

181+
#if NETCOREAPP3_0
182+
// https://docs.microsoft.com/en-us/dotnet/core/whats-new/dotnet-core-3-0#tls-13--openssl-111-on-linux
183+
if (expectedProtocol == SslProtocols.Tls12 && AppConfig.SupportedFeatures.HasFlag(ServerFeatures.Tls13) && RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
184+
{
185+
expectedProtocol = SslProtocols.Tls13;
186+
expectedProtocolString = "TLSv1.3";
187+
}
188+
#endif
189+
180190
#if !BASELINE
181191
Assert.Equal(expectedProtocol, connection.SslProtocol);
182192
#endif

0 commit comments

Comments
 (0)