tests, signer: remove staticcheck warnings (#20364)

pull/20381/head
Guillaume Ballet 5 years ago committed by Felix Lange
parent fdff182f11
commit 5d21667587
  1. 5
      signer/core/api.go
  2. 4
      signer/core/api_test.go
  3. 28
      signer/core/cliui.go
  4. 2
      signer/core/stdioui.go
  5. 2
      signer/core/types.go
  6. 2
      signer/core/uiapi.go
  7. 21
      signer/rules/deps/bindata.go
  8. 2
      signer/rules/rules.go
  9. 5
      signer/storage/storage.go
  10. 38
      tests/block_test_util.go
  11. 11
      tests/init_test.go
  12. 8
      tests/transaction_test_util.go

@ -269,7 +269,7 @@ type (
} }
) )
var ErrRequestDenied = errors.New("Request denied") var ErrRequestDenied = errors.New("request denied")
// NewSignerAPI creates a new API that can be used for Account management. // NewSignerAPI creates a new API that can be used for Account management.
// ksLocation specifies the directory where to store the password protected private // ksLocation specifies the directory where to store the password protected private
@ -552,6 +552,9 @@ func (api *SignerAPI) SignTransaction(ctx context.Context, args SendTxArgs, meth
} }
rlpdata, err := rlp.EncodeToBytes(signedTx) rlpdata, err := rlp.EncodeToBytes(signedTx)
if err != nil {
return nil, err
}
response := ethapi.SignTransactionResult{Raw: rlpdata, Tx: signedTx} response := ethapi.SignTransactionResult{Raw: rlpdata, Tx: signedTx}
// Finally, send the signed tx to the UI // Finally, send the signed tx to the UI

@ -71,7 +71,7 @@ func (ui *headlessUi) ApproveTx(request *core.SignTxRequest) (core.SignTxRespons
} }
func (ui *headlessUi) ApproveSignData(request *core.SignDataRequest) (core.SignDataResponse, error) { func (ui *headlessUi) ApproveSignData(request *core.SignDataRequest) (core.SignDataResponse, error) {
approved := "Y" == <-ui.approveCh approved := (<-ui.approveCh == "Y")
return core.SignDataResponse{approved}, nil return core.SignDataResponse{approved}, nil
} }
@ -91,7 +91,7 @@ func (ui *headlessUi) ApproveListing(request *core.ListRequest) (core.ListRespon
} }
func (ui *headlessUi) ApproveNewAccount(request *core.NewAccountRequest) (core.NewAccountResponse, error) { func (ui *headlessUi) ApproveNewAccount(request *core.NewAccountRequest) (core.NewAccountResponse, error) {
if "Y" == <-ui.approveCh { if <-ui.approveCh == "Y" {
return core.NewAccountResponse{true}, nil return core.NewAccountResponse{true}, nil
} }
return core.NewAccountResponse{false}, nil return core.NewAccountResponse{false}, nil

@ -58,34 +58,6 @@ func (ui *CommandlineUI) readString() string {
} }
} }
// readPassword reads a single line from stdin, trimming it from the trailing new
// line and returns it. The input will not be echoed.
func (ui *CommandlineUI) readPassword() string {
fmt.Printf("Enter password to approve:\n")
fmt.Printf("> ")
text, err := terminal.ReadPassword(int(os.Stdin.Fd()))
if err != nil {
log.Crit("Failed to read password", "err", err)
}
fmt.Println()
fmt.Println("-----------------------")
return string(text)
}
// readPassword reads a single line from stdin, trimming it from the trailing new
// line and returns it. The input will not be echoed.
func (ui *CommandlineUI) readPasswordText(inputstring string) string {
fmt.Printf("Enter %s:\n", inputstring)
fmt.Printf("> ")
text, err := terminal.ReadPassword(int(os.Stdin.Fd()))
if err != nil {
log.Crit("Failed to read password", "err", err)
}
fmt.Println("-----------------------")
return string(text)
}
func (ui *CommandlineUI) OnInputRequired(info UserInputRequest) (UserInputResponse, error) { func (ui *CommandlineUI) OnInputRequired(info UserInputRequest) (UserInputResponse, error) {
fmt.Printf("## %s\n\n%s\n", info.Title, info.Prompt) fmt.Printf("## %s\n\n%s\n", info.Title, info.Prompt)

@ -18,7 +18,6 @@ package core
import ( import (
"context" "context"
"sync"
"github.com/ethereum/go-ethereum/internal/ethapi" "github.com/ethereum/go-ethereum/internal/ethapi"
"github.com/ethereum/go-ethereum/log" "github.com/ethereum/go-ethereum/log"
@ -27,7 +26,6 @@ import (
type StdIOUI struct { type StdIOUI struct {
client rpc.Client client rpc.Client
mu sync.Mutex
} }
func NewStdIOUI() *StdIOUI { func NewStdIOUI() *StdIOUI {

@ -60,7 +60,7 @@ func (v *ValidationMessages) getWarnings() error {
} }
} }
if len(messages) > 0 { if len(messages) > 0 {
return fmt.Errorf("Validation failed: %s", strings.Join(messages, ",")) return fmt.Errorf("validation failed: %s", strings.Join(messages, ","))
} }
return nil return nil
} }

@ -173,7 +173,7 @@ func (s *UIServerAPI) Export(ctx context.Context, addr common.Address) (json.Raw
return nil, err return nil, err
} }
if wallet.URL().Scheme != keystore.KeyStoreScheme { if wallet.URL().Scheme != keystore.KeyStoreScheme {
return nil, fmt.Errorf("Account is not a keystore-account") return nil, fmt.Errorf("account is not a keystore-account")
} }
return ioutil.ReadFile(wallet.URL().Path) return ioutil.ReadFile(wallet.URL().Path)
} }

