[Stackless-checkins] CVS: slpdev/src/2.3/dev/Stackless/unittests test_sched_cb.py, NONE, 1.1
Dinu Gherman
gherman at centera.de
Thu Apr 22 09:05:01 CEST 2004
Update of /home/cvs/slpdev/src/2.3/dev/Stackless/unittests
In directory centera.de:/tmp/cvs-serv12418
Added Files:
test_sched_cb.py
Log Message:
Initial checkin, mostly like test/test_set_schedule_callback.py.
--- NEW FILE: test_sched_cb.py ---
import unittest
import stackless
class SchedulingMonitor:
"A scheduling monitor acting as a callback for set_schedule_callback()."
def __init__(self):
self.count = 0
def __call__(self, prevTasklet, nextTasklet):
self.count += 1
class SchedulingCallbackTestCase(unittest.TestCase):
"A collection of scheduling callback tests."
def test0(self):
"Test #callbacks before and after running isolated monitor."
mon1 = SchedulingMonitor()
stackless.set_schedule_callback(mon1)
stackless.tasklet(stackless.test_cframe)(3)
stackless.tasklet(stackless.test_cframe)(3)
# precondition
self.failUnless(
mon1.count == 0,
"No callbacks before running")
# running
stackless.run()
# postcondition
self.failUnless(
mon1.count >= 2*3,
"At least as may callbacks as many test_cframe calls")
def test1(self):
"Test multiple monitors, from test/test_set_schedule_callback.py"
fu = self.failUnless
n = 2
mon1 = SchedulingMonitor()
stackless.set_schedule_callback(mon1)
v = 3
for i in range(n): stackless.tasklet(stackless.test_cframe)(v)
c1 = mon1.count
fu(c1 == 0, "No callbacks before running")
stackless.run()
c1 = mon1.count
fu(c1 >= n*v, "At least as may callbacks as many test_cframe calls")
mon2 = SchedulingMonitor()
stackless.set_schedule_callback(mon2)
v = 5
for i in range(n): stackless.tasklet(stackless.test_cframe)(v)
stackless.run()
c2 = mon2.count
fu(c2 >= n*v, "At least as may callbacks as many test_cframe calls")
fu(mon1.count == c1, "No calls to previous callback")
fu(c2 > c1, "More test_cframe calls => more callbacks on second run")
stackless.set_schedule_callback(None)
v = 7
for i in range(n): stackless.tasklet(stackless.test_cframe)(v)
stackless.run()
c1p = mon1.count
c2p = mon2.count
fu(c1p == c1, "No calls to previous callback after setting it to None")
fu(c2p == c2, "No calls to previous callback after setting it to None")
if __name__ == "__main__":
unittest.main()
_______________________________________________
Stackless-checkins mailing list
Stackless-checkins at stackless.com
http://www.stackless.com/mailman/listinfo/stackless-checkins
More information about the Stackless-checkins
mailing list