ruote 0.9.19 → 0.9.20

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 (401) hide show
  1. data/README.txt +16 -6
  2. data/examples/engine_template.rb +6 -43
  3. data/examples/quickstart.rb +87 -0
  4. data/examples/quotereporter.rb +42 -49
  5. data/examples/simple.rb +56 -0
  6. data/lib/openwfe.rb +20 -34
  7. data/lib/openwfe/contextual.rb +45 -36
  8. data/lib/openwfe/def.rb +21 -30
  9. data/lib/openwfe/engine.rb +17 -26
  10. data/lib/openwfe/engine/engine.rb +132 -397
  11. data/lib/openwfe/engine/expool_methods.rb +34 -122
  12. data/lib/openwfe/engine/file_persisted_engine.rb +39 -60
  13. data/lib/openwfe/engine/fs_engine.rb +54 -0
  14. data/lib/openwfe/engine/launch_methods.rb +245 -0
  15. data/lib/openwfe/engine/listener_methods.rb +128 -0
  16. data/lib/openwfe/engine/lookup_methods.rb +156 -0
  17. data/lib/openwfe/engine/participant_methods.rb +60 -52
  18. data/lib/openwfe/engine/status_methods.rb +102 -97
  19. data/lib/openwfe/engine/tc_engine.rb +55 -0
  20. data/lib/openwfe/engine/tt_engine.rb +55 -0
  21. data/lib/openwfe/engine/update_exp_methods.rb +46 -39
  22. data/lib/openwfe/expool/def_parser.rb +196 -0
  23. data/lib/openwfe/expool/errorjournal.rb +51 -219
  24. data/lib/openwfe/expool/errors.rb +69 -0
  25. data/lib/openwfe/expool/expool_pause_methods.rb +32 -43
  26. data/lib/openwfe/expool/expressionpool.rb +398 -594
  27. data/lib/openwfe/expool/expstorage.rb +68 -72
  28. data/lib/openwfe/expool/fs_expstorage.rb +302 -0
  29. data/lib/openwfe/expool/history.rb +54 -38
  30. data/lib/openwfe/expool/journal.rb +24 -38
  31. data/lib/openwfe/expool/journal_replay.rb +20 -36
  32. data/lib/openwfe/expool/representation.rb +62 -78
  33. data/lib/openwfe/expool/tc_expstorage.rb +239 -0
  34. data/lib/openwfe/expool/{threadedexpstorage.rb → threaded_expstorage.rb} +25 -53
  35. data/lib/openwfe/expool/tt_expstorage.rb +55 -0
  36. data/lib/openwfe/expool/wfidgen.rb +23 -43
  37. data/lib/openwfe/expool/yaml_errorjournal.rb +187 -0
  38. data/lib/openwfe/expressions/condition.rb +33 -58
  39. data/lib/openwfe/expressions/environment.rb +62 -76
  40. data/lib/openwfe/expressions/{expressionmap.rb → expression_map.rb} +40 -54
  41. data/lib/openwfe/expressions/expression_tree.rb +265 -0
  42. data/lib/openwfe/expressions/fe_cancel.rb +19 -39
  43. data/lib/openwfe/expressions/fe_command.rb +80 -84
  44. data/lib/openwfe/expressions/fe_concurrence.rb +250 -313
  45. data/lib/openwfe/expressions/fe_cron.rb +38 -55
  46. data/lib/openwfe/expressions/fe_cursor.rb +49 -74
  47. data/lib/openwfe/expressions/fe_define.rb +44 -90
  48. data/lib/openwfe/expressions/fe_do.rb +83 -70
  49. data/lib/openwfe/expressions/fe_equals.rb +17 -35
  50. data/lib/openwfe/expressions/fe_error.rb +103 -0
  51. data/lib/openwfe/expressions/fe_filter.rb +27 -44
  52. data/lib/openwfe/expressions/fe_filter_definition.rb +37 -54
  53. data/lib/openwfe/expressions/fe_fqv.rb +46 -65
  54. data/lib/openwfe/expressions/fe_http.rb +17 -31
  55. data/lib/openwfe/expressions/fe_if.rb +39 -55
  56. data/lib/openwfe/expressions/fe_iterator.rb +25 -42
  57. data/lib/openwfe/expressions/fe_listen.rb +71 -115
  58. data/lib/openwfe/expressions/fe_losfor.rb +34 -43
  59. data/lib/openwfe/expressions/fe_misc.rb +70 -109
  60. data/lib/openwfe/expressions/fe_participant.rb +61 -99
  61. data/lib/openwfe/expressions/fe_reserve.rb +28 -59
  62. data/lib/openwfe/expressions/fe_save.rb +62 -81
  63. data/lib/openwfe/expressions/fe_sequence.rb +45 -70
  64. data/lib/openwfe/expressions/fe_set.rb +22 -40
  65. data/lib/openwfe/expressions/fe_step.rb +22 -37
  66. data/lib/openwfe/expressions/fe_subprocess.rb +34 -55
  67. data/lib/openwfe/expressions/fe_timeout.rb +28 -44
  68. data/lib/openwfe/expressions/fe_wait.rb +142 -36
  69. data/lib/openwfe/expressions/fe_when.rb +22 -46
  70. data/lib/openwfe/expressions/filter.rb +24 -43
  71. data/lib/openwfe/expressions/flowexpression.rb +211 -192
  72. data/lib/openwfe/expressions/iterator.rb +24 -39
  73. data/lib/openwfe/expressions/merge.rb +30 -52
  74. data/lib/openwfe/expressions/raw.rb +168 -384
  75. data/lib/openwfe/expressions/rprocdef.rb +79 -76
  76. data/lib/openwfe/expressions/time.rb +89 -103
  77. data/lib/openwfe/expressions/timeout.rb +98 -92
  78. data/lib/openwfe/expressions/value.rb +43 -69
  79. data/lib/openwfe/extras/engine/ar_engine.rb +58 -0
  80. data/lib/openwfe/extras/engine/db_persisted_engine.rb +37 -57
  81. data/lib/openwfe/extras/engine/dm_engine.rb +59 -0
  82. data/lib/openwfe/extras/expool/ar_expstorage.rb +337 -0
  83. data/lib/openwfe/extras/expool/db_errorjournal.rb +165 -0
  84. data/lib/openwfe/extras/expool/db_expstorage.rb +73 -0
  85. data/lib/openwfe/extras/expool/db_history.rb +163 -0
  86. data/lib/openwfe/extras/expool/dm_expstorage.rb +327 -0
  87. data/lib/openwfe/extras/listeners/jabber_listeners.rb +102 -0
  88. data/lib/openwfe/extras/listeners/jabberlisteners.rb +26 -0
  89. data/lib/openwfe/extras/listeners/sqs_listeners.rb +128 -0
  90. data/lib/openwfe/extras/misc/activityfeed.rb +19 -34
  91. data/lib/openwfe/extras/misc/jabber_common.rb +122 -0
  92. data/lib/openwfe/extras/participants/active_participants.rb +724 -0
  93. data/lib/openwfe/extras/participants/active_resource_participants.rb +213 -0
  94. data/lib/openwfe/extras/participants/activeparticipants.rb +1 -747
  95. data/lib/openwfe/extras/participants/ar_participants.rb +285 -0
  96. data/lib/openwfe/extras/participants/atomfeed_participants.rb +19 -34
  97. data/lib/openwfe/extras/participants/atompub_participants.rb +19 -34
  98. data/lib/openwfe/extras/participants/basecamp_participants.rb +17 -31
  99. data/lib/openwfe/extras/participants/{csvparticipants.rb → decision_participants.rb} +17 -31
  100. data/lib/openwfe/extras/participants/jabber_participants.rb +147 -0
  101. data/lib/openwfe/extras/participants/jabberparticipants.rb +3 -0
  102. data/lib/openwfe/extras/participants/sqs_participants.rb +108 -0
  103. data/lib/openwfe/extras/participants/{twitterparticipants.rb → twitter_participants.rb} +20 -34
  104. data/lib/openwfe/extras/singlecon.rb +56 -0
  105. data/lib/openwfe/filterdef.rb +83 -65
  106. data/lib/openwfe/flowexpressionid.rb +99 -62
  107. data/lib/openwfe/listeners/listener.rb +54 -65
  108. data/lib/openwfe/listeners/listeners.rb +52 -56
  109. data/lib/openwfe/logging.rb +17 -31
  110. data/lib/openwfe/omixins.rb +25 -58
  111. data/lib/openwfe/participants.rb +1 -34
  112. data/lib/openwfe/participants/{enoparticipants.rb → mail_participants.rb} +33 -47
  113. data/lib/openwfe/participants/participant.rb +37 -36
  114. data/lib/openwfe/participants/participant_map.rb +245 -0
  115. data/lib/openwfe/participants/participants.rb +43 -69
  116. data/lib/openwfe/participants/{soapparticipants.rb → soap_participants.rb} +22 -36
  117. data/lib/openwfe/participants/{storeparticipants.rb → store_participants.rb} +57 -62
  118. data/lib/openwfe/{storage/yamlfilestorage.rb → participants/yaml_filestorage.rb} +35 -64
  119. data/lib/openwfe/representations.rb +770 -0
  120. data/lib/openwfe/rudefinitions.rb +17 -29
  121. data/lib/openwfe/service.rb +21 -32
  122. data/lib/openwfe/tools/flowtracer.rb +21 -35
  123. data/lib/openwfe/util/dollar.rb +48 -61
  124. data/lib/openwfe/util/irb.rb +19 -34
  125. data/lib/openwfe/util/json.rb +55 -0
  126. data/lib/openwfe/util/observable.rb +22 -41
  127. data/lib/openwfe/util/ometa.rb +21 -35
  128. data/lib/openwfe/util/treechecker.rb +17 -31
  129. data/lib/openwfe/util/workqueue.rb +45 -44
  130. data/lib/openwfe/util/xml.rb +80 -234
  131. data/lib/openwfe/utils.rb +67 -110
  132. data/lib/openwfe/version.rb +19 -27
  133. data/lib/openwfe/workitem.rb +119 -84
  134. data/lib/openwfe/worklist/storelocks.rb +17 -33
  135. data/lib/openwfe/worklist/storeparticipant.rb +1 -39
  136. data/lib/openwfe/worklist/worklist.rb +17 -31
  137. data/lib/pooltool.ru +311 -0
  138. data/test/{extras/active_connection.rb → ar_test_connection.rb} +26 -11
  139. data/test/bm/fatxml.rb +70 -0
  140. data/test/bm/load_26c.rb +79 -0
  141. data/test/dm_test_connection.rb +11 -0
  142. data/test/extras/base.rb +3 -0
  143. data/test/extras/et_0_sqs.rb +37 -0
  144. data/test/extras/et_jabber_test.rb +226 -0
  145. data/test/extras/test.rb +16 -0
  146. data/test/functional/base.rb +198 -0
  147. data/test/functional/db_ft_0_ar_participants.rb +136 -0
  148. data/test/functional/eft_0_process_definition.rb +34 -0
  149. data/test/functional/eft_10_unset.rb +60 -0
  150. data/test/functional/eft_11_sleep.rb +95 -0
  151. data/test/functional/eft_12_wait.rb +57 -0
  152. data/test/functional/eft_13_cursor.rb +139 -0
  153. data/test/functional/eft_14_loop.rb +36 -0
  154. data/test/functional/eft_15_undo.rb +77 -0
  155. data/test/functional/eft_16_redo.rb +88 -0
  156. data/test/functional/eft_1_print.rb +57 -0
  157. data/test/functional/eft_2_sequence.rb +47 -0
  158. data/test/functional/eft_3_equals.rb +98 -0
  159. data/test/functional/eft_4_if.rb +96 -0
  160. data/test/functional/eft_5_eval.rb +89 -0
  161. data/test/functional/eft_6_reval.rb +101 -0
  162. data/test/functional/eft_7_exp.rb +47 -0
  163. data/test/functional/eft_8_log.rb +50 -0
  164. data/test/functional/eft_9_set.rb +132 -0
  165. data/test/functional/engine_helper.rb +122 -0
  166. data/test/functional/ft_0_vars_at_launch.rb +27 -0
  167. data/test/functional/ft_1_process_status.rb +46 -0
  168. data/test/functional/ft_2_file_listener.rb +45 -0
  169. data/test/functional/ft_3_on_cancel.rb +171 -0
  170. data/test/functional/ft_4_on_error.rb +220 -0
  171. data/test/functional/ft_5_process_uri.rb +82 -0
  172. data/test/functional/ft_6_process_status.rb +62 -0
  173. data/test/functional/ft_7_parameters.rb +103 -0
  174. data/test/functional/ft_8_dollar.rb +53 -0
  175. data/test/functional/ft_9_register_participants.rb +119 -0
  176. data/test/functional/restart_base.rb +43 -0
  177. data/test/functional/rft_0_sleep.rb +76 -0
  178. data/test/functional/test.rb +24 -0
  179. data/test/path_helper.rb +12 -0
  180. data/test/test.rb +11 -1
  181. data/test/{rutest_utils.rb → test_helper.rb} +8 -31
  182. data/test/unit/test.rb +19 -0
  183. data/test/{fei_test.rb → unit/ut_0_fei.rb} +34 -49
  184. data/test/unit/ut_10_lookup_attribute.rb +86 -0
  185. data/test/unit/ut_11_filter.rb +124 -0
  186. data/test/{condition_test.rb → unit/ut_12_conditional.rb} +33 -40
  187. data/test/unit/ut_13_xmlutil.rb +57 -0
  188. data/test/unit/ut_14_var_field_lookup.rb +85 -0
  189. data/test/{fe_lookup_att_test.rb → unit/ut_15_fe_att_lookup.rb} +14 -21
  190. data/test/{storage_test.rb → unit/ut_16_expstorage_findexp.rb} +3 -9
  191. data/test/unit/ut_17_representations.rb +330 -0
  192. data/test/{hash_test.rb → unit/ut_17b_representations_hash.rb} +25 -21
  193. data/test/{slock_test.rb → unit/ut_18_store_lock.rb} +17 -20
  194. data/test/{wfid_test.rb → unit/ut_1_wfid.rb} +2 -73
  195. data/test/unit/ut_2_utils.rb +53 -0
  196. data/test/unit/ut_3_expmap.rb +65 -0
  197. data/test/{clone_test.rb → unit/ut_4_fulldup.rb} +41 -46
  198. data/test/{obs_test.rb → unit/ut_5_observable.rb} +9 -19
  199. data/test/unit/ut_6_treechecker.rb +101 -0
  200. data/test/unit/ut_7_parser_ruby.rb +344 -0
  201. data/test/unit/ut_7b_parser_ruby.rb +56 -0
  202. data/test/{description_test.rb → unit/ut_8_parser_description.rb} +8 -19
  203. data/test/unit/ut_9_workitem.rb +72 -0
  204. metadata +117 -234
  205. data/lib/openwfe/exceptions.rb +0 -51
  206. data/lib/openwfe/expool/parser.rb +0 -278
  207. data/lib/openwfe/expool/paused_error.rb +0 -77
  208. data/lib/openwfe/expool/yamlexpstorage.rb +0 -224
  209. data/lib/openwfe/expressions/fe_sleep.rb +0 -173
  210. data/lib/openwfe/extras/expool/dberrorjournal.rb +0 -189
  211. data/lib/openwfe/extras/expool/dbexpstorage.rb +0 -355
  212. data/lib/openwfe/extras/expool/dbhistory.rb +0 -135
  213. data/lib/openwfe/extras/listeners/sqslisteners.rb +0 -146
  214. data/lib/openwfe/extras/participants/sqsparticipants.rb +0 -125
  215. data/lib/openwfe/listeners/socketlisteners.rb +0 -272
  216. data/lib/openwfe/orest/definitions.rb +0 -113
  217. data/lib/openwfe/orest/osocket.rb +0 -148
  218. data/lib/openwfe/orest/xmlcodec.rb +0 -682
  219. data/lib/openwfe/participants/participantmap.rb +0 -249
  220. data/lib/openwfe/participants/socketparticipants.rb +0 -202
  221. data/lib/openwfe/storage/yamlcustom.rb +0 -106
  222. data/lib/openwfe/worklist/oldrest.rb +0 -244
  223. data/test/README.txt +0 -27
  224. data/test/back_0916_test.rb +0 -109
  225. data/test/bm/bm_1_xml_vs_prog.rb +0 -59
  226. data/test/bm/bm_2_step.rb +0 -109
  227. data/test/bm/ft_0f_5ms.rb +0 -35
  228. data/test/bm/ft_26_load.rb +0 -208
  229. data/test/bm/ft_26b_load.rb +0 -84
  230. data/test/bm/ft_26c_load.rb +0 -102
  231. data/test/bm/ft_recu.rb +0 -71
  232. data/test/concurrence_test.rb +0 -77
  233. data/test/console_test.rb +0 -12
  234. data/test/cron_ltest.rb +0 -15
  235. data/test/eno_test.rb +0 -76
  236. data/test/expmap_test.rb +0 -54
  237. data/test/expool_20031219_0916.tgz +0 -0
  238. data/test/extras/README.txt +0 -5
  239. data/test/extras/active_with_engine_test.rb +0 -140
  240. data/test/extras/activityfeed_test.rb +0 -85
  241. data/test/extras/ap_0_test.rb +0 -287
  242. data/test/extras/ap_1_test.rb +0 -53
  243. data/test/extras/ap_test_base.rb +0 -24
  244. data/test/extras/atomfeedp_test.rb +0 -113
  245. data/test/extras/atompubp_test.rb +0 -91
  246. data/test/extras/basecamp_test.rb +0 -53
  247. data/test/extras/db_errorjournal_utest.rb +0 -75
  248. data/test/extras/db_expstorage_utest.rb +0 -171
  249. data/test/extras/db_history_0_test.rb +0 -58
  250. data/test/extras/ft_19_csv.rb +0 -58
  251. data/test/extras/ft_71_b14008.rb +0 -85
  252. data/test/extras/sqs_test.rb +0 -57
  253. data/test/extras/twitter_test.rb +0 -62
  254. data/test/file_persisted_engine_test.rb +0 -64
  255. data/test/file_persistence_test.rb +0 -135
  256. data/test/filep_cancel_test.rb +0 -123
  257. data/test/filter_test.rb +0 -109
  258. data/test/flowtestbase.rb +0 -339
  259. data/test/ft_0.rb +0 -68
  260. data/test/ft_0b_sequence.rb +0 -36
  261. data/test/ft_0c_testname.rb +0 -33
  262. data/test/ft_0d_participant.rb +0 -30
  263. data/test/ft_0e_multibody.rb +0 -34
  264. data/test/ft_10_loop.rb +0 -133
  265. data/test/ft_11_ppd.rb +0 -411
  266. data/test/ft_11b_ppd.rb +0 -54
  267. data/test/ft_12_blockparticipant.rb +0 -97
  268. data/test/ft_13_eno.rb +0 -52
  269. data/test/ft_14_subprocess.rb +0 -88
  270. data/test/ft_14b_subprocess.rb +0 -192
  271. data/test/ft_14c_subprocess.rb +0 -68
  272. data/test/ft_15_iterator.rb +0 -216
  273. data/test/ft_15b_iterator.rb +0 -74
  274. data/test/ft_16_fqv.rb +0 -73
  275. data/test/ft_17_condition.rb +0 -84
  276. data/test/ft_18_pname.rb +0 -56
  277. data/test/ft_1_unset.rb +0 -175
  278. data/test/ft_1b_unset.rb +0 -39
  279. data/test/ft_20_cron.rb +0 -53
  280. data/test/ft_21_cron.rb +0 -87
  281. data/test/ft_21b_cron_pause.rb +0 -82
  282. data/test/ft_22_history.rb +0 -78
  283. data/test/ft_23_when.rb +0 -77
  284. data/test/ft_23b_when.rb +0 -70
  285. data/test/ft_23c_wait.rb +0 -80
  286. data/test/ft_23d_cww.rb +0 -58
  287. data/test/ft_24_def.rb +0 -44
  288. data/test/ft_25_cancel.rb +0 -92
  289. data/test/ft_27_getflowpos.rb +0 -143
  290. data/test/ft_28_fileparticipant.rb +0 -63
  291. data/test/ft_29_httprb.rb +0 -106
  292. data/test/ft_2_concurrence.rb +0 -137
  293. data/test/ft_2b_concurrence.rb +0 -188
  294. data/test/ft_2c_concurrence.rb +0 -64
  295. data/test/ft_30_socketlistener.rb +0 -203
  296. data/test/ft_31_flowname.rb +0 -39
  297. data/test/ft_32_journal.rb +0 -91
  298. data/test/ft_32c_journal.rb +0 -102
  299. data/test/ft_32d_journal.rb +0 -81
  300. data/test/ft_33_description.rb +0 -107
  301. data/test/ft_34_cancelwfid.rb +0 -80
  302. data/test/ft_35_localdefs.rb +0 -77
  303. data/test/ft_36_subprocids.rb +0 -97
  304. data/test/ft_37_pnames.rb +0 -70
  305. data/test/ft_38_tag.rb +0 -127
  306. data/test/ft_38b_tag.rb +0 -161
  307. data/test/ft_38c_tag.rb +0 -100
  308. data/test/ft_38d_tag.rb +0 -53
  309. data/test/ft_39_reserve.rb +0 -63
  310. data/test/ft_39b_reserve.rb +0 -84
  311. data/test/ft_3_equals.rb +0 -170
  312. data/test/ft_3b_lookup_vf.rb +0 -83
  313. data/test/ft_40_defined.rb +0 -61
  314. data/test/ft_41_case.rb +0 -110
  315. data/test/ft_42_environments.rb +0 -75
  316. data/test/ft_43_pat10.rb +0 -85
  317. data/test/ft_44_save.rb +0 -70
  318. data/test/ft_44b_restore.rb +0 -212
  319. data/test/ft_45_citerator.rb +0 -214
  320. data/test/ft_45b_citerator.rb +0 -77
  321. data/test/ft_46_pparams.rb +0 -62
  322. data/test/ft_47_filter.rb +0 -160
  323. data/test/ft_48_fe_filter.rb +0 -88
  324. data/test/ft_49_condition.rb +0 -133
  325. data/test/ft_4_misc.rb +0 -232
  326. data/test/ft_50_xml_attribute.rb +0 -152
  327. data/test/ft_51_stack.rb +0 -55
  328. data/test/ft_52_obs_participant.rb +0 -123
  329. data/test/ft_53_null_noop_participant.rb +0 -62
  330. data/test/ft_54_listen.rb +0 -288
  331. data/test/ft_54b_listen.rb +0 -66
  332. data/test/ft_54c_listen.rb +0 -99
  333. data/test/ft_55_ptimeout.rb +0 -58
  334. data/test/ft_56_timeout.rb +0 -59
  335. data/test/ft_57_a.rb +0 -148
  336. data/test/ft_58_ejournal.rb +0 -154
  337. data/test/ft_58b_ejournal.rb +0 -82
  338. data/test/ft_59_ps.rb +0 -212
  339. data/test/ft_5_time.rb +0 -118
  340. data/test/ft_60_ecancel.rb +0 -161
  341. data/test/ft_61_elsub.rb +0 -51
  342. data/test/ft_62_procparticipant.rb +0 -71
  343. data/test/ft_63_pause.rb +0 -137
  344. data/test/ft_64_alias.rb +0 -101
  345. data/test/ft_65_stringlaunch.rb +0 -59
  346. data/test/ft_66_subforget.rb +0 -70
  347. data/test/ft_67_schedlaunch.rb +0 -115
  348. data/test/ft_68_ifparticipant.rb +0 -70
  349. data/test/ft_69_cancelmissing.rb +0 -53
  350. data/test/ft_6_lambda.rb +0 -64
  351. data/test/ft_70_lookupvar.rb +0 -55
  352. data/test/ft_71_log.rb +0 -60
  353. data/test/ft_72_lookup_processes.rb +0 -79
  354. data/test/ft_73_cancel_sub.rb +0 -139
  355. data/test/ft_74_block_and_workitem_dup.rb +0 -63
  356. data/test/ft_75_ruby_attributes.rb +0 -89
  357. data/test/ft_76_merge_isolate.rb +0 -88
  358. data/test/ft_77_segments.rb +0 -35
  359. data/test/ft_78_eval.rb +0 -150
  360. data/test/ft_79_tticket.rb +0 -187
  361. data/test/ft_79b_tticket.rb +0 -172
  362. data/test/ft_79c_outcome.rb +0 -56
  363. data/test/ft_7_lose.rb +0 -104
  364. data/test/ft_7b_lose.rb +0 -78
  365. data/test/ft_80_spname.rb +0 -91
  366. data/test/ft_81_exp.rb +0 -60
  367. data/test/ft_82_trecu.rb +0 -52
  368. data/test/ft_83_badpause.rb +0 -58
  369. data/test/ft_84_updateexp.rb +0 -198
  370. data/test/ft_84b_subrepr.rb +0 -72
  371. data/test/ft_85_dolhash.rb +0 -43
  372. data/test/ft_86_dollar_fv.rb +0 -68
  373. data/test/ft_87_define.rb +0 -74
  374. data/test/ft_88_http.rb +0 -100
  375. data/test/ft_8_forget.rb +0 -44
  376. data/test/ft_9_cursor.rb +0 -154
  377. data/test/ft_9b_cursor.rb +0 -105
  378. data/test/ft_tests.rb +0 -130
  379. data/test/hparticipant_test.rb +0 -168
  380. data/test/lookup_att_test.rb +0 -90
  381. data/test/lookup_vf_test.rb +0 -94
  382. data/test/misc_test.rb +0 -94
  383. data/test/nut_0_irb.rb +0 -20
  384. data/test/param_test.rb +0 -290
  385. data/test/participant_test.rb +0 -101
  386. data/test/pending.rb +0 -23
  387. data/test/ps_representation.rb +0 -133
  388. data/test/rake_ltest.rb +0 -38
  389. data/test/rake_qtest.rb +0 -68
  390. data/test/raw_prog_test.rb +0 -407
  391. data/test/restart_cron_test.rb +0 -136
  392. data/test/restart_paused_test.rb +0 -103
  393. data/test/restart_sleep_test.rb +0 -140
  394. data/test/restart_tests.rb +0 -18
  395. data/test/restart_when_test.rb +0 -112
  396. data/test/ruby_procdef_test.rb +0 -132
  397. data/test/sec_test.rb +0 -206
  398. data/test/timeout_test.rb +0 -105
  399. data/test/treechecker_test.rb +0 -111
  400. data/test/util_xml_test.rb +0 -112
  401. data/test/wi_test.rb +0 -75
