|
|
@@ -197,10 +197,7 @@ func TestTaking(t *testing.T) {
|
|
|
if err != nil {
|
|
|
t.Error("download error", err)
|
|
|
}
|
|
|
- bs, err := tester.downloader.TakeBlocks()
|
|
|
- if err != nil {
|
|
|
- t.Fatalf("failed to take blocks: %v", err)
|
|
|
- }
|
|
|
+ bs := tester.downloader.TakeBlocks()
|
|
|
if len(bs) != targetBlocks {
|
|
|
t.Error("retrieved block mismatch: have %v, want %v", len(bs), targetBlocks)
|
|
|
}
|
|
|
@@ -280,8 +277,7 @@ func TestThrottling(t *testing.T) {
|
|
|
time.Sleep(time.Millisecond)
|
|
|
}
|
|
|
// Take a batch of blocks and accumulate
|
|
|
- blocks, _ := tester.downloader.TakeBlocks()
|
|
|
- took = append(took, blocks...)
|
|
|
+ took = append(took, tester.downloader.TakeBlocks()...)
|
|
|
}
|
|
|
done <- struct{}{}
|
|
|
}()
|
|
|
@@ -315,14 +311,13 @@ func TestNonExistingParentAttack(t *testing.T) {
|
|
|
if err := tester.sync("attack", hashes[0]); err != nil {
|
|
|
t.Fatalf("failed to synchronise blocks: %v", err)
|
|
|
}
|
|
|
- bs, err := tester.downloader.TakeBlocks()
|
|
|
- if err != ErrUnknownParent {
|
|
|
- t.Fatalf("take error mismatch: have %v, want %v", err, ErrUnknownParent)
|
|
|
+ bs := tester.downloader.TakeBlocks()
|
|
|
+ if len(bs) != 1 {
|
|
|
+ t.Fatalf("retrieved block mismatch: have %v, want %v", len(bs), 1)
|
|
|
}
|
|
|
- if len(bs) != 0 {
|
|
|
- t.Error("retrieved block mismatch: have %v, want %v", len(bs), 0)
|
|
|
+ if tester.hasBlock(bs[0].ParentHash()) {
|
|
|
+ t.Fatalf("tester knows about the unknown hash")
|
|
|
}
|
|
|
- // Cancel the download due to the parent attack
|
|
|
tester.downloader.Cancel()
|
|
|
|
|
|
// Reconstruct a valid chain, and try to synchronize with it
|
|
|
@@ -331,11 +326,8 @@ func TestNonExistingParentAttack(t *testing.T) {
|
|
|
if err := tester.sync("valid", hashes[0]); err != nil {
|
|
|
t.Fatalf("failed to synchronise blocks: %v", err)
|
|
|
}
|
|
|
- bs, err = tester.downloader.TakeBlocks()
|
|
|
- if err != nil {
|
|
|
- t.Fatalf("failed to retrieve blocks: %v", err)
|
|
|
- }
|
|
|
+ bs = tester.downloader.TakeBlocks()
|
|
|
if len(bs) != 1 {
|
|
|
- t.Error("retrieved block mismatch: have %v, want %v", len(bs), 1)
|
|
|
+ t.Fatalf("retrieved block mismatch: have %v, want %v", len(bs), 1)
|
|
|
}
|
|
|
}
|