Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
whqwjb
go-ethereum
提交
a20d3fc3
G
go-ethereum
项目概览
whqwjb
/
go-ethereum
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
go-ethereum
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
a20d3fc3
编写于
4月 21, 2016
作者:
P
Paulo L F Casaretto
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
common: Add tests for Address#UnmarshalJSON
上级
18580e15
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
37 addition
and
3 deletion
+37
-3
common/types.go
common/types.go
+1
-1
common/types_test.go
common/types_test.go
+36
-2
未找到文件。
common/types.go
浏览文件 @
a20d3fc3
...
...
@@ -167,7 +167,7 @@ func (a Address) MarshalJSON() ([]byte, error) {
// Parse address from raw json data
func
(
a
*
Address
)
UnmarshalJSON
(
data
[]
byte
)
error
{
if
len
(
data
)
>
2
&&
data
[
0
]
==
'"'
&&
data
[
len
(
data
)
-
1
]
==
'"'
{
data
=
data
[
:
len
(
data
)
-
1
][
1
:
]
data
=
data
[
1
:
len
(
data
)
-
1
]
}
if
len
(
data
)
>
2
&&
data
[
0
]
==
'0'
&&
data
[
1
]
==
'x'
{
...
...
common/types_test.go
浏览文件 @
a20d3fc3
...
...
@@ -16,7 +16,10 @@
package
common
import
"testing"
import
(
"math/big"
"testing"
)
func
TestBytesConversion
(
t
*
testing
.
T
)
{
bytes
:=
[]
byte
{
5
}
...
...
@@ -47,7 +50,38 @@ func TestHashJsonValidation(t *testing.T) {
}
for
i
,
test
:=
range
tests
{
if
err
:=
h
.
UnmarshalJSON
(
append
([]
byte
(
test
.
Prefix
),
make
([]
byte
,
test
.
Size
)
...
));
err
!=
test
.
Error
{
t
.
Error
(
i
,
"expected"
,
test
.
Error
,
"got"
,
err
)
t
.
Errorf
(
"test #%d: error mismatch: have %v, want %v"
,
i
,
err
,
test
.
Error
)
}
}
}
func
TestAddressUnmarshalJSON
(
t
*
testing
.
T
)
{
var
a
Address
var
tests
=
[]
struct
{
Input
string
ShouldErr
bool
Output
*
big
.
Int
}{
{
""
,
true
,
nil
},
{
`""`
,
true
,
nil
},
{
`"0x"`
,
true
,
nil
},
{
`"0x00"`
,
true
,
nil
},
{
`"0xG000000000000000000000000000000000000000"`
,
true
,
nil
},
{
`"0x0000000000000000000000000000000000000000"`
,
false
,
big
.
NewInt
(
0
)},
{
`"0x0000000000000000000000000000000000000010"`
,
false
,
big
.
NewInt
(
16
)},
}
for
i
,
test
:=
range
tests
{
err
:=
a
.
UnmarshalJSON
([]
byte
(
test
.
Input
))
if
err
!=
nil
&&
!
test
.
ShouldErr
{
t
.
Errorf
(
"test #%d: unexpected error: %v"
,
i
,
err
)
}
if
err
==
nil
{
if
test
.
ShouldErr
{
t
.
Errorf
(
"test #%d: expected error, got none"
,
i
)
}
if
a
.
Big
()
.
Cmp
(
test
.
Output
)
!=
0
{
t
.
Errorf
(
"test #%d: address mismatch: have %v, want %v"
,
i
,
a
.
Big
(),
test
.
Output
)
}
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录