Commit Graph

722 Commits (df43ef7b6dde35c13d2d06ad69c2d63f66b237fb)

Author SHA1 Message Date
Liang Qi 4159ee8405 Merge remote-tracking branch 'origin/5.6' into dev
Conflicts:
	config.tests/unix/ptrsize.test
	configure
	src/corelib/global/qnamespace.h
	src/network/socket/qabstractsocket.cpp
	tests/auto/other/networkselftest/networkselftest.pro

Change-Id: Ic78abb4a34f9068567cea876861d4220f5a07672
2015-11-04 20:18:14 +01:00
Friedemann Kleint d946507727 Testlib: Avoid formatting unneeded messages.
Brings down gui/painting/qcolor from 7s to 3s, reducing the calls
to printf() helpers from 16E6 to 10E6.

Task-number: QTBUG-38890
Change-Id: I34065e6f09fc9a14920b06aa6936908229f3f9c4
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2015-10-30 21:28:20 +00:00
Friedemann Kleint 84042523f2 Testlib: Output total test time in plain text logger.
This makes it easier to spot slow tests.

Produces:

Totals: 314 passed, 0 failed, 0 skipped, 0 blacklisted, 137ms
********* Finished testing of tst_QStringRef *********

Task-number: QTBUG-38890
Change-Id: Iaee4dd677fd8f18b82f7c9c4934eb5b1119ade43
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2015-10-30 19:19:10 +00:00
Liang Qi 790aef362f Merge remote-tracking branch 'origin/5.6' into dev
Conflicts:
	.qmake.conf
	configure
	src/corelib/global/qglobal.h
	src/tools/qdoc/node.cpp
	src/tools/qdoc/qdocdatabase.cpp
	tests/auto/corelib/io/qsettings/tst_qsettings.cpp
	tools/configure/configureapp.cpp

Change-Id: I66028ae5e441a06b73ee85ba72a03a3af3e8593f
2015-10-23 14:45:03 +02:00
Topi Reinio d159fe199f Doc: Update examplesinstallpath to include the repository name
The examplesinstallpath variable in .qdocconf files defines the path
under QT_INSTALL_EXAMPLES where examples are found.

To match the way examples are packaged in Qt 5.6, prefix each
install path with the repository name.

Task-number: QTBUG-48736
Change-Id: I6a35c94fdacaad21cd044411aba02027b9019300
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
2015-10-21 09:50:16 +00:00
Rainer Keller 7db9c610f1 Add processor types to blacklist keywords
This allows to disable tests that do not work on ARM machines.

Change-Id: I80b54da2978479e037b73ca3af87567e8d9d1b60
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-10-15 14:00:34 +00:00
Friedemann Kleint 9b6cd2764a Testlib: Output function / total time along with crash dump.
Previously, only QXmlTestLogger had timers to take elapsed times
and log them. Move those into class QTestLog for access by
the loggers and output the times in the crash dump to make it
easier to spot hangs/recursion crashes.

Produces:

QFATAL : foo() Received signal 11
         Function time: 22ms Total time: 23ms

A crash occurred in ...
Function time: 24ms Total time: 26ms

Task-number: QTBUG-47370
Change-Id: Ia530a63104087daffc9a15f68c15d93378b9407e
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-10-13 16:38:43 +00:00
Friedemann Kleint bba86a01c9 Libraries: Fix single-character string literals.
Use character literals where applicable.

Change-Id: I8e198774c2247c1cc1d852a41b59b301199b7878
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-10-13 16:37:37 +00:00
Friedemann Kleint f9bf737d74 Examples/Doc snippets: Fix single-character string literals.
Use character literals where applicable.

Change-Id: I79fa5018f05735201ae35ee94ba0d356fcad1056
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-10-13 16:37:07 +00:00
Tor Arne Vestbø 9ff1310af5 Distinguish between Objective-C and Objective-C++ sources
Instead of lumping both Objective-C (.m) and Objective-C++ (.mm) sources
into the same pile, passing them on to the same compiler as for C++ (CXX),
with the C++ flags (CXXFLAGS), we follow Apple's lead and treat them as
variants of the C and C++ languages separately, so that Objective-C
sources are built with CC and with CFLAGS, and Objective-C++ sources
with CXX, and CXXFLAGS.

This lets us remove a lot of duplicated flags and definitions from the
QMAKE_OBJECTIVE_CFLAGS variable, which in 99% of the cases just matched
the C++ equivalent. The remaining Objective-C/C++ flags are added to
CFLAGS/CXXFLAGS, as the compiler will just ignore them when running in
C/C++ mode. This matches Xcode, which also doesn't have a separate build
setting for Objective-C/C++ flags.

The Makefile qmake generator has been rewritten to support Objective-C/C++
fully, by not assuming that we're just iterating over the C and C++
extensions when dealing with compilation rules, precompiled headers, etc.
There's some duplicated logic in this code, as inherent by qmake's already
duplicated code paths, but this can be cleaned up when C++11 support is
mandatory and we can use lambda functions.

Task-number: QTBUG-36575
Change-Id: I4f06576d5f49e939333a2e03d965da54119e5e31
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-10-09 15:15:17 +00:00
Tor Arne Vestbø c7e5e1d9e0 Move shortcut handling back into QPA and simplify delivery
Commit 7f5b94b47 moved shortcut handling into QGuiApplication (for all
platforms except OS X), due to crashes on Android where the events are
delivered from another thread.

Now that we have synchronous event delivery (also across threads) from
QPA, this is no longer needed, and we can move the code back to QPA,
where the platform has more control over when and how shortcut events
are delivered in relation to normal key events.

Handling shortcuts is as before a two step process. We first send a
QKeyEvent::ShortcutOverride event to the active window, which allows
clients (widgets e.g.) to signal that they want to handle the shortcut
themselves. If the override event is accepted, we treat it as the
shortcut not being handled as a regular shortcut, and send the event
as a key press instead, allowing the widget to handle the shortcut.

If nothing accepted the shortcut override event we pass it along to
the global shortcut map, which will treat the event as handled if
an exact or partial match is found.

The QShortcutMap::tryShortcutEvent() and nextState() implementation
has been simplified to not use the events accepted state for its
internal operation, which removes the need for saving the state
of the incoming event.

The QKeyEvent::ShortcutOverride event was also always sent with
the accepted state set to false, by calling ignore() on it before
sending it. This is now explicit by having shortcut override
events being ignored by default in their constructor, and the
documentation has been updated accordingly.

Change-Id: I9afa29dbc00bef09fd22ee6bf09661b06340d715
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2015-10-07 13:24:45 +00:00
Friedemann Kleint 53755617e4 QTestLib: Add MSVC 2015 to blacklist.
Task-number: QTBUG-48455
Change-Id: I8ea322f393a1f8d44183892f20e5461d571bc4c0
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-09-29 10:44:30 +00:00
Tor Arne Vestbø 0e342fce4c Replace direct QPA access in tst_qguiappliction with testlib wrapper
Change-Id: I698aa9d7633992d257296759f5e04307ff0d8331
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-09-15 07:41:17 +00:00
Thiago Macieira 2187f0e7b0 Add a delimiter before "TracerPid"
Future-proofing against a future version of the Linux kernel adding a
"FooTracerPid:" before the TracerPid entry.

Change-Id: I42e7ef1a481840699a8dffff140347457902900f
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-09-13 18:54:04 +00:00
Friedemann Kleint 4bbdfaa8ff Fix some qdoc warnings.
qtbase/src/corelib/io/qdebug.cpp:698: warning: Class QDebugStateSaver has no \inmodule command; using project name by default: QtCore
qtbase/src/gui/opengl/qopenglframebufferobject.cpp:1138: warning: Can't link to 'takeTextures()'
qtbase/src/gui/opengl/qopenglframebufferobject.cpp:1159: warning: Can't link to 'takeTextures()'
qtbase/src/gui/opengl/qopenglframebufferobject.cpp:953: warning: No such parameter 'height' in QOpenGLFramebufferObject::addColorAttachment()
qtbase/src/gui/opengl/qopenglframebufferobject.cpp:953: warning: No such parameter 'width' in QOpenGLFramebufferObject::addColorAttachment()
qtbase/src/gui/opengl/qopenglframebufferobject.cpp:953: warning: Undocumented parameter 'size' in QOpenGLFramebufferObject::addColorAttachment()
qtbase/src/gui/painting/qpaintdevice.qdoc:80: warning: Undocumented enum item 'PdmDevicePixelRatioScaled' in QPaintDevice::PaintDeviceMetric
qtbase/src/testlib/qbenchmarkmetric.cpp:154: warning: Invalid use of '\relates' (already a member of 'QTest')
qtbase/src/testlib/qbenchmarkmetric.cpp:81: warning: Invalid use of '\relates' (already a member of 'QTest')
qtbase/src/widgets/dialogs/qdialog.cpp:152: warning: Can't link to 'QCloseEvent::ignore()'
qtbase/src/widgets/dialogs/qdialog.cpp:557: warning: Can't link to 'QApplication::quit()'
qtbase/src/widgets/kernel/qwidget.cpp:8326: warning: Can't link to 'QCloseEvent::accept()'
qtbase/src/widgets/kernel/qwidget.cpp:8326: warning: Can't link to 'QCloseEvent::ignore()'
qtbase/src/widgets/kernel/qwidget.cpp:9300: warning: Can't link to 'QWheelEvent::accept()'
qtbase/src/widgets/kernel/qwidget.cpp:9300: warning: Can't link to 'QWheelEvent::ignore()'
qtbase/src/widgets/kernel/qwidget.cpp:9321: warning: Can't link to 'QTabletEvent::accept()'
qtbase/src/widgets/kernel/qwidget.cpp:9321: warning: Can't link to 'QTabletEvent::ignore()'
qtbase/src/widgets/kernel/qwidget.cpp:9373: warning: Can't link to 'QKeyEvent::ignore()'

Change-Id: I97ae85398181645c1054c303e5c8a87deb619409
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-09-07 11:58:04 +00:00
Friedemann Kleint c486cacba8 Testlib/Windows: Output crash information on stdout instead of stderr.
Make it easier to capture information about crashing tests in log files,
since it is not possible to do something like
foo > log.txt 2> errlog.txt
on Windows.
Adapt selftest.

[ChangeLog][QtTest][Important Behavior Changes] Crash/exception
information is now logged to standard output on Windows.

