Update memory dump dependencies - #1744
Open
bart-vmware wants to merge 2 commits into
Open
bart-vmware wants to merge 2 commits into
bart-vmware wants to merge 2 commits into
Conversation
Contributor
Summary - All Code Coverage (ubuntu-latest)
|
bart-vmware
force-pushed
the
update-memory-dumps
branch
from
September 18, 2026 10:29
2252e71 to
029fd43
Compare
|
bart-vmware
marked this pull request as ready for review
September 18, 2026 11:31
TimHess
reviewed
Sep 18, 2026
Comment on lines
+388
to
+389
| string projectPath = GetAppProjectFile(testLibraryName, targetFramework); | ||
| await File.WriteAllTextAsync(projectFilePath, projectPath); |
Member
There was a problem hiding this comment.
Suggested change
| string projectPath = GetAppProjectFile(testLibraryName, targetFramework); | |
| await File.WriteAllTextAsync(projectFilePath, projectPath); | |
| string projectFileContents = GetAppProjectFile(testLibraryName, targetFramework); | |
| await File.WriteAllTextAsync(projectFilePath, projectFileContents); |
TimHess
reviewed
Sep 18, 2026
| [MemberData(nameof(TestTargetFrameworks))] | ||
| public async Task Can_take_gcdump_from_packaged_Steeltoe_library(string targetFramework) | ||
| { | ||
| Assert.SkipWhen(!IsHighestTestHostFramework(), "Running this test only on the latest .NET SDK is sufficient."); |
Member
There was a problem hiding this comment.
Suggested change
| Assert.SkipWhen(!IsHighestTestHostFramework(), "Running this test only on the latest .NET SDK is sufficient."); | |
| Assert.SkipWhen(!IsHighestTestHostFramework(), | |
| $"This test only needs to run once, under the highest target framework ({ResolveTestTargetFrameworks().Max(...)}). " + | |
| $"Switch your run configuration's target framework if this is unexpectedly skipped."); |
Not a huge deal, but perhaps we could use a more dynamic and precise message, for cases when the IDE auto-selects an unexpected framework? For example, I ran the tests in Rider and it selected .net8 for me the first time and it took a couple minutes to identify exactly what went wrong
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Description
This PR adds skipped test coverage for verifying that the intertwined dependencies needed for taking memory and thread dumps are compatible. But running these tests takes several minutes, which is why they are skipped by default. The tests compile and run a console app that takes various dumps on all supported target frameworks, while referencing packaged Steeltoe libraries from an emphemeral NuGet feed. This verifies real end-to-end usage that mirrors a Steeltoe release pushed to a package feed.
Caution
Each time dump-related Steeltoe dependencies are bumped, these tests should be run manually to verify compatibility.
This PR also updates dump-related dependencies to the latest compatible versions, so Steeltoe users benefit from minor downstream fixes accross the board.
Why do we need such tests?
Steeltoe.Management.Endpointreferences the following NuGet packages:Microsoft.Diagnostics.NETCore.Client(used to obtain heap dumps)Microsoft.Diagnostics.Tracing.TraceEvent(used to obtain stack traces)Microsoft.Diagnostics.FastSerialization.dll**Microsoft.Diagnostics.NETCore.Clientfrom abovedotnet-gcdump(embedded, because global tools can't be referenced)Microsoft.Diagnostics.FastSerialization.dll**** It's fine when
dotnet-gcdumpis compiled against a different version ofMicrosoft.Diagnostics.FastSerialization.dll, as long as it is binary compatible. If not, aTypeLoadExceptionorMissingMethodExceptionis thrown at runtime (so when taking the dump).Quality checklist
If your change affects other repositories, such as Documentation and/or Samples, add linked PRs here.