powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Программирование [игнор отключен] [закрыт для гостей] / CTEST: объединение тестов из разных директорий в единый маршрут?
3 сообщений из 3, страница 1 из 1
CTEST: объединение тестов из разных директорий в единый маршрут?
    #40130904
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Допустим, у меня есть список директорий
DIR1, DIR2, DIR3, ...

Для каждой директории есть список ключей для CMAKE с которыми собираются тесты в этой директории. Наборов может быть несколько, допустим, DIR1_KEY1, DIR2_KEY1, DIR2_KEY2, DIR2_KEY3, DIR3_KEY1, DIR3_KEY2, ...

Сейчас процесс тестирования выглядит так: для каждого набора ключей создаем временную директорию (допустим, DIR1_KEY1_TMP), собираем в ней cmake.
Когда собрали все тесты, начинаем обходить эти директории и выполнять тесты.

Некоторые тесты выполняются быстро, некоторые долго.
Допустим, в директории 16 тестов которые исполняются за 1 секунду (в сумме это 1 секунда в 16 потоков) и еще один тест, который исполняется целый час (1 час на одном ядре и еще 15 ядер в простое: в сумме один час). В соседней директории сто тестов, которые выполняются за 15 часов (или за один час в 15 потоков).
В итоге сначала час занимает тестирование первой директории, а потом час второй. Хотя если все тесты слить в единый маршрут, в параллель они должны пройти за час. Все тесты между собой независимые, порядок не имеет значения.

Возможно ли объединить одним запуском CTEST тесты из всех директорий таким образом, чтобы не было простоев?
Сборка довольно нудный процесс через толстый автогенерируемый баш-скрипт, поэтому переделать его в один CMAKE КМК куда сложнее, чем запустить тесты...
...
Рейтинг: 0 / 0
CTEST: объединение тестов из разных директорий в единый маршрут?
    #40130926
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CMake - в топку.

Но в принципе, ты можешь из главного сценария запустить вспомогательную цель которая будет создавать еще один сценарий на основе переменных заданных в главном и тут-же подключать этот свеже-созданный в качестве дочернего.
...
Рейтинг: 0 / 0
CTEST: объединение тестов из разных директорий в единый маршрут?
    #40131037
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl
CMake - в топку.

Но в принципе, ты можешь из главного сценария запустить вспомогательную цель которая будет создавать еще один сценарий на основе переменных заданных в главном и тут-же подключать этот свеже-созданный в качестве дочернего.
Та не... Переделывать с нуля не хотелось бы.

Сейчас этот большой баш-скрипт вызывает сотни cmake-сборок, каждая из которых делает свой список тестов. Потом начинается обход этих директорий и запуск на них тестов. Проблема во временных провалах, когда 1-2 ядра загружены длинными тестами, а остальные в простое, хотя могли бы молотить тесты из соседней директории.

Все это уже работает, только хотелось бы как-то ускорить =)
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / CTEST: объединение тестов из разных директорий в единый маршрут?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]