[MIRROR] Allows for offloaded tests to be focused [MDB IGNORE] (#17977)

* Allows for offloaded tests to be focused (#71719)

Focusing a test through TEST_FOCUS allows you to only run that one test.
It's very useful for developing. However, we have a bunch of offloaded
tests in `#ifdef UNIT_TESTS` that would not be focused. This changes it
so that those tests will now only run if either no test is focused, or
if their specific "focus only" test is focused.

This is done through a `PERFORM_ALL_TESTS` macro that replaces the
`#ifdef UNIT_TESTS`. This is completely free because `if (FALSE)`
constant folds.

Hide whitespace mode recommended.

* Allows for offloaded tests to be focused

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
This commit is contained in:
SkyratBot
2022-12-09 03:52:12 +00:00
committed by GitHub
co-authored by Mothblocks
parent 13e3929ba1
commit 14b5fd6134
11 changed files with 88 additions and 48 deletions
@@ -13,11 +13,10 @@
if(initial(D.research_icon) && initial(D.research_icon_state)) //If the design has an icon replacement skip the rest
icon_file = initial(D.research_icon)
icon_state = initial(D.research_icon_state)
#ifdef UNIT_TESTS
if(!(icon_state in icon_states(icon_file)))
stack_trace("design [D] with icon '[icon_file]' missing state '[icon_state]'")
continue
#endif
if (PERFORM_ALL_TESTS(focus_only/invalid_research_designs))
if(!(icon_state in icon_states(icon_file)))
stack_trace("design [D] with icon '[icon_file]' missing state '[icon_state]'")
continue
I = icon(icon_file, icon_state, SOUTH)
else
@@ -46,11 +45,10 @@
icon_file = initial(item.icon)
icon_state = initial(item.icon_state)
#ifdef UNIT_TESTS
if(!(icon_state in icon_states(icon_file)))
stack_trace("design [D] with icon '[icon_file]' missing state '[icon_state]'")
continue
#endif
if (PERFORM_ALL_TESTS(focus_only/invalid_research_designs))
if(!(icon_state in icon_states(icon_file)))
stack_trace("design [D] with icon '[icon_file]' missing state '[icon_state]'")
continue
I = icon(icon_file, icon_state, SOUTH)
// computers (and snowflakes) get their screen and keyboard sprites
+11 -12
View File
@@ -14,19 +14,18 @@
icon_file = initial(item.icon)
var/icon_state = initial(item.icon_state)
#ifdef UNIT_TESTS
var/icon_states_list = icon_states(icon_file)
if (!(icon_state in icon_states_list))
var/icon_states_string
for (var/an_icon_state in icon_states_list)
if (!icon_states_string)
icon_states_string = "[json_encode(an_icon_state)]([text_ref(an_icon_state)])"
else
icon_states_string += ", [json_encode(an_icon_state)]([text_ref(an_icon_state)])"
if (PERFORM_ALL_TESTS(focus_only/invalid_vending_machine_icon_states))
var/icon_states_list = icon_states(icon_file)
if (!(icon_state in icon_states_list))
var/icon_states_string
for (var/an_icon_state in icon_states_list)
if (!icon_states_string)
icon_states_string = "[json_encode(an_icon_state)]([text_ref(an_icon_state)])"
else
icon_states_string += ", [json_encode(an_icon_state)]([text_ref(an_icon_state)])"
stack_trace("[item] does not have a valid icon state, icon=[icon_file], icon_state=[json_encode(icon_state)]([text_ref(icon_state)]), icon_states=[icon_states_string]")
continue
#endif
stack_trace("[item] does not have a valid icon state, icon=[icon_file], icon_state=[json_encode(icon_state)]([text_ref(icon_state)]), icon_states=[icon_states_string]")
continue
var/icon/I = icon(icon_file, icon_state, SOUTH)
var/c = initial(item.color)