Task-number: QTBUG-47370
Change-Id: I3e6a2d25855ed0f20516418a031990b562f5f757
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-09-03 14:16:30 +00:00
Friedemann Kleint 79a4cb1e4f Fix some qdoc-warnings.
qtbase/src/widgets/kernel/qaction.cpp:1257: warning: Can't link to 'QApplication::setAttribute()'
qtbase/src/widgets/kernel/qapplication.cpp:519: warning: Can't link to 'arguments()'
qtbase/src/widgets/kernel/qapplication.cpp:1939: warning: Can't link to 'quit()'
qtbase/src/widgets/kernel/qapplication.cpp:2946: warning: Can't link to 'quit()'
qtbase/src/widgets/kernel/qapplication.cpp:2946: warning: Can't link to 'exit()'
qtbase/src/widgets/kernel/qapplication.cpp:2946: warning: Can't link to 'processEvents()'
qtbase/src/widgets/widgets/qmenu.cpp:1354: warning: Can't link to 'Recent Files Example'
qtbase/examples/widgets/doc/src/tetrix.qdoc:28: warning: Can't link to 'QApplication::quit()'
qtbase/src/testlib/qtestcase.cpp:268: warning: Undocumented parameter 'timeout' in QTRY_VERIFY2_WITH_TIMEOUT()
qtbase/src/corelib/global/qnamespace.qdoc:2427: warning: Can't link to 'QApplication::setLayoutDirection()'
qtbase/src/corelib/global/qnamespace.qdoc:751: warning: Can't link to 'QApplication::setDesktopSettingsAware()'

Change-Id: Ic8170a40fb1cd84e3fb4dd75d9429f4b485f8bd9
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-08-27 19:27:38 +00:00
Simon Hausmann b479d5befb Disable the testlib watchdog if a debugger is present
Currently this is only implemented on Linux and Windows. But it's an
improvement nevertheless when debugging Qt unit tests :)

Change-Id: Iea307dad0e12c24f305c16f0a1805e7c246ee372
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-08-19 05:03:26 +00:00
Thiago Macieira 060b7ffe5b QtTest: Add QHostAddress support for QCOMPARE failures
Change-Id: Iee8cbc07c4434ce9b560ffff13cc6dad04a5a554
Reviewed-by: Richard J. Moore <rich@kde.org>
2015-08-15 04:35:34 +00:00
Frederik Gladhorn 77da617dc8 Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
	doc/global/qt-cpp-defines.qdocconf
	src/3rdparty/forkfd/forkfd.c
	src/corelib/codecs/qtextcodec.cpp
	src/corelib/kernel/qmetatype.cpp
	src/corelib/tools/qset.qdoc
	src/gui/accessible/qaccessible.cpp
	src/gui/image/qpixmapcache.cpp
	src/opengl/qgl.cpp
	src/tools/qdoc/generator.cpp
	src/widgets/kernel/qwidget.cpp
	tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp

Change-Id: I4fbe1fa756a54c6843aa75f4ef70a1069ba7b085
2015-08-06 10:54:01 +02:00
Friedemann Kleint 5f5db1c38b QTestLib: Add macros QTRY_VERIFY2_WITH_TIMEOUT(), QTRY_VERIFY2().
Add QTRY_VERIFY2_WITH_TIMEOUT() similar to QTRY_VERIFY_WITH_TIMEOUT()
except that QTRY_VERIFY2() is used below the loop and QTRY_VERIFY2()
based on it.

Add tests to cmptest.

[ChangeLog][QtTest] Added macros QTRY_VERIFY2_WITH_TIMEOUT(), QTRY_VERIFY2()
making it possible to output a message after the timeout has expired.

Change-Id: I587e24f3aeb73542dbf3ccb936a16f2e0806555f
Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
2015-07-22 19:32:39 +00:00
Friedemann Kleint aa42a1a67e QTestLib/Windows: Try to obtain a stack trace on crash.
Add a helper class for resolving debug symbols by dynamically
loading dbghelp.dll and try to obtain a symbol at the exception
location and a stack trace by using CaptureStackBackTrace().

The output looks like:

A crash occurred in d:\dev\projects\crashingtest_5d\debug\tst_crashingtesttest.exe.

Exception address: 0x0000000052E2853A
Exception code   : 0xc0000005
Nearby symbol    : QString::length

Stack:
 #  1: windowsFaultHandler() - 0x00007FFE080CACD0
...
 #  8: QString::length() - 0x0000000052E28530

[ChangeLog][QtTest] A stack trace will be output on standard error
if a test crashes.

Task-number: QTBUG-47370
Change-Id: I7217e02ec7dc0c96132fe84d1a175d0bed9c5aaf
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-07-22 14:49:35 +00:00
Vincas Dargis c963c514ac Qt Test: Fix QCOMPARE message for signed and unsigned char.
QCOMPARE did not print "Actual" and "Expected" values for quint8
and qint8 variables when they where not equal. QTest::toString<T>()
lacked specializations for signed and unsigned char types, that are
actually distinct types from char.

Change-Id: Iae789885c474c56441da45065992d7ccf1bc9f5c
Task-number: QTBUG-45238
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2015-07-21 06:48:08 +00:00
Tasuku Suzuki 826a83937d QtTest: fix build error with -no-gui
Change-Id: I6f4297c7f959394ca31dfb228dac8659ea6c854d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-07-20 15:54:16 +00:00
Friedemann Kleint 57ae1b15b6 Testlib: Remove overload qCompare(bool, int, ...).
It was added for NokiaX86 / RVCT compilers and may
produce unexpected results with g++, where it matches
for qCompare(int, enum).

Task-number: QTBUG-47260
Change-Id: Ia29b9ae289c6df579a923aef6eb67e46db0b1120
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2015-07-19 08:19:31 +00:00
Martin Smith 6384c4e940 qdoc:Fixed a few qdoc errors
Fixed a few qdoc error messages caused by errors in qmetatype.cpp and
qtextlayout.cpp and qtestcase.cpp and qpointer.cpp

Change-Id: I662aa25bedba057e125e289c34787e81793941ff
Task-number: QTBUG-46939
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-07-07 12:58:55 +00:00
Marc Mutz 82f48c7d32 QtTestLib: Use Q_NULLPTR instead of 0 in all public headers
This is in preparation of adding -Wzero-as-null-pointer-constant (or similar)
to the headers check.

Since QtTestLib has a lot of templates and macros, not all uses of 0 as nullptr
might have been detected by the headersclean check.

Task-number: QTBUG-45291
Change-Id: I21e9d8822e3a708010938e8d5ef2fd42ae6c8c68
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-07-06 12:46:26 +00:00
Liang Qi 0aa2d318b1 Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
	src/corelib/global/qglobal.cpp
	src/corelib/global/qglobal.h
	src/corelib/global/qsysinfo.h
	src/corelib/global/qsystemdetection.h
	src/corelib/kernel/qobjectdefs.h
	src/plugins/plugins.pro
	tests/auto/widgets/itemviews/qlistview/qlistview.pro

Change-Id: Ib55aa79d707c4c1453fb9d697f6cf92211ed665c
2015-07-01 11:05:26 +02:00
Nico Vertriest a7f2af0911 Replace MAC OS X with OS X
Task-number: QTBUG-46374
Change-Id: I7bc633ab551740bd328a24b0ccae1d534af47138
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-06-30 07:33:31 +00:00
Liang Qi 4dd8a63fc1 Merge remote-tracking branch 'origin/5.5.0' into 5.5
Conflicts:
	src/plugins/platforms/cocoa/qcocoafiledialoghelper.h

Manually fixed src/testlib/qtestcase.cpp to return the right type.

Change-Id: Id1634dbe3d73fefe9431b9f5378846cb187624e4
2015-06-27 13:54:35 +02:00
Thiago Macieira 741a7aef58 QtTest: Increase the size of the alternate stack
The default (8kB) isn't enough for modern Linux on x86-64. I can't
exactly account for it, as the size of the xsave area is 0x340 bytes,
plus the regular area it's still less than ~1.5 kB. But empirically we
can see that 8kB causes a SIGSEGV when a signal is delivered, while 16
kB works.

Since we're increasing the size, let's make sure it ends up in a
separate page from the rest of the .bss data.

Change-Id: I5d1e6f7607404caa96e4ffff13e84c87c33723c7
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2015-06-22 22:22:51 +00:00
Tim Blechmann b0a9eddf4d testlib: fix compile error with macosx10.8
[NSDate date] returns an id, so one needs to send a message instead of
accessing a property.

Backport commit 92b3397a from the 5.5 branch.

Change-Id: Id70915e1ac23994a081765e0a527802fef61b573
Reviewed-by: Tim Blechmann <tim@klingt.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-06-22 12:03:57 +00:00
Marc Mutz e475017753 QtTest: don't hold QBenchmarkResults in QList
QBenchmarkResult is larger than a void*, so holding them in a QList is
needlessly inefficient. Worse, the code could come to depend on the
fragile property of (inefficient) QLists that references to elements
therein never are invalidated.

Also saves ~1.2KiB of text size on GCC 4.9 optimized C++11 AMD64
Linux builds.

Change-Id: I0c99e591bb9b4405aa1bb78ec095dcaf9277993f
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-06-21 11:46:59 +00:00
Thiago Macieira 7c8b3699bf Let QtTest use an alternate stack for its signal handlers
Otherwise, the handler can't be called for a stack overflow.

Change-Id: I5d1e6f7607404caa96e4ffff13e7fabd66011785
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2015-06-15 22:19:12 +00:00
Marc Mutz 61ca116a2e QTest: Make qExtractTestData() return the created QTemporaryDir
... and enable auto-deletion on it.

This allows users of the function to get rid of their own
cleanup code. They just need to keep the shared pointer alive
for as long as they need it.

Drive-by changes:
- replaced QStringLiterals that were only used as the rhs of op+
- replaced an instance of mid() used as the rhs of op+ with midRef()
- enabled NRVO

Change-Id: I161d39461e020c9e8d473c0810dea2109fe0d62d
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-06-14 15:19:31 +00:00
Simon Hausmann bca41b1b85 Improve back trace handling
Print the full backtrace including the values of all variables, for
improved diagnostic analysis.

Change-Id: Iffcaa08123599e3610cdc2e316627167bfff0f36
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-06-14 13:12:43 +00:00
Friedemann Kleint d0f64542c8 Output registered enumeration names in QCOMPARE.
Produces output:

FAIL!  : tst_qquickwindow::cursor() Compared values are not the same
   Actual   (clippedItem.cursor().shape()): ForbiddenCursor
   Expected (Qt::ArrowCursor)             : ArrowCursor
   Loc: [tst_qquickwindow.cpp(1465)]

Change-Id: I8a9dfa099a6011cbe0c07da683d4be3d07e22d5d
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2015-06-12 07:48:22 +00:00
Caroline Chao 9545bee98a QTestLib: Add data parameter to SKIP message if any
When using GPU_BLACKLIST, a blacklisted test is volontary skipped
early in the process to avoid crashes or undefined bahaviors. Thus
the name of the running test only contains the slot name and doesn't
show which data was eventually used.

If a test is skipped while running with different data, the skip message
currently doesn't tell which data was run either.

To identify the skipped test, when the test is run with data, the data
is now amended to the slot name in the skip message.

Change-Id: I7acdc8951fa2c60d170cc77c0fbd842255746b35
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-06-10 12:47:22 +00:00
Caroline Chao 1dfc16f6da QTestLib: Add data support to GPU_BLACKLIST
Follows the change 4fe68ffbe5.

Test cases run while using a given data can now also be skipped.
The data follows the test function to skip in the features line:
"features": [ "disable_functionToSkip:dataToSkip" ]

Change-Id: I46445e3bed34d7d6507e7ccaaed4b83ab9b9a092
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-06-10 12:47:18 +00:00
Friedemann Kleint 25fb41a58c QTest::qExtractTestData(): Set permissions of extracted files.
Currently, the files are extracted with read-only permissions.
If the data are extracted under a temporary directory, this prevents
it from being deleted, causing a leak and test failures (for example,
tst_qfileinfo).

Change-Id: Idc85f31265af234446ed21d736e9a2b9866dc62d
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-06-08 15:48:22 +00:00
Caroline Chao eacfbbf64e Testlib: Export blacklist functions
So they can be used in QtQuickTest.

Change-Id: I64925feb243fb27234951276d81119bc1f6d5a56
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-06-08 10:54:35 +00:00
Ulf Hermann 181ee8f9ff Keep the mouse timestamp for tests closer to the actual time
Pass on the requested delay into the mouse events. We don't care about
single msecs as the surrounding code also takes time that we don't
consider and whenever we generate a release we add 500ms of time skew
anyway.

The initial press of a double click has to increment the timestamp,
just like all other mouse events do.

Change-Id: Ifb94830f9f878ce87d92bfd86c72a16b55052f3b
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-06-05 14:29:21 +00:00
Tim Blechmann 92b3397a89 testlib: fix compile error with macosx10.8
[NSDate date] returns an id, so one needs to send a message instead of
accessing a property.

Change-Id: I21ce9b64310315accb7a89278b292dd5c73adc4d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-06-04 11:52:51 +00:00
Simon Hausmann e2f66f9215 Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
	src/corelib/global/qnamespace.qdoc
	src/corelib/io/qwindowspipereader.cpp
	src/corelib/io/qwindowspipereader_p.h
	src/corelib/statemachine/qstatemachine.cpp
	src/corelib/statemachine/qstatemachine_p.h
	src/plugins/platforms/xcb/qxcbconnection.h
	tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
	tests/auto/tools/qmake/tst_qmake.cpp
	tests/manual/touch/main.cpp

Change-Id: I917d694890e79ee3da7d65134b5b085e23e0dd62
2015-06-03 10:23:56 +02:00
Ulf Hermann 6a86b8fa78 QTestLib: Move lastButton member into implementation
Keeping a static variable in an inline function is a bad idea because
each definition of that function will have its own version of the
variable. As qtestmouse.h can be included multiple times in the same
test (via some utility classes as with tst_qquickflickable), this
leads to confusion.

Change-Id: I80f198817c34c3a7e07bf6944189927817efb8a6
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-06-02 21:55:54 +00:00
Lars Knoll beef975f92 Cleanup the mouse event handling in testlib
Calling QCursor::setPos() to emulate mouse move events
is a rather bad idea, as it creates round trips through
the server, leading to timing issues etc.

In addition, we should not call qapp->notify(), but rather
route the events through the proper QPA interface. This
is required to properly generate all other events such
as enter/leave etc. As this breaks existing tests,
put the new behavior behind an #ifdef for now. Like this,
we can fix tests one by one, and then turn on the define by
default for 5.6 (with a changelog message).

We emulate timestamps to avoid creating double clicks
by mistake. In addition, fix QGuiApplication::processMouseEvent
to not push events back into the QPA event queue (as this is
a bad hack and breaks the new testing system).

Change-Id: I71774cb56674d7fb66b9a7cf1e1ada1629536408
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-06-02 08:02:35 +00:00
Liang Qi fcfd31c9fd Merge remote-tracking branch 'origin/5.4' into 5.5
Conflicts:
	qmake/generators/mac/pbuilder_pbx.cpp
	src/corelib/global/qglobal.h

Change-Id: I2c0f7544bf194f2d0f59218fd583c822901487b0
2015-06-01 17:46:58 +02:00
Venugopal Shivashankar 18be63de2a Doc: Added the missing \brief and \image for example docs
The Qt TestLib examples are just tutorials so updated
the qdocconf to use the default thumbnail in the
Qt Creator welcome screen.

Task-number: QTBUG-41996
Change-Id: Ia04a42a92e414c97a426b6095a62621a348e7de0
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-05-27 10:27:54 +00:00
Laszlo Agocs 4fe68ffbe5 Add GPU_BLACKLIST support to QTestLib
In addition to BLACKLIST, Qt will now look for GPU_BLACKLIST too.
Test cases that are specified as disabled in the GPU blacklist
will be skipped. This is particularly relevant when running tests
on Embedded Linux devices.

For example, the following JSON would configure the test case
glxContextWrap to be skipped on drivers where GL_VENDOR contains
UnstableDriverVendor:

{
    "entries": [ {
            "gl_vendor": "UnstableDriverVendor",
            "features": [ "disable_glxContextWrap" ]
    } ]
}

In contrast to the regular blacklist, GPU-blacklisted test cases are
not run at all. This is because driver problems and instabilities
often lead to crashes.

Change-Id: I340cf5c0261a206109b78409774408981bba5c68
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-05-08 15:11:32 +00:00
Caroline Chao 96527f74e2 TestCase: Also check main source path when looking for test data
This is for example useful when looking for a possible BLACKLIST
file while doing a shadow build.

Add autotests for blacklist.

Change-Id: I41d3939d31d21d10187fefcb82604736d911b6ad
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-05-05 07:06:52 +00:00
Volker Krause 337c279215 Make data tables const.
Moves some of them to the .rodata section, the rest at least to
.data.rel.ro[.local].

Change-Id: I85676ddf22b0c0097f3f0dce4c3dc018dc29d045
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2015-05-05 05:31:32 +00:00
Simon Hausmann 73a48c1618 Add support for stack traces in testlib on Mac
Use lldb to generate a stack trace.

Change-Id: I30b0ab656dda66b6aaa05841df641bee004702f0
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-04-27 17:03:51 +00:00
Simon Hausmann 5fd3539cfd Improve safety of QTestLib watchdog
Reduce the side-effects of QThread start-up happening concurrently while test
functions begin to execute by terminating the WatchDog constructor only when
the thread itself is up and running.

Change-Id: I21ee44206d789a7ecb5a220ee4729572548c0277
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-04-24 09:09:03 +00:00
Stephan Binner a40379de1a fix build with -warnings-are-errors
Change-Id: Ic8929ed77f0f2fa8ca7a8d7a91cfbe48918c2043
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-04-22 09:57:01 +00:00
Liang Qi aed5a71683 Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
	src/corelib/statemachine/qstatemachine.cpp
	src/corelib/statemachine/qstatemachine_p.h
	src/gui/painting/qdrawhelper.cpp
	src/plugins/platforms/xcb/qxcbnativeinterface.cpp
	src/plugins/platforms/xcb/qxcbwindow.cpp
	src/plugins/platforms/xcb/qxcbwindow.h
	src/testlib/qtestblacklist.cpp
	src/tools/qdoc/node.cpp
	src/tools/qdoc/node.h
	tests/auto/gui/painting/qcolor/tst_qcolor.cpp

Change-Id: I6c78b7b162001712d5774293f501b06b4ff32684
2015-04-22 09:25:54 +02:00
Lars Knoll d3d10cf23d Improve error handling in qtestlib
Dump a stack trace on Linux if the process crashes. This will give us
much better log output in the new CI system. In addition, create a
watch dog thread, that kills the test if the test function times
out (ie. hangs)

Implementations of the stack trace dumping for Mac and Windows
are still pending.

Change-Id: I65426c5afe290a0a2019b881436a0c278f1cafaf
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-04-21 16:19:09 +00:00
Bjoern Breitmeyer 4d2b7e5f2e Remove libs that are already set by the mkspec.
Change-Id: I79c47e5a49ce048c634e4bc708b632e51133c027
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-04-21 11:38:12 +00:00
Thiago Macieira 6668f5becf Implement a more direct headersclean check
Test each include file directly, instead of doing a large #include. This
verifies that each header is compilable on its own. One big advantage of
doing it via a special compiler in qmake is that we skip pre-compiled
headers, which has hidden build errors in the past.

This solution is implemented by making syncqt produce a second list of
headers.  This list is the same as the list of headers in the source
code to be installed, minus the headers that declare themselves to be
unclean, via the pragma:
  #pragma qt_sync_skip_header_check

This mechanism is applied only for public libraries (skipping
QtPlatformSupport, an internal_module).

This test is enabled only for -developer-builds of Qt because it
increases the compilation time.

On QtTest: the library only links to QtCore, but it has two headers that
provide inline-only functionality by including QtGui and QtWidgets
headers (namely, qtest_gui.h and qtest_widget.h). If those two modules
aren't getting compiled due to -no-gui or -no-widgets to configure, we
need to remove the respective headers from the list of headers to be
checked. If they are being built, then we need to make QtTest's build
wait for the headers to be generated and that happens when qmake is
first run inside the src/gui and src/widgets directories.

Change-Id: I57d64bd697a92367c8464c073a42e4d142a9a15f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-04-17 00:54:45 +00:00
Liang Qi 605617b5dc Merge remote-tracking branch 'origin/5.4' into 5.5
Change-Id: I004854a25ebbf12b1fda88900162fe7878716c58
2015-04-15 09:09:24 +02:00
Caroline Chao a11ffc7bc6 testlib: Detect msvc version for blacklisting
Check _MSC_VER to detect the msvc version (2010, 2012 or 2013).

Change-Id: I96a73d316a6124e38b2c48c5752dfc22357f8d00
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-04-09 10:31:43 +00:00
Liang Qi 4973786f0d Merge remote-tracking branch 'origin/5.5' into dev
Change-Id: I04f9f2749f68c0cb5a427b8d84e43b44bb143e4d
2015-04-08 21:24:26 +02:00
Konstantin Ritt 3a845e4b4f Use QT_WARNING_.. instead of #pragma GCC diagnostic ..
Change-Id: I0bb55a7f1074f3b8d6fb681b1d4dab5105ae7569
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-07 13:09:48 +00:00
Liang Qi 0e6ee136c9 Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
	src/testlib/qtestblacklist.cpp
	src/widgets/accessible/qaccessiblewidgets.cpp

Change-Id: If032adb9296428f62384ed835dbf41ee7a0b886c
2015-04-01 09:10:26 +02:00
Andy Shaw 180ee8a8de Explicitly cast to a uint to fix a compile error
When using QtTest inside the notification example for QtAndroidExtras
there as a problem with the compilation as it saw it as being an ambiguous
check. Therefore doing an explicit case to uint ensures it is not a
problem.

Change-Id: Ibc9ce4c64292bf5ae7c501c592d8c42a66934b8b
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-03-31 12:03:47 +00:00
Caroline Chao 1a542f2544 testlib: Detect distribution name/release for blacklisting tests
Add possibility to blacklist distributions using the syntax:
"<productType>" and "<productType>-<productVersion>".

productType and productVersion are the values returned by
QSysInfo::productType() and QSysInfo::productVersion() (in lower case).

Change-Id: Iefd948127dd2133c2f2ab7aeb5b0c9749c3df6c5
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2015-03-30 08:41:49 +00:00
Tor Arne Vestbø 94ea7b7132 Add XCTest logger backend to QtTestLib
Will be active when running test apps through Xcode's 'test' action,
and reports QtTestLib test objects and functions to Xcode as XCTest
cases.

