10 dbm "github.com/vapor/database/leveldb"
11 "github.com/vapor/test/mock"
14 func TestBlockProcess(t *testing.T) {
15 tmp, err := ioutil.TempDir(".", "")
19 defer os.RemoveAll(tmp)
21 testDB := dbm.NewDB("testdb", "leveldb", tmp)
24 s := newStorage(testDB)
25 mockChain := mock.NewChain(nil)
27 blocks := mockBlocks(nil, uint64(blockNum))
28 for i := 0; i <= blockNum/2; i++ {
29 mockChain.SetBlockByHeight(uint64(i), blocks[i])
30 mockChain.SetBestBlockHeader(&blocks[i].BlockHeader)
33 if err := s.writeBlocks("testPeer", blocks); err != nil {
37 bp := newBlockProcessor(mockChain, s, nil)
38 downloadNotifyCh := make(chan struct{}, 1)
39 ProcessStopCh := make(chan struct{})
42 time.Sleep(1 * time.Second)
43 close(downloadNotifyCh)
46 bp.process(downloadNotifyCh, ProcessStopCh, uint64(blockNum/2), &wg)
47 if bp.chain.BestBlockHeight() != uint64(blockNum) {
48 t.Fatalf("TestBlockProcess fail: got %d want %d", bp.chain.BestBlockHeight(), blockNum)