Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
whqwjb
go-ethereum
提交
80592f24
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,发现更多精彩内容 >>
提交
80592f24
编写于
3月 12, 2015
作者:
O
obscuren
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
more obvious failure for ethtest
上级
3a88da57
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
9 addition
and
10 deletion
+9
-10
cmd/ethtest/main.go
cmd/ethtest/main.go
+5
-5
core/execution.go
core/execution.go
+1
-4
vm/environment.go
vm/environment.go
+2
-0
vm/vm.go
vm/vm.go
+1
-1
未找到文件。
cmd/ethtest/main.go
浏览文件 @
80592f24
...
...
@@ -136,7 +136,7 @@ func RunVmTest(r io.Reader) (failed int) {
rexp
:=
helper
.
FromHex
(
test
.
Out
)
if
bytes
.
Compare
(
rexp
,
ret
)
!=
0
{
fmt
.
Printf
(
"%s's return failed. Expected %x, got %x
\n
"
,
name
,
rexp
,
ret
)
fmt
.
Printf
(
"
FAIL:
%s's return failed. Expected %x, got %x
\n
"
,
name
,
rexp
,
ret
)
failed
=
1
}
...
...
@@ -148,7 +148,7 @@ func RunVmTest(r io.Reader) (failed int) {
if
len
(
test
.
Exec
)
==
0
{
if
obj
.
Balance
()
.
Cmp
(
ethutil
.
Big
(
account
.
Balance
))
!=
0
{
fmt
.
Printf
(
"%s's : (%x) balance failed. Expected %v, got %v => %v
\n
"
,
name
,
obj
.
Address
()[
:
4
],
account
.
Balance
,
obj
.
Balance
(),
new
(
big
.
Int
)
.
Sub
(
ethutil
.
Big
(
account
.
Balance
),
obj
.
Balance
()))
fmt
.
Printf
(
"
FAIL:
%s's : (%x) balance failed. Expected %v, got %v => %v
\n
"
,
name
,
obj
.
Address
()[
:
4
],
account
.
Balance
,
obj
.
Balance
(),
new
(
big
.
Int
)
.
Sub
(
ethutil
.
Big
(
account
.
Balance
),
obj
.
Balance
()))
failed
=
1
}
}
...
...
@@ -158,20 +158,20 @@ func RunVmTest(r io.Reader) (failed int) {
vexp
:=
helper
.
FromHex
(
value
)
if
bytes
.
Compare
(
v
,
vexp
)
!=
0
{
fmt
.
Printf
(
"%s's : (%x: %s) storage failed. Expected %x, got %x (%v %v)
\n
"
,
name
,
obj
.
Address
()[
0
:
4
],
addr
,
vexp
,
v
,
ethutil
.
BigD
(
vexp
),
ethutil
.
BigD
(
v
))
fmt
.
Printf
(
"
FAIL:
%s's : (%x: %s) storage failed. Expected %x, got %x (%v %v)
\n
"
,
name
,
obj
.
Address
()[
0
:
4
],
addr
,
vexp
,
v
,
ethutil
.
BigD
(
vexp
),
ethutil
.
BigD
(
v
))
failed
=
1
}
}
}
if
!
bytes
.
Equal
(
ethutil
.
Hex2Bytes
(
test
.
PostStateRoot
),
statedb
.
Root
())
{
fmt
.
Printf
(
"%s's : Post state root error. Expected %s, got %x
\n
"
,
name
,
test
.
PostStateRoot
,
statedb
.
Root
())
fmt
.
Printf
(
"
FAIL:
%s's : Post state root error. Expected %s, got %x
\n
"
,
name
,
test
.
PostStateRoot
,
statedb
.
Root
())
failed
=
1
}
if
len
(
test
.
Logs
)
>
0
{
if
len
(
test
.
Logs
)
!=
len
(
logs
)
{
fmt
.
Printf
(
"log length mismatch. Expected %d, got %d"
,
len
(
test
.
Logs
),
len
(
logs
))
fmt
.
Printf
(
"
FAIL:
log length mismatch. Expected %d, got %d"
,
len
(
test
.
Logs
),
len
(
logs
))
failed
=
1
}
else
{
/*
...
...
core/execution.go
浏览文件 @
80592f24
...
...
@@ -25,10 +25,7 @@ func (self *Execution) Addr() []byte {
func
(
self
*
Execution
)
Call
(
codeAddr
[]
byte
,
caller
vm
.
ContextRef
)
([]
byte
,
error
)
{
// Retrieve the executing code
var
code
[]
byte
if
self
.
env
.
State
()
.
GetStateObject
(
codeAddr
)
!=
nil
{
code
=
self
.
env
.
State
()
.
GetCode
(
codeAddr
)
}
code
:=
self
.
env
.
State
()
.
GetCode
(
codeAddr
)
return
self
.
exec
(
code
,
codeAddr
,
caller
)
}
...
...
vm/environment.go
浏览文件 @
80592f24
...
...
@@ -36,10 +36,12 @@ type Account interface {
SubBalance
(
amount
*
big
.
Int
)
AddBalance
(
amount
*
big
.
Int
)
Balance
()
*
big
.
Int
Address
()
[]
byte
}
// generic transfer method
func
Transfer
(
from
,
to
Account
,
amount
*
big
.
Int
)
error
{
//fmt.Printf(":::%x::: %v < %v\n", from.Address(), from.Balance(), amount)
if
from
.
Balance
()
.
Cmp
(
amount
)
<
0
{
return
errors
.
New
(
"Insufficient balance in account"
)
}
...
...
vm/vm.go
浏览文件 @
80592f24
...
...
@@ -380,7 +380,7 @@ func (self *Vm) Run(me, caller ContextRef, code []byte, value, gas, price *big.I
// 0x20 range
case
SHA3
:
size
,
offset
:=
stack
.
pop
(),
stack
.
pop
()
offset
,
size
:=
stack
.
pop
(),
stack
.
pop
()
data
:=
crypto
.
Sha3
(
mem
.
Get
(
offset
.
Int64
(),
size
.
Int64
()))
stack
.
push
(
ethutil
.
BigD
(
data
))
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录