aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qttest/testcode.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <[email protected]>2011-08-29 11:33:16 +0200
committerFriedemann Kleint <[email protected]>2011-08-29 12:18:44 +0200
commitc952834ff2149e28173d3cebc6e19e2014549077 (patch)
tree7a0b4ba28b9546711f6bfde74ac5d6f160d25beb /src/plugins/qttest/testcode.cpp
parent662c66ef6b31c6d5a36bc960e13e06e576a47b77 (diff)
Fix krazy warnings/some includes in qttest.
Change-Id: I4c11aa5977efb3fa726e8394bec25c86a6fe049f Reviewed-on: http://codereview.qt.nokia.com/3725 Reviewed-by: Qt Sanity Bot <[email protected]> Reviewed-by: Bill King <[email protected]> Reviewed-by: Friedemann Kleint <[email protected]>
Diffstat (limited to 'src/plugins/qttest/testcode.cpp')
-rw-r--r--src/plugins/qttest/testcode.cpp144
1 files changed, 77 insertions, 67 deletions
diff --git a/src/plugins/qttest/testcode.cpp b/src/plugins/qttest/testcode.cpp
index e367014f0ec..b18a5c086cd 100644
--- a/src/plugins/qttest/testcode.cpp
+++ b/src/plugins/qttest/testcode.cpp
@@ -42,9 +42,16 @@
#include <coreplugin/editormanager/editormanager.h>
#include <extensionsystem/pluginmanager.h>
+#include <texteditor/basetexteditor.h>
+
+#include <coreplugin/icontext.h>
+
+#include <qmljs/qmljsmodelmanagerinterface.h>
+
#include <qmljs/parser/qmljsastvisitor_p.h>
#include <qmljs/parser/qmljsast_p.h>
+
#include <AST.h>
#include <ASTVisitor.h>
#include <Literals.h>
@@ -85,8 +92,8 @@ private:
bool visit(QmlJS::AST::IdentifierExpression *identifier)
{
QString name = identifier->name->asString();
- m_foundTestCase = (name == "testcase");
- if (!m_foundTestCase && (name == "prompt" || name == "manualTest"))
+ m_foundTestCase = (name == QLatin1String("testcase"));
+ if (!m_foundTestCase && (name == QLatin1String("prompt") || name == QLatin1String("manualTest")))
m_testCode->setManualTest(identifier->identifierToken.offset);
return true;
}
@@ -175,7 +182,7 @@ protected:
if (symbol->name()) {
const CPlusPlus::QualifiedNameId *qn = symbol->name()->asQualifiedNameId();
if (qn && qn->base()) {
- QString name = QString("%1::%2").arg(qn->base()->identifier()->chars())
+ QString name = QString::fromLatin1("%1::%2").arg(qn->base()->identifier()->chars())
.arg(qn->name()->identifier()->chars());
if (m_knownTestFunctions.contains(name))
m_testCode->processFunction(QString(symbol->name()->identifier()->chars()),
@@ -197,7 +204,7 @@ protected:
CPlusPlus::Symbol *member = *it;
CPlusPlus::Function *fun = member->type()->asFunctionType();
if (fun && fun->isSlot() && member && member->name() && member->name()->identifier()) {
- m_knownTestFunctions.append(className + "::"
+ m_knownTestFunctions.append(className + QLatin1String("::")
+ QString(member->name()->identifier()->chars()));
m_testCode->processFunction(QString(member->name()->identifier()->chars()),
fun->line(), fun->startOffset(), fun->endOffset());
@@ -259,11 +266,11 @@ TestFunctionInfo& TestFunctionInfo::operator=(const TestFunctionInfo &other)
bool TestFunctionInfo::validFunctionName(const QString &funcName)
{
return (!funcName.isEmpty()
- && funcName != "init"
- && funcName != "initTestCase"
- && funcName != "cleanup"
- && funcName != "cleanupTestCase"
- && !funcName.endsWith("_data"));
+ && funcName != QLatin1String("init")
+ && funcName != QLatin1String("initTestCase")
+ && funcName != QLatin1String("cleanup")
+ && funcName != QLatin1String("cleanupTestCase")
+ && !funcName.endsWith(QLatin1String("_data")));
}
TestCode::TestCode(const QString &basePath, const QString &externalPath, const QString &fileName) :
@@ -278,13 +285,13 @@ TestCode::TestCode(const QString &basePath, const QString &externalPath, const Q
m_errored(false)
{
QString baseName = baseFileName();
- if (baseName.endsWith(".qtt"))
+ if (baseName.endsWith(QLatin1String(".qtt")))
m_testType = TypeSystemTest;
- else if (baseName.startsWith("prf_"))
+ else if (baseName.startsWith(QLatin1String("prf_")))
m_testType = TypePerformanceTest;
- else if (baseName.startsWith("int_"))
+ else if (baseName.startsWith(QLatin1String("int_")))
m_testType = TypeIntegrationTest;
- else if (baseName.endsWith(".cpp"))
+ else if (baseName.endsWith(QLatin1String(".cpp")))
m_testType = TypeUnitTest;
connect(&m_parseTimer, SIGNAL(timeout()), this, SLOT(parseDocument()), Qt::DirectConnection);
@@ -297,17 +304,17 @@ TestCode::~TestCode()
bool TestCode::parseComments(const QString &contents)
{
- static QRegExp componentRegEx("//TESTED_COMPONENT=(.*)");
- static QRegExp fileRegEx("//TESTED_FILE=(.*)");
- static QRegExp classRegEx("//TESTED_CLASS=(.*)");
- static QRegExp groupsRegEx("\\\\groups\\s+(.*)");
+ static QRegExp componentRegEx(QLatin1String("//TESTED_COMPONENT=(.*)"));
+ static QRegExp fileRegEx(QLatin1String("//TESTED_FILE=(.*)"));
+ static QRegExp classRegEx(QLatin1String("//TESTED_CLASS=(.*)"));
+ static QRegExp groupsRegEx(QLatin1String("\\\\groups\\s+(.*)"));
m_testedComponent.clear();
m_testedFile.clear();
m_testedClass.clear();
int offset = 0;
- QStringList fileContents = contents.split("\n");
+ QStringList fileContents = contents.split(QLatin1Char('\n'));
foreach (const QString &line, fileContents) {
if (m_testedComponent.isEmpty() && line.contains(componentRegEx)) {
m_testedComponent = componentRegEx.cap(1);
@@ -348,10 +355,10 @@ bool TestCode::openTestInEditor(const QString &testFunction)
m_codeEditor = qobject_cast<TextEditor::BaseTextEditor*>(edit);
if (m_codeEditor) {
- if (m_fileName.endsWith(".qtt")) {
+ if (m_fileName.endsWith(QLatin1String(".qtt"))) {
connect(edit, SIGNAL(contextHelpIdRequested(TextEditor::ITextEditor*,int)),
this, SLOT(onContextHelpIdRequested(TextEditor::ITextEditor*,int)));
- m_codeEditor->setContextHelpId("QtUiTest Manual");
+ m_codeEditor->setContextHelpId(QLatin1String("QtUiTest Manual"));
}
}
@@ -399,7 +406,7 @@ bool TestCode::testFunctionExists(QString funcName)
QString TestCode::testedComponent() const
{
if (m_testedComponent.isEmpty())
- return "other";
+ return QLatin1String("other");
return m_testedComponent;
}
@@ -506,19 +513,19 @@ QString TestCode::testTypeString() const
QString ret;
switch (m_testType) {
case TypeUnitTest:
- ret = "Unit";
+ ret = QLatin1String("Unit");
break;
case TypeIntegrationTest:
- ret = "Integration";
+ ret = QLatin1String("Integration");
break;
case TypePerformanceTest:
- ret = "Performance";
+ ret = QLatin1String("Performance");
break;
case TypeSystemTest:
- ret = "System";
+ ret = QLatin1String("System");
break;
default:
- ret = "Unknown";
+ ret = QLatin1String("Unknown");
break;
}
return ret;
@@ -574,7 +581,7 @@ void TestCode::parseDocument()
m_testCase.clear();
if (m_testType == TypeSystemTest) {
- static QRegExp fileNameReg(".*/(.*)/.*\\.qtt$");
+ static QRegExp fileNameReg(QLatin1String(".*/(.*)/.*\\.qtt$"));
if (fileNameReg.indexIn(QDir::fromNativeSeparators(m_qmlJSDoc->fileName())) >= 0)
m_testCase = fileNameReg.cap(1);
SystemTestCodeSync sync(this);
@@ -584,10 +591,10 @@ void TestCode::parseDocument()
m_errored = true;
} else {
// Determine the testcase class name
- foreach (const CPlusPlus::Document::MacroUse macro, m_cppDoc->macroUses()) {
+ foreach (const CPlusPlus::Document::MacroUse &macro, m_cppDoc->macroUses()) {
QString macroName(macro.macro().name());
- if (macro.isFunctionLike() && ((macroName == "QTEST_MAIN")
- || (macroName == "QTEST_APPLESS_MAIN") || (macroName == "QTEST_NOOP_MAIN"))) {
+ if (macro.isFunctionLike() && ((macroName == QLatin1String("QTEST_MAIN"))
+ || (macroName == QLatin1String("QTEST_APPLESS_MAIN")) || (macroName == QLatin1String("QTEST_NOOP_MAIN")))) {
int pos = macro.arguments()[0].position();
int length = macro.arguments()[0].length();
m_testCase = contents.mid(pos, length);
@@ -628,15 +635,15 @@ QString TestCode::projectFileName()
// Figure out what the pro file is.
QString srcPath = QDir::convertSeparators(m_fileInfo->absolutePath());
QDir D(srcPath);
- QStringList files = D.entryList(QStringList("*.pro"));
+ QStringList files = D.entryList(QStringList(QLatin1String("*.pro")));
if (files.count() > 1) {
- qDebug() << "CFAIL", "I am confused: Multiple .pro files (" + files.join(",")
+ qDebug() << "CFAIL", "I am confused: Multiple .pro files (" + files.join(QString(QLatin1Char(',')))
+ ") found in '" + srcPath + "'.";
- return "";
+ return QString();
}
if (files.count() == 0)
- return "";
+ return QString();
return QString(srcPath + QDir::separator() + files[0]);
}
@@ -645,19 +652,19 @@ QString TestCode::execFileName()
{
QString proFile = projectFileName();
if (proFile.isEmpty())
- return "";
+ return QString();
QFile F(proFile);
if (F.open(QFile::ReadOnly)) {
QTextStream S(&F);
while (!S.atEnd()) {
QString line = S.readLine();
- if (line.contains("TARGET")) {
- line = line.mid(line.indexOf("=") + 1);
+ if (line.contains(QLatin1String("TARGET"))) {
+ line = line.mid(line.indexOf(QLatin1Char('=')) + 1);
line = line.simplified();
- if (line.contains("$$TARGET")) {
+ if (line.contains(QLatin1String("$$TARGET"))) {
QFileInfo inf(proFile);
- line.replace("$$TARGET",inf.baseName());
+ line.replace(QLatin1String("$$TARGET"),inf.baseName());
}
return line;
}
@@ -670,7 +677,7 @@ QString TestCode::execFileName()
return fInfo.baseName();
}
- return "";
+ return QString();
}
@@ -755,7 +762,7 @@ bool TestCollection_p::isUnitTestCase(const CPlusPlus::Document::Ptr &doc,
{
// If a source file #includes QtTest/QTest, assume it is a testcase
foreach (const CPlusPlus::Document::Include &i, doc->includes()) {
- if (i.fileName().contains("QtTest") || i.fileName().contains("QTest"))
+ if (i.fileName().contains(QLatin1String("QtTest")) || i.fileName().contains(QLatin1String("QTest")))
return true;
if (visited.contains(i.fileName()))
@@ -833,7 +840,7 @@ void TestCollection_p::scanTests(const QString &suitePath)
if (!D.exists())
return;
- QFileInfoList qttTestFiles = D.entryInfoList(QStringList() << "*.qtt", QDir::Files);
+ QFileInfoList qttTestFiles = D.entryInfoList(QStringList(QLatin1String("*.qtt")), QDir::Files);
QStringList qttTests;
foreach (const QFileInfo &qttTestFile, qttTestFiles) {
qttTests << qttTestFile.absoluteFilePath();
@@ -843,7 +850,7 @@ void TestCollection_p::scanTests(const QString &suitePath)
if (!qttTests.isEmpty())
m_qmlJSModelManager->updateSourceFiles(qttTests, true);
- QFileInfoList cppTestFiles = D.entryInfoList(QStringList() << "*.cpp", QDir::Files);
+ QFileInfoList cppTestFiles = D.entryInfoList(QStringList(QLatin1String("*.cpp")), QDir::Files);
QStringList cppTests;
const CPlusPlus::Snapshot snapshot = m_cppModelManager->snapshot();
foreach (const QFileInfo &cppTestFile, cppTestFiles) {
@@ -860,11 +867,11 @@ void TestCollection_p::scanTests(const QString &suitePath)
m_cppModelManager->updateSourceFiles(cppTests);
QStringList potentialSubdirs =
- D.entryList(QStringList() << "*", QDir::Dirs|QDir::NoDotAndDotDot);
+ D.entryList(QStringList(QString(QLatin1Char('*'))), QDir::Dirs|QDir::NoDotAndDotDot);
foreach (const QString &dname, potentialSubdirs) {
// stop scanning subdirs if we've ended up in a testdata subdir
- if (dname != "testdata")
+ if (dname != QLatin1String("testdata"))
scanTests(suitePath + QDir::separator() + dname);
}
}
@@ -893,12 +900,12 @@ TestCode *TestCollection_p::findCode(const QString &fileName, const QString &bas
QFileInfo inf(fileName);
if (inf.exists() && inf.isFile()) {
tmp = new TestCode(basePath, extraPath, fileName);
- if (fileName.endsWith(".qtt")) {
+ if (fileName.endsWith(QLatin1String(".qtt"))) {
m_qttDocumentMap[fileName] = tmp;
- m_qmlJSModelManager->updateSourceFiles(QStringList() << fileName, true);
+ m_qmlJSModelManager->updateSourceFiles(QStringList(fileName), true);
} else {
m_cppDocumentMap[fileName] = tmp;
- m_cppModelManager->updateSourceFiles(QStringList() << fileName);
+ m_cppModelManager->updateSourceFiles(QStringList(fileName));
}
if (tmp) {
m_codeList.append(tmp);
@@ -969,8 +976,11 @@ QStringList TestCollection_p::manualTests(const QString &startPath, bool compone
if (tmp && (startPath.isEmpty() || tmp->visualFileName(componentMode).startsWith(startPath))) {
for (uint j = 0; j < tmp->testFunctionCount(); ++j) {
TestFunctionInfo *inf = tmp->testFunction(j);
- if (inf && inf->isManualTest())
- ret.append(QString("%1::%2").arg(tmp->testCase()).arg(inf->functionName()));
+ if (inf && inf->isManualTest()) {
+ ret.append(tmp->testCase());
+ ret.append(QLatin1String("::"));
+ ret.append(inf->functionName());
+ }
}
}
}
@@ -1116,8 +1126,8 @@ void TestCode::setManualTest(int offset)
bool TestCode::validFunctionName(const QString &funcName)
{
- if (funcName.isEmpty() || funcName == "initTestCase" || funcName == "init"
- || funcName == "cleanupTestCase" || funcName == "cleanup" || funcName.endsWith("_data")) {
+ if (funcName.isEmpty() || funcName == QLatin1String("initTestCase") || funcName == QLatin1String("init")
+ || funcName == QLatin1String("cleanupTestCase") || funcName == QLatin1String("cleanup") || funcName.endsWith(QLatin1String("_data"))) {
return false;
}
return true;
@@ -1166,7 +1176,7 @@ void TestCode::addTestFunction(const QString &newFuncName, const QString &newFun
}
QString insertString =
- QString("\n\n %1_data:\n {\n },\n\n %1: function()\n {\n }")
+ QString::fromLatin1("\n\n %1_data:\n {\n },\n\n %1: function()\n {\n }")
.arg(newFuncName);
m_codeEditor->setCursorPosition(entryPoint);
@@ -1175,10 +1185,10 @@ void TestCode::addTestFunction(const QString &newFuncName, const QString &newFun
QString lineBefore = m_codeEditor->textAt(m_codeEditor->position(), lineLength).simplified();
m_codeEditor->setCursorPosition(m_codeEditor->position(TextEditor::ITextEditor::EndOfLine));
- if (!lineBefore.endsWith(",") && !m_testFunctions.isEmpty())
- insertString.prepend(",");
+ if (!lineBefore.endsWith(QLatin1Char(',')) && !m_testFunctions.isEmpty())
+ insertString.prepend(QLatin1Char(','));
else
- insertString.append(",");
+ insertString.append(QLatin1Char(','));
m_codeEditor->insert(insertString);
} else {
@@ -1228,7 +1238,7 @@ void TestCode::addTestFunction(const QString &newFuncName, const QString &newFun
m_codeEditor->gotoLine(declLine);
m_codeEditor->setCursorPosition(m_codeEditor->position(TextEditor::ITextEditor::StartOfLine));
- insertString = QString(" void %1_data();\n void %1();\n").arg(newFuncName);
+ insertString = QString::fromLatin1(" void %1_data();\n void %1();\n").arg(newFuncName);
m_codeEditor->insert(insertString);
m_codeEditor->gotoLine(entryLine + 2);
}
@@ -1260,18 +1270,18 @@ QString TestCode::actualBasePath()
QString TestCode::fullVisualSuitePath(bool componentViewMode) const
{
if (m_fileName.isEmpty())
- return "";
+ return QString();
if (componentViewMode)
return QDir::convertSeparators(m_basePath + QDir::separator() + testedComponent());
- if (!m_fileName.endsWith(".cpp") && !m_fileName.endsWith(".qtt"))
+ if (!m_fileName.endsWith(QLatin1String(".cpp")) && !m_fileName.endsWith(QLatin1String(".qtt")))
return m_fileName;
QString fn = m_fileName;
if (!m_externalPath.isEmpty() && fn.startsWith(m_externalPath)) {
fn.remove(m_externalPath);
- fn = m_basePath + QDir::separator() + "tests" + QDir::separator() + "external" + fn;
+ fn = m_basePath + QDir::separator() + QLatin1String("tests") + QDir::separator() + QLatin1String("external") + fn;
}
QFileInfo inf(fn);
@@ -1282,7 +1292,7 @@ QString TestCode::fullVisualSuitePath(bool componentViewMode) const
fn = fn.left(fn.length() - (inf.baseName().length() + 1));
// remove '/tests" if that's on the end
- QString eolstr = QString(QDir::separator()) + "tests";
+ QString eolstr = QString(QDir::separator()) + QLatin1String("tests");
if (fn.endsWith(eolstr)) {
int pos = fn.lastIndexOf(eolstr);
if (pos) fn = fn.left(pos);
@@ -1320,8 +1330,8 @@ QString TestCode::targetFileName(const QString &buildPath) const
QString fn = m_fileName;
if (!m_externalPath.isEmpty() && fn.startsWith(m_externalPath)) {
fn.remove(m_externalPath);
- fn = m_basePath + QDir::separator() + "tests" + QDir::separator()
- + "external" + QDir::separator() + fn;
+ fn = m_basePath + QDir::separator() + QLatin1String("tests") + QDir::separator()
+ + QLatin1String("external") + QDir::separator() + fn;
}
fn.remove(m_basePath);
@@ -1359,20 +1369,20 @@ void TestCode::onContextHelpIdRequested(TextEditor::ITextEditor *editor, int pos
if (!qstSlots.contains(slot))
qstSlots << slot.left(slot.indexOf('('));
}
- qstSlots << "compare" << "verify" << "waitFor"
- << "expect" << "fail" << "tabBar" << "menuBar";
+ qstSlots << QLatin1String("compare") << QLatin1String("verify") << QLatin1String("waitFor")
+ << QLatin1String("expect") << QLatin1String("fail") << QLatin1String("tabBar") << QLatin1String("menuBar");
}
if (start < end) {
QString function = text.mid(start, end - start);
if (qstSlots.contains(function)) {
- m_codeEditor->setContextHelpId(QString("QSystemTest::%1").arg(function));
+ m_codeEditor->setContextHelpId(QString::fromLatin1("QSystemTest::%1").arg(function));
return;
}
}
#endif
- m_codeEditor->setContextHelpId("QtUiTest Manual");
+ m_codeEditor->setContextHelpId(QLatin1String("QtUiTest Manual"));
}
bool TestCode::hasUnsavedChanges() const