This allows running tests on both iOS Simulator and iOS devices from
the command line, through xcodebuild, without relying on any 3rd party
tools. It also integrates Qt test failures and passes into the Xcode
IDE, which may be useful for closer investigation of test failures.

The feature is limited to Xcode 6.x.

Change-Id: I33d39edbabdbaebef48d2d0eb7e08a1ffb72c397
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-03-27 16:53:43 +00:00
Simon Hausmann dcf0ececbf Merge "Merge remote-tracking branch 'origin/5.5' into dev" into refs/staging/dev 2015-03-18 22:27:24 +00:00
Rainer Keller 7aad6b9fd4 Testlib: Add platform name to blacklist keywords
Change-Id: I62aacea3926235b3fc5c08501af44abc57065fb0
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-03-18 13:50:26 +00:00
Rainer Keller c6f5cffcc0 Testlib: Fix cleanupTestCase not called when last test blacklisted
Change-Id: I23810b4bd086c393325e56f7779fe7f7f01e76cf
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-03-12 09:43:30 +00:00
Thiago Macieira 7858838293 QTest: Print hex instead of octal for QByteArray QCOMPARE failures
Change-Id: Ia0aac2f09e9245339951ffff13c65b2234d01ad0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-03-11 01:50:29 +00:00
Friedemann Kleint 28fedba03b Fix various qdoc-warnings.
qtbase/src/corelib/itemmodels/qitemselectionmodel.cpp:1199: warning: Undocumented parameter 'model' in QItemSelectionModel::modelChanged()
qtbase/src/corelib/plugin/qpluginloader.cpp:420: warning: Can't link to 'staticPlugin()'
qtbase/src/gui/text/qtextdocument.cpp:1452: warning: No such parameter 'from' in QTextDocument::find()
qtbase/src/testlib/qtestcase.cpp:2770: warning: No documentation for 'QTest::qExtractTestData()'

Change-Id: I76758dbdf3ad7b0ae1f14de0407a6fde523827d0
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2015-02-25 15:26:04 +00:00
Frederik Gladhorn 34b14a8472 Merge remote-tracking branch 'origin/5.4' into 5.5
Conflicts:
	examples/xml/htmlinfo/simpleexample.html
	examples/xml/rsslisting/rsslisting.cpp
	qmake/generators/win32/msbuild_objectmodel.cpp
	src/3rdparty/harfbuzz-ng/src/hb-private.hh
	src/corelib/global/qlogging.cpp
	src/corelib/io/qstorageinfo_unix.cpp
	src/corelib/thread/qwaitcondition_unix.cpp
	src/gui/kernel/qguiapplication.cpp
	src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp
	src/testlib/doc/src/qt-webpages.qdoc
	tests/auto/other/qaccessibility/tst_qaccessibility.cpp

Change-Id: Ib272ff0bc30a1a5d51275eb3cd2f201dc82c11ff
2015-02-24 21:02:08 +01:00
Rainer Keller 2d9c2a0b08 Testlib: Add function to extract files from resources to disk
Change-Id: I7ae1cdfea751a759298cf277e36cfef7a9c46edb
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-02-18 08:19:10 +00:00
Jani Heikkinen cb95fff1c7 Fixed license headers
Change-Id: Ibebe1318d1c2de97601aa07269705c87737083ee
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-02-17 18:46:09 +00:00
Jani Heikkinen 2b75c156b6 Updated BSD licensed file headers
Change-Id: I6441ff931dbd33b698d762e6f6784898f3f60fe7
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-02-15 07:41:17 +00:00
Thiago Macieira f5b609cac8 Make the printing of complex byte arrays prettier
Similar to what we've done to QString, only we print each byte that is
not ASCII as \OOO (octal representation).

[ChangeLog][QtTest] QtTest now prints an escaped version of
QByteArrays that failed to compare with QCOMPARE, instead of the hex
dump.

Change-Id: I6a8c43f138c66c998280998a242b43cd579666a0
Reviewed-by: Richard J. Moore <rich@kde.org>
2015-02-15 06:35:43 +00:00
Jani Heikkinen 83a5694dc2 Update copyright headers
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.

Outdated header.LGPL removed (use header.LGPL21 instead)

Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing
combination. New header.LGPL-COMM taken in the use file which were
using old header.LGPL3 (src/plugins/platforms/android/extract.cpp)

Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license
combination

Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe
Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
2015-02-11 06:49:51 +00:00
Frederik Gladhorn fc35f71434 Merge remote-tracking branch 'origin/5.4' into dev
Conflicts:
	src/3rdparty/harfbuzz-ng/harfbuzz-ng.pro
	src/gui/image/qimage_conversions.cpp
	src/gui/opengl/qopenglextensions_p.h
	src/gui/text/qtextengine.cpp
	src/network/ssl/qsslsocket_openssl.cpp
	src/plugins/platforms/eglfs/qeglfshooks_stub.cpp
	src/plugins/platforms/eglfs/qeglfsscreen.cpp
	src/plugins/platforms/eglfs/qeglfswindow.cpp
	src/plugins/platforms/windows/qwindowsfontdatabase.cpp
	src/plugins/platforms/windows/qwindowsfontdatabase_ft.cpp
	src/plugins/platforms/windows/qwindowsnativeinterface.cpp
	src/plugins/platforms/windows/qwindowsscreen.cpp
	src/plugins/platforms/windows/qwindowswindow.cpp
	src/plugins/platforms/windows/qwindowswindow.h
	src/plugins/platforms/xcb/qxcbdrag.h
	src/widgets/itemviews/qabstractitemview.cpp
	src/widgets/kernel/qwidget.cpp
	src/widgets/util/qsystemtrayicon_p.h
	tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp

Thanks to Friedemann Kleint for resolving the qwindowsfontdatabase.cpp
conflicts.

Change-Id: I937232c30523d5121c195d947d92aec6f129b03e
2015-02-10 09:42:25 +01:00
Sergio Ahumada 07c27a13ac Replace blog.qt.digia.com with blog.qt.io
Change-Id: I7f1c897d8c96780ee330bca18edd9fe893ee7c90
Reviewed-by: Tero Kojo <tero.kojo@theqtcompany.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-02-06 15:49:48 +00:00
Frederik Gladhorn b6191b16d4 Merge remote-tracking branch 'origin/5.4' into dev
Conflicts:
	src/corelib/global/global.pri
	src/corelib/global/qcompilerdetection.h
	src/corelib/global/qglobal.h
	src/corelib/tools/qdatetime.cpp
	src/plugins/platforms/xcb/qxcbscreen.h
	src/plugins/platforms/xcb/qxcbwindow.h
	src/widgets/dialogs/qcolordialog.cpp
	src/widgets/dialogs/qcolordialog_p.h
	tools/configure/configureapp.cpp

Change-Id: Ie9d6e9df13e570da0a90a67745a0d05f46c532af
2015-01-21 11:10:14 +01:00
Marc Mutz 447ef9766a src/testlib/testlib.pro: add missing qbenchmarksmetric.h
Change-Id: I9b879bb22f3e3f74e55234730d9cf79221812a36
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2015-01-19 16:08:10 +01:00
Marc Mutz b18e6396bd QBenchmarkResult: fix uninitialized value
This manifested itself in a UBSan report about loading a non-enumerated
value from an enumeration variable:

   src/testlib/qbenchmark_p.h:95:7: runtime error: load of value 11091, which is not a valid value for type 'QBenchmarkMetric'

(or similar).

The chosen value is simply QTest::QBenchmarkMetric(0).

Change-Id: I8492a871a71d89fa6f7902d38f9eecee4b060646
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-01-19 10:41:09 +01:00
Rainer Keller 20480070a6 Autotest: Selftests fail in UTC timezone
Selftests for testlib fail when executed in UTC timezone because local and
UTC are the same, but expected to be different. A custom timezone is used
instead.
Debug output of qCompare does only handle local and non-local timezones, using
new Qt5 features allows to show the correct timezone in format string.

Change-Id: I753884a12370952b7b62a90d62896db4f2d3d1b4
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2015-01-19 10:21:26 +01:00
Marc Mutz ba7653fb74 qtest_widgets.h: add support for pretty-printing QSizePolicy
... in QCOMPAREs.

The implementation is hidden in a nested Internal namespace that retrieves
the strings without strdup()ing. That makes it easier to compose these
functions as there is no need to delete character arrays when using them.

The public interface (which qstrdup()s) is implemented on top of these.

[ChangeLog][QtTest] QCOMPARE now pretty-prints QSizePolicy{,::Policy,::ControlType{,s}}.

Change-Id: Ib03d969847e5a12474c71a7921366b400025f680
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-01-16 03:12:59 +01:00
Thiago Macieira 2c01d402e1 QDebug: pretty-print QStrings and QStringRefs
[ChangeLog][QtCore][QDebug] Printing of QStrings and QStringRefs
whenever "noquote" is not active now prints the strings in a format that
can be copied back to C++ code. All characters that aren't printable in
US-ASCII are escaped (this includes printable Unicode characters outside
of US-ASCII). Pretty-printing will not respect QTextFormat padding or
field widths.

Change-Id: I169a8a0508e24693f5652f0129defe7f709e5d08
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-01-11 03:40:38 +01:00
Kai Koehne ef6279fd51 Add QtInfoMsg
Add an 'info' message type that can be used for messages that are neither
warnings (QtWarningMsg), nor for debugging only (QtDebugMsg). This is
useful mainly for applications that do not have to adhere to the
'do not print anything by default' paradigm that we have for
the Qt libraries itself.

[ChangeLog][QtCore][Logging] QtInfoMsg got added as a new QtMsgType.
  Use the new qInfo(), qCInfo() macros to log to it.

Change-Id: I810995d63de46c41a9a99a34d37c0d417fa87a05
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2015-01-09 13:14:05 +01:00
Marc Mutz bac0796308 QTest: update docs for toString()
Following c61f8df404, we now prefer overloading
toString() in the type's namespace over specializing the primary template.

Let the docs reflect that and add an example. Also suggest to delegate the messy
raw char pointer handling to the existing toString(QString)/toString(QBA)
overloads.

Change-Id: Id76181faba86aea52588611ea64ea9b95371a733
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-01-08 00:44:16 +01:00
Marc Mutz c61f8df404 QtTest: call toString() as a normal function
toString() is both a function template and a set of overloaded
functions (for const char* and const void*). So don't explicitly
specify the function template arguments (they're deduced from the
arguments anyway). This enables overloading toString() as well as
specializing the template.

[ChangeLog][QtTest][Important Behavior Changes] toString() can now be
overloaded (instead of just specialized) for custom types, and is now
reliably found through argument-dependent lookup (ADL).

Change-Id: Ic4a622d236ad7f0e4142835353f1b98bf2dc6d4c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-01-04 09:43:04 +01:00
ala 876c2164f4 Document -plugins argument in qmltest usage help
Change-Id: Ia624fcefe77a456424bcaa00b106ef7f69abb6b9
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2015-01-03 22:24:32 +01:00
Frederik Gladhorn aaff94c2df Merge remote-tracking branch 'origin/5.4' into dev
Conflicts:
	src/corelib/tools/qbytearray.cpp
	src/gui/kernel/qplatformsystemtrayicon.cpp
	src/gui/kernel/qplatformsystemtrayicon.h
	src/plugins/platforms/xcb/xcb-plugin.pro

