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
200f6653
Commit
200f6653
authored
Mar 02, 2015
by
obscuren
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
updated tests
parent
0823254c
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
30 additions
and
18 deletions
+30
-18
gh_test.go
tests/vm/gh_test.go
+25
-13
vm.go
vm/vm.go
+5
-5
No files found.
tests/vm/gh_test.go
View file @
200f6653
...
...
@@ -79,10 +79,12 @@ func RunVmTest(p string, t *testing.T) {
helper
.
CreateFileTests
(
t
,
p
,
&
tests
)
for
name
,
test
:=
range
tests
{
helper
.
Logger
.
SetLogLevel
(
4
)
if
name
!=
"TransactionNonceCheck2"
{
continue
}
/*
helper.Logger.SetLogLevel(4)
if name != "log1_nonEmptyMem_logMemSize1_logMemStart31" {
continue
}
*/
db
,
_
:=
ethdb
.
NewMemDatabase
()
statedb
:=
state
.
New
(
nil
,
db
)
for
addr
,
account
:=
range
test
.
Pre
{
...
...
@@ -159,10 +161,14 @@ func RunVmTest(p string, t *testing.T) {
}
if
len
(
test
.
Logs
)
>
0
{
for
i
,
log
:=
range
test
.
Logs
{
genBloom
:=
ethutil
.
LeftPadBytes
(
types
.
LogsBloom
(
state
.
Logs
{
logs
[
i
]})
.
Bytes
(),
64
)
if
!
bytes
.
Equal
(
genBloom
,
ethutil
.
Hex2Bytes
(
log
.
BloomF
))
{
t
.
Errorf
(
"bloom mismatch"
)
if
len
(
test
.
Logs
)
!=
len
(
logs
)
{
t
.
Errorf
(
"log length mismatch. Expected %d, got %d"
,
len
(
test
.
Logs
),
len
(
logs
))
}
else
{
for
i
,
log
:=
range
test
.
Logs
{
genBloom
:=
ethutil
.
LeftPadBytes
(
types
.
LogsBloom
(
state
.
Logs
{
logs
[
i
]})
.
Bytes
(),
64
)
if
!
bytes
.
Equal
(
genBloom
,
ethutil
.
Hex2Bytes
(
log
.
BloomF
))
{
t
.
Errorf
(
"bloom mismatch"
)
}
}
}
}
...
...
@@ -176,11 +182,6 @@ func TestVMArithmetic(t *testing.T) {
RunVmTest
(
fn
,
t
)
}
func
TestSystemOperations
(
t
*
testing
.
T
)
{
const
fn
=
"../files/VMTests/vmSystemOperationsTest.json"
RunVmTest
(
fn
,
t
)
}
func
TestBitwiseLogicOperation
(
t
*
testing
.
T
)
{
const
fn
=
"../files/VMTests/vmBitwiseLogicOperationTest.json"
RunVmTest
(
fn
,
t
)
...
...
@@ -201,6 +202,17 @@ func TestFlowOperation(t *testing.T) {
RunVmTest
(
fn
,
t
)
}
func
TestLogTest
(
t
*
testing
.
T
)
{
const
fn
=
"../files/VMTests/vmLogTest.json"
RunVmTest
(
fn
,
t
)
}
func
TestPerformance
(
t
*
testing
.
T
)
{
t
.
Skip
()
const
fn
=
"../files/VMTests/vmPerformance.json"
RunVmTest
(
fn
,
t
)
}
func
TestPushDupSwap
(
t
*
testing
.
T
)
{
const
fn
=
"../files/VMTests/vmPushDupSwapTest.json"
RunVmTest
(
fn
,
t
)
...
...
vm/vm.go
View file @
200f6653
...
...
@@ -34,7 +34,7 @@ func New(env Environment) *Vm {
lt
=
LogTyDiff
}
return
&
Vm
{
debug
:
fals
e
,
env
:
env
,
logTy
:
lt
,
Recoverable
:
true
}
return
&
Vm
{
debug
:
tru
e
,
env
:
env
,
logTy
:
lt
,
Recoverable
:
true
}
}
func
(
self
*
Vm
)
Run
(
me
,
caller
ContextRef
,
code
[]
byte
,
value
,
gas
,
price
*
big
.
Int
,
callData
[]
byte
)
(
ret
[]
byte
,
err
error
)
{
...
...
@@ -56,8 +56,6 @@ func (self *Vm) Run(me, caller ContextRef, code []byte, value, gas, price *big.I
err
=
fmt
.
Errorf
(
"%v"
,
r
)
}
else
{
fmt
.
Println
(
me
.
(
*
state
.
StateObject
)
.
Storage
())
}
}()
}
...
...
@@ -668,7 +666,6 @@ func (self *Vm) Run(me, caller ContextRef, code []byte, value, gas, price *big.I
}
addr
=
ref
.
Address
()
fmt
.
Printf
(
"CREATE %X
\n
"
,
addr
)
stack
.
Push
(
ethutil
.
BigD
(
addr
))
}
...
...
@@ -860,6 +857,8 @@ func (self *Vm) calculateGasAndSize(context *Context, caller ContextRef, op OpCo
// Stack Check, memory resize & gas phase
switch
op
{
case
PUSH1
,
PUSH2
,
PUSH3
,
PUSH4
,
PUSH5
,
PUSH6
,
PUSH7
,
PUSH8
,
PUSH9
,
PUSH10
,
PUSH11
,
PUSH12
,
PUSH13
,
PUSH14
,
PUSH15
,
PUSH16
,
PUSH17
,
PUSH18
,
PUSH19
,
PUSH20
,
PUSH21
,
PUSH22
,
PUSH23
,
PUSH24
,
PUSH25
,
PUSH26
,
PUSH27
,
PUSH28
,
PUSH29
,
PUSH30
,
PUSH31
,
PUSH32
:
gas
.
Set
(
GasFastestStep
)
case
SWAP1
,
SWAP2
,
SWAP3
,
SWAP4
,
SWAP5
,
SWAP6
,
SWAP7
,
SWAP8
,
SWAP9
,
SWAP10
,
SWAP11
,
SWAP12
,
SWAP13
,
SWAP14
,
SWAP15
,
SWAP16
:
n
:=
int
(
op
-
SWAP1
+
2
)
stack
.
require
(
n
)
...
...
@@ -897,11 +896,12 @@ func (self *Vm) calculateGasAndSize(context *Context, caller ContextRef, op OpCo
g
=
GasStorageMod
}
gas
.
Set
(
g
)
newMemSize
=
calcMemSize
(
stack
.
Peek
(),
u256
(
32
))
case
MLOAD
:
newMemSize
=
calcMemSize
(
stack
.
Peek
(),
u256
(
32
))
case
MSTORE8
:
newMemSize
=
calcMemSize
(
stack
.
Peek
(),
u256
(
1
))
case
MSTORE
:
newMemSize
=
calcMemSize
(
stack
.
Peek
(),
u256
(
32
))
case
RETURN
:
newMemSize
=
calcMemSize
(
stack
.
Peek
(),
stack
.
data
[
stack
.
Len
()
-
2
])
case
SHA3
:
...
...
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