Я хотел бы написать собственную проверку 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
.