Change-Id: I00355d3908b678af8a61c38f9e814a63df808c79
2014-12-29 16:37:38 +01:00
Marc Mutz d8c0ba8d41 qtest.h: actually include qtest_widgets.h
Was including qtest_gui.h instead, for QT_WIDGETS_LIB.

Not a problem in practice, since qtest_widgets.h doesn't
currently add anything on top of qtest_gui.h. But that will
change soon.

Change-Id: I942870cddc7b1ccfda262e2fe26834594336dd0b
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-12-26 20:21:51 +01:00
Eskil Abrahamsen Blomfeldt 0655504015 Also search current directory in QFINDTESTDATA
On Android, none of the file system paths used for QFINDTESTDATA
currently are suitable. We do have the possibility of putting
test data in qrc, but in cases where the test is specifically
testing access to the regular file system, we need a way to
find files there as well. We add a fifth step when all other
fail, which searches the current active directory for the data.

Change-Id: I4f02f8530b5843eb282bd112ea03ed6a476593d6
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-12-19 16:00:59 +01:00
Thiago Macieira cfe12f716b Merge the different implementations of toHex in one central place
It's a simple enough function, but we don't need to duplicate those 17
bytes all over the place. Now they'll be duplicated at most once per
library.

Change-Id: Ic995e2a934b005e7e996e70f2ee644bfa948eb38
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2014-12-13 05:10:20 +01:00
Olivier Goffart 5180f32c5a Add Q_DECL_OVERRIDE in the src subdirectory
Done automatically with clang-modernize on linux

(But does not add Q_DECL_OVERRIDE to the function that are marked
 as inline because it a compilation error with MSVC2010)

Change-Id: I2196ee26e3e6fe20816834ecea5ea389eeab3171
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-12-03 09:57:11 +01:00
Frederik Gladhorn 34aba4724f Merge remote-tracking branch 'origin/5.4' into dev
Conflicts:
	src/corelib/io/qiodevice.cpp
	src/plugins/bearer/linux_common/qofonoservice_linux.cpp
	src/plugins/bearer/linux_common/qofonoservice_linux_p.h
	src/plugins/platforms/android/qandroidplatformtheme.cpp
	src/tools/bootstrap/bootstrap.pro
	src/widgets/styles/qmacstyle_mac.mm

Change-Id: Ia02aab6c4598ce74e9c30bb4666d5e2ef000f99b
2014-11-24 13:39:13 +01:00
Thiago Macieira 49052ba8a8 QtTest: fix pretty-printing of QStrings containing "
It needs to be escaped with a backslash.

Change-Id: Idf62914fca08eb6be8a039c2af72bac42c0d594a
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2014-11-21 20:37:42 +01:00
Maurice Kalinowski cd75ca0dbd WinRT: Ignore winrtrunner specific arguments
qdevel is an option used from winrtrunner to indicate a specific
environment to the app. QTestLib needs to ignore that parameter similar
to the Visual Studio generated arguments.

Change-Id: I00a3abe19f1e5b4159e65d26050f04e28f40316f
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Reviewed-by: Andrew Knight <andrew.knight@theqtcompany.com>
2014-11-21 16:44:36 +01:00
Thiago Macieira adf1b30934 Make QVersionNumber private
We're not ready.

[ChangeLog][EDITORIAL] Remove all mentions of QVersionNumber.

Change-Id: I03ad95992982eb3177f982c1eeddb6a6bc29336c
Reviewed-by: Keith Gardner <kreios4004@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-11-13 20:04:44 +01:00
Roland Winklmeier a8df998290 Make QTestEventLoop::exitLoop() thread-safe
QTestEventLoop::exitLoop() is used by QSignalSpy to stop event
processing when the connected signal has been received. The design
of QSignalSpy requires QTestEventLoop::exitLoop() to be
thread-safe, which it wasn't. When QSignalSpy is connected
to a signal in a different thread, exitLoop() was called from
the thread which emitted the signal and not the one in which
QTestEventLoop is running. This caused troubles when killing
the internal timer.

This patch adds a check in the beginning of exitLoop(). If
it is called from a different thread, it will post an event
into the message queue in which QTestEventLoop is running
and execute it there.

Change-Id: Icb8c8ff2f5344800ee6c6125b98c677c7a196c32
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-10-31 22:18:34 +01:00
Frederik Gladhorn d7ca800a87 Clean up ShortcutOverride handling
Instead of sending the event from random places, send it from
QWindowSystemInterface. This allows to send override events on OS X to
menus before doing other key processing and reduces the number of
ShortcutOverride events on all platforms to exactly one per key press
event.

Additional test by Friedemann Kleint.

Task-number: QTBUG-38986
Change-Id: I6981bb776aba586ebc7c3daa5fd7a0d84c25bc3e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-10-30 11:40:18 +01:00
Kai Koehne 5bfe794aaa Remove trailing '\n' in qFormatLogMessage output
Do not automatically add a \n to all messages formatted by
qFormatLogMessage. Some backends require a final newline,
some don't, so it's best to only append it where it's actually needed.

The returned string will be null if the pattern is empty. This allows
to differentiate between the case that the pattern just didn't apply
(empty line is printed), and the case that qSetMessagePattern(QString())
have been called (nothing is printed).

Change-Id: I17fde997a4074f58f82de6dea129948155c322d6
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
2014-10-27 08:59:02 +01:00
Morten Johan Sørvig ddf3fc0deb Indicate that QTestLib is running
Set QT_QTESTLIB_RUNNING=1 on QTestLib startup.

This allows Qt to adapt its behavior to the testing
environment, WHICH IS NORMALLY NOT SOMETHING YOU WANT
TO DO. Use with caution.

Change-Id: I31de80e7c2cc91ff1ed8137926e6b729ef6efdc6
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-10-24 20:41:20 +02:00
Friedemann Kleint 7095cdabc9 QTestLib: Remove valgrind version check.
Version 3.3 is now assumed to be widely available.

Task-number: QTBUG-41453
Change-Id: I453ce26d170b2bbb8179ddf4b91155ddd3e6379a
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2014-10-15 15:16:29 +02:00
Alessandro Portale 106487387d Removing a few unneeded "? true : false"
Change-Id: Ib13f0ddd65fe78f5559f343f2fc30756b1d3ef76
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2014-10-09 09:43:26 +02:00
Marc Mutz 1a5c0b26d0 Don't use QStringLiteral in comparisons
For QLatin1String, operator== is overloaded, so comparing to a latin-1
(C) string literal is efficient, since strlen() is comparatively fast.

OTOH, QStringLiteral, when not using RVO, litters the code with
QString dtor calls, which are not inline. Worse, absent lambdas,
it even allocates memory.

So, just compare using QLatin1String instead.

Change-Id: I7af3bf3a67c55dae33ffaf9922d004fa168a3f9c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-10-09 09:42:00 +02:00
Nico Vertriest 54853c5f66 Doc: Use title case in section1 titles
Using Python script title-cased.py

Task-number: QTBUG-41250
Change-Id: I00d3d7a0b30db7304a7904efd6d63abd9a7b493b
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-09-30 13:52:51 +02:00
Thiago Macieira cc50651cce Update the detection of when to log to stderr
On Windows, the detection changes only by inserting the use of the
environment variable before the existing tests and removing the check on
stderr.

This commit adds logic similar to Windows's: if the application has a
controlling TTY, we'll use stderr. Otherwise, we'll use the system log.
This is technically a change in behavior: previously, we would always
use the system log, unless the environment variable told us not to.

In practice, the behavior doesn't really change: Android and BlackBerry
and systemd-spawned applications are launched with no controlling TTY,
so logging will go to their logging systems.

[ChangeLog][Important behavior changes][Logging (including qDebug and
qWarning)] Log output will now go to the system log (if support for it
was compiled into Qt) if the application has no controlling terminal or
console window. Set QT_LOGGING_TO_CONSOLE to 1 to force logging to go to
stderr.

Task-number: QTCREATORBUG-12564
Change-Id: I043c5c4f47c15f26d4f4a5cf43df466ea38cdbc7
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-09-29 17:42:25 +02:00
Matti Paaso 974c210835 Update license headers and add new license files
- Renamed LICENSE.LGPL to LICENSE.LGPLv21
- Added LICENSE.LGPLv3
- Removed LICENSE.GPL

Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2
Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
2014-09-24 12:26:19 +02:00
Frederik Gladhorn c96426f19f Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4 2014-09-24 12:04:52 +02:00
Lars Knoll 44a381087e Add * as a valid token to our blacklisting
This helps to blacklist a test function on all platforms,
something that isn't easily possible currently. Adding

[testfunction]
*

to the BLACKLIST file will now blacklist the function
on all platforms.

Change-Id: I9e1a1daf94caa05408a6b3cd7ea7a3acdc962a43
Reviewed-by: Simo Fält <simo.falt@digia.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2014-09-24 08:58:42 +02:00
Thiago Macieira 0048127c94 Initialize certain Qt environment variables in testcases
QtTest has its own logging environment, such as XML output, so we don't
want to have messages formatted differently than expected or sent to an
unexpected place.

Change-Id: If665c9d7121267269e5b2063f49468eb2b9b9d08
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2014-09-23 17:44:56 +02:00
Frederik Gladhorn c5a3e5edd9 Merge remote-tracking branch 'origin/5.3' into 5.4
The isAlwaysAskOption was removed in 3862171315
so manually removed code in
src/plugins/bearer/connman/qconnmanengine.cpp

Conflicts:
	src/corelib/global/qglobal.h
	src/corelib/tools/qcollator_macx.cpp
	src/corelib/tools/qstring.cpp
	src/gui/kernel/qwindow.cpp
	src/gui/kernel/qwindow_p.h
	src/gui/text/qtextengine.cpp
	src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig_p.h
	src/plugins/platforms/android/qandroidinputcontext.cpp
	src/plugins/platforms/xcb/qglxintegration.cpp
	src/plugins/platforms/xcb/qglxintegration.h
	src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
	src/testlib/qtestcase.cpp
	src/testlib/qtestlog.cpp
	src/widgets/dialogs/qfiledialog.cpp
	src/widgets/kernel/qwindowcontainer.cpp
	tests/auto/corelib/tools/qcollator/tst_qcollator.cpp
	tests/auto/gui/text/qtextscriptengine/tst_qtextscriptengine.cpp
	tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp
	tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp

Change-Id: Ic5d4187f682257a17509f6cd28d2836c6cfe2fc8
2014-09-23 11:23:36 +02:00
Lars Knoll 10414444e1 Add support for blacklisting test functions
We need to have a finer grained control over the tests
we skip in our CI system. This adds a blacklisting
mechanism that allows blacklisting individual test
functions (or even test data) using a set of predefined
matching keys for the operating system and some other
relevant variables.

