AutoTest: Handle direct usage of quick_test_main

If users need to register additional QML types before Qt5.12
they need to bend the Quick tests magic a bit and use
quick_test_main or quick_test_main_with_setup directly.
The plugin supports something similar for QTest::qExec, so
allow this for Quick tests as well.

Task-number: QTCREATORBUG-20746
Change-Id: I672f8410914c6cc77abc901998f419dda35755ae
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
This commit is contained in:
Christian Stenger
2018-07-09 10:43:31 +02:00
parent 0471fc0f46
commit 3a4592609c
3 changed files with 75 additions and 3 deletions

View File

@@ -27,6 +27,8 @@
#include "quicktesttreeitem.h"
#include <cplusplus/ASTVisitor.h>
#include <cplusplus/CppDocument.h>
#include <qmljs/parser/qmljsastvisitor_p.h>
#include <qmljs/qmljsdocument.h>
@@ -65,5 +67,19 @@ private:
bool m_expectTestCaseName = false;
};
class QuickTestAstVisitor : public CPlusPlus::ASTVisitor
{
public:
QuickTestAstVisitor(CPlusPlus::Document::Ptr doc, const CPlusPlus::Snapshot &snapshot);
bool visit(CPlusPlus::CallAST *ast) override;
QString testBaseName() const { return m_testBaseName; }
private:
QString m_testBaseName;
CPlusPlus::Document::Ptr m_currentDoc;
CPlusPlus::Snapshot m_snapshot;
};
} // namespace Internal
} // namespace Autotest