Commit Graph

561 Commits (e8dcd5038d8a6ee73f3efdd6fe5fbe276684feec)

Author SHA1 Message Date
Thiago Macieira d1b4857d17 Make sure that we #include qconfig.h before testing for features.
This is mandatory in public headers (qiodevice.h, qopengl*, etc.), but
it's a good idea even in private headers, in case someone includes
that header first somewhere. In particular, all platformsupport API is
private.

Change-Id: If287baa5d9ed14e93c1666efa0e6332c4c1cd9a4
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-19 07:02:57 +01:00
Axel Waggershauser b11317a643 Whitespace cleanup: remove trailing whitespace
Remove all trailing whitespace from the following list of files:
*.cpp *.h *.conf *.qdoc *.pro *.pri *.mm *.rc *.pl *.qps *.xpm *.txt *README
excluding 3rdparty, test-data and auto generated code.

Note A): the only non 3rdparty c++-files that still
have trailing whitespace after this change are:
* src/corelib/codecs/cp949codetbl_p.h
* src/corelib/codecs/qjpunicode.cpp
* src/corelib/codecs/qbig5codec.cpp
* src/corelib/xml/qxmlstream_p.h
* src/tools/qdoc/qmlparser/qqmljsgrammar.cpp
* src/tools/uic/ui4.cpp
* tests/auto/other/qtokenautomaton/tokenizers/*
* tests/benchmarks/corelib/tools/qstring/data.cpp
* util/lexgen/tokenizer.cpp

Note B): in about 30 files some overlapping 'leading tab' and
'TAB character in non-leading whitespace' issues have been fixed
to make the sanity bot happy. Plus some general ws-fixes here
and there as asked for during review.

Change-Id: Ia713113c34d82442d6ce4d93d8b1cf545075d11d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-16 20:22:50 +01:00
Oswald Buddenhagen 62266ef813 make testlib's toString() use local8Bit, not latin1
this is consistent with what qDebug does. consequently, this makes the
code usable with 8-bit strings in the first place.

note that some {to,from}Latin1 is left - this is where we know that we
are dealing with ascii-only text.

Change-Id: I26cfdf3622250b8bf95ebfe221465ca89d7cd082
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-03-13 18:40:26 +01:00
Oswald Buddenhagen cca1cca53d fix encoding when printing debug under wince
the strings are in local8bit format, not latin1

Change-Id: I19f20b0310351aacb26b70d8053ed267e710986f
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-03-12 18:13:37 +01:00
Oswald Buddenhagen 5df9a95d2c don't clobber 8-bit output
otherwise it becomes useless for utf-8.
the output is encoded as local8bit, so it shouldn't be garbage.

Change-Id: I68e59bddb092ac53746f421a90e3803632dbf1c6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-03-12 18:13:37 +01:00
Paul Olav Tvete d66fe675ae Android build fix
Apparently, the Linux Perf Counter is not supported on Android.

Change-Id: I38115d140a3ee783bfcd8a984d8832ffe5bbace4
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-03-12 18:13:37 +01:00
Friedemann Kleint cd035286c5 Silence warning about unused fields in test event (CLANG).
Change-Id: I8e05fc9b8820136a7714219627dbdae300af0b0d
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-03-12 09:16:42 +01:00
Thiago Macieira 408fa1e2b9 Add support for attributes in the -perfcounter argument
Five attributes are supported, matching what the perf(1) tool
supports. The 'p' attribute (precise IP reporting) wasn't added
because we don't do assembly-level debugging with benchlib.

Change-Id: I726f735a5bcc0c97e62cde0fbe0843597068ad7c
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2013-03-06 21:50:28 +01:00
Thiago Macieira 3963ab9d73 Store the performance counter attributes globally
This will allow us to modify more attributes from the command-line

Change-Id: I84d4933cbfa2b69c4e1009eaf3e005cfc3e7e01c
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2013-03-06 21:50:28 +01:00
Thiago Macieira 914b56dbf5 Add support for the cache-related operations counters in benchlib
This adds support for checking cache accesses and misses, per
operation (read, write and prefetch) as well as per cache level (L1
for data, L1 for instructions, last level).

The branch prediction unit (BPU) is also accessed via the cache
monitor subsystem.

Change-Id: I8fa96b141cc777c9d231bd57fa36bca33ae7bdfd
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2013-03-06 21:50:28 +01:00
Thiago Macieira 051f68c2d3 Add support for more performance counters in QBenchlib
Added support for most hardware and software counters available on
Linux 3.3. The cache-based counters are missing because they need
special handling.

Also added an option that lists available counters. Note that the list
is of counters the library knows about, not the counters that the
hardware can measure.

Change-Id: I9f6fb09b5460bf4ac6082081611c1d6ff806a3fa
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2013-03-06 21:50:28 +01:00
Thiago Macieira 93fe3895cf Add more events for QBenchlib, based on the Linux perf counters
Change-Id: Ic7e7e122bfe3995eb7ea033c744fd501579ea8fa
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2013-03-06 21:50:28 +01:00
Thiago Macieira c63420a117 Implement the Linux Perf Counter backend for benchlib
Currently, we only support one event type: counting CPU cycles with
hardware counters. There are no fallbacks if this hardware counter is
not available, and there is currently no way to specify other
counters.

Benchlib only supports reporting one event per benchmark, even though
the event counter interface allows specifying more than one. Still,
the hardware usually has limitations on how many events it can monitor
at a time, and we'd prefer to have the counter running at 100% of the
time, so this will not change.

Change-Id: I79858a3ad1e696dc4b7b72c420e5a04b67cd55de
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2013-03-06 21:50:28 +01:00
Thiago Macieira 9d72259f94 Add the skeleton Linux perf events counter for QtTest
Currently, it only prints "perf available" if you use the -perf option
and perf is available. The implementation comes in the next commits.

Change-Id: Ic6cdee70e21df25780799a4bc31ca2c2d923b9f8
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2013-03-06 21:50:28 +01:00
Thiago Macieira 24f059eed0 Import the Linux header linux/perf_event.h
Imported from linux's own git, at v3.7:include/uapi/linux/perf_event.h
(blob SHA-1 is 4f63c05d27).

We cannot rely on the file being shipped by distributions. Older
versions did not have all fields in the perf_event_attr structure. If
those bits are enabled at runtime, the kernel will simply reject the
perf_open call (-EINVAL). Currently, this can only happen with the
non-default options exclude_guest and exclude_host.

Change-Id: Ib329e52c21d6969406da0cf33de823d721d94206
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-03-06 21:50:28 +01:00
Tor Arne Vestbø d8b3465dd3 iOS: Don't use IOKit in QTestLib, it's a private framework on iOS
Change-Id: I271a480b79c7768942911a28c84d6bb5a8d840d3
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-02-27 23:55:43 +01:00
Samuel Rødal 388f4f16b0 Mention offscreen platform plugin in QTestLib documentation.
Change-Id: Icb82e0b4dedbe4978230cd3271f335ec07da60e4
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2013-02-19 08:11:08 +01:00
Giuseppe D'Angelo e88011357e Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-02-17 20:31:38 +01:00
Frederik Gladhorn e65cd6f379 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/concurrent/doc/qtconcurrent.qdocconf
	src/corelib/doc/qtcore.qdocconf
	src/corelib/global/qglobal.h
	src/dbus/doc/qtdbus.qdocconf
	src/dbus/qdbusmessage.h
	src/gui/doc/qtgui.qdocconf
	src/gui/image/qimagereader.cpp
	src/network/doc/qtnetwork.qdocconf
	src/opengl/doc/qtopengl.qdocconf
	src/opengl/qgl.h
	src/plugins/platforms/windows/qwindowswindow.cpp
	src/printsupport/doc/qtprintsupport.qdocconf
	src/sql/doc/qtsql.qdocconf
	src/testlib/doc/qttestlib.qdocconf
	src/tools/qdoc/doc/config/qt-cpp-ignore.qdocconf
	src/widgets/doc/qtwidgets.qdocconf
	src/xml/doc/qtxml.qdocconf

Change-Id: Ie9a1fa2cc44bec22a0b942e817a1095ca3414629
2013-02-14 14:24:57 +01:00
Oswald Buddenhagen c8a8ca3059 remove QMAKE_TARGET_* overrides
there is no reason why testlib in particular should have them, while
every other module uses the standard strings.

Change-Id: I9b9e45957dfccbf02939c326dcebf06133098ede
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-02-13 19:42:47 +01:00
Jon Severinsson 34a3f2cd44 Allow QtTest's QCOMPARE to work with mixed q(u)int32 and q(u)int64
Change-Id: I491edcae84c149775cf3640626ccff8cbf0d69fe
Reviewed-by: Jon Severinsson <jon@severinsson.net>
Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Jason McDonald <macadder1@gmail.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-02-11 17:51:19 +01:00
Oswald Buddenhagen e01343352e fix doc page urls
they are versioned nowadays

Change-Id: I839db633e9d7d63c9d445f8e914b529bd7ce60a2
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-02-04 14:28:24 +01:00
Sergio Ahumada 256dc059ee Merge "Merge branch 'release' into stable" into refs/staging/stable 2013-02-01 12:31:16 +01:00
Oswald Buddenhagen 06a6d1da58 substitute fixed version numbers in qdocconf files with variables
Change-Id: Ie57765c10a8e90d6fc74ee5a8fd84bfc7cd8bcf2
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-02-01 10:23:26 +01:00
Sergio Ahumada 6239af6f0f Merge branch 'release' into stable
Change-Id: If3aa1b7ed75082eff6e9761ad82c83691135ed60
2013-01-31 18:55:53 +01:00
Sze Howe Koh 52a317092e Doc: Fix references to Qt Test
QtTestLib and QTestLib don't exist. The proper name is "QtTest" (code)
or "Qt Test" (English)

http://qt-project.org/wiki/Spelling_Module_Names_in_Qt_Documentation
http://lists.qt-project.org/pipermail/interest/2012-December/005221.html

Files paths in qttestlib.qdocconf can't be changed easily however, as it
breaks things. So, they're left as they are.

Change-Id: Ifbc44ea858c453bedad8cd7723f847e67fc7a85a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-01-30 01:35:06 +01:00
Frederik Gladhorn 3eb588078e Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-01-29 11:33:35 +01:00
Sergio Ahumada 07e3bcdc10 Remove QT_{BEGIN,END}_HEADER macro usage
The macro was made empty in ba3dc5f3b5
and is no longer necessary or used.

Discussed-on: http://lists.qt-project.org/pipermail/development/2013-January/009284.html
Change-Id: Id2bb2e2cabde059305d4af5f12593344ba30f001
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-01-29 01:06:04 +01:00
Sergio Ahumada 03e8824211 testlib: Remove old 'Partner Directory' external link
This reference was removed by dc0d5bf387

Change-Id: I941dbd24815caf7f2f33e757215815d9ca4e581c
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-01-28 16:33:48 +01:00
Frederik Gladhorn 02ba93dd3d Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I12b4d8b99bdccae53b1a978cd6eb8f4ac6fb3c76
2013-01-28 11:10:29 +01:00
Sze Howe Koh 63569a68d2 Doc: Fix module name format
Follow the conventions at
http://qt-project.org/wiki/Spelling_Module_Names_in_Qt_Documentation

QtCore         -> Qt Core
QtDBus         -> Qt D-Bus
QtDesigner     -> Qt Designer
QtGui          -> Qt GUI
QtImageFormats -> Qt Image Formats
QtNetwork      -> Qt Network
QtPrintSupport -> Qt Print Support
QtScript       -> Qt Script
QtSql          -> Qt SQL
QtSvg          -> Qt SVG
QtTest         -> Qt Test
QtWebKit       -> Qt WebKit
QtWidgets      -> Qt Widgets
QtXml          -> Qt XML

QtConcurrent   -> Qt Concurrent (partial)
QtQuick        -> Qt Quick      (partial)

Also, distinguish between "module" and "library"

Change-Id: Icb8aa695ae60b0e45920b0c8fce4dc763a12b0cd
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-01-25 17:27:44 +01:00
Thiago Macieira a5fa0cf98c Make the QtTest GUI headers compile on their own
Though no one is supposed to include them directly, it's a good idea
to ensure that they are tested too. They're only included from the
master header when QT_GUI_LIB and QT_WIDGETS_LIB are #defined.

Change-Id: Ie84bb6fd4c18b5b51ab35463f9082feaa0693c97
Reviewed-by: Harald Fernengel <harald.fernengel@nokia.com>
2013-01-24 05:43:09 +01:00
Frederik Gladhorn c608ec8254 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/corelib/io/qsavefile_p.h
	src/corelib/tools/qregularexpression.cpp
	src/gui/util/qvalidator.cpp
	src/gui/util/qvalidator.h

Change-Id: I58fdf0358bd86e2fad5d9ad0556f3d3f1f535825
2013-01-22 18:40:13 +01:00
David Faure e01b163404 QTestLib: improve output when comparing lists fails.
Only QStringList was handled before, now any QList is handled.
A specialization for QStringList is still needed though, due to the way
template matching works.

Example with QList<int>. Before:
FAIL!  : tst_QTextCodec::threadSafety() Compared values are not the same
   Loc: [../tst_qtextcodec.cpp(2057)]

After:
FAIL!  : tst_QTextCodec::threadSafety() Compared lists differ at index 0.
   Actual   (res2.toList()): '0'
   Expected (mibList): '3'
   Loc: [../tst_qtextcodec.cpp(2057)]

Change-Id: If0fdec3236ddb78a679ee549aba569ef5571c395
Reviewed-by: Jason McDonald <macadder1@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-01-22 13:29:33 +01:00
Sergio Ahumada 48e0c4df23 Update copyright year in Digia's license headers
Change-Id: Ic804938fc352291d011800d21e549c10acac66fb
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-01-18 09:07:35 +01:00
Frederik Gladhorn 7818eaf2b1 Bump Qt version to 5.1.0
Change-Id: I6d372c933e48eeda921fe781b073bf4e05b31585
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: David Faure (KDE) <faure@kde.org>
2013-01-15 12:45:21 +01:00
Sergio Ahumada 63f24f6ba8 Merge branch 'stable' into dev
Change-Id: I7f0dab6bdb1f3cc1d3e6c30166ff6db9dfae37e9
2013-01-09 11:49:47 +01:00
Debao Zhang 39795b1411 Replace macro qdoc with Q_QDOC
Both qdoc and Q_QDOC are used in source code, which looks not good.

Change-Id: I4f3a71670278b0758d92bfa5db086a07e1b1acfd
Reviewed-by: hjk <qthjk@ovi.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-01-08 10:48:33 +01:00
Frederik Gladhorn cdf13ce286 Merge branch 'stable' into dev
Conflicts:
	tests/auto/widgets/graphicsview/qgraphicsscene/tst_qgraphicsscene.cpp

Change-Id: I6b8d505fc22f052c307ca27f58f7d16f98965f47
2013-01-07 15:18:16 +01:00
Stephen Kelly 21d607c81a Automatically register method types in QSignalSpy.
Change-Id: I3655291dca6dbd3d8d09ee835b85983caa911b64
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2013-01-07 12:06:00 +01:00
Stephen Kelly 4319f698c8 Remove metatype registration of built-in types.
As they are built-in, they are effectively registered at compile-time
already.

Change-Id: I7ae6ba16088eab5d19213fa7b07c2a7760988a86
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2013-01-03 16:15:37 +01:00
Thiago Macieira ebcc41ed72 Make qtestaccessible.h compile with QT_NO_KEYWORDS
Change-Id: I2065be84d69db62cdae1ad6ac66a09fc5f3454eb
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-01-02 17:33:49 +01:00
Thiago Macieira b5de3baa6f Add qtest_widget.h to the list of testlib headers
It was missing.

Change-Id: I356f6ccddf4fc56e76858fdeaa8ef116e3b680af
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2012-12-28 23:29:11 +01:00
Thiago Macieira 7b54571ec2 Suppress warning in valgrind headers: variable set but not used
qbenchmarkvalgrind.cpp:229:5: error: variable '_qzz_res' set but not used [-Werror=unused-but-set-variable]

Change-Id: I3c5896659105650d6d824b10ff3beffbdf494e24
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2012-12-28 23:27:58 +01:00
Sergio Ahumada 7426102c73 Bump Qt version to 5.0.1
Change-Id: Ie8f437b8dfe8a67c7b34321439dd988a02612437
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-12-21 22:49:02 +01:00
Thiago Macieira d7df8e39f3 Make qtestaccessible.h compile on its own.
It needs the QTest namespace and QTest::qWait to be declared.

Change-Id: I1c72a13231603a61221cf1b7ad9234aa4cba6d60
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2012-12-19 23:43:21 +01:00
David Faure e2ad422e88 Doc: recommend using QVERIFY with QSignalSpy::wait, so people don't forget.
Change-Id: I63a04b64368a4b8aa6cfea88780b8dd6ba38b8bf
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2012-12-14 13:06:53 +01:00
Christian Stenger e262f221aa Docs: Fix references
Change-Id: I48173186afb874d307010f4f303d0e4f97ec0287
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-12-13 00:07:20 +01:00
hjk 1edf28839f Adjust qttestlib.qdocconf to create qttestlib/examples-manifest.xml
Change-Id: I6c4c8d9b69f135229bd0bd28e8e57738742f6bd8
Reviewed-by: David Schulz <david.schulz@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-12-06 14:46:13 +01:00
Marc Mutz 80ae1d2078 QSignalSpy: assorted improvements
- Add const
- Add explicit (only effect under C++11;
  C++98 knows no multi-arg implicit conversions)
- Add Q_DECL_OVERRIDE to qt_metacall reimplementation
- Add reserve() calls on containers
- Change 'args' from QList to QVector for a 2x
  memory reduction on 64bit platforms

Change-Id: If6c779dac0499d4ab64e5191d37596edf7341f76
Reviewed-by: hjk <qthjk@ovi.com>
Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-12-01 10:31:20 +01:00
Jerome Pasion 62c9be5b2f Doc: Changing HTML output to qttestlib-index.html
-matches the index file and output directory name

Change-Id: I9205a41355fcb3818a93035208c8e25c1c13dcff
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
2012-11-30 23:56:37 +01:00
Christian Strømme 1970552e72 Fix missing code snippet in QTest doc.
Change-Id: I6fb1167634b0acddfa61b92d104d98ba8a1a15cb
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2012-11-30 00:50:12 +01:00
Samuel Rødal 76b492050f Fixed QTestLib tutorial docs (link + outdated mention of Qt Labs).
Change-Id: I76d45780b052b40b079fb0c8e0d38db88aa17814
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2012-11-28 16:21:57 +01:00
hjk d95d29d709 Doc: rename qttest.qdocconf to qttestlib.qdocconf
The name of the .qhp files seems to be generated from the name
of the .qdocconf, not the value it has in qhp.QtTest.file

Change-Id: I12645cb254991006c920234ec966e2fa220cb595
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-11-28 12:40:40 +01:00
hjk 62b13a48ba Doc: write qttestlib.qch, not qttest.qch
This is an enabler for https://codereview.qt-project.org/#change,40381

Change-Id: I2c2fdefab041dc9332816aefbe85ff66c275ca63
Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-11-27 13:09:08 +01:00
Eike Ziller 8534bb3dd6 Fix example paths in example manifests that are used by Qt Creator.
Task-number: QTBUG-27801
Change-Id: I345c009fc0e4e1c1eabb43ad142e3b474e7a6fee
Reviewed-by: hjk <qthjk@ovi.com>
2012-11-26 17:33:37 +01:00
Jerome Pasion 49a4d058cc Doc: Modified Qt Test's doc configuration to match file and dir names.
-"qttestlib" should be the directory to match the name of the .index
file. The names affect the cross linking and the "depends" variable.

Change-Id: Ibd35e7a089c78c043527bd72741e57d72daa83d8
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2012-11-22 11:47:27 +01:00
Eskil Abrahamsen Blomfeldt 0dc61c4216 Merge branch 'newdocs'
Added prepare_docs to qt_build_config.prf (it was added
directly in configure in the source branch)

Conflicts:
	configure
	tools/configure/configureapp.cpp

Change-Id: I1337c69fc62b1c934e3e39b4409e4857440c9db8
2012-11-20 10:12:44 +01:00
Shawn Rutledge 672e7c875e Remove QWindow pos, geometry and size as properties; pos->position
Abbreviated properties are to be avoided.  But all 3 of these
properties are redundant from the QML perspective; and because QRect,
QPoint and QSize are (wisely) not QObjects, it's not possible to bind
to _their_ properties, which make these QWindow properties less useful
than users might assume that they are.

Change-Id: I19c00b54b1d2712f9418e8bcf56e35a8008b89ef
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-11-08 15:01:30 +01:00
Jerome Pasion b4a05fd2d8 Doc: Cleaning up QHP information in module configuration files.
There is a common standard among all Qt modules. These changes affect
the final .qch file for each module.

Changes:
1)URL in qt-project.org is confirmed by DevNet maintainer
url = http://qt-project.org/doc/<module>

2)Landing page title mapping
indexTitle = landing page

3)"C++ Classes" as a child node.
The list of C++ classes and the titles are specified in the wiki.

4)Removed extra subprojects.
They are not needed for now. Each module may need additional nodes.

Change-Id: I1825476c21fe9aaddc9d6b512ff74229f17271a0
Reviewed-by: Martin Smith <martin.smith@digia.com>
2012-11-07 10:16:08 +01:00
Liang Qi 698ae963e4 Update mac-specific code in qtestlib for Qt5
1. Remove the code for activate application, due to Qt 5 already
has this feature
2. Update the code for power setting

Task-number: QTBUG-23267

Change-Id: Id257c2e10e8e750a4b68cd2995c2ac4b70f8910c
Reviewed-by: Jiang Jiang <gzjjgod@gmail.com>
Reviewed-by: Liang Qi <liang.qi@digia.com>
2012-11-02 19:49:22 +01:00
Jerome Pasion c808dd2745 Merge branch 'master' of ssh://codereview.qt-project.org/qt/qtbase into newdocs
Change-Id: I7e6cee190a341901dfbf8effb54ebccb91bf7a17
2012-11-02 14:41:27 +01:00
Leena Miettinen 8f1687c572 Doc: add landing page for Qt Test
Replace "QTestLib" with "Qt Test". Some style and language edits.
Remove some empty headings.

Change-Id: I568b4bbde981c3ef1899c830931892c16b66b4e2
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2012-11-02 10:35:30 +01:00
Harald Fernengel 5b21b6a7f0 Fix build when libQtGui is not available
Change-Id: I9e35d9302f58d283459f7e625c4e0b87fd1dc2bf
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-11-01 18:16:22 +01:00
Kai Koehne e27a588643 Testlib: Disable gcc warning about deprecated qInstallMsgHandler
Fix warning: 'void (* qInstallMsgHandler(QtMsgHandler))(QtMsgType, const char*)' is deprecated (declared at qtestlog.cpp:85) [-Wdeprecated-declarations]

Change-Id: I28d2baf696fdeddec90780edc88574fc368468db
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-11-01 09:06:15 +01:00
Friedemann Kleint e880ff9cae List possible matches when specifying invalid test function.
List functions matching the command line parameter instead
of dumping all functions.

Change-Id: Ic504587b1036f09702f47579f90406333c4efbeb
Reviewed-by: Caroline Chao <caroline.chao@digia.com>
2012-10-29 13:46:55 +01:00
Jerome Pasion e52f178b0d Doc: Removed the HTML template from the .qdocconf files
-qt-module-defaults.qdocconf already contains the HTML template.

Change-Id: I5757741166f0f688ce0e8a4e77ed45fd4d72f1c7
Reviewed-by: Martin Smith <martin.smith@digia.com>
2012-10-26 15:00:04 +02:00
Tor Arne Vestbø 6e5818f2bb Merge remote-tracking branch 'gerrit/master' into newdocs
Change-Id: I10cf9f915c602c8e5a0e7d7c9e17b7bc5ca00640
2012-10-26 12:28:53 +02:00
Mitch Curtis 7cbdac1362 Clarify assert on use of const char* as TestData type in tests.
Currently all C-style strings used as data types in QTest::addColumn
will assert at runtime with, e.g.: "expected data of type
'const char*', got 'QString' for element 0 of data with tab 'blah'".
This patch makes it clear that C-style strings are disallowed.

Change-Id: Iadbb8f10e16607de95c7adb43d9ff3310aac6738
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2012-10-24 01:38:51 +02:00
Oswald Buddenhagen 1e68ec7e67 remove explicit load(qt_build_config)s from the libraries
.qmake.conf (and previously .qmake.cache) already does that for us.

Change-Id: I06cc01fa45921d7bd66dda7a0f88729faeff37bd
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-10-19 13:02:17 +02:00
Tor Arne Vestbø 55a36aed79 Merge remote-tracking branch 'gerrit/master' into newdocs
Change-Id: If7f46d56cf0b0b79f7fc8955a01964121b900d07
2012-10-19 09:54:12 +02:00
Jan Arve Saether 8660a3bce1 Make sure we copy *all known events* properly in order to not assert.
This caused the following assertion in tst_QAccessibility::listTest():
ASSERT: "m_type != QAccessible::TableModelChanged" in file
qaccessible.h, line 455

Change-Id: If1f1e80521f346019bdbd59aac58e30c870d6e4e
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2012-10-18 12:24:13 +02:00
Kai Koehne 8fdef974b7 Logging: Mark deprecated API with QT_DEPRECATED
Still use it in qtestlib though because using qInstallMessageHandler
here would break all tests (still) using qInstallMsgHandler - Qt always
uses the new message handler if there's one, ignoring any message handler
installed through deprecated API.

Change-Id: I6fefefb315a2421425d2b7787e367fd348a33d83
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-10-16 15:29:15 +02:00
Tor Arne Vestbø 8fc4f99e46 Merge remote-tracking branch 'gerrit/master' into newdocs
Change-Id: If2168c519daf45390af04af9ef9722770453a493
2012-10-16 10:46:48 +02:00
Tor Arne Vestbø d3921cce47 doc: Add a bunch of missing depends
Change-Id: I32c3730f8181d73a7c8e36ef382c74b8da754269
2012-10-16 10:43:30 +02:00
Jerome Pasion dc0d5bf387 Doc: Removed references to stale links.
The links are from the qt-webpages.qdoc and no longer exist.

Change-Id: I8329032215fa77811117e2767bae745795b209cb
Reviewed-by: Martin Smith <martin.smith@digia.com>
2012-10-13 05:51:19 +02:00
Tor Arne Vestbø 087efb572a Modularize documenation build
qdocconf files can now reference $QT_INSTALL_DOCS to pick up e.g. global
includes, instead of using relative paths. Qt modules will automatically
get a doc target that builds and installs into the right place (including
supporting shadow-builds) if they set QMAKE_DOCS before loading(qt_module).

Change-Id: Ia408385199e56e3ead0afa45645a059d1a8b0d48
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2012-10-10 23:27:03 +02:00
Thiago Macieira 59ad0019dc Make QUrl::errorString() usable for QtTest output in invalid URLs
If an URL is invalid, let's indicate that in the test output. To be
helpful, let's make QUrl::errorString() include the component form of
the URL.

Change-Id: Iaafe16973ded79c7ea688fbb23808d91253e8c14
Reviewed-by: David Faure <faure@kde.org>
2012-10-02 22:34:42 +02:00
Kai Koehne e47faabe23 TestLib: Fix MinGW compile warning
MinGW-64 defines _CrtSetReportMode, but only as a noop, resulting
in a warning "statement has no effect [-Wunused-value]"

Change-Id: I6e509246134dd5929b23b07abdb6d705db603793
Reviewed-by: Jonathan Liu <net147@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-09-28 07:32:21 +02:00
J-P Nurmi 27cd20e576 qtest.h: add missing QT_NO_DATESTRING guards
Change-Id: I04d8ec2e9d41399cffc610f943fc06e043831ceb
Reviewed-by: Caroline Chao <caroline.chao@digia.com>
2012-09-26 10:08:59 +02:00
Marc Mutz e44f1dabe4 QTestLib: clean up qCompare specialisation/overload mix
qCompare() was both overloaded and specialised, but always as a template.
This lead to the QIcon specialisation actually invoking
   qCompare(QFlags<void*>, ...)
when specifically asking for qCompare<void*>() (detected by adding
underlying-type detection to QFlags).

Fix by preferring overloading and not specialising anything.

Change-Id: Ie001ebb9dfb0847c6c33a3f45177a61579fd61ee
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-09-23 23:29:42 +02:00
Iikka Eklund be15856f61 Change copyrights from Nokia to Digia
Change copyrights and license headers from Nokia to Digia

Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
2012-09-22 19:20:11 +02:00
Mitch Curtis a10e0e82ff Fix qtestlib-manual.qdoc errors.
Corrected paths to tutorials and added qt-webpages.qdoc for missing
links.

Change-Id: I1c318f2f80804b73941acfcb5a53df456108f018
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
2012-09-13 19:33:08 +02:00
Frederik Gladhorn 33a07646ce Do not include /examples in qdocconfs.
Change-Id: I84a925a8be4964fae667f5a2500157283a8057d2
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-09-11 12:09:47 +02:00
Casper van Donderen c3523bdde7 Doc: Centralize more common settings in 1 global qdocconf.
All qdocconf settings that should be used by all Qt modules are now in
qt-module-defaults.qdocconf.

Change-Id: I2a0315a55db3fcbb0160c4392d2da98611043d83
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-09-11 09:35:28 +02:00
Jeremy Lainé afb0260f50 Fix QTest::qExec crash with no command line arguments
The documentation for QTest::qExec states that command line arguments
are optional and gives the following example:

 MyTestObject test1;
 QTest::qExec(&test1);

However, running this example leads to crash as argv[0] is accessed
without testing argc. This change fixes this bug.

Change-Id: I2ec016e02869d21b24bc11f1851a760036640191
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2012-09-08 01:44:26 +02:00
Casper van Donderen eede34aa6b Doc: Fix docbuild when not using -developer-build.
https://codereview.qt-project.org/#change,33974 only works in the case
of a developer build. Not in a normal prefix build.

Change-Id: I3a3e5029cefaa9f83c5deb71665f0efa9d812819
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-09-01 11:23:56 +02:00
Casper van Donderen 2e7f06c9bc Doc: Simplify qtbase qdocconfs.
We should be using the global qdocconf for the common variables. This
change also allows you to just specify -installdir without using a
templatedir.

Change-Id: I207d279d9b5199212e896fc5ccab5c212b1896c6
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-08-31 01:16:56 +02:00
Kai Koehne f7de5b0923 Logging: Remove mutex for OutputDebugString
OutputDebugString seems indeed to be thread safe, at least according
to http://www.unixwiz.net/techtips/outputdebugstring.html . I also didn't
manage to run into any deadlocks on Windows 7 ...

The comment + code was already there (in qcoreapplication_win.cpp) in
the first git commit that imported Qt.

Change-Id: I442e22575558958ef21ab8c6b4cc8b03aee906b2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-30 06:22:45 +02:00
Frederik Gladhorn e0d3874525 Exclude the examples/widgets/doc dir for all but widgets.
There are too many references to the QWidget lib documentation
in there. On the other hand this keeps snippets working.

Change-Id: I7dd63b7fba1758accea2663f7b427940a8857e32
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-08-29 14:12:06 +02:00
Stephen Kelly 81b275b1dc Deprecate qWaitForWindowShown QWidget* overload since 5.0.
It is already documented as deprecated in 5.0, so marking it as deprecated
since 6.0 is silly.

Change-Id: If72cc81bdad18c907022c48b9aa8e7d87eb88e59
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-08-27 23:25:30 +02:00
Stephen Kelly e9bc07c4f2 Remove qWaitForWindowShown(QWindow*) overload.
The QWindow* overload was introduced for Qt 5.0, but is unused already.

Change-Id: Ic07f19eac87bc93a589017407668760fceb2f632
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-08-23 08:32:17 +02:00
Jeremy Katz e1d06080f8 fix some QTest documentation
* Use \b instead of \bold
* widnow -> window typo
* QTest::touchEvent's second parameter is QTouchDevice *, not
  QTouchEvent::DeviceType, and autoCommit defaults to true
* QSignalSpy::wait() isn't const

Change-Id: I75a91c1cd98b1c582cd654b2b72ad61e5c0e31d2
Reviewed-by: David Faure <faure@kde.org>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-08-21 06:48:46 +02:00
Sergio Ahumada 64d22311d8 Doc: Fix spelling errors
Change-Id: Ibae8d10183f6b15a16b1499daa2df8802dbb014e
Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
2012-08-17 22:45:27 +02:00
Marc Mutz a2fbe8056c QtTestLib: use new qEnvironmentVariableIsEmpty()
Except where using the contents of the variable, in which case
collapse two calls to qgetenv() for the same variable into one
that stores the result in a temporary QByteArray and continues
working with that one instead.

Change-Id: I6c09a20ae946327ccb85e4833a60a373a8a07355
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-14 20:21:19 +02:00
Frederik Gladhorn 522e892ff4 Fix order of namespace/include guards.
Change-Id: I9ed1e82c90e38a65c15bb9d05ff789270218d4b5
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-08-11 07:30:45 +02:00
Oswald Buddenhagen 0885f3ee52 rename qt_module_config.prf => qt_module.prf
this is more logical, following the qt_plugin and qt_tool scheme.

Change-Id: Ib3b2abec6728cdab260e15128b1cd78e8e6f5d6a
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-08-08 12:04:49 +02:00
Kent Hansen 9a0b7348b3 Make QSignalSpy copy QVariant parameters directly
Previously, a QVariant parameter would be wrapped inside a new
QVariant, and you would have to cast the QSignalSpy's QVariant to
a QVariant to get the actual value. This behavior was unintuitive
and undocumented.

Check if the parameter type is QVariant, and copy it directly if it
is. This makes the QSignalSpy's QVariant directly usable (no need to
"unwrap" the value in user code).

Existing tests that use QSignalSpy together with QVariant parameters
(such as tst_QPropertyAnimation::valueChanged()) and do cast the
QVariant parameter to a QVariant, continue to work after this change;
this is because qvariant_cast<QVariant>() returns its input value
(unchanged) when the type is not QMetaType::QVariant.

Task-number: QTBUG-21645
Change-Id: Ibfb171edd60c0d3f7ca1d5419e5c5f3d0380d5b3
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-08-07 11:15:55 +02:00
Paul Olav Tvete 5ac4a1304b Make tests compile without gui-private
Add new qt_handleXXX functions that forward to the QWindowSystemInterface
functions, and use those in the testlib inline functions. Remove use of
struct QWindowSystemInterface::TouchPoint from the testlib header files
(requiring some slight increase in ugliness in the two tests that use
that struct).

Also remove the qmake hack that adds private headers to all tests

Change-Id: Iec23537e55a44802f6e9cd463f7a0f82007c5250
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
2012-08-02 17:25:37 +02:00
Lars Knoll 3e3790b2c7 Fix some syncqt warnings.
Change-Id: I6f432ee991f4bde217fa27d4004ef318f1d480e0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-01 00:14:41 +02:00
David Faure 790aca0ea1 Add QSignalSpy::wait() method.
Change-Id: I1f3b49e3dee19bf0b1d2933c6e6ad7972186e0d0
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-07-25 13:31:14 +02:00
Friedemann Kleint 4677cf3d01 Deprecate the qWaitForWindowShown(QWindow *) method.
While the qWaitForWindowShown(QWidget *) is inherited
from Qt 4.8, the qWaitForWindowShown(QWindow *) was introduced
in Qt 5. As it is identical to qWaitForWindowExposed()
and removed already, it can be deprecated in Qt 5.

Remove its usages in qtbase.

Change-Id: I28788d120ad687a49f02b2b44de6b38a2832fe5c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-07-25 07:24:49 +02:00
David Faure 1603ba2365 Provide public API for native event filtering, moved up from QPA.
The previous API was hard to use (global function, no type safety,
manual chaining), and confusing (app vs dispatcher split only made
sense on Windows). Installing and removing out of order would have
the risk of setting back a dangling pointer (crash). Meanwhile QPA
added type safety, and this new API models the QObject::installEventFilter
API for ease of use. The virtual method is in a new interface,
QAbstractNativeEventFilter.

QPA was even calling the dispatcher event filter with QPA-private event
classes, which made no sense (refactoring leftover from when the code
was in the dispatcher). Now the QPA plugins trigger the qcoreapp event
filters with the actual native events directly.

Change-Id: Ie35e47c59c862383bcaf857b28d54f7c72547882
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-07-20 18:34:08 +02:00
Friedemann Kleint 8761840397 Implement waitForWindowExposed and friends for widget windows.
- Implement waitForWindowExposed() for toplevel windows.
- Implement waitForWindowShown(QWidget *) and mark as
  deprecated in line with waitForWindowShown(QWindow*).
- Use in tests.
- Simplify tests (collapse waitForExposed, setActive
  into setActiveWindow, waitForActive), remove most
  hard-coded timeouts.
- Stabilize graphicsview tests by using waitForWindowActive.

Change-Id: Ic7c061e2745b36f71a715ee4e47c0346b11a91e8
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-07-20 09:27:28 +02:00
Stephen Kelly 784a877d3c Move QWindowSystemInterface out of qpa.
Public QtTest headers require it, so all unit tests would have to use private Qt
headers otherwise, which is not practical.

Change-Id: I5d4466ec30b6a57ebdfc34413e716e657eb51368
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-19 15:28:18 +02:00
Oswald Buddenhagen 2d04ea0f61 remove needless/commented INCLUDEPATHs
Change-Id: Id1d3afde424e0e17e68889d6f7b51e3056754536
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@nokia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-18 19:53:37 +02:00
Marc Mutz a1590325ca doc/snippets: normalize signals/slots
There's one in corelib that has a comment
  // slower due to signature normalization at runtime
I obviously didn't change that one.

This is the result of running util/normalize --modify
from Qt 4.7 with manual review.

Change-Id: I0ffb2305800a9cb746b7f8a4eb710702d64f1b92
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-13 12:09:42 +02:00
Friedemann Kleint 00bafafbee Improve accessibility test helpers.
- Wait for accessibility events using qWait, allowing for
  event processing,
- Output a verbose message if the event cannot be found.

Change-Id: Iaadbd235c15dd12bb14724e1724dd04328532a96
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-07-13 09:55:18 +02:00
Friedemann Kleint 46c62433e8 Implement qWaitForWindowShown using qWaitForWindowExposed.
Deprecate qWaitForWindowShown for Qt 6 as it is just a wrapper.

Change-Id: I0f8195679679120bd402e273fed4d331dc926708
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-07-12 14:22:48 +02:00
Casper van Donderen 8f2c57ddb2 Doc: Replace all occurences of \BR with \br.
Change-Id: I9b0fac5fac7b0467de2d9a57a951b10a0f5438d7
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-07-06 16:08:02 +02:00
Girish Ramakrishnan 037238022f Make QWindowSystemInterface part of QPA API
As discussed on mailing list and QtCS 2012.

Any file starting with qwindowsystem is now marked as
QPA API.

This change drops _qpa from the filenames and adds gui-private
where required for the code to compile. This change is backward
compatible otherwise and compat headers are created for
the old inclusion headers.

Change-Id: I72ea0f394dee74f46e614fcf11ab5500ac9fef2a
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-07-03 01:55:37 +02:00
Thiago Macieira 96166fa56a Update the macros for shared/DLL and static builds
Up until now, we had a mess of different macros used for building
DLLs, for building shared libraries on Unix systems and for building
static libraries. Some of the macros were contradictory and did not
work. From now on, there shall be only:

 - QT_STATIC: indicates that it's a static Qt build and the export
   macros should expand to empty
 - QT_SHARED: indicates that it's a shared / dynamic Qt build and the
   export macros should expand to Q_DECL_EXPORT or Q_DECL_IMPORT,
   depending on whether the macro corresponds to the current module
   being built (the QT_BUILD_XXXX_LIB macro comes from the module's
   .pro file)

QT_BOOTSTRAPPED implies QT_STATIC since the bootstrapped tools link
statically to some source code.

QT_STATIC is recorded in qconfig.h by configure when Qt is configured
for static builds. Nothing is recorded for a shared / dynamic build,
so QT_SHARED is implied if nothing is defined. This allows for the
existence of a static_and_shared build: with nothing recorded,
defining QT_STATIC before qglobal.h causes the export macros to be
that of the static form. Linking to the static libraries is out of the
scope of this change (something for the buildsystem and linker to
figure out).

From this commit on, the proper way of declaring the export macros for
a module called QtFoo is:

    #ifndef QT_STATIC
    #  ifdef QT_BUILD_FOO_LIB
    #    define Q_FOO_EXPORT Q_DECL_EXPORT
    #  else
    #    define Q_FOO_EXPORT Q_DECL_IMPORT
    #  endif
    #else
    #  define Q_FOO_EXPORT
    #endif

The type of the Qt build is recorded in QT_CONFIG (in qconfig.pri) so
all Qt modules build by default the same type of library. The keywords
are "static" and "shared", used in both QT_CONFIG and CONFIG. The
previous keyword of "staticlib" is deprecated and should not be used.

Discussed-on: http://lists.qt-project.org/pipermail/development/2012-April/003172.html
Change-Id: I127896607794795b681c98d08467efd8af49bcf3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-28 06:21:48 +02:00
Albert Astals Cid 175c69108a Add const & to foreach 'iterators'
Change-Id: I8c0600dfd919f45d14a0011f2da9b9fe0b9a0df3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2012-06-27 14:43:00 +02:00
Giuseppe D'Angelo a2e65bc4d4 Fix QCOMPARE for QIcon in QtGui
There's no need of QtWidgets for using QCOMPARE on two QIcons, as
QIcon lives in QtGui.

Change-Id: I40c3d4aeb15fb95876449383d9e2dd1ad39aa5f9
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-06-26 22:39:46 +02:00
Oswald Buddenhagen 34cb86d46b make using testlib automatically "promote" all modules to -private
autotests often need private headers (especially with qpa headers now
being private) and have no compatibility requirements, so it makes sense
to just use the privates of requested modules.

this also suppresses the useless warning about using privates, in case
they are still explicitly specified.

Change-Id: I9e499bedcf6ef25777283ff1432cef7254e9093a
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-26 11:51:34 +02:00
Girish Ramakrishnan 9dc7f84839 Use valSeen since it results in unused warning otherwise
Change-Id: Iccfa4b895d9e50227efa1747ea20ce07ce70327e
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-06-26 05:30:10 +02:00
Girish Ramakrishnan fd1b7b4cac Remove QWS references from testlib
Change-Id: Iad52a5c44b27cb11a47987c9f8890cc67b557fb7
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-06-21 10:55:39 +02:00
Chris Adams d8ad516150 Add new benchmark metrics to testlib
QElapsedTimer provides nanosecond-resolution elapsed timing, which
allows for finer granularity benchmark reporting.  Also, clients
may also wish to benchmark the memory usage of a particular component,
but no metric currently exists which matches that requirement.

This commit adds the WalltimeNanoseconds and BytesAllocated metrics
to meet these needs.  It is intended for manual use by clients via
setBenchmarkResult() only.

Change-Id: Ib37ada374e265c857eda02d047d51d436618e4a7
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-06-21 00:58:12 +02:00
Oswald Buddenhagen 1ee462604b fix misnomer: qt_module.prf => qt_build_config.prf
qt_module suggests to be congruent to qt_plugin.

Change-Id: I629530bcbe2ba6c0adbdc11a275119c8aff0c953
2012-06-19 16:46:08 +02:00
Oswald Buddenhagen c595988a58 automatically add QT_BUILD_FOO_LIB to DEFINES
Change-Id: I35d9861e48469eb5cc8824e361450684047e6559
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:46:00 +02:00
Oswald Buddenhagen 6fb0b7f5fc clean up projects from QPRO_PWD nonsense, etc.
Change-Id: I4c41aedf5bfb37e31ad202cacd2312b0bdb168e2
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:45:59 +02:00
Oswald Buddenhagen 0b76b7ab8a auto-generate module pris
Change-Id: I654428771034221ccf424be34d5d9c7764daf3b4
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:40:06 +02:00
Oswald Buddenhagen e203e42906 automatically add the version header to HEADERS
Change-Id: I7c2e1d852ebdbc5cca7a3a31ab2b4c9ab9faffd9
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:40:04 +02:00
Oswald Buddenhagen f4b7e33c0b make qt_module_config.prf install the module pri file
absorb module.prf into qt_installs.prf, as that's where it belongs.
add qt_install_module option and automatically set it in
qt_module_config. make qt_installs use that option.

Change-Id: I860616f3a29a456f7b88ddaffa09375400c8911e
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:40:00 +02:00
Thiago Macieira fbabbe63c5 Use UTF-8 in the QtTest data and benchmark tags
Future-proofing. Since Qt source code is now mandated to be in UTF-8,
it is entirely possible that someone will use non-ASCII in data tags.

Though it would be interesting to see how to access them from the
Windows command-line.

Change-Id: I880fc312432b62143888ff1e1d9abbd54f704601
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-06-09 10:45:01 +02:00
Stephen Kelly 14cd267839 Use variadic macros where available to make QSKIP source compatible.
Otherwise this is a large source incompatbility during porting, so
it makes sense to provide the option of using C++11 for that.

Change-Id: I9792b3ae2c1fa3743bc9a2e74380134ea2f24add
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-08 18:10:18 +02:00
Kent Hansen ff50519768 Change testlib signal dumper hooks to use signal index range
Another step towards getting rid of the class method offset
computation in QMetaObject::activate().

Since QMetaObjectPrivate::signal() is private API, this also
required adding a testlib dependency on core-private (and
getting rid of the duplicated QSignalSpyCallbackSet struct).

Change-Id: I0d830f35392a6b44fc321c5285877ec0bf437100
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-06-04 01:18:52 +02:00
Laszlo Agocs 243a0660e1 Make qWaitForWindowShown more robust on X
Try ensuring the window has received its valid position from the WM.

Change-Id: Ibd75bc19ae820765bfaadd30c22e77a19cd28849
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-29 11:37:35 +02:00
Konstantin Ritt 09f20e75a4 Replace `const QLatin1String &` with `QLatin1String` where appropriate
Task-Id: QTBUG-24502

Change-Id: I360dee4dc68c165de0631ce4cf34e76fd873080e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-25 21:49:21 +02:00
Olivier Goffart 6c06e14a49 QIcon: move back to QtGui
-  Move the files and tests
git mv src/widgets/kernel/qicon* qrc/gui/image/
git mv tests/auto/widgets/kernel/qicon/ tests/auto/gui/image/

 - update the include of QIcon
git grep -O"sed -i s,QtWidgets/qicon,QtGui/qicon," "QtWidgets/qicon"
git grep -O"sed -i s,QtWidgets/QIcon,QtGui/QIcon," "QtWidgets/QIcon"

 - Adapt QIcon \ingroup documentation
sed -i s/QtWidgets/QtGui/ src/gui/images/qicon*

 - Adapt export macro
sed -i s/Q_WIDGETS_EXPORT/Q_GUI_EXPORT/g src/gui/image/qicon*

 - Update .pri and .pro files

 - Remove the use of QStyle::alignedRect by copying its content (and
   adapt slightly

 - Use QGuiApplication::palette() instead of QApplication::palette()

 - Add a hook in QGuiApplicationPrivate to call the
   QStyle::generatedIconPixmap() from QtWidgets

Another commit follows to adjust QMetaType::Icon and move the QVariant
and QMetaType icon handler back in QtGui

Change-Id: I1b63759f892ebc02dfc30f41bb6e76e0b7451182
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-18 21:42:38 +02:00
Rohan McGovern f12ef7d0b1 testlib: added missing newline to error message
Change-Id: I8b205da4d225d99f8505a46d8d78ad302cb2b9e3
Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com>
2012-05-17 23:52:17 +02:00
Lars Knoll 2b21dd69d6 turn off exceptions by default where they aren't required
This significantly reduces the size of the generated code
in places where we don't need exceptions.

The -(no-)exceptions configure flag has been removed in the
process, as there is now a fine grained way to control this
on a per module level, and Qt is being compiled without
exceptions in most places.

Change-Id: I99a15c5d03339db1fbffd4987935d0d671cdbc32
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-17 05:14:26 +02:00
David Faure 348c3966a0 Add header qtest_widgets.h, similar to qtest_gui.h, but for QApplication.
The current alternative is to define QT_WIDGETS_LIB before including
qtest.h, but this is not convenient/intuitive when using other build
systems than qmake. If one forgets the define, crashes happen when
using QApplication-related code.

Use <QTestWidgets> in one of the widgets autotests, for testing.

Change-Id: Id96be4976723aea3e8a28c9d0d594daab25a6d90
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-05-16 19:37:33 +02:00
Casper van Donderen 653bca19c7 Doc: Add a default license footer.
The CSS for the footer is not completely correct, but at this
time it is better to have something than nothing.

Change-Id: I7371e1e458a2abafcdb0fca5564ad73e209d64c3
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
2012-05-11 17:39:13 +02:00
David Faure 3247f2ece9 Fix -Wlogical-op warning in qtestmouse.h
error: logical 'or' of collectively exhaustive tests is always true
[-Werror=logical-op]
Indeed these asserts do not test anything, given that MouseButtonMask is
0xffffffff

Change-Id: I33cf59d3e77d9c644fc307de36f4e0ab1bea80f8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-11 08:37:11 +02:00
Thiago Macieira b6e4c859d3 Change to/fromAscii to to/fromUtf8 in the QString conversions
This commit matches the previous documentation commit that says that
the conversions are applied using to/fromUtf8.

Change-Id: I304e4d866ddedac5094fef8500cbeba299a02cb5
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: hjk <qthjk@ovi.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-11 01:42:02 +02:00
Marius Storm-Olsen ee38dec6f3 Don't add C-style copyright headers to qmake project files
Leads to parse errors, and we don't really put copyrights into these
files anyways.

Change-Id: I4b423b3f4f5c4f1f5051d8e3613133c4f1df342a
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-10 09:07:14 +02:00
Casper van Donderen a4d07f6c0b Doc: Add "make docs" targets for libraries.
Change-Id: I249c238f4986f443f84aaa6a3ac4ce102abff4db
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-05-09 08:37:35 +02:00
Casper van Donderen 6d4f2486d5 Doc: Modularize QtTest documentation.
This change moves the snippets to the modularized directories.

Change-Id: I917dd1dae5ee5d4b6bd5a0390783a8b9a99edc06
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-05-09 08:37:21 +02:00
Thiago Macieira 3ea4e7b90d Change remaining uses of {to,from}Ascii to {to,from}Latin1 [QtTest]
This operation should be a no-op anyway, since at this point in time,
the fromAscii and toAscii functions simply call their fromLatin1 and
toLatin1 counterparts.

Task-number: QTBUG-21872
Change-Id: I6f3fa6a06ed037f3a98387958ba7ab18c3e04977
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-05-04 12:47:40 +02:00
Friedemann Kleint e79d975be4 Replace QGuiApplication::activeWindow by focusWindow().
Fix deprecation warnings.

Change-Id: I8d33aa8c035df6f5ef3fff6a402e980e43e03406
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-04-27 20:16:37 +02:00
Laszlo Agocs 2cbd5906df Update QTest::QTouchEventSequence docs
Change-Id: I2a8f88929f985b1543ec7c223266e8387f0a8a48
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-04-25 08:16:41 +02:00
Laszlo Agocs 63051701b4 Add flag in testlib to disable committing the simulated touch
Some declarative tests (e.g. 24319) need more fine-grained control
over processing the simulated touch events.

Change-Id: Ib163cfd29254016ea16e8d739ad97369b6ccdc90
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-04-24 19:36:55 +02:00
Thiago Macieira 2a683c1f14 Don't use the QRegExp methods that modify the object [QtTest]
QRegExp matching methods modify the object, which we don't want to. In
particular, when we receive a QRegExp from the user or we store in a
context that might require thread-safety, make sure we make a copy
before using it.

QRegularExpression has no such shortcoming.

Task-number: QTBUG-25064
Change-Id: I7c5f5ebf4521c32337c9ea9aeeef50e1e8690bf8
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-04-24 16:38:38 +02:00
Thiago Macieira 3da8a33a62 Add missing private headers to testlib.pro
Change-Id: Id927b05374b9e82fbee029258f176223b8b32e90
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-04-23 19:20:19 +02:00
Ian Dean 22042dd769 Change coreservices -> ios
Replace "contains(QT_CONFIG, coreservices)" with "!ios" in config files.
Replace "QT_NO_CORESERVICES" with "Q_OS_IOS" in source files.

Change-Id: Id3b02316b245a24ce550e0b47596d18a4a409e4f
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-04-19 01:57:58 +02:00
Thiago Macieira 1b7e9dba75 Change the component formatting enum values so the default is zero
By having the default value equal to zero, we follow the principle of
least surprise. For example, if we had
      url.path()
and we refactored to
      url.path(QUrl::DecodeSpaces)

Then instead of ensuring spaces are decoded, we make spaces the only
thing encoded (unicode, delimiters and reserved characters are
encoded).

Besides, modifying the default can only be used to encode something
that wasn't encoded previously, so having the enums as Encode makes
more sense.

As a side-effect, toEncoded() does not support any extra encoding
options.

Change-Id: I2624ec446e65c2d979e9ca2f81bd3db22b00bb13
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-04-11 23:32:26 +02:00
Thiago Macieira 0441b2d4c3 Merge QUrl::DecodeAllDelimiters and QUrl::DecodeUnambiguousDelimiters
There's little value in having the DecodeUnambiguousDelimiters option
since neither QUrl nor QUrlQuery can return values that are ambiguous
in that particular context, ever.

This option could be used to encode a character if, when placed
in a URL, it would need to be encoded. Such cases are hash (#) or
question marks (?) in the path component, or slashes (/) and at signs
(@) in the userinfo.

However, we don't need two enums for that, since there are no
other characters that can appear in either form. Still, leave two bits
for this enum. In the future, if we want to split the gen-delims from
the sub-delims, we are able to.

Change-Id: If5416b524680eb67dd4abbe7d072ca0ef7218506
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-04-11 23:31:59 +02:00
Oswald Buddenhagen 143c4d3e13 Merge remote-tracking branch 'origin/master' into api_changes
Conflicts:
	configure
	src/widgets/styles/qwindowsxpstyle.cpp
	tests/auto/gui/kernel/qwindow/qwindow.pro
	tests/auto/gui/kernel/qwindow/tst_qwindow.cpp

Change-Id: I624b6d26abce9874c610c04954c1c45bc074bef3
2012-04-10 15:31:45 +02:00
Robin Burchell 47728445a5 Remove all calls to, and deprecate qMalloc, qRealloc and qFree.
Callers should just call the standard allocation functions directly.

Adding an extra function call onto all basic memory management for the sake of
making it instrumentable in rare cases isn't really fair to everyone else.

What's more, this wasn't completely reliable, as not everything was using them
in a number of places. Memory management can still be overridden using tricks
like LD_PRELOAD if needed.

Their aligned equivilents cannot be deprecated, as no standard equivilents
exist, although investigation into posix_memalign(3) is a possibility
for the future.

Change-Id: Ic5f74b14be33f8bc188fe7236c55e15c36a23fc7
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-03-31 16:46:40 +02:00
Thiago Macieira 74d2dba460 Port to the new QUrl API
The use of any broken-down components of the query now needs
QUrlQuery.

The QUrl constructor and toString() are now rehabilitated and the
preferred forms. Use toEncoded() and fromEncoded() now only when we
need to store data in a QByteArray or the data comes from a QByteArray
anyway. Change to toString() or the constructor if the data was in a
QString.

Change-Id: I9d761a628bef9c70185a48e927a61779a1642342
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-03-30 01:19:59 +02:00
Laszlo Agocs 59a5c78e20 Add QPA notes to QCursor pos() and setPos()
Change-Id: I7173816e0d792d6d26497b4fd59a57a50e512afd
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-03-27 17:36:26 +02:00
Kent Hansen 3b512ae142 Merge master into api_changes
Change-Id: I93551e4d13a1b0815b359b9415060e9089477db1
2012-03-23 14:10:58 +01:00
Kent Hansen e2502e1a06 Use the new QMetaMethod API in testlib
Use QMetaMethod::name() instead of parsing the signature.
Use QMetaMethod::returnType() instead of checking the length of
typeName().
Use QMetaMethod::parameterCount() instead of checking the
size of parameterTypes().

Change-Id: I424370b19b5b150865377666dca0fba5f29ad30f
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-03-21 13:38:03 +01:00
Jason McDonald 054b69c963 testlib: Remove obsolete internal compare_helper overload.
Change-Id: Ic98faf360a713ac698f9bf1ff8aaad5a4c5c176b
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-03-21 11:43:23 +01:00
Frederik Gladhorn c2e8db5841 Remove QAccessibleEvent child parameter.
This makes the api cleaner and generally the child should not be there.
It is only sometimes more convenient not to create a QAccessibleInterface
instance, so the functionallity is kept.

Change-Id: I26018a6d3e0549f4d79856775b4167c5660e229d
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-03-19 23:00:10 +01:00
Frederik Gladhorn 477c43260e Accessibility: add text update events
Change-Id: Iece9d100b3f5a379d7d8e29dea67a10d0c918c06
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-03-19 18:07:30 +01:00
Kent Hansen 95d6f8a4cf Merge master into api_changes
Conflicts:
	src/corelib/tools/qvector.h
	tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp

Change-Id: I877256e95f3788e617437f4e9661a88047f38cd6
2012-03-19 10:03:48 +01:00
Frederik Gladhorn 36513264da Make copy and assign private for QAccessibleEvent.
Also make the handling of events in the test pointer
based since mac-g++ doesn't seem to like const
references the way they were before.

Change-Id: I7fe39978d4729b8e586be30978b74aa51ca7cfe6
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-03-18 21:42:38 +01:00
Charles Yin c7fb7a6782 Fix broken qWaitForWindowShown() behavior
qWaitForWindowShown() should check window->isActive() instead of
window->isExposed() and return false if timeout.

Add two new qWaitForWindowActive() and qWaitForWindowExposed()
functions.
Change-Id: Idd9601805c2e84b0d36ddd5471031b627d289953
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-03-16 10:24:22 +01:00
Kent Hansen 440f452aa3 Merge master into api_changes
Conflicts:
	src/corelib/kernel/qmetatype.cpp
	src/gui/kernel/qplatformsurface_qpa.cpp
	tests/auto/corelib/tools/qtimeline/qtimeline.pro

Change-Id: Iff3fff34eeeb06f02369767ddfce44cfde505178
2012-03-16 10:01:29 +01:00
Samuel Rødal 0b70d8c6af Improved qWaitForWindowShown().
Made faster by actually waiting for the window to be exposed, using
similar waiting logic as qWait(). Should speed up autotests that use it
quite a bit.

Change-Id: I628c6110a554fdbbf5bed7e91f57c2fe341113ed
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-03-15 11:40:50 +01:00
Frederik Gladhorn a17907829e Use pointers for QAccessibleEvent.
At least on mac g++ badly wants to copy the event and
cannot use the copy ctor. The sensible solution is thus
to use pointers. This is in line with QCoreApplication::sendEvent.

Change-Id: Icb58852be351ab04ffa17069989d7a07d4b377da
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-03-15 11:40:50 +01:00
Olivier Goffart 6ec0823fd1 Remove QTEST_NO_SPECIALIZATIONS
We don't support these compiler anymore

Change-Id: I0eb73535b6c11703299430e5fc24c8e17fed1653
Reviewed-by: Samuli Piippo <samuli.piippo@digia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-03-14 14:21:01 +01:00
Laszlo Agocs 268f41ec70 Deliver events in qtestmouse
Not waiting until the QPA event queue is processed after
handleMouseEvent() is wrong. Unlike the synchronous sendEvent() calls
these tests most likely utilized earlier, many of the
QWindowSystemInterace functions are asynchronous in the sense that they
just queue the event, delivery will happen when the event dispatcher on
the main thread gets there.

Change-Id: I8197d2dc4805cda684a8279ceb8d4b317f19aba7
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-03-13 21:11:55 +01:00
Frederik Gladhorn 76ddc9bc0c Autotest details of QAccessibleEvent.
Change-Id: Ieec33c23e7b18cfedf061088d6561203a5e7ac39
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-03-13 10:11:22 +01:00
Lars Knoll d5098f2802 Merge remote-tracking branch 'origin/master' into api_changes
Conflicts:
	tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp

Change-Id: I884afc3b6d65c6411733a897a1949e19393573a7
2012-03-12 21:03:49 +01:00
Frederik Gladhorn ca737f566b Use QAccessibleEvent in test.
Change-Id: I4f9c0f503543caa5704a29c8ccd7c4134b455625
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-03-12 15:34:06 +01:00
Jason McDonald a4c0109e01 testlib: Improve formatting of QCOMPARE failure messages.
Make the various versions of the failure message align consistently so
that it's a little easier to compare the actual and expected values.  Of
course, the value won't align nicely unless the "actual" and "expected"
strings are the same length, but at least this commit makes that
consistent across all versions of the message.

Change-Id: If9ce231df3b5d279a06f6458fdb5da0aa4586068
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-03-12 01:50:20 +01:00
João Abecasis 79f2480c86 Merge remote-tracking branch 'origin/api_changes' into containters
Conflicts:
	src/corelib/kernel/qmetaobject.cpp
	src/corelib/kernel/qvariant.cpp
	src/tools/moc/moc.h

Change-Id: I2cd3d95b41d2636738c6b98064864941e3b0b4e6
2012-03-08 12:02:41 +01:00
Jason McDonald d78fab531a testlib: Make QTestResult::verify() more robust.
The statementStr parameter should always be non-null, so assert if it is
null.  The description parameter can be null in some cases (particularly
when the verify is successful, and thus no error description is going to
be displayed), so tolerate this.

Change-Id: I87b416d5f3b793bc608cd4aca14a4f7fe7527488
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-03-08 07:30:36 +01:00
Jason McDonald d81b065bb3 testlib: Improve verbose and XPASS output
Previously, verbose (-v2) and XPASS test output showed all QCOMPAREs as
"COMPARE()", making it impossible to see what was compared and difficult
to match the output to the source of a test containing many calls to
QCOMPARE.

This commit changes testlib's internal compare_helper API so that string
representations of the compared expressions are always passed to
QTestResult::compare() when available, and can thus be shown in the
verbose and XPASS output.  The XPASS output has also been changed to
state explicitly that the comparison succeeded unexpectedly, bringing it
in line with the XPASS output resulting from a call to QVERIFY.

This commit also changes all calls to compare_helper() to call the
eight-argument version of the function, which simplifies much of the
calling code.  The now obsolete four-argument version of
compare_helper() has been changed to output a warning that it is
obsolete.  It will be removed once other modules have had some time to
catch up.

The improved XPASS and verbose output is demonstrated by the expectfail
and verbose2 selftests.

Change-Id: I8baa46d5dd30e6c43b26f366c34dc5b64aab5f7c
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-03-08 05:31:40 +01:00
Jason McDonald 0eb95222ac testlib: Document a known limitation of QFINDTESTDATA.
Change-Id: I72740e394bfe2a95f5b48566b29c9ef9200a8035
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-03-08 05:31:40 +01:00
Miikka Heikkinen 7bc576771d Fix sending simulated keyboard events to popup widgets
Popup widgets steal the keyboard grab stealthily without it being
visible via QWidget::keyboardGrabber(). To more accurately simulate a
real keyboard event, prioritize sending simulated keyboard events to
the active popup widget over QGuiApplication::focusWindow().

Task-number: QTBUG-24326
Change-Id: Id7a75c613d934e24657b521f1684ce7cce92556a
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-03-07 16:37:55 +01:00
Lars Knoll 96232be146 Merge remote-tracking branch 'origin/api_changes'
Conflicts:
	dist/changes-5.0.0
	mkspecs/features/qt_module_config.prf
	qmake/project.cpp
	qmake/property.cpp

Change-Id: I6e4af40743a9aeff8ed18533a48036e332acc296
2012-03-04 21:45:05 +01:00
Casper van Donderen 95d83cb1b6 Remove the usage of deprecated qdoc macros.
QDoc now has support for Doxygen style commands for italics, bold
and list items. This change applies that change in QDoc to the
actual documentation.

Task-number: QTBUG-24578
Change-Id: I519bf9c29b14092e3ab6067612f42bf749eeedf5
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-03-02 23:16:25 +01:00
Jędrzej Nowacki 362bde8e8e Introduce QMetaType::UnknownType.
QMetaType::Void was ambiguous, it was pointing to a valid type (void)
and in the same time it was signaling errors in QMetaType. There was
no clean way to check if returned type was valid void or some
unregistered type.

This feature will be used by new QMetaObject revision which will
store type ids instead of type names. So it will be easy to
distinguish between:
 void mySlot();
 MyUnregisteredType mySlot();

Change-Id: I73ff097f75585a95e12df74d50c6f3141153e771
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-03-02 12:57:29 +01:00
Jason McDonald 51296085b9 testlib: Improve documentation of verbose test logging options.
Change the help output to show which options only work for plain text
logging.

Change-Id: I39eb7cd0793cdbe553c230334c6cd532b4929f61
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-03-02 01:06:22 +01:00
Olivier Goffart eb4828bbfd Add operator<<(QTestData &, QStringBuilder)
So this code still compiles with QStringBuilder
QTest::newRow("foo") << foo + bar;

Change-Id: Ie82a21c8fd07ec2d27ad85015aa1a0c4e94700d6
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-02-29 17:29:33 +01:00
Kent Hansen 96f2365cf4 Rename QMetaMethod::signature() to methodSignature()
In Qt5 the meta-data format will be changed to not store the
method signature string explicitly; the signature will be
reconstructed on demand from the method name and parameter type
information.

The QMetaMethod::signature() method returns a const char pointer.
Changing the return type to QByteArray can lead to silent bugs due to
the implicit conversion to char *. Even though it's a source-
incompatible change, it's therefore better to introduce a new
function, methodSignature(), and remove the old signature().

Task-number: QTBUG-24154
Change-Id: Ib3579dedd27a3c7c8914d5f1b231947be2cf4027
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
2012-02-29 12:50:14 +01:00
Rohan McGovern 98dd1781d9 Merge master -> api_changes
Includes fixes for tst_qfiledialog2, tst_qtextedit autotests on mac.

Change-Id: I49cac26894d31291a8339ccc1eb80b6a940f0827
2012-02-29 09:23:14 +10:00
Jason McDonald cbc777374a testlib: Improve the silent logging mode
Previously the silent logging mode suppressed passes, skips and internal
testlib info messages, but did not suppress debugging output, making it
hard to see the fails in a noisy test.  This commit changes silent mode
so that it suppresses all output except test failures and fatal errors,
making silent mode truly useful for seeing just the important test
output.

This commit also adds a selftest to verify the behaviour of silent mode.

Change-Id: I75420aead03682306210746a87e2a3b608b58fc6
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-02-28 05:56:03 +01:00
Jason McDonald 8cacf68cdf testlib: Remove commented-out code from plain text logger.
Change-Id: Ica2e294d1f08cac4697d037dbc2803012e0ba58a
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-02-28 05:55:56 +01:00
David Faure 3d3b3de83a QtTest: add missing \since 5.0 to the new macros
Change-Id: I8f7060c41df1e0bf1a8c35930400a31a4239a3d6
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-02-27 13:55:21 +01:00
Olivier Goffart 67ac8d72d5 QTestlib: no need to use the preprocessor to distinguish qreal
The code paths are actually the same, so merge them.

Change-Id: I456b8a9a825cccdd80cd6a52a0a6737cde252363
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-02-27 11:30:31 +01:00
Oswald Buddenhagen d91cf1e53b clean up qmake-generated projects
remove "header" and assignmets which are defaults or bogus,
reorder some assignments.

Change-Id: I67403872168c890ca3b696753ceb01c605d19be7
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-02-24 05:18:30 +01:00
Caroline Chao 949b7452e0 CodeCoverage: Move installCoverageTool call.
Call it from qtest_qParseArgs() instead of qExec(). This will allow to
remove the code coverage calls from quicktest.

Both the installation and the saving of code coverage data are now
gathered in testlib.

Change-Id: If3baedb0cff9d894e6f232b947af7e3158703d9d
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-02-22 07:25:49 +01:00
Konstantin Ritt 432a756048 replace 'const QChar &' with 'QChar ' where appropriate
as QChar is actually an ushort and there is no point in taking its
address.

Merge-request: 69
Change-Id: Idcc9d621e5627514ade006aa12a789a88929d48b
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-02-21 21:05:25 +01:00
Kent Hansen 989670737f Use QMetaMethod::isValid() to check method validity
The signature() method will soon be replaced by a function that
returns a QByteArray rather than a pointer, and calling it will be
more expensive than calling isValid(). Plus, isValid() looks nicer.

Change-Id: I6844988c84dcadf876fc86bc71c8b310a21f88de
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@nokia.com>
2012-02-20 11:29:03 +01:00
Jason McDonald eb52d78e90 testlib: Report one test result per benchmark test.
Prior to this commit, a benchmark test could report 0..n passes and 0..m
fails or skips, where n is the number of accumulation iterations used to
collect benchmark data and m is the number of times the test function
was invoked.  Depending on the type of benchmark measurer being used,
this could result in a very large volume of test output and inconsistent
pass, fail and skip counts between test runs.

This commit changes the behaviour so that each benchmark test reports
one pass, fail or skip, regardless of the number of iterations used to
collect benchmark data.

This commit also prevents benchmark data being reported in the test
output if the benchmark test failed or skipped, as any benchmark data is
of dubious value in such cases.

The latter change in behaviour requires a minor modification to the
badxml selftest, which now tests quoting of literal strings in xml test
output for both passing and failing benchmarks.

Finally, this commit also adds a new selftest specifically for verifying
correct behaviour for benchmarks that fail or skip.

Task-number: QTBUG-24313
Change-Id: I3426dc659a7511b62fd183a031c7235bc753f497
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-02-20 08:05:58 +01:00
Jason McDonald f64f428b81 testlib: make XPASS output slightly less confusing.
Prior to this commit, when an unexpected pass occurred the test output
showed the message "XPASS : tst_foo::function() 'expr' returned FALSE",
where the problem was actually that the expression evaluated to true
when it was expected to be false.

This commit changes the output to make it clear that the expression
evaluated to true unexpectedly.

Task-number: QTBUG-22118
Change-Id: Id22c178073d3b75789675ca37a8ef019029b1f91
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-02-20 03:27:02 +01:00
Bradley T. Hughes f0f78eb0a9 Remove usages of QT_ARCH and QT_ARCH_* from qtbase
The architecture is detected at compile time based on the predefined
macros from the compiler. Don't use QT_ARCH in .pro, .pri, or .prf
files.  The PNG_NO_ASSEMBLER_CODE define from libpng.pri is not present
in the current copy of src/3rdparty/libpng, so no change in
functionality is expected.

The conditional for the SUPPORT_JIT define in pcre.pri is moved to
src/3rdparty/pcre/config.h, again so that we can use the compiler's
predefined macros to detect the architecture at compile time.

Replace QT_ARCH_ARM, QT_ARCH_MIPS, and QT_ARCH_SPARC with their
Q_PROCESSOR_* equivalents.

Replace QT_ARCH_INTEGRITY, QT_ARCH_VXWORKS, and QT_ARCH_WINDOWSCE with
their Q_OS_* equivalents.

Note that this commit also effectively disables the SPARC atomic
implementation. An inline implementation for SPARC needs to be added,
or we remove the current code and instead rely on the GCC intrinsic or
C++11 std::atomic support on SPARC.

Note also that this commit does not remove QT_ARCH from configure or
qconfig.h. This will continue to be set until all Qt 5 projects can be
moved away from using QT_ARCH.

Change-Id: I5de747cc4436d21941329974cff3016970f497b8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-02-17 08:22:43 +01:00
Marc Mutz d94ab97b77 [QTBUG-22847] Compile with C++11 compiler
C++11 supports user-defined string literals, which makes
the C++98-accepted literal string concatenation sequence
  "foo"MACRO
illegal under C++11.

The solution is to add whitespace between the string
literal and the macro. For symmetry, this patch adds it
on both sides.

Change-Id: Ie0c698f610986c4d1b12dc2083489043b696936d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-02-17 05:27:25 +01:00
Jason McDonald 64642a4d97 testlib: Skip test function if init() fails.
Prior to this commit, the following statement in the qtestlib
documentation was untrue: "If init() fails, the following testfunction
will not be executed, the test will proceed to the next testfunction."
If init() called QSKIP, the test function would be skipped, but if
init() reported a failure, the test function would still be executed
(even though doing so could be unsafe).

This commit makes testlib skip a test function if init() reports a
failure and enhances the selftests to cover skips and fails in both
init() and cleanup().

Task-number: QTBUG-20371
Change-Id: Id1cc8464ae0b8c257ae1b74dbe9189a501f5366b
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-02-17 05:24:46 +01:00
Jason McDonald 9864241309 testlib: Remove obsolete version of QSKIP macro.
A variadic version of the QSKIP macro has been left in qtestlib for
a transitional period to give upstream projects time to catch up with
the removal of the function from the API.  This transitional period is
now finished.

Task-number: QTBUG-21652
Change-Id: Ib1a9158c2efbae05ffd0e69e72879f6387d4b2e8
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-02-16 02:00:42 +01:00
Jason McDonald 45cf303d3a Remove code related to test location.
Testlib no longer does anything with the test location, and neither do
any of Qt's tests, so the code is no longer needed.

Change-Id: I1a464116179f3e26efadad6901f00f3c33e0ce84
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-02-16 02:00:37 +01:00
Jonathan Liu 9c23257fe4 Fix compilation with MinGW
Some headers and constants are available in MinGW-w64 that are not
available in the official MinGW. STATE_SYSTEM_HASPOPUP and
STATE_SYSTEM_PROTECTED constants are defined if they are not already
defined by including oleacc.h. _CrtSetReportMode is not used and
crtdbg.h is not included when using official MinGW as crtdbg.h is
missing from official MinGW.

Change-Id: Ie7f3f3726a1663d0fdeb6ee17b86873ae3f61860
Reviewed-by: Jonathan Liu <net147@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-02-15 08:59:29 +01:00
Jonathan Liu f748875fa8 Add missing crtdbg.h include
_CrtSetReportMode requires crtdbg.h to be included.

Change-Id: I7e2cbdf7e3087bbe115cd6a51024422b619ac552
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-02-13 12:02:11 +01:00
Jason McDonald 9b2971cbb4 testlib: Count passes, fails and skips consistently.
For data-driven tests, testlib previously counted one fail or skip for
each data row that failed or skipped, while it counted only one pass
for a test function where all rows passed and counted no passes for a
test function where some rows passed and some rows failed. A similar
problem also existed for benchmark tests, which could run multiple
iterations of the same test, with each fail and skip being counted but
only a single pass being counted for the entire series of iterations.

This commit makes testlib count one pass, fail or skip for each data
row.  Test functions that are not data-driven count one result for the
test function, as before.  Benchmark tests count one pass, fail or skip
per iteration.

A side-effect of this change is that the test output in plain text, xml
and light xml formats now shows a result for every data row and
benchmark iteration executed, allowing post-processors to correctly
calculate the total number of tests executed.  Previously, individual
rows were not shown in the test output if they passed, making such
calculations impossible.

The only change to the xunitxml output format is to correct a bug where
no test result was recorded for a test function if the last data row
was skipped and all other rows passed -- in which case the overall
result should be a pass.  Note that there is also a pre-existing bug
in the xunit logger, where no result is reported if all rows are
skipped; that bug is unaffected by this commit.

Task-number: QTBUG-21848
Task-number: QTBUG-22124
Change-Id: I7e17177e10d6e89e55b9684c159bd506f21d002b
Reviewed-by: Ed Baak <ed.baak@nokia.com>
2012-02-13 01:46:09 +01:00
Caroline Chao a6d3983ef6 CodeCoverage: Handle QTest based subtests.
Set QT_TESTCOCOON_ACTIVE environment variable when the coverage is installed
for a test and unset it when the coverage data is saved. Tests that run when
QT_TESTCOCOON_ACTIVE is set are subtests and will not be considered as
stand-alone tests for the coverage.

When a test is run as a subtest its coverage data will not be saved for
itself but for the main test it is merged with. Also its status will not be
reported since only the status of the main test is expected in the test report,
e.g. the test tests/auto/testlib/selftests.

Change-Id: Icfdf99300aae18040e1a3441a8af21f68df4c0db
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-02-12 23:25:19 +01:00
Andreas Holzammer e999156cb4 Disable Assertion messagebox for unittests.
A messagebox will be shown for an assertion in
debug mode. This introduces a need for user
interaction to proceed the execution of the
unit test. Setting the Report mode to debug,
will only print the assertion to stderr.

Change-Id: If8ae80ea96d6608cba77b9c6ca176f97d1680932
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-02-08 09:53:23 +01:00
Jason McDonald 26c41ed918 testlib: Clear ignored messages after every data row
Previously, ignored messages were only cleared at the end of each test
function, i.e. after all data rows were finished. This meant that if a
data row in a data-driven test function didn't cause all of the expected
messages to be generated, the remaining messages would be carried over
to the next data row.  This would result in errors about missing
messages being associated with the last data row rather than with the
correct data row.

This commit makes testlib check for missing ignored messages after
running each data row rather than only doing so after the last data
row.

This commit also adds a regression test to demonstrate that ignored
messages can no longer be carried over from one data row to another.

Change-Id: Ibee51aa6e96866fbcbcb4acee1a8340a86a6a4ba
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-02-08 03:13:23 +01:00
Jason McDonald da18ada6bf testlib: Clear expected failures after every data row.
Previously, expected failures were only cleared at the end of each test
function, i.e. after all data rows were finished.  This meant that if a
data-driven test function called QEXPECT_FAIL and then didn't perform
any further verification steps to trigger the expected failure, the
expected failure would be carried over to the next data row, probably
causing the first verification step in the test function to XPASS (with
a seemingly irrelevant error message) for the next data row.

This commit adds the new function QTestResult::finishedCurrentTestData()
to cleanup after each data row is executed.  This function treats calls
to QEXPECT_FAIL without subsequent verification steps as a test failure.

This commit also adds a regression test to demonstrate that expected
failures can no longer be carried over from one data row to another. If
run against the previous version of testlib, the new test would report a
pass instead of an error.

Change-Id: Ida5c7f080815b0dca9531131fed582b0918334cb
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-02-08 03:13:21 +01:00
Caroline Chao 36f5cc848d CodeCoverage: Save coverage data in QTestLog::stopLogging()
Currently when tests are crashing, aborting or hanging, their status are
reported with a status "Unknown" because SaveCoverageTool is never called
for them. The status of the test given by the coverage tool should be the
same as the one reported in the log output when the test is run. This change
will allow more accuracy in the status reported.

Add QTestResult::setCurrentAppname and QTestResult::currentAppname.
To retrieve the name of the current application running.

Task-number: QTQAINFRA-460

Change-Id: Icc476dc2d6cb28185e5447f1e79da6a8a31cad54
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-02-07 12:43:34 +01:00
Bradley T. Hughes f6f1a2dbc1 Revert "Put the generated <module>version.h into build tree"
After discussion with Liang, I'm reverting it as he requested. This change put every header into the SYNCQT.HEADER_FILES twice for in-source builds, and the qtMODULEversion.h header did not include a path component.

This reverts commit 2fbc45b58bba860abf67fb28aa1319c9f4ededaf

Change-Id: Ie84cef19193ce5e49072f1f67a41140d9d2673b8
Reviewed-by: Liang Qi <liang.qi@nokia.com>
2012-02-01 10:48:09 +01:00
Frederik Gladhorn bf9bdf5328 Use events for accessibility updates.
The problem with the old updates is that it was impossible
to send details about the update.
For the Linux implementation to work properly with AT-SPI I need to know
which state changed (currently I only get a generic "state changed" event)
or which part of the text was changed for long texts (imagine a word processor sending updates).

This also gives us more options when updating with events generated from not QObject based objects.

Change-Id: If0b6c83c523092565eb48e79f3f6de5a1b905ea8
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-01-31 12:02:33 +01:00
Robin Burchell e24021691f Revert "Revert "Blow up earlier when adding test rows without columns.""
The problem in qmltest has now been fixed by adding a dummy column, so this
should be good to re-add. See qtdeclarative change id
I1bfed663fa7b58d71e0cf898db6bd8ae61dae46b.

This reverts commit 963958b4f62513cbc76fb06920de80f7f906f523.

Task-number: QTBUG-23845
Change-Id: I4b6755d3ea97a4624480cc008d280fc8e33743a6
Reviewed-by: Jonas Gastal <jgastal@profusion.mobi>
Reviewed-by: Yunqiao Yin <charles.yin@nokia.com>
2012-01-31 04:55:02 +01:00
Jason McDonald 4c63838039 Remove pass/fail/skip count getters from QTestResult.
These functions are no longer used, as the counters have been moved to
QTestLog.

Change-Id: I7cd13fc92a18920706fcc712804c304f9c333969
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-30 16:40:14 +01:00
Jason McDonald 5635823e17 Remove "All rights reserved" line from license headers.
As in the past, to avoid rewriting various autotests that contain
line-number information, an extra blank line has been inserted at the
end of the license text to ensure that this commit does not change the
total number of lines in the license header.

Change-Id: I311e001373776812699d6efc045b5f742890c689
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-30 03:54:59 +01:00
Jason McDonald f323c700b8 Eliminate QTestResult::ignoreMessage().
The removed function was just a wrapper around QTestLog::ignoreMessage()
and was only called twice (once in qtestcase.cpp and once in
qtdeclarative).  Better to just call the desired function directly and
avoid the indirection.

Change-Id: Ib900f35f5d584e8f323cef9b0e7b4f8a507c199e
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-30 03:54:46 +01:00
Liang Qi 273715fc9b Put the generated <module>version.h into build tree
It was put in source tree before.

Task-number: QTBUG-20439
Change-Id: Ib52d9c2e83ae375aad259ddc74138bbc728b3ed0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-01-28 14:44:48 +01:00
Gunnar Sletta 4ecf82795d Remove use of QT_MODULE from library
These defines were there to aid in the commercial
licensing scheme we used long ago, and are no longer needed.

Keep a QT_MODULE(x) define so other modules continue compiling.

Change-Id: I8fd76cd5270df8f14aee746b6cf32ebf7c23fec7
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-01-25 10:19:44 +01:00
Robin Burchell 141e5c3878 Revert "Blow up earlier when adding test rows without columns."
This seems to break a number of tests using the qmltest library.
Functionality will be restored in a future commit, once the breakage has been
identified.

This reverts commit fdedb49b76.

Task-number: QTBUG-23845
Change-Id: I0ca4dbd54132e4250702f06738edbad5e8fc4f36
Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
2012-01-23 13:07:47 +01:00
Robin Burchell fdedb49b76 Blow up earlier when adding test rows without columns.
Previously, the assertation triggered was rather unhelpful:
 QFATAL : tst_QHash::qhash_qt4() ASSERT: "d->dataCount <
  d->parent->elementCount()" in file qtestdata.cpp,  line 88"

We now try a bit harder to be user-friendly.

Change-Id: I2e3a5ae27914d44fc1dc89af2a084e3d798fe221
Reviewed-by: Jonas Gastal <jgastal@profusion.mobi>
Reviewed-by: Giuseppe D'Angelo <dangelog@gmail.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-01-23 06:49:12 +01:00
Jason McDonald 629d6eda5c Update contact information in license headers.
Replace Nokia contact email address with Qt Project website.

Change-Id: I431bbbf76d7c27d8b502f87947675c116994c415
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-23 04:04:33 +01:00
Jason McDonald 8fbad679e9 Change QSKIP to fail for outdated tests.
Be more insistent that tests using the old two-argument version of QSKIP
should be updated.  After a grace period the warning will be removed and
incorrect usage of QSKIP will revert to a compilation failure.

Change-Id: Ifa19b856d9f45738bd9d790bb65a8741f965d0f4
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-18 02:10:09 +01:00
Jason McDonald 2ba0d1e550 Move pass/fail/skip counters from QTestResult to QTestLog.
This change will enable further simplification of QTestResult and
QTestLog in the future, including removing a circular dependency between
the two classes.

The "getter" functions in QTestResult are retained for now, but will be
removed in a future commit, once QtQuickTest has been changed to call
the getters that this commit adds to QTestLog.

This commit is adapted from an unfinished change by Henrik Hartz.

Change-Id: Ife7f80ac6a4310449a4712e96e0bea6c02139a5a
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-17 01:17:35 +01:00
Jason McDonald 51cb2dd00a Remove unused QTestResult::allDataPassed().
The removed function was private API and was not used anywhere in Qt.

Change-Id: Ia262d119ebba30f6968cb7145043475bf88ffa39
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-16 01:57:23 +01:00
Jason McDonald 1066d185a6 Rename QTestLog::addIgnoreMessage to QTestLog::ignoreMessage.
Change-Id: I4cfcd00d444d0812c58afab6ffd43dee37db1340
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-16 01:56:51 +01:00
Lars Knoll 265ce60718 Compile if the header files from QtWidgets are unavailable
Change-Id: I0a774fc1492e882bc6c02d913e6dace189fdb992
Reviewed-by: Kevin Simons <kevin.simons@nokia.com>
2012-01-12 14:50:28 +01:00
Friedemann Kleint 1fbe8242ec QStyleHelper: Base DPI-calculation on QScreen.
- Use qt_defaultDpiX() to obtain the resolution, which
  obtains it from QScreen. This implies that for X11,
  which previously used a hardcoded default of 96 DPI,
  the real resolution will be used (typically 75).

- Since many tests (layouts, graphicsview) contain
  test data for 96 DPI, add an attribute to
  QCoreApplication making it possible to set the
  resolution to 96 DPI for testing.

Change-Id: I77c8233a96b0d75de07406f58d48886a89c3de06
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-01-11 22:22:34 +01:00
Friedemann Kleint dc5ea80963 Tests: Remove duplicate QTRY_VERIFY/QTRY_COMPARE macros in bearer.
Introduce QTRY_VERIFY_WITH_TIMEOUT and QTRY_COMPARE_WITH_TIMEOUT
to be able to specify a timeout value.

Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>

Change-Id: Iaeaa4938eb14f2c431537055f626510cba183ce3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-01-10 19:54:03 +01:00
Stephen Kelly 7aeccb183a Remove the Q_TYPENAME define.
It is mostly not used (most places in Qt use typename directly), so
is already not very useful.

For example typename is used in:

QDataStream& operator<<(QDataStream& s, const QVector<T>& v)

Change-Id: I85337ad7d8d4ebbb424bfa2ab9a356456ff3e90f
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-01-08 23:54:56 +01:00
Jason McDonald 1fdfc2abfe Update copyright year in license headers.
Change-Id: I02f2c620296fcd91d4967d58767ea33fc4e1e7dc
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-05 06:36:56 +01:00
Friedemann Kleint bc8f25c7e6 QTestlib: Make QImage comparison more verbose.
Introduce a specialization for qCompare(QImage,QImage) that
checks isNull, size and format and outputs verbose messages.

Check isNull, size similarly for QPixmap.

Add an autotest:
- Add test to cmptest and make it a GUI application since
  QImage requires QGuiApplication.
- Make testlib/selftests capable of running X11-GUI applications
  by passing DISPLAY.
- Ignore stderr output for cmptest
- Add test data

Change-Id: I2b29c7822fbeedf2b22c90889739ed7ff859ce92
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2011-12-21 22:59:28 +01:00
Friedemann Kleint 5d4acbab0e QTestLib: Fix QFINDTESTDATA for Windows.
- Scan the parent directory of the executable if it is located
  in a 'Debug' or 'Release' directory
- Report with native separators in the log.
- Use the QString::arg() overloads with several string parameters.

Change-Id: I5ea84411e12978f8f958a0bce3ae10da44cc4e3f
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2011-12-21 22:59:13 +01:00
Robin Burchell a09fdd91cf Fix -tickcounter in qtestlib.
HAVE_TICK_COUNTER is supposed to be set (if possible) from cycle_p.h, so
guarding cycle_p.h's inclusion with HAVE_TICK_COUNTER ensures it will never be
set.

Change-Id: I6313d0a2efd47c89522623e8e7b3f505489ded90
Reviewed-by: David Faure <faure@kde.org>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2011-12-21 07:50:30 +01:00
Jason McDonald 85a77cd5c8 Retire QTest::pixmapsAreEqual().
QTest::pixmapsAreEqual() was left in the Qt4 API for compatibility with
some old tests written for Qt3.  QCOMPARE() is the preferred way to
compare QPixmaps and provides superior diagnostic output when a
comparison fails.

This commit removes QTest::pixmapsAreEqual() from the testlib API and
replaces the last few remaining calls with QCOMPARE.

Change-Id: I051c0e7d3bda072855fcd262d82e8e540619233b
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2011-12-20 06:17:42 +01:00
Jason McDonald e299832dbf Avoid confusing method overloading in QTestTable.
The private class had two append() methods, one appending a column and
one appending a row.  Use more meaningful names instead of overloading
orthogonal operations.

Change-Id: I97e0268d6cb289694557846f244fe770cf980aaf
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2011-12-19 04:43:38 +01:00
Jason McDonald f4ccbc2868 Avoid qDebug in verbose benchmark test output.
Use QTestLog::info() rather than qDebug() to output informational
messages from testlib.  Source file and line are deliberately omitted as
they would come from testlib rather than from a test program.

Change-Id: I7b479bba4d3d553c6fa846d8d5ea2c29a8ef42b8
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2011-12-16 02:43:46 +01:00
Jason McDonald 8c2727ac18 Switch off signal dumper when testing is completed.
Previously, if the signal dumper was switched on with the -vs
command-line switch, it would never be switched off again.

Change-Id: I192e188010471525723fad0844ff33e9482128ea
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2011-12-16 02:43:46 +01:00
Jason McDonald a925226d44 Remove Qt5 comment from qsignalspy.h.
The removed comment refers to a task in a bug tracker that no longer
exists.  The comment also mentions making (part of) testlib use Qt's
regular binary compatibility mechanisms, which is desirable in the long
term but not in scope for Qt 5.

Change-Id: I6f23a9a2c8a84e30afe2aeb5c53ea93c25ba6f11
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2011-12-15 08:15:13 +01:00
Jason McDonald 95cb93dc59 Fix incorrect function name in assertion.
Change-Id: I3eb8e7afe3f7ca514dd4839e603612b56c7d8082
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2011-12-15 08:15:08 +01:00
Jason McDonald a3109c8b0b Remove QTest::qt_snprintf() from testlib API.
This was an internal function that used to act like qsnprintf() but also
filtered unprintable characters out of the test output.  The filtering
has been moved somewhere more appropriate and this function is no longer
used by testlib.

Unfortunately, the function was exposed in the public API due to its
former use in the implementation of a public macro.

In the unlikely event that any code outside testlib calls this function,
the call should be replaced by calling qsnprintf(), which comes from the
QtCore/QByteArray header.

Change-Id: Iddc17b4361d16ebddd19346ae7d1064951dd7738
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2011-12-15 08:02:36 +01:00
Jason McDonald dc98d58562 Improve QTest::keyClick documentation.
Make it clear that the delay is applied before each key-click is
simulated.

Change-Id: Id100f1f2db1a5b1651c3046905719d7eb06ec1a0
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2011-12-15 01:57:57 +01:00
Jason McDonald 5b413852dd Update documentation of QTEST_MAIN macro.
Update the docs to describe the behaviour that resulted from moving the
traditional Qt widgets into a separate library from the rest of GUI
classes.

Change-Id: Ibd0ef05cc871b8f5a6700e421aa41bdf64c1210b
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2011-12-15 01:57:53 +01:00
Jason McDonald c45f9c7761 Improve QCOMPARE for QStringList
After establishing that both lists are the same size, there is no need
to calculate the minimum of the list sizes.  Also, use sizeof() instead
of hard-coded values when calling qsnprintf().

Change-Id: I2396cf3f941770229e1cef6422aeddbe549c51fc
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2011-12-15 01:57:48 +01:00
Laszlo Agocs 3064c1bc8c Remove redundant touch processing in QtGui and widgets.
The duplicated hash tables in QGuiApplicationPrivate and
QApplicationPrivate are now unified into one single hash table in
QGuiApplicationPrivate. This also reduced the number of lookups.

The extra processing needed to keep the touch points' first/lastPos
values in sync is now done only once, in QGuiApplication. This
eliminates the performance penalty (for widget-based apps) that was
introduced during the QPA migration.

As an added bonus the patch adds support for touch events arriving
simultaenously from multiple devices. This was broken before: As there
is no guarantee that two devices/drivers will not send touch points
with the same ID, using structures with only the ID as key is
wrong. The proper key is composed of the device ID (that is, a
QTouchDevice pointer) and the touch point ID.

The exported internal function qt_translateRawTouchEvent() has been
removed. This function cannot work properly in the QPA world: It
injected touches into the widget subsystem (QApplication) only which
is wrong, and would result in half-filled touch events due to not
routing the injected data through QGuiApplication. Autotests using
this function are migrated to
QWindowSystemInterface::handleTouchEvent().

Change-Id: I7632781d77f9e0ac4626fd7c9933511c94492156
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2011-12-14 13:17:19 +01:00
Jason McDonald 2395a3c897 Remove incorrect information from QCOMPARE documentation.
The documentation stated that QStringList objects would be compared
starting from the end of the lists.  The implementation in qtest.h
actually starts at the beginning of the list, and always has done since
qtestlib became part of Qt.

Change-Id: I056f584564d46402ba23fc6a89c801cb5c3c6262
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2011-12-14 09:27:04 +01:00
Jason McDonald d702da7482 Add missing assertion to QAbstractTestLogger.
If passed an empty string, QAbstractTestLogger::outputString() would
crash, so add a QTEST_ASSERT to make the cause of any crashes more
obvious.

Change-Id: I00afe2e73120b87e211f858402d441f345dddd08
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2011-12-13 07:41:27 +01:00
Rohan McGovern 9f592dbd60 testlib: fixed actual, expected order in QTest::compare_helper
These two parameters were written in the opposite order in the
function's declaration and definition.  Harmless to the compiler,
but confusing to developers and reviewers.

Change-Id: I1d4cb0a41b465b5f918daa76756677fe0cfe0a59
Reviewed-by: Jason McDonald
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2011-12-13 05:19:08 +01:00
Laszlo Agocs 6f1c4fb342 Store the primary status in the touch point flags.
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>
2011-12-12 12:28:29 +01:00
Friedemann Kleint b9ebb65c77 Revert "Remove unused overload of QTest::qExec."
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 ad80d42f8e.

Change-Id: I2a2f91e2840100fd62743f6d03b33005d67b18f8
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2011-12-12 10:43:44 +01:00
Jason McDonald c07b840739 Remove -keyevent-verbose option for autotests.
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>
2011-12-12 08:50:55 +01:00
Jason McDonald 949aaf9a2a Stop using QTest::qt_snprintf() in testlib.
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>
2011-12-12 06:43:44 +01:00
Jason McDonald e179afdbb6 Improve definition of QTEST_NO_SPECIALIZATIONS
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>
2011-12-12 06:43:39 +01:00
Jason McDonald c5ee721795 Filter unprintable chars out of all test output.
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>
2011-12-12 05:01:00 +01:00
Laszlo Agocs 5da5230ab2 Remove event type parameter from handleTouchEvent.
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>
2011-12-09 16:35:43 +01:00
Laszlo Agocs 4222603f8e Extend touch events.
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>
2011-12-09 14:15:37 +01:00
Jason McDonald ad80d42f8e Remove unused overload of QTest::qExec.
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>
2011-12-08 03:04:55 +01:00