aboutsummaryrefslogtreecommitdiffstats
path: root/sources
diff options
context:
space:
mode:
Diffstat (limited to 'sources')
-rw-r--r--sources/shiboken2/ApiExtractor/tests/testinserttemplate.cpp46
-rw-r--r--sources/shiboken2/ApiExtractor/tests/testinserttemplate.h2
-rw-r--r--sources/shiboken2/ApiExtractor/typesystem.cpp31
3 files changed, 14 insertions, 65 deletions
diff --git a/sources/shiboken2/ApiExtractor/tests/testinserttemplate.cpp b/sources/shiboken2/ApiExtractor/tests/testinserttemplate.cpp
index 766265def..8962f83ff 100644
--- a/sources/shiboken2/ApiExtractor/tests/testinserttemplate.cpp
+++ b/sources/shiboken2/ApiExtractor/tests/testinserttemplate.cpp
@@ -81,50 +81,4 @@ void TestInsertTemplate::testInsertTemplateOnModuleInjectCode()
QVERIFY(code.contains(QLatin1String("code template content")));
}
-void TestInsertTemplate::testInvalidTypeSystemTemplate()
-{
- const char* cppCode ="";
- const char* xmlCode = "\
- <typesystem package='Foo'>\n\
- <inject-code class='native'>\n\
- <insert-template name='this_code_template_does_not_exists'/>\n\
- </inject-code>\n\
- </typesystem>\n";
- QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
- AbstractMetaClassList classes = builder->classes();
- QVERIFY(classes.isEmpty());
-
- TypeEntry* module = TypeDatabase::instance()->findType(QLatin1String("Foo"));
- QVERIFY(module);
- QCOMPARE(module->codeSnips().count(), 1);
- QString code = module->codeSnips().first().code().trimmed();
- QVERIFY(code.isEmpty());
-}
-
-void TestInsertTemplate::testValidAndInvalidTypeSystemTemplate()
-{
- const char* cppCode ="";
- const char* xmlCode = "\
- <typesystem package='Foo'>\n\
- <template name='code_template'>\n\
- code template content\n\
- </template>\n\
- <inject-code class='native'>\n\
- <insert-template name='this_code_template_does_not_exists'/>\n\
- <insert-template name='code_template'/>\n\
- </inject-code>\n\
- </typesystem>\n";
- QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
- AbstractMetaClassList classes = builder->classes();
- QVERIFY(classes.isEmpty());
-
- TypeEntry* module = TypeDatabase::instance()->findType(QLatin1String("Foo"));
- QVERIFY(module);
- QCOMPARE(module->codeSnips().count(), 1);
- QString code = module->codeSnips().first().code().trimmed();
- QVERIFY(code.contains(QLatin1String("code template content")));
-}
-
QTEST_APPLESS_MAIN(TestInsertTemplate)
diff --git a/sources/shiboken2/ApiExtractor/tests/testinserttemplate.h b/sources/shiboken2/ApiExtractor/tests/testinserttemplate.h
index 45a85493c..99b171933 100644
--- a/sources/shiboken2/ApiExtractor/tests/testinserttemplate.h
+++ b/sources/shiboken2/ApiExtractor/tests/testinserttemplate.h
@@ -37,8 +37,6 @@ class TestInsertTemplate : public QObject
private slots:
void testInsertTemplateOnClassInjectCode();
void testInsertTemplateOnModuleInjectCode();
- void testInvalidTypeSystemTemplate();
- void testValidAndInvalidTypeSystemTemplate();
};
#endif
diff --git a/sources/shiboken2/ApiExtractor/typesystem.cpp b/sources/shiboken2/ApiExtractor/typesystem.cpp
index e82221a40..ff4f74d8c 100644
--- a/sources/shiboken2/ApiExtractor/typesystem.cpp
+++ b/sources/shiboken2/ApiExtractor/typesystem.cpp
@@ -3053,23 +3053,20 @@ QString fixCppTypeName(const QString &name)
QString TemplateInstance::expandCode() const
{
TemplateEntry *templateEntry = TypeDatabase::instance()->findTemplate(m_name);
- if (templateEntry) {
- typedef QHash<QString, QString>::const_iterator ConstIt;
- QString code = templateEntry->code();
- for (ConstIt it = replaceRules.begin(), end = replaceRules.end(); it != end; ++it)
- code.replace(it.key(), it.value());
- while (!code.isEmpty() && code.at(code.size() - 1).isSpace())
- code.chop(1);
- QString result = QLatin1String("// TEMPLATE - ") + m_name + QLatin1String(" - START");
- if (!code.startsWith(QLatin1Char('\n')))
- result += QLatin1Char('\n');
- result += code;
- result += QLatin1String("\n// TEMPLATE - ") + m_name + QLatin1String(" - END");
- return result;
- }
- qCWarning(lcShiboken).noquote().nospace()
- << "insert-template referring to non-existing template '" << m_name << '\'';
- return QString();
+ if (!templateEntry)
+ qFatal("<insert-template> referring to non-existing template '%s'.", qPrintable(m_name));
+
+ QString code = templateEntry->code();
+ for (auto it = replaceRules.cbegin(), end = replaceRules.cend(); it != end; ++it)
+ code.replace(it.key(), it.value());
+ while (!code.isEmpty() && code.at(code.size() - 1).isSpace())
+ code.chop(1);
+ QString result = QLatin1String("// TEMPLATE - ") + m_name + QLatin1String(" - START");
+ if (!code.startsWith(QLatin1Char('\n')))
+ result += QLatin1Char('\n');
+ result += code;
+ result += QLatin1String("\n// TEMPLATE - ") + m_name + QLatin1String(" - END");
+ return result;
}