mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-21 04:06:44 +00:00
dpa_test fails, lots of fmt.Printf debugs inside.
This commit is contained in:
parent
dca79894d1
commit
85b1cf0a81
4 changed files with 83 additions and 6 deletions
|
|
@ -7,13 +7,17 @@ import (
|
||||||
"github.com/ethereum/go-ethereum/bzz/test"
|
"github.com/ethereum/go-ethereum/bzz/test"
|
||||||
)
|
)
|
||||||
|
|
||||||
func testDbStore(l int64, branches int64, t *testing.T) {
|
func initDbStore() (m *dbStore) {
|
||||||
|
|
||||||
os.RemoveAll("/tmp/bzz")
|
os.RemoveAll("/tmp/bzz")
|
||||||
m, err := newDbStore("/tmp/bzz")
|
m, err := newDbStore("/tmp/bzz")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic("no dbStore")
|
panic("no dbStore")
|
||||||
}
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func testDbStore(l int64, branches int64, t *testing.T) {
|
||||||
|
m := initDbStore()
|
||||||
defer m.close()
|
defer m.close()
|
||||||
testStore(m, l, branches, t)
|
testStore(m, l, branches, t)
|
||||||
}
|
}
|
||||||
|
|
@ -41,3 +45,14 @@ func TestDbStore2_100(t *testing.T) {
|
||||||
test.LogInit()
|
test.LogInit()
|
||||||
testDbStore(100, 2, t)
|
testDbStore(100, 2, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestDbStoreNotFound(t *testing.T) {
|
||||||
|
test.LogInit()
|
||||||
|
m := initDbStore()
|
||||||
|
defer m.close()
|
||||||
|
zeroKey := make([]byte, 32)
|
||||||
|
_, err := m.Get(zeroKey)
|
||||||
|
if err != notFound {
|
||||||
|
t.Errorf("Expected notFound, got %v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
12
bzz/dpa.go
12
bzz/dpa.go
|
|
@ -4,6 +4,7 @@ import (
|
||||||
"errors"
|
"errors"
|
||||||
"sync"
|
"sync"
|
||||||
// "time"
|
// "time"
|
||||||
|
"fmt"
|
||||||
|
|
||||||
ethlogger "github.com/ethereum/go-ethereum/logger"
|
ethlogger "github.com/ethereum/go-ethereum/logger"
|
||||||
// "github.com/ethereum/go-ethereum/rlp"
|
// "github.com/ethereum/go-ethereum/rlp"
|
||||||
|
|
@ -69,7 +70,7 @@ type ChunkStore interface {
|
||||||
Get(Key) (*Chunk, error)
|
Get(Key) (*Chunk, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *DPA) Retrieve(key Key) (data LazySectionReader, err error) {
|
func (self *DPA) Retrieve(key Key) (data LazySectionReader) {
|
||||||
|
|
||||||
reader, errC := self.Chunker.Join(key, self.retrieveC)
|
reader, errC := self.Chunker.Join(key, self.retrieveC)
|
||||||
data = reader
|
data = reader
|
||||||
|
|
@ -171,9 +172,14 @@ func (self *DPA) retrieveLoop() {
|
||||||
func (self *DPA) storeLoop() {
|
func (self *DPA) storeLoop() {
|
||||||
self.storeC = make(chan *Chunk)
|
self.storeC = make(chan *Chunk)
|
||||||
go func() {
|
go func() {
|
||||||
|
fmt.Printf("StoreLoop started.\n")
|
||||||
STORE:
|
STORE:
|
||||||
for chunk := range self.storeC {
|
for {
|
||||||
go self.ChunkStore.Put(chunk)
|
chunk := <-self.storeC
|
||||||
|
fmt.Printf("StoreLoop reader size %d\n", chunk.Reader.Size())
|
||||||
|
chunk.Data = make([]byte, chunk.Reader.Size())
|
||||||
|
chunk.Reader.ReadAt(chunk.Data, 0)
|
||||||
|
self.ChunkStore.Put(chunk)
|
||||||
select {
|
select {
|
||||||
case <-self.quitC:
|
case <-self.quitC:
|
||||||
break STORE
|
break STORE
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,51 @@
|
||||||
package bzz
|
package bzz
|
||||||
|
|
||||||
import (
|
import (
|
||||||
// "github.com/ethereum/go-ethereum/bzz/test"
|
//"bytes"
|
||||||
|
"fmt"
|
||||||
|
"github.com/ethereum/go-ethereum/bzz/test"
|
||||||
|
"os"
|
||||||
|
"testing"
|
||||||
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func TestDPA(t *testing.T) {
|
||||||
|
test.LogInit()
|
||||||
|
os.RemoveAll("/tmp/bzz")
|
||||||
|
dbStore, err := newDbStore("/tmp/bzz")
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("DB error: %v", err)
|
||||||
|
}
|
||||||
|
// memStore := newMemStore(dbStore)
|
||||||
|
// localStore := &localStore{
|
||||||
|
// memStore,
|
||||||
|
// dbStore,
|
||||||
|
// }
|
||||||
|
chunker := &TreeChunker{}
|
||||||
|
chunker.Init()
|
||||||
|
dpa := &DPA{
|
||||||
|
Chunker: chunker,
|
||||||
|
ChunkStore: dbStore,
|
||||||
|
}
|
||||||
|
dpa.Start()
|
||||||
|
reader, slice := testDataReader(0x100)
|
||||||
|
fmt.Printf("Chunk size: %d.", len(slice))
|
||||||
|
//key, err := dpa.Store(reader)
|
||||||
|
_, err = dpa.Store(reader)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("Store error: %v", err)
|
||||||
|
}
|
||||||
|
// resultReader := dpa.Retrieve(key)
|
||||||
|
// resultSlice := make([]byte, len(slice))
|
||||||
|
// n, err := resultReader.Read(resultSlice)
|
||||||
|
// if err != nil {
|
||||||
|
// t.Errorf("Retrieve error: %v", err)
|
||||||
|
// }
|
||||||
|
// if n != len(slice) {
|
||||||
|
// t.Errorf("Slice size error got %d, expected %d.", n, len(slice))
|
||||||
|
// }
|
||||||
|
// if !bytes.Equal(slice, resultSlice) {
|
||||||
|
// t.Errorf("Comparison error.")
|
||||||
|
// }
|
||||||
|
time.Sleep(time.Second)
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -34,3 +34,13 @@ func TestMemStore2_100(t *testing.T) {
|
||||||
test.LogInit()
|
test.LogInit()
|
||||||
testMemStore(100, 2, t)
|
testMemStore(100, 2, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestMemStoreNotFound(t *testing.T) {
|
||||||
|
test.LogInit()
|
||||||
|
m := newMemStore(nil)
|
||||||
|
zeroKey := make([]byte, 32)
|
||||||
|
_, err := m.Get(zeroKey)
|
||||||
|
if err != notFound {
|
||||||
|
t.Errorf("Expected notFound, got %v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue