Files
Paradise/code/controllers/subsystem
warriorstar-orion 4ace2d6c2b Implement map tests for catching common errors. (#19204)
* Implement map tests for catching common errors.

- Adds test runner:
	- to make it easier to track things across test types
	- for example to ensure a fully specified log can be emitted

- Adds map tile test type:
	- when writing a test, coders implement CheckTile, which is
	  handed a single turf
	- when the test runner runs these tests, it iterates over
	  all turfs in the specified z-level, and runs each test's
	  CheckTile on each turf in turn.

- Adds two sample map tile tests:
	- check to see if a pipe exists on the same tile as a scrubber
	  or vent
	- check to see if a tile contains two cables, each with a center
	  node

* Review #1:

- Replace nested loops over map tiles with `block`
- Remove check for valid turf in individual tests, I think it's safe to
  assume `block` will always return legit turfs
- Added proper duration tracking for old tests
- Gave log file an appropriate extension
- Actually use `Fail` for tests

* whoops

* add more tests suggested by @Vi3trice

* Add some more tests courtesy @Bm0n and @Vi3trice

* windows are okay in space as long as it's nearspace

* Add failure threshold to prevent excessive logging.

Once this threshold is reached, a test will stop being processed for
every tile.

Note that this applies to `log_world` and `text2file` equally when
logging large amounts of failures.

* Document each test.

* Remove unnecessary reboot

* Let all map tests run to completion in CI matrix.

* I know what alphabetical means
2022-11-05 15:32:17 +00:00
..
2022-06-26 20:10:09 +01:00
2022-06-26 20:10:09 +01:00
2022-06-26 20:10:09 +01:00
2022-08-01 16:27:35 -04:00
2022-08-09 18:45:57 +01:00
2022-07-30 16:15:05 +01:00
2022-06-26 20:10:09 +01:00
2022-06-26 20:10:09 +01:00
2022-06-26 20:10:09 +01:00
2022-06-26 20:10:09 +01:00
2022-06-26 20:10:09 +01:00
2022-06-26 20:10:09 +01:00
2022-06-26 20:10:09 +01:00
2022-07-13 21:34:41 +01:00
2022-03-04 21:57:35 +01:00
2022-06-26 20:10:09 +01:00
2022-06-26 20:10:09 +01:00
2021-10-20 17:50:43 +01:00
2022-07-06 20:21:24 +01:00
2022-07-10 14:02:17 +01:00
2022-11-02 20:31:37 +01:00
2022-06-26 20:10:09 +01:00
2022-08-16 14:11:51 +01:00
2022-08-04 10:50:17 +01:00
2022-06-26 20:10:09 +01:00
2022-06-26 20:10:09 +01:00
2022-06-26 20:10:09 +01:00
2021-10-13 18:26:41 +01:00
2022-06-26 20:10:09 +01:00
2022-08-21 16:32:12 +01:00
2022-08-14 14:54:57 +01:00
2022-07-20 22:13:41 +01:00