|
|
|
@ -1301,7 +1301,7 @@ func testSyncProgress(t *testing.T, protocol int, mode SyncMode) {
|
|
|
|
|
<-progress
|
|
|
|
|
}
|
|
|
|
|
// Retrieve the sync progress and ensure they are zero (pristine sync)
|
|
|
|
|
if origin, current, latest := tester.downloader.Progress(); origin != 0 || current != 0 || latest != 0 {
|
|
|
|
|
if origin, current, latest, _, _ := tester.downloader.Progress(); origin != 0 || current != 0 || latest != 0 {
|
|
|
|
|
t.Fatalf("Pristine progress mismatch: have %v/%v/%v, want %v/%v/%v", origin, current, latest, 0, 0, 0)
|
|
|
|
|
}
|
|
|
|
|
// Synchronise half the blocks and check initial progress
|
|
|
|
@ -1316,7 +1316,7 @@ func testSyncProgress(t *testing.T, protocol int, mode SyncMode) {
|
|
|
|
|
}
|
|
|
|
|
}()
|
|
|
|
|
<-starting
|
|
|
|
|
if origin, current, latest := tester.downloader.Progress(); origin != 0 || current != 0 || latest != uint64(targetBlocks/2+1) {
|
|
|
|
|
if origin, current, latest, _, _ := tester.downloader.Progress(); origin != 0 || current != 0 || latest != uint64(targetBlocks/2+1) {
|
|
|
|
|
t.Fatalf("Initial progress mismatch: have %v/%v/%v, want %v/%v/%v", origin, current, latest, 0, 0, targetBlocks/2+1)
|
|
|
|
|
}
|
|
|
|
|
progress <- struct{}{}
|
|
|
|
@ -1333,14 +1333,14 @@ func testSyncProgress(t *testing.T, protocol int, mode SyncMode) {
|
|
|
|
|
}
|
|
|
|
|
}()
|
|
|
|
|
<-starting
|
|
|
|
|
if origin, current, latest := tester.downloader.Progress(); origin != uint64(targetBlocks/2+1) || current != uint64(targetBlocks/2+1) || latest != uint64(targetBlocks) {
|
|
|
|
|
if origin, current, latest, _, _ := tester.downloader.Progress(); origin != uint64(targetBlocks/2+1) || current != uint64(targetBlocks/2+1) || latest != uint64(targetBlocks) {
|
|
|
|
|
t.Fatalf("Completing progress mismatch: have %v/%v/%v, want %v/%v/%v", origin, current, latest, targetBlocks/2+1, targetBlocks/2+1, targetBlocks)
|
|
|
|
|
}
|
|
|
|
|
progress <- struct{}{}
|
|
|
|
|
pending.Wait()
|
|
|
|
|
|
|
|
|
|
// Check final progress after successful sync
|
|
|
|
|
if origin, current, latest := tester.downloader.Progress(); origin != uint64(targetBlocks/2+1) || current != uint64(targetBlocks) || latest != uint64(targetBlocks) {
|
|
|
|
|
if origin, current, latest, _, _ := tester.downloader.Progress(); origin != uint64(targetBlocks/2+1) || current != uint64(targetBlocks) || latest != uint64(targetBlocks) {
|
|
|
|
|
t.Fatalf("Final progress mismatch: have %v/%v/%v, want %v/%v/%v", origin, current, latest, targetBlocks/2+1, targetBlocks, targetBlocks)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -1373,7 +1373,7 @@ func testForkedSyncProgress(t *testing.T, protocol int, mode SyncMode) {
|
|
|
|
|
<-progress
|
|
|
|
|
}
|
|
|
|
|
// Retrieve the sync progress and ensure they are zero (pristine sync)
|
|
|
|
|
if origin, current, latest := tester.downloader.Progress(); origin != 0 || current != 0 || latest != 0 {
|
|
|
|
|
if origin, current, latest, _, _ := tester.downloader.Progress(); origin != 0 || current != 0 || latest != 0 {
|
|
|
|
|
t.Fatalf("Pristine progress mismatch: have %v/%v/%v, want %v/%v/%v", origin, current, latest, 0, 0, 0)
|
|
|
|
|
}
|
|
|
|
|
// Synchronise with one of the forks and check progress
|
|
|
|
@ -1388,7 +1388,7 @@ func testForkedSyncProgress(t *testing.T, protocol int, mode SyncMode) {
|
|
|
|
|
}
|
|
|
|
|
}()
|
|
|
|
|
<-starting
|
|
|
|
|
if origin, current, latest := tester.downloader.Progress(); origin != 0 || current != 0 || latest != uint64(len(hashesA)-1) {
|
|
|
|
|
if origin, current, latest, _, _ := tester.downloader.Progress(); origin != 0 || current != 0 || latest != uint64(len(hashesA)-1) {
|
|
|
|
|
t.Fatalf("Initial progress mismatch: have %v/%v/%v, want %v/%v/%v", origin, current, latest, 0, 0, len(hashesA)-1)
|
|
|
|
|
}
|
|
|
|
|
progress <- struct{}{}
|
|
|
|
@ -1408,14 +1408,14 @@ func testForkedSyncProgress(t *testing.T, protocol int, mode SyncMode) {
|
|
|
|
|
}
|
|
|
|
|
}()
|
|
|
|
|
<-starting
|
|
|
|
|
if origin, current, latest := tester.downloader.Progress(); origin != uint64(common) || current != uint64(len(hashesA)-1) || latest != uint64(len(hashesB)-1) {
|
|
|
|
|
if origin, current, latest, _, _ := tester.downloader.Progress(); origin != uint64(common) || current != uint64(len(hashesA)-1) || latest != uint64(len(hashesB)-1) {
|
|
|
|
|
t.Fatalf("Forking progress mismatch: have %v/%v/%v, want %v/%v/%v", origin, current, latest, common, len(hashesA)-1, len(hashesB)-1)
|
|
|
|
|
}
|
|
|
|
|
progress <- struct{}{}
|
|
|
|
|
pending.Wait()
|
|
|
|
|
|
|
|
|
|
// Check final progress after successful sync
|
|
|
|
|
if origin, current, latest := tester.downloader.Progress(); origin != uint64(common) || current != uint64(len(hashesB)-1) || latest != uint64(len(hashesB)-1) {
|
|
|
|
|
if origin, current, latest, _, _ := tester.downloader.Progress(); origin != uint64(common) || current != uint64(len(hashesB)-1) || latest != uint64(len(hashesB)-1) {
|
|
|
|
|
t.Fatalf("Final progress mismatch: have %v/%v/%v, want %v/%v/%v", origin, current, latest, common, len(hashesB)-1, len(hashesB)-1)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -1448,7 +1448,7 @@ func testFailedSyncProgress(t *testing.T, protocol int, mode SyncMode) {
|
|
|
|
|
<-progress
|
|
|
|
|
}
|
|
|
|
|
// Retrieve the sync progress and ensure they are zero (pristine sync)
|
|
|
|
|
if origin, current, latest := tester.downloader.Progress(); origin != 0 || current != 0 || latest != 0 {
|
|
|
|
|
if origin, current, latest, _, _ := tester.downloader.Progress(); origin != 0 || current != 0 || latest != 0 {
|
|
|
|
|
t.Fatalf("Pristine progress mismatch: have %v/%v/%v, want %v/%v/%v", origin, current, latest, 0, 0, 0)
|
|
|
|
|
}
|
|
|
|
|
// Attempt a full sync with a faulty peer
|
|
|
|
@ -1468,7 +1468,7 @@ func testFailedSyncProgress(t *testing.T, protocol int, mode SyncMode) {
|
|
|
|
|
}
|
|
|
|
|
}()
|
|
|
|
|
<-starting
|
|
|
|
|
if origin, current, latest := tester.downloader.Progress(); origin != 0 || current != 0 || latest != uint64(targetBlocks) {
|
|
|
|
|
if origin, current, latest, _, _ := tester.downloader.Progress(); origin != 0 || current != 0 || latest != uint64(targetBlocks) {
|
|
|
|
|
t.Fatalf("Initial progress mismatch: have %v/%v/%v, want %v/%v/%v", origin, current, latest, 0, 0, targetBlocks)
|
|
|
|
|
}
|
|
|
|
|
progress <- struct{}{}
|
|
|
|
@ -1485,14 +1485,14 @@ func testFailedSyncProgress(t *testing.T, protocol int, mode SyncMode) {
|
|
|
|
|
}
|
|
|
|
|
}()
|
|
|
|
|
<-starting
|
|
|
|
|
if origin, current, latest := tester.downloader.Progress(); origin != 0 || current > uint64(targetBlocks/2) || latest != uint64(targetBlocks) {
|
|
|
|
|
if origin, current, latest, _, _ := tester.downloader.Progress(); origin != 0 || current > uint64(targetBlocks/2) || latest != uint64(targetBlocks) {
|
|
|
|
|
t.Fatalf("Completing progress mismatch: have %v/%v/%v, want %v/0-%v/%v", origin, current, latest, 0, targetBlocks/2, targetBlocks)
|
|
|
|
|
}
|
|
|
|
|
progress <- struct{}{}
|
|
|
|
|
pending.Wait()
|
|
|
|
|
|
|
|
|
|
// Check final progress after successful sync
|
|
|
|
|
if origin, current, latest := tester.downloader.Progress(); origin > uint64(targetBlocks/2) || current != uint64(targetBlocks) || latest != uint64(targetBlocks) {
|
|
|
|
|
if origin, current, latest, _, _ := tester.downloader.Progress(); origin > uint64(targetBlocks/2) || current != uint64(targetBlocks) || latest != uint64(targetBlocks) {
|
|
|
|
|
t.Fatalf("Final progress mismatch: have %v/%v/%v, want 0-%v/%v/%v", origin, current, latest, targetBlocks/2, targetBlocks, targetBlocks)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -1524,7 +1524,7 @@ func testFakedSyncProgress(t *testing.T, protocol int, mode SyncMode) {
|
|
|
|
|
<-progress
|
|
|
|
|
}
|
|
|
|
|
// Retrieve the sync progress and ensure they are zero (pristine sync)
|
|
|
|
|
if origin, current, latest := tester.downloader.Progress(); origin != 0 || current != 0 || latest != 0 {
|
|
|
|
|
if origin, current, latest, _, _ := tester.downloader.Progress(); origin != 0 || current != 0 || latest != 0 {
|
|
|
|
|
t.Fatalf("Pristine progress mismatch: have %v/%v/%v, want %v/%v/%v", origin, current, latest, 0, 0, 0)
|
|
|
|
|
}
|
|
|
|
|
// Create and sync with an attacker that promises a higher chain than available
|
|
|
|
@ -1545,7 +1545,7 @@ func testFakedSyncProgress(t *testing.T, protocol int, mode SyncMode) {
|
|
|
|
|
}
|
|
|
|
|
}()
|
|
|
|
|
<-starting
|
|
|
|
|
if origin, current, latest := tester.downloader.Progress(); origin != 0 || current != 0 || latest != uint64(targetBlocks+3) {
|
|
|
|
|
if origin, current, latest, _, _ := tester.downloader.Progress(); origin != 0 || current != 0 || latest != uint64(targetBlocks+3) {
|
|
|
|
|
t.Fatalf("Initial progress mismatch: have %v/%v/%v, want %v/%v/%v", origin, current, latest, 0, 0, targetBlocks+3)
|
|
|
|
|
}
|
|
|
|
|
progress <- struct{}{}
|
|
|
|
@ -1562,14 +1562,14 @@ func testFakedSyncProgress(t *testing.T, protocol int, mode SyncMode) {
|
|
|
|
|
}
|
|
|
|
|
}()
|
|
|
|
|
<-starting
|
|
|
|
|
if origin, current, latest := tester.downloader.Progress(); origin != 0 || current > uint64(targetBlocks) || latest != uint64(targetBlocks) {
|
|
|
|
|
if origin, current, latest, _, _ := tester.downloader.Progress(); origin != 0 || current > uint64(targetBlocks) || latest != uint64(targetBlocks) {
|
|
|
|
|
t.Fatalf("Completing progress mismatch: have %v/%v/%v, want %v/0-%v/%v", origin, current, latest, 0, targetBlocks, targetBlocks)
|
|
|
|
|
}
|
|
|
|
|
progress <- struct{}{}
|
|
|
|
|
pending.Wait()
|
|
|
|
|
|
|
|
|
|
// Check final progress after successful sync
|
|
|
|
|
if origin, current, latest := tester.downloader.Progress(); origin > uint64(targetBlocks) || current != uint64(targetBlocks) || latest != uint64(targetBlocks) {
|
|
|
|
|
if origin, current, latest, _, _ := tester.downloader.Progress(); origin > uint64(targetBlocks) || current != uint64(targetBlocks) || latest != uint64(targetBlocks) {
|
|
|
|
|
t.Fatalf("Final progress mismatch: have %v/%v/%v, want 0-%v/%v/%v", origin, current, latest, targetBlocks, targetBlocks, targetBlocks)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|