-
Notifications
You must be signed in to change notification settings - Fork 441
Validate sourcelinks of all source-built symbols #17477
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Validate sourcelinks of all source-built symbols #17477
Conversation
Directory.CreateDirectory(SourcelinkRoot); | ||
|
||
IList<string> failedFiles = ValidateSymbols(ExtractSymbolsPackages(GetAllSymbolsPackages()), InitializeSourcelinkTool()); | ||
string symbolsRoot = Directory.CreateDirectory(Path.Combine(SourcelinkRoot, "symbols")).FullName; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This directory should probably get cleaned up at the end of the test.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Parent directory gets deleted when we run smoke-tests the next time. But, I can see how this can delete some unnecessary test artifacts, to keep lower disk usage.
Will fix.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed in 701e39a
Validation build is failing in smoke-tests, on some platforms, and not always because of sourcelink tests. Investigating... |
Hmm, on one machine (Ubuntu 22.04 arm64) sourcelink processes are timing out after 5 seconds - it seems that the test machine is slow. I'll test if longer timeout will help. |
Still a lot of issues with a longer timeout - converting to draft until this is well understood. |
With increased timeout, there are zero failures in sourcelink tests - previously there were timeouts on Alpine. However, more than half of platform legs are failing due to either of the following, or both tests:
Investigating why this is only reproing in my validation runs. |
|
||
IList<string> failedFiles = ValidateSymbols(ExtractSymbolsPackages(GetAllSymbolsPackages()), InitializeSourcelinkTool()); | ||
string symbolsRoot = Directory.CreateDirectory(Path.Combine(SourcelinkRoot, "symbols")).FullName; | ||
Utilities.ExtractTarball( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it might be helpful to call out in a comment that the dotnet-sdk-symbols content is derived from dotnet-symbols-* therefore no validation is needed on it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed in b793194
Moved Sourcelink tests to a separate test collection - this causes Sourcelink tests to run separately and not starve other tests for CPU resources, that was previously causing them to timeout. With this change, validation build was successful. Validation build: https://dev.azure.com/dnceng/internal/_build/results?buildId=2289036&view=results |
This PR needs a change for all-symbols package name due to #17521 |
I've updated the PR with new all-symbols package name. |
{ | ||
OutputHelper.WriteLine($"Sourcelink verification failed for the following files:"); | ||
foreach (string file in failedFiles) | ||
// We are validating dotnet-symbols-*.tar.gz which contains all source-built symbols, including |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This comment needs updating with the recent rename.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed in fd4678e
/// This would make other tests run too long and fail due to timeouts. | ||
/// </summary> | ||
[CollectionDefinition(nameof(SourcelinkTestCollectionDefinition), DisableParallelization = true)] | ||
public class SourcelinkTestCollectionDefinition { } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What's the value of the Definition suffix here? In the xunit documentation they don't seem to use this pattern.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right - I did copy one of the examples of this usage. Will clean this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed in fd4678e
Fixes dotnet/source-build#3612
This completes the work around sourcelink smoke-tests. Now, we're going to validate all symbols, which adds ~25 seconds to smoke-test runs.
Local VMR build and smoke-tests were successful. Full dotnet/dotnet validation build is in progress: https://dev.azure.com/dnceng/internal/_build/results?buildId=2285260&view=results