[enhancement] Добавить независимый headless runner симуляции и регрессионные сценарии #8
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
simиwaveуже не зависят от Horizon API, что позволило проверить их отдельно без сборки движка: копия этих модулей, Rust crate edition=2024, зависимость glam=0.30.10. Три существующих теста на90379f6прошли; дополнительные сценарии из связанных bug issues выявили пять проблем.Предложение: оформить чистую симуляцию как отдельный workspace crate либо поддерживаемый test/bench runner, чтобы не копировать исходники и не подготавливать форк Horizon для проверки игровой логики. Запускать регрессионные тесты в CI до публикации мода.
Полезные параметры runner: фиксированный seed, сценарий расстановки, состав налёта, заданный рельеф, число тиков. Результаты: время тика p50/p95/max, перехваты/расход БК, число ground queries, длительность планирования, проверка NaN и зависших заданий. Фиксировать версии зависимостей и seed для воспроизводимых сравнений.
Начать с тестов на сеть РЛС, смерть/перемещение ТЗМ, ремонт во время cook-off и покрытие ground queries. Сохранения дополнительно проверять round-trip и отказами storage на уровне host glue. Не считать native benchmark оценкой производительности WASM/GPU.
Дополнение по CI из проверки второго ревью на
90379f6: build.yml действительно не запускает тесты, fmt или clippy. Текущих sim tests уже три, а не два. Это развитие существующей задачи #8, отдельный дубль не создавался. Добавить обязательный native/headless test job перед публикацией релиза; fmt --check и clippy вводить после фиксации базового состояния, без автоматического изменения поведения и без хрупких wall-clock thresholds на shared runner. Отдельно отличать функциональные регрессии от benchmark-наблюдений. Существующий стресс-тест с пустым Ground не проверяет корректность очереди ответов высот и не ловит #1.🤖 Agent: сделано в https://gitea.maoniao.team/chexit/airdef/commit/ed2db85 (запушено в main, CI зелёный).