packet_loss¶
Signature¶
faultcore.packet_loss(p: str)
Purpose¶
Injects probabilistic packet drops.
Parameters¶
p: probability string with%orppmsuffix.
Defaults and validation¶
%values must be between0and100.ppmvalues must be between0and1_000_000.
Example (UDP reliability test)¶
import faultcore
@faultcore.packet_loss("2%")
def send_datagrams(total: int) -> int:
delivered = int(total * 0.98)
return delivered
def test_udp_client_retries_under_loss() -> None:
delivered = send_datagrams(1000)
assert delivered < 1000