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.
- data/README.txt +24 -0
- data/bin/validate-workflow.rb +89 -0
- data/examples/about_state.rb +81 -0
- data/examples/bigflow.rb +19 -0
- data/examples/csv_weather.rb +23 -0
- data/examples/engine_template.rb +247 -0
- data/examples/flowtracing.rb +24 -0
- data/examples/homeworkreview.rb +68 -0
- data/examples/kotoba.rb +22 -0
- data/examples/mano_tracker.rb +172 -0
- data/examples/openwferu.rb +58 -0
- data/examples/quotereporter.rb +157 -0
- data/examples/scheduler_cron_usage.rb +48 -0
- data/examples/scheduler_usage.rb +56 -0
- data/lib/openwfe.rb +41 -0
- data/lib/openwfe/contextual.rb +111 -0
- data/lib/openwfe/def.rb +46 -0
- data/lib/openwfe/engine.rb +37 -0
- data/lib/openwfe/engine/engine.rb +756 -0
- data/lib/openwfe/engine/expool_methods.rb +172 -0
- data/lib/openwfe/engine/file_persisted_engine.rb +105 -0
- data/lib/openwfe/engine/participant_methods.rb +133 -0
- data/lib/openwfe/engine/status_methods.rb +353 -0
- data/lib/openwfe/engine/update_exp_methods.rb +112 -0
- data/lib/openwfe/exceptions.rb +51 -0
- data/lib/openwfe/expool/errorjournal.rb +476 -0
- data/lib/openwfe/expool/expressionpool.rb +1144 -0
- data/lib/openwfe/expool/expstorage.rb +403 -0
- data/lib/openwfe/expool/history.rb +174 -0
- data/lib/openwfe/expool/journal.rb +224 -0
- data/lib/openwfe/expool/journal_replay.rb +321 -0
- data/lib/openwfe/expool/parser.rb +242 -0
- data/lib/openwfe/expool/representation.rb +121 -0
- data/lib/openwfe/expool/threadedexpstorage.rb +188 -0
- data/lib/openwfe/expool/wfidgen.rb +388 -0
- data/lib/openwfe/expool/yamlexpstorage.rb +224 -0
- data/lib/openwfe/expressions/condition.rb +244 -0
- data/lib/openwfe/expressions/environment.rb +246 -0
- data/lib/openwfe/expressions/expressionmap.rb +258 -0
- data/lib/openwfe/expressions/fe_cancel.rb +109 -0
- data/lib/openwfe/expressions/fe_command.rb +241 -0
- data/lib/openwfe/expressions/fe_concurrence.rb +662 -0
- data/lib/openwfe/expressions/fe_cron.rb +259 -0
- data/lib/openwfe/expressions/fe_cursor.rb +259 -0
- data/lib/openwfe/expressions/fe_define.rb +192 -0
- data/lib/openwfe/expressions/fe_do.rb +168 -0
- data/lib/openwfe/expressions/fe_equals.rb +291 -0
- data/lib/openwfe/expressions/fe_filter.rb +129 -0
- data/lib/openwfe/expressions/fe_filter_definition.rb +168 -0
- data/lib/openwfe/expressions/fe_fqv.rb +250 -0
- data/lib/openwfe/expressions/fe_if.rb +303 -0
- data/lib/openwfe/expressions/fe_iterator.rb +145 -0
- data/lib/openwfe/expressions/fe_listen.rb +371 -0
- data/lib/openwfe/expressions/fe_losfor.rb +111 -0
- data/lib/openwfe/expressions/fe_misc.rb +421 -0
- data/lib/openwfe/expressions/fe_participant.rb +269 -0
- data/lib/openwfe/expressions/fe_reserve.rb +212 -0
- data/lib/openwfe/expressions/fe_save.rb +274 -0
- data/lib/openwfe/expressions/fe_sequence.rb +117 -0
- data/lib/openwfe/expressions/fe_set.rb +139 -0
- data/lib/openwfe/expressions/fe_sleep.rb +166 -0
- data/lib/openwfe/expressions/fe_step.rb +159 -0
- data/lib/openwfe/expressions/fe_subprocess.rb +168 -0
- data/lib/openwfe/expressions/fe_timeout.rb +127 -0
- data/lib/openwfe/expressions/fe_wait.rb +78 -0
- data/lib/openwfe/expressions/fe_when.rb +142 -0
- data/lib/openwfe/expressions/filter.rb +104 -0
- data/lib/openwfe/expressions/flowexpression.rb +847 -0
- data/lib/openwfe/expressions/iterator.rb +221 -0
- data/lib/openwfe/expressions/merge.rb +84 -0
- data/lib/openwfe/expressions/raw.rb +547 -0
- data/lib/openwfe/expressions/rprocdef.rb +375 -0
- data/lib/openwfe/expressions/time.rb +333 -0
- data/lib/openwfe/expressions/timeout.rb +178 -0
- data/lib/openwfe/expressions/value.rb +126 -0
- data/lib/openwfe/filterdef.rb +259 -0
- data/lib/openwfe/flowexpressionid.rb +357 -0
- data/lib/openwfe/listeners/listener.rb +97 -0
- data/lib/openwfe/listeners/listeners.rb +139 -0
- data/lib/openwfe/listeners/socketlisteners.rb +272 -0
- data/lib/openwfe/logging.rb +122 -0
- data/lib/openwfe/omixins.rb +95 -0
- data/lib/openwfe/orest/controlclient.rb +119 -0
- data/lib/openwfe/orest/definitions.rb +113 -0
- data/lib/openwfe/orest/exception.rb +60 -0
- data/lib/openwfe/orest/oldrestservlet.rb +279 -0
- data/lib/openwfe/orest/osocket.rb +148 -0
- data/lib/openwfe/orest/restclient.rb +176 -0
- data/lib/openwfe/orest/workitem.rb +206 -0
- data/lib/openwfe/orest/worklistclient.rb +272 -0
- data/lib/openwfe/orest/xmlcodec.rb +670 -0
- data/lib/openwfe/participants.rb +38 -0
- data/lib/openwfe/participants/enoparticipants.rb +230 -0
- data/lib/openwfe/participants/participant.rb +141 -0
- data/lib/openwfe/participants/participantmap.rb +249 -0
- data/lib/openwfe/participants/participants.rb +407 -0
- data/lib/openwfe/participants/soapparticipants.rb +135 -0
- data/lib/openwfe/participants/socketparticipants.rb +202 -0
- data/lib/openwfe/participants/storeparticipants.rb +254 -0
- data/lib/openwfe/rudefinitions.rb +130 -0
- data/lib/openwfe/service.rb +103 -0
- data/lib/openwfe/storage/yamlcustom.rb +106 -0
- data/lib/openwfe/storage/yamlfilestorage.rb +245 -0
- data/lib/openwfe/tools/flowtracer.rb +81 -0
- data/lib/openwfe/util/dollar.rb +217 -0
- data/lib/openwfe/util/irb.rb +86 -0
- data/lib/openwfe/util/observable.rb +144 -0
- data/lib/openwfe/util/ometa.rb +62 -0
- data/lib/openwfe/util/workqueue.rb +124 -0
- data/lib/openwfe/util/xml.rb +418 -0
- data/lib/openwfe/utils.rb +554 -0
- data/lib/openwfe/version.rb +37 -0
- data/lib/openwfe/workitem.rb +499 -0
- data/lib/openwfe/worklist/oldrest.rb +244 -0
- data/lib/openwfe/worklist/storelocks.rb +293 -0
- data/lib/openwfe/worklist/storeparticipant.rb +44 -0
- data/lib/openwfe/worklist/worklist.rb +297 -0
- data/test/README.txt +27 -0
- data/test/back_0916_test.rb +111 -0
- data/test/bm/bm_1_xml_vs_prog.rb +56 -0
- data/test/bm/bm_2_step.rb +109 -0
- data/test/bm/ft_0f_5ms.rb +35 -0
- data/test/bm/ft_26_load.rb +210 -0
- data/test/bm/ft_26b_load.rb +86 -0
- data/test/bm/ft_26c_load.rb +97 -0
- data/test/bm/ft_26d_load.rb +97 -0
- data/test/bm/ft_recu.rb +71 -0
- data/test/clone_test.rb +122 -0
- data/test/concurrence_test.rb +77 -0
- data/test/condition_test.rb +155 -0
- data/test/console_test.rb +12 -0
- data/test/cron_ltest.rb +15 -0
- data/test/description_test.rb +87 -0
- data/test/eno_test.rb +76 -0
- data/test/expmap_test.rb +54 -0
- data/test/expool_20031219_0916.tgz +0 -0
- data/test/fe_lookup_att_test.rb +62 -0
- data/test/fei_test.rb +181 -0
- data/test/file_persisted_engine_test.rb +64 -0
- data/test/file_persistence_test.rb +134 -0
- data/test/filep_cancel_test.rb +123 -0
- data/test/filter_test.rb +109 -0
- data/test/flowtestbase.rb +351 -0
- data/test/ft_0.rb +68 -0
- data/test/ft_0b_sequence.rb +36 -0
- data/test/ft_0c_testname.rb +33 -0
- data/test/ft_0d_participant.rb +30 -0
- data/test/ft_0e_multibody.rb +34 -0
- data/test/ft_10_loop.rb +134 -0
- data/test/ft_11_ppd.rb +415 -0
- data/test/ft_11b_ppd.rb +54 -0
- data/test/ft_12_blockparticipant.rb +97 -0
- data/test/ft_13_eno.rb +52 -0
- data/test/ft_14_subprocess.rb +88 -0
- data/test/ft_14b_subprocess.rb +192 -0
- data/test/ft_14c_subprocess.rb +68 -0
- data/test/ft_15_iterator.rb +216 -0
- data/test/ft_15b_iterator.rb +74 -0
- data/test/ft_16_fqv.rb +73 -0
- data/test/ft_17_condition.rb +84 -0
- data/test/ft_18_pname.rb +56 -0
- data/test/ft_1_unset.rb +175 -0
- data/test/ft_1b_unset.rb +39 -0
- data/test/ft_20_cron.rb +53 -0
- data/test/ft_21_cron.rb +87 -0
- data/test/ft_21b_cron_pause.rb +82 -0
- data/test/ft_22_history.rb +74 -0
- data/test/ft_23_when.rb +77 -0
- data/test/ft_23b_when.rb +70 -0
- data/test/ft_23c_wait.rb +80 -0
- data/test/ft_23d_cww.rb +58 -0
- data/test/ft_24_def.rb +44 -0
- data/test/ft_25_cancel.rb +89 -0
- data/test/ft_27_getflowpos.rb +147 -0
- data/test/ft_28_fileparticipant.rb +63 -0
- data/test/ft_29_httprb.rb +106 -0
- data/test/ft_2_concurrence.rb +135 -0
- data/test/ft_2b_concurrence.rb +188 -0
- data/test/ft_2c_concurrence.rb +64 -0
- data/test/ft_30_socketlistener.rb +203 -0
- data/test/ft_31_flowname.rb +40 -0
- data/test/ft_32_journal.rb +91 -0
- data/test/ft_32c_journal.rb +102 -0
- data/test/ft_32d_journal.rb +84 -0
- data/test/ft_33_description.rb +107 -0
- data/test/ft_34_cancelwfid.rb +80 -0
- data/test/ft_35_localdefs.rb +75 -0
- data/test/ft_36_subprocids.rb +97 -0
- data/test/ft_37_pnames.rb +70 -0
- data/test/ft_38_tag.rb +127 -0
- data/test/ft_38b_tag.rb +161 -0
- data/test/ft_38c_tag.rb +100 -0
- data/test/ft_39_reserve.rb +63 -0
- data/test/ft_39b_reserve.rb +84 -0
- data/test/ft_3_equals.rb +170 -0
- data/test/ft_3b_lookup_vf.rb +83 -0
- data/test/ft_40_defined.rb +61 -0
- data/test/ft_41_case.rb +110 -0
- data/test/ft_42_environments.rb +75 -0
- data/test/ft_43_pat10.rb +85 -0
- data/test/ft_44_save.rb +70 -0
- data/test/ft_44b_restore.rb +212 -0
- data/test/ft_45_citerator.rb +214 -0
- data/test/ft_46_pparams.rb +62 -0
- data/test/ft_47_filter.rb +160 -0
- data/test/ft_48_fe_filter.rb +88 -0
- data/test/ft_49_condition.rb +126 -0
- data/test/ft_4_misc.rb +237 -0
- data/test/ft_50_xml_attribute.rb +155 -0
- data/test/ft_51_stack.rb +55 -0
- data/test/ft_52_obs_participant.rb +123 -0
- data/test/ft_53_null_noop_participant.rb +62 -0
- data/test/ft_54_listen.rb +288 -0
- data/test/ft_54b_listen.rb +66 -0
- data/test/ft_54c_listen.rb +99 -0
- data/test/ft_55_ptimeout.rb +59 -0
- data/test/ft_56_timeout.rb +59 -0
- data/test/ft_57_a.rb +145 -0
- data/test/ft_58_ejournal.rb +151 -0
- data/test/ft_59_ps.rb +150 -0
- data/test/ft_59b_ps_for_pat.rb +58 -0
- data/test/ft_5_time.rb +118 -0
- data/test/ft_60_ecancel.rb +161 -0
- data/test/ft_61_elsub.rb +51 -0
- data/test/ft_62_procparticipant.rb +71 -0
- data/test/ft_63_pause.rb +124 -0
- data/test/ft_64_alias.rb +102 -0
- data/test/ft_64_clone.rb +69 -0
- data/test/ft_65_stringlaunch.rb +59 -0
- data/test/ft_66_subforget.rb +70 -0
- data/test/ft_67_schedlaunch.rb +116 -0
- data/test/ft_68_ifparticipant.rb +70 -0
- data/test/ft_69_cancelmissing.rb +51 -0
- data/test/ft_6_lambda.rb +64 -0
- data/test/ft_70_lookupvar.rb +55 -0
- data/test/ft_71_log.rb +60 -0
- data/test/ft_72_lookup_processes.rb +76 -0
- data/test/ft_73_cancel_sub.rb +139 -0
- data/test/ft_74_block_and_workitem_dup.rb +63 -0
- data/test/ft_75_ruby_attributes.rb +87 -0
- data/test/ft_76_merge_isolate.rb +88 -0
- data/test/ft_77_segments.rb +35 -0
- data/test/ft_78_eval.rb +150 -0
- data/test/ft_79_tticket.rb +187 -0
- data/test/ft_79b_tticket.rb +172 -0
- data/test/ft_79c_outcome.rb +56 -0
- data/test/ft_7_lose.rb +104 -0
- data/test/ft_7b_lose.rb +78 -0
- data/test/ft_80_spname.rb +91 -0
- data/test/ft_81_exp.rb +60 -0
- data/test/ft_82_trecu.rb +46 -0
- data/test/ft_83_badpause.rb +58 -0
- data/test/ft_84_updateexp.rb +198 -0
- data/test/ft_85_dolhash.rb +43 -0
- data/test/ft_86_dollar_fv.rb +68 -0
- data/test/ft_87_define.rb +74 -0
- data/test/ft_8_forget.rb +44 -0
- data/test/ft_9_cursor.rb +145 -0
- data/test/ft_9b_cursor.rb +105 -0
- data/test/ft_tests.rb +124 -0
- data/test/hash_test.rb +75 -0
- data/test/hparticipant_test.rb +164 -0
- data/test/lookup_att_test.rb +90 -0
- data/test/lookup_vf_test.rb +94 -0
- data/test/misc_test.rb +90 -0
- data/test/nut_0_irb.rb +20 -0
- data/test/obs_test.rb +142 -0
- data/test/orest_test.rb +251 -0
- data/test/param_test.rb +290 -0
- data/test/participant_test.rb +101 -0
- data/test/pending.rb +23 -0
- data/test/ps_representation.rb +133 -0
- data/test/rake_ltest.rb +38 -0
- data/test/rake_qtest.rb +68 -0
- data/test/raw_prog_test.rb +412 -0
- data/test/restart_cron_test.rb +136 -0
- data/test/restart_paused_test.rb +98 -0
- data/test/restart_sleep_test.rb +140 -0
- data/test/restart_tests.rb +18 -0
- data/test/restart_when_test.rb +112 -0
- data/test/ruby_procdef_test.rb +132 -0
- data/test/rutest_utils.rb +63 -0
- data/test/sec_test.rb +205 -0
- data/test/slock_test.rb +80 -0
- data/test/storage_test.rb +44 -0
- data/test/test.rb +3 -0
- data/test/timeout_test.rb +105 -0
- data/test/util_xml_test.rb +112 -0
- data/test/wfid_test.rb +175 -0
- data/test/wi_test.rb +75 -0
- metadata +433 -0
data/test/ft_0.rb
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
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 'flowtestbase'
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class FlowTest0 < Test::Unit::TestCase
|
|
14
|
+
include FlowTestBase
|
|
15
|
+
|
|
16
|
+
#def setup
|
|
17
|
+
#end
|
|
18
|
+
|
|
19
|
+
#def teardown
|
|
20
|
+
#end
|
|
21
|
+
|
|
22
|
+
def test_0
|
|
23
|
+
#log_level_to_debug
|
|
24
|
+
dotest(
|
|
25
|
+
'''<process-definition name="n" revision="0">
|
|
26
|
+
<print>ok</print>
|
|
27
|
+
</process-definition>''', "ok")
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def test_1
|
|
31
|
+
dotest(
|
|
32
|
+
'''<process-definition name="n" revision="0">
|
|
33
|
+
</process-definition>''', '')
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def test_2
|
|
37
|
+
#log_level_to_debug
|
|
38
|
+
dotest(
|
|
39
|
+
'''<process-definition name="n" revision="0">
|
|
40
|
+
<sequence>
|
|
41
|
+
<set variable="x" value="y" />
|
|
42
|
+
<print>${x} ${v:x}</print>
|
|
43
|
+
</sequence>
|
|
44
|
+
</process-definition>''', 'y y')
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def test_3
|
|
48
|
+
#log_level_to_debug
|
|
49
|
+
dotest(
|
|
50
|
+
'''<process-definition name="n" revision="0">
|
|
51
|
+
<sequence>
|
|
52
|
+
<set field="x" value="y" />
|
|
53
|
+
<print>${f:x} ${field:x}</print>
|
|
54
|
+
</sequence>
|
|
55
|
+
</process-definition>''', 'y y')
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def test_dollar_notation_2
|
|
59
|
+
dotest(
|
|
60
|
+
'''<process-definition name="n" revision="0">
|
|
61
|
+
<sequence>
|
|
62
|
+
<print>${f:x}X${field:x}</print>
|
|
63
|
+
</sequence>
|
|
64
|
+
</process-definition>''', 'X')
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
end
|
|
68
|
+
|
|
@@ -0,0 +1,36 @@
|
|
|
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 'flowtestbase'
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class FlowTest0b < Test::Unit::TestCase
|
|
14
|
+
include FlowTestBase
|
|
15
|
+
|
|
16
|
+
#def setup
|
|
17
|
+
#end
|
|
18
|
+
|
|
19
|
+
#def teardown
|
|
20
|
+
#end
|
|
21
|
+
|
|
22
|
+
def test_sequence
|
|
23
|
+
dotest(
|
|
24
|
+
'''
|
|
25
|
+
<process-definition name="n" revision="0">
|
|
26
|
+
<sequence>
|
|
27
|
+
<print>a</print>
|
|
28
|
+
<print>b</print>
|
|
29
|
+
</sequence>
|
|
30
|
+
</process-definition>
|
|
31
|
+
'''.strip,
|
|
32
|
+
"a\nb")
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
end
|
|
36
|
+
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
|
|
2
|
+
#
|
|
3
|
+
# Testing OpenWFE
|
|
4
|
+
#
|
|
5
|
+
# John Mettraux at openwfe.org
|
|
6
|
+
#
|
|
7
|
+
# Mon Dec 25 14:27:48 JST 2006
|
|
8
|
+
#
|
|
9
|
+
|
|
10
|
+
require 'flowtestbase'
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class TestTestName < Test::Unit::TestCase
|
|
14
|
+
include FlowTestBase
|
|
15
|
+
|
|
16
|
+
#def setup
|
|
17
|
+
#end
|
|
18
|
+
|
|
19
|
+
#def teardown
|
|
20
|
+
#end
|
|
21
|
+
|
|
22
|
+
def test_name_of_test
|
|
23
|
+
dotest(
|
|
24
|
+
"""
|
|
25
|
+
<process-definition name='#{name_of_test}' revision='0'>
|
|
26
|
+
<print>#{name_of_test}</print>
|
|
27
|
+
</process-definition>
|
|
28
|
+
""".strip,
|
|
29
|
+
"name_of_test")
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
end
|
|
33
|
+
|
|
@@ -0,0 +1,30 @@
|
|
|
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 'flowtestbase'
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class FlowTest0d < Test::Unit::TestCase
|
|
14
|
+
include FlowTestBase
|
|
15
|
+
|
|
16
|
+
#def setup
|
|
17
|
+
#end
|
|
18
|
+
|
|
19
|
+
#def teardown
|
|
20
|
+
#end
|
|
21
|
+
|
|
22
|
+
def test_participant
|
|
23
|
+
dotest(\
|
|
24
|
+
'''<process-definition name="n" revision="0">
|
|
25
|
+
<participant ref="test-alpha" />
|
|
26
|
+
</process-definition>''', "test-alpha")
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end
|
|
30
|
+
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
|
|
2
|
+
#
|
|
3
|
+
# Testing OpenWFE
|
|
4
|
+
#
|
|
5
|
+
# John Mettraux at openwfe.org
|
|
6
|
+
#
|
|
7
|
+
# Tue Nov 6 10:10:57 JST 2007
|
|
8
|
+
#
|
|
9
|
+
|
|
10
|
+
require 'flowtestbase'
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class FlowTest0e < Test::Unit::TestCase
|
|
14
|
+
include FlowTestBase
|
|
15
|
+
|
|
16
|
+
#def setup
|
|
17
|
+
#end
|
|
18
|
+
|
|
19
|
+
#def teardown
|
|
20
|
+
#end
|
|
21
|
+
|
|
22
|
+
def test_multi_body
|
|
23
|
+
|
|
24
|
+
#log_level_to_debug
|
|
25
|
+
|
|
26
|
+
dotest(
|
|
27
|
+
'''<process-definition name="n" revision="0">
|
|
28
|
+
<print>ok</print>
|
|
29
|
+
<print>nok</print>
|
|
30
|
+
</process-definition>''', "ok")
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
34
|
+
|
data/test/ft_10_loop.rb
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
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 'flowtestbase'
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
$s = (0..9).to_a.join("\n").strip
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class FlowTest10 < Test::Unit::TestCase
|
|
17
|
+
include FlowTestBase
|
|
18
|
+
|
|
19
|
+
#def setup
|
|
20
|
+
#end
|
|
21
|
+
|
|
22
|
+
#def teardown
|
|
23
|
+
#end
|
|
24
|
+
|
|
25
|
+
def test_loop_0
|
|
26
|
+
|
|
27
|
+
#log_level_to_debug
|
|
28
|
+
|
|
29
|
+
dotest(
|
|
30
|
+
'<process-definition name="'+name_of_test+'''" revision="0">
|
|
31
|
+
<sequence>
|
|
32
|
+
<reval>$i = 0</reval>
|
|
33
|
+
<loop>
|
|
34
|
+
<print>${r:$i}</print>
|
|
35
|
+
<reval>$i = $i + 1</reval>
|
|
36
|
+
<if>
|
|
37
|
+
<equals value="${r:$i}" other-value="10" />
|
|
38
|
+
<break/>
|
|
39
|
+
</if>
|
|
40
|
+
</loop>
|
|
41
|
+
</sequence>
|
|
42
|
+
</process-definition>''',
|
|
43
|
+
$s)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def test_loop_1
|
|
47
|
+
dotest(
|
|
48
|
+
'<process-definition name="'+name_of_test+'''" revision="0">
|
|
49
|
+
<sequence>
|
|
50
|
+
<reval>$i = 0</reval>
|
|
51
|
+
<loop>
|
|
52
|
+
<print>${r:$i}</print>
|
|
53
|
+
<reval>$i = $i + 1</reval>
|
|
54
|
+
<if rtest="$i == 10">
|
|
55
|
+
<break/>
|
|
56
|
+
</if>
|
|
57
|
+
</loop>
|
|
58
|
+
</sequence>
|
|
59
|
+
</process-definition>''',
|
|
60
|
+
$s)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def test_loop_2
|
|
64
|
+
#log_level_to_debug
|
|
65
|
+
dotest(
|
|
66
|
+
'<process-definition name="'+name_of_test+'''" revision="0">
|
|
67
|
+
<sequence>
|
|
68
|
+
<reval>$i = 0</reval>
|
|
69
|
+
<loop>
|
|
70
|
+
<print>${r:$i}</print>
|
|
71
|
+
<reval>$i = $i + 1</reval>
|
|
72
|
+
<break if="${r:$i} == 10" />
|
|
73
|
+
</loop>
|
|
74
|
+
</sequence>
|
|
75
|
+
</process-definition>''',
|
|
76
|
+
$s)
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def test_loop_3
|
|
80
|
+
dotest(
|
|
81
|
+
'<process-definition name="'+name_of_test+'''" revision="0">
|
|
82
|
+
<sequence>
|
|
83
|
+
<reval>$i = 0</reval>
|
|
84
|
+
<loop>
|
|
85
|
+
<print>${r:$i}</print>
|
|
86
|
+
<reval>$i = $i + 1</reval>
|
|
87
|
+
<break if="${r:$i == 10}" />
|
|
88
|
+
</loop>
|
|
89
|
+
</sequence>
|
|
90
|
+
</process-definition>''',
|
|
91
|
+
$s)
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
def test_loop_4
|
|
95
|
+
dotest(
|
|
96
|
+
'<process-definition name="'+name_of_test+'''" revision="0">
|
|
97
|
+
<sequence>
|
|
98
|
+
<reval>$i = 0</reval>
|
|
99
|
+
<loop>
|
|
100
|
+
<print>${r:$i}</print>
|
|
101
|
+
<reval>$i = $i + 1</reval>
|
|
102
|
+
<break rif="$i == 10" />
|
|
103
|
+
</loop>
|
|
104
|
+
</sequence>
|
|
105
|
+
</process-definition>''',
|
|
106
|
+
$s)
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
def test_loop_5
|
|
110
|
+
|
|
111
|
+
log_level_to_debug
|
|
112
|
+
|
|
113
|
+
dotest(
|
|
114
|
+
'<process-definition name="'+name_of_test+'''" revision="0">
|
|
115
|
+
<sequence>
|
|
116
|
+
<reval>$i = 0</reval>
|
|
117
|
+
<loop>
|
|
118
|
+
<!--
|
|
119
|
+
<reval>$i = $i + 1</reval>
|
|
120
|
+
<set field="f" value="${r:$i}" />
|
|
121
|
+
-->
|
|
122
|
+
<set field="f">
|
|
123
|
+
<reval>$i = $i + 1</reval>
|
|
124
|
+
</set>
|
|
125
|
+
<print>${r:$i}</print>
|
|
126
|
+
<break if="${f:f}" />
|
|
127
|
+
</loop>
|
|
128
|
+
</sequence>
|
|
129
|
+
</process-definition>''',
|
|
130
|
+
'1')
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
end
|
|
134
|
+
|
data/test/ft_11_ppd.rb
ADDED
|
@@ -0,0 +1,415 @@
|
|
|
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 'rubygems'
|
|
11
|
+
|
|
12
|
+
require 'flowtestbase'
|
|
13
|
+
require 'openwfe/def'
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class FlowTest11 < Test::Unit::TestCase
|
|
17
|
+
include FlowTestBase
|
|
18
|
+
|
|
19
|
+
#def setup
|
|
20
|
+
#end
|
|
21
|
+
|
|
22
|
+
#def teardown
|
|
23
|
+
#end
|
|
24
|
+
|
|
25
|
+
#
|
|
26
|
+
# Test 0
|
|
27
|
+
#
|
|
28
|
+
|
|
29
|
+
class TestDefinition0 < OpenWFE::ProcessDefinition
|
|
30
|
+
def make
|
|
31
|
+
process_definition :name => "test0", :revision => "0" do
|
|
32
|
+
sequence do
|
|
33
|
+
_print do "a" end
|
|
34
|
+
_print { "b" }
|
|
35
|
+
_print "c"
|
|
36
|
+
#
|
|
37
|
+
# all these notations for nesting a string
|
|
38
|
+
# are allowed
|
|
39
|
+
#
|
|
40
|
+
# of course, the latter one is the nicest
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def test_ppd_0
|
|
47
|
+
|
|
48
|
+
#log_level_to_debug
|
|
49
|
+
|
|
50
|
+
dotest TestDefinition0, "a\nb\nc"
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
#
|
|
55
|
+
# Test 1
|
|
56
|
+
#
|
|
57
|
+
|
|
58
|
+
class TestDefinition1 < OpenWFE::ProcessDefinition
|
|
59
|
+
def make
|
|
60
|
+
process_definition :name => "test1", :revision => "0" do
|
|
61
|
+
sequence do
|
|
62
|
+
set :variable => "toto", :value => "nada"
|
|
63
|
+
_print "toto:${toto}"
|
|
64
|
+
set :field => "ftoto" do
|
|
65
|
+
"_${toto}__${r:'123'.reverse}"
|
|
66
|
+
end
|
|
67
|
+
_print { "ftoto:${f:ftoto}" }
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def test_ppd_1
|
|
74
|
+
|
|
75
|
+
dotest(
|
|
76
|
+
TestDefinition1,
|
|
77
|
+
"""
|
|
78
|
+
toto:nada
|
|
79
|
+
ftoto:_nada__321
|
|
80
|
+
""".strip,
|
|
81
|
+
true)
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
#
|
|
86
|
+
# Test 2
|
|
87
|
+
#
|
|
88
|
+
|
|
89
|
+
class TestDefinition2 < OpenWFE::ProcessDefinition
|
|
90
|
+
def make
|
|
91
|
+
process_definition :name => "test2", :revision => "0" do
|
|
92
|
+
sequence do
|
|
93
|
+
set :variable => "toto", :value => "nada"
|
|
94
|
+
_if do
|
|
95
|
+
equals :variable_value => "toto", :other_value => "nada"
|
|
96
|
+
_print "toto:${toto}"
|
|
97
|
+
_print "not ok"
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
def test_ppd_2
|
|
105
|
+
|
|
106
|
+
dotest(
|
|
107
|
+
TestDefinition2,
|
|
108
|
+
"toto:nada")
|
|
109
|
+
#true)
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
#
|
|
114
|
+
# Test 3
|
|
115
|
+
#
|
|
116
|
+
|
|
117
|
+
class TestDefinition3 < OpenWFE::ProcessDefinition
|
|
118
|
+
def make
|
|
119
|
+
process_definition :name => "test3", :revision => "0" do
|
|
120
|
+
sequence do
|
|
121
|
+
subprocess :ref => "sub0", :var0 => "a"
|
|
122
|
+
sub0 :var0 => "b"
|
|
123
|
+
end
|
|
124
|
+
process_definition :name => "sub0" do
|
|
125
|
+
_print "var0 is '${var0}'"
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
def test_ppd_3
|
|
132
|
+
|
|
133
|
+
#puts
|
|
134
|
+
#puts TestDefinition3.do_make(ExpressionMap.new(nil, nil)).to_code_s
|
|
135
|
+
#puts
|
|
136
|
+
#puts TestDefinition3.do_make(ExpressionMap.new(nil, nil)).to_s
|
|
137
|
+
|
|
138
|
+
dotest TestDefinition3, "var0 is 'a'\nvar0 is 'b'"
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
#
|
|
143
|
+
# Test 4
|
|
144
|
+
#
|
|
145
|
+
|
|
146
|
+
class TestDefinition4 < OpenWFE::ProcessDefinition
|
|
147
|
+
def make
|
|
148
|
+
process_definition :name => "test4", :revision => "0" do
|
|
149
|
+
sequence do
|
|
150
|
+
sequence do
|
|
151
|
+
_print "a"
|
|
152
|
+
end
|
|
153
|
+
sequence do
|
|
154
|
+
_print "b"
|
|
155
|
+
end
|
|
156
|
+
end
|
|
157
|
+
end
|
|
158
|
+
end
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
CODE4 = """
|
|
162
|
+
process_definition :name => 'test4', :revision => '0' do
|
|
163
|
+
sequence do
|
|
164
|
+
sequence do
|
|
165
|
+
_print do
|
|
166
|
+
'a'
|
|
167
|
+
end
|
|
168
|
+
end
|
|
169
|
+
sequence do
|
|
170
|
+
_print do
|
|
171
|
+
'b'
|
|
172
|
+
end
|
|
173
|
+
end
|
|
174
|
+
end
|
|
175
|
+
end
|
|
176
|
+
""".strip
|
|
177
|
+
|
|
178
|
+
def test_ppd_4
|
|
179
|
+
|
|
180
|
+
s = OpenWFE::ExpressionTree.to_code_s TestDefinition4.do_make
|
|
181
|
+
|
|
182
|
+
dotest(
|
|
183
|
+
TestDefinition4,
|
|
184
|
+
"a\nb")
|
|
185
|
+
#0.300)
|
|
186
|
+
|
|
187
|
+
assert_equal CODE4, s, "nested sequences test failed (4)"
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
#
|
|
192
|
+
# Test 5
|
|
193
|
+
#
|
|
194
|
+
|
|
195
|
+
class TestDefinition5 < OpenWFE::ProcessDefinition
|
|
196
|
+
def make
|
|
197
|
+
process_definition :name => "test5", :revision => "0" do
|
|
198
|
+
sequence do
|
|
199
|
+
sequence do
|
|
200
|
+
_print { "a" }
|
|
201
|
+
end
|
|
202
|
+
sequence do
|
|
203
|
+
_print { "b" }
|
|
204
|
+
end
|
|
205
|
+
end
|
|
206
|
+
end
|
|
207
|
+
end
|
|
208
|
+
end
|
|
209
|
+
|
|
210
|
+
CODE5 = <<-EOS
|
|
211
|
+
process_definition :name => 'test5', :revision => '0' do
|
|
212
|
+
sequence do
|
|
213
|
+
sequence do
|
|
214
|
+
_print do
|
|
215
|
+
'a'
|
|
216
|
+
end
|
|
217
|
+
end
|
|
218
|
+
sequence do
|
|
219
|
+
_print do
|
|
220
|
+
'b'
|
|
221
|
+
end
|
|
222
|
+
end
|
|
223
|
+
end
|
|
224
|
+
end
|
|
225
|
+
EOS
|
|
226
|
+
|
|
227
|
+
def test_ppd_5
|
|
228
|
+
|
|
229
|
+
s = OpenWFE::ExpressionTree.to_code_s(TestDefinition5.do_make)
|
|
230
|
+
|
|
231
|
+
dotest TestDefinition5, "a\nb"
|
|
232
|
+
|
|
233
|
+
assert CODE5, s
|
|
234
|
+
end
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
#
|
|
238
|
+
# Test 6
|
|
239
|
+
#
|
|
240
|
+
|
|
241
|
+
class TestDefinition6 < OpenWFE::ProcessDefinition
|
|
242
|
+
|
|
243
|
+
def initialize (count)
|
|
244
|
+
super()
|
|
245
|
+
@count = count
|
|
246
|
+
end
|
|
247
|
+
|
|
248
|
+
def make
|
|
249
|
+
process_definition :name => "test6", :revision => "0" do
|
|
250
|
+
sequence do
|
|
251
|
+
@count.times do |i|
|
|
252
|
+
_print i
|
|
253
|
+
end
|
|
254
|
+
end
|
|
255
|
+
end
|
|
256
|
+
end
|
|
257
|
+
end
|
|
258
|
+
|
|
259
|
+
def test_ppd_6
|
|
260
|
+
|
|
261
|
+
dotest(
|
|
262
|
+
TestDefinition6.new(3),
|
|
263
|
+
%w{ 0 1 2 }.join("\n"))
|
|
264
|
+
end
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
#
|
|
268
|
+
# Test 7
|
|
269
|
+
#
|
|
270
|
+
|
|
271
|
+
class TestDefinition7 < OpenWFE::ProcessDefinition
|
|
272
|
+
def make
|
|
273
|
+
_process_definition :name => "test7", :revision => "0" do
|
|
274
|
+
_sequence do
|
|
275
|
+
_print "a"
|
|
276
|
+
_print "b"
|
|
277
|
+
end
|
|
278
|
+
end
|
|
279
|
+
end
|
|
280
|
+
end
|
|
281
|
+
|
|
282
|
+
def test_ppd_7
|
|
283
|
+
|
|
284
|
+
dotest(
|
|
285
|
+
TestDefinition7,
|
|
286
|
+
%w{ a b }.join("\n"))
|
|
287
|
+
end
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
#
|
|
291
|
+
# Test 8
|
|
292
|
+
#
|
|
293
|
+
|
|
294
|
+
class TestDefinition8 < OpenWFE::ProcessDefinition
|
|
295
|
+
def make
|
|
296
|
+
process_definition :name => "test8", :revision => "0" do
|
|
297
|
+
toto
|
|
298
|
+
process_definition :name => "toto" do
|
|
299
|
+
_print "toto"
|
|
300
|
+
end
|
|
301
|
+
end
|
|
302
|
+
end
|
|
303
|
+
end
|
|
304
|
+
|
|
305
|
+
def test_ppd_8
|
|
306
|
+
|
|
307
|
+
dotest TestDefinition8, "toto"
|
|
308
|
+
end
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
#
|
|
312
|
+
# Test 9
|
|
313
|
+
#
|
|
314
|
+
|
|
315
|
+
class TestDefinition9 < OpenWFE::ProcessDefinition
|
|
316
|
+
def make
|
|
317
|
+
process_definition :name => "test9", :revision => "0" do
|
|
318
|
+
_toto
|
|
319
|
+
process_definition :name => "toto" do
|
|
320
|
+
_print "toto"
|
|
321
|
+
end
|
|
322
|
+
end
|
|
323
|
+
end
|
|
324
|
+
end
|
|
325
|
+
|
|
326
|
+
def test_ppd_9
|
|
327
|
+
|
|
328
|
+
dotest TestDefinition9, "toto"
|
|
329
|
+
end
|
|
330
|
+
|
|
331
|
+
|
|
332
|
+
#
|
|
333
|
+
# Test 10
|
|
334
|
+
#
|
|
335
|
+
|
|
336
|
+
class TestDefinition10 < OpenWFE::ProcessDefinition
|
|
337
|
+
def make
|
|
338
|
+
process_definition :name => "test10", :revision => "0" do
|
|
339
|
+
sequence do
|
|
340
|
+
participant :ref => "toto_underscore"
|
|
341
|
+
_toto_underscore
|
|
342
|
+
toto_underscore
|
|
343
|
+
end
|
|
344
|
+
end
|
|
345
|
+
end
|
|
346
|
+
end
|
|
347
|
+
|
|
348
|
+
def test_ppd_10
|
|
349
|
+
|
|
350
|
+
@engine.register_participant(:toto_underscore) do |workitem|
|
|
351
|
+
@tracer << "toto\n"
|
|
352
|
+
end
|
|
353
|
+
|
|
354
|
+
dotest TestDefinition10, ([ 'toto' ] * 3).join("\n")
|
|
355
|
+
end
|
|
356
|
+
|
|
357
|
+
|
|
358
|
+
#
|
|
359
|
+
# Test 11
|
|
360
|
+
#
|
|
361
|
+
|
|
362
|
+
class TestDefinition11 < OpenWFE::ProcessDefinition
|
|
363
|
+
def make
|
|
364
|
+
sequence do
|
|
365
|
+
[ :b, :b, :b ].each do |p|
|
|
366
|
+
participant p
|
|
367
|
+
end
|
|
368
|
+
participant "b"
|
|
369
|
+
end
|
|
370
|
+
end
|
|
371
|
+
end
|
|
372
|
+
|
|
373
|
+
def test_ppd_11
|
|
374
|
+
|
|
375
|
+
@engine.register_participant(:b) do |workitem|
|
|
376
|
+
@tracer << "b\n"
|
|
377
|
+
end
|
|
378
|
+
|
|
379
|
+
dotest TestDefinition11, ([ 'b' ] * 4).join("\n")
|
|
380
|
+
end
|
|
381
|
+
|
|
382
|
+
#
|
|
383
|
+
# Test 12
|
|
384
|
+
#
|
|
385
|
+
|
|
386
|
+
class TestDefinition12 < OpenWFE::ProcessDefinition
|
|
387
|
+
sequence do
|
|
388
|
+
_print "main"
|
|
389
|
+
sub_x
|
|
390
|
+
end
|
|
391
|
+
process_definition :name => "sub-x" do
|
|
392
|
+
_print "sub"
|
|
393
|
+
end
|
|
394
|
+
end
|
|
395
|
+
|
|
396
|
+
def test_prog_12
|
|
397
|
+
|
|
398
|
+
dotest TestDefinition12, "main\nsub"
|
|
399
|
+
end
|
|
400
|
+
|
|
401
|
+
|
|
402
|
+
#
|
|
403
|
+
# Test 13
|
|
404
|
+
#
|
|
405
|
+
|
|
406
|
+
class TestDefinition13 < OpenWFE::ProcessDefinition
|
|
407
|
+
end
|
|
408
|
+
|
|
409
|
+
def _test_prog_13
|
|
410
|
+
|
|
411
|
+
dotest TestDefinition13, ""
|
|
412
|
+
end
|
|
413
|
+
|
|
414
|
+
end
|
|
415
|
+
|