blob: 005daf99d54ffd059b6b08b892fa9e0d02db68c3 [file] [log] [blame]
% Regression tests for TestSocket
+ Configuration
~ conf
= Imports
from test.testsocket import TestSocket, cleanup_testsockets
= Create Dummy Packet
class TestPacket(Packet):
fields_desc = [
IntField("identifier", 0),
StrField("data", b"")
]
def answers(self, other):
if other.__class__ != self.__class__:
return False
if self.identifier % 2:
return False
if self.identifier == (other.identifier + 1):
return True
return False
def hashret(self):
return struct.pack('I', self.identifier + (self.identifier % 2))
= Create Sockets
sender = TestSocket(TestPacket)
receiver = TestSocket(TestPacket)
sender.pair(receiver)
+ Basic tests
= Simple ping pong
def create_answer(p):
ans = TestPacket(identifier=p.identifier + 1, data=p.data + b"_answer")
receiver.send(ans)
t = AsyncSniffer(timeout=50, prn=create_answer, opened_socket=receiver)
t.start()
pks = PacketList()
for i in range(1, 2000, 2):
txp = TestPacket(identifier=i, data=b"hello"*i)
rxp = sender.sr1(txp, verbose=False, timeout=0.5)
pks.append(txp)
pks.append(rxp)
t.stop(join=True)
convs = pks.sr()
sender.close()
receiver.close()
assert len(t.results) == 1000
assert len(pks) == 2000
assert len(convs[0]) == 1000
= Simple ping pong with sr with packet generator 500
testlen = 500
sender = TestSocket(TestPacket)
receiver = TestSocket(TestPacket)
sender.pair(receiver)
t = AsyncSniffer(timeout=10, prn=create_answer, opened_socket=receiver)
t.start()
txp = TestPacket(identifier=range(1, testlen * 2, 2), data=b"test1")
rxp = sender.sr(txp, timeout=10, verbose=False, prebuild=True)
t.stop(join=True)
print(rxp)
print(rxp[0].summary())
sender.close()
receiver.close()
assert len(t.results) == testlen
assert len(rxp[0]) == testlen
= Simple ping pong with sr with generated packets
sender = TestSocket(TestPacket)
receiver = TestSocket(TestPacket)
sender.pair(receiver)
t = AsyncSniffer(timeout=10, prn=create_answer, opened_socket=receiver)
t.start()
txp = [TestPacket(identifier=i, data=b"hello") for i in range(1, 2000, 2)]
rxp = sender.sr(txp, timeout=10, verbose=False)
t.stop(join=True)
print(rxp)
assert len(t.results) == 1000
assert len(rxp[0]) == 1000
+ Cleanup
= Delete TestSockets
cleanup_testsockets()