Documentation
¶
Overview ¶
Пакет runner применяет мутанты в пуле изолированных копий модуля, запускает go test параллельно и определяет статус каждого мутанта.
Схема работы:
- При старте создаётся ровно Workers копий модуля в tmpdir — по одной на воркер.
- Каждый мутант: a. Синтаксическая проверка через go/parser (без I/O). b. Воркер берёт свободную копию из пула, вносит мутацию, запускает go test. c. После теста восстанавливает файл из оригинала и возвращает копию в пул.
- По завершении все копии удаляются.
Это сокращает дисковые операции с O(мутанты × модуль) до O(воркеры × модуль). Оригинальные файлы никогда не изменяются.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Result ¶
type Result struct {
Mutant mutator.Mutant
Duration time.Duration
// Output — усечённый вывод тестового прогона (для диагностики).
Output string
}
Result хранит итог выполнения тестов против одного мутанта.
type Runner ¶
type Runner struct {
// PackageDir — директория анализируемого Go-пакета (абсолютный путь).
PackageDir string
// ModuleRoot — директория, содержащая go.mod (абсолютный путь).
ModuleRoot string
// Timeout — максимальное время одного тестового прогона.
Timeout time.Duration
// Workers — число параллельных тестовых прогонов.
Workers int
// Verbose включает подробный вывод статуса для каждого мутанта.
Verbose bool
}
Runner управляет параллельным изолированным прогоном тестов.
Click to show internal directories.
Click to hide internal directories.