Я хочу выполнить покрытие кода в статической библиотеке. Для этого я написал тестовые примеры с помощью boost. В моей библиотеке у меня есть много функций, определенных в файлах заголовков.
Например, в файле заголовка precision.h у меня есть следующие функции
static float absf( float x )
{
return (x >= 0.0f) ? x : -x;
}
static boolean almost_zero( float n, float tol )
{
return (boolean)(absf( n ) <= tol);
}
Я написал тестовые примеры для этих функций. Но проблема в том, что GCOV показывает, что эти функции не покрываются. Если я перенесу определение функции в файл C, я получу правильные результаты покрытия.
Я использовал -fprofile-arcs -ftest-coverag для выполнения покрытия. Кто-нибудь знает по этому поводу.
Примечание.
Тестовые наборы выполняются правильно. Я подтвердил это отладкой.
Я использую MinGW gcc версии 4.8.1 (GCC).
absf()
кажется немного бессмысленным, почему бы вместо этого не использовать стандартныйfabs()
? Такжеboolean
нестандартен, используйтеbool
. - person unwind   schedule 10.07.2015absf
должен быть с плавающей точкой. - person ryanpattison   schedule 10.07.2015