@@ -0,0 +1,16 @@
1
+
2
+ #
3
+ # testing Ruote
4
+ #
5
+ # since Mon Oct 9 22:19:44 JST 2006
6
+ #
7
+
8
+ dirpath = File.dirname(__FILE__)
9
+
10
+ tests = Dir.new(dirpath).entries.select { |e| e.match(/^et\_.*\.rb$/) }.sort
11
+
12
+ tests.each { |e| load "#{dirpath}/#{e}" }
13
+
14
+ #tests.each { |e| puts `ruby #{dirpath}/#{e}` }
15
+ # making sure that each test is runnable standalone
16
+
@@ -0,0 +1,198 @@
1
+
2
+ #
3
+ # Testing Ruote (OpenWFEru)
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+ # Sat Sep 20 23:40:10 JST 2008
8
+ #
9
+
10
+ require File.dirname(__FILE__) + '/../test_helper.rb'
11
+ require File.dirname(__FILE__) + '/engine_helper.rb'
12
+
13
+ require 'openwfe/engine'
14
+
15
+
16
+ module FunctionalBase
17
+
18
+ def setup
19
+
20
+ @tracer = Tracer.new
21
+
22
+ ac = {}
23
+
24
+ class << ac
25
+ alias :old_put :[]=
26
+ def []= (k, v)
27
+ raise("!!!!! #{k.class}\n#{k.inspect}") \
28
+ if k.class != String and k.class != Symbol
29
+ old_put(k, v)
30
+ end
31
+ end
32
+ #
33
+ # useful for tracking misuses of the application context
34
+
35
+ ac['__tracer'] = @tracer
36
+ ac[:ruby_eval_allowed] = true
37
+ ac[:definition_in_launchitem_allowed] = true
38
+
39
+ @engine = determine_engine_class(ac).new(ac)
40
+
41
+ @terminated_processes = []
42
+ @engine.get_expression_pool.add_observer(:terminate) do |c, fe, wi|
43
+ @terminated_processes << fe.fei.wfid
44
+ #p [ :terminated, @terminated_processes ]
45
+ end
46
+ end
47
+
48
+ def teardown
49
+
50
+ $OWFE_LOG.level = Logger::INFO
51
+ @engine.stop
52
+ end
53
+
54
+ #
55
+ # returns true when running on a Ruby 1.8.x like interpreter
56
+ #
57
+ def ruby18
58
+
59
+ RUBY_VERSION.match(/^1\.8\./)
60
+ end
61
+
62
+ #
63
+ # launch_thing is a process definition or a launch item
64
+ #
65
+ def assert_trace (launch_thing, expected_trace, opts={})
66
+
67
+ fei = @engine.launch(launch_thing, opts[:launch_opts] || {})
68
+
69
+ wait(fei, opts)
70
+
71
+ yield(@engine) if block_given?
72
+
73
+ assert_engine_clean(fei, opts)
74
+
75
+ assert_equal(expected_trace, @tracer.to_s) if expected_trace
76
+
77
+ purge_engine unless opts[:no_purge]
78
+
79
+ fei
80
+ end
81
+
82
+ protected
83
+
84
+ def log_level_to_debug
85
+
86
+ $OWFE_LOG.level = Logger::DEBUG
87
+ end
88
+
89
+ def wait (fei, opts={})
90
+
91
+ #opts[:wait] ?
92
+ # @engine.wait_for(fei) :
93
+ # sleep(opts[:after] || 0.350)
94
+
95
+ Thread.pass
96
+ return if @terminated_processes.include?(fei.wfid)
97
+ @engine.wait_for(fei)
98
+ end
99
+
100
+ def assert_engine_clean (fei=nil, opts={})
101
+
102
+ assert_no_errors(fei, opts)
103
+ assert_no_remaining_expressions(fei, opts)
104
+ end
105
+
106
+ def assert_no_errors (fei, opts)
107
+
108
+ return if opts[:ignore_errors]
109
+
110
+ ps = if fei
111
+ @engine.process_status(fei.wfid)
112
+ else
113
+ @engine.process_statuses.values.first
114
+ end
115
+
116
+ return unless ps
117
+ return if ps.errors.size == 0
118
+
119
+ # TODO : implement 'banner' function
120
+
121
+ puts '-' * 80
122
+ puts 'caught process error(s)'
123
+ puts
124
+ ps.errors.values.each do |e|
125
+ puts " ** error : #{e.error_class} \"#{e.stacktrace}\""
126
+ end
127
+ puts '-' * 80
128
+
129
+ puts_trace_so_far
130
+
131
+ flunk 'caught process error(s)'
132
+ end
133
+
134
+ def assert_no_remaining_expressions (fei, opts)
135
+
136
+ return if opts[:ignore_errors]
137
+
138
+ expcount = @engine.get_expression_storage.size
139
+ return if expcount == 1
140
+
141
+ 50.times { Thread.pass }
142
+ expcount = @engine.get_expression_storage.size
143
+ return if expcount == 1
144
+
145
+ puts '-' * 80
146
+ puts 'too many expressions left in storage'
147
+ puts
148
+ puts "this test's wfid : #{fei.wfid}"
149
+ puts
150
+ puts 'left :'
151
+ puts
152
+ puts @engine.get_expression_storage.to_s
153
+ puts
154
+ puts '-' * 80
155
+
156
+ puts_trace_so_far
157
+
158
+ flunk 'too many expressions left in storage'
159
+ end
160
+
161
+ def purge_engine
162
+
163
+ @engine.application_context.values.each do |s|
164
+ s.purge if s.respond_to?(:purge)
165
+ end
166
+ FileUtils.rm_rf('work')
167
+ end
168
+
169
+ def puts_trace_so_far
170
+
171
+ #puts '. ' * 40
172
+ puts 'trace so far'
173
+ puts '---8<---'
174
+ puts @tracer.to_s
175
+ puts '--->8---'
176
+ puts '. ' * 40
177
+ end
178
+ end
179
+
180
+ class Tracer
181
+ def initialize
182
+ super
183
+ @trace = ''
184
+ end
185
+ def to_s
186
+ @trace.to_s.strip
187
+ end
188
+ def << s
189
+ @trace << s
190
+ end
191
+ def clear
192
+ @trace = ''
193
+ end
194
+ def puts s
195
+ @trace << "#{s}\n"
196
+ end
197
+ end
198
+
@@ -0,0 +1,136 @@
1
+
2
+ #
3
+ # Testing Ruote (OpenWFEru)
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+ # Fri Mar 6 15:13:40 JST 2009
8
+ #
9
+
10
+ require File.dirname(__FILE__) + '/base'
11
+
12
+ require 'test/ar_test_connection'
13
+ require 'openwfe/extras/participants/ar_participants'
14
+
15
+
16
+ class DbFtArParticipantsTest < Test::Unit::TestCase
17
+ include FunctionalBase
18
+
19
+ def test_sequence
20
+
21
+ pdef = OpenWFE.process_definition :name => 'test' do
22
+ sequence do
23
+ alpha
24
+ bravo
25
+ end
26
+ end
27
+
28
+ @engine.register_participant 'alpha', OpenWFE::Extras::ArParticipant
29
+ @engine.register_participant 'bravo', OpenWFE::Extras::ArParticipant
30
+
31
+ li = OpenWFE::LaunchItem.new(pdef)
32
+ li.brand = 'maserati'
33
+
34
+ clear_workitems
35
+
36
+ @engine.launch(li)
37
+
38
+ sleep 0.350
39
+
40
+ wis = OpenWFE::Extras::ArWorkitem.find(:all)
41
+
42
+ assert_equal 1, wis.size
43
+
44
+ wi = wis.first
45
+
46
+ assert_equal '0.0.0', wi.expid
47
+ assert_equal 'alpha', wi.participant_name
48
+
49
+ wi.delete
50
+ @engine.reply(wi.as_owfe_workitem)
51
+
52
+ sleep 0.350
53
+
54
+ wis = OpenWFE::Extras::ArWorkitem.find(:all)
55
+
56
+ assert_equal 1, wis.size
57
+
58
+ wi = wis.first
59
+
60
+ assert_equal '0.0.1', wi.expid
61
+ assert_equal 'bravo', wi.participant_name
62
+
63
+ wi.delete
64
+ @engine.reply(wi.as_owfe_workitem)
65
+
66
+ sleep 0.350
67
+
68
+ assert_engine_clean
69
+ purge_engine
70
+ end
71
+
72
+ def test_flatten_keywords_0
73
+
74
+ assert_flattened(
75
+ '|a:b|c:d|',
76
+ { 'a' => 'b', 'c' => 'd' })
77
+ assert_flattened(
78
+ '|a:b|c:d|e:|f|g|h|',
79
+ { 'a' => 'b', 'c' => 'd', 'e' => %w{ f g h } })
80
+ assert_flattened(
81
+ '|a:b|c:|d:e|f:g|h:|i|j|',
82
+ { 'a' => 'b', 'c' => { 'd' => 'e', 'f' => 'g', 'h' => %w{ i j } } })
83
+ assert_flattened(
84
+ '|a:b,c|d:e, f|',
85
+ { 'a' => 'b,c', 'd' => 'e, f' })
86
+ assert_flattened(
87
+ '|a:bc|d:e f|',
88
+ { 'a' => 'b|c', 'd' => 'e| f' })
89
+ end
90
+
91
+ def test_search_workitems
92
+
93
+ pdef = OpenWFE.process_definition :name => 'test' do
94
+ participant '${f:target}'
95
+ end
96
+
97
+ @engine.register_participant 'alpha', OpenWFE::Extras::ArParticipant
98
+ @engine.register_participant 'bravo', OpenWFE::Extras::ArParticipant
99
+
100
+ launch(pdef, 'target' => 'alpha')
101
+ launch(pdef, 'target' => 'bravo')
102
+
103
+ sleep 0.350
104
+
105
+ assert_equal(
106
+ 1,
107
+ OpenWFE::Extras::ArWorkitem.search('participant:alpha', nil).size)
108
+ assert_equal(
109
+ 2,
110
+ OpenWFE::Extras::ArWorkitem.search('target:', nil).size)
111
+ assert_equal(
112
+ 1,
113
+ OpenWFE::Extras::ArWorkitem.search(':bravo', nil).size)
114
+
115
+ OpenWFE::Extras::ArWorkitem.destroy_all
116
+ purge_engine
117
+ end
118
+
119
+ def launch (pdef, fields)
120
+ li = OpenWFE::LaunchItem.new(pdef)
121
+ li.fields = li.fields.merge(fields)
122
+ @engine.launch(li)
123
+ end
124
+
125
+ protected
126
+
127
+ def clear_workitems
128
+ OpenWFE::Extras::ArWorkitem.delete_all
129
+ end
130
+
131
+ def assert_flattened (target, h)
132
+
133
+ assert_equal(target, OpenWFE::Extras::ArWorkitem.flatten_keywords(h, nil))
134
+ end
135
+ end
136
+
@@ -0,0 +1,34 @@
1
+
2
+ #
3
+ # Testing Ruote (OpenWFEru)
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+ # Sat Jan 24 22:40:35 JST 2009
8
+ #
9
+
10
+ require File.dirname(__FILE__) + '/base'
11
+
12
+
13
+ class EftProcessDefinitionTest < Test::Unit::TestCase
14
+ include FunctionalBase
15
+
16
+ class Test0 < OpenWFE::ProcessDefinition
17
+ end
18
+ def test_empty_procdef_0
19
+ assert_trace(Test0, '')
20
+ end
21
+
22
+ def test_empty_procdef_1
23
+ assert_trace(OpenWFE.process_definition(:name => 'test_1') { }, '')
24
+ end
25
+
26
+ def test_empty_procdef_xml
27
+ assert_trace(%{
28
+ <process-definition name="test">
29
+ </process-definition>
30
+ },
31
+ '')
32
+ end
33
+ end
34
+
@@ -0,0 +1,60 @@
1
+
2
+ #
3
+ # Testing Ruote (OpenWFEru)
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+ # Tue Feb 3 16:40:16 JST 2009
8
+ #
9
+
10
+ require File.dirname(__FILE__) + '/base'
11
+
12
+
13
+ class EftUnsetTest < Test::Unit::TestCase
14
+ include FunctionalBase
15
+
16
+ def test_unset_variables
17
+
18
+ pdef = OpenWFE.process_definition :name => 'test' do
19
+ sequence do
20
+
21
+ set :v => 'v0', :val => 'a'
22
+ set :v => 'v1', :val => 'b'
23
+ set :v => 'v2', :val => 'c'
24
+
25
+ echo '${v0}${v1}${v2}'
26
+
27
+ unset :v => 'v0'
28
+ unset :var => 'v1'
29
+ unset :variable => 'v2'
30
+
31
+ echo '..${v0}${v1}${v2}'
32
+ end
33
+ end
34
+
35
+ assert_trace(pdef, "abc\n..")
36
+ end
37
+
38
+ def test_unset_fields
39
+
40
+ pdef = OpenWFE.process_definition :name => 'test' do
41
+ sequence do
42
+
43
+ set :f => 'f0', :val => 'a'
44
+ set :f => 'f1', :val => 'b'
45
+ set :f => 'f2', :val => 'c'
46
+
47
+ echo '${f:f0}${f:f1}${f:f2}'
48
+
49
+ unset :f => 'f0'
50
+ unset :fld => 'f1'
51
+ unset :field => 'f2'
52
+
53
+ echo '..${f:f0}${f:f1}${f:f2}'
54
+ end
55
+ end
56
+
57
+ assert_trace(pdef, "abc\n..")
58
+ end
59
+ end
60
+
@@ -0,0 +1,95 @@
1
+
2
+ #
3
+ # Testing Ruote (OpenWFEru)
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+ # Tue Feb 24 14:39:54 JST 2009
8
+ #
9
+
10
+ require File.dirname(__FILE__) + '/base'
11
+
12
+
13
+ class EftSleepTest < Test::Unit::TestCase
14
+ include FunctionalBase
15
+
16
+ def test_sleep_for
17
+
18
+ pdef = OpenWFE.process_definition :name => 'test' do
19
+ concurrence do
20
+ sequence do
21
+ _sleep :for => '1s'
22
+ echo 'a'
23
+ end
24
+ echo 'b'
25
+ end
26
+ end
27
+
28
+ assert_trace(pdef, "b\na")
29
+ end
30
+
31
+ def test_sleep_for_implicit
32
+
33
+ pdef = OpenWFE.process_definition :name => 'test' do
34
+ concurrence do
35
+ sequence do
36
+ _sleep '1s'
37
+ echo 'a'
38
+ end
39
+ echo 'b'
40
+ end
41
+ end
42
+
43
+ assert_trace(pdef, "b\na")
44
+ end
45
+
46
+ def test_sleep_until
47
+
48
+ pdef = OpenWFE.process_definition :name => 'test' do
49
+ concurrence do
50
+ sequence do
51
+ _sleep :until => "#{Time.now + 1}"
52
+ echo 'a'
53
+ end
54
+ echo 'b'
55
+ end
56
+ end
57
+
58
+ assert_trace(pdef, "b\na")
59
+ end
60
+
61
+ def test_sleep_scheduler_job
62
+
63
+ pdef = OpenWFE.process_definition :name => 'test' do
64
+ _sleep '1h'
65
+ end
66
+
67
+ fei = @engine.launch(pdef)
68
+
69
+ sleep 0.350
70
+
71
+ jobs = @engine.get_scheduler.find_jobs(OpenWFE::WaitExpression.name)
72
+
73
+ assert_equal 1, jobs.size
74
+
75
+ purge_engine
76
+ end
77
+
78
+ def test_sleep_scheduler_job_tags
79
+
80
+ pdef = OpenWFE.process_definition :name => 'test' do
81
+ _sleep '1h', :scheduler_tags => 'a, b'
82
+ end
83
+
84
+ fei = @engine.launch(pdef)
85
+
86
+ sleep 0.350
87
+
88
+ assert_equal 1, @engine.get_scheduler.find_jobs('a').size
89
+ assert_equal 1, @engine.get_scheduler.find_jobs('b').size
90
+
91
+ purge_engine
92
+ end
93
+
94
+ end
95
+