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,50 @@
1
+
2
+ #
3
+ # Testing Ruote (OpenWFEru)
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+ # Thu Sep 13 17:46:20 JST 2007
8
+ #
9
+
10
+ require 'fileutils'
11
+
12
+ require File.dirname(__FILE__) + '/base'
13
+
14
+
15
+ class EftLogTest < Test::Unit::TestCase
16
+ include FunctionalBase
17
+
18
+ def test_exp
19
+
20
+ File.open('logs/ruote.log', 'w') { |f| f.write('') }
21
+
22
+ pdef = OpenWFE.process_definition :name => 'test' do
23
+ sequence do
24
+ log 'log:0'
25
+ log do
26
+ 'log:1'
27
+ end
28
+ log :message => 'log:2'
29
+ log :message => 'log:3', :level => 'info'
30
+ end
31
+ end
32
+
33
+ log_level_to_debug # required for the sake of the test
34
+
35
+ assert_trace(pdef, '')
36
+
37
+ return if defined?(ActiveRecord)
38
+ # log format altered by ActiveRecord... Have to fix that one day
39
+
40
+ assert_equal 1, OpenWFE.grep("DEBUG .*log:0", "logs/ruote.log").size
41
+ assert_equal 1, OpenWFE.grep('log:0', 'logs/ruote.log').size
42
+
43
+ assert_equal 1, OpenWFE.grep('log:1', 'logs/ruote.log').size
44
+ assert_equal 4, OpenWFE.grep('log:.$', 'logs/ruote.log').size
45
+
46
+ assert_equal 1, OpenWFE.grep("INFO .*log:3", "logs/ruote.log").size
47
+ assert_equal 1, OpenWFE.grep('log:3', 'logs/ruote.log').size
48
+ end
49
+ end
50
+
@@ -0,0 +1,132 @@
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 EftSetTest < Test::Unit::TestCase
14
+ include FunctionalBase
15
+
16
+ def test_set_variables
17
+
18
+ pdef = OpenWFE.process_definition :name => 'test' do
19
+ sequence do
20
+
21
+ set :v => 'v0', :value => 'a'
22
+ set :var => 'v1', :value => 'b'
23
+ set :variable => 'v2', :value => 'c'
24
+
25
+ set :v => 'v3', :val => 'd'
26
+ set :var => 'v4', :v => 'e' # doesn't work, hence no 'e'
27
+
28
+ echo '${v0} ${v1} ${v2} ${v3} ${v4}'
29
+ end
30
+ end
31
+
32
+ assert_trace(pdef, 'a b c d')
33
+ end
34
+
35
+ def test_set_var_not_string
36
+
37
+ pdef = OpenWFE.process_definition :name => 'test' do
38
+ sequence do
39
+
40
+ set :v => 'v0', :value => [ 1, 2 ]
41
+
42
+ echo '${v0}'
43
+ end
44
+ end
45
+
46
+ assert_trace(pdef, ruby18 ? '12' : '[1, 2]')
47
+ end
48
+
49
+ def test_set_fields
50
+
51
+ pdef = OpenWFE.process_definition :name => 'test' do
52
+ sequence do
53
+
54
+ set :f => 'f0', :val => 'a'
55
+ set :fld => 'f1', :val => 'b'
56
+ set :field => 'f2', :val => 'c'
57
+
58
+ echo '${f:f0} ${f:f1} ${f:f2}'
59
+ end
60
+ end
61
+
62
+ assert_trace(pdef, 'a b c')
63
+ end
64
+
65
+ def test_set_field_not_string
66
+
67
+ pdef = OpenWFE.process_definition :name => 'test' do
68
+ sequence do
69
+
70
+ set :f => 'f0', :value => [ 1, 2 ]
71
+
72
+ echo '${f:f0}'
73
+ end
74
+ end
75
+
76
+ assert_trace(pdef, ruby18 ? '12' : '[1, 2]')
77
+ end
78
+
79
+ def test_set_escaped
80
+
81
+ @engine.register_participant :peek do |workitem|
82
+ @tracer << workitem.fields['f0']
83
+ @tracer << workitem.fields['f1']
84
+ end
85
+
86
+ pdef = OpenWFE.process_definition :name => 'test' do
87
+ sequence do
88
+ set :f => 'f0', :value => '.${v0}', :escape => 'true'
89
+ set :f => 'f1', :value => '.${v1}', :escape => true
90
+ peek
91
+ end
92
+ end
93
+
94
+ assert_trace(pdef, '.${v0}.${v1}')
95
+ end
96
+
97
+ def test_set_nested
98
+
99
+ pdef = OpenWFE.process_definition :name => 'test' do
100
+ sequence do
101
+
102
+ set :f => 'f0' do
103
+ 'a'
104
+ end
105
+
106
+ echo '${f:f0}'
107
+ end
108
+ end
109
+
110
+ assert_trace(pdef, 'a')
111
+ end
112
+
113
+ def test_set_fval_varval
114
+
115
+ pdef = OpenWFE.process_definition :name => 'test' do
116
+ sequence do
117
+
118
+ set :f => 'f0', :value => 'a'
119
+ set :v => 'v0', :value => '0'
120
+ set :f => 'f1', :variable_value => 'v0'
121
+ set :v => 'v1', :field_value => 'f0'
122
+ set :f => 'f2', :var_value => 'v0'
123
+ set :v => 'v2', :f_value => 'f0'
124
+
125
+ echo '${f:f0} ${v0} ${f:f1} ${v1} ${f:f2} ${v2}'
126
+ end
127
+ end
128
+
129
+ assert_trace(pdef, 'a 0 0 a 0 a')
130
+ end
131
+ end
132
+
@@ -0,0 +1,122 @@
1
+
2
+ #
3
+ # testing Ruote
4
+ #
5
+ # since Mon Oct 9 22:19:44 JST 2006
6
+ #
7
+
8
+ #
9
+ # Returns the class of the engine to use, based on the ARGV
10
+ #
11
+ def determine_engine_class (application_context)
12
+
13
+ if ARGV.include?('--help')
14
+ puts %{
15
+
16
+ ARGUMENTS for functional tests :
17
+
18
+ --fs : used OpenWFE::FsPersistedEngine (fast)
19
+ -y : makes 'fs' store expressions as YAML (slow)
20
+
21
+ --tc : used OpenWFE::TcPersistedEngine (fast) (rufu/edo if possible)
22
+ --tt : used OpenWFE::TtPersistedEngine (fast) (rufus/tokyo Tyrant)
23
+ --TC : used OpenWFE::TcPersistedEngine (fast) (rufus/tokyo)
24
+
25
+ --fp : uses OpenWFE::FilePersistedEngine (slow and deprecated)
26
+ --cfp : uses OpenWFE::CachedFilePersistedEngine (fast and deprecated)
27
+
28
+ --db : uses OpenWFE::Extras::DbPersistedEngine
29
+ --ar : uses OpenWFE::Extras::ArPersistedEngine (ActiveRecord)
30
+ --dm : uses OpenWFE::Extras::DmPersistedEngine (DataMapper)
31
+
32
+ -C : disable caching (used for thorough persistence testing)
33
+
34
+ else uses the in-memory OpenWFE::Engine (fastest, but no persistence at all)
35
+
36
+ }
37
+ exit 0
38
+ end
39
+
40
+ require 'openwfe/engine'
41
+
42
+ application_context[:persist_as_yaml] = true if ARGV.include?('-y')
43
+ application_context[:no_expstorage_cache] = true if ARGV.include?('-C')
44
+
45
+ klass = if $ruote_engine_class
46
+
47
+ $ruote_engine_class
48
+
49
+ else
50
+
51
+ if ARGV.include?('--fp') # very slow
52
+
53
+ require 'openwfe/engine/file_persisted_engine'
54
+ OpenWFE::FilePersistedEngine
55
+
56
+ elsif ARGV.include?('--cfp') # fast but not 100% robust
57
+
58
+ require 'openwfe/engine/file_persisted_engine'
59
+ OpenWFE::CachedFilePersistedEngine
60
+
61
+ elsif ARGV.include?('--tc') # fast and robust
62
+
63
+ application_context[:use_rufus_tokyo] = true
64
+ # forces to use FFI based bindings (2 times slower)
65
+
66
+ require 'openwfe/engine/tc_engine'
67
+ OpenWFE::TcPersistedEngine
68
+
69
+ elsif ARGV.include?('--TC') # fast and robust, fastest
70
+
71
+ require 'openwfe/engine/tc_engine'
72
+ OpenWFE::TcPersistedEngine
73
+
74
+ elsif ARGV.include?('--tt') # not slow, robust, remote
75
+
76
+ require 'openwfe/engine/tt_engine'
77
+ OpenWFE::TtPersistedEngine
78
+
79
+ elsif ARGV.include?('--fs') # fast and robust
80
+
81
+ require 'openwfe/engine/fs_engine'
82
+ OpenWFE::FsPersistedEngine
83
+
84
+ elsif ARGV.include?('--db')
85
+
86
+ require File.dirname(__FILE__) + '/../ar_test_connection'
87
+ require 'openwfe/extras/engine/db_persisted_engine'
88
+ OpenWFE::Extras::DbPersistedEngine
89
+
90
+ elsif ARGV.include?('--ar')
91
+
92
+ require File.dirname(__FILE__) + '/../ar_test_connection'
93
+ require 'openwfe/extras/engine/ar_engine'
94
+ OpenWFE::Extras::ArPersistedEngine
95
+
96
+ elsif ARGV.include?('--dm')
97
+
98
+ require File.dirname(__FILE__) + '/../dm_test_connection'
99
+ require 'openwfe/extras/engine/dm_engine'
100
+ OpenWFE::Extras::DmPersistedEngine
101
+
102
+ else # in-memory, use only for testing !
103
+
104
+ OpenWFE::Engine
105
+ end
106
+ end
107
+
108
+ unless $advertised
109
+
110
+ yaml = application_context[:persist_as_yaml] ? ' (yaml)' : ''
111
+ cache = application_context[:no_expstorage_cache] ? ' (no cache)' : ''
112
+
113
+ puts
114
+ puts " using engine of class #{klass}#{yaml}#{cache}"
115
+ puts
116
+
117
+ $advertised = true
118
+ end
119
+
120
+ klass
121
+ end
122
+
@@ -0,0 +1,27 @@
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__) + '/base'
11
+
12
+
13
+ class FtVarsAtLaunchTest < Test::Unit::TestCase
14
+ include FunctionalBase
15
+
16
+ class Test0 < OpenWFE::ProcessDefinition
17
+ echo '${var0}'
18
+ end
19
+
20
+ def test_vars_at_launch
21
+ assert_trace(
22
+ Test0,
23
+ 'val0',
24
+ :launch_opts => { :variables => { 'var0' => 'val0' } })
25
+ end
26
+ end
27
+
@@ -0,0 +1,46 @@
1
+
2
+ #
3
+ # Testing Ruote (OpenWFEru)
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+ # Since Sat Jul 7 22:44:00 JST 2007 (tanabata)
8
+ #
9
+
10
+ require File.dirname(__FILE__) + '/base'
11
+
12
+ require 'openwfe/participants/store_participants'
13
+
14
+
15
+ class FtProcessStatusTest < Test::Unit::TestCase
16
+ include FunctionalBase
17
+
18
+ def test_process_status
19
+
20
+ #log_level_to_debug
21
+
22
+ pdef = OpenWFE.process_definition :name => 'test' do
23
+ store_a
24
+ end
25
+
26
+ sa = @engine.register_participant('store_a', OpenWFE::HashParticipant)
27
+
28
+ fei = @engine.launch(pdef)
29
+
30
+ sa.join # resumes as soon as a workitem reaches the participant
31
+
32
+ ps = @engine.process_statuses
33
+
34
+ #p ps[fei.wfid].all_expressions.collect { |fexp| fexp.fei.to_s }
35
+
36
+ assert_equal 1, ps.size
37
+
38
+ assert_equal 1, ps[fei.wfid].expressions.size
39
+ assert_equal 3, ps[fei.wfid].all_expressions.size
40
+ assert_equal 1, ps[fei.wfid].applied_workitems.size
41
+ assert_equal 0, ps[fei.wfid].errors.size
42
+
43
+ purge_engine
44
+ end
45
+ end
46
+
@@ -0,0 +1,45 @@
1
+
2
+ #
3
+ # Testing Ruote (OpenWFEru)
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+ # Since Mon Oct 9 22:19:44 JST 2006
8
+ #
9
+
10
+ require File.dirname(__FILE__) + '/base'
11
+
12
+ require 'openwfe/listeners/listeners'
13
+ require 'openwfe/participants/participants'
14
+
15
+
16
+ class FtFileListenerTest < Test::Unit::TestCase
17
+ include FunctionalBase
18
+
19
+ def test_file_listener
20
+
21
+ pdef = OpenWFE.process_definition :name => 'test' do
22
+ sequence do
23
+ participant :fp
24
+ echo 'done.'
25
+ end
26
+ end
27
+
28
+ FileUtils.mkdir('work/in') unless File.exist?('work/in')
29
+
30
+ fp = @engine.register_participant(:fp, OpenWFE::FileParticipant)
31
+ @engine.register_listener(OpenWFE::FileListener, :freq => '300')
32
+
33
+ fei = @engine.launch(pdef)
34
+ sleep 0.350
35
+
36
+ assert_equal '', @tracer.to_s
37
+
38
+ Dir['work/out/*.yaml'].each { |f| FileUtils.mv(f, 'work/in/') }
39
+
40
+ sleep 0.700
41
+
42
+ assert_equal 'done.', @tracer.to_s
43
+ end
44
+ end
45
+
@@ -0,0 +1,171 @@
1
+
2
+ #
3
+ # Testing Ruote (OpenWFEru)
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+ # Since Mon Oct 9 22:19:44 JST 2006
8
+ #
9
+
10
+ require File.dirname(__FILE__) + '/base'
11
+
12
+
13
+ class FtOnCancelTest < Test::Unit::TestCase
14
+ include FunctionalBase
15
+
16
+ def test_on_cancel_participant
17
+
18
+ pdef = OpenWFE.process_definition :name => 'test' do
19
+ sequence :on_cancel => 'decommission' do
20
+ alpha
21
+ end
22
+ end
23
+
24
+ @engine.register_participant(:alpha, OpenWFE::NullParticipant)
25
+ # receives workitems, discards them, doesn't reply to the engine
26
+
27
+ @engine.register_participant(:decommission) do |workitem|
28
+ @tracer << "#{workitem.fei.wfid} decom\n"
29
+ end
30
+
31
+ fei = @engine.launch(pdef)
32
+
33
+ sleep 0.350
34
+
35
+ assert_equal '', @tracer.to_s
36
+
37
+ ps = @engine.process_status(fei)
38
+
39
+ assert_equal 1, ps.expressions.size
40
+ assert_equal 'alpha', ps.expressions.first.fei.expname
41
+
42
+ @engine.cancel_process(fei)
43
+
44
+ sleep 0.350
45
+
46
+ assert_equal "#{fei.wfid}.0 decom", @tracer.to_s
47
+
48
+ assert_nil @engine.process_status(fei)
49
+ end
50
+
51
+ def test_on_cancel_subprocess
52
+
53
+ pdef = OpenWFE.process_definition :name => 'test' do
54
+ sequence :on_cancel => 'decommission' do
55
+ alpha
56
+ end
57
+ process_definition :name => 'decommission' do
58
+ sequence do
59
+ echo 'decommission...'
60
+ echo 'decommissioned.'
61
+ end
62
+ end
63
+ end
64
+
65
+ @engine.register_participant(:alpha, OpenWFE::NullParticipant)
66
+ # receives workitems, discards them, doesn't reply to the engine
67
+
68
+ fei = @engine.launch(pdef)
69
+
70
+ sleep 0.350
71
+
72
+ assert_equal '', @tracer.to_s
73
+
74
+ @engine.cancel_process(fei)
75
+
76
+ sleep 0.350
77
+
78
+ assert_equal "decommission...\ndecommissioned.", @tracer.to_s
79
+
80
+ assert_nil @engine.process_status(fei)
81
+ end
82
+
83
+ def test_on_cancel_via_cancel_process_expression
84
+
85
+ pdef = OpenWFE.process_definition :name => 'test' do
86
+ sequence :on_cancel => 'decommission' do
87
+ echo 'a'
88
+ cancel_process
89
+ echo 'b'
90
+ end
91
+ process_definition :name => 'decommission' do
92
+ sequence do
93
+ echo 'y'
94
+ echo 'z'
95
+ end
96
+ end
97
+ end
98
+
99
+ fei = @engine.launch(pdef)
100
+
101
+ sleep 0.350
102
+
103
+ assert_equal "a\ny\nz", @tracer.to_s
104
+
105
+ assert_nil @engine.process_status(fei)
106
+ end
107
+
108
+ def test_on_cancel_and_variables
109
+
110
+ pdef = OpenWFE.process_definition :name => 'test' do
111
+ sequence :on_cancel => 'decommission' do
112
+ echo 'a'
113
+ set :var => 'v0', :val => 'z'
114
+ cancel_process
115
+ echo 'b'
116
+ end
117
+ process_definition :name => 'decommission' do
118
+ sequence do
119
+ echo '${v0}'
120
+ end
121
+ end
122
+ end
123
+
124
+ fei = @engine.launch(pdef)
125
+
126
+ sleep 0.350
127
+
128
+ assert_equal "a\nz", @tracer.to_s
129
+
130
+ assert_nil @engine.process_status(fei)
131
+ end
132
+
133
+ def test_on_cancel_and_undo
134
+
135
+ pdef = OpenWFE.process_definition :name => 'test' do
136
+ sequence :on_cancel => 'decom', :tag => 'seq' do
137
+ echo 'a'
138
+ undo 'seq'
139
+ echo 'b'
140
+ end
141
+ process_definition :name => 'decom' do
142
+ echo 'd'
143
+ end
144
+ end
145
+
146
+ assert_trace pdef, "a\nd"
147
+ end
148
+
149
+ def test_on_cancel_and_redo
150
+
151
+ pdef = OpenWFE.process_definition :name => 'test' do
152
+ sequence :on_cancel => 'decom', :tag => 'seq' do
153
+ echo 'a'
154
+ _redo 'seq'
155
+ echo 'b'
156
+ end
157
+ process_definition :name => 'decom' do
158
+ echo 'd'
159
+ end
160
+ end
161
+
162
+ fei = @engine.launch(pdef)
163
+
164
+ sleep 0.350
165
+
166
+ assert_equal %w{ a d a b }.join("\n"), @tracer.to_s
167
+
168
+ assert_nil @engine.process_status(fei)
169
+ end
170
+ end
171
+