Selaa lähdekoodia

Tune qml tests

- Skip tests in case if Qt version doesn't include qml fixes for
  transparent types
Alexey Edelev 5 vuotta sitten
vanhempi
commit
7e314d2f52
3 muutettua tiedostoa jossa 142 lisäystä ja 1 poistoa
  1. 12 1
      tests/test_qml/main.cpp
  2. 119 0
      tests/test_qml/main.moc
  3. 11 0
      tests/test_qml/qml/tst_simple.qml

+ 12 - 1
tests/test_qml/main.cpp

@@ -23,7 +23,9 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
-#include <QtQuickTest/quicktest.h>
+#include <QtQuickTest>
+#include <QQmlEngine>
+#include <QQmlContext>
 
 #include "simpletest.qpb.h"
 #include "qtprotobuf_global.qpb.h"
@@ -31,12 +33,21 @@
 using namespace qtprotobufnamespace::tests;
 
 class TestSetup : public QObject {
+    Q_OBJECT
 public:
     TestSetup() {
         QtProtobuf::qRegisterProtobufTypes();
         qtprotobufnamespace::tests::qRegisterProtobufTypes();
+
     }
     ~TestSetup() = default;
+public slots:
+    void qmlEngineAvailable(QQmlEngine *engine)
+    {
+        engine->rootContext()->setContextProperty("qVersion", QT_VERSION);
+    }
 };
 
 QUICK_TEST_MAIN_WITH_SETUP(qtprotobuf_qml_test, TestSetup)
+
+#include "main.moc"

+ 119 - 0
tests/test_qml/main.moc

@@ -0,0 +1,119 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'main.cpp'
+**
+** Created by: The Qt Meta Object Compiler version 67 (Qt 5.12.5)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include <QtCore/qbytearray.h>
+#include <QtCore/qmetatype.h>
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'main.cpp' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 67
+#error "This file was generated using the moc from 5.12.5. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+QT_WARNING_PUSH
+QT_WARNING_DISABLE_DEPRECATED
+struct qt_meta_stringdata_TestSetup_t {
+    QByteArrayData data[5];
+    char stringdata0[49];
+};
+#define QT_MOC_LITERAL(idx, ofs, len) \
+    Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
+    qptrdiff(offsetof(qt_meta_stringdata_TestSetup_t, stringdata0) + ofs \
+        - idx * sizeof(QByteArrayData)) \
+    )
+static const qt_meta_stringdata_TestSetup_t qt_meta_stringdata_TestSetup = {
+    {
+QT_MOC_LITERAL(0, 0, 9), // "TestSetup"
+QT_MOC_LITERAL(1, 10, 18), // "qmlEngineAvailable"
+QT_MOC_LITERAL(2, 29, 0), // ""
+QT_MOC_LITERAL(3, 30, 11), // "QQmlEngine*"
+QT_MOC_LITERAL(4, 42, 6) // "engine"
+
+    },
+    "TestSetup\0qmlEngineAvailable\0\0QQmlEngine*\0"
+    "engine"
+};
+#undef QT_MOC_LITERAL
+
+static const uint qt_meta_data_TestSetup[] = {
+
+ // content:
+       8,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       1,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       0,       // signalCount
+
+ // slots: name, argc, parameters, tag, flags
+       1,    1,   19,    2, 0x0a /* Public */,
+
+ // slots: parameters
+    QMetaType::Void, 0x80000000 | 3,    4,
+
+       0        // eod
+};
+
+void TestSetup::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
+{
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        auto *_t = static_cast<TestSetup *>(_o);
+        Q_UNUSED(_t)
+        switch (_id) {
+        case 0: _t->qmlEngineAvailable((*reinterpret_cast< QQmlEngine*(*)>(_a[1]))); break;
+        default: ;
+        }
+    }
+}
+
+QT_INIT_METAOBJECT const QMetaObject TestSetup::staticMetaObject = { {
+    &QObject::staticMetaObject,
+    qt_meta_stringdata_TestSetup.data,
+    qt_meta_data_TestSetup,
+    qt_static_metacall,
+    nullptr,
+    nullptr
+} };
+
+
+const QMetaObject *TestSetup::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
+}
+
+void *TestSetup::qt_metacast(const char *_clname)
+{
+    if (!_clname) return nullptr;
+    if (!strcmp(_clname, qt_meta_stringdata_TestSetup.stringdata0))
+        return static_cast<void*>(this);
+    return QObject::qt_metacast(_clname);
+}
+
+int TestSetup::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QObject::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        if (_id < 1)
+            qt_static_metacall(this, _c, _id, _a);
+        _id -= 1;
+    } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
+        if (_id < 1)
+            *reinterpret_cast<int*>(_a[0]) = -1;
+        _id -= 1;
+    }
+    return _id;
+}
+QT_WARNING_POP
+QT_END_MOC_NAMESPACE

+ 11 - 0
tests/test_qml/qml/tst_simple.qml

@@ -84,6 +84,9 @@ TestCase {
     }
 
     function test_simpleintmessage() {
+        if (qVersion < 0x050E00) {
+            skip("int32 type is not supported by Qt < 5.14")
+        }
         compare(int32Msg.testFieldInt == 2147483647, true, "SimpleIntMessage.testFieldInt: 2147483647: " + int32Msg.testFieldInt)
         int32Msg.testFieldInt = 0;
         compare(int32Msg.testFieldInt == 0, true, "SimpleIntMessage == 0")
@@ -154,6 +157,10 @@ TestCase {
     }
 
     function test_simplefixed32message() {
+        if (qVersion < 0x050E00) {
+            skip("fixed32 type is not supported by Qt < 5.14")
+        }
+
         compare(fixed32Msg.testFieldFixedInt32 == 4294967295, true, "SimpleFixedInt32Message.testFieldInt: 4294967295: " + fixed32Msg.testFieldFixedInt32)
         fixed32Msg.testFieldFixedInt32 = 0;
         compare(fixed32Msg.testFieldFixedInt32 == 0, true, "SimpleFixedInt32Message == 0")
@@ -172,6 +179,10 @@ TestCase {
     }
 
     function test_simplesfixed32message() {
+        if (qVersion < 0x050E00) {
+            skip("sfixed32 type is not supported by Qt < 5.14")
+        }
+
         compare(sfixed32Msg.testFieldFixedInt32 == 2147483647, true, "SimpleSFixedInt32Message.testFieldInt: 2147483647: " + sfixed32Msg.testFieldFixedInt32)
         sfixed32Msg.testFieldFixedInt32 = 0;
         compare(sfixed32Msg.testFieldFixedInt32 == 0, true, "SimpleSFixedInt32Message == 0")