forked from qt-creator/qt-creator
Detect special functions for Quick Tests
Quick Tests are capable of having benchmarks, data driven tests and special functions (init/cleanup/...) as well. Change-Id: Ieb9b6b1f842f1211a9d3192b486f789c987fa27b Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
This commit is contained in:
@@ -34,6 +34,12 @@
|
||||
namespace Autotest {
|
||||
namespace Internal {
|
||||
|
||||
// names of special functions (applies for QTest as well as Quick Tests)
|
||||
static QList<QString> specialFunctions = QList<QString>() << QLatin1String("initTestCase")
|
||||
<< QLatin1String("cleanupTestCase")
|
||||
<< QLatin1String("init")
|
||||
<< QLatin1String("cleanup");
|
||||
|
||||
/************************** Cpp Test Symbol Visitor ***************************/
|
||||
|
||||
TestVisitor::TestVisitor(const QString &fullQualifiedClassName)
|
||||
@@ -45,11 +51,6 @@ TestVisitor::~TestVisitor()
|
||||
{
|
||||
}
|
||||
|
||||
static QList<QString> specialFunctions = QList<QString>() << QLatin1String("initTestCase")
|
||||
<< QLatin1String("cleanupTestCase")
|
||||
<< QLatin1String("init")
|
||||
<< QLatin1String("cleanup");
|
||||
|
||||
bool TestVisitor::visit(CPlusPlus::Class *symbol)
|
||||
{
|
||||
const CPlusPlus::Overview o;
|
||||
@@ -177,12 +178,20 @@ bool TestQmlVisitor::visit(QmlJS::AST::UiScriptBinding *ast)
|
||||
bool TestQmlVisitor::visit(QmlJS::AST::FunctionDeclaration *ast)
|
||||
{
|
||||
const QStringRef name = ast->name;
|
||||
if (name.startsWith(QLatin1String("test_"))) {
|
||||
if (name.startsWith(QLatin1String("test_"))
|
||||
|| name.startsWith(QLatin1String("benchmark_"))
|
||||
|| name.endsWith(QLatin1String("_data"))
|
||||
|| specialFunctions.contains(name.toString())) {
|
||||
const auto sourceLocation = ast->firstSourceLocation();
|
||||
TestCodeLocationAndType locationAndType;
|
||||
locationAndType.m_fileName = m_currentDoc->fileName();
|
||||
locationAndType.m_line = sourceLocation.startLine;
|
||||
locationAndType.m_column = sourceLocation.startColumn - 1;
|
||||
if (specialFunctions.contains(name.toString()))
|
||||
locationAndType.m_type = TestTreeItem::TEST_SPECIALFUNCTION;
|
||||
else if (name.endsWith(QLatin1String("_data")))
|
||||
locationAndType.m_type = TestTreeItem::TEST_DATAFUNCTION;
|
||||
else
|
||||
locationAndType.m_type = TestTreeItem::TEST_FUNCTION;
|
||||
|
||||
m_testFunctions.insert(name.toString(), locationAndType);
|
||||
|
Reference in New Issue
Block a user