import QtQuick import My.Module1 as M1 Item { id: root Component.onCompleted: { function checkInstance(label, instance, value) { if (!instance) { console.log(label, "KO instance is null") return false } if (instance.ok !== value) { console.log(label, "KO got", instance.ok, "expected", value) return false } else { console.log(label, "OK") return true } } function checkClass(namespace, classname, value) { let newObject = null; try { newObject = Qt.createQmlObject( "import %1; %2 {}".arg(namespace).arg(classname), root, "some path" ) } catch (e) { console.log(namespace, classname, "KO failed to instanciate object") return false } return checkInstance("%1 %2".arg(namespace).arg(classname), newObject, value) } let ret = true ret &= checkClass("My.Module1", "Basic", 1); ret &= checkClass("My.Module1", "Thing", 2); ret &= checkClass("My.Module1", "QmlCppExposed", 3); ret &= checkInstance("My.Module1 QmlSingleton", M1.QmlSingleton, 5) ret &= checkClass("My.Module2", "Thing", 2); ret &= checkClass("My.Module3", "Basic", 1); ret &= checkClass("My.Module4", "BasicAliased", 1); ret &= checkClass("My.Module5", "SubdirHeader", 6); ret &= checkClass("My.Module6", "Basic", 1); if (!ret) Qt.exit(1) else Qt.quit() } }