From 6c94faa167833ea9f166c5a32b868ebc06ca7cbe Mon Sep 17 00:00:00 2001 From: Atermonera Date: Tue, 24 Mar 2020 14:28:19 -0700 Subject: [PATCH] Makes Travis fail PRs that runtime during init/unit testing. --- .travis.yml | 19 +++++++++++++++++++ code/modules/error_handler/error_handler.dm | 10 ++++++---- code/modules/error_handler/error_viewer.dm | 2 +- code/unit_tests/unit_test.dm | 4 ++-- 4 files changed, 28 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 75d81c0645..c53f1327c0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,6 +28,25 @@ install: before_script: - shopt -s globstar +<<<<<<< HEAD +======= + - (! grep 'step_[xy]' maps/**/*.dmm) + - (! grep -Pn '( |\t|;|{)tag( ?)=' maps/**/*.dmm) + - (! find nano/templates/ -type f -exec md5sum {} + | sort | uniq -D -w 32 | grep nano) + - (! grep -En "<\s*span\s+class\s*=\s*('[^'>]+|[^'>]+')\s*>" **/*.dm) + - awk -f tools/indentation.awk **/*.dm + - md5sum -c - <<< "88490b460c26947f5ec1ab1bb9fa9f17 *html/changelogs/example.yml" + - (num=`grep -E '\\\\(red|blue|green|black|b|i[^mc])' **/*.dm | wc -l`; echo "$num escapes (expecting ${MACRO_COUNT} or less)"; [ $num -le ${MACRO_COUNT} ]) + - source $HOME/BYOND-${BYOND_MAJOR}.${BYOND_MINOR}/byond/bin/byondsetup + - python tools/TagMatcher/tag-matcher.py ../.. + # Run our test + - cp config/example/* config/ + - echo "#define ${TEST_DEFINE} 1" > ${TEST_FILE} + - DreamMaker polaris.dme + - if [ $RUN -eq 1 ]; then DreamDaemon polaris.dmb -invisible -trusted -core 2>&1 | tee log.txt; fi + - if [ $RUN -eq 1 ]; then grep "All Unit Tests Passed" log.txt; fi + - if [ $RUN -eq 1 ]; then grep "Caught 0 Runtimes" log.txt; fi +>>>>>>> 40d5484... Merge pull request #6808 from Neerti/travis_runtime_checker script: - ./tools/travis/compile_and_run.sh diff --git a/code/modules/error_handler/error_handler.dm b/code/modules/error_handler/error_handler.dm index 71783714b0..098ea614b5 100644 --- a/code/modules/error_handler/error_handler.dm +++ b/code/modules/error_handler/error_handler.dm @@ -1,7 +1,9 @@ // error_cooldown items will either be positive (cooldown time) or negative (silenced error) // If negative, starts at -1, and goes down by 1 each time that error gets skipped -var/total_runtimes = 0 -var/total_runtimes_skipped = 0 +GLOBAL_VAR_INIT(total_runtimes, 0) +GLOBAL_VAR_INIT(total_runtimes_skipped, 0) + + // The ifdef needs to be down here, since the error viewer references total_runtimes #ifdef DEBUG /world/Error(var/exception/e, var/datum/e_src) @@ -10,7 +12,7 @@ var/total_runtimes_skipped = 0 return ..() if(!GLOB.error_last_seen) // A runtime is occurring too early in start-up initialization return ..() - total_runtimes++ + GLOB.total_runtimes++ var/erroruid = "[e.file][e.line]" var/last_seen = GLOB.error_last_seen[erroruid] @@ -20,7 +22,7 @@ var/total_runtimes_skipped = 0 last_seen = world.time if(cooldown < 0) GLOB.error_cooldown[erroruid]-- // Used to keep track of skip count for this error - total_runtimes_skipped++ + GLOB.total_runtimes_skipped++ return // Error is currently silenced, skip handling it // Handle cooldowns and silencing spammy errors diff --git a/code/modules/error_handler/error_viewer.dm b/code/modules/error_handler/error_viewer.dm index 0f1fd0ba96..c342a408f0 100644 --- a/code/modules/error_handler/error_viewer.dm +++ b/code/modules/error_handler/error_viewer.dm @@ -88,7 +88,7 @@ var/global/datum/ErrorViewer/ErrorCache/error_cache = null /datum/ErrorViewer/ErrorCache/showTo(var/user, var/datum/ErrorViewer/back_to, var/linear) var/html = buildHeader(null, linear, refreshable=1) - html += "[total_runtimes] runtimes, [total_runtimes_skipped] skipped

" + html += "[GLOB.total_runtimes] runtimes, [GLOB.total_runtimes_skipped] skipped

" if(!linear) html += "organized | [makeLink("linear", null, 1)]
" var/datum/ErrorViewer/ErrorSource/error_source diff --git a/code/unit_tests/unit_test.dm b/code/unit_tests/unit_test.dm index 7537f14022..e775f6f763 100644 --- a/code/unit_tests/unit_test.dm +++ b/code/unit_tests/unit_test.dm @@ -94,10 +94,10 @@ var/total_unit_tests = 0 if(all_unit_tests_passed) log_unit_test("[ASCII_GREEN]*** All Unit Tests Passed \[[total_unit_tests]\] ***[ASCII_RESET]") - world.Del() else log_unit_test("[ASCII_RED]!!! \[[failed_unit_tests]\\[total_unit_tests]\] Unit Tests Failed !!![ASCII_RESET]") - world.Del() + log_unit_test("Caught [GLOB.total_runtimes] Runtime\s.") + world.Del() /datum/unit_test/proc/get_standard_turf() return locate(20,20,1)