Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Система тестов для модульных файлов (раунд 2) #140

Closed
wants to merge 29 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .github/workflows/ci_suite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,13 +86,15 @@ jobs:
run: ':'
- name: Run Grep Checks
if: steps.linter-setup.conclusion == 'success' && !cancelled()
run: bash tools/ci/check_grep.sh
run: |
bash tools/ci/check_grep.sh
bash massmeta/tools/massmeta_check_grep.sh # MASSMETA EDIT ADDITION - checking modular_meta code
- name: Ticked File Enforcement
if: steps.linter-setup.conclusion == 'success' && !cancelled()
run: |
bash tools/massmeta_check_grep.sh # MASSMETA EDIT ADDITION - checking modular_meta code
tools/bootstrap/python tools/ticked_file_enforcement/ticked_file_enforcement.py < tools/ticked_file_enforcement/schemas/tgstation_dme.json
tools/bootstrap/python tools/ticked_file_enforcement/ticked_file_enforcement.py < tools/ticked_file_enforcement/schemas/unit_tests.json
tools/bootstrap/python tools/ticked_file_enforcement/ticked_file_enforcement.py < tools/ticked_file_enforcement/schemas/modular_meta.json # MASSMETA EDIT ADDITION - modular tick enforcement
- name: Check Define Sanity
if: steps.linter-setup.conclusion == 'success' && !cancelled()
run: tools/bootstrap/python -m define_sanity.check
Expand Down
5 changes: 5 additions & 0 deletions massmeta/features/hardsuits/includes.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#include "code\_jetpack.dm"
#include "code\armor.dm"
#include "code\hardsuit.dm"
#include "code\helmet.dm"
#include "code\space_suit_beacon.dm"
1 change: 1 addition & 0 deletions massmeta/features/smites/includes.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#include "code\testicular_torsion.dm"
35 changes: 13 additions & 22 deletions massmeta/modular_meta.dm
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
/*
*
* Это основной файл куда будут складываться все наши модульные добавления.
* Добавлять только:
* Модули (.dm файлами)
* Сам этот файл добавлен в tgstation.dme
*
*Все Defines файлы лежат в папке "~meta_defines\", однако там идет переопределение пути для того чтобы не ругались тесты.
*
*/
// Это основной файл куда будут складываться все наши модульные добавления.
// Добавлять только:
// Модули (includes.dm файлами)
// Сам этот файл добавлен в tgstation.dme

//modular files
// Все Defines файлы лежат в папке "~meta_defines\", однако там идет переопределение пути для того чтобы не ругались тесты.


// Modular files (covered with tests)
// BEGIN_INCLUDE
#include "features\additional_circuit\includes.dm"
#include "features\hardsuits\includes.dm"
#include "features\smites\includes.dm"
// END_INCLUDE


//master files (unsorted, TODO: need modularization)
Expand Down Expand Up @@ -83,14 +85,6 @@
#include "code\game\objects\structures\crates_lockers\crates\large.dm"
#include "code\modules\cargo\packs\imports.dm"

//features
#include "features\additional_circuit\includes.dm"
#include "features\hardsuits\code\_jetpack.dm"
#include "features\hardsuits\code\armor.dm"
#include "features\hardsuits\code\hardsuit.dm"
#include "features\hardsuits\code\helmet.dm"
#include "features\hardsuits\code\space_suit_beacon.dm"

//buts
#include "code\modules\surgery\organs\internal\butts\butts.dm"
#include "code\modules\surgery\organs\internal\butts\butts_init.dm"
Expand All @@ -109,6 +103,3 @@
#include "code\modules\reagents\chemistry\reagents\drinks\glass_styles\sodas.dm"
#include "code\modules\reagents\reagent_containers\cups\soda.dm"
#include "code\modules\reagents\reagent_dispenser.dm"

//smites
#include "features\smites\testicular_torsion.dm"
File renamed without changes.
7 changes: 7 additions & 0 deletions tools/ticked_file_enforcement/schemas/modular_meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"file": "massmeta/modular_meta.dm",
"scannable_directory": "massmeta/features/",
"subdirectories": true,
"excluded_files": [],
"forbidden_includes": []
}
37 changes: 37 additions & 0 deletions tools/ticked_file_enforcement/ticked_file_enforcement.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,45 @@ def post_error(string):
elif not reading:
continue

# MASSMETA EDIT ADDITION START (check modular code folder)
# need to make full path
if scannable_directory == "massmeta/features/":
line = line[:10] + "massmeta\\" + line[10:]
# MASSMETA EDIT ADDITION END
lines.append(line)

# MASSMETA EDIT ADDITION START (check modular code folder)
if scannable_directory == "massmeta/features/":
fail_no_include_modular = False
print(blue(f"Scanning Modular Code... Checking files in [{scannable_directory}]"))

module_file_path = line.replace('\\', '/')
module_file_path_clean = module_file_path[10:-1]
print(f" [{module_file_path_clean}] with in it:")
if module_file_path_clean[-11:] != "includes.dm":
red(f" File [{module_file_path_clean}] must be named \"includes.dm\", skipping the file.")
fail_no_include_modular = True
continue

with open(module_file_path_clean, 'r') as extra_file:
for extra_line in extra_file:
total += 1
extra_line = extra_line.strip()
if (extra_line[10:14] != "code"):
red(f" File [{extra_line}] must be in \"code/\" folder")
fail_no_include_modular = True

# make full path
extra_line = line[:-12] + extra_line[10:]
lines.append(extra_line)
extra_line.replace('\\', '/')
print(f" [{extra_line[10:-1]}]")

if fail_no_include_modular:
post_error(f"Modular Ticked File Enforcement has failed!")
sys.exit(1)
# MASSMETA EDIT ADDITION END

offset = total - len(lines)
print(blue(f"Ticked File Enforcement: {offset} lines were ignored in output for [{file_reference}]."))
fail_no_include = False
Expand Down
Loading