** Changed in: canonical-devices-system-image Status: Fix Committed => Fix Released
-- 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 Released 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 -- Mailing list: https://launchpad.net/~ubuntu-sdk-bugs Post to : ubuntu-sdk-bugs@lists.launchpad.net Unsubscribe : https://launchpad.net/~ubuntu-sdk-bugs More help : https://help.launchpad.net/ListHelp