LINUX.ORG.RU

Каждый тест — это новый класс со своим конструктором, в котором тест сам себя регистрирует. Макрос TEST (и остальные), помимо всего прочего, создаёт глобальный объект этого класса, на старте вызывается его конструктор, и тест регистрируется, где нужно.

Gvidon ★★★★
()
Ответ на: комментарий от Gvidon

в котором тест сам себя регистрирует.

Вот это надо. Как называется функция/метод регистрации? Если я хочу её искать сам, то надо использовать dlsym?

По ходу нашёл.

TestInfo* MakeAndRegisterTestInfo(
    const char* test_case_name,
    const char* name,
    const char* type_param,
    const char* value_param,
    CodeLocation code_location,
    TypeId fixture_class_id,
    SetUpTestCaseFunc set_up_tc,
    TearDownTestCaseFunc tear_down_tc,
    TestFactoryBase* factory) {
  TestInfo* const test_info =
      new TestInfo(test_case_name, name, type_param, value_param,
                   code_location, fixture_class_id, factory);
  GetUnitTestImpl()->AddTestInfo(set_up_tc, tear_down_tc, test_info);
  return test_info;
}
Но оно в internal namespace. Нормально ли будет, если её буду искать?

UVV ★★★★★
() автор топика
Последнее исправление: UVV (всего исправлений: 1)

Глобальной регистрацией.

См. gtest-internal.h, последние строки и ::testing::TestInfo.

vzzo ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.