wesnoth/data/test/scenarios/interrupts.cfg
2017-05-03 02:42:25 -04:00

198 lines
3.2 KiB
INI

{GENERIC_UNIT_TEST check_interrupts_break (
[event]
name=start
{VARIABLE x 0}
[while]
[true][/true]
[do]
[if]
{VARIABLE_CONDITIONAL x greater_than 5}
[then]
[break][/break]
[/then]
[/if]
{VARIABLE_OP x add 1}
[/do]
[/while]
{RETURN ({VARIABLE_CONDITIONAL x equals 6})}
[/event]
)}
{GENERIC_UNIT_TEST check_interrupts_return (
[event]
name=start
{VARIABLE x 0}
[while]
[true][/true]
[do]
[if]
{VARIABLE_CONDITIONAL x greater_than 5}
[then]
[return][/return]
[/then]
[/if]
{VARIABLE_OP x add 1}
[/do]
[/while]
{FAIL}
[/event]
[event]
name=start
{RETURN ({VARIABLE_CONDITIONAL x equals 6})}
[/event]
)}
{GENERIC_UNIT_TEST check_interrupts_continue (
[event]
name=start
{VARIABLE x 0}
[while]
{VARIABLE_CONDITIONAL x less_than 5}
[do]
{VARIABLE_OP x add 5}
[continue][/continue]
{FAIL}
[/do]
[/while]
{RETURN ({VARIABLE_CONDITIONAL x equals 5})}
[/event]
)}
{GENERIC_UNIT_TEST check_interrupts_break_global (
[event]
name=start
[break][/break]
{FAIL}
[/event]
[event]
name=start
{SUCCEED}
[/event]
)}
{GENERIC_UNIT_TEST check_interrupts_continue_global (
[event]
name=start
[lua]
code=<<
local H = wesnoth.require "helper"
local A = H.set_wml_action_metatable{}
local function continue()
A.continue{}
end
-- Use pcall() to trap the WML error raised by continue in global scope
local err, res = pcall(continue)
if err then wesnoth.fire_event "success"
else wesnoth.fire_event "fail" end
>>
[/lua]
[/event]
[event]
name=success
[endlevel]
result=victory
linger_mode = yes
[/endlevel]
[/event]
[event]
name=fail
[endlevel]
result=defeat
linger_mode = yes
[/endlevel]
[/event]
)}
{GENERIC_UNIT_TEST check_interrupts_return_nested (
[event]
name=start
[command]
[return][/return]
{FAIL}
[/command]
{FAIL}
[/event]
[event]
name=start
{SUCCEED}
[/event]
)}
{GENERIC_UNIT_TEST check_interrupts_elseif (
[event]
name=start
{VARIABLE x 9}
[if]
{VARIABLE_CONDITIONAL x greater_than 10}
[then]
{FAIL}
[/then]
[elseif]
{VARIABLE_CONDITIONAL x less_than 10}
[then]
[return][/return]
[/then]
[/elseif]
[else]
[wml_message]
message="Reached the [else] block!"
logger=error
[/wml_message]
{FAIL}
[/else]
[/if]
[wml_message]
message="Passed the [if] block!"
logger=error
[/wml_message]
{FAIL}
[/event]
[event]
name=start
{SUCCEED}
[/event]
)}
{GENERIC_UNIT_TEST check_interrupts_case (
[event]
name=start
{VARIABLE x 0}
[switch]
variable=x
[case]
value=1,3,5,7,9
{FAIL}
[/case]
[case]
value=0,2,4,6,8
[return][/return]
[/case]
[case]
value=0
[wml_message]
message="Reached next [case] block!"
logger=error
[/wml_message]
{FAIL}
[/case]
[else]
[wml_message]
message="Reached the [else] block!"
logger=error
[/wml_message]
{FAIL}
[/else]
[/switch]
[wml_message]
message="Passed the [switch] block!"
logger=error
[/wml_message]
{FAIL}
[/event]
[event]
name=start
{SUCCEED}
[/event]
)}