From 0ec5ab417559ac3399a73f76219fce043dfc0ef9 Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Thu, 21 Nov 2019 15:34:28 +0100 Subject: [PATCH] common: improve GraphQL error messages (#20354) --- common/bytes_test.go | 52 +++++++++++++++++++++++--------------------- common/main_test.go | 25 --------------------- common/types.go | 9 ++++---- 3 files changed, 32 insertions(+), 54 deletions(-) delete mode 100644 common/main_test.go diff --git a/common/bytes_test.go b/common/bytes_test.go index 97dd34d159..7cf6553377 100644 --- a/common/bytes_test.go +++ b/common/bytes_test.go @@ -19,41 +19,43 @@ package common import ( "bytes" "testing" - - checker "gopkg.in/check.v1" ) -type BytesSuite struct{} - -var _ = checker.Suite(&BytesSuite{}) +func TestCopyBytes(t *testing.T) { + input := []byte{1, 2, 3, 4} -func (s *BytesSuite) TestCopyBytes(c *checker.C) { - data1 := []byte{1, 2, 3, 4} - exp1 := []byte{1, 2, 3, 4} - res1 := CopyBytes(data1) - c.Assert(res1, checker.DeepEquals, exp1) + v := CopyBytes(input) + if !bytes.Equal(v, []byte{1, 2, 3, 4}) { + t.Fatal("not equal after copy") + } + v[0] = 99 + if bytes.Equal(v, input) { + t.Fatal("result is not a copy") + } } -func (s *BytesSuite) TestLeftPadBytes(c *checker.C) { - val1 := []byte{1, 2, 3, 4} - exp1 := []byte{0, 0, 0, 0, 1, 2, 3, 4} - - res1 := LeftPadBytes(val1, 8) - res2 := LeftPadBytes(val1, 2) +func TestLeftPadBytes(t *testing.T) { + val := []byte{1, 2, 3, 4} + padded := []byte{0, 0, 0, 0, 1, 2, 3, 4} - c.Assert(res1, checker.DeepEquals, exp1) - c.Assert(res2, checker.DeepEquals, val1) + if r := LeftPadBytes(val, 8); !bytes.Equal(r, padded) { + t.Fatalf("LeftPadBytes(%v, 8) == %v", val, r) + } + if r := LeftPadBytes(val, 2); !bytes.Equal(r, val) { + t.Fatalf("LeftPadBytes(%v, 2) == %v", val, r) + } } -func (s *BytesSuite) TestRightPadBytes(c *checker.C) { +func TestRightPadBytes(t *testing.T) { val := []byte{1, 2, 3, 4} - exp := []byte{1, 2, 3, 4, 0, 0, 0, 0} - - resstd := RightPadBytes(val, 8) - resshrt := RightPadBytes(val, 2) + padded := []byte{1, 2, 3, 4, 0, 0, 0, 0} - c.Assert(resstd, checker.DeepEquals, exp) - c.Assert(resshrt, checker.DeepEquals, val) + if r := RightPadBytes(val, 8); !bytes.Equal(r, padded) { + t.Fatalf("RightPadBytes(%v, 8) == %v", val, r) + } + if r := RightPadBytes(val, 2); !bytes.Equal(r, val) { + t.Fatalf("RightPadBytes(%v, 2) == %v", val, r) + } } func TestFromHex(t *testing.T) { diff --git a/common/main_test.go b/common/main_test.go deleted file mode 100644 index 149d09928a..0000000000 --- a/common/main_test.go +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2014 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package common - -import ( - "testing" - - checker "gopkg.in/check.v1" -) - -func Test(t *testing.T) { checker.TestingT(t) } diff --git a/common/types.go b/common/types.go index 8ca51a05f8..cdcc6c20ad 100644 --- a/common/types.go +++ b/common/types.go @@ -20,6 +20,7 @@ import ( "database/sql/driver" "encoding/hex" "encoding/json" + "errors" "fmt" "math/big" "math/rand" @@ -142,7 +143,7 @@ func (h Hash) Value() (driver.Value, error) { } // ImplementsGraphQLType returns true if Hash implements the specified GraphQL type. -func (_ Hash) ImplementsGraphQLType(name string) bool { return name == "Bytes32" } +func (Hash) ImplementsGraphQLType(name string) bool { return name == "Bytes32" } // UnmarshalGraphQL unmarshals the provided GraphQL query data. func (h *Hash) UnmarshalGraphQL(input interface{}) error { @@ -151,7 +152,7 @@ func (h *Hash) UnmarshalGraphQL(input interface{}) error { case string: err = h.UnmarshalText([]byte(input)) default: - err = fmt.Errorf("Unexpected type for Bytes32: %v", input) + err = fmt.Errorf("unexpected type %T for Hash", input) } return err } @@ -290,7 +291,7 @@ func (a *Address) UnmarshalGraphQL(input interface{}) error { case string: err = a.UnmarshalText([]byte(input)) default: - err = fmt.Errorf("Unexpected type for Address: %v", input) + err = fmt.Errorf("unexpected type %T for Address", input) } return err } @@ -323,7 +324,7 @@ func NewMixedcaseAddress(addr Address) MixedcaseAddress { // NewMixedcaseAddressFromString is mainly meant for unit-testing func NewMixedcaseAddressFromString(hexaddr string) (*MixedcaseAddress, error) { if !IsHexAddress(hexaddr) { - return nil, fmt.Errorf("Invalid address") + return nil, errors.New("invalid address") } a := FromHex(hexaddr) return &MixedcaseAddress{addr: BytesToAddress(a), original: hexaddr}, nil