Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 10 additions & 7 deletions eth/sync_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,15 +82,18 @@ func testSnapSyncDisabling(t *testing.T, ethVer uint, snapVer uint) {
if err := empty.handler.downloader.BeaconSync(full.chain.CurrentBlock(), nil); err != nil {
t.Fatal("sync failed:", err)
}
// Downloader internally has to wait for a timer (3s) to be expired before
// exiting. Poll after to determine if sync is disabled.
time.Sleep(time.Second * 3)
for timeout := time.After(time.Second); ; {
// Snap sync and mode switching happen asynchronously, poll for completion.
timeout := time.NewTimer(15 * time.Second)
tick := time.NewTicker(100 * time.Millisecond)
defer timeout.Stop()
defer tick.Stop()

for {
select {
case <-timeout:
case <-timeout.C:
t.Fatalf("snap sync not disabled after successful synchronisation")
case <-time.After(100 * time.Millisecond):
if empty.handler.downloader.ConfigSyncMode() == ethconfig.FullSync {
case <-tick.C:
if empty.handler.synced.Load() && empty.handler.downloader.ConfigSyncMode() == ethconfig.FullSync {
return
}
}
Expand Down