summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/kernel/qmetatype
Commit message (Collapse)AuthorAgeFilesLines
* Fix Q_DECLARE_METATYPE macroJędrzej Nowacki2014-03-171-1/+7
| | | | | | | | | The macro should stringify value of the given token not the token itself. Task-number: QTBUG-37547 Change-Id: I90f4fa613bd13d5a581828ab13f620b40dfd3593 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Try to speedup tst_qmetatype.cpp compilation with clang.Jędrzej Nowacki2014-03-061-0/+15
| | | | | | | | | | | | | The test instantiates enormous amounts of templates in one compilation unit. All clang versions, that I tested, suffers from performance issues while compiling the test, the cost depends on the version. The most affected are shipped by Apple. Task-number: QTBUG-37237 Change-Id: I0959c1a4a6faee448ae1dae5c1e70ee06cefbd9c Reviewed-by: Simo Fält <simo.falt@digia.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* Reduce clang compilation time of tst_qmetatype by ~50%Jędrzej Nowacki2014-03-061-13/+1
| | | | | | | | | We do not need to check all possible basic type combinations in the autoregistration test. Change-Id: Ibfb97a93d9d1862e669d843988976690bbc83c74 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Simplify tst_QMetaType::automaticTemplateRegistrationJędrzej Nowacki2014-03-061-55/+62
| | | | | | | | | | Redundant and unused variadic macro arguments were removed. For macros with known count of arguments, named arguments are preferred. Common code was moved out from macros so it is not generated over and over. Change-Id: Ib5106555d0d3c6cadfbdbdbd614831240b6d762f Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Remove qSort usages from core testsSergio Ahumada2014-02-221-1/+3
| | | | | | | | | QtAlgorithms is getting deprecated, see http://www.mail-archive.com/development@qt-project.org/msg01603.html Change-Id: I355558fe6a51d00e9aa1f8b1221c6ec0c1e6bb77 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Loosen checks for Q_COMPILER_VARIADIC_MACROSKai Koehne2014-02-201-0/+5
| | | | | | | | | | | | | | | | | | | | So far we did bind the definition of Q_COMPILER_VARIADIC_MACROS to C++11 (so gcc, clang will not define it in default gnu++98 standard). However, variadic macros are a feature of the gcc preprocessor since version 2.97, and are enabled in the default configurations on gcc, clang, icc. This might cause warnings and errors though if one enables additional warnings in gcc, clang (e.g. by -pedantic). Anyhow, as a precedent qglobal.h already relies on 'long long' ... The warning can be disabled by adding '-Wno-variadic-macros'. [ChangeLog][Compiler Specific Changes] Variadic macros are now enabled more liberally for gcc, clang, icc. If you have warnings (because you e.g. compile with -pedantic), disable them by -Wno-variadic-macros. Change-Id: Ie979b85809508ad70cab75e6981f20496429f463 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* WinRT: Fix various test compilationsAndrew Knight2013-10-021-2/+2
| | | | | | | | | | | | | - Remove irrelevant test subdirs via .pro files - Follow WinCE codepaths where applicable - Replace unsupported Win32 APIs with WinRT equivalents This does not aim to fix any failures in the tests themselves; it only makes them compile. Change-Id: Ia82bc0cc402891f8f6238d4c261ee9152b51be80 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Core: QDebug and comparison operator support metatypes.Christoph Schleifenbaum2013-05-272-1/+87
| | | | | | | | This patch adds a way to enable operator<, operator== and operator<< into QDebug for QVariants with custom types. Change-Id: I3d12d891bd7252ad2b8f1de69bced354800a1f29 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Don't test QHash<float, U> or QHash<double, U>Stephen Kelly2013-05-201-4/+1
| | | | | | | | | | | | Although it is possible to construct those containers, they are not usable, as qHash(float) and qHash(double) are ambiguous. Also don't use CustomMovable as a container key. It is not equality or lessthan comparable. Change-Id: I8c7ee068250e2e2b3427769153e3017721c13c50 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Core: Support for converting user defined QVariant types.Christoph Schleifenbaum2013-05-081-0/+282
| | | | | | | | | | | | | | | | | This patchs allows the user to convert defined QMetaType types like MyType to be converted by using e.g. QVariant::toString(), mapping to MyType::toString(). Also all the other QVariant::toXYZ() methods are supported so far. The patch adds static methods QMetaType::registerConverter supporting: - implicit convertion - conversion using member method of source type - conversion using unary functor Change-Id: I4f1db83d9c78bcc9df5c42f82f95cce0480cdcc3 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com> Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Merge "Merge remote-tracking branch 'origin/stable' into dev" into ↵Frederik Gladhorn2013-04-261-2/+2
|\ | | | | | | refs/staging/dev
| * Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-04-221-2/+2
| |\ | | | | | | | | | Change-Id: I059725e3b7d7ffd5a16a0931e6c17200917172b5
| | * Reduce qmetatype autotest build time for Windows CE.Janne Anttila2013-04-171-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | qmetatype autotest build for WEC7 took several hours [1] See timestamps 03:51:13 and 07:44:52. The timestamped Jenkins log is only available in Digia network. The corresponding log without timestamps is available from [2]. Use same workaround for all Windows CE / WEC7 builds as currently used for desktop MSVC2012. [1]: http://qt-ci.digia.com/job/QtBase_stable_Integration/cfg=wince70embedded-armv4i-msvc2008_Windows_7/940/consoleFull [2]: http://testresults.qt-project.org/ci/QtBase_stable_Integration/build_00940/ Change-Id: Ia21be8972d82c8d37073c9097b8d4094261e4126 Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | | Use variadic templates to mark function pointers as non-QObjects.Stephen Kelly2013-04-241-0/+4
|/ / | | | | | | | | Change-Id: I4d4e7a0498ff8f5b834dae4008d1311838180036 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* / Add automatic metatype handling for common standard library containers.Stephen Kelly2013-04-011-15/+59
|/ | | | | | Change-Id: I7fc6db6ea71026066d3e3fa4bfd5ecd5c96ad067 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Android compile fixPaul Olav Tvete2013-03-121-1/+1
| | | | | | | | Android is not a proper Linux, and in particular it does not have pthread_yield(). Change-Id: Ibf94cfacdc24d0c3baaef002c64f9f50c72c01d2 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Fix QMetaType of const referencesOlivier Goffart2013-02-211-0/+12
| | | | | | | | | | | | | | This fixes QMetaType detection of const reference arguments in signals while connecting using the new syntax and Qt::QueuedConnection const references should have the same QMetaType as non references. That means we need to remove the const reference while getting the QMetaType. Change-Id: I9b2688da7fb9ae985aec0d8fa62a1165357ffe71 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-181-1/+1
| | | | | Change-Id: Ic804938fc352291d011800d21e549c10acac66fb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Remove MSVC2012-optimization for the QMetaType-test.Friedemann Kleint2012-12-141-2/+7
| | | | | | | | | As otherwise compilation takes hours. Task-number: QTBUG-28611 Change-Id: I0ad73bf6ea4d7d4594e902c101bf52969daca341 Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
* Prevent "number of sections exceeded" when compiling qmetatype tests.Mitch Curtis2012-11-231-0/+5
| | | | | | | | | | | | When compiling qmetatype auto tests with msvc2008 64-bit, I receive: qmetatype.h(383) : fatal error C1128: number of sections exceeded object file format limit : compile with /bigobj This patch follows that advice and adds /bigobj to QMAKE_CXXFLAGS. Change-Id: I05b3cf9dfdb6a93649c692e2df22365d200e6f2f Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
* Fix a warning on compilers not supporting constexpr.Jędrzej Nowacki2012-11-111-4/+4
| | | | | | | | | Macros should call QSKIP instead of creating a semi-empty function body. Change-Id: I389701f618fe9bf0a40aa26f161620389a80e407 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com> Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-221-24/+24
| | | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* Change SChar to metatype id 40.Stephen Kelly2012-09-031-0/+0
| | | | | | | | | This fills the gap left by QWidgetStar, making the sequence between FirstCoreType and LastCoreType contiguous, which some benchmarks assume to be true anyway. Change-Id: I2d5d202b6246a9065fdf77f325a4a04279dbe4b7 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove QWidgetStar.Stephen Kelly2012-08-182-3/+0
| | | | | | | | | | | | This allows us to remove the odd hacks to get the static metaobject for the QWidget* metatype. The QWidget* is still an automatic metatype thanks to the QObject partial template specialization. It is registered as a metatype at runtime automatically in qwidgetsvariant.cpp. Change-Id: Ie01b69eadf2cbe87af1a86c3284550f60dcf9e94 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Set the Qt API level to compatibility mode in all tests.Thiago Macieira2012-08-011-1/+2
| | | | | | | | | | | Qt 5.0 beta requires changing the default to the 5.0 API, disabling the deprecated code. However, tests should test (and often do) the compatibility API too, so turn it back on. Task-number: QTBUG-25053 Change-Id: I8129c3ef3cb58541c95a32d083850d9e7f768927 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* QMetaTypeId2::IsBuiltIn: (new) template meta-function to check for built-in ↵Marc Mutz2012-07-261-0/+19
| | | | | | | | | | | | | | | types This allows to check whether QMetaTypeId2::MetaType exists, and can help turn run-time into compile-time expressions, even without constexpr support, or in situations where constexpr can't be used (because you can't overload on it). This was designed for the QMetaType::registerConversion feature, but it's much more widely applicable. Change-Id: Iafa04add04bcb531b3f7fe3e751c7e91ee6a3bc0 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* tst_qmetatype: fix two more unused typedefs (GCC 4.8 warning)Marc Mutz2012-07-251-3/+1
| | | | | | | | | Also check the return value of DefaultValueFactory<QMetaType::Void>::create(), the same way it's done in testCreateHelper<QMetaType::Void>(). Change-Id: I3e6d7fca4ea74dbe65009f2eb2c64a1b3a370d68 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Make qRegisterMetaType constexpr for built-in types.Stephen Kelly2012-07-251-0/+30
| | | | | | | | For consistency with qMetaTypeId, and because we can. Change-Id: I6882a16ef3c0d84539048c9f2c201c4a2b2ca7ad Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Test for QMetaType binary breakage.Jędrzej Nowacki2012-07-133-0/+46
| | | | | | | Type traits can not be changed durring Qt5 life time. Change-Id: If69f65ff2113c901580afee91b11ae1b11c13a4f Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Add constexpr template specializations for built in metatypes.Stephen Kelly2012-07-031-0/+41
| | | | | | | | | This will make it possible (in Qt 6) to remove the enums listing metatype ids. As it is constexpr, it can be used in switch statements just like enums, as enum values, and as template specialization values. Change-Id: I51293674c403714e34cb8a8b8953522fc97a740a Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Store the QMetaObject with the QMetaType.Stephen Kelly2012-07-011-0/+14
| | | | | | | | This will allow conversion between pointers to compatible QObject derived types. Change-Id: I19e08934571fb3f1b91e594892214041fe5f6a11 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* Record if a metatype is a smart pointer to a QObject derived.Stephen Kelly2012-06-201-14/+17
| | | | | | | | | | | | This allows QVariant/QMetaType software (such as QtDeclarative) to deal with smart pointers in a similar way to how they can deal with naked pointers (accessing properties etc). This also adds a requirement that T be fully defined when QSharedPointer<T> is inserted into a QVariant. Change-Id: I29e12b8a6aa5f4aadbd62f92b89bc238f64b5725 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* Add automatic metatype declaration for QPointer and QWeakPointer.Stephen Kelly2012-06-151-8/+18
| | | | | Change-Id: Ic9a04fa68d0bb14ef07455a6559e59f4b887f38b Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* Fix automatic declaration of QSharedPointer<T> metatypes.Stephen Kelly2012-06-121-4/+27
| | | | | | | | | | | | | | | | | | | | | | | QSharedPointer doesn't work like the other automatic template metatype declarations because in some cases T* is declared as a metatype, but we are interested in QSharedPointer<T> (eg QObject*). In other cases, T is declared as a metatype and we are interested in QSharedPointer<T> (eg char). In particular the macro used before this patch was attempting to get the metatype id of the element_type using for example qMetaTypeId<QObject>() instead of qMetaTypeId<QObject*>(), which did not work. Similarly, the variadic macro driven test is no good, because it was testing QSharedPointer<QObject*> instead of QSharedPointer<QObject>, so that is removed. In the end, the only thing we can sensibly automatically declare as metatypes are QSharedPointers to QObject derived types. That is also the type that makes the most sense in a QML context anyway. Change-Id: I13dd40147e2e6bedf38661f898102abaaaa96208 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* Avoid a type name normalization during auto-registration.Jędrzej Nowacki2012-06-121-1/+13
| | | | | | | Containers are auto-registered and use normalized names. Change-Id: Id65c3940401f69436929220e1f6a971135e147ed Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* tst_qmetatype: avoid slow compilation with some MSVC2010Rohan McGovern2012-05-241-1/+7
| | | | | | | | | | | | | MSVC2010 32-bit (with and without service pack 1) takes about 1 hour to compile this file in some builds, since 1c7421ad14f9321422cdfeede3902552a34ccf3b. Avoid the relevant portion of the code just for these compilers. Change-Id: Icbb4fa12a6d563a7cdc882c30cdb5705675bedb0 Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* Add test of automated container metatype declaration.Stephen Kelly2012-05-181-0/+104
| | | | | Change-Id: Iddaf444ead6d9f0147b9b11452ccea46aa712ba3 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* Introduce a new built-in type: signed char.Jędrzej Nowacki2012-05-081-1/+5
| | | | | | | | | | | | C++ distinguish between "char", "signed char" and "unsigned char", they are three independent types. Fix QVariant behavior on ARM. On ARM "char" may mean "unsigned char", but we depends on the sign during a numerical conversions. Change-Id: I610ce3fb88ed5964b67f3ae442d264fe16b2d261 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Don't use obsolete qVariantValue, qVariantCanConvert, etc.Debao Zhang2012-05-021-1/+1
| | | | | | | | | | qVariantValue and qVariantCanConvert are Compatibility members, while in Qt4.8 they are marked as Qt 3 Support Members. qVariantFromValue and qVariantSetValue are Obsolete members. Change-Id: Ie8505cad1e0950e40c6f6710fde9f6fb2ac670fd Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Merge remote-tracking branch 'origin/master' into api_changesOswald Buddenhagen2012-04-101-1/+1
|\ | | | | | | | | | | | | | | | | | | Conflicts: configure src/widgets/styles/qwindowsxpstyle.cpp tests/auto/gui/kernel/qwindow/qwindow.pro tests/auto/gui/kernel/qwindow/tst_qwindow.cpp Change-Id: I624b6d26abce9874c610c04954c1c45bc074bef3
| * Fix MSVC warnings in tests.Friedemann Kleint2012-04-021-1/+1
| | | | | | | | | | | | | | | | | | - Unused variables - conversion truncations - Overflow in expressions like '-1 + sizeof()' Change-Id: Ibbd18497951e9e7e9dccaf596cb4e864b69ec02c Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
* | Fallback implementation of Q_ALIGNOFJoão Abecasis2012-03-231-30/+4
| | | | | | | | | | | | | | | | | | | | | | | | For all practical purposes, the fallback introduced here returns the desired value. Having a fallback enables unconditional use of Q_ALIGNOF. For compilers that provide native support for it, Q_ALIGNOF is otherwise #defined in qcompilerdetection.h. Change-Id: Ie148ca8936cbbf8b80fe87771a14797c39a9d30c Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Add QtJson types to meta-type systemKent Hansen2012-03-201-0/+34
| | | | | | | | | | | | | | | | | | | | Make QJsonValue, QJsonObject, QJsonArray and QJsonDocument first-class meta-types. This is an enabler for a lightweight integration with QML. Change-Id: I4725efdd2746cf97fd26d3632a99e8eee849f834 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* | Merge master into api_changesKent Hansen2012-03-191-7/+15
|\| | | | | | | | | | | | | | | Conflicts: src/corelib/tools/qvector.h tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp Change-Id: I877256e95f3788e617437f4e9661a88047f38cd6
| * Add new test cases to tst_QMetaType.Jędrzej Nowacki2012-03-181-6/+14
| | | | | | | | | | Change-Id: I405ab5df9d9de3a0a0a71276b172a27ee01392e3 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* | Add autotests for QMetaType::load() and save()Kent Hansen2012-03-181-0/+126
| | | | | | | | | | | | | | These were not covered at all by tst_qmetatype. Change-Id: Ic957470ac78b2c15fe449efe17e1f178a41c3690 Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
* | Merge master into api_changesKent Hansen2012-03-161-19/+29
|\| | | | | | | | | | | | | | | | | Conflicts: src/corelib/kernel/qmetatype.cpp src/gui/kernel/qplatformsurface_qpa.cpp tests/auto/corelib/tools/qtimeline/qtimeline.pro Change-Id: Iff3fff34eeeb06f02369767ddfce44cfde505178
| * Unify QMetaType::TypeFlags detection.Jędrzej Nowacki2012-03-141-19/+29
| | | | | | | | | | | | | | | | | | Duplicated code was removed. As an side effect: - one runtime flag check was replaced by a compile time check. - is enum flag can be used together with built-in types. Change-Id: I54173e7b07ce7e487d3cc21ba24dcccd28b5d049 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* | QRegularExpression: QMetaType and QVariant supportGiuseppe D'Angelo2012-03-141-0/+10
| | | | | | | | | | | | | | | | | | Removed the Q_DECLARE_METATYPE in favour of first-class support inside QMetaType and QVariant. Change-Id: I904236822bfab967dc0fbd4d4cc2bcb68c741adc Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* | Merge remote-tracking branch 'origin/master' into api_changesLars Knoll2012-03-121-4/+48
|\| | | | | | | | | | | | | Conflicts: tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp Change-Id: I884afc3b6d65c6411733a897a1949e19393573a7