aboutsummaryrefslogtreecommitdiffstats
path: root/src/qmltest/quicktest.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix TestCaseCollector fails to initialize component from resourcesChristoph Keller2018-05-131-2/+6
| | | | | | Change-Id: I9f1e20653776bbdf1a8a41a631636ec61ddd08b6 Reviewed-by: André Hartmann <aha_1980@gmx.de> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* use nullptr consistently (clang-tidy)Shawn Rutledge2018-02-261-4/+4
| | | | | | | | | | | | | From now on we prefer nullptr instead of 0 to clarify cases where we are assigning or testing a pointer rather than a numeric zero. Also, replaced cases where 0 was passed as Qt::KeyboardModifiers with Qt::NoModifier (clang-tidy replaced them with nullptr, which waas wrong, so it was just as well to make the tests more readable rather than to revert those lines). Change-Id: I4735d35e4d9f42db5216862ce091429eadc6e65d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Add QUICK_TEST_MAIN_WITH_SETUP to allow executing C++ before a QML testMitch Curtis2018-02-021-0/+13
| | | | | | | | | | | | | | | | | | | This macro is the same as QUICK_TEST_MAIN, but takes the user's QObject subclass as an argument, and calls pre-defined slots/invokable functions on it, similar to how e.g. init() is called for C++ tests. This allows e.g. context properties to be set for the QML tests. By basing the API on invokable functions, we give ourselves the freedom to easily add more functions in the future. [ChangeLog][QtQuickTest] Added QUICK_TEST_MAIN_WITH_SETUP macro to allow executing C++ before a QML test (such as registering context properties). Task-number: QTBUG-50064 Change-Id: Id566e388553811c220871248403d32545f8ae1eb Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Allow adding file selectors for QUICK_TEST_MAIN testsJan Murawski2017-12-051-0/+11
| | | | | | | | | | This patch allows adding file selectors for QUICK_TEST_MAIN tests via the command line switch "-file-selector". Adding such a selector allows the test of platform specific QML components. E.g. one can test an Android component on Linux. Change-Id: I556ad7211ed4a0881150686270a9a4e69f68d1ee Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Merge remote-tracking branch 'origin/5.9' into 5.10Lars Knoll2017-09-201-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/compiler/qv4compileddata.cpp src/qml/compiler/qv4compileddata_p.h src/qml/jsruntime/qv4engine.cpp src/qml/jsruntime/qv4qmlcontext.cpp src/qml/jsruntime/qv4qmlcontext_p.h src/qml/jsruntime/qv4regexpobject.cpp src/qml/jsruntime/qv4regexpobject_p.h src/qml/types/qqmllistmodel.cpp src/quick/items/qquickanimatedimage_p.h src/quick/scenegraph/qsgrenderloop.cpp tests/auto/qml/qmlcachegen/tst_qmlcachegen.cpp Change-Id: If20ef62b2c98bdf656cb2f5d27b1897b754d3dc0
* | QuickTest: initialize import and plugin paths before TestCaseCollectorJ-P Nurmi2017-09-151-4/+4
| | | | | | | | | | | | | | | | | | | | | | 215c0145 broke QQC1 auto tests. The problem seems to be that TestCaseCollector created a QQmlComponent instance before the import and plugin paths were set. Later on, when running the actual tests, a cached component was used and the paths were missing. Task-number: QTBUG-63220 Change-Id: Ifec163899db9ea088fdabc179181cc150534fc4d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | qmltest: Enumerate test cases / functions without evaluating QMLTor Arne Vestbø2017-09-131-3/+151
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Most, if not all, QML tests are written without any sort of dynamic instantiation of the test data, so doing view.setSource() will evaluate the whole source file, compute bindings, create items, windows, etc. This is less then ideal when all you want is to list the test functions using -functions, or when running a single test from the command line, as in both cases we'll still actually evaluate every single QML file. This makes it really hard to evaluate test output, e.g. from the CI, especially with logging enabled, as even if a single test is requested, the logs are filled with results from the loading of the other tests. To improve the situation we use a non-instantiated QML component that we then inspect its compilation data, looking for test cases and functions. In the future the implementation of TestCase's qtest_run* machinery should be built on top of QTestLib instead of being reimplemented in JavaScript, but this is left for later. Change-Id: Ie5448208daf786e335583ab6bdfbc195891ec1f5 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | qmltest: Run each test in a separate QQuickView for test isolationTor Arne Vestbø2017-09-051-34/+34
|/ | | | | | | | | | | | | We don't want the individual tests to affect each other by what state they leave the QQuickView (and corresponding QWindow and platform window) in when they finish. Task-number: QTBUG-62963 Change-Id: I90ad2364c8e9b769afc61eb762c4a604a567a856 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Fix finding test data on AndroidEskil Abrahamsen Blomfeldt2017-08-221-0/+5
| | | | | | | | | | | | | The standard way of doing Qt Quick testing requires having qml files available in the deployment somewhere in the regular file system. This is not how Android works, where all test data should be deployed as resources. To allow this, we simply hardcode the test path as a resource path on Android instead of checking on the disk. Task-number: QTBUG-45576 Change-Id: I0729f5004a6206d2a10b782eb5b7d83a833c4f51 Reviewed-by: BogDan Vatra <bogdan@kdab.com>
* quicktest: Don't warn if the root item has no sizeRobin Burchell2016-12-221-3/+0
| | | | | | | | | | | | It could be argued that all callers should be fixed, but this warning has existed since 2012 and even our own tests do not all set sizes, so I think that battle is a lost fight. This helps make real problems with the tests more visible. Change-Id: Ie29521695ef11943154dae40726d194dc72316c2 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Get rid of most QT_NO_FOO usagesLars Knoll2016-11-291-1/+1
| | | | | | | | Instead use QT_CONFIG(foo). This change actually detected a few mis-spelled macros and invalid usages. Change-Id: I06ac327098dd1a458e6bc379d637b8e2dac52f85 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* QmlTest: replace 'foreach' with 'range for'Anton Kudryavtsev2016-08-111-6/+7
| | | | | | | | And add QT_NO_FOREACH define to .pro file. Now QmlTest is 'foreach' free. Change-Id: I17d8563cafd34bb90fe455ae955da5c56fbd2899 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Use QStringRef to optimize memory allocationAnton Kudryavtsev2016-04-261-1/+1
| | | | | | | | | | | | | | | | | Replace substring functions that return QString with corresponding functions that return QStringRef where it's possible. Create QString from QStringRef only where necessary. While touching the code, also port loops to C++11 style. Change-Id: I04c99b24ea6afd3715e3edf9ea00bfab838fd53c Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com> Reviewed-by: Frank Meerkoetter <frank.meerkoetter@basyskom.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com> Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* Merge remote-tracking branch 'origin/5.6' into devLiang Qi2016-02-121-1/+1
|\ | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I356ec83cf687bd2833f9a7c5e820d56b1efa8979
| * QuickTest, QmlImportScanner: replace QStringLiteral with QLatin1StringAnton Kudryavtsev2016-02-101-1/+1
| | | | | | | | | | | | | | ... in string comparisons. It's more efficient. Change-Id: Ia157618cf870870f24c4a2962a385962da819275 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Updated license headersJani Heikkinen2016-01-191-14/+20
|/ | | | | | | | | | | From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new LGPL header instead of LGPL21 one (in those files which will be under LGPL v3) Change-Id: Ic36f1a0a1436fe6ac6eeca8c2375a79857e9cb12 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Indicate that QuickTestLib is runningLaszlo Agocs2015-09-091-0/+2
| | | | | | | | | QTestLib already sets this environment variable to indicate that the code is running on a test environment. Do the same for QuickTest too. Change-Id: I597237fcd16dc568b750bdef325881e808c407eb Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.4' into 5.5Liang Qi2015-03-311-6/+16
|\ | | | | | | Change-Id: I54e66e992f5e5d441b8b5394e7a03ec5352e7bf3
| * Improved QML test robustness and logging.Jason Erb2015-03-301-6/+16
| | | | | | | | | | | | | | | | Added logging to quick_test_main and reordered for robustness (e.g. moved "wait for load" to before error check). Change-Id: Ifd48b5bdd1efee4301e5c4e571241762dca176ad Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.4' into 5.5Frederik Gladhorn2015-02-241-0/+4
|\| | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf LICENSE.GPLv2 examples/qml/networkaccessmanagerfactory/view.qml src/qml/jsruntime/qv4runtime.cpp src/qml/jsruntime/qv4stringobject.cpp Change-Id: I5d12f436d60995e51d5c2f59d364e9cbc24f8e32
| * qquicktest: Wait for the view to finish loadingDaiwei Li2015-02-031-0/+4
| | | | | | | | | | | | | | | | | | | | | | Tests can be skipped if the view is still loading by the time we get to the end of the loop. There is a case where the window is active but the QML hasn't been loaded. Change-Id: I4e8346ee547653810458d042925d673748c1fec8 Reviewed-by: Caroline Chao <caroline.chao@theqtcompany.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
* | Update copyright headersJani Heikkinen2015-02-121-7/+7
| | | | | | | | | | | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Change-Id: I61120571787870c0ed17066afb31779b1e6e30e9 Reviewed-by: Iikka Eklund <iikka.eklund@theqtcompany.com>
* | Add -plugins argument to qmltestrunner to specify plugins search pathAlain Martin2014-12-171-0/+7
|/ | | | | | | Allow users to specify locations of compiled QML plugins. Change-Id: I66059dc7b1314ca6fbef87032b16ccf3caf8bd30 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Update license headers and add new licensesJani Heikkinen2014-08-251-19/+11
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 & LICENSE.GPLv2 - Removed LICENSE.GPL Change-Id: I84a565e2e0caa3b76bf291a7d188a57a4b00e1b0 Reviewed-by: Jani Heikkinen <jani.heikkinen@digia.com>
* QtQuick test: Do not complain about Qt specific argumentsKai Koehne2014-04-031-17/+23
| | | | | | | | | | | | | | | Commit 1ca5e82cccae0 caused a regression for Qt arguments like -qmlsjsdebugger=xxx . These are automatically removed from argv by QCoreApplication, but since we copied argv before instantiating QCoreApplication this didn't have any effect. Fix this by moving Q[Core]Application instantiation again before the parsing and copying of testlib-specific arguments. Task-number: QTBUG-37793 Change-Id: Ief41640b6cf3251f700a5d24d2e1141233a3888f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Liang Qi <liang.qi@digia.com>
* QML testlib: Do not modify the arguments passed into QGuiApplication.Friedemann Kleint2014-03-071-8/+6
| | | | | | | | | argc/argv passed into QGuiApplication must match those of main on Windows due to the special command line parsing. Task-number: QTBUG-36466 Change-Id: Id722692d2bdc18a6627fdaeffb349b78137ae314 Reviewed-by: Alan Alpert <aalpert@blackberry.com>
* Make sure the test window has focusAlbert Astals Cid2014-01-161-1/+2
| | | | | | | | | | | Some setups like xvfb-run under Linux do not focus windows after showing them, this means that any focus based test will fail since the windows itself is unfocused. This makes sure the test window will be shown and focused. Change-Id: I1903b7cdf88b772e1ca15acd4899695b49615712 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* qmltest: Add QTestDefinedVariablesCaroline Chao2013-08-281-1/+10
| | | | | | | | | | | QTestDefinedVariables is used by the QTestRootObject to check is a preprocessor variable is defined. Adding QT_OPENGL_ES_2_ANGLE. It can be useful to know if it is defined (Win32 + Angle) while running a test. Change-Id: I2f9ffb1028c94095c711ab64737b53b60c055312 Reviewed-by: Alan Alpert <aalpert@blackberry.com>
* qmltest: Register test object as a singletonCaroline Chao2013-08-281-9/+26
| | | | | | Change-Id: I5f6c404ff2901082f22b953b29aed08d3488f31d Reviewed-by: J-P Nurmi <jpnurmi@digia.com> Reviewed-by: Alan Alpert <aalpert@blackberry.com>
* Doc: Fix module name formatSze Howe Koh2013-04-231-1/+1
| | | | | | | | | | | | Follow the conventions at http://qt-project.org/wiki/Spelling_Module_Names_in_Qt_Documentation Qt3D -> Qt 3D QtLocation -> Qt Location QtScript -> Qt Script Change-Id: Id59cb209e0e0407d564de0bfaab73990e64a02e6 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Merge branch 'release' into stableGunnar Sletta2013-01-171-1/+2
|\ | | | | | | Change-Id: I88ecd5f396ecd9a9c910108d1cca832a3087f1d8
| * Avoid race condition in QQuickTestsGunnar Sletta2013-01-171-1/+2
| | | | | | | | | | | | | | | | | | | | | | The QQuickView::show() function may or may not be synchronous and because the rendering happens on another thread, the frameSwapped can be emitted before we enter the qWaitForSignal() event loop. Fix this by waiting for the window to become exposed instead, which implies that it has rendered at least one frame. Change-Id: I1100a6fe981018395bf141d67f06adb94a354206 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* | Update copyright year in Digia's license headersSergio Ahumada2013-01-101-1/+1
|/ | | | | | Change-Id: I6c3bd7bebe3d62d1cfd0fa6334544c9db8398c76 Reviewed-by: Akseli Salovaara <akseli.salovaara@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* qmltest: Added the possibility to use QApplicationLiang Qi2012-12-311-5/+24
| | | | | | | | | | | Current QML test cases in QtDesktopComponents still need to use QApplication. Added QT_QMLTEST_WITH_WIDGETS define when QtWidgets is available. Also proveded a command line switch "-widgets" for it. Change-Id: Ib6c7313538cb8875144636b6f8bd264b0f13aa8d Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Remove the remaining usages of deprecated QWindow accessorsShawn Rutledge2012-11-301-1/+1
| | | | | Change-Id: I146e7b8e3ae0ee74f5f4e3ef85f59d50a639c0f5 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Enable mobule build with QT_NO_TRANSLATIONTasuku Suzuki2012-11-261-0/+2
| | | | | | Change-Id: Id7aeef0d499f48ddc64b4ea3e4dc713db8458c38 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Alan Alpert (RIM) <aalpert@rim.com>
* All QWindow properties that have "window" in them have been renamed.Shawn Rutledge2012-11-081-2/+2
| | | | | | | Depends on patch Ie4424ec15fbdef6b29b137f90a2ae33f173edd21 in qtbase. Change-Id: I9614cc2c7ed119c663b3f6f99267483e291e529c Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Fix crash in qtlocation tests.Friedemann Kleint2012-10-241-1/+1
| | | | | | | Task-number: QTBUG-27696 Change-Id: I0cc12e1be25a789a8245fae3a444629ca57872ef Reviewed-by: Christopher Adams <chris.adams@qinetic.com.au> Reviewed-by: Martin Jones <martin.jones@qinetic.com.au>
* Fix qmltest library.Friedemann Kleint2012-10-201-4/+16
| | | | | | | | | | - Avoid hangs (waiting for frameSwapped) and crashes in window managers for empty windows by giving windows a minimum size if they have 0x0 (observed on Mac, Windows). - Polishing, set proper window flags, title, object name, output. Change-Id: Iad5d66c3adbbfe085390132987e95f4c69272831 Reviewed-by: Christiaan Janssen <christiaan.janssen@digia.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-231-24/+24
| | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: Ie7f5d49ed8235d7a7845ab68f99ad1c220e64d5c Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Add waitForRendering() function for qmltestCharles Yin2012-07-251-1/+1
| | | | | Change-Id: I6357412d84fdb4a8b6bd8603baba7d10a2bcc245 Reviewed-by: Yunqiao Yin <charles.yin@nokia.com>
* Align windowShown flag with qml renderer stateCharles Yin2012-06-141-3/+24
| | | | | | | | | | Previously, we set windowShown to true once the window is active, this is not enough for some tests as the initial rendering may not be finished yet and will give the wrong result for some tests which require reading back pixels. Change-Id: Idd67329d207aaf1734a795b40a5bcc40093cf6b8 Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
* Enabled widget free compilation of QtQuickDonald Carr2012-04-181-2/+1
| | | | | | | | | | There is no hard dependency of QtQuick on QWidget. This change makes the minor adjustments required to remove the build dependency altogether. This patch follows the path of least resistance bypassing any elements with a dependency on the legacy QWidget functionality. Change-Id: Ie3f47d3b4f60a1460dbb5d76a494a2c329469cc0 Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
* Allocate QQuickView on heap instead of stackCharles Yin2012-03-301-18/+16
| | | | | | | | | Some qpa plugin will crash when delete the QApplication instance if QQuickView is created on stack, this is a workaround fix, the real reason still need to be investigated further. Change-Id: Iea75541e53a94f65454e78f8020003e6533c0bd0 Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
* Only attempt to load QML test cases from source directory if it exists.Aaron McCarthy2012-03-131-2/+5
| | | | | | | | | | When running installed unit tests the QML test cases are likely not in the source directory, but in the same directory as the installed test binary. If the source directory does not exist, fall back to searching for QML test cases in the current directory. Change-Id: I231b9cd49b12d88dd6cfbcc8dfb8b6c2c69d5aad Reviewed-by: Yunqiao Yin <charles.yin@nokia.com>
* Remove the rest of qtquick 1.0 code from qmltestCharles Yin2012-03-131-56/+39
| | | | | | Change-Id: I0d20583faf1a75f287dcd866b11457254d250354 Reviewed-by: Matthew Vogt <matthew.vogt@nokia.com> Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
* Rename QDeclarative symbols to QQuick and QQmlMatthew Vogt2012-02-241-9/+9
| | | | | | | | | | | | | Symbols beginning with QDeclarative are already exported by the quick1 module. Users can apply the bin/rename-qtdeclarative-symbols.sh script to modify client code using the previous names of the renamed symbols. Task-number: QTBUG-23737 Change-Id: Ifaa482663767634931e8711a8e9bf6e404859e66 Reviewed-by: Martin Jones <martin.jones@nokia.com>
* CodeCoverage: Fixes regression.Caroline Chao2012-02-221-34/+5
| | | | | | | | | | | | | | | | Fixes segmentation fault introduced by qtbase change: 36f5cc848de2525 Coverage data are now saved in QTestLog::stopLogging. Also the current application name needs to be set for a quick test as well. Remove also code coverage call to installCodeCoverage from quicktest due to refactor of the code coverage setup in qtestlib. This should be less error-prone. See qtbase change: 949b7452e0d2402 Change-Id: I13566cc43dfb3af264d3b2be2e5f2617128f4801 Reviewed-by: Caroline Chao <caroline.chao@nokia.com>
* QtDeclarative/Quick: Fix warnings.Friedemann Kleint2012-02-161-0/+1
| | | | | Change-Id: I71bd638fcc41356e0b76df27ec76ad3ed5ef90d9 Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
* qmltest: Count passes, fails and skips consistently.Jason McDonald2012-02-131-0/+1
| | | | | | | | | | | | | | | | | | | | | This commit changes qmltest to count one pass per data row, rather than a single pass for an entire data-driven test function. This makes counting of passes consistent with counting of fails and skips which were already counted once per data row. This change also means that the plain-text, xml and light-xml output formats will now show one result per data row, so that every data row executed will be shown in the test output with either a pass, fail or skip result. Previously data rows that passed were not shown in the output, preventing analysis of total number of tests runs, pass-rates, and various other metrics. This commit corresponds to (and depends on) a commit in the qtbase module which changes the behaviour of qtestlib in the same way. Task-number: QTBUG-21848 Task-number: QTBUG-22124 Change-Id: I3c1f0e68bdff4087b9ccfc80a3f96f4541335b6f Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com> Reviewed-by: Yunqiao Yin <charles.yin@nokia.com>