| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
* Compare old and new image sizes (to make it obvious if size is the
part that breaks)
* Make use of the new save() functionality to dump images when it fails
Task-number: QTBUG-53793
Change-Id: I772fe4078b5a2f87aa33ceab35103ff07ee19ab2
Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add some meta-information about the image that we can use to do slightly
stronger checks than just blindly poking pixel data (width & height
props).
In addition, when a test of a grabbed image fails (which they certainly do),
it is always nice if we can perform some diagnostics. To this end, add a
save() method to save the grabbed QImage to disk.
Tests for the new functionality are blacklisted on Linux at present, as they do
not yet appear stable, inheriting the other tst_grabImage flakiness.
[ChangeLog][QmlTest] The returned object from TestCase::grabImage now has
'width', 'height', and 'size' properties for additional verification. In
addition, there is a save() method to be able to persist the grabbed
image to disk (for diagnostics purposes, for example).
Change-Id: Ic651e0257102c514c39c3f648c05870f9d9c52e8
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
| |
If the test fails for some reason, ensure that they are cleaned up
properly by using TestCase's item creation instead of doing it directly.
Change-Id: I639bd246662260f31d5a32d140ee98ad11884446
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
I accidentally attributed this to the wrong BLACKLIST in
186cbe30939947e3a2d33b250fc861cbee361dfe, which meant that it was
running incorrectly.
Change-Id: I64b9d322829736da0a05b03ccacb4e08fff863df
Task-number: QTBUG-60343
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Running everything in one big process has high risks of problems caused
by globally mutable state. It also makes running small subsets of the
tests more painful than it needs to be.
Make use of the new QML-only test support in qtbase to have one project
per subdirectory instead. This means no more C++ "stub" binary (just run
make check or qmltestrunner in the directory).
This relies on qtbase/727da2965caa8bccf8bbfbdd571ed05b35251f82.
Change-Id: I0da70dba19aa54e456cd183b4b6b245ee20b1f3a
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
| |
Change-Id: I3299f602970067aaef290d4f1c7449d3ab03fb3c
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
| |
This matches the behavior seen from Component's createObject()
function.
Change-Id: I83fe73a588d04c5efd30c49059bb19e7584bef48
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Objects created with createTemporaryObject() and
createTemporaryQmlObject() can be destroyed manually before the test
ends. Before this patch, there would be a type error when trying to
check if the object still exists in qtest_destroyTemporaryObjects().
The error seems to stem from the fact that objects that are stored in
an array and later destroy()'d are not nullified, but rather left in
a corrupt state. See the linked bug for more information about this.
We work around this issue by checking for the existence of the
destroy() function on the object before attempting to call it.
Task-number: QTBUG-57749
Change-Id: I0f6ddd47d86af6fb87392c2992f9f6143af6aab8
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A typical pattern with QML tests is to dynamically create
an item and then destroy it at the end of the test function:
TestCase {
id: testCase
name: "MyTest"
when: windowShown
function test_click() {
var item = Qt.createQmlObject("import QtQuick 2.0; Item {}", testCase);
verify(item);
// Test item...
item.destroy();
}
}
The problem with this pattern is that any failures in the test function
will cause the call to item.destroy() to be skipped, leaving the item
hanging around in the scene until the test case has finished. This can
result in interference with future tests; for example, by blocking input
events or producing unrelated debug output that makes it difficult to
follow the code's execution.
By calling e.g. createTemporaryQmlObject() instead, the object is
guaranteed to be destroyed at the end of the test function:
TestCase {
id: testCase
name: "MyTest"
when: windowShown
function test_click() {
var item = createTemporaryObject("import QtQuick 2.0; Item {}", testCase);
verify(item);
// Test item...
// Don't need to worry about destroying "item" here.
}
}
[ChangeLog][TestCase] Added createTemporaryObject() and
createTemporaryQmlObject() functions that can be used to ensure that
dynamically created objects are destroyed at the end of each test
function.
Change-Id: I483342052462aa86464c86bf2082892712dceb58
Task-number: QTBUG-56361
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is useful for conditions which can't be tested using tryCompare.
One such situation is that of the currentItem property of ListView.
In Qt Quick Controls 2, the currentItem property of the ListView that
is internally a child of Tumbler can be null for a certain period of
time, so using tryCompare() would result in errors due to trying to
access a property of a null object:
tryCompare(tumblerView.currentItem, "text", "2")
The current workaround is to use wait(50) in a for loop, which is ugly
and could lead to flaky tests:
for (var delay = 1000; delay >= 0; delay -= 50) {
if (tumblerView.currentItem)
break;
wait(50);
}
verify(tumblerView.currentItem);
compare(tumblerView.currentItem.text, data.currentIndex.toString());
Using tryVerify(), we can first ensure that currentItem isn't null, and
then use a regular synchronous compare afterwards:
tryVerify(function(){ return tumblerView.currentItem; });
compare(tumbler.currentItem.text, data.currentIndex.toString());
[ChangeLog][QtTest][TestCase] Added tryVerify() function to allow
verification of asynchronous conditions that can't be tested using
tryCompare().
Change-Id: Ie93052b650f7fe0bf26853054a8f0f35a483e387
Task-number: QTBUG-19708
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
From Qt 5.7 -> tools & applications are lisenced under GPL v3 with some
exceptions, see
http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/
Updated license headers to use new GPL-EXCEPT header instead of LGPL21 one
(in those files which will be under GPL 3 with exceptions)
Change-Id: I04760a0801837cfc516d1c7c02d4f503f6bb70b6
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
|
|
|
|
|
|
|
|
| |
So qml test functions can be blacklisted. Qml test functions have the
following format: TestCaseName::functionName.
Change-Id: Ifcaa8d77d8f0956472aa568dc6dbfcbdde4e5063
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows for comparison of image objects returned from TestCase's
grabImage() function using QImage's operator== function. Doing pixel by
pixel image comparisons in QML is extremely slow.
This functionality is useful for checking that an item was redrawn
after a property change, for example.
[ChangeLog][QuickTest][TestCase] Added equals() function to image
object returned from TestCase's grabImage() function.
Change-Id: I0ece9df6effe2b1b9d8e1ee8ac011115d9367ef2
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Call wait(0) after the cleanup() function and not only at
the end of the test run (wait(0) is used to call processEvents()).
Otherwise, eventual destroy() calls in test function are not executed
between data tests.
Task-number: QTBUG-30523
Task-number: QTBUG-42185
Change-Id: I1d588ee28c61cda835e25307bc1c565d68b741fe
Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
| |
Q_GADGETs are not always QVariant::toString()-convertible
but they probably have their own toString() function that
we always try to call. This may still lead to false posi-
tives, but in a much smaller proportion.
Change-Id: I80547a9e773e97410fe5d4723efcac6b010046f9
Reviewed-by: Caroline Chao <caroline.chao@theqtcompany.com>
|
|
|
|
|
|
|
|
|
| |
Qt copyrights are now in The Qt Company, so we could update the source
code headers accordingly. In the same go we should also fix the links to
point to qt.io.
Change-Id: I61120571787870c0ed17066afb31779b1e6e30e9
Reviewed-by: Iikka Eklund <iikka.eklund@theqtcompany.com>
|
|
|
|
|
| |
Change-Id: I4ceb1a969bd4296b82f899088b02b5e8cf100bcd
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
|
|
|
| |
It previously used QObject::findChild(), which won't work in all cases,
because items like ListView don't seem to make their delegate items
QObject children, while simple nested Items do.
Change-Id: I1a8ed1fb55493212cb25abf595d016437812a80f
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
|
|
|
| |
- Renamed LICENSE.LGPL to LICENSE.LGPLv21
- Added LICENSE.LGPLv3 & LICENSE.GPLv2
- Removed LICENSE.GPL
Change-Id: I84a565e2e0caa3b76bf291a7d188a57a4b00e1b0
Reviewed-by: Jani Heikkinen <jani.heikkinen@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is useful for auto tests where it's necessary to have access to
dynamically created child items. For example:
property Component threeItemDelegate: Text {
objectName: "delegate" + styleData.index
text: styleData.value
}
...
function test_stuff() {
...
var delegate0 = findChild(item, "delegate0");
// check delegate0 for some condition...
}
[ChangeLog][QtTest][TestCase] Added findChild function to TestCase.
Change-Id: I04a8b07c9904768c07ec12f4b03f1afb1989e054
Reviewed-by: Liang Qi <liang.qi@digia.com>
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
|
|
|
|
|
|
|
|
|
|
|
| |
After destroy() been called in the test function.
wait(0) is used to call processEvents().
Task-number: QTBUG-30523
Change-Id: I208f213e2de6b530dd0965b301d046aee0182d9b
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
|
|
|
|
|
|
| |
Change-Id: I6c3bd7bebe3d62d1cfd0fa6334544c9db8398c76
Reviewed-by: Akseli Salovaara <akseli.salovaara@digia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
|
|
|
|
|
|
|
| |
Change copyrights and license headers from Nokia to Digia
Change-Id: Ie7f5d49ed8235d7a7845ab68f99ad1c220e64d5c
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
| |
Change-Id: I4834f4af0839fb89424ed25f0addfb618e5374f8
Reviewed-by: Yunqiao Yin <charles.yin@nokia.com>
|
|
|
|
|
|
|
|
|
| |
1. should not use hasOwnProperty, replace it with 'in'
2. the default init_data() method is unnessary
3. when init_data() returns empty, the test function should run in non data driven mode
Change-Id: I8cb19d3499b285d07c8b3d04abd9ddf33b1c5395
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
|
|
|
|
|
|
|
|
|
|
| |
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: If39bd256b0fa85eba17ea30f8ab87ea27d758908
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
|
|
|
|
|
|
|
|
| |
Replace Nokia contact email address with Qt Project website.
Change-Id: I6a730abc0c396fb545a48b2d6938abedac2e3f1c
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
|
|
|
|
|
|
|
|
| |
Update copyright headers from before 2011, and a couple of new ones that
were merged after the previous change to copyright headers.
Change-Id: Ia76e08e2734afa4ef3f1207dbcda5ff3bc81b366
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
|
|
|
|
|
|
|
|
|
|
| |
The SkipMode parameter to QSKIP has been removed in qtbase, therefore it
must also be removed here.
Task-number: QTBUG-21851, QTBUG-21652
Change-Id: I8016f8c28338b1b532bdb593c796d699b99250dc
Reviewed-by: Charles Yin <charles.yin@nokia.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
|
|
|
|
|
|
|
| |
Change-Id: If814516b1094b85fba46e215b44e1a2b582179c5
Reviewed-on: http://codereview.qt.nokia.com/1858
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Charles Yin <charles.yin@nokia.com>
|
|
|
|
|
|
|
|
| |
Replace old license header with correct one.
Change-Id: I492ddaaa0227b2c8faf11bdcd6e12e7231a54a10
Reviewed-on: http://codereview.qt.nokia.com/1312
Reviewed-by: Jyri Tahtela <jyri.tahtela@nokia.com>
|
|
Change-Id: I558821c0dec9166ea1d0d2e1e2f889553c436316
Task-number:QTBUG-16082
|