Skip to content

Commit

Permalink
test: offline ping
Browse files Browse the repository at this point in the history
  • Loading branch information
wu-vincent committed Feb 20, 2024
1 parent bd5045d commit a7aedf5
Showing 1 changed file with 35 additions and 0 deletions.
35 changes: 35 additions & 0 deletions tests/test_offline_ping.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import time
from struct import unpack

from raknet import RakPeer, MessageIdentifiers


def test_unconnected_ping():
server = RakPeer()
server.max_incoming_connections = 10
server.offline_ping_response = b"Ping, Pong!"
assert server.offline_ping_response == b"Ping, Pong!"
server.startup()
server_addr = server.get_bound_address()

client = RakPeer()
client.startup()

timeout = time.time() + 5
while time.time() < timeout:
client.ping(server_addr.host, server_addr.port)

packet = client.receive()
if packet is None:
continue
if packet.data[0] == MessageIdentifiers.ID_UNCONNECTED_PONG:
ping_time = unpack(">I", packet.data[1:5])[0]
response = packet.data[5:]
assert response == server.offline_ping_response
print(ping_time, response)
client.shutdown(1)
return

time.sleep(0.5)

assert False, "Ping remote server timed out"

0 comments on commit a7aedf5

Please sign in to comment.