From 4579f9cdce6bda978b8b0265dd98ce649cd90784 Mon Sep 17 00:00:00 2001 From: Ramin Yaghoubzadeh <ryaghoub@techfak.uni-bielefeld.de> Date: Sat, 17 Mar 2012 02:45:07 +0100 Subject: [PATCH] Committing ping test too --- python/test/src/ipaacaspam.py | 54 +++++++++++++++++++++++++++++++---- 1 file changed, 49 insertions(+), 5 deletions(-) diff --git a/python/test/src/ipaacaspam.py b/python/test/src/ipaacaspam.py index 1d03d7d..bca8ccb 100755 --- a/python/test/src/ipaacaspam.py +++ b/python/test/src/ipaacaspam.py @@ -6,6 +6,43 @@ import unittest import ipaaca +class Ponger(object): + def __init__(self): + self.count = 0 + self.last_time = 0 + self.ib = ipaaca.InputBuffer('PingIn', ['ping']) + self.ib.register_handler(self.handle_iu_event) + + def handle_iu_event(self, iu, event_type, local): + if event_type=='UPDATED': + iu.payload['ack'] = 'ack' + + def run(self): + while True: + time.sleep(1) + +class Pinger(object): + def __init__(self): + self.ob = ipaaca.OutputBuffer('PingOut') + self.iu = ipaaca.IU('ping') + self.iu.payload = {'data':'0'} + self.ob.add(self.iu) + self.ob.register_handler(self.handle_iu_event) + self.counter = 0 + self.last_time = time.time() + + def handle_iu_event(self, iu, event_type, local): + print "Round-trip time:", 1000.0*(time.time()-self.last_time),"msec" + + def run(self): + print "Sending a ping every second ..." + while True: + time.sleep(1.0) + self.counter += 1 + self.last_time=time.time() + self.iu.payload['data'] = str(self.counter) + self.last_time=time.time() + class Receiver(object): def __init__(self): self.count = 0 @@ -51,11 +88,18 @@ class Sender(object): if __name__ == '__main__': if len(sys.argv)<2: - print "specify either 'sender' or 'receiver' as an argument" - print " for the sender, you can additionally specify a delay (in 1/s)" - print " between 1 and 10000 please (=> 1 sec ... 0.0001 sec) [default: 1000 => 0.001 sec]" + print "Stress test: specify either 'sender' or 'receiver' as an argument" + print " for the sender, you can additionally specify a delay (in 1/s)" + print " between 1 and 10000 please (=> 1 sec ... 0.0001 sec) [default: 1000 => 0.001 sec]" + print "Ping test: specify either 'ping' or 'pong' as an argument" sys.exit(1) - if sys.argv[1] == 'receiver': + if sys.argv[1] == 'ping': + r = Pinger() + r.run() + elif sys.argv[1] == 'pong': + r = Ponger() + r.run() + elif sys.argv[1] == 'receiver': r = Receiver() r.run() elif sys.argv[1] == 'sender': @@ -70,7 +114,7 @@ if __name__ == '__main__': s = Sender(send_frequency=freq) s.run() else: - print "specify either 'sender' or 'receiver' as an argument" + print "specify either 'sender', 'receiver', 'ping' or 'pong' as an argument" sys.exit(1) -- GitLab