summaryrefslogtreecommitdiff
path: root/addons/escoria-core/testing/ashes/interpreter/fixtures
diff options
context:
space:
mode:
Diffstat (limited to 'addons/escoria-core/testing/ashes/interpreter/fixtures')
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/background_duplicate_suppression.esc3
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/background_duplicate_suppression.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/block_scope_restores_after_break.esc8
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/block_scope_restores_after_break.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/break_two_exits_two_dialog_levels.esc14
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/break_two_exits_two_dialog_levels.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/channel_interrupt_clears_queue.esc7
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/channel_interrupt_clears_queue.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/channel_interrupt_isolation.esc9
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/channel_interrupt_isolation.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/channel_queue_progress_isolated.esc12
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/channel_queue_progress_isolated.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/concurrent_new_global_visibility.esc7
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/concurrent_new_global_visibility.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_in_dialog_option.esc7
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_in_dialog_option.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_in_loop.esc7
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_in_loop.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_interrupt.esc5
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_interrupt.esc.uid0
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_interrupt_in_dialog.esc7
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_interrupt_in_dialog.esc.uid0
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_interrupt_in_multi_loop.esc8
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_interrupt_in_multi_loop.esc.uid0
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_ordering.esc4
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_ordering.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_exhausted_options_runs_followup.esc14
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_exhausted_options_runs_followup.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key.esc6
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key_beats_legacy_prefix.esc4
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key_beats_legacy_prefix.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key_with_condition.esc7
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key_with_condition.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key_with_expression.esc5
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key_with_expression.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_scope_shadowing.esc9
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_scope_shadowing.esc.uid0
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_args_reach_runtime.esc6
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_args_reach_runtime.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_avatar_type.esc4
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_avatar_type.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_timeout_option_negative.esc4
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_timeout_option_negative.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_timeout_option_type.esc4
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_timeout_option_type.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_timeout_type.esc4
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_timeout_type.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_timeout_hidden_authored_default_after_filtering.esc10
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_timeout_visible_authored_default_after_filtering.esc10
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/done_exits_entire_nested_dialog.esc11
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/done_exits_entire_nested_dialog.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/done_nested_block_in_dialog.esc7
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/done_nested_block_in_dialog.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/duplicate_exact_target_event_overwrites.esc5
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/duplicate_exact_target_event_overwrites.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/global_interrupt_clears_all_channels.esc15
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/global_interrupt_clears_all_channels.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/global_interrupt_preserves_exceptions.esc17
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/global_interrupt_preserves_exceptions.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/immediate_command_ordering.esc4
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/immediate_command_ordering.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/interpreter_runtime_state_persists_between_events.esc11
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/interpreter_runtime_state_persists_between_events.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_command_does_not_continue.esc4
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_command_does_not_continue.esc.uid0
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_command_in_dialog_stops_event.esc6
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_command_in_dialog_stops_event.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_command_in_loop_stops_event.esc7
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_command_in_loop_stops_event.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_numeric_comparison.esc3
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_numeric_comparison.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/multi_target_use_events.esc8
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/multi_target_use_events.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/nested_dialog_break_one.esc11
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/nested_dialog_break_one.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/print_two_args.esc2
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/print_two_args.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/print_zero_args.esc2
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/print_zero_args.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/queue_event_block_waits_for_correct_background_event.esc10
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/queue_event_block_waits_for_correct_background_event.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/queue_event_block_waits_for_correct_front_event.esc10
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/queue_event_block_waits_for_correct_front_event.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/scheduled_event_interrupted_before_dispatch.esc7
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/scheduled_event_interrupted_before_dispatch.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/scheduled_front_event_with_busy_background.esc12
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/scheduled_front_event_with_busy_background.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/stop_in_dialog_option.esc6
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/stop_in_dialog_option.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/stop_nested_block.esc5
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/stop_nested_block.esc.uid1
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/trigger_targeted_events_use_object_id.esc11
-rw-r--r--addons/escoria-core/testing/ashes/interpreter/fixtures/trigger_targeted_events_use_object_id.esc.uid1
94 files changed, 400 insertions, 0 deletions
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/background_duplicate_suppression.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/background_duplicate_suppression.esc
new file mode 100644
index 0000000..6ab1752
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/background_duplicate_suppression.esc
@@ -0,0 +1,3 @@
+:repeat_event
+ test_delayed_set_global("background_duplicate_last", "tick", 0.05)
+ inc_global("background_duplicate_count")
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/background_duplicate_suppression.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/background_duplicate_suppression.esc.uid
new file mode 100644
index 0000000..eeed814
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/background_duplicate_suppression.esc.uid
@@ -0,0 +1 @@
+uid://c5o8v1l4n3xmd
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/block_scope_restores_after_break.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/block_scope_restores_after_break.esc
new file mode 100644
index 0000000..e4c2d34
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/block_scope_restores_after_break.esc
@@ -0,0 +1,8 @@
+:test
+ global result = 0
+ var x = 1
+ while true:
+ if true:
+ var x = 2
+ break
+ result = x
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/block_scope_restores_after_break.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/block_scope_restores_after_break.esc.uid
new file mode 100644
index 0000000..1060cfd
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/block_scope_restores_after_break.esc.uid
@@ -0,0 +1 @@
+uid://ccf4pbps7lq2k
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/break_two_exits_two_dialog_levels.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/break_two_exits_two_dialog_levels.esc
new file mode 100644
index 0000000..cb170eb
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/break_two_exits_two_dialog_levels.esc
@@ -0,0 +1,14 @@
+:test
+ global result = "start"
+ ?!
+ - "Outer"
+ ?!
+ - "Middle"
+ ?!
+ - "Break out"
+ break 2
+ result = "after_inner"
+ result = "after_middle"
+ - "Exit outer"
+ break
+ result = result + "-done"
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/break_two_exits_two_dialog_levels.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/break_two_exits_two_dialog_levels.esc.uid
new file mode 100644
index 0000000..31dc1f6
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/break_two_exits_two_dialog_levels.esc.uid
@@ -0,0 +1 @@
+uid://dorj4y3h76w2j
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/channel_interrupt_clears_queue.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/channel_interrupt_clears_queue.esc
new file mode 100644
index 0000000..4e9f649
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/channel_interrupt_clears_queue.esc
@@ -0,0 +1,7 @@
+:first
+ global bg_queue_result = "first"
+ test_interruptible_set_global("bg_queue_result", "running", "bg_queue_interrupted", 0.2)
+ bg_queue_result = bg_queue_result + "-after"
+
+:second
+ bg_queue_result = "second"
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/channel_interrupt_clears_queue.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/channel_interrupt_clears_queue.esc.uid
new file mode 100644
index 0000000..45a95b6
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/channel_interrupt_clears_queue.esc.uid
@@ -0,0 +1 @@
+uid://dp5nx4h5bqgu1
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/channel_interrupt_isolation.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/channel_interrupt_isolation.esc
new file mode 100644
index 0000000..e3130d4
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/channel_interrupt_isolation.esc
@@ -0,0 +1,9 @@
+:front_event
+ global channel_front_result = "start"
+ test_interruptible_set_global("channel_front_result", "front-cmd", "channel_front_was_interrupted", 0.2)
+ channel_front_result = channel_front_result + "-after"
+
+:background_event
+ global channel_background_result = "start"
+ test_interruptible_set_global("channel_background_result", "bg-cmd", "channel_background_was_interrupted", 0.2)
+ channel_background_result = channel_background_result + "-after"
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/channel_interrupt_isolation.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/channel_interrupt_isolation.esc.uid
new file mode 100644
index 0000000..5e3ad25
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/channel_interrupt_isolation.esc.uid
@@ -0,0 +1 @@
+uid://cx76t0u0r5f4f
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/channel_queue_progress_isolated.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/channel_queue_progress_isolated.esc
new file mode 100644
index 0000000..31098f8
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/channel_queue_progress_isolated.esc
@@ -0,0 +1,12 @@
+:front_event
+ global isolated_front_result = "start"
+ test_interruptible_set_global("isolated_front_result", "front-cmd", "isolated_front_interrupted", 0.2)
+ isolated_front_result = isolated_front_result + "-after"
+
+:background_first
+ global isolated_background_result = "start"
+ test_interruptible_set_global("isolated_background_result", "first-cmd", "isolated_background_interrupted", 0.2)
+ isolated_background_result = isolated_background_result + "-after-first"
+
+:background_second
+ isolated_background_result = isolated_background_result + "-second"
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/channel_queue_progress_isolated.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/channel_queue_progress_isolated.esc.uid
new file mode 100644
index 0000000..7961883
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/channel_queue_progress_isolated.esc.uid
@@ -0,0 +1 @@
+uid://dzq6qk1ufhcv0
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/concurrent_new_global_visibility.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/concurrent_new_global_visibility.esc
new file mode 100644
index 0000000..3df3b97
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/concurrent_new_global_visibility.esc
@@ -0,0 +1,7 @@
+:front_waits_for_new_global
+ global concurrent_visibility_result = "start"
+ test_delayed_set_global("concurrent_visibility_progress", "waiting", 0.2)
+ concurrent_visibility_result = shared_runtime_global
+
+:background_declares_new_global
+ global shared_runtime_global = "from-background"
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/concurrent_new_global_visibility.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/concurrent_new_global_visibility.esc.uid
new file mode 100644
index 0000000..f19670e
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/concurrent_new_global_visibility.esc.uid
@@ -0,0 +1 @@
+uid://a226b7bb41b142b5812d0d3dbd389a31
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_in_dialog_option.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_in_dialog_option.esc
new file mode 100644
index 0000000..2ae480f
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_in_dialog_option.esc
@@ -0,0 +1,7 @@
+:test
+ global result = "unset"
+ ?!
+ - "Run delayed"
+ test_delayed_set_global("result", "cmd", 0.01)
+ break
+ result = result + "-after"
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_in_dialog_option.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_in_dialog_option.esc.uid
new file mode 100644
index 0000000..d89858e
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_in_dialog_option.esc.uid
@@ -0,0 +1 @@
+uid://e0743a93c87c4db4af251658723ed469
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_in_loop.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_in_loop.esc
new file mode 100644
index 0000000..e55b9a6
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_in_loop.esc
@@ -0,0 +1,7 @@
+:test
+ global result = "start"
+ global count = 0
+ while count < 1:
+ test_delayed_set_global("result", "cmd", 0.01)
+ count = count + 1
+ result = result + "-after"
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_in_loop.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_in_loop.esc.uid
new file mode 100644
index 0000000..e832298
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_in_loop.esc.uid
@@ -0,0 +1 @@
+uid://c08224d490434f5dbe8529aa021c6041
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_interrupt.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_interrupt.esc
new file mode 100644
index 0000000..5aa9aed
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_interrupt.esc
@@ -0,0 +1,5 @@
+:test
+ global result = "start"
+ global was_interrupted = false
+ test_interruptible_set_global("result", "cmd", "was_interrupted", 0.2)
+ result = result + "-after"
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_interrupt.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_interrupt.esc.uid
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_interrupt.esc.uid
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_interrupt_in_dialog.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_interrupt_in_dialog.esc
new file mode 100644
index 0000000..e9187b1
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_interrupt_in_dialog.esc
@@ -0,0 +1,7 @@
+:test
+ global result = "start"
+ global was_interrupted = false
+ ?!
+ - "Wait"
+ test_interruptible_set_global("result", "cmd", "was_interrupted", 0.2)
+ result = result + "-after"
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_interrupt_in_dialog.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_interrupt_in_dialog.esc.uid
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_interrupt_in_dialog.esc.uid
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_interrupt_in_multi_loop.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_interrupt_in_multi_loop.esc
new file mode 100644
index 0000000..fc19824
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_interrupt_in_multi_loop.esc
@@ -0,0 +1,8 @@
+:test
+ global result = "start"
+ global was_interrupted = false
+ global count = 0
+ while count < 3:
+ test_interruptible_set_global("result", "cmd", "was_interrupted", 0.2)
+ count = count + 1
+ result = result + "-after"
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_interrupt_in_multi_loop.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_interrupt_in_multi_loop.esc.uid
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_interrupt_in_multi_loop.esc.uid
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_ordering.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_ordering.esc
new file mode 100644
index 0000000..52ef2a4
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_ordering.esc
@@ -0,0 +1,4 @@
+:test
+ global result = "unset"
+ test_delayed_set_global("result", "cmd", 0.01)
+ result = result + "-after"
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_ordering.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_ordering.esc.uid
new file mode 100644
index 0000000..a014454
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/delayed_command_ordering.esc.uid
@@ -0,0 +1 @@
+uid://bl7s16m8hlyj1
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_exhausted_options_runs_followup.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_exhausted_options_runs_followup.esc
new file mode 100644
index 0000000..eaf762e
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_exhausted_options_runs_followup.esc
@@ -0,0 +1,14 @@
+:talk
+ global result = "start"
+ global option1_is_valid = true
+ global option2_is_valid = true
+
+ ?!
+ - "option1" [option1_is_valid]
+ result = result + "-say1"
+ option1_is_valid = false
+ - "option2" [option2_is_valid]
+ result = result + "-say2"
+ option2_is_valid = false
+
+ result = result + "-finished"
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_exhausted_options_runs_followup.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_exhausted_options_runs_followup.esc.uid
new file mode 100644
index 0000000..fac2cb3
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_exhausted_options_runs_followup.esc.uid
@@ -0,0 +1 @@
+uid://cn1f4l17yg4x8
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key.esc
new file mode 100644
index 0000000..69f88db
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key.esc
@@ -0,0 +1,6 @@
+:talk
+ ?!
+ - UNCLE_SVEN:"Uncle Sven sends regards."
+ break
+ - "Fallback"
+ break
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key.esc.uid
new file mode 100644
index 0000000..d371627
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key.esc.uid
@@ -0,0 +1 @@
+uid://dcjcq0w2qj1h2
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key_beats_legacy_prefix.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key_beats_legacy_prefix.esc
new file mode 100644
index 0000000..1be9d33
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key_beats_legacy_prefix.esc
@@ -0,0 +1,4 @@
+:talk
+ ?!
+ - OUTER_KEY:"INNER_KEY:Fallback text"
+ break
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key_beats_legacy_prefix.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key_beats_legacy_prefix.esc.uid
new file mode 100644
index 0000000..aff1543
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key_beats_legacy_prefix.esc.uid
@@ -0,0 +1 @@
+uid://cb71rbl5a7hlj
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key_with_condition.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key_with_condition.esc
new file mode 100644
index 0000000..718a5fc
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key_with_condition.esc
@@ -0,0 +1,7 @@
+:talk
+ global show_first = true
+ ?!
+ - CONDITIONAL_KEY:"Conditional option" [show_first]
+ break
+ - HIDDEN_KEY:"Hidden option" [false]
+ break
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key_with_condition.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key_with_condition.esc.uid
new file mode 100644
index 0000000..4f944b1
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key_with_condition.esc.uid
@@ -0,0 +1 @@
+uid://bnep8t7ivgu7f
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key_with_expression.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key_with_expression.esc
new file mode 100644
index 0000000..587bd39
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key_with_expression.esc
@@ -0,0 +1,5 @@
+:talk
+ var option_text = "Dynamic option"
+ ?!
+ - DYNAMIC_KEY:option_text
+ break
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key_with_expression.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key_with_expression.esc.uid
new file mode 100644
index 0000000..56eee44
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_option_translation_key_with_expression.esc.uid
@@ -0,0 +1 @@
+uid://bf67f4h73tba2
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_scope_shadowing.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_scope_shadowing.esc
new file mode 100644
index 0000000..924cf52
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_scope_shadowing.esc
@@ -0,0 +1,9 @@
+:test
+ global result = "start"
+ var x = "outer"
+ ?!
+ - "Use inner"
+ var x = "inner"
+ result = x
+ break
+ result = result + ":" + x
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_scope_shadowing.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_scope_shadowing.esc.uid
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_scope_shadowing.esc.uid
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_args_reach_runtime.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_args_reach_runtime.esc
new file mode 100644
index 0000000..aab29c6
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_args_reach_runtime.esc
@@ -0,0 +1,6 @@
+:talk
+ ?! "res://game/dialog_avatars/player.tres" 5 2
+ - "First option"
+ pass
+ - "Second option"
+ break
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_args_reach_runtime.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_args_reach_runtime.esc.uid
new file mode 100644
index 0000000..8a474a9
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_args_reach_runtime.esc.uid
@@ -0,0 +1 @@
+uid://b3a4m3l6nr6m7
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_avatar_type.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_avatar_type.esc
new file mode 100644
index 0000000..368ef0b
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_avatar_type.esc
@@ -0,0 +1,4 @@
+:talk
+ ?! 123 5 2
+ - "Only option"
+ break
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_avatar_type.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_avatar_type.esc.uid
new file mode 100644
index 0000000..5708f33
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_avatar_type.esc.uid
@@ -0,0 +1 @@
+uid://chev11x0d0lg0
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_timeout_option_negative.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_timeout_option_negative.esc
new file mode 100644
index 0000000..06cab55
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_timeout_option_negative.esc
@@ -0,0 +1,4 @@
+:talk
+ ?! "res://game/dialog_avatars/player.tres" 5 0 - 1
+ - "Only option"
+ break
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_timeout_option_negative.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_timeout_option_negative.esc.uid
new file mode 100644
index 0000000..a7cf6b8
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_timeout_option_negative.esc.uid
@@ -0,0 +1 @@
+uid://db2w5uh1qvqst
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_timeout_option_type.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_timeout_option_type.esc
new file mode 100644
index 0000000..bc71bc7
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_timeout_option_type.esc
@@ -0,0 +1,4 @@
+:talk
+ ?! "res://game/dialog_avatars/player.tres" 5 "two"
+ - "Only option"
+ break
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_timeout_option_type.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_timeout_option_type.esc.uid
new file mode 100644
index 0000000..deb663d
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_timeout_option_type.esc.uid
@@ -0,0 +1 @@
+uid://b5fstn4fo0igo
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_timeout_type.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_timeout_type.esc
new file mode 100644
index 0000000..351be56
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_timeout_type.esc
@@ -0,0 +1,4 @@
+:talk
+ ?! "res://game/dialog_avatars/player.tres" "five" 2
+ - "Only option"
+ break
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_timeout_type.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_timeout_type.esc.uid
new file mode 100644
index 0000000..db53e65
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_start_invalid_timeout_type.esc.uid
@@ -0,0 +1 @@
+uid://cy8r7l4o3dmn0
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_timeout_hidden_authored_default_after_filtering.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_timeout_hidden_authored_default_after_filtering.esc
new file mode 100644
index 0000000..80f8ef7
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_timeout_hidden_authored_default_after_filtering.esc
@@ -0,0 +1,10 @@
+:talk
+ global show_first = false
+
+ ?! "-" 5 1
+ - "First option" [show_first]
+ break
+ - "Second option"
+ break
+ - "Third option"
+ break
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_timeout_visible_authored_default_after_filtering.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_timeout_visible_authored_default_after_filtering.esc
new file mode 100644
index 0000000..0067327
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/dialog_timeout_visible_authored_default_after_filtering.esc
@@ -0,0 +1,10 @@
+:talk
+ global show_first = false
+
+ ?! "-" 5 3
+ - "First option" [show_first]
+ break
+ - "Second option"
+ break
+ - "Third option"
+ break
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/done_exits_entire_nested_dialog.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/done_exits_entire_nested_dialog.esc
new file mode 100644
index 0000000..770224a
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/done_exits_entire_nested_dialog.esc
@@ -0,0 +1,11 @@
+:test
+ global result = "start"
+ ?!
+ - "Outer"
+ ?!
+ - "Done"
+ done
+ result = "after_nested"
+ - "Exit outer"
+ break
+ result = result + "-done"
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/done_exits_entire_nested_dialog.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/done_exits_entire_nested_dialog.esc.uid
new file mode 100644
index 0000000..9b3eaf5
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/done_exits_entire_nested_dialog.esc.uid
@@ -0,0 +1 @@
+uid://catfpqk5u8vj0
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/done_nested_block_in_dialog.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/done_nested_block_in_dialog.esc
new file mode 100644
index 0000000..a37b050
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/done_nested_block_in_dialog.esc
@@ -0,0 +1,7 @@
+:test
+ global result = 0
+ ?!
+ - "Outer"
+ if true:
+ done
+ result = 1
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/done_nested_block_in_dialog.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/done_nested_block_in_dialog.esc.uid
new file mode 100644
index 0000000..8e5c281
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/done_nested_block_in_dialog.esc.uid
@@ -0,0 +1 @@
+uid://bgxmdpje356jd
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/duplicate_exact_target_event_overwrites.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/duplicate_exact_target_event_overwrites.esc
new file mode 100644
index 0000000..8461cff
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/duplicate_exact_target_event_overwrites.esc
@@ -0,0 +1,5 @@
+:use "wrench"
+ test_set_global("result", "first")
+
+:use "wrench"
+ test_set_global("result", "second")
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/duplicate_exact_target_event_overwrites.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/duplicate_exact_target_event_overwrites.esc.uid
new file mode 100644
index 0000000..600a3bf
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/duplicate_exact_target_event_overwrites.esc.uid
@@ -0,0 +1 @@
+uid://cfpnxq6v1bg1t
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/global_interrupt_clears_all_channels.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/global_interrupt_clears_all_channels.esc
new file mode 100644
index 0000000..e11c818
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/global_interrupt_clears_all_channels.esc
@@ -0,0 +1,15 @@
+:front_running
+ global global_interrupt_front_result = "start"
+ test_interruptible_set_global("global_interrupt_front_result", "front-cmd", "global_interrupt_front_was_interrupted", 0.2)
+ global_interrupt_front_result = global_interrupt_front_result + "-after"
+
+:front_queued
+ global_interrupt_front_result = "front-queued"
+
+:background_running
+ global global_interrupt_background_result = "start"
+ test_interruptible_set_global("global_interrupt_background_result", "bg-cmd", "global_interrupt_background_was_interrupted", 0.2)
+ global_interrupt_background_result = global_interrupt_background_result + "-after"
+
+:background_queued
+ global_interrupt_background_result = "bg-queued"
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/global_interrupt_clears_all_channels.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/global_interrupt_clears_all_channels.esc.uid
new file mode 100644
index 0000000..5547f25
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/global_interrupt_clears_all_channels.esc.uid
@@ -0,0 +1 @@
+uid://cje3uy4r8lh1x
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/global_interrupt_preserves_exceptions.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/global_interrupt_preserves_exceptions.esc
new file mode 100644
index 0000000..a9ffa26
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/global_interrupt_preserves_exceptions.esc
@@ -0,0 +1,17 @@
+:front_keep
+ global interrupt_except_front_result = "start"
+ test_interruptible_set_global("interrupt_except_front_result", "front-cmd", "interrupt_except_front_interrupted", 0.2)
+ interrupt_except_front_result = interrupt_except_front_result + "-after"
+
+:front_drop
+ interrupt_except_front_result = "front-drop"
+
+:background_drop
+ global interrupt_except_background_result = "start"
+ test_interruptible_set_global("interrupt_except_background_result", "bg-drop", "interrupt_except_background_interrupted", 0.2)
+ interrupt_except_background_result = interrupt_except_background_result + "-after"
+
+:background_keep
+ global interrupt_except_background_keep_result = "start"
+ test_delayed_set_global("interrupt_except_background_keep_result", "bg-keep", 0.01)
+ interrupt_except_background_keep_result = interrupt_except_background_keep_result + "-after"
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/global_interrupt_preserves_exceptions.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/global_interrupt_preserves_exceptions.esc.uid
new file mode 100644
index 0000000..dc38433
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/global_interrupt_preserves_exceptions.esc.uid
@@ -0,0 +1 @@
+uid://ceu2x1lbwfxby
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/immediate_command_ordering.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/immediate_command_ordering.esc
new file mode 100644
index 0000000..7d39c5f
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/immediate_command_ordering.esc
@@ -0,0 +1,4 @@
+:test
+ global result = "unset"
+ test_set_global("result", "cmd")
+ result = result + "-after"
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/immediate_command_ordering.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/immediate_command_ordering.esc.uid
new file mode 100644
index 0000000..16cf665
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/immediate_command_ordering.esc.uid
@@ -0,0 +1 @@
+uid://dmf5wqf50nfnr
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/interpreter_runtime_state_persists_between_events.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/interpreter_runtime_state_persists_between_events.esc
new file mode 100644
index 0000000..fd1ba03
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/interpreter_runtime_state_persists_between_events.esc
@@ -0,0 +1,11 @@
+:first
+ global interpreter_runtime_result = "first"
+
+:second
+ interpreter_runtime_result = interpreter_runtime_result + "-second"
+
+:background_seed
+ global interpreter_runtime_background_result = "first"
+
+:background_after
+ interpreter_runtime_background_result = interpreter_runtime_background_result + "-background"
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/interpreter_runtime_state_persists_between_events.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/interpreter_runtime_state_persists_between_events.esc.uid
new file mode 100644
index 0000000..cafce06
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/interpreter_runtime_state_persists_between_events.esc.uid
@@ -0,0 +1 @@
+uid://clqs3e5r4yem1
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_command_does_not_continue.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_command_does_not_continue.esc
new file mode 100644
index 0000000..4d92d26
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_command_does_not_continue.esc
@@ -0,0 +1,4 @@
+:test
+ global result = "start"
+ missing_test_command()
+ result = result + "-after"
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_command_does_not_continue.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_command_does_not_continue.esc.uid
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_command_does_not_continue.esc.uid
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_command_in_dialog_stops_event.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_command_in_dialog_stops_event.esc
new file mode 100644
index 0000000..2d59fb8
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_command_in_dialog_stops_event.esc
@@ -0,0 +1,6 @@
+:test
+ global result = "start"
+ ?!
+ - "Break it"
+ missing_command()
+ result = result + "-after"
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_command_in_dialog_stops_event.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_command_in_dialog_stops_event.esc.uid
new file mode 100644
index 0000000..77a66d7
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_command_in_dialog_stops_event.esc.uid
@@ -0,0 +1 @@
+uid://d4esrhlw7qhri
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_command_in_loop_stops_event.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_command_in_loop_stops_event.esc
new file mode 100644
index 0000000..4ecf824
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_command_in_loop_stops_event.esc
@@ -0,0 +1,7 @@
+:test
+ global result = "start"
+ global count = 0
+ while count < 1:
+ missing_command()
+ count = count + 1
+ result = result + "-after"
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_command_in_loop_stops_event.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_command_in_loop_stops_event.esc.uid
new file mode 100644
index 0000000..ec48741
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_command_in_loop_stops_event.esc.uid
@@ -0,0 +1 @@
+uid://ci5h4hpy7mjav
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_numeric_comparison.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_numeric_comparison.esc
new file mode 100644
index 0000000..a81c4c0
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_numeric_comparison.esc
@@ -0,0 +1,3 @@
+:test
+ global result = "unset"
+ result = "a" > 1
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_numeric_comparison.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_numeric_comparison.esc.uid
new file mode 100644
index 0000000..67b9e76
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/invalid_numeric_comparison.esc.uid
@@ -0,0 +1 @@
+uid://bo4clnuxdy778
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/multi_target_use_events.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/multi_target_use_events.esc
new file mode 100644
index 0000000..10b036b
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/multi_target_use_events.esc
@@ -0,0 +1,8 @@
+:look
+ say("player", "It's a leaking pipe.")
+
+:use "r5_wrench"
+ say("player", "The leak's now fixed.")
+
+:use "r5_pen"
+ say("player", "I don't see how I can fix the pipe with a pen.")
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/multi_target_use_events.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/multi_target_use_events.esc.uid
new file mode 100644
index 0000000..f77b460
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/multi_target_use_events.esc.uid
@@ -0,0 +1 @@
+uid://cpdc2ha8v6svh
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/nested_dialog_break_one.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/nested_dialog_break_one.esc
new file mode 100644
index 0000000..82d638d
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/nested_dialog_break_one.esc
@@ -0,0 +1,11 @@
+:test
+ global result = "start"
+ ?!
+ - "Outer"
+ ?!
+ - "Break nested"
+ break 1
+ result = "after_nested"
+ - "Exit outer"
+ break
+ result = result + "-done"
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/nested_dialog_break_one.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/nested_dialog_break_one.esc.uid
new file mode 100644
index 0000000..8d392b8
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/nested_dialog_break_one.esc.uid
@@ -0,0 +1 @@
+uid://bfwg7dby8q4g3
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/print_two_args.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/print_two_args.esc
new file mode 100644
index 0000000..07b5ccd
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/print_two_args.esc
@@ -0,0 +1,2 @@
+:test
+ print("a", "b")
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/print_two_args.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/print_two_args.esc.uid
new file mode 100644
index 0000000..cd16f5f
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/print_two_args.esc.uid
@@ -0,0 +1 @@
+uid://d0cv0a5fo7hdh
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/print_zero_args.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/print_zero_args.esc
new file mode 100644
index 0000000..3ff88bf
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/print_zero_args.esc
@@ -0,0 +1,2 @@
+:test
+ print()
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/print_zero_args.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/print_zero_args.esc.uid
new file mode 100644
index 0000000..8dd21c3
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/print_zero_args.esc.uid
@@ -0,0 +1 @@
+uid://cc274jba2egui
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/queue_event_block_waits_for_correct_background_event.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/queue_event_block_waits_for_correct_background_event.esc
new file mode 100644
index 0000000..853a985
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/queue_event_block_waits_for_correct_background_event.esc
@@ -0,0 +1,10 @@
+:background_first
+ global block_wait_result = "start"
+ test_delayed_set_global("block_wait_result", "first", 0.05)
+
+:background_target
+ test_delayed_set_global("block_wait_result", "first-target", 0.2)
+
+:front_event
+ global block_wait_front_result = "start"
+ test_delayed_set_global("block_wait_front_result", "front", 0.01)
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/queue_event_block_waits_for_correct_background_event.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/queue_event_block_waits_for_correct_background_event.esc.uid
new file mode 100644
index 0000000..928dcef
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/queue_event_block_waits_for_correct_background_event.esc.uid
@@ -0,0 +1 @@
+uid://4g0g2m5j3ve7u
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/queue_event_block_waits_for_correct_front_event.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/queue_event_block_waits_for_correct_front_event.esc
new file mode 100644
index 0000000..9ea46b0
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/queue_event_block_waits_for_correct_front_event.esc
@@ -0,0 +1,10 @@
+:front_first
+ global front_block_wait_result = "start"
+ test_delayed_set_global("front_block_wait_result", "first", 0.05)
+
+:front_target
+ test_delayed_set_global("front_block_wait_result", "first-target", 0.2)
+
+:background_event
+ global front_block_wait_background_result = "start"
+ test_delayed_set_global("front_block_wait_background_result", "background", 0.01)
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/queue_event_block_waits_for_correct_front_event.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/queue_event_block_waits_for_correct_front_event.esc.uid
new file mode 100644
index 0000000..b725b6c
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/queue_event_block_waits_for_correct_front_event.esc.uid
@@ -0,0 +1 @@
+uid://c5q5hi1sp5u4h
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/scheduled_event_interrupted_before_dispatch.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/scheduled_event_interrupted_before_dispatch.esc
new file mode 100644
index 0000000..475c523
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/scheduled_event_interrupted_before_dispatch.esc
@@ -0,0 +1,7 @@
+:front_running
+ global scheduled_interrupt_result = "start"
+ test_interruptible_set_global("scheduled_interrupt_result", "front-running", "scheduled_interrupt_was_interrupted", 0.2)
+ scheduled_interrupt_result = scheduled_interrupt_result + "-after"
+
+:scheduled_front
+ scheduled_interrupt_result = scheduled_interrupt_result + "-scheduled"
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/scheduled_event_interrupted_before_dispatch.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/scheduled_event_interrupted_before_dispatch.esc.uid
new file mode 100644
index 0000000..1ca4eb5
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/scheduled_event_interrupted_before_dispatch.esc.uid
@@ -0,0 +1 @@
+uid://dd1tktxwp4t0s
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/scheduled_front_event_with_busy_background.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/scheduled_front_event_with_busy_background.esc
new file mode 100644
index 0000000..1f88f71
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/scheduled_front_event_with_busy_background.esc
@@ -0,0 +1,12 @@
+:front_running
+ global scheduled_front_result = "start"
+ test_interruptible_set_global("scheduled_front_result", "front-running", "scheduled_front_interrupted", 0.2)
+ scheduled_front_result = scheduled_front_result + "-after"
+
+:scheduled_front
+ scheduled_front_result = scheduled_front_result + "-scheduled"
+
+:background_running
+ global scheduled_background_result = "start"
+ test_interruptible_set_global("scheduled_background_result", "background-running", "scheduled_background_interrupted", 0.2)
+ scheduled_background_result = scheduled_background_result + "-after"
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/scheduled_front_event_with_busy_background.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/scheduled_front_event_with_busy_background.esc.uid
new file mode 100644
index 0000000..235d8c4
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/scheduled_front_event_with_busy_background.esc.uid
@@ -0,0 +1 @@
+uid://cqt1mxg5k7q6m
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/stop_in_dialog_option.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/stop_in_dialog_option.esc
new file mode 100644
index 0000000..7be3f85
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/stop_in_dialog_option.esc
@@ -0,0 +1,6 @@
+:test
+ global result = 0
+ ?!
+ - "Stop"
+ stop
+ result = 1
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/stop_in_dialog_option.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/stop_in_dialog_option.esc.uid
new file mode 100644
index 0000000..d979742
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/stop_in_dialog_option.esc.uid
@@ -0,0 +1 @@
+uid://148e3f0660144f8a9e00065bdde07cde
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/stop_nested_block.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/stop_nested_block.esc
new file mode 100644
index 0000000..52ea799
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/stop_nested_block.esc
@@ -0,0 +1,5 @@
+:test
+ global result = 0
+ if true:
+ stop
+ result = 1
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/stop_nested_block.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/stop_nested_block.esc.uid
new file mode 100644
index 0000000..f005816
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/stop_nested_block.esc.uid
@@ -0,0 +1 @@
+uid://ccw3t8r0s6n6r
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/trigger_targeted_events_use_object_id.esc b/addons/escoria-core/testing/ashes/interpreter/fixtures/trigger_targeted_events_use_object_id.esc
new file mode 100644
index 0000000..728ca59
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/trigger_targeted_events_use_object_id.esc
@@ -0,0 +1,11 @@
+:trigger_in "player"
+ test_set_global("trigger_in_result", "player-in")
+
+:trigger_in
+ test_set_global("trigger_in_result", "fallback-in")
+
+:trigger_out "player"
+ test_set_global("trigger_out_result", "player-out")
+
+:trigger_out
+ test_set_global("trigger_out_result", "fallback-out")
diff --git a/addons/escoria-core/testing/ashes/interpreter/fixtures/trigger_targeted_events_use_object_id.esc.uid b/addons/escoria-core/testing/ashes/interpreter/fixtures/trigger_targeted_events_use_object_id.esc.uid
new file mode 100644
index 0000000..46d6dcb
--- /dev/null
+++ b/addons/escoria-core/testing/ashes/interpreter/fixtures/trigger_targeted_events_use_object_id.esc.uid
@@ -0,0 +1 @@
+uid://ciepdqqwhcgtf