Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Geth-Modification
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张蕾
Geth-Modification
Commits
435378e9
Commit
435378e9
authored
Apr 04, 2015
by
Taylor Gerring
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Improved test coverage for rpc types
parent
71e62eb6
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
158 additions
and
14 deletions
+158
-14
types.go
rpc/types.go
+4
-14
types_test.go
rpc/types_test.go
+154
-0
No files found.
rpc/types.go
View file @
435378e9
...
@@ -43,16 +43,11 @@ func (d *hexdata) MarshalJSON() ([]byte, error) {
...
@@ -43,16 +43,11 @@ func (d *hexdata) MarshalJSON() ([]byte, error) {
return
json
.
Marshal
(
d
.
String
())
return
json
.
Marshal
(
d
.
String
())
}
}
func
(
d
*
hexdata
)
UnmarshalJSON
(
b
[]
byte
)
(
err
error
)
{
d
.
data
=
common
.
FromHex
(
string
(
b
))
return
nil
}
func
newHexData
(
input
interface
{})
*
hexdata
{
func
newHexData
(
input
interface
{})
*
hexdata
{
d
:=
new
(
hexdata
)
d
:=
new
(
hexdata
)
if
input
==
nil
{
if
input
==
nil
{
d
.
data
=
nil
d
.
isNil
=
true
return
d
return
d
}
}
switch
input
:=
input
.
(
type
)
{
switch
input
:=
input
.
(
type
)
{
...
@@ -105,19 +100,19 @@ func newHexData(input interface{}) *hexdata {
...
@@ -105,19 +100,19 @@ func newHexData(input interface{}) *hexdata {
case
int16
:
case
int16
:
d
.
data
=
big
.
NewInt
(
int64
(
input
))
.
Bytes
()
d
.
data
=
big
.
NewInt
(
int64
(
input
))
.
Bytes
()
case
uint16
:
case
uint16
:
buff
:=
make
([]
byte
,
8
)
buff
:=
make
([]
byte
,
2
)
binary
.
BigEndian
.
PutUint16
(
buff
,
input
)
binary
.
BigEndian
.
PutUint16
(
buff
,
input
)
d
.
data
=
buff
d
.
data
=
buff
case
int32
:
case
int32
:
d
.
data
=
big
.
NewInt
(
int64
(
input
))
.
Bytes
()
d
.
data
=
big
.
NewInt
(
int64
(
input
))
.
Bytes
()
case
uint32
:
case
uint32
:
buff
:=
make
([]
byte
,
8
)
buff
:=
make
([]
byte
,
4
)
binary
.
BigEndian
.
PutUint32
(
buff
,
input
)
binary
.
BigEndian
.
PutUint32
(
buff
,
input
)
d
.
data
=
buff
d
.
data
=
buff
case
string
:
// hexstring
case
string
:
// hexstring
d
.
data
=
common
.
Big
(
input
)
.
Bytes
()
d
.
data
=
common
.
Big
(
input
)
.
Bytes
()
default
:
default
:
d
.
data
=
nil
d
.
isNil
=
true
}
}
return
d
return
d
...
@@ -147,11 +142,6 @@ func (d *hexnum) MarshalJSON() ([]byte, error) {
...
@@ -147,11 +142,6 @@ func (d *hexnum) MarshalJSON() ([]byte, error) {
return
json
.
Marshal
(
d
.
String
())
return
json
.
Marshal
(
d
.
String
())
}
}
func
(
d
*
hexnum
)
UnmarshalJSON
(
b
[]
byte
)
(
err
error
)
{
d
.
data
=
common
.
FromHex
(
string
(
b
))
return
nil
}
func
newHexNum
(
input
interface
{})
*
hexnum
{
func
newHexNum
(
input
interface
{})
*
hexnum
{
d
:=
new
(
hexnum
)
d
:=
new
(
hexnum
)
...
...
rpc/types_test.go
View file @
435378e9
package
rpc
package
rpc
import
(
import
(
"bytes"
"encoding/json"
"math/big"
"testing"
"testing"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types"
)
)
func
TestInvalidTypeError
(
t
*
testing
.
T
)
{
func
TestInvalidTypeError
(
t
*
testing
.
T
)
{
...
@@ -48,3 +54,151 @@ func TestValidationError(t *testing.T) {
...
@@ -48,3 +54,151 @@ func TestValidationError(t *testing.T) {
t
.
Error
(
err
.
Error
())
t
.
Error
(
err
.
Error
())
}
}
}
}
func
TestHexdataMarshalNil
(
t
*
testing
.
T
)
{
hd
:=
newHexData
([]
byte
{})
hd
.
isNil
=
true
v
,
_
:=
json
.
Marshal
(
hd
)
if
string
(
v
)
!=
"null"
{
t
.
Errorf
(
"Expected null, got %s"
,
v
)
}
}
func
TestHexnumMarshalNil
(
t
*
testing
.
T
)
{
hn
:=
newHexNum
([]
byte
{})
hn
.
isNil
=
true
v
,
_
:=
json
.
Marshal
(
hn
)
if
string
(
v
)
!=
"null"
{
t
.
Errorf
(
"Expected null, got %s"
,
v
)
}
}
func
TestHexdataNil
(
t
*
testing
.
T
)
{
v
:=
newHexData
(
nil
)
if
v
.
isNil
!=
true
{
t
.
Errorf
(
"Expected isNil to be true, but is %v"
,
v
.
isNil
)
}
}
func
TestHexdataPtrHash
(
t
*
testing
.
T
)
{
in
:=
common
.
Hash
{
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
,
11
,
12
,
13
,
14
,
15
,
16
,
17
,
18
,
19
,
20
,
21
,
22
,
23
,
24
,
25
,
26
,
27
,
28
,
29
,
30
,
31
}
v
:=
newHexData
(
&
in
)
if
bytes
.
Compare
(
in
.
Bytes
(),
v
.
data
)
!=
0
{
t
.
Errorf
(
"Got % x expected % x"
,
in
,
v
.
data
)
}
}
func
TestHexdataPtrHashNil
(
t
*
testing
.
T
)
{
var
in
*
common
.
Hash
in
=
nil
v
:=
newHexData
(
in
)
if
!
v
.
isNil
{
t
.
Errorf
(
"Expect isNil to be true, but is %v"
,
v
.
isNil
)
}
}
func
TestHexdataPtrAddress
(
t
*
testing
.
T
)
{
in
:=
common
.
Address
{
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
,
11
,
12
,
13
,
14
,
15
,
16
,
17
,
18
,
19
}
v
:=
newHexData
(
&
in
)
if
bytes
.
Compare
(
in
.
Bytes
(),
v
.
data
)
!=
0
{
t
.
Errorf
(
"Got % x expected % x"
,
in
,
v
.
data
)
}
}
func
TestHexdataPtrAddressNil
(
t
*
testing
.
T
)
{
var
in
*
common
.
Address
in
=
nil
v
:=
newHexData
(
in
)
if
!
v
.
isNil
{
t
.
Errorf
(
"Expect isNil to be true, but is %v"
,
v
.
isNil
)
}
}
func
TestHexdataPtrBloom
(
t
*
testing
.
T
)
{
in
:=
types
.
Bloom
{
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
,
11
,
12
,
13
,
14
,
15
,
16
,
17
,
18
,
19
}
v
:=
newHexData
(
&
in
)
if
bytes
.
Compare
(
in
.
Bytes
(),
v
.
data
)
!=
0
{
t
.
Errorf
(
"Got % x expected % x"
,
in
,
v
.
data
)
}
}
func
TestHexdataPtrBloomNil
(
t
*
testing
.
T
)
{
var
in
*
types
.
Bloom
in
=
nil
v
:=
newHexData
(
in
)
if
!
v
.
isNil
{
t
.
Errorf
(
"Expect isNil to be true, but is %v"
,
v
.
isNil
)
}
}
func
TestHexdataBigintNil
(
t
*
testing
.
T
)
{
var
in
*
big
.
Int
in
=
nil
v
:=
newHexData
(
in
)
if
!
v
.
isNil
{
t
.
Errorf
(
"Expect isNil to be true, but is %v"
,
v
.
isNil
)
}
}
func
TestHexdataUint
(
t
*
testing
.
T
)
{
var
in
=
uint
(
16
)
var
expected
=
[]
byte
{
0x10
}
v
:=
newHexData
(
in
)
if
bytes
.
Compare
(
expected
,
v
.
data
)
!=
0
{
t
.
Errorf
(
"Expected % x got % x"
,
expected
,
v
.
data
)
}
}
func
TestHexdataInt8
(
t
*
testing
.
T
)
{
var
in
=
int8
(
16
)
var
expected
=
[]
byte
{
0x10
}
v
:=
newHexData
(
in
)
if
bytes
.
Compare
(
expected
,
v
.
data
)
!=
0
{
t
.
Errorf
(
"Expected % x got % x"
,
expected
,
v
.
data
)
}
}
func
TestHexdataUint8
(
t
*
testing
.
T
)
{
var
in
=
uint8
(
16
)
var
expected
=
[]
byte
{
0x10
}
v
:=
newHexData
(
in
)
if
bytes
.
Compare
(
expected
,
v
.
data
)
!=
0
{
t
.
Errorf
(
"Expected % x got % x"
,
expected
,
v
.
data
)
}
}
func
TestHexdataInt16
(
t
*
testing
.
T
)
{
var
in
=
int16
(
16
)
var
expected
=
[]
byte
{
0x10
}
v
:=
newHexData
(
in
)
if
bytes
.
Compare
(
expected
,
v
.
data
)
!=
0
{
t
.
Errorf
(
"Expected % x got % x"
,
expected
,
v
.
data
)
}
}
func
TestHexdataUint16
(
t
*
testing
.
T
)
{
var
in
=
uint16
(
16
)
var
expected
=
[]
byte
{
0x0
,
0x10
}
v
:=
newHexData
(
in
)
if
bytes
.
Compare
(
expected
,
v
.
data
)
!=
0
{
t
.
Errorf
(
"Expected % x got % x"
,
expected
,
v
.
data
)
}
}
func
TestHexdataInt32
(
t
*
testing
.
T
)
{
var
in
=
int32
(
16
)
var
expected
=
[]
byte
{
0x10
}
v
:=
newHexData
(
in
)
if
bytes
.
Compare
(
expected
,
v
.
data
)
!=
0
{
t
.
Errorf
(
"Expected % x got % x"
,
expected
,
v
.
data
)
}
}
func
TestHexdataUint32
(
t
*
testing
.
T
)
{
var
in
=
uint32
(
16
)
var
expected
=
[]
byte
{
0x0
,
0x0
,
0x0
,
0x10
}
v
:=
newHexData
(
in
)
if
bytes
.
Compare
(
expected
,
v
.
data
)
!=
0
{
t
.
Errorf
(
"Expected % x got % x"
,
expected
,
v
.
data
)
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment