#textdomain wesnoth #define RETURN X [if] [variable] name=ended boolean_not_equals=yes [/variable] [then] [if] {X} [then] {VARIABLE ended yes} [endlevel] test_result=pass linger_mode = yes [/endlevel] [/then] [else] [test_condition] result=no {X} [/test_condition] {VARIABLE ended yes} [endlevel] test_result=fail linger_mode = yes [/endlevel] [/else] [/if] [/then] [/if] #enddef #define ASSERT X [if] [variable] name=ended boolean_not_equals=yes [/variable] [then] [if] {X} [else] [test_condition] result=no {X} [/test_condition] {VARIABLE ended yes} [endlevel] test_result=fail linger_mode = yes [/endlevel] [/else] [/if] [/then] [/if] #enddef #define GENERIC_UNIT_TEST NAME CONTENT #arg SIDE1_CONTROLLER human#endarg #arg SIDE2_CONTROLLER human#endarg #arg TURNS -1#endarg #arg SIDE1_RECRUIT #endarg #arg SIDE1_GOLD 100#endarg #arg SIDE1_LEADER Elvish Archer#endarg [test] name = "Unit Test " + {NAME} map_file=test/maps/generic_unit_test.map turns = {TURNS} id = {NAME} is_unit_test = yes {DAWN} [side] side=1 controller={SIDE1_CONTROLLER} recruit={SIDE1_RECRUIT} gold={SIDE1_GOLD} [leader] name = "Alice" type = {SIDE1_LEADER} id=alice [/leader] [/side] [side] side=2 controller={SIDE2_CONTROLLER} [leader] name = "Bob" type = Orcish Grunt id=bob [/leader] [/side] {CONTENT} [/test] #enddef #define FAIL {RETURN ([false][/false])} #enddef #define SUCCEED {RETURN ([true][/true])} #enddef #define FAIL_IF_NOT FLAG NOT_EQUALS [if] [variable] name={FLAG} not_equals={NOT_EQUALS} [/variable] [then] {FAIL} [/then] [/if] #enddef