ubuntu-sdk-bugs team mailing list archive
-
ubuntu-sdk-bugs team
-
Mailing list archive
-
Message #05966
[Bug 1549256] Re: UbuntuTestCase's flick() function is unreliable, does not always flick a Flickable
** Also affects: canonical-devices-system-image
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Ubuntu
SDK bug tracking, which is subscribed to ubuntu-ui-toolkit in Ubuntu.
https://bugs.launchpad.net/bugs/1549256
Title:
UbuntuTestCase's flick() function is unreliable, does not always flick
a Flickable
Status in Canonical System Image:
Fix Committed
Status in ubuntu-ui-toolkit package in Ubuntu:
Fix Released
Bug description:
revision 1864
System setup: Vivid + Overlay PPA (i.e. same as phones/tablets)
libqt5qml5:
Installed: 5.4.1-1ubuntu11~overlay3
libqt5core5a:
Installed: 5.4.1+dfsg-2ubuntu11~vivid4
UbuntuTestCase provides a flick() function whose main purpose is to
produce a flick event when executed on Flickable.
I noticed that this does not always happen, causing flakiness of some
of the UITK tests (in my case, it's the Scrollbar/ScrollView tests I'm
working on)
Here is a test case that reproduces the issue, once every 10-200 runs,
depending on the configuration (I use a simple script to run it until
it fails)
Please note that uncommenting the debug lines such as onMovingChanged
onFlickingChanged will make it harder to reproduce the bug.
Enabling QT_LOGGING_RULES="qt.quick.mouse.debug=true" or
onContentYChanged will make it even harder.
Since I already went through the effort, I'm posting here the debug log coming from the failed and successful runs:
- Typical failed run ---> http://pastebin.ubuntu.com/15186789/ Note how "flicking" never becomes true
- Typical successful run ---> http://pastebin.ubuntu.com/15186784/
- Failed test with qt.quick.mouse.debug=true --> http://pastebin.ubuntu.com/15186851/
- Successful test with qt.quick.mouse.debug=true -> http://pastebin.ubuntu.com/15186853/
Here's the code I used to reproduce the bug:
import QtQuick 2.4
import QtTest 1.0
import Ubuntu.Test 1.0
import Ubuntu.Components 1.3
import Ubuntu.Components.Styles 1.3
import QtQml.Models 2.1
Item {
id: main
width: units.gu(50)
height: units.gu(100)
SignalSpy {
id: signalSpy
}
SignalSpy {
id: anotherSignalSpy
}
Item {
anchors.fill: parent
Item {
width: units.gu(20)
height: units.gu(30)
property alias flickable: freshFlickable
Flickable {
id: freshFlickable
anchors.fill: parent
contentHeight: content.height
contentWidth: content.width
clip: true
//onContentYChanged: console.log(contentY)
//onMovingChanged: console.log("MOVING", moving)
//onFlickingChanged: console.log("FLICKING", flicking)
Rectangle {
id: content
width: units.gu(40)
height: units.gu(200)
color: "blue"
}
}
}
}
UbuntuTestCase {
name: "FlickBug"
when: windowShown
function setupSignalSpy(spy, target, signalName) {
spy.clear()
//reset signalName otherwise it will look for the old signalName in the new target
spy.signalName = ""
spy.target = target
spy.signalName = signalName
}
function test_flickUbuntuTestCase() {
setupSignalSpy(signalSpy, freshFlickable, "movingChanged")
flick(freshFlickable, 50, 50, -units.gu(10), -units.gu(10))
signalSpy.wait()
compare(signalSpy.count, 1, "No movingChanged signal after simulating a flick.")
}
}
}
To manage notifications about this bug go to:
https://bugs.launchpad.net/canonical-devices-system-image/+bug/1549256/+subscriptions
References