diff --git a/.github/workflows/run_integration_tests.yml b/.github/workflows/run_integration_tests.yml index 0c4ba61a8a4..22cec5d48bb 100644 --- a/.github/workflows/run_integration_tests.yml +++ b/.github/workflows/run_integration_tests.yml @@ -63,6 +63,7 @@ jobs: tools/build/build --ci dm -DCIBUILDING -DANSICOLORS -WError -NWTG0001 - name: Run Tests run: | + cp libbyond_sleeping_procs.so ~/.byond/bin/libbyond_sleeping_procs.so source $HOME/BYOND/byond/bin/byondsetup bash tools/ci/run_server.sh ${{ inputs.map }} - name: Upload screenshot tests diff --git a/.gitignore b/.gitignore index 1c74dfcdf37..f8688c913d8 100644 --- a/.gitignore +++ b/.gitignore @@ -24,6 +24,9 @@ # Ignore compiled linux libs in the root folder, e.g. librust_g.so /*.so +# Remove when removing byond_status +!/libbyond_sleeping_procs.so + #Ignore compiled files and other files generated during compilation. *.mdme *.mdme.* diff --git a/code/__HELPERS/byond_status.dm b/code/__HELPERS/byond_status.dm new file mode 100644 index 00000000000..1985080418c --- /dev/null +++ b/code/__HELPERS/byond_status.dm @@ -0,0 +1,7 @@ +/// Returns the debug status, including sleeping procs. +/// If this blame is older than a month, please revert the PR that added it. +/proc/byond_status() + if (world.system_type == UNIX) + return LIBCALL("libbyond_sleeping_procs.so", "get_status")() + else + return "byond_status is not supported on [world.system_type]" diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm index 227ef0b7079..074bff3152c 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -104,6 +104,7 @@ #include "bloody_footprints.dm" #include "breath.dm" #include "burning.dm" +#include "byond_status.dm" #include "cable_powernets.dm" #include "card_mismatch.dm" #include "cardboard_cutouts.dm" diff --git a/code/modules/unit_tests/byond_status.dm b/code/modules/unit_tests/byond_status.dm new file mode 100644 index 00000000000..e2788831556 --- /dev/null +++ b/code/modules/unit_tests/byond_status.dm @@ -0,0 +1,9 @@ +/// Tests the SUPPOSED TO BE TEMPORARY byond_status() proc for a useful format +/datum/unit_test/byond_status + +/datum/unit_test/byond_status/Run() + if (world.system_type != UNIX) + return + + var/status = byond_status() + TEST_ASSERT(findtext(status, "Sleeping procs"), "Invalid byond_status: [status]") diff --git a/libbyond_sleeping_procs.so b/libbyond_sleeping_procs.so new file mode 100644 index 00000000000..8596115fd96 Binary files /dev/null and b/libbyond_sleeping_procs.so differ diff --git a/tgstation.dme b/tgstation.dme index 0b877ad09b1..77070c6b29e 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -450,6 +450,7 @@ #include "code\__HELPERS\atoms.dm" #include "code\__HELPERS\auxtools.dm" #include "code\__HELPERS\bitflag_lists.dm" +#include "code\__HELPERS\byond_status.dm" #include "code\__HELPERS\cameras.dm" #include "code\__HELPERS\chat.dm" #include "code\__HELPERS\chat_filter.dm"