QTestlib will search for a file called BLACKLIST in the test
directory and parse it if found. The file contains a simple
ini style list of functions to blacklist. For details see
qtestblacklist.cpp.

Change-Id: Id3fae4b264ca99970cbf9f45bfb85fa75c1fd823
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-09-21 20:58:41 +02:00
Simon Hausmann fe70d005d5 Fix valgrind support in QTestLib's benchmarking
Valgrind has reached double-digit versions, so the regexp for detecting
the version from the string needs to be widened accordingly.

Change-Id: Ib95994f96d6b1e94a34bedd1b98525076851984b
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2014-08-22 22:17:45 +02:00
Sérgio Martins 10b9e1b6b4 Fix QT_NO_REGULAREXPRESSION build
Change-Id: Ibf1358733d7c5aa2c14cf46c23a24ba4da14143c
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2014-08-13 08:48:01 +02:00
Keith Gardner a332322de9 Long live QVersionNumber!
The class provides compare operators, stream operators, and hashing
functions. This class aims to be compatible with (but not restricted to)
the Semantic Versioning 2.0 standard (semver.org).

[ChangeLog][QtCore] Added QVersionNumber class

Done-with: Marc Mutz <marc.mutz@kdab.com>
Change-Id: I244c8ccc002909af03987a2df052734d1a8621a9
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-08-09 09:00:24 +02:00
Kai Koehne e968793e81 Add qFormatLogMessage()
Export the former qMessageFormatString() as qFormatLogMessage(). This
allows custom message handlers to format their messages just like the
default message handler, taking qSetMessagePattern() /
QT_MESSAGE_PATTERN into account.

The method should arguably not add the '\n' at the end, which a follow
up commit will fix.

Change-Id: Ib2a9cfda91473df079daf03bf3197e6ac63e013e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
2014-07-30 16:27:22 +02:00
Frederik Gladhorn 5ef0ad07c1 Fix accessibility test code to copy events also based on interfaces
The previous code assumed that all events would have an object sent
along with them. QtWebEngine breaks this assumption and the rest of the
code is ready for the change, but using QTestAccesssible was not
possible due to this.

Change-Id: Idee21caf3076fbffd02d5e728f0c9cabf8712408
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
2014-07-23 16:51:13 +02:00
Frederik Gladhorn f035786021 Merge remote-tracking branch 'origin/5.3' into dev
Change-Id: Ia12ffdb27ecdf25c2a2bdb0eed1945387502108a
2014-07-10 10:11:11 +02:00
Eskil Abrahamsen Blomfeldt 1c08a41cb9 Support getting test data from qrc
If none of the other locations work, we can fall back to bundling
the test data in qrc to make it possible to include test data on
platforms that do not have any good way of deploying files to the
traditional file system, like Android.

Change-Id: I7779ce6be2380d551697cecfb9f76652d1fd0a38
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-07-08 08:34:30 +02:00
Jerome Pasion e4661df947 Doc: Removed "url" variable from qdocconf files.
url is set in qtbase/doc/global which is inherited by the
Qt 5 module qdocconf files.

Change-Id: Ieffa174f598f4a3b8ce8be9bfae7ca9b6981f12b
Reviewed-by: Martin Smith <martin.smith@digia.com>
2014-07-04 12:12:29 +02:00
Jędrzej Nowacki 179fefe8d2 Remove an useless assert.
Change-Id: Icf6f6234d6f090fe4928830783620e7255362293
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-06-25 16:28:14 +02:00
Jędrzej Nowacki e6f869c022 Remove unused private method from QSignalSpy.
Change-Id: I0b401b2f18aef573a63d77702dd78bd4469d9475
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-06-25 16:28:03 +02:00
Jędrzej Nowacki 35c7c3708f Avoid extensive string lookup in QSignalSpy.
Change-Id: Ie676ad36033e2f8d9832313956cfde9179967483
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-06-25 16:27:48 +02:00
Simon Hausmann 508b95899d Merge remote-tracking branch 'origin/stable' into dev
Change-Id: Ia36e93771066d8abcf8123dbe2362c5c9d9260fc
2014-05-22 07:46:17 +02:00
Bernd Weimer 43d4fecde5 Fix auto test failure output on QNX
On QNX mbstowcs does not ignore last parameter (max) when first (dest)
is NULL. Set it to sufficiently large value to yield proper results on
QNX. Other platforms (standard libraries) will ignore this value anyway.

Change-Id: Ie4695254d45082e151a052bf16de684af3b1ba1e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-05-19 10:03:38 +02:00
Giuseppe D'Angelo 4c14fa607f Fix QtTestlib build under QT_NO_REGULAREXPRESSION
Change-Id: I4458226e814641269062990f272a40ca577bc9db
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-05-15 02:51:06 +02:00
Frederik Gladhorn 3d4aeb7919 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/gui/kernel/qguiapplication.cpp

Change-Id: Ibe75603dc8a51769db6550ea3f07bc8d19b0be85
2014-05-13 22:19:10 +02:00
Frederik Gladhorn b5552bab40 Merge remote-tracking branch 'origin/stable' into dev
Manually changed enum to LibGL in
    src/plugins/platforms/xcb/qglxintegration.cpp

Change-Id: If34ee6cce3d1d51fb4bb1fdfa59c30389ea0d207
2014-05-13 14:21:22 +02:00
Thiago Macieira df70d5ad80 Limit the QString pretty outputs to 256 characters
Change-Id: I88e71e517827af7d82e3a47d88d40787051ed827
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
2014-05-09 23:57:33 +02:00
Stanislav Ionascu 2989b65afd Testlib: Fix minor leak and crash when comparing lists
1) toString does not track the string it returns, thus it has to be
deleted by the caller
2) on some platforms vsnprintf crashes if a null string is in the
va_list

Change-Id: Iecf94e93d3a2ddf4186ee20de1f495f2f92dcc60
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-05-06 22:37:23 +02:00
Frederik Gladhorn 1326cd15f7 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	mkspecs/qnx-x86-qcc/qplatformdefs.h
	src/corelib/global/qglobal.h
	src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
	src/opengl/qgl.cpp
	src/opengl/qglpixelbuffer.cpp
	src/opengl/qglshaderprogram.cpp
	tests/auto/opengl/qglthreads/tst_qglthreads.cpp

Change-Id: Iaba137884d3526a139000ca26fee02bb27b5cdb5
2014-05-06 16:50:03 +02:00
Ulf Hermann a17aaed1cd Remove warnings about sleep times from QTest::qSleep()
The collected data doesn't reveal any obvious correlation between sleep
times and test failures but the many warnings are a hassle for anyone
reading the test results.

Change-Id: I71bd0c90c20c730573693f23f4435e538b635d44
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-05-06 16:35:56 +02:00
Frederik Gladhorn fd644f3bd0 Improve accessibility event failure output
Simpler code and more information ;)

Change-Id: I5ca6b2ee88e51dbbd3ec2f08c4ea79bc11b649fa
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2014-04-30 09:05:19 +02:00
Thiago Macieira 090124eab6 Remove duplicate symbol name: QTest::currentAppName
It's declared in qtestcase.h as a function, so let's not declare the one
in qtestresult.cpp as a static variable. None of the variables in
qtestresult.cpp need to be in the QTest namespace, but we don't need to
change them now.

Change-Id: If6cc34642fdfe3ccda3b8cea7d053ead0db9ccbd
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-04-30 01:40:39 +02:00
Thiago Macieira eaffcab287 Doc: add info about the -perf benchmark switch to QtTest's manual
Change-Id: I923dcf4f59db8281800950684fdd6dcc6715508e
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2014-04-29 03:27:26 +02:00
Gunnar Sletta 049fa03c2f Check the right object's height in qCompare for QImage and QPixmap.
Fixes http://www.viva64.com/en/b/0251/, Typo No. 3 and 4

Change-Id: Icbd33534dbf424e00e4c351ae5ee0e3daa99e7b9
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-04-28 09:34:06 +02:00
Keith Gardner 6fc7d76e73 QSignalSpy: Added template function pointer constructor
Added the function pointer constructor to QSignalSpy to take advantage
of the new connect syntax.

Change-Id: I94218a096c677cdba73e1b2cfa8b9c09bc28145f
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2014-04-23 22:26:00 +02:00
Frederik Gladhorn 98d3e40fb7 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	mkspecs/qnx-armv7le-qcc/qplatformdefs.h
	src/printsupport/kernel/qcups.cpp
	src/widgets/styles/qstyle.h
	tests/auto/widgets/itemviews/qlistwidget/tst_qlistwidget.cpp

Change-Id: Ia41e13051169a6d4a8a1267548e7d47b859bb267
2014-04-11 14:36:55 +02:00
Shawn Rutledge 3a100edc4f QTestCase: fix macros taking expressions to avoid clang warnings
They were of the form "warning: using the result of an assignment
as a condition without parentheses [-Wparentheses]"

Change-Id: I049bf0f67073bf41310ca5ee73f17e5e69de569f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2014-04-08 10:39:13 +02:00
Friedemann Kleint 19ff7d038f Increase tolerance for warning about QTest::qSleep() for Windows.
50% is too strict, it clutters the logs.

Change-Id: Ib391064f32e39a1192e77d872cd99b7f95a5065a
Reviewed-by: Ulf Hermann <ulf.hermann@digia.com>
2014-04-04 16:31:27 +02:00
Iikka Eklund 0ab63b035a Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I2a6eb9dd7724931bc89f28bcc156e77c4e26d069
2014-04-01 11:44:27 +03:00
Sergio Ahumada cd8e11ed41 Doc: Fix warning about nonexistent 'message' parameter
Change-Id: I3461f2468ef90452ae7e3830625bf3ed57d22a41
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-03-25 00:00:23 +01:00
Frederik Gladhorn 3b5c0bc078 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/gui/image/qjpeghandler.cpp

Change-Id: I9db3acea7d5c82f5da679c8eaeb29431136665f0
2014-03-24 16:10:15 +01:00
Ulf Hermann a1a2a038db Warn if the time taken by QTest::qSleep() is more than 50% off
Like this we can find out more easily if autotests fail because of
flaky timing.

Change-Id: I57b10f5fc4908bed7d00990641b2ddfd4ea84a11
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-03-17 16:27:55 +01:00
Simon Hausmann 846cc4c75c Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/network/access/qhttpthreaddelegate.cpp

Change-Id: Ia15372687c93cd585967b006c0baaac3a5f29e91
2014-02-28 13:14:15 +01:00
Friedemann Kleint 9e4a215a25 Use new QLibraryInfo::build() in testlib to log build information.
This produces:

********* Start testing of tst_QtJson *********
Config: Using QtTest library 5.3.0, Qt 5.3.0 (Feb 13 2014, GCC 4.6.3, 64 bit, debug build)
PASS : tst_QtJson::initTestCase()

<?xml version="1.0" encoding="UTF-8"?>
<TestCase name="tst_QtJson">
<Environment>
<QtVersion>5.3.0</QtVersion>
<QtBuild>Qt 5.3.0 (Feb 13 2014, GCC 4.6.3, 64 bit, debug build)</QtBuild>
<QTestVersion>5.3.0</QTestVersion>
</Environment>

