ruote 0.9.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) hide show
  1. data/README.txt +24 -0
  2. data/bin/validate-workflow.rb +89 -0
  3. data/examples/about_state.rb +81 -0
  4. data/examples/bigflow.rb +19 -0
  5. data/examples/csv_weather.rb +23 -0
  6. data/examples/engine_template.rb +247 -0
  7. data/examples/flowtracing.rb +24 -0
  8. data/examples/homeworkreview.rb +68 -0
  9. data/examples/kotoba.rb +22 -0
  10. data/examples/mano_tracker.rb +172 -0
  11. data/examples/openwferu.rb +58 -0
  12. data/examples/quotereporter.rb +157 -0
  13. data/examples/scheduler_cron_usage.rb +48 -0
  14. data/examples/scheduler_usage.rb +56 -0
  15. data/lib/openwfe.rb +41 -0
  16. data/lib/openwfe/contextual.rb +111 -0
  17. data/lib/openwfe/def.rb +46 -0
  18. data/lib/openwfe/engine.rb +37 -0
  19. data/lib/openwfe/engine/engine.rb +756 -0
  20. data/lib/openwfe/engine/expool_methods.rb +172 -0
  21. data/lib/openwfe/engine/file_persisted_engine.rb +105 -0
  22. data/lib/openwfe/engine/participant_methods.rb +133 -0
  23. data/lib/openwfe/engine/status_methods.rb +353 -0
  24. data/lib/openwfe/engine/update_exp_methods.rb +112 -0
  25. data/lib/openwfe/exceptions.rb +51 -0
  26. data/lib/openwfe/expool/errorjournal.rb +476 -0
  27. data/lib/openwfe/expool/expressionpool.rb +1144 -0
  28. data/lib/openwfe/expool/expstorage.rb +403 -0
  29. data/lib/openwfe/expool/history.rb +174 -0
  30. data/lib/openwfe/expool/journal.rb +224 -0
  31. data/lib/openwfe/expool/journal_replay.rb +321 -0
  32. data/lib/openwfe/expool/parser.rb +242 -0
  33. data/lib/openwfe/expool/representation.rb +121 -0
  34. data/lib/openwfe/expool/threadedexpstorage.rb +188 -0
  35. data/lib/openwfe/expool/wfidgen.rb +388 -0
  36. data/lib/openwfe/expool/yamlexpstorage.rb +224 -0
  37. data/lib/openwfe/expressions/condition.rb +244 -0
  38. data/lib/openwfe/expressions/environment.rb +246 -0
  39. data/lib/openwfe/expressions/expressionmap.rb +258 -0
  40. data/lib/openwfe/expressions/fe_cancel.rb +109 -0
  41. data/lib/openwfe/expressions/fe_command.rb +241 -0
  42. data/lib/openwfe/expressions/fe_concurrence.rb +662 -0
  43. data/lib/openwfe/expressions/fe_cron.rb +259 -0
  44. data/lib/openwfe/expressions/fe_cursor.rb +259 -0
  45. data/lib/openwfe/expressions/fe_define.rb +192 -0
  46. data/lib/openwfe/expressions/fe_do.rb +168 -0
  47. data/lib/openwfe/expressions/fe_equals.rb +291 -0
  48. data/lib/openwfe/expressions/fe_filter.rb +129 -0
  49. data/lib/openwfe/expressions/fe_filter_definition.rb +168 -0
  50. data/lib/openwfe/expressions/fe_fqv.rb +250 -0
  51. data/lib/openwfe/expressions/fe_if.rb +303 -0
  52. data/lib/openwfe/expressions/fe_iterator.rb +145 -0
  53. data/lib/openwfe/expressions/fe_listen.rb +371 -0
  54. data/lib/openwfe/expressions/fe_losfor.rb +111 -0
  55. data/lib/openwfe/expressions/fe_misc.rb +421 -0
  56. data/lib/openwfe/expressions/fe_participant.rb +269 -0
  57. data/lib/openwfe/expressions/fe_reserve.rb +212 -0
  58. data/lib/openwfe/expressions/fe_save.rb +274 -0
  59. data/lib/openwfe/expressions/fe_sequence.rb +117 -0
  60. data/lib/openwfe/expressions/fe_set.rb +139 -0
  61. data/lib/openwfe/expressions/fe_sleep.rb +166 -0
  62. data/lib/openwfe/expressions/fe_step.rb +159 -0
  63. data/lib/openwfe/expressions/fe_subprocess.rb +168 -0
  64. data/lib/openwfe/expressions/fe_timeout.rb +127 -0
  65. data/lib/openwfe/expressions/fe_wait.rb +78 -0
  66. data/lib/openwfe/expressions/fe_when.rb +142 -0
  67. data/lib/openwfe/expressions/filter.rb +104 -0
  68. data/lib/openwfe/expressions/flowexpression.rb +847 -0
  69. data/lib/openwfe/expressions/iterator.rb +221 -0
  70. data/lib/openwfe/expressions/merge.rb +84 -0
  71. data/lib/openwfe/expressions/raw.rb +547 -0
  72. data/lib/openwfe/expressions/rprocdef.rb +375 -0
  73. data/lib/openwfe/expressions/time.rb +333 -0
  74. data/lib/openwfe/expressions/timeout.rb +178 -0
  75. data/lib/openwfe/expressions/value.rb +126 -0
  76. data/lib/openwfe/filterdef.rb +259 -0
  77. data/lib/openwfe/flowexpressionid.rb +357 -0
  78. data/lib/openwfe/listeners/listener.rb +97 -0
  79. data/lib/openwfe/listeners/listeners.rb +139 -0
  80. data/lib/openwfe/listeners/socketlisteners.rb +272 -0
  81. data/lib/openwfe/logging.rb +122 -0
  82. data/lib/openwfe/omixins.rb +95 -0
  83. data/lib/openwfe/orest/controlclient.rb +119 -0
  84. data/lib/openwfe/orest/definitions.rb +113 -0
  85. data/lib/openwfe/orest/exception.rb +60 -0
  86. data/lib/openwfe/orest/oldrestservlet.rb +279 -0
  87. data/lib/openwfe/orest/osocket.rb +148 -0
  88. data/lib/openwfe/orest/restclient.rb +176 -0
  89. data/lib/openwfe/orest/workitem.rb +206 -0
  90. data/lib/openwfe/orest/worklistclient.rb +272 -0
  91. data/lib/openwfe/orest/xmlcodec.rb +670 -0
  92. data/lib/openwfe/participants.rb +38 -0
  93. data/lib/openwfe/participants/enoparticipants.rb +230 -0
  94. data/lib/openwfe/participants/participant.rb +141 -0
  95. data/lib/openwfe/participants/participantmap.rb +249 -0
  96. data/lib/openwfe/participants/participants.rb +407 -0
  97. data/lib/openwfe/participants/soapparticipants.rb +135 -0
  98. data/lib/openwfe/participants/socketparticipants.rb +202 -0
  99. data/lib/openwfe/participants/storeparticipants.rb +254 -0
  100. data/lib/openwfe/rudefinitions.rb +130 -0
  101. data/lib/openwfe/service.rb +103 -0
  102. data/lib/openwfe/storage/yamlcustom.rb +106 -0
  103. data/lib/openwfe/storage/yamlfilestorage.rb +245 -0
  104. data/lib/openwfe/tools/flowtracer.rb +81 -0
  105. data/lib/openwfe/util/dollar.rb +217 -0
  106. data/lib/openwfe/util/irb.rb +86 -0
  107. data/lib/openwfe/util/observable.rb +144 -0
  108. data/lib/openwfe/util/ometa.rb +62 -0
  109. data/lib/openwfe/util/workqueue.rb +124 -0
  110. data/lib/openwfe/util/xml.rb +418 -0
  111. data/lib/openwfe/utils.rb +554 -0
  112. data/lib/openwfe/version.rb +37 -0
  113. data/lib/openwfe/workitem.rb +499 -0
  114. data/lib/openwfe/worklist/oldrest.rb +244 -0
  115. data/lib/openwfe/worklist/storelocks.rb +293 -0
  116. data/lib/openwfe/worklist/storeparticipant.rb +44 -0
  117. data/lib/openwfe/worklist/worklist.rb +297 -0
  118. data/test/README.txt +27 -0
  119. data/test/back_0916_test.rb +111 -0
  120. data/test/bm/bm_1_xml_vs_prog.rb +56 -0
  121. data/test/bm/bm_2_step.rb +109 -0
  122. data/test/bm/ft_0f_5ms.rb +35 -0
  123. data/test/bm/ft_26_load.rb +210 -0
  124. data/test/bm/ft_26b_load.rb +86 -0
  125. data/test/bm/ft_26c_load.rb +97 -0
  126. data/test/bm/ft_26d_load.rb +97 -0
  127. data/test/bm/ft_recu.rb +71 -0
  128. data/test/clone_test.rb +122 -0
  129. data/test/concurrence_test.rb +77 -0
  130. data/test/condition_test.rb +155 -0
  131. data/test/console_test.rb +12 -0
  132. data/test/cron_ltest.rb +15 -0
  133. data/test/description_test.rb +87 -0
  134. data/test/eno_test.rb +76 -0
  135. data/test/expmap_test.rb +54 -0
  136. data/test/expool_20031219_0916.tgz +0 -0
  137. data/test/fe_lookup_att_test.rb +62 -0
  138. data/test/fei_test.rb +181 -0
  139. data/test/file_persisted_engine_test.rb +64 -0
  140. data/test/file_persistence_test.rb +134 -0
  141. data/test/filep_cancel_test.rb +123 -0
  142. data/test/filter_test.rb +109 -0
  143. data/test/flowtestbase.rb +351 -0
  144. data/test/ft_0.rb +68 -0
  145. data/test/ft_0b_sequence.rb +36 -0
  146. data/test/ft_0c_testname.rb +33 -0
  147. data/test/ft_0d_participant.rb +30 -0
  148. data/test/ft_0e_multibody.rb +34 -0
  149. data/test/ft_10_loop.rb +134 -0
  150. data/test/ft_11_ppd.rb +415 -0
  151. data/test/ft_11b_ppd.rb +54 -0
  152. data/test/ft_12_blockparticipant.rb +97 -0
  153. data/test/ft_13_eno.rb +52 -0
  154. data/test/ft_14_subprocess.rb +88 -0
  155. data/test/ft_14b_subprocess.rb +192 -0
  156. data/test/ft_14c_subprocess.rb +68 -0
  157. data/test/ft_15_iterator.rb +216 -0
  158. data/test/ft_15b_iterator.rb +74 -0
  159. data/test/ft_16_fqv.rb +73 -0
  160. data/test/ft_17_condition.rb +84 -0
  161. data/test/ft_18_pname.rb +56 -0
  162. data/test/ft_1_unset.rb +175 -0
  163. data/test/ft_1b_unset.rb +39 -0
  164. data/test/ft_20_cron.rb +53 -0
  165. data/test/ft_21_cron.rb +87 -0
  166. data/test/ft_21b_cron_pause.rb +82 -0
  167. data/test/ft_22_history.rb +74 -0
  168. data/test/ft_23_when.rb +77 -0
  169. data/test/ft_23b_when.rb +70 -0
  170. data/test/ft_23c_wait.rb +80 -0
  171. data/test/ft_23d_cww.rb +58 -0
  172. data/test/ft_24_def.rb +44 -0
  173. data/test/ft_25_cancel.rb +89 -0
  174. data/test/ft_27_getflowpos.rb +147 -0
  175. data/test/ft_28_fileparticipant.rb +63 -0
  176. data/test/ft_29_httprb.rb +106 -0
  177. data/test/ft_2_concurrence.rb +135 -0
  178. data/test/ft_2b_concurrence.rb +188 -0
  179. data/test/ft_2c_concurrence.rb +64 -0
  180. data/test/ft_30_socketlistener.rb +203 -0
  181. data/test/ft_31_flowname.rb +40 -0
  182. data/test/ft_32_journal.rb +91 -0
  183. data/test/ft_32c_journal.rb +102 -0
  184. data/test/ft_32d_journal.rb +84 -0
  185. data/test/ft_33_description.rb +107 -0
  186. data/test/ft_34_cancelwfid.rb +80 -0
  187. data/test/ft_35_localdefs.rb +75 -0
  188. data/test/ft_36_subprocids.rb +97 -0
  189. data/test/ft_37_pnames.rb +70 -0
  190. data/test/ft_38_tag.rb +127 -0
  191. data/test/ft_38b_tag.rb +161 -0
  192. data/test/ft_38c_tag.rb +100 -0
  193. data/test/ft_39_reserve.rb +63 -0
  194. data/test/ft_39b_reserve.rb +84 -0
  195. data/test/ft_3_equals.rb +170 -0
  196. data/test/ft_3b_lookup_vf.rb +83 -0
  197. data/test/ft_40_defined.rb +61 -0
  198. data/test/ft_41_case.rb +110 -0
  199. data/test/ft_42_environments.rb +75 -0
  200. data/test/ft_43_pat10.rb +85 -0
  201. data/test/ft_44_save.rb +70 -0
  202. data/test/ft_44b_restore.rb +212 -0
  203. data/test/ft_45_citerator.rb +214 -0
  204. data/test/ft_46_pparams.rb +62 -0
  205. data/test/ft_47_filter.rb +160 -0
  206. data/test/ft_48_fe_filter.rb +88 -0
  207. data/test/ft_49_condition.rb +126 -0
  208. data/test/ft_4_misc.rb +237 -0
  209. data/test/ft_50_xml_attribute.rb +155 -0
  210. data/test/ft_51_stack.rb +55 -0
  211. data/test/ft_52_obs_participant.rb +123 -0
  212. data/test/ft_53_null_noop_participant.rb +62 -0
  213. data/test/ft_54_listen.rb +288 -0
  214. data/test/ft_54b_listen.rb +66 -0
  215. data/test/ft_54c_listen.rb +99 -0
  216. data/test/ft_55_ptimeout.rb +59 -0
  217. data/test/ft_56_timeout.rb +59 -0
  218. data/test/ft_57_a.rb +145 -0
  219. data/test/ft_58_ejournal.rb +151 -0
  220. data/test/ft_59_ps.rb +150 -0
  221. data/test/ft_59b_ps_for_pat.rb +58 -0
  222. data/test/ft_5_time.rb +118 -0
  223. data/test/ft_60_ecancel.rb +161 -0
  224. data/test/ft_61_elsub.rb +51 -0
  225. data/test/ft_62_procparticipant.rb +71 -0
  226. data/test/ft_63_pause.rb +124 -0
  227. data/test/ft_64_alias.rb +102 -0
  228. data/test/ft_64_clone.rb +69 -0
  229. data/test/ft_65_stringlaunch.rb +59 -0
  230. data/test/ft_66_subforget.rb +70 -0
  231. data/test/ft_67_schedlaunch.rb +116 -0
  232. data/test/ft_68_ifparticipant.rb +70 -0
  233. data/test/ft_69_cancelmissing.rb +51 -0
  234. data/test/ft_6_lambda.rb +64 -0
  235. data/test/ft_70_lookupvar.rb +55 -0
  236. data/test/ft_71_log.rb +60 -0
  237. data/test/ft_72_lookup_processes.rb +76 -0
  238. data/test/ft_73_cancel_sub.rb +139 -0
  239. data/test/ft_74_block_and_workitem_dup.rb +63 -0
  240. data/test/ft_75_ruby_attributes.rb +87 -0
  241. data/test/ft_76_merge_isolate.rb +88 -0
  242. data/test/ft_77_segments.rb +35 -0
  243. data/test/ft_78_eval.rb +150 -0
  244. data/test/ft_79_tticket.rb +187 -0
  245. data/test/ft_79b_tticket.rb +172 -0
  246. data/test/ft_79c_outcome.rb +56 -0
  247. data/test/ft_7_lose.rb +104 -0
  248. data/test/ft_7b_lose.rb +78 -0
  249. data/test/ft_80_spname.rb +91 -0
  250. data/test/ft_81_exp.rb +60 -0
  251. data/test/ft_82_trecu.rb +46 -0
  252. data/test/ft_83_badpause.rb +58 -0
  253. data/test/ft_84_updateexp.rb +198 -0
  254. data/test/ft_85_dolhash.rb +43 -0
  255. data/test/ft_86_dollar_fv.rb +68 -0
  256. data/test/ft_87_define.rb +74 -0
  257. data/test/ft_8_forget.rb +44 -0
  258. data/test/ft_9_cursor.rb +145 -0
  259. data/test/ft_9b_cursor.rb +105 -0
  260. data/test/ft_tests.rb +124 -0
  261. data/test/hash_test.rb +75 -0
  262. data/test/hparticipant_test.rb +164 -0
  263. data/test/lookup_att_test.rb +90 -0
  264. data/test/lookup_vf_test.rb +94 -0
  265. data/test/misc_test.rb +90 -0
  266. data/test/nut_0_irb.rb +20 -0
  267. data/test/obs_test.rb +142 -0
  268. data/test/orest_test.rb +251 -0
  269. data/test/param_test.rb +290 -0
  270. data/test/participant_test.rb +101 -0
  271. data/test/pending.rb +23 -0
  272. data/test/ps_representation.rb +133 -0
  273. data/test/rake_ltest.rb +38 -0
  274. data/test/rake_qtest.rb +68 -0
  275. data/test/raw_prog_test.rb +412 -0
  276. data/test/restart_cron_test.rb +136 -0
  277. data/test/restart_paused_test.rb +98 -0
  278. data/test/restart_sleep_test.rb +140 -0
  279. data/test/restart_tests.rb +18 -0
  280. data/test/restart_when_test.rb +112 -0
  281. data/test/ruby_procdef_test.rb +132 -0
  282. data/test/rutest_utils.rb +63 -0
  283. data/test/sec_test.rb +205 -0
  284. data/test/slock_test.rb +80 -0
  285. data/test/storage_test.rb +44 -0
  286. data/test/test.rb +3 -0
  287. data/test/timeout_test.rb +105 -0
  288. data/test/util_xml_test.rb +112 -0
  289. data/test/wfid_test.rb +175 -0
  290. data/test/wi_test.rb +75 -0
  291. metadata +433 -0
