diff options
author | Stephen Kelly <stephen.kelly@kdab.com> | 2012-07-24 16:10:52 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-07-27 03:27:23 +0200 |
commit | 9784dd8d06565177a302d4dabec0b6555a958e53 (patch) | |
tree | c6746ade9a3cb2327a13d471c351fbd58ed16b4a /tests/auto | |
parent | 17c74529e4d343424c53e6630cd8c14d8d4d3313 (diff) |
Implement implicit constructors for built-in classes.
Change-Id: I6b0b104bc1da3252d014615c50b81830de42e722
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Diffstat (limited to 'tests/auto')
3 files changed, 121 insertions, 0 deletions
diff --git a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp index b6382d3896..7fc092b44d 100644 --- a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp +++ b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp @@ -234,6 +234,8 @@ private slots: void loadQt5Stream(); void saveQt5Stream_data(); void saveQt5Stream(); + + void implicitConstruction(); private: void dataStream_data(QDataStream::Version version); void loadQVariantFromDataStream(QDataStream::Version version); @@ -3254,5 +3256,53 @@ void tst_QVariant::debugStreamType() QVERIFY(msgHandler.testPassed()); } +void tst_QVariant::implicitConstruction() +{ + // This is a compile-time test + QVariant v; + +#define FOR_EACH_CORE_CLASS(F) \ + F(Char) \ + F(String) \ + F(StringList) \ + F(ByteArray) \ + F(BitArray) \ + F(Date) \ + F(Time) \ + F(DateTime) \ + F(Url) \ + F(Locale) \ + F(Rect) \ + F(RectF) \ + F(Size) \ + F(SizeF) \ + F(Line) \ + F(LineF) \ + F(Point) \ + F(PointF) \ + F(RegExp) \ + F(EasingCurve) \ + F(Uuid) \ + F(ModelIndex) \ + F(RegularExpression) \ + F(JsonValue) \ + F(JsonObject) \ + F(JsonArray) \ + F(JsonDocument) \ + +#define CONSTRUCT(TYPE) \ + { \ + Q##TYPE t; \ + v = t; \ + t = v.to##TYPE(); \ + QVERIFY(true); \ + } + + FOR_EACH_CORE_CLASS(CONSTRUCT) + +#undef CONSTRUCT +#undef FOR_EACH_CORE_CLASS +} + QTEST_MAIN(tst_QVariant) #include "tst_qvariant.moc" diff --git a/tests/auto/gui/kernel/qguivariant/test/tst_qguivariant.cpp b/tests/auto/gui/kernel/qguivariant/test/tst_qguivariant.cpp index 301d8891bb..5a8ff7b760 100644 --- a/tests/auto/gui/kernel/qguivariant/test/tst_qguivariant.cpp +++ b/tests/auto/gui/kernel/qguivariant/test/tst_qguivariant.cpp @@ -59,6 +59,8 @@ #include <qvector3d.h> #include <qvector4d.h> #include <qquaternion.h> +#include <qtextdocument.h> +#include <qtextformat.h> #include <qfont.h> #include "tst_qvariant_common.h" @@ -118,6 +120,8 @@ private slots: void debugStream_data(); void debugStream(); + void implicitConstruction(); + void guiVariantAtExit(); }; @@ -626,6 +630,49 @@ void tst_QGuiVariant::debugStream() QVERIFY(msgHandler.testPassed()); } +void tst_QGuiVariant::implicitConstruction() +{ + // This is a compile-time test + QVariant v; + +#define FOR_EACH_GUI_CLASS(F) \ + F(Font) \ + F(Pixmap) \ + F(Brush) \ + F(Color) \ + F(Palette) \ + F(Icon) \ + F(Image) \ + F(Polygon) \ + F(Region) \ + F(Bitmap) \ + F(Cursor) \ + F(KeySequence) \ + F(Pen) \ + F(TextLength) \ + F(TextFormat) \ + F(Matrix) \ + F(Transform) \ + F(Matrix4x4) \ + F(Vector2D) \ + F(Vector3D) \ + F(Vector4D) \ + F(Quaternion) \ + F(PolygonF) \ + +#define CONSTRUCT(TYPE) \ + { \ + Q##TYPE t; \ + v = t; \ + QVERIFY(true); \ + } + + FOR_EACH_GUI_CLASS(CONSTRUCT) + +#undef CONSTRUCT +#undef FOR_EACH_GUI_CLASS +} + void tst_QGuiVariant::guiVariantAtExit() { // crash test, it should not crash at QGuiApplication exit diff --git a/tests/auto/widgets/kernel/qwidgetsvariant/tst_qwidgetsvariant.cpp b/tests/auto/widgets/kernel/qwidgetsvariant/tst_qwidgetsvariant.cpp index ccb9492a9a..90238b5d9b 100644 --- a/tests/auto/widgets/kernel/qwidgetsvariant/tst_qwidgetsvariant.cpp +++ b/tests/auto/widgets/kernel/qwidgetsvariant/tst_qwidgetsvariant.cpp @@ -69,6 +69,8 @@ private slots: void debugStream_data(); void debugStream(); + void implicitConstruction(); + void widgetsVariantAtExit(); }; @@ -254,5 +256,27 @@ void tst_QWidgetsVariant::widgetsVariantAtExit() QVERIFY(true); } + +void tst_QWidgetsVariant::implicitConstruction() +{ + // This is a compile-time test + QVariant v; + +#define FOR_EACH_WIDGETS_CLASS(F) \ + F(SizePolicy) \ + +#define CONSTRUCT(TYPE) \ + { \ + Q##TYPE t; \ + v = t; \ + QVERIFY(true); \ + } + + FOR_EACH_WIDGETS_CLASS(CONSTRUCT) + +#undef CONSTRUCT +#undef FOR_EACH_WIDGETS_CLASS +} + QTEST_MAIN(tst_QWidgetsVariant) #include "tst_qwidgetsvariant.moc" |