This commit is contained in:
Marie Píchová 2025-07-30 16:14:43 +02:00 committed by GitHub
commit 97fbbfd80b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 193 additions and 178 deletions

View File

@ -23,154 +23,154 @@ jobs:
shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
helixQueues:
# Linux arm
- ${{ if eq(parameters.platform, 'linux_arm') }}:
- ${{ if or(eq(parameters.jobParameters.isExtraPlatformsBuild, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}:
- (Debian.13.Arm32.Open)Ubuntu.2204.ArmArch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-13-helix-arm32v7
# Linux arm64
- ${{ if eq(parameters.platform, 'linux_arm64') }}:
- ${{ if or(eq(parameters.jobParameters.isExtraPlatformsBuild, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}:
- (Ubuntu.2510.ArmArch.Open)Ubuntu.2204.ArmArch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-25.10-helix-arm64v8
- ${{ if or(ne(parameters.jobParameters.isExtraPlatformsBuild, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}:
- (AzureLinux.3.0.ArmArch.Open)Ubuntu.2204.ArmArch.open@mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-helix-arm64v8
# Linux musl x64
- ${{ if eq(parameters.platform, 'linux_musl_x64') }}:
- ${{ if or(eq(parameters.jobParameters.isExtraPlatformsBuild, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}:
- (Alpine.edge.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-edge-helix-amd64
- ${{ if or(ne(parameters.jobParameters.isExtraPlatformsBuild, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}:
- (Alpine.322.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.22-helix-amd64
# Linux musl arm64
- ${{ if eq(parameters.platform, 'linux_musl_arm64') }}:
- ${{ if or(eq(parameters.jobParameters.isExtraPlatformsBuild, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}:
- (Alpine.322.Arm64.Open)Ubuntu.2204.ArmArch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.22-helix-arm64v8
# Linux x64
- ${{ if eq(parameters.platform, 'linux_x64') }}:
- ${{ if or(eq(parameters.jobParameters.interpreter, 'true'), eq(parameters.jobParameters.isSingleFile, true)) }}:
# Limiting interp runs as we don't need as much coverage.
- (Debian.13.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-13-helix-amd64
- ${{ else }}:
- ${{ if eq(parameters.jobParameters.runtimeFlavor, 'mono') }}:
# Mono path - test minimal scenario
- Ubuntu.2204.Amd64.Open
- ${{ else }}:
# CoreCLR path
- ${{ if and(eq(parameters.jobParameters.isExtraPlatformsBuild, true), ne(parameters.jobParameters.testScope, 'outerloop'))}}:
# extra-platforms CoreCLR (inner loop only)
- (Debian.13.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-13-helix-amd64
- (Fedora.42.Amd64.Open)AzureLinux.3.Amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-42-helix-amd64
- (openSUSE.15.6.Amd64.Open)AzureLinux.3.Amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:opensuse-15.6-helix-amd64
- (Ubuntu.2510.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-25.10-helix-amd64
- ${{ if eq(parameters.jobParameters.testScope, 'outerloop') }}:
# outerloop only CoreCLR
- AzureLinux.3.Amd64.Open
- ${{ if or(ne(parameters.jobParameters.isExtraPlatformsBuild, true), eq(parameters.jobParameters.includeAllPlatforms, true))}}:
# inner and outer loop CoreCLR (general set)
- Ubuntu.2204.Amd64.Open
- (AzureLinux.3.0.Amd64.Open)AzureLinux.3.Amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-helix-amd64
- (Centos.10.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream-10-helix-amd64
# OSX arm64
- ${{ if eq(parameters.platform, 'osx_arm64') }}:
- osx.13.arm64.open
## Linux arm
#- ${{ if eq(parameters.platform, 'linux_arm') }}:
# - ${{ if or(eq(parameters.jobParameters.isExtraPlatformsBuild, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}:
# - (Debian.13.Arm32.Open)Ubuntu.2204.ArmArch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-13-helix-arm32v7
#
## Linux arm64
#- ${{ if eq(parameters.platform, 'linux_arm64') }}:
# - ${{ if or(eq(parameters.jobParameters.isExtraPlatformsBuild, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}:
# - (Ubuntu.2510.ArmArch.Open)Ubuntu.2204.ArmArch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-25.10-helix-arm64v8
# - ${{ if or(ne(parameters.jobParameters.isExtraPlatformsBuild, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}:
# - (AzureLinux.3.0.ArmArch.Open)Ubuntu.2204.ArmArch.open@mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-helix-arm64v8
#
## Linux musl x64
#- ${{ if eq(parameters.platform, 'linux_musl_x64') }}:
# - ${{ if or(eq(parameters.jobParameters.isExtraPlatformsBuild, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}:
# - (Alpine.edge.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-edge-helix-amd64
# - ${{ if or(ne(parameters.jobParameters.isExtraPlatformsBuild, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}:
# - (Alpine.322.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.22-helix-amd64
#
## Linux musl arm64
#- ${{ if eq(parameters.platform, 'linux_musl_arm64') }}:
# - ${{ if or(eq(parameters.jobParameters.isExtraPlatformsBuild, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}:
# - (Alpine.322.Arm64.Open)Ubuntu.2204.ArmArch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.22-helix-arm64v8
#
## Linux x64
#- ${{ if eq(parameters.platform, 'linux_x64') }}:
# - ${{ if or(eq(parameters.jobParameters.interpreter, 'true'), eq(parameters.jobParameters.isSingleFile, true)) }}:
# # Limiting interp runs as we don't need as much coverage.
# - (Debian.13.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-13-helix-amd64
#
# - ${{ else }}:
# - ${{ if eq(parameters.jobParameters.runtimeFlavor, 'mono') }}:
# # Mono path - test minimal scenario
# - Ubuntu.2204.Amd64.Open
# - ${{ else }}:
# # CoreCLR path
# - ${{ if and(eq(parameters.jobParameters.isExtraPlatformsBuild, true), ne(parameters.jobParameters.testScope, 'outerloop'))}}:
# # extra-platforms CoreCLR (inner loop only)
# - (Debian.13.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-13-helix-amd64
# - (Fedora.42.Amd64.Open)AzureLinux.3.Amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-42-helix-amd64
# - (openSUSE.15.6.Amd64.Open)AzureLinux.3.Amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:opensuse-15.6-helix-amd64
# - (Ubuntu.2510.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-25.10-helix-amd64
#
# - ${{ if eq(parameters.jobParameters.testScope, 'outerloop') }}:
# # outerloop only CoreCLR
# - AzureLinux.3.Amd64.Open
#
# - ${{ if or(ne(parameters.jobParameters.isExtraPlatformsBuild, true), eq(parameters.jobParameters.includeAllPlatforms, true))}}:
# # inner and outer loop CoreCLR (general set)
# - Ubuntu.2204.Amd64.Open
# - (AzureLinux.3.0.Amd64.Open)AzureLinux.3.Amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-helix-amd64
# - (Centos.10.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream-10-helix-amd64
#
## OSX arm64
#- ${{ if eq(parameters.platform, 'osx_arm64') }}:
# - osx.13.arm64.open
#
# OSX x64
- ${{ if eq(parameters.platform, 'osx_x64') }}:
- OSX.1200.Amd64.Open
# Android
- ${{ if in(parameters.platform, 'android_x86', 'android_x64', 'linux_bionic_x64') }}:
- Ubuntu.2204.Amd64.Android.29.Open
- ${{ if in(parameters.platform, 'android_arm', 'android_arm64', 'linux_bionic_arm', 'linux_bionic_arm64') }}:
- Windows.11.Amd64.Android.Open
# iOS Simulator/Mac Catalyst arm64
- ${{ if in(parameters.platform, 'maccatalyst_arm64', 'iossimulator_arm64') }}:
- OSX.14.Arm64.Open
# iOS/tvOS Simulator x64 & MacCatalyst x64
- ${{ if in(parameters.platform, 'iossimulator_x64', 'tvossimulator_x64', 'maccatalyst_x64') }}:
- OSX.15.Amd64.Open
# iOS devices
- ${{ if in(parameters.platform, 'ios_arm64') }}:
- OSX.13.Amd64.Iphone.Open
# tvOS devices
- ${{ if in(parameters.platform, 'tvos_arm64') }}:
- OSX.13.Amd64.AppleTV.Open
# windows x64
- ${{ if eq(parameters.platform, 'windows_x64') }}:
# netcoreapp
- ${{ if notIn(parameters.jobParameters.framework, 'net481') }}:
# libraries on mono outerloop
- ${{ if and(eq(parameters.jobParameters.testScope, 'outerloop'), eq(parameters.jobParameters.runtimeFlavor, 'mono')) }}:
- Windows.Amd64.Server2022.Open
- Windows.Server2025.Amd64.Open
# libraries on coreclr (outerloop and innerloop), or libraries on mono innerloop
- ${{ if or(ne(parameters.jobParameters.testScope, 'outerloop'), ne(parameters.jobParameters.runtimeFlavor, 'mono')) }}:
- ${{ if or(eq(parameters.jobParameters.isExtraPlatformsBuild, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}:
- Windows.Amd64.Server2022.Open
- Windows.Server2025.Amd64.Open
- ${{ if ne(parameters.jobParameters.testScope, 'outerloop') }}:
- (Windows.10.Amd64.ServerRS5.Open)windows.10.amd64.serverrs5.open@mcr.microsoft.com/dotnet-buildtools/prereqs:windowsservercore-ltsc2019-helix-amd64
- ${{ if or(ne(parameters.jobParameters.isExtraPlatformsBuild, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}:
- Windows.Amd64.Server2022.Open
- Windows.Server2025.Amd64.Open
- Windows.11.Amd64.Client.Open
- ${{ if eq(parameters.jobParameters.testScope, 'outerloop') }}:
- (Windows.10.Amd64.ServerRS5.Open)windows.10.amd64.serverrs5.open@mcr.microsoft.com/dotnet-buildtools/prereqs:windowsservercore-ltsc2019-helix-amd64
- ${{ if ne(parameters.jobParameters.runtimeFlavor, 'mono') }}:
- (Windows.Nano.1809.Amd64.Open)windows.10.amd64.serverrs5.open@mcr.microsoft.com/dotnet-buildtools/prereqs:nanoserver-1809-helix-amd64
# .NETFramework
- ${{ if eq(parameters.jobParameters.framework, 'net481') }}:
- Windows.11.Amd64.Client.Open
# windows x86
- ${{ if eq(parameters.platform, 'windows_x86') }}:
# netcoreapp
- ${{ if notIn(parameters.jobParameters.framework, 'net481') }}:
# mono outerloop
- ${{ if and(eq(parameters.jobParameters.testScope, 'outerloop'), eq(parameters.jobParameters.runtimeFlavor, 'mono')) }}:
- Windows.11.Amd64.Client.Open
# libraries on coreclr (outerloop and innerloop), or libraries on mono innerloop
- ${{ if or(ne(parameters.jobParameters.testScope, 'outerloop'), ne(parameters.jobParameters.runtimeFlavor, 'mono')) }}:
- Windows.Server2025.Amd64.Open
- ${{ if or(eq(parameters.jobParameters.isExtraPlatformsBuild, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}:
- Windows.11.Amd64.Client.Open
# .NETFramework
- ${{ if eq(parameters.jobParameters.framework, 'net481') }}:
- Windows.10.Amd64.Client.Open
# windows arm64
- ${{ if eq(parameters.platform, 'windows_arm64') }}:
- Windows.11.Arm64.Open
# WASI
- ${{ if eq(parameters.platform, 'wasi_wasm') }}:
- (Ubuntu.2204.Amd64)Ubuntu.2204.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-webassembly
# Browser WebAssembly
- ${{ if eq(parameters.platform, 'browser_wasm') }}:
- (Ubuntu.2204.Amd64)Ubuntu.2204.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-webassembly
# Browser WebAssembly Firefox
- ${{ if eq(parameters.platform, 'browser_wasm_firefox') }}:
- (Ubuntu.2204.Amd64)Ubuntu.2204.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-webassembly
# Browser WebAssembly windows
- ${{ if in(parameters.platform, 'browser_wasm_win', 'wasi_wasm_win') }}:
- (Windows.Amd64.Server2022.Open)windows.amd64.server2022.open@mcr.microsoft.com/dotnet-buildtools/prereqs:windowsservercore-ltsc2022-helix-webassembly
- (Windows.Server2025.Amd64.Open)windows.server2025.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:windowsservercore-ltsc2025-helix-webassembly-amd64
#
## Android
#- ${{ if in(parameters.platform, 'android_x86', 'android_x64', 'linux_bionic_x64') }}:
# - Ubuntu.2204.Amd64.Android.29.Open
#- ${{ if in(parameters.platform, 'android_arm', 'android_arm64', 'linux_bionic_arm', 'linux_bionic_arm64') }}:
# - Windows.11.Amd64.Android.Open
#
## iOS Simulator/Mac Catalyst arm64
#- ${{ if in(parameters.platform, 'maccatalyst_arm64', 'iossimulator_arm64') }}:
# - OSX.14.Arm64.Open
#
## iOS/tvOS Simulator x64 & MacCatalyst x64
#- ${{ if in(parameters.platform, 'iossimulator_x64', 'tvossimulator_x64', 'maccatalyst_x64') }}:
# - OSX.15.Amd64.Open
#
## iOS devices
#- ${{ if in(parameters.platform, 'ios_arm64') }}:
# - OSX.13.Amd64.Iphone.Open
#
## tvOS devices
#- ${{ if in(parameters.platform, 'tvos_arm64') }}:
# - OSX.13.Amd64.AppleTV.Open
#
## windows x64
#- ${{ if eq(parameters.platform, 'windows_x64') }}:
# # netcoreapp
# - ${{ if notIn(parameters.jobParameters.framework, 'net481') }}:
# # libraries on mono outerloop
# - ${{ if and(eq(parameters.jobParameters.testScope, 'outerloop'), eq(parameters.jobParameters.runtimeFlavor, 'mono')) }}:
# - Windows.Amd64.Server2022.Open
# - Windows.Server2025.Amd64.Open
# # libraries on coreclr (outerloop and innerloop), or libraries on mono innerloop
# - ${{ if or(ne(parameters.jobParameters.testScope, 'outerloop'), ne(parameters.jobParameters.runtimeFlavor, 'mono')) }}:
# - ${{ if or(eq(parameters.jobParameters.isExtraPlatformsBuild, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}:
# - Windows.Amd64.Server2022.Open
# - Windows.Server2025.Amd64.Open
# - ${{ if ne(parameters.jobParameters.testScope, 'outerloop') }}:
# - (Windows.10.Amd64.ServerRS5.Open)windows.10.amd64.serverrs5.open@mcr.microsoft.com/dotnet-buildtools/prereqs:windowsservercore-ltsc2019-helix-amd64
# - ${{ if or(ne(parameters.jobParameters.isExtraPlatformsBuild, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}:
# - Windows.Amd64.Server2022.Open
# - Windows.Server2025.Amd64.Open
# - Windows.11.Amd64.Client.Open
# - ${{ if eq(parameters.jobParameters.testScope, 'outerloop') }}:
# - (Windows.10.Amd64.ServerRS5.Open)windows.10.amd64.serverrs5.open@mcr.microsoft.com/dotnet-buildtools/prereqs:windowsservercore-ltsc2019-helix-amd64
# - ${{ if ne(parameters.jobParameters.runtimeFlavor, 'mono') }}:
# - (Windows.Nano.1809.Amd64.Open)windows.10.amd64.serverrs5.open@mcr.microsoft.com/dotnet-buildtools/prereqs:nanoserver-1809-helix-amd64
#
# # .NETFramework
# - ${{ if eq(parameters.jobParameters.framework, 'net481') }}:
# - Windows.11.Amd64.Client.Open
#
#
## windows x86
#- ${{ if eq(parameters.platform, 'windows_x86') }}:
# # netcoreapp
# - ${{ if notIn(parameters.jobParameters.framework, 'net481') }}:
# # mono outerloop
# - ${{ if and(eq(parameters.jobParameters.testScope, 'outerloop'), eq(parameters.jobParameters.runtimeFlavor, 'mono')) }}:
# - Windows.11.Amd64.Client.Open
# # libraries on coreclr (outerloop and innerloop), or libraries on mono innerloop
# - ${{ if or(ne(parameters.jobParameters.testScope, 'outerloop'), ne(parameters.jobParameters.runtimeFlavor, 'mono')) }}:
# - Windows.Server2025.Amd64.Open
# - ${{ if or(eq(parameters.jobParameters.isExtraPlatformsBuild, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}:
# - Windows.11.Amd64.Client.Open
#
# # .NETFramework
# - ${{ if eq(parameters.jobParameters.framework, 'net481') }}:
# - Windows.10.Amd64.Client.Open
#
## windows arm64
#- ${{ if eq(parameters.platform, 'windows_arm64') }}:
# - Windows.11.Arm64.Open
#
## WASI
#- ${{ if eq(parameters.platform, 'wasi_wasm') }}:
# - (Ubuntu.2204.Amd64)Ubuntu.2204.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-webassembly
#
## Browser WebAssembly
#- ${{ if eq(parameters.platform, 'browser_wasm') }}:
# - (Ubuntu.2204.Amd64)Ubuntu.2204.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-webassembly
#
## Browser WebAssembly Firefox
#- ${{ if eq(parameters.platform, 'browser_wasm_firefox') }}:
# - (Ubuntu.2204.Amd64)Ubuntu.2204.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-webassembly
#
## Browser WebAssembly windows
#- ${{ if in(parameters.platform, 'browser_wasm_win', 'wasi_wasm_win') }}:
# - (Windows.Amd64.Server2022.Open)windows.amd64.server2022.open@mcr.microsoft.com/dotnet-buildtools/prereqs:windowsservercore-ltsc2022-helix-webassembly
# - (Windows.Server2025.Amd64.Open)windows.server2025.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:windowsservercore-ltsc2025-helix-webassembly-amd64
${{ insert }}: ${{ parameters.jobParameters }}

View File

@ -343,41 +343,56 @@ namespace System.Net.Quic.Tests
[Fact]
public async Task CertificateCallbackThrowPropagates()
{
using CancellationTokenSource cts = new CancellationTokenSource(PassingTestTimeout);
bool validationResult = false;
var listenerOptions = new QuicListenerOptions()
using var _ = new TestEventListener(Console.Out, "Private.InternalDiagnostics.System.Net.Quic");
if (PlatformDetection.IsOSX)
{
ListenEndPoint = new IPEndPoint(IsIPv6Available ? IPAddress.IPv6Loopback : IPAddress.Loopback, 0),
ApplicationProtocols = new List<SslApplicationProtocol>() { ApplicationProtocol },
ConnectionOptionsCallback = (_, _, _) => ValueTask.FromResult(CreateQuicServerOptions())
};
await using QuicListener listener = await CreateQuicListener(listenerOptions);
QuicClientConnectionOptions clientOptions = CreateQuicClientOptions(listener.LocalEndPoint);
clientOptions.ClientAuthenticationOptions.RemoteCertificateValidationCallback = (sender, cert, chain, errors) =>
{
Assert.Equal(ServerCertificate, cert);
if (validationResult)
for (int i = 0; i < 100; ++i)
{
return validationResult;
Console.WriteLine($"Running {i} iteration");
using CancellationTokenSource cts = new CancellationTokenSource(PassingTestTimeout);
bool validationResult = false;
var listenerOptions = new QuicListenerOptions()
{
ListenEndPoint = new IPEndPoint(IsIPv6Available ? IPAddress.IPv6Loopback : IPAddress.Loopback, 0),
ApplicationProtocols = new List<SslApplicationProtocol>() { ApplicationProtocol },
ConnectionOptionsCallback = (_, _, _) => ValueTask.FromResult(CreateQuicServerOptions())
};
await using QuicListener listener = await CreateQuicListener(listenerOptions);
QuicClientConnectionOptions clientOptions = CreateQuicClientOptions(listener.LocalEndPoint);
clientOptions.ClientAuthenticationOptions.RemoteCertificateValidationCallback = (sender, cert, chain, errors) =>
{
Console.WriteLine($"{i} in callback");
Assert.Equal(ServerCertificate, cert);
if (validationResult)
{
Console.WriteLine($"{i} in callback - {validationResult}");
return validationResult;
}
Console.WriteLine($"{i} in callback - {nameof(ArithmeticException)}");
throw new ArithmeticException("foobar");
};
clientOptions.ClientAuthenticationOptions.TargetHost = "foobar1";
Console.WriteLine($"{i} before first connect");
Exception exception = await AssertThrowsQuicExceptionAsync(QuicError.CallbackError, async () => await CreateQuicConnection(clientOptions));
Console.WriteLine($"{i} after first connect");
Assert.True(exception.InnerException is ArithmeticException);
Console.WriteLine($"{i} before first accept");
await Assert.ThrowsAsync<AuthenticationException>(async () => await listener.AcceptConnectionAsync());
Console.WriteLine($"{i} after first accept");
// Make sure the listener is still usable and there is no lingering bad connection
validationResult = true;
(QuicConnection clientConnection, QuicConnection serverConnection) = await CreateConnectedQuicConnection(listener);
await PingPong(clientConnection, serverConnection);
await clientConnection.DisposeAsync();
await serverConnection.DisposeAsync();
Console.WriteLine($"Finished {i} iteration");
}
throw new ArithmeticException("foobar");
};
clientOptions.ClientAuthenticationOptions.TargetHost = "foobar1";
Exception exception = await AssertThrowsQuicExceptionAsync(QuicError.CallbackError, async () => await CreateQuicConnection(clientOptions));
Assert.True(exception.InnerException is ArithmeticException);
await Assert.ThrowsAsync<AuthenticationException>(async () => await listener.AcceptConnectionAsync());
// Make sure the listener is still usable and there is no lingering bad connection
validationResult = true;
(QuicConnection clientConnection, QuicConnection serverConnection) = await CreateConnectedQuicConnection(listener);
await PingPong(clientConnection, serverConnection);
await clientConnection.DisposeAsync();
await serverConnection.DisposeAsync();
}
}
[Fact]