@@ -0,0 +1,97 @@
1
+
2
+ #
3
+ # Testing OpenWFE
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+ # Tue Jan 2 13:14:37 JST 2007
8
+ #
9
+
10
+ #require 'profile'
11
+
12
+ require 'flowtestbase'
13
+ require 'openwfe/def'
14
+
15
+ include OpenWFE
16
+
17
+
18
+ class FlowTest26c < Test::Unit::TestCase
19
+ include FlowTestBase
20
+
21
+ #def setup
22
+ #end
23
+
24
+ #def teardown
25
+ #end
26
+
27
+ #
28
+ # Test 0
29
+ #
30
+
31
+ #N = 10_000
32
+ N = 1000
33
+
34
+ class TestDefinition0 < ProcessDefinition
35
+ sequence do
36
+ N.times do
37
+ count
38
+ end
39
+ end
40
+ end
41
+
42
+ def test_load_0
43
+
44
+ #log_level_to_debug
45
+
46
+ #@engine.get_scheduler.sstop
47
+ #
48
+ # JRuby is no friend of the Scheduler
49
+
50
+ $count = 0
51
+
52
+ @engine.register_participant("count") do |workitem|
53
+ $count += 1
54
+ print "."
55
+ end
56
+
57
+ fei = @engine.launch(LaunchItem.new(TestDefinition0))
58
+ puts "launched #{fei}"
59
+
60
+ #log_level_to_debug
61
+
62
+ @engine.wait_for fei
63
+
64
+ assert_equal N, $count
65
+ end
66
+
67
+ #
68
+ # Thu Sep 13 15:41:20 JST 2007
69
+ #
70
+ # ruby 1.8.5 (2006-12-25 patchlevel 12) [i686-darwin8.8.3]
71
+ #
72
+ # 10_000 in 27.69s
73
+ #
74
+ # before optimization : 10k in 138.341
75
+ #
76
+ #
77
+ # ruby 1.8.5 (2007-09-13 rev 3876) [i386-jruby1.1]
78
+ #
79
+ # 10_000 in 53.96s
80
+ #
81
+ # ruby 1.8.5 (2007-09-13 rev 3876) [i386-jruby1.1]
82
+ # -O -J-server
83
+ #
84
+ # 10_000 in 42.616s
85
+
86
+ #
87
+ # Thu Nov 8 21:36:02 JST 2007
88
+ #
89
+ # ruby 1.8.6 (2007-06-07 patchlevel 36) [universal-darwin9.0]
90
+ #
91
+ # 10_000 in 39.089
92
+ #
93
+ # ?
94
+ #
95
+
96
+ end
97
+
@@ -0,0 +1,97 @@
1
+
2
+ #
3
+ # Testing OpenWFE
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+ # Mon Dec 24 22:02:12 JST 2007
8
+ #
9
+
10
+ #require 'profile'
11
+
12
+ require 'flowtestbase'
13
+ require 'openwfe/def'
14
+
15
+ include OpenWFE
16
+
17
+
18
+ class FlowTest26d < Test::Unit::TestCase
19
+ include FlowTestBase
20
+
21
+ #def setup
22
+ #end
23
+
24
+ #def teardown
25
+ #end
26
+
27
+ #
28
+ # Test 0
29
+ #
30
+
31
+ #N = 10_000
32
+ N = 1_000
33
+
34
+ class TestDefinition0 < ProcessDefinition
35
+ concurrence do
36
+ N.times do
37
+ count
38
+ end
39
+ end
40
+ end
41
+
42
+ def test_load_0
43
+
44
+ #log_level_to_debug
45
+
46
+ #@engine.get_scheduler.sstop
47
+ #
48
+ # JRuby is no friend of the Scheduler ( was :) )
49
+
50
+ $count = 0
51
+
52
+ @engine.register_participant("count") do |workitem|
53
+ $count += 1
54
+ print "."
55
+ end
56
+
57
+ fei = @engine.launch(LaunchItem.new(TestDefinition0))
58
+ puts "launched #{fei}"
59
+
60
+ #log_level_to_debug
61
+
62
+ @engine.wait_for fei
63
+
64
+ assert_equal N, $count
65
+ end
66
+
67
+ #
68
+ # Thu Sep 13 15:41:20 JST 2007
69
+ #
70
+ # ruby 1.8.5 (2006-12-25 patchlevel 12) [i686-darwin8.8.3]
71
+ #
72
+ # 10_000 in 27.69s
73
+ #
74
+ # before optimization : 10k in 138.341
75
+ #
76
+ #
77
+ # ruby 1.8.5 (2007-09-13 rev 3876) [i386-jruby1.1]
78
+ #
79
+ # 10_000 in 53.96s
80
+ #
81
+ # ruby 1.8.5 (2007-09-13 rev 3876) [i386-jruby1.1]
82
+ # -O -J-server
83
+ #
84
+ # 10_000 in 42.616s
85
+
86
+ #
87
+ # Thu Nov 8 21:36:02 JST 2007
88
+ #
89
+ # ruby 1.8.6 (2007-06-07 patchlevel 36) [universal-darwin9.0]
90
+ #
91
+ # 10_000 in 39.089
92
+ #
93
+ # ?
94
+ #
95
+
96
+ end
97
+
@@ -0,0 +1,71 @@
1
+
2
+ #
3
+ # Testing OpenWFE
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+ # Mon Oct 9 22:19:44 JST 2006
8
+ #
9
+
10
+ require 'openwfe/def'
11
+
12
+ require 'flowtestbase'
13
+
14
+
15
+ class FlowTestRecursion < Test::Unit::TestCase
16
+ include FlowTestBase
17
+
18
+ #def teardown
19
+ #end
20
+
21
+ #def setup
22
+ #end
23
+
24
+ #
25
+ # test 0
26
+ #
27
+
28
+ class Test0 < OpenWFE::ProcessDefinition
29
+ sequence do
30
+ #print_i
31
+ #subprocess :ref => "Test"
32
+ subprocess :ref => "Testy"
33
+ end
34
+ process_definition :name => "Testy" do
35
+ sequence do
36
+ print_i
37
+ subprocess :ref => "Testy"
38
+ end
39
+ #_loop do
40
+ # print_i
41
+ #end
42
+ end
43
+ end
44
+
45
+ def test_0
46
+
47
+ i = 0
48
+ last = Time.now.to_f
49
+
50
+ @engine.register_participant :print_i do
51
+ now = Time.now.to_f
52
+ print "#{i}"
53
+ if i % 10 == 0
54
+ print "("
55
+ print "#{now-last}"
56
+ print " #{@engine.get_expression_storage.size}"
57
+ print ")"
58
+ end
59
+ print " "
60
+ last = now
61
+ i += 1
62
+ end
63
+
64
+ #dotest TestTag0, "blah"
65
+ @engine.launch Test0
66
+
67
+ sleep 360
68
+ end
69
+
70
+ end
71
+
@@ -0,0 +1,122 @@
1
+
2
+ #
3
+ # Testing OpenWFEru
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+
8
+ require 'test/unit'
9
+ require 'rexml/document'
10
+
11
+ require 'openwfe/utils'
12
+ require 'openwfe/workitem'
13
+
14
+
15
+ class FullDupTest < Test::Unit::TestCase
16
+
17
+ #def setup
18
+ #end
19
+
20
+ #def teardown
21
+ #end
22
+
23
+ class MyClass
24
+
25
+ attr_reader :name
26
+
27
+ def initialize (name)
28
+ @name = name
29
+ end
30
+ end
31
+
32
+ def test_fulldup
33
+
34
+ o0 = MyClass.new("cow")
35
+
36
+ o1 = OpenWFE.fulldup(o0)
37
+
38
+ assert_not_equal o0.object_id, o1.object_id
39
+ assert_equal o0.name, o1.name
40
+ end
41
+
42
+ def test_yaml
43
+
44
+ require 'yaml'
45
+
46
+ o0 = MyClass.new("pig")
47
+ o1 = YAML.load(o0.to_yaml)
48
+
49
+ assert_not_equal o0.object_id, o1.object_id
50
+ assert_equal o0.name, o1.name
51
+ end
52
+
53
+ def test_dup_0
54
+ a0 = A.new
55
+ a0.a = 1
56
+ a0.b = 2
57
+ a1 = OpenWFE::fulldup(a0)
58
+
59
+ #puts a0
60
+ #puts a1
61
+
62
+ assert_equal a0, a1, "dup() utility not working"
63
+ end
64
+
65
+ def test_dup_1
66
+ d = REXML::Document.new("<document/>")
67
+ d1 = OpenWFE::fulldup(d)
68
+ assert d.object_id != d1.object_id
69
+ end
70
+
71
+ def test_dup_2
72
+ d = REXML::Document.new("<document>text</document>")
73
+ d1 = OpenWFE::fulldup(d)
74
+ assert d.object_id != d1.object_id
75
+ end
76
+
77
+ def test_dup_3
78
+ d = REXML::Text.new "toto"
79
+ d1 = OpenWFE::fulldup(d)
80
+ assert d.object_id != d1.object_id
81
+ end
82
+
83
+ def test_dup_4
84
+ wi = OpenWFE::InFlowWorkItem.new
85
+ wi.xml_stuff = REXML::Text.new "whatever"
86
+ wi1 = wi.dup
87
+ assert wi.object_id != wi1.object_id
88
+ assert wi.xml_stuff.object_id != wi1.xml_stuff.object_id
89
+ assert_equal wi.xml_stuff, wi1.xml_stuff
90
+ end
91
+
92
+ def test_dup_5
93
+ require 'date'
94
+ d = DateTime.now
95
+ d1 = OpenWFE::fulldup(d)
96
+ assert_not_equal d.object_id, d1.object_id
97
+ assert_equal d.to_s, d1.to_s
98
+ end
99
+
100
+ def test_dup_6
101
+ t = Time.new
102
+ sleep 0.100
103
+ t1 = OpenWFE::fulldup(t)
104
+ assert_not_equal t.object_id, t1.object_id
105
+ assert_equal t.to_f, t1.to_f
106
+ end
107
+
108
+ private
109
+
110
+ class A
111
+ attr_accessor :a, :b
112
+
113
+ def == (other)
114
+ return false if not other.kind_of?(A)
115
+ (self.a == other.a and self.b == other.b)
116
+ end
117
+
118
+ def to_s
119
+ "A : a='#{a}', b='#{b}'"
120
+ end
121
+ end
122
+ end
@@ -0,0 +1,77 @@
1
+ #
2
+ # Testing OpenWFE
3
+ #
4
+ # John Mettraux at openwfe.org
5
+ #
6
+ # Sun Oct 29 15:41:44 JST 2006
7
+ #
8
+ # Kita Yokohama
9
+ #
10
+
11
+ require 'rubygems'
12
+
13
+ require 'test/unit'
14
+
15
+ require 'openwfe/engine/engine'
16
+ require 'openwfe/def'
17
+ require 'openwfe/participants/storeparticipants'
18
+
19
+
20
+ class ConcurrenceAndParticipantTest < Test::Unit::TestCase
21
+
22
+ def setup
23
+ @engine = OpenWFE::Engine.new({
24
+ :definition_in_launchitem_allowed => true })
25
+ end
26
+
27
+ #def teardown
28
+ #end
29
+
30
+ #
31
+ # concurrence test
32
+
33
+ class Hpc0 < OpenWFE::ProcessDefinition
34
+ concurrence do
35
+ #participant :alice
36
+ #participant :bob
37
+ alice
38
+ bob
39
+ end
40
+ end
41
+
42
+ def test_hpc_0
43
+
44
+ @hpAlice = OpenWFE::HashParticipant.new
45
+ @hpBob = OpenWFE::HashParticipant.new
46
+
47
+ @engine.register_participant :alice, @hpAlice
48
+ @engine.register_participant :bob, @hpBob
49
+
50
+ @engine.launch Hpc0
51
+
52
+ sleep 0.100
53
+
54
+ assert_equal @hpAlice.size, 1
55
+ assert_equal @hpBob.size, 1
56
+ end
57
+
58
+ def test_1
59
+
60
+ @engine.register_participant :alice do |workitem|
61
+ puts "alice in"
62
+ sleep 0.100
63
+ puts "alice out"
64
+ end
65
+ @engine.register_participant :bob do |workitem|
66
+ puts "bob in"
67
+ sleep 0.100
68
+ puts "bob out"
69
+ end
70
+
71
+ @engine.launch Hpc0
72
+
73
+ sleep 2
74
+ end
75
+
76
+ end
77
+