swarm/network: Implement t.Helper() in checkHealth

This commit is contained in:
lash 2018-12-19 12:00:35 +01:00
parent 6a815a924c
commit 78905f5514

View file

@ -168,87 +168,66 @@ func TestHealthStrict(t *testing.T) {
// no peers // no peers
// unhealthy (and lonely) // unhealthy (and lonely)
k := newTestKademlia("11111111") k := newTestKademlia("11111111")
if err := assertHealth(k, false, false); err != nil { checkHealth(t, k, false, false)
t.Fatal(err)
}
// know one peer but not connected // know one peer but not connected
// unhealthy // unhealthy
Register(k, "11100000") Register(k, "11100000")
log.Trace(k.String()) log.Trace(k.String())
if err := assertHealth(k, false, false); err != nil { checkHealth(t, k, false, false)
t.Fatal(err)
}
// know one peer and connected // know one peer and connected
// healthy // healthy
On(k, "11100000") On(k, "11100000")
if err := assertHealth(k, true, false); err != nil { checkHealth(t, k, true, false)
t.Fatal(err)
}
// know two peers, only one connected // know two peers, only one connected
// unhealthy // unhealthy
Register(k, "11111100") Register(k, "11111100")
log.Trace(k.String()) log.Trace(k.String())
if err := assertHealth(k, false, false); err != nil { checkHealth(t, k, false, false)
t.Fatal(err)
}
// know two peers and connected to both // know two peers and connected to both
// healthy // healthy
On(k, "11111100") On(k, "11111100")
if err := assertHealth(k, true, false); err != nil { checkHealth(t, k, true, false)
t.Fatal(err)
}
// know three peers, connected to the two deepest // know three peers, connected to the two deepest
// healthy // healthy
Register(k, "00000000") Register(k, "00000000")
log.Trace(k.String()) log.Trace(k.String())
if err := assertHealth(k, true, false); err != nil { checkHealth(t, k, true, false)
t.Fatal(err)
}
// know three peers, connected to all three // know three peers, connected to all three
// healthy // healthy
On(k, "00000000") On(k, "00000000")
if err := assertHealth(k, true, false); err != nil { checkHealth(t, k, true, false)
t.Fatal(err)
}
// add fourth peer deeper than current depth // add fourth peer deeper than current depth
// unhealthy // unhealthy
Register(k, "11110000") Register(k, "11110000")
log.Trace(k.String()) log.Trace(k.String())
if err := assertHealth(k, false, false); err != nil { checkHealth(t, k, false, false)
t.Fatal(err)
}
// connected to three deepest peers // connected to three deepest peers
// healthy // healthy
On(k, "11110000") On(k, "11110000")
if err := assertHealth(k, true, false); err != nil { checkHealth(t, k, true, false)
t.Fatal(err)
}
// add additional peer in same bin as deepest peer // add additional peer in same bin as deepest peer
// unhealthy // unhealthy
Register(k, "11111101") Register(k, "11111101")
log.Trace(k.String()) log.Trace(k.String())
if err := assertHealth(k, false, false); err != nil { checkHealth(t, k, false, false)
t.Fatal(err)
}
// four deepest of five peers connected // four deepest of five peers connected
// healthy // healthy
On(k, "11111101") On(k, "11111101")
if err := assertHealth(k, true, false); err != nil { checkHealth(t, k, true, false)
t.Fatal(err)
}
} }
func assertHealth(k *Kademlia, expectHealthy bool, expectSaturation bool) error { func checkHealth(t *testing.T, k *Kademlia, expectHealthy bool, expectSaturation bool) {
t.Helper()
kid := common.Bytes2Hex(k.BaseAddr()) kid := common.Bytes2Hex(k.BaseAddr())
addrs := [][]byte{k.BaseAddr()} addrs := [][]byte{k.BaseAddr()}
k.EachAddr(nil, 255, func(addr *BzzAddr, po int, _ bool) bool { k.EachAddr(nil, 255, func(addr *BzzAddr, po int, _ bool) bool {
@ -265,9 +244,8 @@ func assertHealth(k *Kademlia, expectHealthy bool, expectSaturation bool) error
// - we are connected to all known neighbors // - we are connected to all known neighbors
health := healthParams.KnowNN && healthParams.GotNN && healthParams.CountKnowNN > 0 health := healthParams.KnowNN && healthParams.GotNN && healthParams.CountKnowNN > 0
if expectHealthy != health { if expectHealthy != health {
return fmt.Errorf("expected kademlia health %v, is %v\n%v", expectHealthy, health, k.String()) t.Fatalf("expected kademlia health %v, is %v\n%v", expectHealthy, health, k.String())
} }
return nil
} }
func testSuggestPeer(k *Kademlia, expAddr string, expPo int, expWant bool) error { func testSuggestPeer(k *Kademlia, expAddr string, expPo int, expWant bool) error {