Фреймворк для тестирования пайплайнов YTsaurus Flow
Страница описывает настройку рабочей машины и низкоуровневые параметры для контрибьюторов, дорабатывающих сам Flow и запускающих его интеграционный тестовый набор. Авторам пайплайнов, которые тестируют свой код, см. Тестирование (C++), Тестирование (Java), Тестирование (Go) и Тестирование (Python) — там собраны параметры запуска и приёмы, нужные для пайплайн-тестов.
Подготовка окружения
Тестовый набор Flow ловит падения процессов Flow и достаёт из coredump'ов бектрейсы. Чтобы это работало, на машине должен быть включён сбор coredump'ов:
# Временно (лучше прописать в ~/.bashrc).
ulimit -c unlimited
И добавление PID процесса в имя файла coredump:
# Временно — действует до перезагрузки:
sudo sysctl -w kernel.core_uses_pid=1
# Постоянно:
echo "kernel.core_uses_pid=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
Без core_uses_pid=1 возможны странности вроде многократного извлечения бектрейсов из одного coredump.
Параметры тестов Flow
Помимо общих параметров (см. Тестирование (C++)), при работе над самим Flow полезны параметры, влияющие на внутреннее поведение фреймворка:
|
Параметр |
По умолчанию |
Значения |
Действие |
|
|
|
|
Записывать на диск бектрейсы потоков и файберов запущенных процессов Flow при непойманном |
|
|
абсолютный путь |
Использовать фиксированный бинарь пайплайна — например, собранный с thread-санитайзером. |
|
|
|
|
Управляет добавлением бектрейсов к ошибкам в логах. |
Примеры:
ya make -A --test-param ERROR_BACKTRACE_ENRICHER_LEVEL=enabled_for_all
ya make -A --test-param DUMP_BACKTRACES_IF_HANGS=1