aboutsummaryrefslogtreecommitdiffstats
path: root/core/chain_manager_test.go
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2014-12-30 20:32:01 +0800
committerobscuren <geffobscura@gmail.com>2014-12-30 20:32:01 +0800
commit2f8a45cd8b2f565359f2c955145047acca2a2433 (patch)
treec801d7d1a9260a222a5c0bd9d5aa8cd82deaea9e /core/chain_manager_test.go
parentce68ac695981523aca5cf83e051597f46070547d (diff)
downloadgo-tangerine-2f8a45cd8b2f565359f2c955145047acca2a2433.tar
go-tangerine-2f8a45cd8b2f565359f2c955145047acca2a2433.tar.gz
go-tangerine-2f8a45cd8b2f565359f2c955145047acca2a2433.tar.bz2
go-tangerine-2f8a45cd8b2f565359f2c955145047acca2a2433.tar.lz
go-tangerine-2f8a45cd8b2f565359f2c955145047acca2a2433.tar.xz
go-tangerine-2f8a45cd8b2f565359f2c955145047acca2a2433.tar.zst
go-tangerine-2f8a45cd8b2f565359f2c955145047acca2a2433.zip
Fixed chain test & added new chain
Diffstat (limited to 'core/chain_manager_test.go')
-rw-r--r--core/chain_manager_test.go47
1 files changed, 33 insertions, 14 deletions
diff --git a/core/chain_manager_test.go b/core/chain_manager_test.go
index 52be8b0ea..6e85bae9a 100644
--- a/core/chain_manager_test.go
+++ b/core/chain_manager_test.go
@@ -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")
+ }
}