summaryrefslogtreecommitdiff
path: root/cesar/maximus/python/test/test_simu.py
diff options
context:
space:
mode:
Diffstat (limited to 'cesar/maximus/python/test/test_simu.py')
-rw-r--r--cesar/maximus/python/test/test_simu.py120
1 files changed, 120 insertions, 0 deletions
diff --git a/cesar/maximus/python/test/test_simu.py b/cesar/maximus/python/test/test_simu.py
new file mode 100644
index 0000000000..e30c2e8e80
--- /dev/null
+++ b/cesar/maximus/python/test/test_simu.py
@@ -0,0 +1,120 @@
+#! usr/bin/env python
+
+print "\n*** " + __file__ + " ***\n"
+
+import sys, startup
+
+from maximus.simu import *
+from maximus.simu.rx import Rx
+from interface import *
+
+
+# SIMU TEST
+
+# Create a Maximus instance
+m = Maximus()
+
+# Initialize Maximus with command line arguments
+m.init(sys.argv)
+
+# Transmission
+rsp = sendnrecv(file='data', timeout=5000)
+send(file='data')
+
+# Define a filter function
+def my_filter(rx_macframe):
+ print "=> my_filter"
+ return True
+
+# Reception
+rsp = recv(maximus=m, timeout=10000, filter=my_filter, count=0)
+
+# Get the current date
+t = m.get_date()
+
+
+# DOC TEST
+
+import doctest
+doctest.testmod(rx)
+doctest.testmod(tx)
+
+
+# UNIT TEST
+
+import unittest
+
+class TestRxFunctions(unittest.TestCase):
+
+ def setUp(self):
+ print "setUp"
+ self.reception = Rx(m)
+
+ def tearDown(self):
+ print "tearDown"
+
+ def test_init(self):
+ reception = Rx(maximus=m, filter_fc=my_filter)
+
+ def test_recv(self):
+ reception = Rx(maximus=m, filter_fc=my_filter, counter=2)
+ class MACFrame:
+ pass
+ macframe1 = MACFrame()
+ macframe2 = MACFrame()
+ reception.cb(macframe1)
+ reception.cb(macframe2)
+ self.assertEqual(reception.recv(), [macframe1, macframe2])
+
+ def test_add_frame(self):
+ class MACFrame:
+ pass
+ macframe1 = MACFrame()
+ macframe2 = MACFrame()
+ self.reception.add_frame(macframe1)
+ self.assertEqual(len(self.reception.get_frame_list()), 1)
+ self.assertEqual(self.reception.get_frame_list()[0], macframe1)
+ self.reception.add_frame(macframe2)
+ self.assertEqual(len(self.reception.get_frame_list()), 2)
+ self.assertEqual(self.reception.get_frame_list()[0], macframe1)
+ self.assertEqual(self.reception.get_frame_list()[1], macframe2)
+
+ def test_set_counter(self):
+ counter = 10
+ self.reception.set_counter(counter)
+ self.assertEqual(self.reception.get_counter(), counter)
+
+ def test_decr_counter(self):
+ self.reception.decr_counter()
+ self.assertEqual(self.reception.get_counter(), 0)
+ counter = 10
+ self.reception.set_counter(counter)
+ self.reception.decr_counter()
+ self.assertEqual(self.reception.get_counter(), counter-1)
+
+ def test_call_filter_fc(self):
+ def filter_fc(macframe):
+ print "=> filter_fc"
+ self.reception.set_filter_fc(filter_fc)
+ class MACFrame:
+ pass
+ macframe = MACFrame()
+ self.reception.call_filter_fc(macframe)
+
+ def test_recv(self):
+ self.assertEqual(recv(maximus=m, timeout=None, filter=None, count=0), None)
+ t = m.get_date()
+ d = 750001
+ recv(maximus=m, timeout=d)
+ self.assertEqual(m.get_date(), t + 1000000)
+
+suite = unittest.TestLoader().loadTestsFromTestCase(TestRxFunctions)
+
+try:
+ suite.addTest(doctest.DocTestSuite(rx))
+ suite.addTest(doctest.DocTestSuite(tx))
+except ValueError:
+ print "has no tests"
+
+if __name__ == '__main__':
+ testResult = unittest.TextTestRunner(verbosity=2).run(suite)