<?xml version="1.0" encoding="UTF-8" ?>
<testsuite errors="1" failures="1" tests="42" name="tst_QtJson">
<properties>
<property value="5.3.0" name="QTestVersion"/>
<property value="5.3.0" name="QtVersion"/>
<property value="Qt 5.3.0 (Feb 13 2014, GCC 4.6.3, 64 bit, debug build)" name="QtBuild"/>
</properties>

<Environment>
<QtVersion>5.3.0</QtVersion>
<QtBuild>Qt 5.3.0 (Feb 13 2014, GCC 4.6.3, 64 bit, debug build)</QtBuild>
<QTestVersion>5.3.0</QTestVersion>
</Environment>

[ChangeLog][QtTest] Tests now output build information.

Change-Id: I0ab473371575f2b807db725256805b8bffea3454
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2014-02-27 13:20:19 +01:00
Thiago Macieira e85b4ed77a QtTest: Don't crash when -callgrind is used on QTEST_APPLESS_MAIN
If there's no qApp, then QCoreApplication::arguments() returns an empty
list (after printing a warning). That means the callgrind runner can't
get the arguments it needs in order to rerun the benchmark.

The crash happens because it always uses .at(0) to try and get the
executable's path. Even if we get the path from somewhere else, we still
need the arguments.

Change-Id: I5c74af4d96fc5824b2b7fd7a89648d78393016e2
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
2014-02-24 11:52:27 +01:00
Jason McDonald 3b1e9a7f9b Doc: Address some "No documentation for..." warnings in QTest
Task-number: QTBUG-36985
Change-Id: I811b4711edc3420911fcd706ecef2d090f41bc89
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
2014-02-22 09:51:14 +01:00
Thiago Macieira 579526cfec Make the printing of complex Unicode in a QString prettier
This also has the advantage of not requiring the use of the locale
codec. Quite an advantage if you're debugging the locale codec. But it's
mostly so that we don't get question marks that hide the difference we
were trying to locate.

[ChangeLog][QtTest] QtTest now prints an escaped version of QStrings
that failed to compare with QCOMPARE. That is, instead of converting
non-printable characters to question marks, QtTest will print the
Unicode representation of the character in question.

Change-Id: I44c1ef3246b188c913dacd3ca4df02581356ea41
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-02-16 06:54:18 +01:00
Thiago Macieira 8dcb72fd1e Add a CSV logging feature to the benchlib
This is only useful for logging benchmarks, since it won't print test
passes, failures, etc. It's useful for importing to spreadsheets to do
number-crunching.

[ChangeLog][QtTest]Added a CSV logging mode that is suitable for
importing benchmark results into spreadsheets. This can be enabled by
the -csv option on the command-line. The CSV logging mode will not print
test failures, debug messages, warnings, etc.

Change-Id: I245d6f86bb380645c9bc0d748cf474b3ed42cab8
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2014-02-14 00:34:25 +01:00
Frederik Gladhorn a1fe728fa5 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/gui/kernel/qguiapplication.cpp
	src/plugins/platforms/android/androidjnimain.cpp
	src/plugins/platforms/android/qandroidplatformintegration.cpp
	src/plugins/platforms/android/qandroidplatformintegration.h
	src/plugins/platforms/android/qandroidplatformopenglcontext.cpp
	src/plugins/platforms/cocoa/qcocoawindow.h
	src/plugins/platforms/cocoa/qcocoawindow.mm
	src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
	src/sql/doc/src/sql-driver.qdoc
	src/widgets/widgets/qtoolbararealayout.cpp

Change-Id: Ifd7e58760c3cb6bd8a7d1dd32ef83b7ec190d41e
2014-02-07 13:07:25 +01:00
Nico Vertriest 0b26ad05bb Doc: corrected link/example errors
Update pro files after move gestures folder
Update snippet statements
Corrected path in imagegestures.pro

Task-number: QTBUG-34749

Change-Id: Icc19908914e36507e412ab63bf0cc2809aa48e17
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2014-01-31 16:18:07 +01:00
Thiago Macieira 89bb20b937 Revert "Fix mix of new[] / malloc in QTest::toHexRepresentation"
This reverts commit e8f73d656cf13d440a3a83980e05c6b117489e40. 
The original was correct: qtestcase.cpp:282 and 283 use delete[].

Change-Id: I668e17f500edcf9f1406553a160f6f5518dee148
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-01-23 18:43:04 +01:00
Nico Vertriest 4fab72a5eb Doc: corrected broken links
Links fixed:  Extra Filters
              Basic Tools
              blockingfortuneclient
              Thread Support
              Drag and drop examples
              qBinaryFind
              qmake common project types
              imagegestures
Task-number: QTBUG-34749
Change-Id: Ib93dda00716dc596db327fee5b97e110a9f27fa7
Reviewed-by: Martin Smith <martin.smith@digia.com>
2014-01-23 17:00:30 +01:00
Thiago Macieira 2d8028d696 Fix the alignment for non-ASCII strings
d040681b6f added support for aligning the
test results for easier side-by-side comparison of the actual and
expected values. However, it didn't take into account multibyte strings.
That is, we would see:

FAIL!  tst_testcase::testcase: Compared values are not the same
   Actual   (QString("é")): F0O
   Expected (expected)     : FOO

We use mbstowcs (multibyte string to wide char string) that calculates
the length in wide chars of the output string. That's roughly equivalent
to QString::fromLocal8Bit(string).toUcs4().size().

Change-Id: Ic2649951c50e05143da32a7fbef00a01e385c542
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2014-01-22 00:04:16 +01:00
Thiago Macieira 57d36d3f0c Fix mix of new[] / malloc in QTest::toHexRepresentation
toHexRepresentation is used in QTest::toString(), whose results are
deallocated with free(). So we shouldn't allocate with new[].

Change-Id: I3e9d35b3f28a1b9bfe740a13b5daa414b67853c6
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2014-01-22 00:04:16 +01:00
Frederik Gladhorn 46791c08e1 Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2014-01-21 17:57:54 +01:00
Friedemann Kleint afe3902a30 Testlib: Use QString for messages in QAbstractTestLogger::addMessage()
Task-number: QTBUG-35743

[ChangeLog][QtTest][Windows] Use correct UTF-8 encoding for XML test results on platforms with different console encoding.
Change-Id: Ice9d03192098f931e5dac358928e0c4421ab715e
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2014-01-21 06:28:23 +01:00
Frederik Gladhorn 9033977d39 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/corelib/global/qglobal.h
	src/corelib/tools/qstring.cpp
	src/gui/image/image.pri
	src/gui/image/qimage.cpp
	src/plugins/platforms/cocoa/qcocoawindow.h
	src/plugins/platforms/cocoa/qcocoawindow.mm
	src/plugins/platforms/eglfs/qeglfshooks_stub.cpp
	tests/auto/corelib/io/qstandardpaths/tst_qstandardpaths.cpp

Change-Id: I3b9ba029c8f2263b011f204fdf68c3231c6d4ce5
2014-01-20 18:18:59 +01:00
Thiago Macieira cc2079c850 Fix QtTest function-unused warnings found by Clang 3.4
The front-end functions in the QTest namespace are declared static
inline, so the compiler can complain. Make it not do so.

Change-Id: I4036c85010e02ef22a8071ed05e49173dfc64729
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2014-01-17 01:36:39 +01:00
Jędrzej Nowacki 43f9bb9a80 Extend QTRY_COMPARE and QTRY_VERIFY macros
We need to fix CI, one of the most common complains is that CI machines
are overloaded and some tests simply timeouts. This patch extends QTRY*
macros to gather statistics. Each time a QTRY* macro is used it is
waiting for the expression to be true by certain time (by default 5 sec)
Next, if it failed, it waits twice as much to prove that the expression
is not affected by CI machine slowness, then fails anyway.

Before the next major release, we should decide if this functionality
should be included, as it changes behavior slightly.
The following task should be kept open until the decision has been
made:

Task-number: QTBUG-36036

Change-Id: I7ab5070cb7eb7d96a7289dd7b2bebf91d93090e5
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2014-01-13 10:02:10 +01:00
Kai Koehne 7fab8eb56b Windows: Do not print test output to both stdout and system debug log
Avoid piping the test output to both the Windows system debugger, and
stdout. This fixes duplicate output in Qt Creator, which displays messages
from both sources.

[ChangeLog][QtTestLib] The (default) plain text logger on Windows now
logs to either the system debug log (in case no console is open), or
stdout, not both.

Task-number: QTBUG-34630
Change-Id: I35fe9f4a50cc660d79fad7dffa6d19659b2102ae
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-01-13 09:44:40 +01:00
Frederik Gladhorn 019588f307 Testlib: Add test duration to xml output
[ChangeLog][QtTest] Added test duration to xml output.
When running tests with xml output a new tag of the form
<duration msecs="123"/> is added to each test function and the test as a
whole.

Change-Id: Ibc4db066b6acf5fac6c578f5e5ca5ce4b5d8ea8e
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2014-01-13 07:13:17 +01:00
Frederik Gladhorn 7917dfbf1c Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I99af0bef7f1c931533a324ebcfb27c40ee871a5e
2014-01-10 18:27:49 +01:00
Thiago Macieira bbcdfb324b Fix file descriptor leak in the perf event counter
We opened the counter at every start(), even if we had already started
before. Some of the benchlib's options caused it to start() and stop()
over and over again, like -minimumvalue and -minimumtotal, which could
leak to fd exhaustion (EMFILE).

Change-Id: Ifeb7cca65c758877be600dc22928bea74f499934
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2014-01-10 02:33:32 +01:00
David Faure e5bfb9719b QTestLib: use QT_MESSAGE_PATTERN when showing debug output
This makes debugging much more convenient, being able to see e.g.
the method name where qDebug is used. Note that this doesn't break
ignored messages, since qMessageFormatString is only called after
the test for ignored messages.

Change-Id: I7fc96e3f19efe48ac3a30fdd63e5b495c0d86e02
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2014-01-06 13:24:14 +01:00
Frederik Gladhorn f0fbff4c90 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I2defae1904154283446b069d151c3ef57302ec7b
2013-12-24 00:56:59 +01:00
Nico Vertriest edef249602 Doc: added qtquick to depends statement in qttestlib.qdocconf
Task-number: QTBUG-34749
Change-Id: I150cbf0e7077f725579cdcd3151ce684b1f64172
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2013-12-20 14:23:49 +01:00
Kai Koehne 5da094c1aa TestLib: Ignore trailing space in QTest::ignoreMessage
When comparing expected with actual debug messages, allow the expected
ones to contain a trailing space. This is needed to not break all
autotests in a follow up patch, which will prevent ~QDebug() from
generating a trailing space by default.

Task-number: QTBUG-15256
Change-Id: I7f67393ddfbfe37fde1ca5ef45e4ad7f4b5324b4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2013-12-04 13:10:49 +01:00
Frederik Gladhorn 4a8273a6fc Merge remote-tracking branch 'origin/stable' into dev
For the conflicts in msvc_nmake.cpp the ifdefs are extended since we
need to support windows phone in the target branch while it is not there
in the current stable branch (as of Qt 5.2).

Conflicts:
	configure
	qmake/generators/win32/msvc_nmake.cpp
	src/3rdparty/angle/src/libEGL/Surface.cpp
	src/angle/src/common/common.pri
	src/corelib/global/qglobal.h
	src/corelib/io/qstandardpaths.cpp
	src/plugins/platforms/qnx/qqnxintegration.cpp
	src/plugins/platforms/qnx/qqnxscreeneventhandler.h
	src/plugins/platforms/xcb/qglxintegration.h
	src/widgets/kernel/win.pri
	tests/auto/corelib/thread/qreadwritelock/tst_qreadwritelock.cpp
	tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp
	tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp
	tools/configure/configureapp.cpp

Change-Id: I00b579eefebaf61d26ab9b00046d2b5bd5958812
2013-11-26 22:35:48 +01:00
Dmitry Ashkadov 4a9092eaad Add QVERIFY_EXCEPTION_THROWN macro for testing exceptions using QtTest
New macro QVERIFY_EXCEPTION_THROWN may be used to check that some code
really throws an exception of specified type.

Change-Id: I7cf499c7c37a35407862bc604c6eb862c5f329d3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2013-11-26 07:37:06 +01:00
Friedemann Kleint 943ae8bb70 Add overload of QTest::ignoreMessage() taking a QRegularExpression.
Make it possible to match messages by a pattern.

Change-Id: I713312e86db5471755459f1ecc43e8f1ac7a95fb
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2013-11-17 19:10:22 +01:00
Maurice Kalinowski 05345f2a55 Disable error message box on WinRT
While exception handling methods are not available on WinRT, the debug
mode ones are. This way we can suppress error dialogs from popping up
like on desktop windows.

Change-Id: Id6e9666af9274d373e7d46e3f9e44892a2bd0dbc
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-11-08 11:02:27 +01:00
Kai Koehne 79b975756a Revert "Add tracing to logging framework"
The tracing API still misses some real-world exposure. Let's
re-do this in dev to have more time.

This reverts parts of following commits:

466e0dff4b
7a47aebe9e
a652bab6a7
8f0654ceb8
4162522edd
32f27b4367
9ff81bdc1a

Change-Id: If97340c37b8b3363f597683336a8390d5ff386f1
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2013-11-07 11:29:30 +01:00
Jerome Pasion 5c389cecd0 Doc: Updated url variable in qdocconf files.
In 5.2, the HTML output is in a flatter structure and when they are
hosted in qt-project.org/doc, the documentation will be found at
http://qt-project.org/doc/qt-$QT_VER

The url variable is used by projects outside of Qt 5 which need
to link to Qt 5 documentation, such as Qt Creator.

Task-number: QTBUG-34584
Change-Id: Ifa55fcd9e402b0e184a41e316340e46aeb7101de
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
2013-11-06 11:31:39 +01:00
Marc Mutz 770ab026a8 Revert "QTest: use nth_element to calculate the median"
This reverts commit 48586b2bac.

This causes problems in QtCreator without anyone being able to say why.

Task-number: QTBUG-34397
Change-Id: I9ea5457724d5af8d87e0bc40e6615748daf9c04c
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2013-11-04 22:46:13 +01:00
Maurice Kalinowski 4058b28494 Ignore debugger arguments on WinRT
Visual Studio debuggers send an argument to specify the debugger port.
This argument needs to be skipped while parsing and not to be interpreted
as an option or test function.

Change-Id: I24efb52fbd668a7bc3388c876f5ea0d950de1d5b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-11-01 08:44:47 +01:00
Venu e55ecc4a55 Doc: Added a link to the Qt Quick Test page
Task-number: QTBUG-33316
Change-Id: Ib8c479837cac4b7cca47b979cbb2dad0aaae6412
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Caroline Chao <caroline.chao@digia.com>
2013-10-23 19:09:54 +02:00
Friedemann Kleint 4c8f194ade Fix synqt-warnings in QTestLib.
QtTest: WARNING: qtestmouse.h includes QDebug when it should
include QtCore/QDebug. Introduced by
c210668346 .

Change-Id: I33918c82fddeedef90597bf02c93167348d6b279
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-10-14 17:30:14 +02:00
Jerome Pasion 4533cc9944 Doc: Adding mark-up to boolean default values.
Default values should have mark-up to denote that they are code.
This commit changes:
-"property is true" to "property is \c true".
-"Returns true" to "Returns \c true".
-"property is false" to "property is \c false".
-"returns true" to "returns \c true".
-"returns false" to "returns \c false".

src/3rdparty and non-documentation instances were ignored.

Task-number: QTBUG-33360
Change-Id: Ie87eaa57af947caa1230602b61c5c46292a4cf4e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-10-08 00:46:27 +02:00
Tor Arne Vestbø d2649c50e0 testlib: Don't link to IOKit on iOS, it's not part of the SDK
IOKit used to be part of the 5.x and 6.x iOS SDKs, but not officially,
so when Apple in the iOS 7 SDK removed IOKit headers and the library
symlink, our builds started failing.

Change-Id: I631cab7c106559968c06977fa25157a57402594c
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-10-03 15:43:40 +02:00
Topi Reinio c533e80e31 Doc: remove duplicate \externalpage definitions
Delete all duplicate \externalpage definitions from
corelib, printsupport and testlib sources.

Change-Id: I7dc5358861f4dad3e8ce080619b61ca3da64ec85
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-09-26 22:25:10 +02:00
Tor Arne Vestbø a3530859e9 Expose QTest::currentAppName() and remove hard-coded argv[0] in tests
Except where we're actually testing QCoreApplication::applicationName()
and friends.

Change-Id: I25514884c11f43a4f82b1f818f822dc3d79f69a3
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-09-26 18:45:16 +02:00
hjk 466e0dff4b Add tracing to logging framework
Change-Id: I4d5b9a24a214785019ff1238c1790ead79205b15
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-09-25 18:21:45 +02:00
aavit 7247cb9e4a Fix: warning/compilation issue on android
Compiler would complain "error: format not a string literal and no
format arguments [-Werror=format-security]", since the third argument
of __android_log_print() is actually the format string.
__android_log_write() is anyway more suited since we're not using any
format here.

Change-Id: Ic19102a9f15038a7cfcb06b605d7b9a73c3e1175
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-09-25 13:31:51 +02:00
Eskil Abrahamsen Blomfeldt 75abfa8982 Support logcat output from tests on Android
We usually do not have a console, so print out the messages
to the log as well, so that it's easier to run single tests
for debugging.

Change-Id: I31908977aac25a6f6716f8245206b01026234aa9
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2013-09-24 10:54:23 +02:00
Marc Mutz e327ba191d QTest: microoptimisation
Change-Id: Ifd053870c270a2c0a0a33c8201e40aaa9a9f9041
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2013-09-21 18:39:13 +02:00
Andrew Knight d959c37eaa WinRT: Basic global support
Various global changes, primarily preprocessor flow, to support the
WinRT platform.

Change-Id: I3fa9cf91d5fb24019362e88fcf205e31b4f810b5
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
2013-09-20 13:53:59 +02:00
Marc Mutz 48586b2bac QTest: use nth_element to calculate the median
Sorting is O(NlogN) complexity, while nth_element is linear.

Change-Id: Ic6596affe183494e87abe7bdaa7c9985f5b7cd58
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-09-13 11:47:06 +02:00
Giuseppe D'Angelo f070b141b6 Remove qSort usages from QtTestlib
QtAlgorithms is getting deprecated,
see http://www.mail-archive.com/development@qt-project.org/msg01603.html

Change-Id: I383d13f76eceae025daab5242f433f694c0149cd
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-09-11 12:24:26 +02:00
Frederik Gladhorn c8ca300e49 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	qmake/doc/src/qmake-manual.qdoc
	src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
	src/src.pro

Change-Id: I0a560826c420e46988da3776bd8f9160c365459a
2013-08-21 11:03:18 +02:00
Martin Jones c210668346 Fix mouse test event in window warning message.
The tests use local coordinates, but window->geometry() gives the
global position on the window, i.e. offset by the size of the
decoration.

Change-Id: Id63ffd7e160b77ddb0f5563d8c3c65c36ad45e89
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-08-18 07:52:54 +02:00
Kai Koehne 7f305ef09e Don't use deprecated qInstallMsgHandler in testlib
We kept using qInstallMsgHandler in testlib to not break test cases using
it too. However, this breaks tests using qInstallMessageHandler ...

ChangeLog: QTestLib: Test cases have to use qInstallMessageHandler instead
of the (deprecated) qInstallMsgHandler
Task-number: QTBUG-32391

Change-Id: I3bd95d9b0a48749243a5dd3e074df8ebcbc07dce
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2013-08-16 09:58:50 +02:00
Eskil Abrahamsen Blomfeldt c52bec9438 Ensure that output is world readable on Android
On Android, we need to be able to get access to the output
file remotely, so we make it world-readable.

Task-number: QTBUG-32079
Change-Id: I0a53a952d03339c0f1a1316f38bd206075589bde
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Reviewed-by: Simo Fält <simo.falt@digia.com>
2013-08-05 14:53:12 +02:00
Jerome Pasion 0a796cfddf Doc: Setting module pages' \qtvariable.
Argument to \qtvariable is the QT variable needed for linking to the
module.

Task-number: QTBUG-32172
Change-Id: I181c0cfaf9529f3aea741cdaee0f20d6cd0e2d2f
Reviewed-by: Martin Smith <martin.smith@digia.com>
2013-08-02 13:35:45 +02:00
Frederik Gladhorn 084c5b3db7 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	tests/auto/dbus/qdbusabstractinterface/tst_qdbusabstractinterface.cpp

Change-Id: I18a9d83fc14f4a9afdb1e40523ec51e3fa1d7754
2013-07-23 11:18:11 +02:00
Thiago Macieira bad93acfba Fix compilation of QtTest on Linux systems with old kernel headers
Hardcode our perf_event_open(2) function to simply return -1 and set
errno to ENOSYS. This will disable the functionality.

People compiling Qt with such old headers will probably carry quite a
bit of dead code in QtTest. They should upgrade.

Task-number: QTBUG-32507
Change-Id: I774b4a81bee5c3e2ddc75fa52520d123a6bebed9
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2013-07-21 04:06:21 +02:00
Thiago Macieira d040681b6f TestLib: align the colons so the "actual" and "expected" align too
Before:
FAIL!  tst_testcase::testcase: Compared values are not the same
   Actual   (actual): F0O
   Expected (expected): FOO

Now:
FAIL!  tst_testcase::testcase: Compared values are not the same
   Actual   (actual)  : F0O
   Expected (expected): FOO

Change-Id: I6f0768e4ef53e065b85a56879cecbad06fa34aef
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2013-07-21 03:01:06 +02:00
Friedemann Kleint 066d32d743 Testlib: Add a crash handler for Windows that prints a message.
Change-Id: I4d6559fd1b21f9f259be6a5a160361e25ea0d217
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2013-07-17 10:30:35 +02:00