@ -1,8 +1,6 @@
// Code generated by go-bindata. // Package deps Code generated by go-bindata. (@generated) DO NOT EDIT.
// sources: // sources:
// bignumber.js // bignumber.js
// DO NOT EDIT!
package deps package deps
import ( import (
@ -20,7 +18,7 @@ import (
func bindataRead(data []byte, name string) ([]byte, error) { func bindataRead(data []byte, name string) ([]byte, error) {
gz, err := gzip.NewReader(bytes.NewBuffer(data)) gz, err := gzip.NewReader(bytes.NewBuffer(data))
if err != nil { if err != nil {
return nil, fmt.Errorf("Read %q: %v", name, err) return nil, fmt.Errorf("read %q: %v", name, err)
} }
var buf bytes.Buffer var buf bytes.Buffer
@ -28,7 +26,7 @@ func bindataRead(data []byte, name string) ([]byte, error) {
clErr := gz.Close() clErr := gz.Close()
if err != nil { if err != nil {
return nil, fmt.Errorf("Read %q: %v", name, err) return nil, fmt.Errorf("read %q: %v", name, err)
} }
if clErr != nil { if clErr != nil {
return nil, err return nil, err
@ -49,21 +47,32 @@ type bindataFileInfo struct {
modTime time.Time modTime time.Time
} }
// Name return file name
func (fi bindataFileInfo) Name() string { func (fi bindataFileInfo) Name() string {
return fi.name return fi.name
} }
// Size return file size
func (fi bindataFileInfo) Size() int64 { func (fi bindataFileInfo) Size() int64 {
return fi.size return fi.size
} }
// Mode return file mode
func (fi bindataFileInfo) Mode() os.FileMode { func (fi bindataFileInfo) Mode() os.FileMode {
return fi.mode return fi.mode
} }
// ModTime return file modify time
func (fi bindataFileInfo) ModTime() time.Time { func (fi bindataFileInfo) ModTime() time.Time {
return fi.modTime return fi.modTime
} }
// IsDir return file whether a directory
func (fi bindataFileInfo) IsDir() bool { func (fi bindataFileInfo) IsDir() bool {
return false return fi.mode&os.ModeDir != 0
} }
// Sys return file is sys mode
func (fi bindataFileInfo) Sys() interface{} { func (fi bindataFileInfo) Sys() interface{} {
return nil return nil
} }

@ -152,7 +152,7 @@ func (r *rulesetUI) checkApproval(jsfunc string, jsarg []byte, err error) (bool,
log.Info("Op rejected") log.Info("Op rejected")
return false, nil return false, nil
} }
return false, fmt.Errorf("Unknown response") return false, fmt.Errorf("unknown response")
} }
func (r *rulesetUI) ApproveTx(request *core.SignTxRequest) (core.SignTxResponse, error) { func (r *rulesetUI) ApproveTx(request *core.SignTxRequest) (core.SignTxResponse, error) {

@ -41,8 +41,7 @@ type Storage interface {
// EphemeralStorage is an in-memory storage that does // EphemeralStorage is an in-memory storage that does
// not persist values to disk. Mainly used for testing // not persist values to disk. Mainly used for testing
type EphemeralStorage struct { type EphemeralStorage struct {
data map[string]string data map[string]string
namespace string
} }
// Put stores a value by key. 0-length keys results in noop. // Put stores a value by key. 0-length keys results in noop.
@ -83,5 +82,5 @@ type NoStorage struct{}
func (s *NoStorage) Put(key, value string) {} func (s *NoStorage) Put(key, value string) {}
func (s *NoStorage) Del(key string) {} func (s *NoStorage) Del(key string) {}
func (s *NoStorage) Get(key string) (string, error) { func (s *NoStorage) Get(key string) (string, error) {
return "", errors.New("I forgot") return "", errors.New("missing key, I probably forgot")
} }

@ -179,7 +179,7 @@ func (t *BlockTest) insertBlocks(blockchain *core.BlockChain) ([]btBlock, error)
if b.BlockHeader == nil { if b.BlockHeader == nil {
continue // OK - block is supposed to be invalid, continue with next block continue // OK - block is supposed to be invalid, continue with next block
} else { } else {
return nil, fmt.Errorf("Block RLP decoding failed when expected to succeed: %v", err) return nil, fmt.Errorf("block RLP decoding failed when expected to succeed: %v", err)
} }
} }
// RLP decoding worked, try to insert into chain: // RLP decoding worked, try to insert into chain:
@ -189,16 +189,16 @@ func (t *BlockTest) insertBlocks(blockchain *core.BlockChain) ([]btBlock, error)
if b.BlockHeader == nil { if b.BlockHeader == nil {
continue // OK - block is supposed to be invalid, continue with next block continue // OK - block is supposed to be invalid, continue with next block
} else { } else {
return nil, fmt.Errorf("Block #%v insertion into chain failed: %v", blocks[i].Number(), err) return nil, fmt.Errorf("block #%v insertion into chain failed: %v", blocks[i].Number(), err)
} }
} }
if b.BlockHeader == nil { if b.BlockHeader == nil {
return nil, fmt.Errorf("Block insertion should have failed") return nil, fmt.Errorf("block insertion should have failed")
} }
// validate RLP decoding by checking all values against test file JSON // validate RLP decoding by checking all values against test file JSON
if err = validateHeader(b.BlockHeader, cb.Header()); err != nil { if err = validateHeader(b.BlockHeader, cb.Header()); err != nil {
return nil, fmt.Errorf("Deserialised block header validation failed: %v", err) return nil, fmt.Errorf("deserialised block header validation failed: %v", err)
} }
validBlocks = append(validBlocks, b) validBlocks = append(validBlocks, b)
} }
@ -207,49 +207,49 @@ func (t *BlockTest) insertBlocks(blockchain *core.BlockChain) ([]btBlock, error)
func validateHeader(h *btHeader, h2 *types.Header) error { func validateHeader(h *btHeader, h2 *types.Header) error {
if h.Bloom != h2.Bloom { if h.Bloom != h2.Bloom {
return fmt.Errorf("Bloom: want: %x have: %x", h.Bloom, h2.Bloom) return fmt.Errorf("bloom: want: %x have: %x", h.Bloom, h2.Bloom)
} }
if h.Coinbase != h2.Coinbase { if h.Coinbase != h2.Coinbase {
return fmt.Errorf("Coinbase: want: %x have: %x", h.Coinbase, h2.Coinbase) return fmt.Errorf("coinbase: want: %x have: %x", h.Coinbase, h2.Coinbase)
} }
if h.MixHash != h2.MixDigest { if h.MixHash != h2.MixDigest {
return fmt.Errorf("MixHash: want: %x have: %x", h.MixHash, h2.MixDigest) return fmt.Errorf("MixHash: want: %x have: %x", h.MixHash, h2.MixDigest)
} }
if h.Nonce != h2.Nonce { if h.Nonce != h2.Nonce {
return fmt.Errorf("Nonce: want: %x have: %x", h.Nonce, h2.Nonce) return fmt.Errorf("nonce: want: %x have: %x", h.Nonce, h2.Nonce)
} }
if h.Number.Cmp(h2.Number) != 0 { if h.Number.Cmp(h2.Number) != 0 {
return fmt.Errorf("Number: want: %v have: %v", h.Number, h2.Number) return fmt.Errorf("number: want: %v have: %v", h.Number, h2.Number)
} }
if h.ParentHash != h2.ParentHash { if h.ParentHash != h2.ParentHash {
return fmt.Errorf("Parent hash: want: %x have: %x", h.ParentHash, h2.ParentHash) return fmt.Errorf("parent hash: want: %x have: %x", h.ParentHash, h2.ParentHash)
} }
if h.ReceiptTrie != h2.ReceiptHash { if h.ReceiptTrie != h2.ReceiptHash {
return fmt.Errorf("Receipt hash: want: %x have: %x", h.ReceiptTrie, h2.ReceiptHash) return fmt.Errorf("receipt hash: want: %x have: %x", h.ReceiptTrie, h2.ReceiptHash)
} }
if h.TransactionsTrie != h2.TxHash { if h.TransactionsTrie != h2.TxHash {
return fmt.Errorf("Tx hash: want: %x have: %x", h.TransactionsTrie, h2.TxHash) return fmt.Errorf("tx hash: want: %x have: %x", h.TransactionsTrie, h2.TxHash)
} }
if h.StateRoot != h2.Root { if h.StateRoot != h2.Root {
return fmt.Errorf("State hash: want: %x have: %x", h.StateRoot, h2.Root) return fmt.Errorf("state hash: want: %x have: %x", h.StateRoot, h2.Root)
} }
if h.UncleHash != h2.UncleHash { if h.UncleHash != h2.UncleHash {
return fmt.Errorf("Uncle hash: want: %x have: %x", h.UncleHash, h2.UncleHash) return fmt.Errorf("uncle hash: want: %x have: %x", h.UncleHash, h2.UncleHash)
} }
if !bytes.Equal(h.ExtraData, h2.Extra) { if !bytes.Equal(h.ExtraData, h2.Extra) {
return fmt.Errorf("Extra data: want: %x have: %x", h.ExtraData, h2.Extra) return fmt.Errorf("extra data: want: %x have: %x", h.ExtraData, h2.Extra)
} }
if h.Difficulty.Cmp(h2.Difficulty) != 0 { if h.Difficulty.Cmp(h2.Difficulty) != 0 {
return fmt.Errorf("Difficulty: want: %v have: %v", h.Difficulty, h2.Difficulty) return fmt.Errorf("difficulty: want: %v have: %v", h.Difficulty, h2.Difficulty)
} }
if h.GasLimit != h2.GasLimit { if h.GasLimit != h2.GasLimit {
return fmt.Errorf("GasLimit: want: %d have: %d", h.GasLimit, h2.GasLimit) return fmt.Errorf("gasLimit: want: %d have: %d", h.GasLimit, h2.GasLimit)
} }
if h.GasUsed != h2.GasUsed { if h.GasUsed != h2.GasUsed {
return fmt.Errorf("GasUsed: want: %d have: %d", h.GasUsed, h2.GasUsed) return fmt.Errorf("gasUsed: want: %d have: %d", h.GasUsed, h2.GasUsed)
} }
if h.Timestamp != h2.Time { if h.Timestamp != h2.Time {
return fmt.Errorf("Timestamp: want: %v have: %v", h.Timestamp, h2.Time) return fmt.Errorf("timestamp: want: %v have: %v", h.Timestamp, h2.Time)
} }
return nil return nil
} }
@ -287,7 +287,7 @@ func (t *BlockTest) validateImportedHeaders(cm *core.BlockChain, validBlocks []b
// be part of the longest chain until last block is imported. // be part of the longest chain until last block is imported.
for b := cm.CurrentBlock(); b != nil && b.NumberU64() != 0; b = cm.GetBlockByHash(b.Header().ParentHash) { for b := cm.CurrentBlock(); b != nil && b.NumberU64() != 0; b = cm.GetBlockByHash(b.Header().ParentHash) {
if err := validateHeader(bmap[b.Hash()].BlockHeader, b.Header()); err != nil { if err := validateHeader(bmap[b.Hash()].BlockHeader, b.Header()); err != nil {
return fmt.Errorf("Imported block header validation failed: %v", err) return fmt.Errorf("imported block header validation failed: %v", err)
} }
} }
return nil return nil

@ -289,3 +289,14 @@ func runTestFunc(runTest interface{}, t *testing.T, name string, m reflect.Value
m.MapIndex(reflect.ValueOf(key)), m.MapIndex(reflect.ValueOf(key)),
}) })
} }
func TestMatcherWhitelist(t *testing.T) {
t.Parallel()
tm := new(testMatcher)
tm.whitelist("invalid*")
tm.walk(t, rlpTestDir, func(t *testing.T, name string, test *RLPTest) {
if name[:len("invalidRLPTest.json")] != "invalidRLPTest.json" {
t.Fatalf("invalid test found: %s != invalidRLPTest.json", name)
}
})
}

