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
Rewrite Get-FileHash to use static HashData methods #18471
Conversation
|
Tests still pass, PR is ready. |
|
Please resolve CodeFactor issues regarding Xml documentation headers. |
src/Microsoft.PowerShell.Commands.Utility/commands/utility/GetHash.cs
Outdated
Show resolved
Hide resolved
| /// <returns>The computed hash data</returns> | ||
| private byte[] ComputeHash(Stream stream) | ||
| { | ||
| switch (Algorithm) |
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.
Use C# 8.0 switch expression.
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 have kept the old switch expression for now, because in the C# 8 switch expression I can't use Assert.Debug() and return SHA256 hash as default.
src/Microsoft.PowerShell.Commands.Utility/commands/utility/GetHash.cs
Outdated
Show resolved
Hide resolved
… remove AlgorithmTypeNotSupported
|
@PaulHigin and @TravisEz13 please review, thanks! |
|
This pull request has been automatically marked as Review Needed because it has been there has not been any activity for 7 days. |
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.
LGTM
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.
Approved, with a suggested code quality change.
| case HashAlgorithmNames.MD5: | ||
| return MD5.HashData(stream); | ||
| } | ||
| Debug.Assert(false, "invalid hash algorithm"); |
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.
nit: use Debug.Fail
src/Microsoft.PowerShell.Commands.Utility/commands/utility/GetHash.cs
Outdated
Show resolved
Hide resolved
|
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? |
|
Handy links: |
PR Summary
The HashData(Stream s) methods have been added in .NET 7
The static HashData methods are more optimized and preferred over the ComputeHash methods.
Still need to test if anything broke, therefore WIPPR Context
PR Checklist
.h,.cpp,.cs,.ps1and.psm1files have the correct copyright headerWIP:or[ WIP ]to the beginning of the title (theWIPbot will keep its status check atPendingwhile the prefix is present) and remove the prefix when the PR is ready.(which runs in a different PS Host).