2015-12-21 3 views
1

Я бы хотел, чтобы пользовательская основная функция вызывалась до того, как эталон начнет работать с тестовой библиотекой Google. Чтобы я мог настроить несколько вещей. Я искал совсем немного, но я ничего не смог найти. Должен ли я просто изменить макрос вручную? Или просто используйте мою основную функцию и самостоятельно инициализируйте тест. Это повлияет на инициализацию библиотеки каким-либо образом? Есть ли другой способ, не требующий от меня изменения этого макроса или копирования его содержимого?Google benchmark custom main

benchmark\benchmark_api.h

// Helper macro to create a main routine in a test that runs the benchmarks 
#define BENCHMARK_MAIN()     \ 
    int main(int argc, char** argv) {  \ 
    ::benchmark::Initialize(&argc, argv); \ 
    ::benchmark::RunSpecifiedBenchmarks(); \ 
    } 

ответ

3

BENCHMARK_MAIN() просто помощник макро, так что вы должны быть в состоянии определить свою собственную версию main() так:

int main(int argc, char** argv) 
{ 
    your_custom_init(); 
    ::benchmark::Initialize(&argc, argv); 
    ::benchmark::RunSpecifiedBenchmarks(); 
}