OpenCoverage

main.cpp

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/qtdeclarative/src/qtdeclarative/tools/qmllint/main.cpp
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5static bool lint_file(const QString &filename, bool silent)-
6{-
7 QFile file(filename);-
8 if (!file.open(QFile::ReadOnly)
!file.open(QFile::ReadOnly)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
9 QMessageLogger(__FILE__, 46, __PRETTY_FUNCTION__).warning() << "Failed to open file" << filename << file.error();-
10 return
never executed: return false;
false;
never executed: return false;
0
11 }-
12-
13 QString code = QString::fromUtf8(file.readAll());-
14 file.close();-
15-
16 QQmlJS::Engine engine;-
17 QQmlJS::Lexer lexer(&engine);-
18-
19 QFileInfo info(filename);-
20 bool isJavaScript = info.suffix().toLower() == QLatin1String("js");-
21 lexer.setCode(code, 1, !isJavaScript);-
22 QQmlJS::Parser parser(&engine);-
23-
24 bool success = isJavaScript
isJavaScriptDescription
TRUEnever evaluated
FALSEnever evaluated
? parser.parseProgram() : parser.parse();
0
25-
26 if (!success
!successDescription
TRUEnever evaluated
FALSEnever evaluated
&& !silent
!silentDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
27 const auto diagnosticMessages = parser.diagnosticMessages();-
28 for (const QQmlJS::DiagnosticMessage &m : diagnosticMessages) {-
29 QMessageLogger(__FILE__, 66, __PRETTY_FUNCTION__).warning("%s:%d : %s", QtPrivate::asString(filename).toLocal8Bit().constData(), m.loc.startLine, QtPrivate::asString(m.message).toLocal8Bit().constData());-
30 }
never executed: end of block
0
31 }
never executed: end of block
0
32-
33 return
never executed: return success;
success;
never executed: return success;
0
34}-
35-
36int main(int argv, char *argc[])-
37{-
38 QCoreApplication app(argv, argc);-
39 QCoreApplication::setApplicationName("qmllint");-
40 QCoreApplication::setApplicationVersion("1.0");-
41-
42 QCommandLineParser parser;-
43 parser.setApplicationDescription(QLatin1String("QML syntax verifier"));-
44 parser.addHelpOption();-
45 parser.addVersionOption();-
46 QCommandLineOption silentOption(QStringList() << "s" << "silent", QLatin1String("Don't output syntax errors"));-
47 parser.addOption(silentOption);-
48 parser.addPositionalArgument(QLatin1String("files"), QLatin1String("list of qml or js files to verify"));-
49-
50 parser.process(app);-
51-
52 const auto positionalArguments = parser.positionalArguments();-
53 if (positionalArguments.isEmpty()
positionalArguments.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
54 parser.showHelp(-1);-
55 }
never executed: end of block
0
56-
57 bool silent = parser.isSet(silentOption);-
58-
59-
60-
61 bool success = true;-
62-
63 for (const QString &filename : positionalArguments)-
64-
65-
66-
67-
68 success &= lint_file(filename, silent);
never executed: success &= lint_file(filename, silent);
0
69-
70 return
never executed: return success ? 0 : -1;
success ? 0 : -1;
never executed: return success ? 0 : -1;
0
71}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.0