33 lines
1.8 KiB
TOML
33 lines
1.8 KiB
TOML
|
|
# Workspace-wide cargo configuration.
|
|||
|
|
#
|
|||
|
|
# Цель: один процесс / один поток на cargo build + cargo test.
|
|||
|
|
# Причина: предотвращение перегрева машины автора. Тесты mt-mnemonic
|
|||
|
|
# выполняют PBKDF2-HMAC-SHA-256 с iter=2²⁰ (1 048 576 итераций SHA-256,
|
|||
|
|
# anti-brute-force защита mnemonic per spec раздел "Ключи → Мнемоника и
|
|||
|
|
# seed → M-1"). При parallel выполнении 6+ тестов на 5+ ядрах одновременно
|
|||
|
|
# — взрыв CPU (528%+, idle 0%) и нагрев машины.
|
|||
|
|
#
|
|||
|
|
# Два уровня контроля parallelism (оба обязательны):
|
|||
|
|
#
|
|||
|
|
# 1. [build] jobs = 1 — ограничивает cargo до 1 process одновременно.
|
|||
|
|
# Cargo при `cargo test` запускает несколько test binaries для разных
|
|||
|
|
# integration tests + unit tests; этот флаг ограничивает их до 1 process
|
|||
|
|
# одновременно (последовательное выполнение test binaries).
|
|||
|
|
#
|
|||
|
|
# 2. RUST_TEST_THREADS=1 — ограничивает потоки ВНУТРИ одного test binary
|
|||
|
|
# до 1 (тесты в одном файле выполняются последовательно).
|
|||
|
|
#
|
|||
|
|
# Без обоих ограничений автор видел в Activity Monitor 569% CPU
|
|||
|
|
# (keygen_vectors-881... 355% + mt_mnemonic-3bfc... 214% параллельно).
|
|||
|
|
#
|
|||
|
|
# Trade-off: тесты выполняются медленнее (sum of times вместо max), но
|
|||
|
|
# author convenience + защита от перегрева > CI/dev speed.
|
|||
|
|
#
|
|||
|
|
# Override для конкретного запуска: явно передать `--jobs N` либо
|
|||
|
|
# `--test-threads=N` через cargo flags.
|
|||
|
|
[build]
|
|||
|
|
jobs = 1
|
|||
|
|
|
|||
|
|
[env]
|
|||
|
|
RUST_TEST_THREADS = "1"
|