// Copyright (C) 2018 Klaralvdalens Datakonsult AB (KDAB). // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #include #include #include #include using namespace Qt3DRender; class tst_ObjGeometryLoader : public QObject { Q_OBJECT private Q_SLOTS: void checkOutOfBoundFaceAccess_data() { QTest::addColumn("filePath"); QTest::newRow("invalid position index") << ":invalid_vertex_position.obj"; } void checkOutOfBoundFaceAccess() { // GIVEN QFETCH(QString, filePath); QFactoryLoader geometryLoader(QGeometryLoaderFactory_iid, QLatin1String("/geometryloaders"), Qt::CaseInsensitive); QScopedPointer loader; loader.reset(qLoadPlugin(&geometryLoader, QLatin1String("obj"))); if (!loader) QSKIP("ObjLoaderPlugin not deployed"); QFile file(filePath); QVERIFY(file.open(QIODevice::ReadOnly)); // WHEN loader->load(&file); // THEN // -> shouldn't crash } }; QTEST_MAIN(tst_ObjGeometryLoader) #include "tst_objgeometryloader.moc"