forked from qt-creator/qt-creator
AutoTest: De-noise code a bit
Change-Id: I4585ebfb53623221c713ab0e8e254ba59a4e5920 Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -39,6 +39,8 @@
|
||||
#include <utils/algorithm.h>
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
using namespace QmlJS;
|
||||
|
||||
namespace Autotest {
|
||||
namespace Internal {
|
||||
|
||||
@@ -137,18 +139,18 @@ static QString quickTestName(const CPlusPlus::Document::Ptr &doc,
|
||||
return astVisitor.testBaseName();
|
||||
}
|
||||
|
||||
QList<QmlJS::Document::Ptr> QuickTestParser::scanDirectoryForQuickTestQmlFiles(const QString &srcDir) const
|
||||
QList<Document::Ptr> QuickTestParser::scanDirectoryForQuickTestQmlFiles(const QString &srcDir) const
|
||||
{
|
||||
QStringList dirs(srcDir);
|
||||
QmlJS::ModelManagerInterface *qmlJsMM = QmlJSTools::Internal::ModelManager::instance();
|
||||
ModelManagerInterface *qmlJsMM = QmlJSTools::Internal::ModelManager::instance();
|
||||
// make sure even files not listed in pro file are available inside the snapshot
|
||||
QFutureInterface<void> future;
|
||||
QmlJS::PathsAndLanguages paths;
|
||||
paths.maybeInsert(Utils::FilePath::fromString(srcDir), QmlJS::Dialect::Qml);
|
||||
QmlJS::ModelManagerInterface::importScan(future, qmlJsMM->workingCopy(), paths, qmlJsMM,
|
||||
PathsAndLanguages paths;
|
||||
paths.maybeInsert(Utils::FilePath::fromString(srcDir), Dialect::Qml);
|
||||
ModelManagerInterface::importScan(future, qmlJsMM->workingCopy(), paths, qmlJsMM,
|
||||
false /*emitDocumentChanges*/, false /*onlyTheLib*/, true /*forceRescan*/ );
|
||||
|
||||
const QmlJS::Snapshot snapshot = QmlJSTools::Internal::ModelManager::instance()->snapshot();
|
||||
const Snapshot snapshot = QmlJSTools::Internal::ModelManager::instance()->snapshot();
|
||||
QDirIterator it(srcDir, QDir::Dirs | QDir::NoDotAndDotDot, QDirIterator::Subdirectories);
|
||||
while (it.hasNext()) {
|
||||
it.next();
|
||||
@@ -157,11 +159,11 @@ QList<QmlJS::Document::Ptr> QuickTestParser::scanDirectoryForQuickTestQmlFiles(c
|
||||
}
|
||||
emit updateWatchPaths(dirs);
|
||||
|
||||
QList<QmlJS::Document::Ptr> foundDocs;
|
||||
QList<Document::Ptr> foundDocs;
|
||||
|
||||
for (const QString &path : dirs) {
|
||||
const QList<QmlJS::Document::Ptr> docs = snapshot.documentsInDirectory(path);
|
||||
for (const QmlJS::Document::Ptr &doc : docs) {
|
||||
const QList<Document::Ptr> docs = snapshot.documentsInDirectory(path);
|
||||
for (const Document::Ptr &doc : docs) {
|
||||
const QFileInfo fi(doc->fileName());
|
||||
// using working copy above might provide no more existing files
|
||||
if (!fi.exists())
|
||||
@@ -176,17 +178,17 @@ QList<QmlJS::Document::Ptr> QuickTestParser::scanDirectoryForQuickTestQmlFiles(c
|
||||
}
|
||||
|
||||
static bool checkQmlDocumentForQuickTestCode(QFutureInterface<TestParseResultPtr> futureInterface,
|
||||
const QmlJS::Document::Ptr &qmlJSDoc,
|
||||
const Document::Ptr &qmlJSDoc,
|
||||
const Core::Id &id,
|
||||
const QString &proFile = QString())
|
||||
{
|
||||
if (qmlJSDoc.isNull())
|
||||
return false;
|
||||
QmlJS::AST::Node *ast = qmlJSDoc->ast();
|
||||
AST::Node *ast = qmlJSDoc->ast();
|
||||
QTC_ASSERT(ast, return false);
|
||||
QmlJS::Snapshot snapshot = QmlJS::ModelManagerInterface::instance()->snapshot();
|
||||
Snapshot snapshot = ModelManagerInterface::instance()->snapshot();
|
||||
TestQmlVisitor qmlVisitor(qmlJSDoc, snapshot);
|
||||
QmlJS::AST::Node::accept(ast, &qmlVisitor);
|
||||
AST::Node::accept(ast, &qmlVisitor);
|
||||
if (!qmlVisitor.isValid())
|
||||
return false;
|
||||
|
||||
@@ -243,9 +245,9 @@ bool QuickTestParser::handleQtQuickTest(QFutureInterface<TestParseResultPtr> fut
|
||||
|
||||
if (futureInterface.isCanceled())
|
||||
return false;
|
||||
const QList<QmlJS::Document::Ptr> qmlDocs = scanDirectoryForQuickTestQmlFiles(srcDir);
|
||||
const QList<Document::Ptr> qmlDocs = scanDirectoryForQuickTestQmlFiles(srcDir);
|
||||
bool result = false;
|
||||
for (const QmlJS::Document::Ptr &qmlJSDoc : qmlDocs) {
|
||||
for (const Document::Ptr &qmlJSDoc : qmlDocs) {
|
||||
if (futureInterface.isCanceled())
|
||||
break;
|
||||
result |= checkQmlDocumentForQuickTestCode(futureInterface, qmlJSDoc, id, proFile);
|
||||
@@ -276,14 +278,14 @@ void QuickTestParser::handleDirectoryChanged(const QString &directory)
|
||||
return filesAndDates.value(file) != watched.value(file);
|
||||
});
|
||||
if (timestampChanged) {
|
||||
QmlJS::PathsAndLanguages paths;
|
||||
paths.maybeInsert(Utils::FilePath::fromString(directory), QmlJS::Dialect::Qml);
|
||||
PathsAndLanguages paths;
|
||||
paths.maybeInsert(Utils::FilePath::fromString(directory), Dialect::Qml);
|
||||
QFutureInterface<void> future;
|
||||
QmlJS::ModelManagerInterface *qmlJsMM = QmlJS::ModelManagerInterface::instance();
|
||||
QmlJS::ModelManagerInterface::importScan(future, qmlJsMM->workingCopy(), paths, qmlJsMM,
|
||||
true /*emitDocumentChanges*/,
|
||||
false /*onlyTheLib*/,
|
||||
true /*forceRescan*/ );
|
||||
ModelManagerInterface *qmlJsMM = ModelManagerInterface::instance();
|
||||
ModelManagerInterface::importScan(future, qmlJsMM->workingCopy(), paths, qmlJsMM,
|
||||
true /*emitDocumentChanges*/,
|
||||
false /*onlyTheLib*/,
|
||||
true /*forceRescan*/ );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -335,7 +337,7 @@ void QuickTestParser::init(const QStringList &filesToParse, bool fullParse)
|
||||
|
||||
void QuickTestParser::release()
|
||||
{
|
||||
m_qmlSnapshot = QmlJS::Snapshot();
|
||||
m_qmlSnapshot = Snapshot();
|
||||
m_proFilesForQmlFiles.clear();
|
||||
CppParser::release();
|
||||
}
|
||||
@@ -347,7 +349,7 @@ bool QuickTestParser::processDocument(QFutureInterface<TestParseResultPtr> futur
|
||||
const QString &proFile = m_proFilesForQmlFiles.value(fileName);
|
||||
if (proFile.isEmpty())
|
||||
return false;
|
||||
QmlJS::Document::Ptr qmlJSDoc = m_qmlSnapshot.document(fileName);
|
||||
Document::Ptr qmlJSDoc = m_qmlSnapshot.document(fileName);
|
||||
return checkQmlDocumentForQuickTestCode(futureInterface, qmlJSDoc, id(), proFile);
|
||||
}
|
||||
if (!m_cppSnapshot.contains(fileName) || !selectedForBuilding(fileName))
|
||||
|
||||
Reference in New Issue
Block a user