@@ -18,15 +18,25 @@ def run(cmd, **kwargs):
1818 out = p .stdout .read ()
1919 err = p .stderr .read ()
2020
21- time .sleep (0.2 * multiplier )
21+ # compensate for slow Clojure examples startup:
22+ # lein trampoline run + clojure.core recompilation
23+ if kwargs .get ("cwd" ) == "clojure" :
24+ x = 4
25+ else :
26+ x = 1
27+ time .sleep (0.2 * multiplier * x )
2228 return p .returncode , out + '\n ' + err
2329
2430def spawn (cmd , ** kwargs ):
2531 p = subprocess .Popen (cmd .split (),
2632 stdout = subprocess .PIPE ,
2733 stderr = subprocess .PIPE ,
2834 ** kwargs )
29- time .sleep (0.5 * multiplier )
35+ if kwargs .get ("cwd" ) == "clojure" :
36+ x = 4
37+ else :
38+ x = 1
39+ time .sleep (0.5 * multiplier * x )
3040 return p
3141
3242def wait (p , match ):
@@ -43,6 +53,8 @@ def gen(prog, arg="", **kwargs):
4353 ctx = {
4454 'prog' : prog ,
4555 'Prog' : Prog ,
56+ # clojure ns
57+ 'ns' : prog .replace ("_" , "-" ),
4658 'arg' : arg ,
4759 'java' : kwargs .get ('java' , Prog ),
4860 'dotnet' : kwargs .get ('dotnet' , Prog ),
@@ -53,6 +65,7 @@ def gen(prog, arg="", **kwargs):
5365 ('erlang' , './%(prog)s.erl %(arg)s' % ctx ),
5466 ('java' , 'java -cp .:commons-io-1.2.jar:commons-cli-1.1.jar:'
5567 'rabbitmq-client.jar %(java)s %(arg)s' % ctx ),
68+ ('clojure' , './bin/lein trampoline run -m rabbitmq.tutorials.%(ns)s %(arg)s' % ctx ),
5669 ('dotnet' , 'env MONO_PATH=lib/bin mono %(dotnet)s.exe %(arg)s' % ctx ),
5770 ('ruby' , 'env RUBYOPT=-rubygems GEM_HOME=gems/gems RUBYLIB=gems/lib '
5871 '%(ruby)s %(prog)s.rb %(arg)s' % ctx ),
@@ -77,9 +90,9 @@ def skip(cwd_cmd, to_skip):
7790 ['php' ]),
7891 '%(arg2)s' ),
7992 'tut6' : (skip (gen ('rpc_client' , java = 'RPCClient' , dotnet = 'RPCClient' ),
80- ['erlang' ]),
93+ ['erlang' , 'clojure' ]),
8194 skip (gen ('rpc_server' , java = 'RPCServer' , dotnet = 'RPCServer' ),
82- ['erlang' ]),
95+ ['erlang' , 'clojure' ]),
8396 'fib[(]30[)]' ),
8497 }
8598
0 commit comments