mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-19 02:12:23 +00:00
swarm: fixed syncer tests and snapshot_sync_test
This commit is contained in:
parent
25d20af3a4
commit
965014df84
2 changed files with 30 additions and 34 deletions
|
|
@ -103,7 +103,7 @@ func TestSyncingViaRPC(t *testing.T) {
|
||||||
//run more test combinations
|
//run more test combinations
|
||||||
if *longrunning {
|
if *longrunning {
|
||||||
chnkCnt = []int{1, 8, 32, 256, 1024}
|
chnkCnt = []int{1, 8, 32, 256, 1024}
|
||||||
nodeCnt = []int{16, 32, 64, 128, 256}
|
nodeCnt = []int{32, 16}
|
||||||
} else {
|
} else {
|
||||||
//default test
|
//default test
|
||||||
chnkCnt = []int{4, 32}
|
chnkCnt = []int{4, 32}
|
||||||
|
|
@ -158,8 +158,6 @@ func testSyncing(t *testing.T, chunkCount int, nodeCount int) {
|
||||||
|
|
||||||
log.Info("Initializing test config")
|
log.Info("Initializing test config")
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
|
|
||||||
conf := &synctestConfig{}
|
conf := &synctestConfig{}
|
||||||
//map of discover ID to indexes of chunks expected at that ID
|
//map of discover ID to indexes of chunks expected at that ID
|
||||||
conf.idToChunksMap = make(map[discover.NodeID][]int)
|
conf.idToChunksMap = make(map[discover.NodeID][]int)
|
||||||
|
|
@ -173,6 +171,9 @@ func testSyncing(t *testing.T, chunkCount int, nodeCount int) {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ctx, cancelSimRun := context.WithTimeout(context.Background(), 1*time.Minute)
|
||||||
|
defer cancelSimRun()
|
||||||
|
|
||||||
result := sim.Run(ctx, func(ctx context.Context, sim *simulation.Simulation) error {
|
result := sim.Run(ctx, func(ctx context.Context, sim *simulation.Simulation) error {
|
||||||
nodeIDs := sim.UpNodeIDs()
|
nodeIDs := sim.UpNodeIDs()
|
||||||
for _, n := range nodeIDs {
|
for _, n := range nodeIDs {
|
||||||
|
|
@ -327,12 +328,8 @@ func runSyncTest(chunkCount int, nodeCount int) error {
|
||||||
})
|
})
|
||||||
defer sim.Close()
|
defer sim.Close()
|
||||||
|
|
||||||
log.Info("Initializing test config")
|
ctx, cancelSimRun := context.WithTimeout(context.Background(), 1*time.Minute)
|
||||||
_, err := sim.AddNodesAndConnectFull(3)
|
defer cancelSimRun()
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
ctx := context.Background()
|
|
||||||
|
|
||||||
conf := &synctestConfig{}
|
conf := &synctestConfig{}
|
||||||
//map of discover ID to indexes of chunks expected at that ID
|
//map of discover ID to indexes of chunks expected at that ID
|
||||||
|
|
@ -342,7 +339,7 @@ func runSyncTest(chunkCount int, nodeCount int) error {
|
||||||
//array where the generated chunk hashes will be stored
|
//array where the generated chunk hashes will be stored
|
||||||
conf.hashes = make([]storage.Address, 0)
|
conf.hashes = make([]storage.Address, 0)
|
||||||
|
|
||||||
err = sim.UploadSnapshot(fmt.Sprintf("testing/snapshot_%d.json", nodeCount))
|
err := sim.UploadSnapshot(fmt.Sprintf("testing/snapshot_%d.json", nodeCount))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -142,27 +142,6 @@ func testSyncBetweenNodes(t *testing.T, nodes, conns, chunkCount int, skipCheck
|
||||||
nodeIndex[id] = i
|
nodeIndex[id] = i
|
||||||
}
|
}
|
||||||
|
|
||||||
// collect hashes in po 1 bin for each node
|
|
||||||
hashes := make([][]storage.Address, nodes)
|
|
||||||
totalHashes := 0
|
|
||||||
hashCounts := make([]int, nodes)
|
|
||||||
for i := nodes - 1; i >= 0; i-- {
|
|
||||||
if i < nodes-1 {
|
|
||||||
hashCounts[i] = hashCounts[i+1]
|
|
||||||
}
|
|
||||||
item, ok := sim.NodeItem(nodeIDs[i], bucketKeyDB)
|
|
||||||
if !ok {
|
|
||||||
return fmt.Errorf("No DB")
|
|
||||||
}
|
|
||||||
db := item.(*storage.DBAPI)
|
|
||||||
db.Iterator(0, math.MaxUint64, po, func(addr storage.Address, index uint64) bool {
|
|
||||||
hashes[i] = append(hashes[i], addr)
|
|
||||||
totalHashes++
|
|
||||||
hashCounts[i]++
|
|
||||||
return true
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
disconnections := sim.PeerEvents(
|
disconnections := sim.PeerEvents(
|
||||||
context.Background(),
|
context.Background(),
|
||||||
sim.NodeIDs(),
|
sim.NodeIDs(),
|
||||||
|
|
@ -190,7 +169,7 @@ func testSyncBetweenNodes(t *testing.T, nodes, conns, chunkCount int, skipCheck
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if j > 0 {
|
if j > 0 || nodes == 2 {
|
||||||
item, ok := sim.NodeItem(nodeIDs[j], bucketKeyFileStore)
|
item, ok := sim.NodeItem(nodeIDs[j], bucketKeyFileStore)
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf("No filestore")
|
return fmt.Errorf("No filestore")
|
||||||
|
|
@ -211,6 +190,26 @@ func testSyncBetweenNodes(t *testing.T, nodes, conns, chunkCount int, skipCheck
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// collect hashes in po 1 bin for each node
|
||||||
|
hashes := make([][]storage.Address, nodes)
|
||||||
|
totalHashes := 0
|
||||||
|
hashCounts := make([]int, nodes)
|
||||||
|
for i := nodes - 1; i >= 0; i-- {
|
||||||
|
if i < nodes-1 {
|
||||||
|
hashCounts[i] = hashCounts[i+1]
|
||||||
|
}
|
||||||
|
item, ok := sim.NodeItem(nodeIDs[i], bucketKeyDB)
|
||||||
|
if !ok {
|
||||||
|
return fmt.Errorf("No DB")
|
||||||
|
}
|
||||||
|
db := item.(*storage.DBAPI)
|
||||||
|
db.Iterator(0, math.MaxUint64, po, func(addr storage.Address, index uint64) bool {
|
||||||
|
hashes[i] = append(hashes[i], addr)
|
||||||
|
totalHashes++
|
||||||
|
hashCounts[i]++
|
||||||
|
return true
|
||||||
|
})
|
||||||
|
}
|
||||||
var total, found int
|
var total, found int
|
||||||
for _, node := range nodeIDs {
|
for _, node := range nodeIDs {
|
||||||
i := nodeIndex[node]
|
i := nodeIndex[node]
|
||||||
|
|
@ -236,8 +235,8 @@ func testSyncBetweenNodes(t *testing.T, nodes, conns, chunkCount int, skipCheck
|
||||||
}
|
}
|
||||||
log.Debug("sync check", "node", node, "index", i, "bin", po, "found", found, "total", total)
|
log.Debug("sync check", "node", node, "index", i, "bin", po, "found", found, "total", total)
|
||||||
}
|
}
|
||||||
//TODO: This test should not get total = 0? It currently does!
|
log.Error("total", "total", total)
|
||||||
if total == found {
|
if total == found && total > 0 {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
return fmt.Errorf("Total not equallying found: total is %d", total)
|
return fmt.Errorf("Total not equallying found: total is %d", total)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue