Files
Paradise/code/tests/test_subsystem_metric_sanity.dm
warriorstar-orion bb60a027bf unit->game tests, /tg/ assertions and allocations (#27646)
* unit->game tests, /tg/ assertions and allocations

* whoopsies

* fix lint
2024-12-21 21:19:33 +00:00

23 lines
983 B
Plaintext

// Unit test to ensure SS metrics are valid
/datum/game_test/subsystem_metric_sanity/Run()
for(var/datum/controller/subsystem/SS in Master.subsystems)
var/list/data = SS.get_metrics()
if(length(data) != 4)
TEST_FAIL("SS[SS.ss_id] has invalid metrics data!")
continue
if(isnull(data["cost"]))
TEST_FAIL("SS[SS.ss_id] has invalid metrics data! No 'cost' found in [json_encode(data)]")
continue
if(isnull(data["tick_usage"]))
TEST_FAIL("SS[SS.ss_id] has invalid metrics data! No 'tick_usage' found in [json_encode(data)]")
continue
if(isnull(data["custom"]))
TEST_FAIL("SS[SS.ss_id] has invalid metrics data! No 'custom' found in [json_encode(data)]")
continue
if(!islist(data["custom"]))
TEST_FAIL("SS[SS.ss_id] has invalid metrics data! 'custom' is not a list in [json_encode(data)]")
continue
if(isnull(data["sleep_count"]))
TEST_FAIL("SS[SS.ss_id] has invalid metrics data! No 'sleep_count' found in [json_encode(data)]")
continue