Versions 1.4.0 to 1.5.2 of libpng declare png_longjmp_ptr to
have a noreturn attribute if PNG_PEDANTIC_WARNINGS_SUPPORTED
is enabled, but most declarations of longjmp in the wild do
not add this attribute. This causes problems when the png_jmpbuf
macro expands to calling png_set_longjmp_fn with a mismatched
longjmp, as compilers such as Clang will treat this as an error.
To work around this we override the png_jmpbuf macro to cast
longjmp to a png_longjmp_ptr.
See also http://llvm.org/bugs/show_bug.cgi?id=10338
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
Change-Id: I197cfa12af76410310e409bc0fce7d4332ee66a6
Reviewed-on: http://codereview.qt.nokia.com/3929
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Merge-request: 1254
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
(cherry picked from commit 31ff55bbeb84f10e75e997c75a63deda83e62507)
Change-Id: I0644514299c16cabe19d1e6d024dd652b2d7bc4e
Reviewed-on: http://codereview.qt.nokia.com/3933
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
Merge-request: 1254
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
(cherry picked from commit 9aeadca09ab4e27ebf299873f90490d585b4fb7f)
Change-Id: Ib0f035ac15ad0cc6be52807e8101f5dcfb5b041b
Reviewed-on: http://codereview.qt.nokia.com/3932
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
This will help abstracting the platform specific parts of QMenuBarPrivate in a
common interface.
Merge-request: 1254
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
(cherry picked from commit 68d633cc840c5526a0ad77985404f53ada6ba91a)
Change-Id: I733b8dfb71ae0dc78536cfe48b466394206d1de3
Reviewed-on: http://codereview.qt.nokia.com/3931
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
Merge-request: 1254
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
(cherry picked from commit b4ddcbbf1ce067a823815c07a357a065be731d48)
Change-Id: I809de3c201f47cd8936845447ad60b00cf4c0db7
Reviewed-on: http://codereview.qt.nokia.com/3930
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
The toUpper/Lower() methods in QString should not
be locale dependent, as this can lead to rather
hard to find bugs in at least a turkish locale.
Rather have explicit, locale dependend case conversions
available in QLocale.
Reviewed-by: Denis Dzyubenko
(cherry picked from commit da0e1e101bb4c44c25b6523357fa81ad1b2d6539)
Change-Id: I1cc3f341bef17ad573a736dc94c9c5d514ace54e
Reviewed-on: http://codereview.qt.nokia.com/3259
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
The code was mispositioning lines by half a pixel, as it
added half a pixel offset and then rounded in addition.
This submit fixes this and also removes certain artifacts when
drawing rects at .5 pixel positions.
Lance now doesn't show any significant differences to the
4.7 rendering anymore.
Task-number: QTBUG-20199
Reviewed-by: Aavit
(cherry picked from commit 49409f612c47f30434aa809e4d2c963f1a6bb88a)
Change-Id: Iab3936e688eba16b82f5cdb4f36f54af807d78ea
Reviewed-on: http://codereview.qt.nokia.com/3260
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
The newer test logger did not produce the same light XML output as the
logger that it replaced. In particular, it did not output the <DataTag>
tag and it incorrectly nested a <Message> tag inside the <Incident> tag
when a fatal error occured in a test.
Unfortunately, it appears that the expected lightxml output for the
selftests was produced by running tests using the newer logger, while
the selftests did not use the older lightxml logger. Thus the errors
were not detected by the selftests.
This commit adds the older lightxml logger to the selftests, updates the
expected test data accordingly, and modifies the newer lightxml logger
to behave correctly. This last item is achieved by making the lightxml
streamer copy most of the code from the xml streamer -- lightxml output
is supposed to be same as xml, except for the omission of the root and
<TestCase> tags.
Change-Id: Ie6e1f69dd6000df2b9d0c5c8e2109fe7bbff3956
Reviewed-on: http://codereview.qt.nokia.com/3902
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
For XML logs, an Incident tag with no sub-tags has a space before the
closing slash. For Light XML logs, this space was missing unless the
-flush command line option was supplied.
Change-Id: I6de2e140f9309f333b5b97ed7f8116e4e727a149
Reviewed-on: http://codereview.qt.nokia.com/3871
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Remove the undocumented feature that allows test functions to be
executed in random order. The feature was designed to expose unintended
dependencies between test functions -- test functions are only supposed
to depend on the initTestCase() and init() functions.
Aside from the lack of documentation, there are a number of problems
with this feature. Most importantly, running the tests in random order
has only a 50% chance of exposing dependencies between test functions.
A better strategy would be to run the test functions in reverse order
and complain if that produces different results to running the tests in
the normal order.
Additionally, the random order is not deterministic, so even if a
dependency is exposed during a test run, there's no guarantee that it
will be exposed again. The feature allows the user to optionally
supply a random seed to make the "random" order deterministic, but as
rand() implementations are not identical across platforms, even that
does not guarantee that dependencies between test functions will be
exposed deterministically.
Change-Id: I39eac34c532ccb988116778bbc5ab05d835874c5
Reviewed-on: http://codereview.qt.nokia.com/3720
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
blacklist the leaf certificate for now. There might well be more fake
certificates in the wild, for that either the Diginotar.nl root cert
needs to be disabled on the system or OCSP would need to be enabled
(not supported by Qt yet).
Reviewed-by: Richard J. Moore <rich@kde.org>
(cherry picked from commit 70f6a1b91b242174682c30be976c2aa36c450cc7)
Change-Id: I7cd3fdc4c6e85202914764f983a60d301e54aa35
Reviewed-on: http://codereview.qt.nokia.com/3893
Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
For the Happy eyeballs implementation we use two channels for the case
where a host lookup gives us both Ipv4 and Ipv6 addresses.
In the case where the Connection is setup to only use one channel
we can not use this solution, so in this case we should use the old
way of connecting with one channel.
Task-number: QTBUG-20981
Change-Id: I6590fb4c67d6a8261cd0e4da8f99cd3603bbb524
Reviewed-on: http://codereview.qt.nokia.com/3524
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
For property notify signals, QtDeclarative can manage connections
in a more special case - and more performant - way. This patch
adds a callback hook so that QtDeclarative can intercept signals
being emitted by declarative objects.
Change-Id: I72554e80df0a4257da65d81cc1c5db88a11446a4
Reviewed-on: http://codereview.qt.nokia.com/3363
Reviewed-by: Martin Jones <martin.jones@nokia.com>
This adds Aaron's copy of V8 to src/3rdparty/v8 (as a
git submodule), and builds it as a "normal" Qt library
(without any dependencies on Qt itself).
The library can be added to a project with
QT += v8-private
V8 API headers are available as private includes, e.g.
#include <private/v8.h>
The API is private because we're exposing a third-party
API directly, and we don't want to (and cannot) make
source or binary compatibility guarantees for it.
Since we want the V8 public API headers to be private
headers in Qt, syncqt and sync.profile were extended to
understand a new configuration option, the
@allmoduleheadersprivate array, that tells syncqt whether
all the library headers should be treated as private even
though they don't follow the _p.h Qt convention.
The V8 project files, patches and autotests are copied
from the QtDeclarative repository. The next step after
this commit is to remove QtDeclarative's copy of V8 and
link with QtV8 instead.
Task-number: QTBUG-20963
Change-Id: Ib8820362cdbc8fa662a5e97db841656cf38d1b62
Reviewed-on: http://codereview.qt.nokia.com/3092
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Tests that are expected to return a non-zero exitcode should be marked
with "CONFIG+=insignificant_test" in their .pro file.
Change-Id: Iebb9c7129c08833ed517115f569086d6fcfe827b
Reviewed-on: http://codereview.qt.nokia.com/3689
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
The constructor asserts if either parameter is null, so having defaults
seems to be pointless.
Change-Id: I8cec52e17e5f94458e8d8323855eaed6433686e7
Reviewed-on: http://codereview.qt.nokia.com/3644
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
QTEST_EMBED is not defined in Qt itself, nor is it defined by any of the
CI builds for Qt's supported platforms.
Change-Id: I73a3979630130fc8f1ef99dcbc17b4d1875ba246
Reviewed-on: http://codereview.qt.nokia.com/3641
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
The charting functionality was removed in Qt 4.6, though the
command-line option was retained to print a warning that the feature had
been removed. Sufficient time has passed for this to be removed
completely.
Change-Id: I2adf2818c6a6e57e765104de97b28dbf6914e3fa
Reviewed-on: http://codereview.qt.nokia.com/3638
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
The commit changes printf's that output error and warning messages to
send their text to the stderr stream. Non-error output, such as that
produced by passing the -help option to a test, still goes to stdout.
Change-Id: Iea4d62451e3e7e84c654859cb09ea7e717511d13
Reviewed-on: http://codereview.qt.nokia.com/3636
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
QTestLogger was counting various test outputs, but was only using three
of the counters internally and the rest were not used at all. This
commit removes the unused counters and all of the getter methods.
Change-Id: I447183dcaf3e6cc335bbf58656e25b1d32ba810a
Reviewed-on: http://codereview.qt.nokia.com/3437
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
The setLogFormat() and logFormat() methods are never called -- the log
format is set in the call to the constructor and it would not make sense
to change it during a test run.
Change-Id: I59256f17f28bbc72d86cabfb2a961d2faf0e2d52
Reviewed-on: http://codereview.qt.nokia.com/3435
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
QTestLog is an entirely static class and its constructor and destructor
are declared private to prevent accidental construction of an instance
of the class. Therefore, the constructor and destructor do not need to
be defined.
Change-Id: I860f1344c5032091f5c641a20e1656bb52a6f07e
Reviewed-on: http://codereview.qt.nokia.com/3466
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
For both QTestLog::addFail() and QTestLog::addIgnoreMessage(), passing
a null message does not make sense and is therefore an error that
should be brought to the developer's attention.
Change-Id: Ib09ad90b70d74f7432c08708db8a70dee008cce4
Reviewed-on: http://codereview.qt.nokia.com/3470
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
The mode parameter is never used by the logging code, so there's little
value in passing it there.
Change-Id: Ibe2cbe5eaf457a7e3ffd3aea3a4be7c8278c91b6
Reviewed-on: http://codereview.qt.nokia.com/3547
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
This class is not very useful -- it just creates a text file that
records each occasion that an autotest enters a test function as a
stop-gap solution for the fact that the newer XML logger produces no
output if the autotest fails to terminate gracefully. Addressing
QTBUG-20615 will provide a better solution by allowing the user to get a
partial plain text test log in those circumstances.
Change-Id: I179bb98dbd696d0734cd3f12046e5c567def30cc
Reviewed-on: http://codereview.qt.nokia.com/3390
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
It doesn't make sense to change the logger associated with a streamer in
the middle of a test run, so only allow the logger to be set when
constructing a streamer.
Change-Id: I02661de2b6071c74d10bc854cbe436581978d2d9
Reviewed-on: http://codereview.qt.nokia.com/3622
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Previously QAbstractTestLogger used a global variable for the file
pointer to which it was writing test output. This effectively meant
that only one instance of this or its derived classes could exist at any
time.
This commit moves the file pointer inside the class, so that multiple
loggers can exist at the same time. This means that the outputString()
method can no longer be static, which in turn means that several
functions used by QPlainTestLogger need to move from the QTest namespace
into the class, and also that QTestBasicStreamer must hold a non-const
pointer to its associated logger instead of a const pointer.
Task-number: QTBUG-20615
Change-Id: If941f1f9399cf20fb93e3e87f3390bceeca1cbfc
Reviewed-on: http://codereview.qt.nokia.com/3576
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
This feature was undocumented and only worked if a secret environment
variable was set, the test output was going to a real console, and plain
text test results were being generated. Including code in testlib for
fancy presentation of test results conflicts with testlib's stated goal
of being a lightweight framework where every feature contributes to
finding bugs, so this feature is being removed. If fancy presentation
of test output is required, it should be achieved by post-processing the
test output outside of the test framework.
Change-Id: I872165c4d2c3d2498c3aa039070ecf319e237ca1
Reviewed-on: http://codereview.qt.nokia.com/3432
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Pass the output file name from the QTestLog to the test logger when
commencing logging rather than having the logger call back into the
QTestLog.
Change-Id: Id484635f9fcfca08a66c92f3442887e9473b6f9b
Reviewed-on: http://codereview.qt.nokia.com/3454
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
The method is called when the text of a label is changed and setAccessibleName has
not been called on the label, as the text of the label acts as the accessible name
of the label.
Merge-request: 1301
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
(cherry picked from commit a1f2b68e97477440cf508e6d497eb5f5d9971971)
Change-Id: Ic10f75e72ac3faa84777c444177b287b720a1dc2
Reviewed-on: http://codereview.qt.nokia.com/3040
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
Q_GLOBAL_STATIC may be destroyed and we still send
ObjectDestroyed notifications.
This only shows now that we actually send the Destroyed notifications.
Change-Id: I3057556cdc897dab6adfc3274e4abc68473ffa7f
Reviewed-on: http://codereview.qt.nokia.com/3657
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
Easily reproducible by testing Chinese with the threaded
renderer. The multi engine would then have a list of engines
with a single item, but the glyphs might belong to e.g. engine
11. In that case, engine() would assert when it couldn't find
the engine if the layout had been done in a different thread.
We force the loading of the required engine if it's not already
loaded.
Note that this fix does not work on Mac, as loadEngine() will
crash there, so the layout has to be done in the same thread
as the rendering, since loading the engines is part of the
layout process.
Task-number: QTBUG-21112
Change-Id: I71cc396664e3b95fbb4815a90873457e1f89528e
Reviewed-on: http://codereview.qt.nokia.com/3631
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
use qBinaryFind() with a case-sensitive string comparison
instead of QHash. This also improves startup time and reduces
runtime memory consumption.
Change-Id: I5c5f7cae5e42acb3fa727acac19fe39c53310329
Reviewed-on: http://codereview.qt.nokia.com/3673
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
replacing the if-else trees with the switch statement
gives a 2x-3x parsing performance boost on parsing these
expressions.
Change-Id: Ia0e76ae4e1ab6930dbecf1d4a5232a4cc7198654
Reviewed-on: http://codereview.qt.nokia.com/3672
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Instead of using the file output functions inherited from
QAbstractTestLogger, QTestLogger relied on QTestBasicStreamer having a
copy of these functions. This commit removes the copied functions from
QTestBasicStreamer and makes it and QTestLogger use the original
functions from QAbstractTestLogger.
Change-Id: Icac1ae9d85cd39efd4c67c79104404dd56766b17
Reviewed-on: http://codereview.qt.nokia.com/3565
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Since the trailing space is included in the QScriptLine, it may affect
the positions of preceding script items when the text is RTL. The best
solution for this would be to disregard the trailing space in the layout
process, or somehow make it have an advance of 0 so it doesn't affect
the layout. However, to minimize the impact of the change, and to be
consistent with previous work arounds such as
bf992df6434fc37715f728ca09601c5567dd83c9, we simply include the trailing
(visually leading) space in the justification pass for now.
Task-number: QTBUG-20920
Reviewed-by: Lars
(cherry picked from commit 1a8a36eb6b6df9e2550b5eaa4606f2d411fd4294)
Change-Id: I94972ebaea2e1bdb09950523c43844351b304abe
Reviewed-on: http://codereview.qt.nokia.com/3462
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>