@ -86,25 +86,25 @@ func (tt *TransactionTest) Run(config *params.ChainConfig) error {
if testcase.fork.Sender == (common.UnprefixedAddress{}) { if testcase.fork.Sender == (common.UnprefixedAddress{}) {
if err == nil { if err == nil {
return fmt.Errorf("Expected error, got none (address %v)[%v]", sender.String(), testcase.name) return fmt.Errorf("expected error, got none (address %v)[%v]", sender.String(), testcase.name)
} }
continue continue
} }
// Should resolve the right address // Should resolve the right address
if err != nil { if err != nil {
return fmt.Errorf("Got error, expected none: %v", err) return fmt.Errorf("got error, expected none: %v", err)
} }
if sender == nil { if sender == nil {
return fmt.Errorf("sender was nil, should be %x", common.Address(testcase.fork.Sender)) return fmt.Errorf("sender was nil, should be %x", common.Address(testcase.fork.Sender))
} }
if *sender != common.Address(testcase.fork.Sender) { if *sender != common.Address(testcase.fork.Sender) {
return fmt.Errorf("Sender mismatch: got %x, want %x", sender, testcase.fork.Sender) return fmt.Errorf("sender mismatch: got %x, want %x", sender, testcase.fork.Sender)
} }
if txhash == nil { if txhash == nil {
return fmt.Errorf("txhash was nil, should be %x", common.Hash(testcase.fork.Hash)) return fmt.Errorf("txhash was nil, should be %x", common.Hash(testcase.fork.Hash))
} }
if *txhash != common.Hash(testcase.fork.Hash) { if *txhash != common.Hash(testcase.fork.Hash) {
return fmt.Errorf("Hash mismatch: got %x, want %x", *txhash, testcase.fork.Hash) return fmt.Errorf("hash mismatch: got %x, want %x", *txhash, testcase.fork.Hash)
} }
} }
return nil return nil

Loading…
Cancel
Save