1. Может ли программа, основанная на Boost Testing Facility, выдать ненулевой код завершения если в ней есть утечки памяти?
(при использование "в лоб" буст пишет об утечках в лог, но программа завершается с кодом 0, т.е. как бы успешно)
2. Может ли Boost Testing Facility замерять время выполнения программы?
(я покопался и не нашел, хотя логично было бы что да)
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
Здравствуйте, Basil2, Вы писали:
B>1. Может ли программа, основанная на Boost Testing Facility, выдать ненулевой код завершения если в ней есть утечки памяти? B>(при использование "в лоб" буст пишет об утечках в лог, но программа завершается с кодом 0, т.е. как бы успешно)
нет, это юнит-тесты, а не проверяльщик.
B>2. Может ли Boost Testing Facility замерять время выполнения программы? B>(я покопался и не нашел, хотя логично было бы что да)
нету, по крайней мере если используешь авторегистрацию (потому что при авторегистрации не очень понятно, куда это запихивать).
Здравствуйте, jazzer, Вы писали:
B>>1. Может ли программа, основанная на Boost Testing Facility, выдать ненулевой код завершения если в ней есть утечки памяти? B>>(при использование "в лоб" буст пишет об утечках в лог, но программа завершается с кодом 0, т.е. как бы успешно) J>нет, это юнит-тесты, а не проверяльщик.
А юнит-тесты что, не проверяльщики разве?! (перефразируя День выборов
B>>2. Может ли Boost Testing Facility замерять время выполнения программы? J>нету, по крайней мере если используешь авторегистрацию (потому что при авторегистрации не очень понятно, куда это запихивать).
Авторегистрацию я не использую (мне нужны параметры командной строки), но кое-что по теме вроде бы есть в Boost.Progress.
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
Здравствуйте, Basil2, Вы писали:
J>>нет, это юнит-тесты, а не проверяльщик.
B>А юнит-тесты что, не проверяльщики разве?! (перефразируя День выборов
юнит-тесты проверяют то, что ты сам руками напишешь.
B>Авторегистрацию я не использую (мне нужны параметры командной строки), но кое-что по теме вроде бы есть в Boost.Progress.
Здравствуйте, jazzer, Вы писали:
J>Здравствуйте, Basil2, Вы писали:
B>>1. Может ли программа, основанная на Boost Testing Facility, выдать ненулевой код завершения если в ней есть утечки памяти? B>>(при использование "в лоб" буст пишет об утечках в лог, но программа завершается с кодом 0, т.е. как бы успешно) J>нет, это юнит-тесты, а не проверяльщик.
Не совсем так. Действительно Boost.Test не является по большому счету leak checking facility. UTF использует функцию предоставляемую MS Runtime по проверке уткечек. Эта функция отрабатывает уже после выхода из main (иначе слишком много false positives). Соответственно код завершения поменять нельзя.
B>>2. Может ли Boost Testing Facility замерять время выполнения программы? B>>(я покопался и не нашел, хотя логично было бы что да) J>нету, по крайней мере если используешь авторегистрацию (потому что при авторегистрации не очень понятно, куда это запихивать).
Boost.Test does report test case execution time. You need to set log level to the test_suite level.
Здравствуйте, rogeeff, Вы писали:
B>>>2. Может ли Boost Testing Facility замерять время выполнения программы? B>>>(я покопался и не нашел, хотя логично было бы что да) J>>нету, по крайней мере если используешь авторегистрацию (потому что при авторегистрации не очень понятно, куда это запихивать).
R>Boost.Test does report test case execution time. You need to set log level to the test_suite level.
Ну она же будет замерять время исполнения всего теста, а не только того кусочка, что мне нужен...
Разве что вынести весь остальной код в инициализацию фикстуры (как это по-русски правильно произносить? ), а в тестах оставить только код, который интересно замерять...
Ну пока что легче обходиться локальными таймерами и простым сравнением прошедшего времени с эталоном.
А можно ли сделать так, чтобы тест автоматом прибивался, если играет дольше определенного времени?
Или такое уже есть?
Здравствуйте, jazzer, Вы писали:
J>Здравствуйте, rogeeff, Вы писали:
B>>>>2. Может ли Boost Testing Facility замерять время выполнения программы? B>>>>(я покопался и не нашел, хотя логично было бы что да) J>>>нету, по крайней мере если используешь авторегистрацию (потому что при авторегистрации не очень понятно, куда это запихивать).
R>>Boost.Test does report test case execution time. You need to set log level to the test_suite level.
J>Ну она же будет замерять время исполнения всего теста, а не только того кусочка, что мне нужен... J>Разве что вынести весь остальной код в инициализацию фикстуры (как это по-русски правильно произносить? ), а в тестах оставить только код, который интересно замерять... J>Ну пока что легче обходиться локальными таймерами и простым сравнением прошедшего времени с эталоном.
J>А можно ли сделать так, чтобы тест автоматом прибивался, если играет дольше определенного времени? J>Или такое уже есть?
You can specify timeout for the manually registered test cases, but timeout implementation works at the moment only on *nux where SIGALRM is available.