diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
index 736b34acae..0763ef1c5b 100644
--- a/.config/dotnet-tools.json
+++ b/.config/dotnet-tools.json
@@ -3,7 +3,7 @@
"isRoot": true,
"tools": {
"jetbrains.resharper.globaltools": {
- "version": "2025.3.0",
+ "version": "2025.3.0.3",
"commands": [
"jb"
],
diff --git a/.github/workflows/Steeltoe.All.yml b/.github/workflows/Steeltoe.All.yml
index b42e9bf4ad..d4b5897ca1 100644
--- a/.github/workflows/Steeltoe.All.yml
+++ b/.github/workflows/Steeltoe.All.yml
@@ -38,7 +38,7 @@ jobs:
- os: windows-latest
skipFilter: Category!=Integration
- os: macos-latest
- skipFilter: Category!=Integration&Category!=SkipOnMacOS
+ skipFilter: Category!=Integration
runs-on: ${{ matrix.os }}
continue-on-error: true
@@ -74,12 +74,12 @@ jobs:
# When that happens, select 'Always Allow' to grant 'dotnet' access to the certificate key in the future.
# and the test run fails, but without indicating which test caused it. By setting this, the causing test fails with the next message:
# Unable to configure HTTPS endpoint. No server certificate was specified, and the default developer certificate could not be found or is out of date.
- # To prevent the causing test from failing the test run, disable it on macOS by adding [Trait("Category", "SkipOnMacOS")].
+ # To prevent the causing test from failing the test run, disable it on macOS using FactSkippedOnPlatform/TheorySkippedOnPlatform.
shell: bash
run: echo "DOTNET_GENERATE_ASPNET_CERTIFICATE=false" >> $GITHUB_ENV
- name: Git checkout
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
with:
persist-credentials: false
@@ -115,7 +115,7 @@ jobs:
- name: Upload crash/hang dumps (on failure)
if: ${{ failure() }}
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v5
with:
name: FailedTestOutput-${{ matrix.os }}
path: |
diff --git a/.github/workflows/component-configuration.yml b/.github/workflows/component-configuration.yml
index 3f6cc30272..3c32b2dd5e 100644
--- a/.github/workflows/component-configuration.yml
+++ b/.github/workflows/component-configuration.yml
@@ -25,4 +25,4 @@ jobs:
with:
component: Configuration
OS: ubuntu
- runConfigServer: true
+ runDockerContainers: true
diff --git a/.github/workflows/component-management.yml b/.github/workflows/component-management.yml
index da124fbeea..b1e13119c1 100644
--- a/.github/workflows/component-management.yml
+++ b/.github/workflows/component-management.yml
@@ -31,7 +31,6 @@ jobs:
with:
component: Management
OS: macos
- skipFilter: Category!=SkipOnMacOS
windows:
uses: ./.github/workflows/component-shared-workflow.yml
diff --git a/.github/workflows/component-shared-workflow.yml b/.github/workflows/component-shared-workflow.yml
index b958b3b509..229e2f5801 100644
--- a/.github/workflows/component-shared-workflow.yml
+++ b/.github/workflows/component-shared-workflow.yml
@@ -9,10 +9,7 @@ on:
OS:
required: true
type: string
- skipFilter:
- required: false
- type: string
- runConfigServer:
+ runDockerContainers:
required: false
type: boolean
default: false
@@ -24,14 +21,10 @@ permissions:
env:
DOTNET_CLI_TELEMETRY_OPTOUT: 1
DOTNET_NOLOGO: true
- SOLUTION_FILE: src/Steeltoe.${{ inputs.component }}.slnf
+ SOLUTION_FILE: 'src/Steeltoe.${{ inputs.component }}.slnf'
COMMON_TEST_ARGS: >-
--no-build --configuration Release --collect "XPlat Code Coverage" --logger trx --results-directory ${{ github.workspace }}/dumps
--settings coverlet.runsettings --blame-crash --blame-hang-timeout 3m
- SKIP_FILTER_NO_MEMORY_DUMPS: >-
- ${{ inputs.skipFilter && format('--filter "{0}&Category!=MemoryDumps"', inputs.skipFilter) || '--filter "Category!=MemoryDumps"' }}
- SKIP_FILTER_WITH_MEMORY_DUMPS: >-
- ${{ inputs.skipFilter && format('--filter "{0}&Category=MemoryDumps"', inputs.skipFilter) || '--filter "Category=MemoryDumps"' }}
jobs:
build:
@@ -41,11 +34,11 @@ jobs:
services:
eurekaServer:
- image: ${{ inputs.runConfigServer && 'steeltoe.azurecr.io/eureka-server' || null }}
+ image: ${{ inputs.runDockerContainers && 'steeltoe.azurecr.io/eureka-server' || null }}
ports:
- 8761:8761
configServer:
- image: ${{ inputs.runConfigServer && 'steeltoe.azurecr.io/config-server' || null }}
+ image: ${{ inputs.runDockerContainers && 'steeltoe.azurecr.io/config-server' || null }}
env:
eureka.client.enabled: true
eureka.client.serviceUrl.defaultZone: http://eurekaServer:8761/eureka
@@ -71,12 +64,12 @@ jobs:
# When that happens, select 'Always Allow' to grant 'dotnet' access to the certificate key in the future.
# and the test run fails, but without indicating which test caused it. By setting this, the causing test fails with the next message:
# Unable to configure HTTPS endpoint. No server certificate was specified, and the default developer certificate could not be found or is out of date.
- # To prevent the causing test from failing the test run, disable it on macOS by adding [Trait("Category", "SkipOnMacOS")].
+ # To prevent the causing test from failing the test run, disable it on macOS using FactSkippedOnPlatform/TheorySkippedOnPlatform.
shell: bash
run: echo "DOTNET_GENERATE_ASPNET_CERTIFICATE=false" >> $GITHUB_ENV
- name: Git checkout
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
with:
persist-credentials: false
@@ -87,32 +80,31 @@ jobs:
run: dotnet build ${{ env.SOLUTION_FILE }} --no-restore --configuration Release --verbosity minimal
- name: Test (net10.0)
- run: dotnet test ${{ env.SOLUTION_FILE }} --framework net10.0 ${{ env.SKIP_FILTER_NO_MEMORY_DUMPS }} ${{ env.COMMON_TEST_ARGS }}
+ run: dotnet test ${{ env.SOLUTION_FILE }} --framework net10.0 --filter "Category!=MemoryDumps" ${{ env.COMMON_TEST_ARGS }}
- name: Test (net10.0) (memory dumps)
if: ${{ inputs.component == 'Management' }}
- run: dotnet test ${{ env.SOLUTION_FILE }} --framework net10.0 ${{ env.SKIP_FILTER_WITH_MEMORY_DUMPS }} ${{ env.COMMON_TEST_ARGS }}
+ run: dotnet test ${{ env.SOLUTION_FILE }} --framework net10.0 --filter "Category=MemoryDumps" ${{ env.COMMON_TEST_ARGS }}
- name: Test (net9.0)
- run: dotnet test ${{ env.SOLUTION_FILE }} --framework net9.0 ${{ env.SKIP_FILTER_NO_MEMORY_DUMPS }} ${{ env.COMMON_TEST_ARGS }}
+ run: dotnet test ${{ env.SOLUTION_FILE }} --framework net9.0 --filter "Category!=MemoryDumps" ${{ env.COMMON_TEST_ARGS }}
- name: Test (net9.0) (memory dumps)
if: ${{ inputs.component == 'Management' }}
- run: dotnet test ${{ env.SOLUTION_FILE }} --framework net9.0 ${{ env.SKIP_FILTER_WITH_MEMORY_DUMPS }} ${{ env.COMMON_TEST_ARGS }}
+ run: dotnet test ${{ env.SOLUTION_FILE }} --framework net9.0 --filter "Category=MemoryDumps" ${{ env.COMMON_TEST_ARGS }}
- name: Test (net8.0)
- run: dotnet test ${{ env.SOLUTION_FILE }} --framework net8.0 ${{ env.SKIP_FILTER_NO_MEMORY_DUMPS }} ${{ env.COMMON_TEST_ARGS }}
+ run: dotnet test ${{ env.SOLUTION_FILE }} --framework net8.0 --filter "Category!=MemoryDumps" ${{ env.COMMON_TEST_ARGS }}
- name: Test (net8.0) (memory dumps)
if: ${{ inputs.component == 'Management' }}
- run: dotnet test ${{ env.SOLUTION_FILE }} --framework net8.0 ${{ env.SKIP_FILTER_WITH_MEMORY_DUMPS }} ${{ env.COMMON_TEST_ARGS }}
-
+ run: dotnet test ${{ env.SOLUTION_FILE }} --framework net8.0 --filter "Category=MemoryDumps" ${{ env.COMMON_TEST_ARGS }}
- name: Upload crash/hang dumps (on failure)
if: ${{ failure() }}
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v5
with:
- name: FailedTestOutput-${{ inputs.OS }}
+ name: FailedTestOutput-${{ inputs.OS }}-latest
path: |
${{ github.workspace }}/dumps/**/*.dmp
${{ github.workspace }}/dumps/**/Sequence_*.xml
@@ -122,7 +114,7 @@ jobs:
if: ${{ !cancelled() }}
uses: dorny/test-reporter@v2
with:
- name: ${{ inputs.OS }} test results
+ name: ${{ inputs.OS }}-latest test results
reporter: dotnet-trx
path: '**/*.trx'
fail-on-empty: 'true'
diff --git a/.github/workflows/package.yml b/.github/workflows/package.yml
index 0ada5b694f..46b1dbab50 100644
--- a/.github/workflows/package.yml
+++ b/.github/workflows/package.yml
@@ -40,7 +40,7 @@ jobs:
10.0.*
- name: Git checkout
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
with:
persist-credentials: false
@@ -123,7 +123,7 @@ jobs:
run: dotnet pack ${{ env.SOLUTION_FILE }} --no-build --configuration Release --output ${{ github.workspace }}/packages /p:VersionSuffix=${{ env.PACKAGE_VERSION_SUFFIX }}
- name: Upload unsigned packages
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v5
with:
if-no-files-found: error
name: unsigned-packages
@@ -174,7 +174,7 @@ jobs:
--description-url 'https://steeltoe.io/'
- name: Upload signed packages
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v5
with:
if-no-files-found: error
name: signed-packages
@@ -263,7 +263,7 @@ jobs:
steps:
- name: Git checkout
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
with:
persist-credentials: true
diff --git a/.github/workflows/scan-vulnerable-dependencies.yml b/.github/workflows/scan-vulnerable-dependencies.yml
index 473ff0bc07..221643a3ff 100644
--- a/.github/workflows/scan-vulnerable-dependencies.yml
+++ b/.github/workflows/scan-vulnerable-dependencies.yml
@@ -36,7 +36,7 @@ jobs:
10.0.*
- name: Git checkout
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
with:
persist-credentials: false
diff --git a/.github/workflows/sonarcube.yml b/.github/workflows/sonarcube.yml
index a9498051e0..2fcebd9f8a 100644
--- a/.github/workflows/sonarcube.yml
+++ b/.github/workflows/sonarcube.yml
@@ -59,7 +59,7 @@ jobs:
run: dotnet tool install --global dotnet-sonarscanner
- name: Git checkout
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
with:
persist-credentials: false
# Sonar: Shallow clones should be disabled for a better relevancy of analysis.
diff --git a/.github/workflows/verify-code-style.yml b/.github/workflows/verify-code-style.yml
index 04df341bfd..ca649bdfd5 100644
--- a/.github/workflows/verify-code-style.yml
+++ b/.github/workflows/verify-code-style.yml
@@ -35,7 +35,7 @@ jobs:
10.0.*
- name: Git checkout
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
with:
persist-credentials: false
fetch-depth: 2
@@ -44,7 +44,10 @@ jobs:
run: dotnet tool restore --verbosity minimal
- name: Restore packages
- run: dotnet restore ${{ env.SOLUTION_FILE }} /p:Configuration=Release --verbosity minimal
+ run: dotnet restore ${{ env.SOLUTION_FILE }} /p:Configuration=Release /p:NuGetAudit=false --verbosity minimal
+
+ - name: Build
+ run: dotnet build ${{ env.SOLUTION_FILE }} --no-restore --configuration Release /p:RunAnalyzers=false
- name: CleanupCode (on PR diff)
if: ${{ github.event_name == 'pull_request' }}
@@ -56,11 +59,13 @@ jobs:
$baseCommitHash = git rev-parse HEAD~1
Write-Output "Running code cleanup on commit range $baseCommitHash..$headCommitHash in pull request."
- dotnet regitlint -s ${{ env.SOLUTION_FILE }} --print-command --skip-tool-check --max-runs=5 --jb --dotnetcoresdk=$(dotnet --version) --jb-profile="Steeltoe Full Cleanup" --jb --properties:Configuration=Release --jb --properties:RunAnalyzers=false --jb --properties:NuGetAudit=false --jb --verbosity=WARN -f commits -a $headCommitHash -b $baseCommitHash --fail-on-diff --print-diff
+ dotnet jb cleanupcode --version
+ dotnet regitlint -s $env:SOLUTION_FILE --print-command --skip-tool-check --max-runs=5 --jb --dotnetcoresdk=$(dotnet --version) --jb-profile="Steeltoe Full Cleanup" --jb --no-updates --jb --properties:Configuration=Release --jb --properties:RunAnalyzers=false --jb --properties:NuGetAudit=false --jb --verbosity=WARN -f commits -a $headCommitHash -b $baseCommitHash --fail-on-diff --print-diff
- name: CleanupCode (on branch)
- if: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'release' }}
+ if: ${{ github.event_name == 'push' || github.event_name == 'release' || github.event_name == 'workflow_dispatch' }}
shell: pwsh
run: |
- Write-Output "Running code cleanup on all files."
- dotnet regitlint -s ${{ env.SOLUTION_FILE }} --print-command --skip-tool-check --jb --dotnetcoresdk=$(dotnet --version) --jb-profile="Steeltoe Full Cleanup" --jb --properties:Configuration=Release --jb --properties:RunAnalyzers=false --jb --properties:NuGetAudit=false --jb --verbosity=WARN --fail-on-diff --print-diff
+ Write-Output 'Running code cleanup on all files.'
+ dotnet jb cleanupcode --version
+ dotnet regitlint -s $env:SOLUTION_FILE --print-command --skip-tool-check --jb --dotnetcoresdk=$(dotnet --version) --jb-profile="Steeltoe Full Cleanup" --jb --no-updates --jb --properties:Configuration=Release --jb --properties:RunAnalyzers=false --jb --properties:NuGetAudit=false --jb --verbosity=WARN --fail-on-diff --print-diff
diff --git a/cleanupcode.ps1 b/cleanupcode.ps1
index 4f36c58367..1c5043ff19 100644
--- a/cleanupcode.ps1
+++ b/cleanupcode.ps1
@@ -1,4 +1,4 @@
-#Requires -Version 7.0
+#Requires -Version 7.4
# This script reformats (part of) the codebase to make it compliant with our coding guidelines.
@@ -7,38 +7,31 @@ param(
[string] $revision
)
-function VerifySuccessExitCode {
- if ($LastExitCode -ne 0) {
- throw "Command failed with exit code $LastExitCode."
- }
-}
+$ErrorActionPreference = "Stop"
+$PSNativeCommandUseErrorActionPreference = $true
+$solutionFile = 'src/Steeltoe.All.sln'
dotnet tool restore
-VerifySuccessExitCode
-
-dotnet restore src
-VerifySuccessExitCode
+dotnet restore $solutionFile /p:NuGetAudit=false
+dotnet build $solutionFile --no-restore --configuration Release /p:RunAnalyzers=false
if ($revision) {
$headCommitHash = git rev-parse HEAD
- VerifySuccessExitCode
-
$baseCommitHash = git rev-parse $revision
- VerifySuccessExitCode
if ($baseCommitHash -eq $headCommitHash) {
Write-Output "Running code cleanup on staged/unstaged files."
- dotnet regitlint -s src/Steeltoe.All.sln --print-command --skip-tool-check --max-runs=5 --jb --dotnetcoresdk=$(dotnet --version) --jb-profile="Steeltoe Full Cleanup" --jb --properties:Configuration=Release --jb --properties:NuGetAudit=false --jb --verbosity=WARN -f staged,modified
- VerifySuccessExitCode
+ dotnet jb cleanupcode --version
+ dotnet regitlint -s $solutionFile --print-command --skip-tool-check --max-runs=5 --jb --dotnetcoresdk=$(dotnet --version) --jb-profile="Steeltoe Full Cleanup" --jb --no-updates --jb --properties:Configuration=Release --jb --properties:RunAnalyzers=false --jb --properties:NuGetAudit=false --jb --verbosity=WARN -f staged,modified
}
else {
Write-Output "Running code cleanup on commit range $baseCommitHash..$headCommitHash, including staged/unstaged files."
- dotnet regitlint -s src/Steeltoe.All.sln --print-command --skip-tool-check --max-runs=5 --jb --dotnetcoresdk=$(dotnet --version) --jb-profile="Steeltoe Full Cleanup" --jb --properties:Configuration=Release --jb --properties:NuGetAudit=false --jb --verbosity=WARN -f staged,modified,commits -a $headCommitHash -b $baseCommitHash
- VerifySuccessExitCode
+ dotnet jb cleanupcode --version
+ dotnet regitlint -s $solutionFile --print-command --skip-tool-check --max-runs=5 --jb --dotnetcoresdk=$(dotnet --version) --jb-profile="Steeltoe Full Cleanup" --jb --no-updates --jb --properties:Configuration=Release --jb --properties:RunAnalyzers=false --jb --properties:NuGetAudit=false --jb --verbosity=WARN -f staged,modified,commits -a $headCommitHash -b $baseCommitHash
}
}
else {
Write-Output "Running code cleanup on all files."
- dotnet regitlint -s src/Steeltoe.All.sln --print-command --skip-tool-check --jb --dotnetcoresdk=$(dotnet --version) --jb-profile="Steeltoe Full Cleanup" --jb --properties:Configuration=Release --jb --properties:NuGetAudit=false --jb --verbosity=WARN
- VerifySuccessExitCode
+ dotnet jb cleanupcode --version
+ dotnet regitlint -s $solutionFile --print-command --skip-tool-check --jb --dotnetcoresdk=$(dotnet --version) --jb-profile="Steeltoe Full Cleanup" --jb --no-updates --jb --properties:Configuration=Release --jb --properties:RunAnalyzers=false --jb --properties:NuGetAudit=false --jb --verbosity=WARN
}
diff --git a/shared-project.props b/shared-project.props
index 2dfa2fa8de..bd037efa28 100644
--- a/shared-project.props
+++ b/shared-project.props
@@ -4,5 +4,6 @@
false
-
+
diff --git a/shared-test.props b/shared-test.props
index 070739758d..16dad857a8 100644
--- a/shared-test.props
+++ b/shared-test.props
@@ -11,7 +11,8 @@
-
+
diff --git a/src/Common/test/Certificates.Test/ConfigureCertificateOptionsTest.cs b/src/Common/test/Certificates.Test/ConfigureCertificateOptionsTest.cs
index 876c1566a6..a2a64797d2 100644
--- a/src/Common/test/Certificates.Test/ConfigureCertificateOptionsTest.cs
+++ b/src/Common/test/Certificates.Test/ConfigureCertificateOptionsTest.cs
@@ -2,6 +2,7 @@
// The .NET Foundation licenses this file to you under the Apache 2.0 License.
// See the LICENSE file in the project root for more information.
+using System.Runtime.InteropServices;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Text.Json;
@@ -50,10 +51,9 @@ public void ConfigureCertificateOptions_BadPath_NoCertificate(string certificate
options.Certificate.Should().BeNull();
}
- [Theory]
+ [TheorySkippedOnPlatform(nameof(OSPlatform.OSX))]
[InlineData("")]
[InlineData(CertificateName)]
- [Trait("Category", "SkipOnMacOS")]
public void ConfigureCertificateOptions_ThrowsOnEmptyFile(string certificateName)
{
var appSettings = new Dictionary
diff --git a/src/Common/test/TestResources/FactSkippedOnPlatformAttribute.cs b/src/Common/test/TestResources/FactSkippedOnPlatformAttribute.cs
new file mode 100644
index 0000000000..0e3efaba45
--- /dev/null
+++ b/src/Common/test/TestResources/FactSkippedOnPlatformAttribute.cs
@@ -0,0 +1,29 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the Apache 2.0 License.
+// See the LICENSE file in the project root for more information.
+
+using System.Runtime.InteropServices;
+using Xunit;
+using Xunit.v3;
+
+namespace Steeltoe.Common.TestResources;
+
+///
+/// Skips running the decorated test on the specified platforms.
+///
+///
+/// A common reason for skipping tests on macOS is because the ASP.NET dev certificate is not trusted. See
+/// https://github.com/dotnet/aspnetcore/issues/42273.
+///
+[XunitTestCaseDiscoverer(typeof(FactDiscoverer))]
+[AttributeUsage(AttributeTargets.Method)]
+public sealed class FactSkippedOnPlatformAttribute : FactAttribute
+{
+ public FactSkippedOnPlatformAttribute(params string[] platformNames)
+ {
+ foreach (OSPlatform platform in platformNames.Select(OSPlatform.Create))
+ {
+ Assert.SkipWhen(RuntimeInformation.IsOSPlatform(platform), $"Skipping test on platform {platform}.");
+ }
+ }
+}
diff --git a/src/Common/test/TestResources/TheorySkippedOnPlatformAttribute.cs b/src/Common/test/TestResources/TheorySkippedOnPlatformAttribute.cs
new file mode 100644
index 0000000000..c09160b5c4
--- /dev/null
+++ b/src/Common/test/TestResources/TheorySkippedOnPlatformAttribute.cs
@@ -0,0 +1,29 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the Apache 2.0 License.
+// See the LICENSE file in the project root for more information.
+
+using System.Runtime.InteropServices;
+using Xunit;
+using Xunit.v3;
+
+namespace Steeltoe.Common.TestResources;
+
+///
+/// Skips running the decorated test on the specified platforms.
+///
+///
+/// A common reason for skipping tests on macOS is because the ASP.NET dev certificate is not trusted. See
+/// https://github.com/dotnet/aspnetcore/issues/42273.
+///
+[XunitTestCaseDiscoverer(typeof(TheoryDiscoverer))]
+[AttributeUsage(AttributeTargets.Method)]
+public sealed class TheorySkippedOnPlatformAttribute : TheoryAttribute
+{
+ public TheorySkippedOnPlatformAttribute(params string[] platformNames)
+ {
+ foreach (OSPlatform platform in platformNames.Select(OSPlatform.Create))
+ {
+ Assert.SkipWhen(RuntimeInformation.IsOSPlatform(platform), $"Skipping test on platform {platform}.");
+ }
+ }
+}
diff --git a/src/Discovery/test/Consul.Test/Discovery/PostConfigureConsulDiscoveryOptionsTest.cs b/src/Discovery/test/Consul.Test/Discovery/PostConfigureConsulDiscoveryOptionsTest.cs
index a09e3c2f1e..8f468dc17f 100644
--- a/src/Discovery/test/Consul.Test/Discovery/PostConfigureConsulDiscoveryOptionsTest.cs
+++ b/src/Discovery/test/Consul.Test/Discovery/PostConfigureConsulDiscoveryOptionsTest.cs
@@ -3,6 +3,7 @@
// See the LICENSE file in the project root for more information.
using System.Diagnostics;
+using System.Runtime.InteropServices;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging.Abstractions;
@@ -107,8 +108,7 @@ public async Task CanUseNetworkInterfaces()
inetUtilsMock.Verify(n => n.FindFirstNonLoopbackHostInfo(), Times.Once);
}
- [Fact]
- [Trait("Category", "SkipOnMacOS")]
+ [FactSkippedOnPlatform(nameof(OSPlatform.OSX))]
public async Task CanUseNetworkInterfacesWithoutReverseDnsOnIP()
{
var appSettings = new Dictionary
@@ -137,7 +137,7 @@ public async Task CanUseNetworkInterfacesWithoutReverseDnsOnIP()
noSlowReverseDnsQuery.Stop();
options.HostName.Should().NotBeNull();
- noSlowReverseDnsQuery.ElapsedMilliseconds.Should().BeInRange(0, 1500); // testing with an actual reverse dns query results in around 5000 ms
+ noSlowReverseDnsQuery.ElapsedMilliseconds.Should().BeInRange(0, 2000); // testing with an actual reverse dns query results in around 5000 ms
}
[Fact]
diff --git a/src/Discovery/test/Eureka.Test/DynamicPortAssignmentTest.cs b/src/Discovery/test/Eureka.Test/DynamicPortAssignmentTest.cs
index 3b0265f868..45f9666e17 100644
--- a/src/Discovery/test/Eureka.Test/DynamicPortAssignmentTest.cs
+++ b/src/Discovery/test/Eureka.Test/DynamicPortAssignmentTest.cs
@@ -2,6 +2,7 @@
// The .NET Foundation licenses this file to you under the Apache 2.0 License.
// See the LICENSE file in the project root for more information.
+using System.Runtime.InteropServices;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
@@ -11,8 +12,7 @@ namespace Steeltoe.Discovery.Eureka.Test;
public sealed class DynamicPortAssignmentTest
{
- [Fact]
- [Trait("Category", "SkipOnMacOS")]
+ [FactSkippedOnPlatform(nameof(OSPlatform.OSX))]
public async Task Applies_dynamically_assigned_ports_after_startup()
{
var appSettings = new Dictionary
diff --git a/src/Discovery/test/Eureka.Test/EurekaServiceCollectionExtensionsTest.cs b/src/Discovery/test/Eureka.Test/EurekaServiceCollectionExtensionsTest.cs
index d8c1453e14..6d22358713 100644
--- a/src/Discovery/test/Eureka.Test/EurekaServiceCollectionExtensionsTest.cs
+++ b/src/Discovery/test/Eureka.Test/EurekaServiceCollectionExtensionsTest.cs
@@ -3,6 +3,7 @@
// See the LICENSE file in the project root for more information.
using System.Diagnostics;
+using System.Runtime.InteropServices;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
@@ -55,8 +56,7 @@ public async Task AddEurekaDiscoveryClient_UsesManagementOptions()
options.Value.StatusPageUrlPath.Should().Be("/actuator/info");
}
- [Fact]
- [Trait("Category", "SkipOnMacOS")]
+ [FactSkippedOnPlatform(nameof(OSPlatform.OSX))]
public async Task AddEurekaDiscoveryClient_UsesServerTimeout()
{
var appSettings = new Dictionary
diff --git a/src/Discovery/test/Eureka.Test/PostConfigureEurekaInstanceOptionsTest.cs b/src/Discovery/test/Eureka.Test/PostConfigureEurekaInstanceOptionsTest.cs
index 9eebea8b55..6200afa727 100644
--- a/src/Discovery/test/Eureka.Test/PostConfigureEurekaInstanceOptionsTest.cs
+++ b/src/Discovery/test/Eureka.Test/PostConfigureEurekaInstanceOptionsTest.cs
@@ -5,6 +5,7 @@
using System.Diagnostics;
using System.Globalization;
using System.Reflection;
+using System.Runtime.InteropServices;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
@@ -217,8 +218,7 @@ public async Task Can_use_network_interfaces()
instanceOptions.IPAddress.Should().Be("254.254.254.254");
}
- [Fact]
- [Trait("Category", "SkipOnMacOS")]
+ [FactSkippedOnPlatform(nameof(OSPlatform.OSX))]
public async Task Can_use_network_interfaces_without_reverse_DNS_on_IP()
{
var appSettings = new Dictionary
diff --git a/src/Discovery/test/HttpClients.Test/DiscoveryWebApplicationBuilderExtensionsTest.cs b/src/Discovery/test/HttpClients.Test/DiscoveryWebApplicationBuilderExtensionsTest.cs
index 5cd064130a..358958b738 100644
--- a/src/Discovery/test/HttpClients.Test/DiscoveryWebApplicationBuilderExtensionsTest.cs
+++ b/src/Discovery/test/HttpClients.Test/DiscoveryWebApplicationBuilderExtensionsTest.cs
@@ -2,6 +2,7 @@
// The .NET Foundation licenses this file to you under the Apache 2.0 License.
// See the LICENSE file in the project root for more information.
+using System.Runtime.InteropServices;
using FluentAssertions.Extensions;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.Configuration;
@@ -61,8 +62,7 @@ public async Task AddConsulDiscoveryClient_WebApplicationBuilder_AddsServiceDisc
host.Services.GetServices().OfType().Should().ContainSingle();
}
- [Fact]
- [Trait("Category", "SkipOnMacOS")]
+ [FactSkippedOnPlatform(nameof(OSPlatform.OSX))]
public async Task AddEurekaDiscoveryClient_WorksWithGlobalServiceDiscovery()
{
WebApplicationBuilder builder = TestWebApplicationBuilderFactory.Create();
diff --git a/src/Management/test/Endpoint.Test/Actuators/HeapDump/HeapDumperTest.cs b/src/Management/test/Endpoint.Test/Actuators/HeapDump/HeapDumperTest.cs
index c1cfe1045c..65b94240cf 100644
--- a/src/Management/test/Endpoint.Test/Actuators/HeapDump/HeapDumperTest.cs
+++ b/src/Management/test/Endpoint.Test/Actuators/HeapDump/HeapDumperTest.cs
@@ -10,11 +10,12 @@
namespace Steeltoe.Management.Endpoint.Test.Actuators.HeapDump;
+[Collection("TestsForMemoryDumpsMustRunSequentially")]
+[Trait("Category", "MemoryDumps")]
public sealed class HeapDumperTest
{
private static readonly TimeSpan DumpTimeout = TimeSpan.FromMinutes(3);
- [Trait("Category", "MemoryDumps")]
[Theory]
[InlineData(HeapDumpType.Full, "fulldump_", "full dump")]
[InlineData(HeapDumpType.Heap, "heapdump_", "dump with heap")]
diff --git a/src/Management/test/Endpoint.Test/Actuators/HttpExchanges/DiagnosticObserverHttpExchangeRecorderTest.cs b/src/Management/test/Endpoint.Test/Actuators/HttpExchanges/DiagnosticObserverHttpExchangeRecorderTest.cs
index 2892b85934..54e765795f 100644
--- a/src/Management/test/Endpoint.Test/Actuators/HttpExchanges/DiagnosticObserverHttpExchangeRecorderTest.cs
+++ b/src/Management/test/Endpoint.Test/Actuators/HttpExchanges/DiagnosticObserverHttpExchangeRecorderTest.cs
@@ -17,6 +17,7 @@
namespace Steeltoe.Management.Endpoint.Test.Actuators.HttpExchanges;
+[Collection("TestsForMemoryDumpsMustRunSequentially")]
[Trait("Category", "MemoryDumps")]
public sealed class DiagnosticObserverHttpExchangeRecorderTest
{
diff --git a/src/Management/test/Endpoint.Test/Actuators/ThreadDump/EventPipeThreadDumperTest.cs b/src/Management/test/Endpoint.Test/Actuators/ThreadDump/EventPipeThreadDumperTest.cs
index 29f31200f3..3e46e42afd 100644
--- a/src/Management/test/Endpoint.Test/Actuators/ThreadDump/EventPipeThreadDumperTest.cs
+++ b/src/Management/test/Endpoint.Test/Actuators/ThreadDump/EventPipeThreadDumperTest.cs
@@ -8,9 +8,10 @@
namespace Steeltoe.Management.Endpoint.Test.Actuators.ThreadDump;
+[Collection("TestsForMemoryDumpsMustRunSequentially")]
+[Trait("Category", "MemoryDumps")]
public sealed class EventPipeThreadDumperTest
{
- [Trait("Category", "MemoryDumps")]
[Fact]
public async Task Can_resolve_source_location_from_pdb()
{
diff --git a/src/Management/test/Endpoint.Test/ManagementPort/ManagementEndpointServedOnDifferentPortTest.cs b/src/Management/test/Endpoint.Test/ManagementPort/ManagementEndpointServedOnDifferentPortTest.cs
index 988a82d745..2808be91f5 100644
--- a/src/Management/test/Endpoint.Test/ManagementPort/ManagementEndpointServedOnDifferentPortTest.cs
+++ b/src/Management/test/Endpoint.Test/ManagementPort/ManagementEndpointServedOnDifferentPortTest.cs
@@ -3,6 +3,7 @@
// See the LICENSE file in the project root for more information.
using System.Net;
+using System.Runtime.InteropServices;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting.Server;
using Microsoft.AspNetCore.Hosting.Server.Features;
@@ -142,8 +143,7 @@ public async Task AspNetDefaultPort_AlternateManagementPortConfigured_Accessible
actuatorResponse.StatusCode.Should().Be(HttpStatusCode.OK);
}
- [Fact]
- [Trait("Category", "SkipOnMacOS")] // https://github.com/dotnet/aspnetcore/issues/42273
+ [FactSkippedOnPlatform(nameof(OSPlatform.OSX))]
public async Task AspNetDefaultPort_AlternateManagementPortAndSchemeConfigured_AccessibleOnSeparatePortsAndSchemes()
{
const string managementPort = "8000";
@@ -180,8 +180,7 @@ public async Task AspNetDefaultPort_AlternateManagementPortAndSchemeConfigured_A
actuatorResponse.StatusCode.Should().Be(HttpStatusCode.OK);
}
- [Fact]
- [Trait("Category", "SkipOnMacOS")] // https://github.com/dotnet/aspnetcore/issues/42273
+ [FactSkippedOnPlatform(nameof(OSPlatform.OSX))]
public async Task AspNetCustomPortsConfigured_NoManagementPortConfigured_BothAccessibleOnSamePort()
{
const string appHttpPort = "6000";
@@ -218,8 +217,7 @@ public async Task AspNetCustomPortsConfigured_NoManagementPortConfigured_BothAcc
actuatorResponse.StatusCode.Should().Be(HttpStatusCode.OK);
}
- [Fact]
- [Trait("Category", "SkipOnMacOS")] // https://github.com/dotnet/aspnetcore/issues/42273
+ [FactSkippedOnPlatform(nameof(OSPlatform.OSX))]
public async Task AspNetCustomPortsConfigured_SameManagementPortConfigured_OnlyActuatorAccessible()
{
const string appHttpPort = "6000";
@@ -257,8 +255,7 @@ public async Task AspNetCustomPortsConfigured_SameManagementPortConfigured_OnlyA
actuatorResponse.StatusCode.Should().Be(HttpStatusCode.NotFound);
}
- [Fact]
- [Trait("Category", "SkipOnMacOS")] // https://github.com/dotnet/aspnetcore/issues/42273
+ [FactSkippedOnPlatform(nameof(OSPlatform.OSX))]
public async Task AspNetCustomPortsConfigured_AlternateManagementPortConfigured_AccessibleOnSeparatePorts()
{
const string appHttpPort = "6000";
@@ -304,8 +301,7 @@ public async Task AspNetCustomPortsConfigured_AlternateManagementPortConfigured_
actuatorResponse.StatusCode.Should().Be(HttpStatusCode.OK);
}
- [Fact]
- [Trait("Category", "SkipOnMacOS")] // https://github.com/dotnet/aspnetcore/issues/42273
+ [FactSkippedOnPlatform(nameof(OSPlatform.OSX))]
public async Task AspNetCustomPortsConfigured_AlternateHttpsManagementPortConfigured_AccessibleOnSeparatePortsAndSchemes()
{
const string appHttpPort = "6000";
@@ -352,8 +348,7 @@ public async Task AspNetCustomPortsConfigured_AlternateHttpsManagementPortConfig
actuatorResponse.StatusCode.Should().Be(HttpStatusCode.OK);
}
- [Fact]
- [Trait("Category", "SkipOnMacOS")] // https://github.com/dotnet/aspnetcore/issues/42273
+ [FactSkippedOnPlatform(nameof(OSPlatform.OSX))]
public async Task AspNetCustomPortsInEnvironmentVariables_NoManagementPortConfigured_BothAccessibleOnSamePort()
{
const string appHttpPort = "6000";
@@ -388,8 +383,7 @@ public async Task AspNetCustomPortsInEnvironmentVariables_NoManagementPortConfig
actuatorResponse.StatusCode.Should().Be(HttpStatusCode.OK);
}
- [Fact]
- [Trait("Category", "SkipOnMacOS")] // https://github.com/dotnet/aspnetcore/issues/42273
+ [FactSkippedOnPlatform(nameof(OSPlatform.OSX))]
public async Task AspNetCustomPortsInEnvironmentVariables_SameManagementPortConfigured_OnlyActuatorAccessible()
{
const string appHttpPort = "6000";
@@ -429,8 +423,7 @@ public async Task AspNetCustomPortsInEnvironmentVariables_SameManagementPortConf
actuatorResponse.StatusCode.Should().Be(HttpStatusCode.NotFound);
}
- [Fact]
- [Trait("Category", "SkipOnMacOS")] // https://github.com/dotnet/aspnetcore/issues/42273
+ [FactSkippedOnPlatform(nameof(OSPlatform.OSX))]
public async Task AspNetCustomPortsInEnvironmentVariables_AlternateManagementPortConfigured_AccessibleOnSeparatePorts()
{
const string appHttpPort = "6000";
@@ -478,8 +471,7 @@ public async Task AspNetCustomPortsInEnvironmentVariables_AlternateManagementPor
actuatorResponse.StatusCode.Should().Be(HttpStatusCode.OK);
}
- [Fact]
- [Trait("Category", "SkipOnMacOS")] // https://github.com/dotnet/aspnetcore/issues/42273
+ [FactSkippedOnPlatform(nameof(OSPlatform.OSX))]
public async Task AspNetCustomPortsInEnvironmentVariables_AlternateHttpsManagementPortConfigured_AccessibleOnSeparatePortsAndSchemes()
{
const string appHttpPort = "6000";
@@ -528,8 +520,7 @@ public async Task AspNetCustomPortsInEnvironmentVariables_AlternateHttpsManageme
actuatorResponse.StatusCode.Should().Be(HttpStatusCode.OK);
}
- [Fact]
- [Trait("Category", "SkipOnMacOS")] // https://github.com/dotnet/aspnetcore/issues/42273
+ [FactSkippedOnPlatform(nameof(OSPlatform.OSX))]
public async Task AspNetCustomPortsInCode_NoManagementPortConfigured_BothAccessibleOnSamePort()
{
const string appHttpPort = "6000";
@@ -565,8 +556,7 @@ public async Task AspNetCustomPortsInCode_NoManagementPortConfigured_BothAccessi
actuatorResponse.StatusCode.Should().Be(HttpStatusCode.OK);
}
- [Fact]
- [Trait("Category", "SkipOnMacOS")] // https://github.com/dotnet/aspnetcore/issues/42273
+ [FactSkippedOnPlatform(nameof(OSPlatform.OSX))]
public async Task AspNetCustomPortsInCode_SameManagementPortConfigured_OnlyActuatorAccessible()
{
const string appHttpPort = "6000";
@@ -607,8 +597,7 @@ public async Task AspNetCustomPortsInCode_SameManagementPortConfigured_OnlyActua
actuatorResponse.StatusCode.Should().Be(HttpStatusCode.NotFound);
}
- [Fact]
- [Trait("Category", "SkipOnMacOS")] // https://github.com/dotnet/aspnetcore/issues/42273
+ [FactSkippedOnPlatform(nameof(OSPlatform.OSX))]
public async Task AspNetCustomPortsInCode_AlternateManagementPortConfigured_AccessibleOnSeparatePorts()
{
const string appHttpPort = "6000";
@@ -657,8 +646,7 @@ public async Task AspNetCustomPortsInCode_AlternateManagementPortConfigured_Acce
actuatorResponse.StatusCode.Should().Be(HttpStatusCode.OK);
}
- [Fact]
- [Trait("Category", "SkipOnMacOS")] // https://github.com/dotnet/aspnetcore/issues/42273
+ [FactSkippedOnPlatform(nameof(OSPlatform.OSX))]
public async Task AspNetCustomPortsInCode_AlternateHttpsManagementPortConfigured_AccessibleOnSeparatePortsAndSchemes()
{
const string appHttpPort = "6000";
@@ -708,8 +696,7 @@ public async Task AspNetCustomPortsInCode_AlternateHttpsManagementPortConfigured
actuatorResponse.StatusCode.Should().Be(HttpStatusCode.OK);
}
- [Fact]
- [Trait("Category", "SkipOnMacOS")] // https://github.com/dotnet/aspnetcore/issues/42273
+ [FactSkippedOnPlatform(nameof(OSPlatform.OSX))]
public async Task AspNetDynamicPortsConfigured_NoManagementPortConfigured_BothAccessibleOnSamePort()
{
var appSettings = new Dictionary
@@ -747,8 +734,7 @@ public async Task AspNetDynamicPortsConfigured_NoManagementPortConfigured_BothAc
actuatorResponse.StatusCode.Should().Be(HttpStatusCode.OK);
}
- [Fact]
- [Trait("Category", "SkipOnMacOS")] // https://github.com/dotnet/aspnetcore/issues/42273
+ [FactSkippedOnPlatform(nameof(OSPlatform.OSX))]
public async Task AspNetDynamicPortsConfigured_AlternateManagementPortConfigured_AccessibleOnSeparatePorts()
{
const string managementPort = "8000";
@@ -796,8 +782,7 @@ public async Task AspNetDynamicPortsConfigured_AlternateManagementPortConfigured
actuatorResponse.StatusCode.Should().Be(HttpStatusCode.OK);
}
- [Fact]
- [Trait("Category", "SkipOnMacOS")] // https://github.com/dotnet/aspnetcore/issues/42273
+ [FactSkippedOnPlatform(nameof(OSPlatform.OSX))]
public async Task AspNetDynamicPortsConfigured_AlternateHttpsManagementPortConfigured_AccessibleOnSeparatePortsAndSchemes()
{
const string managementPort = "8000";
diff --git a/src/Management/test/Endpoint.Test/SpringBootAdminClient/HostBuilderTest.cs b/src/Management/test/Endpoint.Test/SpringBootAdminClient/HostBuilderTest.cs
index ae623702d9..7687a578c4 100644
--- a/src/Management/test/Endpoint.Test/SpringBootAdminClient/HostBuilderTest.cs
+++ b/src/Management/test/Endpoint.Test/SpringBootAdminClient/HostBuilderTest.cs
@@ -4,6 +4,7 @@
using System.Net;
using System.Net.Http.Json;
+using System.Runtime.InteropServices;
using System.Text;
using FluentAssertions.Extensions;
using Microsoft.AspNetCore.Builder;
@@ -58,8 +59,7 @@ public async Task CanUseDynamicHttpPort()
requestApplication.ServiceUrl.Port.Should().BePositive();
}
- [Fact]
- [Trait("Category", "SkipOnMacOS")]
+ [FactSkippedOnPlatform(nameof(OSPlatform.OSX))]
public async Task CanUseDynamicHttpsPort()
{
var appSettings = new Dictionary
diff --git a/src/Security/test/Authorization.Certificate.Test/CertificateAuthorizationTest.cs b/src/Security/test/Authorization.Certificate.Test/CertificateAuthorizationTest.cs
index 5cafd5a32d..806ca83c7e 100644
--- a/src/Security/test/Authorization.Certificate.Test/CertificateAuthorizationTest.cs
+++ b/src/Security/test/Authorization.Certificate.Test/CertificateAuthorizationTest.cs
@@ -3,6 +3,7 @@
// See the LICENSE file in the project root for more information.
using System.Net;
+using System.Runtime.InteropServices;
using System.Security.Cryptography.X509Certificates;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
@@ -81,8 +82,7 @@ public async Task CertificateAuth_RejectsSpaceMismatch()
response.StatusCode.Should().Be(HttpStatusCode.Forbidden);
}
- [Fact]
- [Trait("Category", "SkipOnMacOS")]
+ [FactSkippedOnPlatform(nameof(OSPlatform.OSX))]
public async Task CertificateAuth_AcceptsSameSpace_DiegoCert()
{
var requestUri = new Uri($"https://localhost/{CertificateAuthorizationPolicies.SameSpace}");
@@ -98,8 +98,7 @@ public async Task CertificateAuth_AcceptsSameSpace_DiegoCert()
response.StatusCode.Should().Be(HttpStatusCode.OK);
}
- [Fact]
- [Trait("Category", "SkipOnMacOS")]
+ [FactSkippedOnPlatform(nameof(OSPlatform.OSX))]
public async Task CertificateAuth_AcceptsSameOrg_DiegoCert()
{
var requestUri = new Uri($"https://localhost/{CertificateAuthorizationPolicies.SameOrg}");
diff --git a/src/Security/test/DataProtection.Redis.Test/RedisDataProtectionBuilderExtensionsTest.cs b/src/Security/test/DataProtection.Redis.Test/RedisDataProtectionBuilderExtensionsTest.cs
index 814e741ea1..6814ee9fe2 100644
--- a/src/Security/test/DataProtection.Redis.Test/RedisDataProtectionBuilderExtensionsTest.cs
+++ b/src/Security/test/DataProtection.Redis.Test/RedisDataProtectionBuilderExtensionsTest.cs
@@ -20,7 +20,6 @@ namespace Steeltoe.Security.DataProtection.Redis.Test;
public sealed partial class RedisDataProtectionBuilderExtensionsTest
{
[Fact]
- [Trait("Category", "SkipOnMacOS")]
public async Task Stores_session_state_in_Redis()
{
const string appName = "SHARED-APP-NAME";
diff --git a/src/Security/test/DataProtection.Redis.Test/RedisDataProtectionBuilderExtensionsTest.net90.cs b/src/Security/test/DataProtection.Redis.Test/RedisDataProtectionBuilderExtensionsTest.other.cs
similarity index 100%
rename from src/Security/test/DataProtection.Redis.Test/RedisDataProtectionBuilderExtensionsTest.net90.cs
rename to src/Security/test/DataProtection.Redis.Test/RedisDataProtectionBuilderExtensionsTest.other.cs
diff --git a/src/Security/test/DataProtection.Redis.Test/Steeltoe.Security.DataProtection.Redis.Test.csproj b/src/Security/test/DataProtection.Redis.Test/Steeltoe.Security.DataProtection.Redis.Test.csproj
index 39e575c9a1..5de5a0bade 100644
--- a/src/Security/test/DataProtection.Redis.Test/Steeltoe.Security.DataProtection.Redis.Test.csproj
+++ b/src/Security/test/DataProtection.Redis.Test/Steeltoe.Security.DataProtection.Redis.Test.csproj
@@ -19,8 +19,8 @@
-
-
+
+
diff --git a/src/Steeltoe.All.sln b/src/Steeltoe.All.sln
index 23230b91f9..1e8a438ee2 100644
--- a/src/Steeltoe.All.sln
+++ b/src/Steeltoe.All.sln
@@ -1,6 +1,6 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.0.32112.339
+# Visual Studio Version 18
+VisualStudioVersion = 18.0.11222.15 d18.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Steeltoe.Common", "Common\src\Common\Steeltoe.Common.csproj", "{61812938-5132-4AB6-B48D-2DF4189B3E37}"
EndProject
diff --git a/src/Steeltoe.All.sln.DotSettings b/src/Steeltoe.All.sln.DotSettings
index b57f8f9c6d..4980f6d113 100644
--- a/src/Steeltoe.All.sln.DotSettings
+++ b/src/Steeltoe.All.sln.DotSettings
@@ -193,8 +193,7 @@
OnSingleLine
False
160
- <?xml version="1.0" encoding="utf-16"?>
-<Patterns xmlns="urn:schemas-jetbrains-com:member-reordering-patterns">
+ <Patterns xmlns="urn:schemas-jetbrains-com:member-reordering-patterns">
<TypePattern DisplayName="Non-reorderable types" RemoveRegions="All">
<TypePattern.Match>
<Or>
@@ -218,7 +217,7 @@
<HasMember>
<And>
<Kind Is="Method" />
- <HasAttribute Name="Xunit.FactAttribute" Inherited="True" />
+ <HasAttribute Inherited="True" Name="Xunit.FactAttribute" />
</And>
</HasMember>
</And>
@@ -230,7 +229,7 @@
</And>
</Entry.Match>
<Entry.SortBy>
- <Access Order="Private Internal Protected ProtectedInternal Public" />
+ <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" />
</Entry.SortBy>
</Entry>
<Group DisplayName="Fields">
@@ -243,7 +242,7 @@
</And>
</Entry.Match>
<Entry.SortBy>
- <Access Order="Private Internal Protected ProtectedInternal Public" />
+ <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" />
</Entry.SortBy>
</Entry>
<Entry DisplayName="Static">
@@ -257,7 +256,7 @@
</And>
</Entry.Match>
<Entry.SortBy>
- <Access Order="Private Internal Protected ProtectedInternal Public" />
+ <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" />
</Entry.SortBy>
</Entry>
<Entry DisplayName="Instance Readonly">
@@ -271,7 +270,7 @@
</And>
</Entry.Match>
<Entry.SortBy>
- <Access Order="Private Internal Protected ProtectedInternal Public" />
+ <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" />
</Entry.SortBy>
</Entry>
<Entry DisplayName="Instance">
@@ -287,7 +286,7 @@
</And>
</Entry.Match>
<Entry.SortBy>
- <Access Order="Private Internal Protected ProtectedInternal Public" />
+ <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" />
</Entry.SortBy>
</Entry>
</Group>
@@ -300,7 +299,7 @@
</And>
</Entry.Match>
<Entry.SortBy>
- <Access Order="Private Internal Protected ProtectedInternal Public" />
+ <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" />
</Entry.SortBy>
</Entry>
<Entry DisplayName="Instance">
@@ -313,7 +312,7 @@
</And>
</Entry.Match>
<Entry.SortBy>
- <Access Order="Private Internal Protected ProtectedInternal Public" />
+ <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" />
</Entry.SortBy>
</Entry>
</Group>
@@ -324,7 +323,7 @@
</And>
</Entry.Match>
<Entry.SortBy>
- <Access Order="Private Internal Protected ProtectedInternal Public" />
+ <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" />
</Entry.SortBy>
</Entry>
<Group DisplayName="Events">
@@ -336,7 +335,7 @@
</And>
</Entry.Match>
<Entry.SortBy>
- <Access Order="Private Internal Protected ProtectedInternal Public" />
+ <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" />
</Entry.SortBy>
</Entry>
<Entry DisplayName="Instance">
@@ -349,7 +348,7 @@
</And>
</Entry.Match>
<Entry.SortBy>
- <Access Order="Private Internal Protected ProtectedInternal Public" />
+ <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" />
</Entry.SortBy>
</Entry>
</Group>
@@ -364,7 +363,7 @@
</Or>
</Entry.Match>
<Entry.SortBy>
- <Kind Order="Constructor" />
+ <Kind Is="0" Order="Constructor" />
</Entry.SortBy>
</Entry>
<Entry DisplayName="Test methods" Priority="100">
@@ -374,6 +373,8 @@
<Or>
<HasAttribute Name="Xunit.FactAttribute" />
<HasAttribute Name="Xunit.TheoryAttribute" />
+ <HasAttribute Name="FactSkippedOnPlatform" />
+ <HasAttribute Name="TheorySkippedOnPlatform" />
</Or>
</And>
</Entry.Match>
@@ -395,7 +396,7 @@
</And>
</Entry.Match>
<Entry.SortBy>
- <Access Order="Private Internal Protected ProtectedInternal Public" />
+ <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" />
</Entry.SortBy>
</Entry>
<Entry DisplayName="Nested types">
@@ -412,7 +413,7 @@
</And>
</Entry.Match>
<Entry.SortBy>
- <Access Order="Private Internal Protected ProtectedInternal Public" />
+ <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" />
</Entry.SortBy>
</Entry>
<Group DisplayName="Fields">
@@ -425,7 +426,7 @@
</And>
</Entry.Match>
<Entry.SortBy>
- <Access Order="Private Internal Protected ProtectedInternal Public" />
+ <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" />
</Entry.SortBy>
</Entry>
<Entry DisplayName="Static">
@@ -439,7 +440,7 @@
</And>
</Entry.Match>
<Entry.SortBy>
- <Access Order="Private Internal Protected ProtectedInternal Public" />
+ <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" />
</Entry.SortBy>
</Entry>
<Entry DisplayName="Instance Readonly">
@@ -453,7 +454,7 @@
</And>
</Entry.Match>
<Entry.SortBy>
- <Access Order="Private Internal Protected ProtectedInternal Public" />
+ <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" />
</Entry.SortBy>
</Entry>
<Entry DisplayName="Instance">
@@ -469,7 +470,7 @@
</And>
</Entry.Match>
<Entry.SortBy>
- <Access Order="Private Internal Protected ProtectedInternal Public" />
+ <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" />
</Entry.SortBy>
</Entry>
</Group>
@@ -482,7 +483,7 @@
</And>
</Entry.Match>
<Entry.SortBy>
- <Access Order="Private Internal Protected ProtectedInternal Public" />
+ <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" />
</Entry.SortBy>
</Entry>
<Entry DisplayName="Instance">
@@ -495,7 +496,7 @@
</And>
</Entry.Match>
<Entry.SortBy>
- <Access Order="Private Internal Protected ProtectedInternal Public" />
+ <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" />
</Entry.SortBy>
</Entry>
</Group>
@@ -506,7 +507,7 @@
</And>
</Entry.Match>
<Entry.SortBy>
- <Access Order="Private Internal Protected ProtectedInternal Public" />
+ <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" />
</Entry.SortBy>
</Entry>
<Group DisplayName="Events">
@@ -518,7 +519,7 @@
</And>
</Entry.Match>
<Entry.SortBy>
- <Access Order="Private Internal Protected ProtectedInternal Public" />
+ <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" />
</Entry.SortBy>
</Entry>
<Entry DisplayName="Instance">
@@ -531,7 +532,7 @@
</And>
</Entry.Match>
<Entry.SortBy>
- <Access Order="Private Internal Protected ProtectedInternal Public" />
+ <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" />
</Entry.SortBy>
</Entry>
</Group>
@@ -554,7 +555,7 @@
</And>
</Entry.Match>
<Entry.SortBy>
- <Access />
+ <Access Is="0" />
</Entry.SortBy>
</Entry>
</Group>
@@ -575,7 +576,7 @@
</And>
</Entry.Match>
<Entry.SortBy>
- <Access Order="Private Internal Protected ProtectedInternal Public" />
+ <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" />
</Entry.SortBy>
</Entry>
<Entry DisplayName="Nested types">
diff --git a/src/Tools/test/ConfigurationSchemaGenerator.Tests/ConfigurationSchemaGenerator.Tests.csproj b/src/Tools/test/ConfigurationSchemaGenerator.Tests/ConfigurationSchemaGenerator.Tests.csproj
index c54c1fa2e4..eeb1f5cf99 100644
--- a/src/Tools/test/ConfigurationSchemaGenerator.Tests/ConfigurationSchemaGenerator.Tests.csproj
+++ b/src/Tools/test/ConfigurationSchemaGenerator.Tests/ConfigurationSchemaGenerator.Tests.csproj
@@ -1,14 +1,13 @@
net10.0;net9.0;net8.0
- false
- enable
true
true
true
+ $(NoWarn);S104;SA1636
-
+
@@ -23,12 +22,8 @@
-
-
-
-