-
Notifications
You must be signed in to change notification settings - Fork 21k
crypto: improve error messages in LoadECDSA #20718
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
Merged
Merged
Changes from 6 commits
Commits
Show all changes
12 commits
Select commit
Hold shift + click to select a range
f39afd5
Specific error message when the private key to be imported is too short
adamschmideg 0a22d23
Use fmt.Errorf
adamschmideg 745f0fd
goimports fix
adamschmideg ae3c77b
Check file size before reading it into memory
adamschmideg a66d88e
Improve wording of error message
adamschmideg fe0bc49
Allow newline after account
adamschmideg 3db06e4
More idiomatic way to check for trailing whitespace
adamschmideg 969c671
Use canonical table-driven test format
adamschmideg 3d3d5bb
Formatting, oh my
adamschmideg b4916e6
Use string literals, no magic
adamschmideg b68c0f5
crypto: improve LoadECDSA
fjl 0d574ee
cmd/geth: simplify TestAccountImport
fjl File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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.
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.
The canonical way to define table driven tests would be:
Please also define a separate error constant if you want to check for it. Using a string is suuuuper brittle. Alternatively wait until Go 1.14.1 is out so we can deprecate 1.11 and 1.12 and then use the fancy new error constructs.
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.
Also please don't use regexps for error or success checks. Since you know the exact input, you also know the exact output. Using regexps would just hide potential errors.
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'm still using the
bytes64 + "\n"
format because I find it more understandable than a long string with a\n
at the end. I can change that, too.Since I compare the string returned by the command line, I don't know how to use an error here. The underlying
TestCmd
doesn't expose the error returned by the comparison, it simply callst.Fatal()
if there's a mismatch.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.
Please change it, this is a short test suite, but when things get bigger (e.g. hundreds of lines of test cases), you don't want to keep jumping back and forth to find what variables in there mean.
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.
Ok, replaced with string literals