/rev/90e278d7a950
changeset: 1202:90e278d7a950
user: Marcel Keller <[email protected]>
date: Mon Jul 20 12:04:46 2009 +0200
summary: Unit tests can be run without ViffReactor again.
diffstat:
viff/test/util.py | 31 ++++++++++++++++++-------------
1 files changed, 18 insertions(+), 13 deletions(-)
diffs (59 lines):
diff -r 0fb5d4da2f1e -r 90e278d7a950 viff/test/util.py
--- a/viff/test/util.py Fri Jul 17 16:24:03 2009 +0200
+++ b/viff/test/util.py Mon Jul 20 12:04:46 2009 +0200
@@ -27,6 +27,7 @@
from viff.config import generate_configs, load_config
from viff.util import rand
from viff.test.loopback import loopbackAsync
+from viff.reactor import ViffReactor
from random import Random
@@ -135,11 +136,27 @@
self.close_sentinels = []
self.runtimes = []
- self.real_runtimes = []
for id in reversed(range(1, self.num_players+1)):
_, players = load_config(configs[id])
self.create_loopback_runtime(id, players)
+ if isinstance(reactor, ViffReactor):
+ def set_loop_call(runtimes):
+ self.i = 0
+
+ # This loop call should ensure the queues of the parties are
+ # processed in a more or less fair manner. This is necessary
+ # because we have only one reactor for all parties here.
+ def loop_call():
+ i = self.i
+ for j in range(len(runtimes)):
+ self.i = (self.i + 1) % len(runtimes)
+ runtimes[(i + j) %
len(runtimes)].process_deferred_queue()
+
+ reactor.setLoopCall(loop_call)
+
+ gatherResults(self.runtimes).addCallback(set_loop_call)
+
def tearDown(self):
"""Ensure that all protocol transports are closed.
@@ -179,18 +196,6 @@
# the Runtime, since we want everybody to wait until all
# runtimes are ready.
self.runtimes.append(result)
- self.real_runtimes.append(runtime)
- self.i = 0
-
- # This loop call should ensure the queues of the parties are
- # processed in a more or less fair manner. This is necessary
- # because we have only one reactor for all parties here.
- def loop_call():
- for runtime in self.real_runtimes[self.i:] +
self.real_runtimes[:self.i]:
- runtime.process_deferred_queue()
- self.i = (self.i + 1) % len(self.real_runtimes)
-
- reactor.setLoopCall(loop_call)
for peer_id in players:
if peer_id != id:
_______________________________________________
viff-commits mailing list
[email protected]
http://lists.viff.dk/listinfo.cgi/viff-commits-viff.dk