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
2f8a45cd
Commit
2f8a45cd
authored
Dec 30, 2014
by
obscuren
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed chain test & added new chain
parent
ce68ac69
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
37 additions
and
17 deletions
+37
-17
chain1
_data/chain1
+0
-0
chain2
_data/chain2
+0
-0
chain_manager_test.go
core/chain_manager_test.go
+33
-14
helper_test.go
core/helper_test.go
+3
-3
block.go
core/types/block.go
+1
-0
No files found.
_data/chain1
View file @
2f8a45cd
No preview for this file type
_data/chain2
View file @
2f8a45cd
No preview for this file type
core/chain_manager_test.go
View file @
2f8a45cd
...
...
@@ -2,7 +2,9 @@ package core
import
(
"fmt"
"os"
"path"
"reflect"
"runtime"
"testing"
...
...
@@ -10,6 +12,7 @@ import (
"github.com/ethereum/go-ethereum/ethdb"
"github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/event"
"github.com/ethereum/go-ethereum/rlp"
//logpkg "github.com/ethereum/go-ethereum/logger"
)
...
...
@@ -30,20 +33,19 @@ func init() {
ethutil
.
Config
.
Db
=
db
}
func
loadChain
(
fn
string
,
t
*
testing
.
T
)
types
.
Blocks
{
c1
,
err
:=
ethutil
.
ReadAllFile
(
path
.
Join
(
".."
,
"_data"
,
fn
)
)
func
loadChain
(
fn
string
,
t
*
testing
.
T
)
(
types
.
Blocks
,
error
)
{
fh
,
err
:=
os
.
OpenFile
(
path
.
Join
(
".."
,
"_data"
,
fn
),
os
.
O_RDONLY
,
os
.
ModePerm
)
if
err
!=
nil
{
fmt
.
Println
(
err
)
t
.
FailNow
()
return
nil
,
err
}
value
:=
ethutil
.
NewValueFromBytes
([]
byte
(
c1
)
)
blocks
:=
make
(
types
.
Blocks
,
value
.
Len
())
it
:=
value
.
NewIterator
()
for
it
.
Next
()
{
blocks
[
it
.
Idx
()]
=
types
.
NewBlockFromRlpValue
(
it
.
Value
())
defer
fh
.
Close
(
)
var
chain
types
.
Blocks
if
err
:=
rlp
.
Decode
(
fh
,
&
chain
);
err
!=
nil
{
return
nil
,
err
}
return
blocks
return
chain
,
nil
}
func
insertChain
(
done
chan
bool
,
chainMan
*
ChainManager
,
chain
types
.
Blocks
,
t
*
testing
.
T
)
{
...
...
@@ -56,11 +58,21 @@ func insertChain(done chan bool, chainMan *ChainManager, chain types.Blocks, t *
}
func
TestChainInsertions
(
t
*
testing
.
T
)
{
chain1
:=
loadChain
(
"chain1"
,
t
)
chain2
:=
loadChain
(
"chain2"
,
t
)
chain1
,
err
:=
loadChain
(
"chain1"
,
t
)
if
err
!=
nil
{
fmt
.
Println
(
err
)
t
.
FailNow
()
}
chain2
,
err
:=
loadChain
(
"chain2"
,
t
)
if
err
!=
nil
{
fmt
.
Println
(
err
)
t
.
FailNow
()
}
var
eventMux
event
.
TypeMux
chainMan
:=
NewChainManager
(
&
eventMux
)
txPool
:=
NewTxPool
(
chainMan
,
nil
,
&
eventMux
)
txPool
:=
NewTxPool
(
chainMan
,
&
eventMux
)
blockMan
:=
NewBlockManager
(
txPool
,
chainMan
,
&
eventMux
)
chainMan
.
SetProcessor
(
blockMan
)
...
...
@@ -73,5 +85,12 @@ func TestChainInsertions(t *testing.T) {
for
i
:=
0
;
i
<
max
;
i
++
{
<-
done
}
fmt
.
Println
(
chainMan
.
CurrentBlock
())
if
reflect
.
DeepEqual
(
chain2
[
len
(
chain2
)
-
1
],
chainMan
.
CurrentBlock
())
{
t
.
Error
(
"chain2 is canonical and shouldn't be"
)
}
if
!
reflect
.
DeepEqual
(
chain1
[
len
(
chain1
)
-
1
],
chainMan
.
CurrentBlock
())
{
t
.
Error
(
"chain1 isn't canonical and should be"
)
}
}
core/helper_test.go
View file @
2f8a45cd
...
...
@@ -9,7 +9,7 @@ import (
"github.com/ethereum/go-ethereum/ethdb"
"github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/event"
"github.com/ethereum/go-ethereum/
wire
"
"github.com/ethereum/go-ethereum/
p2p
"
)
// Implement our EthTest Manager
...
...
@@ -54,11 +54,11 @@ func (tm *TestManager) TxPool() *TxPool {
func
(
tm
*
TestManager
)
EventMux
()
*
event
.
TypeMux
{
return
tm
.
eventMux
}
func
(
tm
*
TestManager
)
Broadcast
(
msgType
wire
.
MsgType
,
data
[]
interface
{})
{
func
(
tm
*
TestManager
)
Broadcast
(
msgType
p2p
.
Msg
,
data
[]
interface
{})
{
fmt
.
Println
(
"Broadcast not implemented"
)
}
func
(
tm
*
TestManager
)
ClientIdentity
()
wire
.
ClientIdentity
{
func
(
tm
*
TestManager
)
ClientIdentity
()
p2p
.
ClientIdentity
{
return
nil
}
func
(
tm
*
TestManager
)
KeyManager
()
*
crypto
.
KeyManager
{
...
...
core/types/block.go
View file @
2f8a45cd
...
...
@@ -199,6 +199,7 @@ func (self *Block) Hash() []byte { return self.header.Hash() }
func
(
self
*
Block
)
Trie
()
*
ptrie
.
Trie
{
return
ptrie
.
New
(
self
.
header
.
Root
,
ethutil
.
Config
.
Db
)
}
func
(
self
*
Block
)
State
()
*
state
.
StateDB
{
return
state
.
New
(
self
.
Trie
())
}
func
(
self
*
Block
)
Size
()
ethutil
.
StorageSize
{
return
ethutil
.
StorageSize
(
len
(
ethutil
.
Encode
(
self
)))
}
func
(
self
*
Block
)
SetRoot
(
root
[]
byte
)
{
self
.
header
.
Root
=
root
}
// Implement block.Pow
func
(
self
*
Block
)
Difficulty
()
*
big
.
Int
{
return
self
.
header
.
Difficulty
}
...
...
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