Соответствие определенным объявлениям функций из существующего контекста в clang-tidy - PullRequest
1 голос
/ 02 июля 2019

Я хотел бы написать собственную проверку clang-tidy для переноса кода с cppunit на googletest.

class SomeTest: public CPPUNIT_NS::TestFixture {
  CPPUNIT_TEST_SUITE(SomeTest);
  CPPUNIT_TEST(shouldDoSomething);
  CPPUNIT_TEST_SUITE_END();

...

protected:
  void shouldDoSomething();
  void otherFunction(int times = 0);
};

CPPUNITFRAMEWORK_TEST_SUITE_REGISTRATION(SomeTest);

...

void SomeTest::shouldDoSomething() {...}
void SomeTest::otherFunction(int) {}

Я бы хотел заменить

void SomeTest::shouldDoSomething() {...}

с

TEST_F(SomeTest, shouldDoSomething) {...}

Я могу сопоставить имя функции из макроса CPPUNIT_TEST(...) с

stringLiteral(hasAncestor(callExpr(callee(functionDecl(hasName("getTestNameFor"))))))

но я понятия не имею, возможно ли повторно использовать эту информацию для соответствия объявлению функции, чтобы я мог фактически заменить ее на googletest.

...