mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-21 21:17:44 +01:00
Quietens Spaceman when debugging UNIT_TESTS locally (#75570)
The contract is removed by virtue of testing.
This commit is contained in:
@@ -60,7 +60,7 @@ jobs:
|
||||
run: |
|
||||
bash tools/ci/install_byond.sh
|
||||
source $HOME/BYOND/byond/bin/byondsetup
|
||||
tools/build/build --ci dm -DCIBUILDING -DANSICOLORS -Werror
|
||||
tools/build/build --ci dm -DCIBUILDING -DANSICOLORS -WError -NWTG0001
|
||||
- name: Run Tests
|
||||
run: |
|
||||
source $HOME/BYOND/byond/bin/byondsetup
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
*
|
||||
* Functionally identical to [QDEL_HINT_QUEUE] if [GC_FAILURE_HARD_LOOKUP] is not enabled in _compiler_options.dm.
|
||||
*/
|
||||
#warn TG0001 qdel REFERENCE_TRACKING enabled
|
||||
#define QDEL_HINT_FINDREFERENCE 5
|
||||
/// Behavior as [QDEL_HINT_FINDREFERENCE], but only if the GC fails and a hard delete is forced.
|
||||
#define QDEL_HINT_IFFAIL_FINDREFERENCE 6
|
||||
|
||||
@@ -615,7 +615,7 @@ SUBSYSTEM_DEF(air)
|
||||
// In an ideal world, we would have absolutely zero active turfs 99.99% of the time, but that's not the case. `log_mapping()` during world initialize triggers a CI fail.
|
||||
#ifdef UNIT_TESTS
|
||||
return
|
||||
#endif
|
||||
#else
|
||||
// Associated lists, left-hand-side is the z-level or z-trait, right-hand-side is the number of active turfs associated with that.
|
||||
var/list/tally_by_level = list()
|
||||
// Discriminate for certain z-traits, stuff like "Linkage" is not helpful.
|
||||
@@ -672,6 +672,7 @@ SUBSYSTEM_DEF(air)
|
||||
|
||||
message_to_log += "End of active turf list."
|
||||
log_mapping(message_to_log.Join("\n"))
|
||||
#endif
|
||||
|
||||
/turf/open/proc/resolve_active_graph()
|
||||
. = list()
|
||||
|
||||
@@ -404,7 +404,7 @@ SUBSYSTEM_DEF(garbage)
|
||||
#ifdef REFERENCE_TRACKING
|
||||
if (QDEL_HINT_FINDREFERENCE) //qdel will, if REFERENCE_TRACKING is enabled, display all references to this object, then queue the object for deletion.
|
||||
SSgarbage.Queue(D)
|
||||
D.find_references() //This breaks ci. Consider it insurance against somehow pring reftracking on accident
|
||||
INVOKE_ASYNC(D, TYPE_PROC_REF(/datum, find_references))
|
||||
if (QDEL_HINT_IFFAIL_FINDREFERENCE) //qdel will, if REFERENCE_TRACKING is enabled and the object fails to collect, display all references to this object.
|
||||
SSgarbage.Queue(D)
|
||||
SSgarbage.reference_find_on_fail[text_ref(D)] = TRUE
|
||||
|
||||
@@ -9,10 +9,11 @@ SUBSYSTEM_DEF(minor_mapping)
|
||||
/datum/controller/subsystem/minor_mapping/Initialize()
|
||||
#ifdef UNIT_TESTS // This whole subsystem just introduces a lot of odd confounding variables into unit test situations, so let's just not bother with doing an initialize here.
|
||||
return SS_INIT_NO_NEED
|
||||
#endif // the mice are easily the bigger problem, but let's just avoid anything that could cause some bullshit.
|
||||
#else
|
||||
trigger_migration(CONFIG_GET(number/mice_roundstart))
|
||||
place_satchels()
|
||||
return SS_INIT_SUCCESS
|
||||
#endif // the mice are easily the bigger problem, but let's just avoid anything that could cause some bullshit.
|
||||
|
||||
/// Spawns some critters on exposed wires, usually but not always mice
|
||||
/datum/controller/subsystem/minor_mapping/proc/trigger_migration(to_spawn=10)
|
||||
|
||||
+2
-2
@@ -299,8 +299,7 @@ GLOBAL_VAR(restart_counter)
|
||||
#ifdef UNIT_TESTS
|
||||
FinishTestRun()
|
||||
return
|
||||
#endif
|
||||
|
||||
#else
|
||||
if(TgsAvailable())
|
||||
var/do_hard_reboot
|
||||
// check the hard reboot counter
|
||||
@@ -331,6 +330,7 @@ GLOBAL_VAR(restart_counter)
|
||||
TgsReboot() // TGS can decide to kill us right here, so it's important to do it last
|
||||
|
||||
..()
|
||||
#endif
|
||||
|
||||
/world/proc/auxcleanup()
|
||||
AUXTOOLS_FULL_SHUTDOWN(AUXLUA)
|
||||
|
||||
@@ -280,12 +280,9 @@
|
||||
if(cult_ascendent)
|
||||
return
|
||||
|
||||
#ifdef UNIT_TESTS
|
||||
// This proc is unnecessary clutter whilst running cult related unit tests
|
||||
// Remove this if, at some point, someone decides to test that halos and eyes are added at expected ratios
|
||||
return
|
||||
#endif
|
||||
|
||||
#ifndef UNIT_TESTS
|
||||
var/alive = 0
|
||||
var/cultplayers = 0
|
||||
for(var/I in GLOB.player_list)
|
||||
@@ -315,6 +312,7 @@
|
||||
mind.current.AddElement(/datum/element/cult_halo)
|
||||
cult_ascendent = TRUE
|
||||
log_game("The blood cult has ascended with [cultplayers] players.")
|
||||
#endif
|
||||
|
||||
/datum/team/cult/add_member(datum/mind/new_member)
|
||||
. = ..()
|
||||
|
||||
+11
-3
@@ -47,6 +47,11 @@ export const WarningParameter = new Juke.Parameter({
|
||||
alias: 'W',
|
||||
});
|
||||
|
||||
export const NoWarningParameter = new Juke.Parameter({
|
||||
type: 'string[]',
|
||||
alias: 'NW',
|
||||
});
|
||||
|
||||
export const DmMapsIncludeTarget = new Juke.Target({
|
||||
executes: async () => {
|
||||
const folders = [
|
||||
@@ -65,7 +70,7 @@ export const DmMapsIncludeTarget = new Juke.Target({
|
||||
});
|
||||
|
||||
export const DmTarget = new Juke.Target({
|
||||
parameters: [DefineParameter, DmVersionParameter, WarningParameter],
|
||||
parameters: [DefineParameter, DmVersionParameter, WarningParameter, NoWarningParameter],
|
||||
dependsOn: ({ get }) => [
|
||||
get(DefineParameter).includes('ALL_MAPS') && DmMapsIncludeTarget,
|
||||
],
|
||||
@@ -91,13 +96,14 @@ export const DmTarget = new Juke.Target({
|
||||
await DreamMaker(`${DME_NAME}.dme`, {
|
||||
defines: ['CBT', ...get(DefineParameter)],
|
||||
warningsAsErrors: get(WarningParameter).includes('error'),
|
||||
ignoreWarningCodes: get(NoWarningParameter),
|
||||
namedDmVersion: get(DmVersionParameter),
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
export const DmTestTarget = new Juke.Target({
|
||||
parameters: [DefineParameter, DmVersionParameter, WarningParameter],
|
||||
parameters: [DefineParameter, DmVersionParameter, WarningParameter, NoWarningParameter],
|
||||
dependsOn: ({ get }) => [
|
||||
get(DefineParameter).includes('ALL_MAPS') && DmMapsIncludeTarget,
|
||||
],
|
||||
@@ -106,6 +112,7 @@ export const DmTestTarget = new Juke.Target({
|
||||
await DreamMaker(`${DME_NAME}.test.dme`, {
|
||||
defines: ['CBT', 'CIBUILDING', ...get(DefineParameter)],
|
||||
warningsAsErrors: get(WarningParameter).includes('error'),
|
||||
ignoreWarningCodes: get(NoWarningParameter),
|
||||
namedDmVersion: get(DmVersionParameter),
|
||||
});
|
||||
Juke.rm('data/logs/ci', { recursive: true });
|
||||
@@ -131,7 +138,7 @@ export const DmTestTarget = new Juke.Target({
|
||||
});
|
||||
|
||||
export const AutowikiTarget = new Juke.Target({
|
||||
parameters: [DefineParameter, DmVersionParameter, WarningParameter],
|
||||
parameters: [DefineParameter, DmVersionParameter, WarningParameter, NoWarningParameter],
|
||||
dependsOn: ({ get }) => [
|
||||
get(DefineParameter).includes('ALL_MAPS') && DmMapsIncludeTarget,
|
||||
],
|
||||
@@ -143,6 +150,7 @@ export const AutowikiTarget = new Juke.Target({
|
||||
await DreamMaker(`${DME_NAME}.test.dme`, {
|
||||
defines: ['CBT', 'AUTOWIKI', ...get(DefineParameter)],
|
||||
warningsAsErrors: get(WarningParameter).includes('error'),
|
||||
ignoreWarningCodes: get(NoWarningParameter),
|
||||
namedDmVersion: get(DmVersionParameter),
|
||||
});
|
||||
Juke.rm('data/autowiki_edits.txt');
|
||||
|
||||
@@ -149,7 +149,9 @@ export const DreamMaker = async (dmeFile, options = {}) => {
|
||||
testOutputFile(`${dmeBaseName}.rsc`);
|
||||
const runWithWarningChecks = async (dmeFile, args) => {
|
||||
const execReturn = await Juke.exec(dmeFile, args);
|
||||
if (options.warningsAsErrors && execReturn.combined.match(/\d+:warning: /)) {
|
||||
const ignoredWarningCodes = options.ignoreWarningCodes ?? [];
|
||||
const reg = ignoredWarningCodes.length > 0 ? new RegExp(`\d+:warning: (?!(${ignoredWarningCodes.join('|')}))`) : /\d+:warning: /;
|
||||
if (options.warningsAsErrors && execReturn.combined.match(reg)) {
|
||||
Juke.logger.error(`Compile warnings treated as errors`);
|
||||
throw new Juke.ExitCode(2);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user