summaryrefslogtreecommitdiffstats
path: root/src/testlib
Commit message (Collapse)AuthorAgeFilesLines
* Store the primary status in the touch point flags.Laszlo Agocs2011-12-121-1/+1
| | | | | | | | | | | | | | | | | For some reason the primary bit has previously been encoded in the touch point state, even though it has nothing to do with the regular states like Pressed, Released, etc. The value is now stored in the recently introduced flags member of the touch points. This also reduces the need for error-prone internal masking of the state value. The structure used by QWindowSystemInterface::handleTouchEvent also becomes cleaner because the primary status can now be set in the flags member and the isPrimary bool can be dropped. Change-Id: I1da2cb99154afd97e1e3a5943ab115cae3a8232f Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Revert "Remove unused overload of QTest::qExec."Friedemann Kleint2011-12-122-0/+29
| | | | | | | | | | | | | | | | The overload is used in Qt Creator (see src/libs/extensionsystem/pluginmanager.cpp). The use case here is an application whose internal QObjects can be tested by passing a command line parameter. For this use case, it is inconvenient to have to allocate memory and create a char argv[]- array. This reverts commit ad80d42f8eefd72d9297c272139acc70e24bfa13. Change-Id: I2a2f91e2840100fd62743f6d03b33005d67b18f8 Reviewed-by: Daniel Teske <daniel.teske@nokia.com> Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
* Remove -keyevent-verbose option for autotests.Jason McDonald2011-12-121-12/+0
| | | | | | | | | This option does nothing -- the only function that checks if the option has been set is never called. This appears to have been the case ever since testlib was imported into the Qt repository in October 2005. Change-Id: I837aa957e2d8bd47c3d1c551f1b94d4374daa25e Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Stop using QTest::qt_snprintf() in testlib.Jason McDonald2011-12-127-61/+49
| | | | | | | | After the previous commit, QTest::qt_snprintf() is equivalent to qsnprintf(), so just use that instead. Change-Id: I89ad6e3749ba5efb1926b0b618a904e8baca9f52 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Improve definition of QTEST_NO_SPECIALIZATIONSJason McDonald2011-12-121-1/+1
| | | | | | | | Remove the part of the definition that applies to gcc versions <= 2.x as these versions are not supported by Qt5. Change-Id: Icee6b51ffe78fa30fd7193ef96b6ce0484b8fcae Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Filter unprintable chars out of all test output.Jason McDonald2011-12-123-15/+18
| | | | | | | | | | | | | | | | | | Previously, unprintable characters were filtered out of test output while the output strings were being formatted by either qt_snprintf() or qt_asprintf(). Any strings not formatted by one of those functions weren't filtered at all, and any strings passed more than once would be filtered more than once. This commit separates the filtering of output strings from their formatting, leaving the filtering until just before the strings are written to the output stream. For now, the filtering is done by a protected method of QAbstractTestLogger, but this could easily be changed to a virtual method in future to allow different filtering for loggers with different output character sets. Change-Id: Ia4bb49cd10d37c84af75d2cf58325d27f0e16d99 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Remove event type parameter from handleTouchEvent.Laszlo Agocs2011-12-091-1/+1
| | | | | | | | | | | Requiring platform and generic plug-ins to pass TouchBegin, TouchUpdate, or TouchEnd is unnecessary. The type can be easily deduced from the touch point states. In fact handleTouchEvent already collected the combined point states, it was just not utilized until now. Change-Id: Icf3c787fefdebc51609a763bc4286c18a0b6aac2 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Extend touch events.Laszlo Agocs2011-12-091-16/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The capability flags indicate which information is valid in the touch points. Previously there was no way to tell if e.g. the value returned by pressure() is actually the value provided by the driver/device or it is just something bogus due to pressure not being supported. The points' flags return information about the individual touch points. One use case is to differentiate between touches made by finger and pen. Velocity, if available, is now also exposed. Each touch point can now contain an additional list of "raw" positions. These points are not reported individually but are taken into account in some way by the underlying device and drivers to generate the final, "accurate" touch point. In case the underlying drivers expose these additional positions, they are made available in the lists returned by the touch points' rawScreenPosition(). The raw positions are only available in screen coordinates to prevent wasting time with mapping from global positions in applications that do not use this data. Instead, apps can query the QWindow to which the touch event was sent via QTouchEvent::window() and can call mapFromGlobal() manually if they need local raw positions. The capability and device type information is now held in a new QTouchDevice class. Each touch event will contain only a pointer to one of the global QTouchDevice instances. On top of type and capability, the new class also contains a name which can be used to differentiate between multiple touch input devices (i.e. to tell from which one a given QTouchEvent originates from). The introduction of QTouchDevice has three implications: The QTouchEvent constructor and QWindowSystemInterface::handleTouchEvent need to be changed (to pass a QTouchDevice pointer instead of merely a device type value), and each platform or generic plug-in is now responsible for registering one or more devices using the new API QWindowSystemInterface::registerTouchDevice. Change-Id: Ic1468d3e43933d8b5691d75aa67c43e1bc7ffe3e Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Remove unused overload of QTest::qExec.Jason McDonald2011-12-082-29/+0
| | | | | | | | | | | | | The overload of QTest::qExec() that takes a QStringList is not used anywhere in Qt's autotests, despite having been in the qtestlib API since Qt 4.4. This lack of use most likely derives from the fact that none of the QTEST_MAIN macros use the overload, and more than 99% of Qt's tests use those macros to avoid explicitly calling QTest::qExec(). Change-Id: I264b21d7fe1a9f2d565f748cf8bbe32414a73bb0 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Remove obsolete autotest parameters.Jason McDonald2011-12-061-10/+0
| | | | | | | | | | | | | | Previously, autotests silently ignored the -graphicssystem and -qws parameters so that test-runners did not need to include logic to decide whether to pass those parameters depending on whether a particular test was a GUI test or a non-GUI test. In Qt 5, both of those parameters have been removed from QApplication, so tests don't need to ignore them anymore as they should no longer be supplied to any test. Change-Id: Ic59e38ddfa3303e760645ed1782a211340ce70f2 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Update documentation for QTest::qExec()Jason McDonald2011-12-021-10/+15
| | | | | | | | | Update the documentation to make it clear that regular test applications should not call QTest::qExec() more than once. Also minor rewording of description of return value. Change-Id: I45bdf520ed10fd3c9232847a0ec0bc2b32d4caf3 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* testlib: add QFINDTESTDATA macro for finding testdata filesRohan McGovern2011-12-012-0/+151
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Automated tests often need to load some data from external files. Currently, a wide variety of approaches for this have been used in Qt autotests, including: - embed the source directory into the test binary at compile time, and find the testdata relative to that; this fails when the source tree is no longer available (e.g. when the tests are deployed to a device). - use a path relative to the current working directory, and trust that the caller always sets the current working directory such that the testdata can be found; this fails when the caller uses a different working directory than expected. - use a path relative to QCoreApplication::applicationDirPath(); this fails when source tree != build tree (since testdata is not automatically copied into the build tree). - compile the files into the binary using the Qt resource system; this should work, but does not allow for testing of code which genuinely needs external files. It seems that there is not a simple method for determining the testdata path which can be reliably used in all circumstances, so various tests have reinvented the testdata location method in different ways. Therefore, this is a good candidate for an addition to the testlib API. The current implementation of QFINDTESTDATA is able to find testdata in all three of (build tree, install tree, source tree), in that order. Change-Id: Ib2fed860723ccf437240da3b00db22dfe1a6b56c Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
* Use Q_FOREACH in headers.Stephen Kelly2011-11-271-1/+1
| | | | | | | Downstreams must be able to use QT_NO_KEYWORDS. Change-Id: Ica75b348c1c9461750b5ae2426557ed8b9e2a8a1 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Make QTest::newRow a bit more verbose if a data tag is null.Jędrzej Nowacki2011-11-161-0/+1
| | | | | | | | | | Currently QTest::newRow function expects to have correct tag string for each test data. This was enforced by a simple assert. By adding a an assert with message we might simplify debugging of a test that generates test cases. Change-Id: I84ebb397264c99e7bb46d281fd38583dd2d6964c Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
* Integrate testcocoon support into Qt build system.Rohan McGovern2011-11-151-0/+33
| | | | | | | | | | | | To instrument a Qt application or library with the TestCocoon coverage tool, do `CONFIG+=testcocoon' in the application .pro file. To instrument Qt itself with testcocoon, use the `-testcocoon' configure option. Change-Id: Ie77109a078d11ea51f7a073621e0df9c752c44ae Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Make QTest::qWait() handle DeferredDelete eventCharles Yin2011-11-151-0/+2
| | | | | | | | | | | The QTest::qWait() function does not handle DeferredDelete, in this case all deleteLater() calls before the qWait() won't be processed during the wait. Add an explicit sendPostedEvents(0, QEvent::DeferredDelete) to fix this problem. Task-number:QTBUG-22633 Change-Id: I2c5574b4e7d3c070fad6382dc36ddfd1dfac50d6 Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
* Propagate QTest::mouseEvent keyboard modifiers.Andrew den Exter2011-11-101-7/+7
| | | | | | | | | The QWindowSystemInterface mouse functions now have keyboard modifiers parameter, make use of them. Task-number: QTBUG-21743 Change-Id: I65ba1095825b81d575d314c1de2a45cef28e697a Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
* Prevent timestamps in widgets' touch events from disappearingLaszlo Agocs2011-11-041-2/+3
| | | | | Change-Id: I096914eb2b02ad9c4a5c0462a1f4b76ef17c3957 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Added -datatags option to QTestLibJo Asplin2011-11-043-0/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (Note: This feature is ported from Qt 4.8. See the following commits: 01575deafb7d26ca2431374e92c6d71de96547c7 4866d1ba8afbab61e102942d1ea93b81fea053d6 ) Passing the -datatags option to a QTestLib program prints the available data tags to standard output. For completeness, the test case name is also printed at the start of each output line. (Although the file name is supposed to match the lower-case version of the test case name, this is currently not true in all cases (particularly not under tests/benchmarks/). Even if there was a script to enforce this convention, the -datatags option provides this information in a reliable way.) Data tags for each test function (f() in this case) are printed in four different ways depending on the presence of local and global data tags: Case 1: No tags: tst_MyTestCasetst_MyTestCase f Case 2: Local tags only: tst_MyTestCase f local tag 1 tst_MyTestCase f local tag 2 ... Case 3: Global tags only: tst_MyTestCase f __global__ global tag 1 tst_MyTestCase f __global__ global tag 2 ... Case 4: Local and global tags: tst_MyTestCase f local tag 1 __global__ global tag 1 tst_MyTestCase f local tag 2 __global__ global tag 1 ... tst_MyTestCase f local tag 1 __global__ global tag 2 tst_MyTestCase f local tag 2 __global__ global tag 2 ... ... Note that the string __global__ is assumed to be highly unlikely to occur in a data tag (if it does, an ambiguity results). Change-Id: Ib51aa0c3c32ad52e52ce519729292cf8f0ec5d50 Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@nokia.com>
* Fix getting of enviroment strings in testlibJason McDonald2011-11-031-5/+5
| | | | | | | | | | | | | | | | | | | The standard C getenv() returns NULL if the requested environment variable is not found. In Qt4 and later, qgetenv() does not return a null pointer if the requested environment string is not defined. Instead it returns a QByteArray containing an empty string. If using qgetenv(), there is no way to tell the difference between an undefined environment variable and one which is defined to be the empty string. In testlib, all calls to qgetenv() were checking whether the returned QByteArray's constData() returned a null pointer, but that would never happen. These calls must instead check whether the QByteArray contains a non-empty string. Change-Id: I342f0e8b196896c26cccce3ff169fa1b9669b5ff Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Testlib: Remove remains of qpa.Friedemann Kleint2011-11-021-4/+4
| | | | | | | | Link ApplicationServices in the non-qpa case (CoreServices present). Change-Id: I7555243aa480a7a4db84731a797924a97bf200cd Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
* Correctly handle null windows or widgets in keyClick()Lars Knoll2011-10-311-0/+11
| | | | | | | | | | Allow passing of null windows or widgets to keyClick(). In that case route the event through the normal Qt event processing. This allows e.g. shortcuts to catch the key event. Change-Id: Ic9455ea9be5164918b1c0bccbd58dd32eae74ff1 Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
* Update qmltest usage helpCharles Yin2011-10-281-2/+3
| | | | | | | | Add "-translation" command line option Task-number:QTBUG-22390 Change-Id: I0600b92767b73ccb54e8d70f6c7bb8bf8075c81c Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
* Fix compiler warnings.Friedemann Kleint2011-10-271-2/+2
| | | | | | | | - Fix gcc 4.6.X warnings about assigned but unused variables - Remove trailing ';' from inline functions (Clang) Change-Id: I8670afd6b149748a740f22c65de137762e9f18e1 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Allow commiting and then reusing a QTouchEventSequence for testing.Michael Brasser2011-10-241-20/+33
| | | | | | | | | | | | | This method allows calls to stationary() to automatically remember the previous position for a given touch point id. Example usage: QTouchEventSequence sequence = QTest::touchEvent(&window); sequence.press(0, QPoint(10,10)).commit(); sequence.stationary(0).press(1, QPoint(40,10)).commit(); Task-number: QTBUG-22057 Change-Id: I489ab3d61f4637d2ed97d09ed0854afa814407a1 Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
* Remove legacy Symbian code from qtestlib.Jason McDonald2011-10-246-71/+8
| | | | | Change-Id: Ia4ac52ce0b5f5a4ba1fcd6594daf424fd7208777 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Make some qtestlib headers private.Jason McDonald2011-10-2312-30/+92
| | | | | | | | | These headers should have been private from Day One. Make them private now so that nobody will be tempted to use them outside testlib in the future. Change-Id: I5361777ade124d8187176f9af3cc79cd1a8ecb4f Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Testlib: Fixed compilation with MSVC.Friedemann Kleint2011-10-211-0/+9
| | | | | | | MSVC does not like VA_ARGS tricks. Change-Id: I947dcb89e519c18a482a504725213a3f4d9670ff Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Make testlib use #include consistently.Jason McDonald2011-10-2122-85/+81
| | | | | Change-Id: I36b5da3f832d2588072405d93143173edc29f4af Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Fix misleading comment on test execution order.Jason McDonald2011-10-211-1/+1
| | | | | | | | | When executing a data-driven test, testlib executes the _data function once, then repeatedly executes init(), then the test function, then cleanup() for each row of test data. Change-Id: Icfa1dd19a52fb1debbc92b7cbe13d85bfb0418c7 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Update QSKIP documentation.Jason McDonald2011-10-211-9/+17
| | | | | | | Task-number: QTBUG-21851, QTBUG-21652 Change-Id: I3d4cf8e11756b92fe9d97f01a02c61cbf2df1556 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Remove QTest::SkipMode from qtestlib API.Jason McDonald2011-10-213-41/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the SkipAll mode is used, tests only report a SKIP for the first line of test data and subsequent lines are not reported at all. This behaviour makes it impossible for anything post-processing test results to accurately report test pass- and run- rates because they cannot see how many lines of test data were skipped. This commit removes SkipMode. QSKIPs in regular test functions and data functions are treated the same as SkipSingle, so that every skipped line of local or global test data is reported in the test log. QSKIPs elsewhere are treated the same as SkipAll -- skipping in init() causes the next test function to be skipped entirely, and skipping in initTestCase() or initTestCase_data() causes all test functions to be skipped. This commit only changes qtestlib and the selftests. A further commit will change the autotests to remove the SkipMode parameter from QSKIP calls. Note that the change in expected output for the globaldata selftest is deliberate, as the QSKIP in the skipLocal test function has effectively changed from SkipAll to SkipSingle. Task-number: QTBUG-21851, QTBUG-21652 Change-Id: I7b1c53fe7ca9dde032810b789d967e2a402bbe5d Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com> Reviewed-by: Alex <alex.blasche@nokia.com>
* Remove DEPENDS_ON from qtestlib API.Jason McDonald2011-10-191-2/+0
| | | | | | | | | | The DEPENDS_ON macro didn't do anything and has misled many users to think that they can write test functions that depend on other test functions. Task-number: QTBUG-21851 Change-Id: Ibe65b2d5d88bb81b6a0ebbe0b220f7d409a1446c Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Move QTRY_VERIFY/QTRY_COMPARE into testlib.Jason McDonald2011-10-192-2/+66
| | | | | | | | These functions have lived in tests/shared/util.h for a long time, but they really belong in qtestlib. Change-Id: I60d569d002dea220b51563931d8b7aa77a20b98b Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Remove QTEST_NOOP_MAIN from qtestlib API.Jason McDonald2011-10-192-20/+0
| | | | | | | | | | | | | | This macro is no longer used in Qt's tests and encourages writing tests in a way that makes test reporting less accurate -- remove it to prevent further misuse. If a test can be determined at compile-time to be inapplicable, it should be omitted from the build via .pro file logic. If that is not possible (e.g. there is no suitable qmake variable), the test's initTestCase() function should call QSKIP to skip the entire test with a meaningful explanation. Task-number: QTBUG-21851 Change-Id: Icacc8c5567a700191b6ef3fa94ee52ede94c5b34 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Rename QMetaType::construct() to create()Kent Hansen2011-10-111-1/+1
| | | | | | | | | | | | | | | | | | | | | create() is symmetric with destroy(). Also rename the internal methods and fields to be consistent (qDeleteHelper already had the "right" name, though!). This change will allow us to use construct() and destruct() for something else: Placement new-style allocation (QTBUG-12574). The old construct() is still kept for now, until the other repositories have been updated to use create(). Change-Id: Iceb184af6cffcb0a634359cfc3516c718ba0c2f5 Reviewed-on: http://codereview.qt-project.org/6342 Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Clean-up a macro for CocoaMorten Sorvig2011-10-102-14/+4
| | | | | | | | | Remove the usage of Q_MAC_USE_COCOA and Carbon code paths. Change-Id: Ib569ad8c6d9ffe258f454b3c3b06e95294a10112 Reviewed-on: http://codereview.qt-project.org/5100 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com> Sanity-Review: Morten Johan Sørvig <morten.sorvig@nokia.com>
* update QmlTest option usage helpCharles Yin2011-10-101-1/+1
| | | | | | | Change-Id: I8ccd49bcaac126af2bad2382d481857f1e48c18b Reviewed-on: http://codereview.qt-project.org/6274 Reviewed-by: Charles Yin <charles.yin@nokia.com> Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
* Add QTest::keyRelease() accepting a Qt::Key valueMartin Jones2011-10-061-0/+2
| | | | | | | Change-Id: Id7943820a71472ab1e3c81ea76701738d7600815 Reviewed-on: http://codereview.qt-project.org/6085 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Declarative: Fix linking of the testlib plugin (Windows).Friedemann Kleint2011-10-041-1/+1
| | | | | | | | | | | | | qtdeclarative/src/imports/testlib uses the exported variable QTest::printAvailableFunctions. As it is a plugin, it has only QT_DLL defined and not QT_SHARED and thus sees Q_TESTLIB_EXPORT=''. Change-Id: I34646e920a812fb907b60e0c4c9399499d689a01 Reviewed-on: http://codereview.qt-project.org/5990 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Charles Yin <charles.yin@nokia.com>
* testlib: Fix header guard filesSergio Ahumada2011-10-044-8/+8
| | | | | | | Change-Id: Ia33423f9bd3f85259da908706d73cc2da4d8964d Reviewed-on: http://codereview.qt-project.org/5937 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
* Make all uses of QBasicAtomicInt and Pointer use load() and store()Thiago Macieira2011-10-031-1/+1
| | | | | | | | | | | | | | Most of these changes are search-and-replace of d->ref ==, d->ref != and d->ref =. The QBasicAtomicPointer in QObjectPrivate::Connection didn't need to be basic, so I made it QAtomicPointer. Change-Id: Ie3271abd1728af599f9ab17c6f4868e475f17bb6 Reviewed-on: http://codereview.qt-project.org/5030 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* add a latency after simulating keyevets since they are queued upGunnar Sletta2011-10-031-0/+5
| | | | | | | | Change-Id: Iaaaf01ab464cb2d310ed738de85ffdecd6cd854f Reviewed-on: http://codereview.qt-project.org/5770 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Matthew Cattell <matthew.cattell@nokia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@nokia.com>
* Refactor accessibility for Qt5Jan-Arve Saether2011-09-291-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | * Moved most stuff to gui\accessible * Moved widget-specific stuff to widgets\accessible * Moved platform-specific code to either the bridge plugin (this was already the case) or to the platform plugin. * Added several classes and functions. These have not yet gone through an API review. The plan is to do that in a later commit. Classes: - QPlatformAccessibility - QWindowsAccessibility Functions: - QWindow *QAccessibleInterface::window(); - QPlatformAccessibility *QPlatformIntegration::accessibility() * The bridge code can now either be a plugin or integrated into the platform plugin * Mac accessibility is left out for now. Unix "should still work" (tm). These platforms should be fixed soon. Change-Id: Ib49ffa73b647ee0af90864544c2769440157f562 Reviewed-on: http://codereview.qt-project.org/5330 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com> Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Make QTest::qWarn() use __FILE__ and __LINE__.Jason McDonald2011-09-284-7/+7
| | | | | | | | | | This change makes QTest::qWarn() consistent with similar testlib functions, which take __FILE__ and __LINE__. Change-Id: I12977cb30672899ab38877b4a656f0cc0c7ea02c Reviewed-on: http://codereview.qt-project.org/3559 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Implement QTEST_GUILESS_MAINJan Kundrát2011-09-262-1/+25
| | | | | | | | | | | | Add support for test cases which require an event loop, but do not need GUI up and running. Such cases are best accommodated by code similar to QTEST_MAIN, but using QCoreApplication instead of QApplication. Change-Id: I04ce82d26b80a4edeba6bf7604a7f8d974232a11 Merge-request: 919 Reviewed-on: http://codereview.qt-project.org/5427 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
* Allow tests to log to multiple destinationsJason McDonald2011-09-233-64/+200
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Each destination and the format of output to write there is specified by adding "-o filename,format" to the command-line. The special filename "-" indicates that the log output is written to the standard output stream, though standard output can be used as a destination at most once. The old-style testlib output options are still supported, but can only be used to specify one logging destination, as before. If no logging options are given on the command-line, a plain text log will go to the console, as before. To log to the console in plain text and to the file "test_output" in xunit format, one would invoke a test in the following way: tst_foo -o test_output,xunitxml -o -,txt This commit also enhances the selftests to test with multiple loggers, but negative tests (e.g. bad combinations of command-line options) are left for future task QTBUG-21567. Task-number: QTBUG-20615 Change-Id: If91e752bc7001657e15e427aba9d25ab0a29a0b0 Reviewed-on: http://codereview.qt-project.org/4125 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* testlib: Separate the gui- and widgets-specific apiKent Hansen2011-09-213-174/+159
| | | | | | | | | | | | Group the widgets-specific ("legacy") api under as few ifdefs as possible. (The diff can look confusing; rest assured that this change "only" moves entire functions around in the files.) Change-Id: I27bdec7d1c96d0b040dc22a8fed17e4e47766276 Reviewed-on: http://codereview.qt-project.org/5290 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Matthew Cattell <matthew.cattell@nokia.com>
* Remove testlib's dependency on gui and widgetsKent Hansen2011-09-211-1/+1
| | | | | | | | | | | | | | Commit 37d76a679878d7c07f8a2cb17f7bda46f6582572 made testlib depend on gui and widgets. It shouldn't. Changing the includes was enough. It's the application (e.g. autotest) that uses the gui/widgets features that should link against gui/widgets. Change-Id: If80d30a7eca2cac78cb5c6e5d29c82a06fb9f1dd Reviewed-on: http://codereview.qt-project.org/5095 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Jo Asplin <jo.asplin@nokia.com> Reviewed-by: Matthew Cattell <matthew.cattell@nokia.com>
* testlib: Remove widgets dependency when only using guiKent Hansen2011-09-215-1/+53
| | | | | | | | | | | There's api in testlib that should only be available if the application links against widgets. Change-Id: I22e382c6710690866ed8ffed81bae27b548dc830 Reviewed-on: http://codereview.qt-project.org/5094 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Jo Asplin <jo.asplin@nokia.com> Reviewed-by: Matthew Cattell <matthew.cattell@nokia.com>