moc: error out when the Q_PLUGIN_METADATA file can't be opened
Task-number: QTBUG-56045 Change-Id: Ib058791036a2728dcd6215009a4ff206278bed14 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
8a410f60ae
commit
0e20635c39
@ -1294,7 +1294,12 @@ void Moc::parsePluginData(ClassDef *def)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
QFile file(fi.canonicalFilePath());
|
QFile file(fi.canonicalFilePath());
|
||||||
file.open(QFile::ReadOnly);
|
if (!file.open(QFile::ReadOnly)) {
|
||||||
|
QByteArray msg = "Plugin Metadata file " + lexem() + " could not be opened: "
|
||||||
|
+ file.errorString().toUtf8();
|
||||||
|
error(msg.constData());
|
||||||
|
return;
|
||||||
|
}
|
||||||
metaData = file.readAll();
|
metaData = file.readAll();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2145,6 +2145,22 @@ void tst_Moc::warnings_data()
|
|||||||
<< 0
|
<< 0
|
||||||
<< QString()
|
<< QString()
|
||||||
<< QString("standard input:1: Note: No relevant classes found. No output generated.");
|
<< QString("standard input:1: Note: No relevant classes found. No output generated.");
|
||||||
|
|
||||||
|
QTest::newRow("Q_PLUGIN_METADATA: invalid file")
|
||||||
|
<< QByteArray("class X { \n Q_PLUGIN_METADATA(FILE \"does.not.exists\") \n };")
|
||||||
|
<< QStringList()
|
||||||
|
<< 1
|
||||||
|
<< QString()
|
||||||
|
<< QString("standard input:2: Error: Plugin Metadata file \"does.not.exists\" does not exist. Declaration will be ignored");
|
||||||
|
|
||||||
|
#ifdef Q_OS_LINUX // Limit to Linux because the error message is platform-dependent
|
||||||
|
QTest::newRow("Q_PLUGIN_METADATA: unreadable file")
|
||||||
|
<< QByteArray("class X { \n Q_PLUGIN_METADATA(FILE \".\") \n };")
|
||||||
|
<< QStringList()
|
||||||
|
<< 1
|
||||||
|
<< QString()
|
||||||
|
<< QString("standard input:2: Error: Plugin Metadata file \".\" could not be opened: file to open is a directory");
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void tst_Moc::warnings()
|
void tst_Moc::warnings()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user