github.com/neatlab/neatio@v1.7.3-0.20220425043230-d903e92fcc75/neatptc/sync_test.go (about) 1 package neatptc 2 3 import ( 4 "sync/atomic" 5 "testing" 6 "time" 7 8 "github.com/neatlab/neatio/neatptc/downloader" 9 "github.com/neatlab/neatio/network/p2p" 10 "github.com/neatlab/neatio/network/p2p/discover" 11 ) 12 13 func TestFastSyncDisabling(t *testing.T) { 14 15 pmEmpty, _ := newTestProtocolManagerMust(t, downloader.FastSync, 0, nil, nil) 16 if atomic.LoadUint32(&pmEmpty.fastSync) == 0 { 17 t.Fatalf("fast sync disabled on pristine blockchain") 18 } 19 20 pmFull, _ := newTestProtocolManagerMust(t, downloader.FastSync, 1024, nil, nil) 21 if atomic.LoadUint32(&pmFull.fastSync) == 1 { 22 t.Fatalf("fast sync not disabled on non-empty blockchain") 23 } 24 25 io1, io2 := p2p.MsgPipe() 26 27 go pmFull.handle(pmFull.newPeer(63, p2p.NewPeer(discover.NodeID{}, "empty", nil), io2)) 28 go pmEmpty.handle(pmEmpty.newPeer(63, p2p.NewPeer(discover.NodeID{}, "full", nil), io1)) 29 30 time.Sleep(250 * time.Millisecond) 31 pmEmpty.synchronise(pmEmpty.peers.BestPeer()) 32 33 if atomic.LoadUint32(&pmEmpty.fastSync) == 1 { 34 t.Fatalf("fast sync not disabled after successful synchronisation") 35 } 36 }