Merge lp:~aacid/qtmir/fix_qteventfeeder_test_leak into lp:qtmir

Proposed by Albert Astals Cid
Status: Merged
Approved by: Daniel d'Andrada
Approved revision: 501
Merged at revision: 515
Proposed branch: lp:~aacid/qtmir/fix_qteventfeeder_test_leak
Merge into: lp:qtmir
Prerequisite: lp:~aacid/qtmir/fix_session_manager_test_leak
Diff against target: 48 lines (+14/-3)
2 files modified
tests/mirserver/QtEventFeeder/mock_qtwindowsystem.h (+12/-1)
tests/mirserver/QtEventFeeder/qteventfeeder_test.cpp (+2/-2)
To merge this branch: bzr merge lp:~aacid/qtmir/fix_qteventfeeder_test_leak
Reviewer Review Type Date Requested Status
Unity8 CI Bot (community) continuous-integration Approve
Daniel d'Andrada (community) Approve
Review via email: mp+296033@code.launchpad.net

This proposal supersedes a proposal from 2016-05-30.

Commit message

Fix memory leak in QtEventFeederTest

MockQtWindowSystem needs to delete the devices passed to registerTouchDevice as the real Qt class does

Description of the change

 * Are there any related MPs required for this MP to build/function as expected?
No

 * Did you perform an exploratory manual test run of your code change and any related functionality?
Yes

 * If you changed the packaging (debian), did you subscribe the ubuntu-unity team to this MP?
N/A

To post a comment you must log in.
501. By Albert Astals Cid

remove debug change

Revision history for this message
Daniel d'Andrada (dandrader) wrote :

Looks good to me.

review: Approve
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

PASSED: Continuous integration, rev:501
https://unity8-jenkins.ubuntu.com/job/lp-qtmir-ci/239/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/1736
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/1762
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1709
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/1709
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/1709
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/1702
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/1702/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1702
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1702/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/1702
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/1702/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/1702
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/1702/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1702
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1702/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/1702
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/1702/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/1702
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/1702/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/1702
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/1702/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/1702
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/1702/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-qtmir-ci/239/rebuild

review: Approve (continuous-integration)
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

PASSED: Continuous integration, rev:501
https://unity8-jenkins.ubuntu.com/job/lp-qtmir-ci/256/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/1814
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/1839
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1781
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/1781
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/1781
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/1773
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/1773/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1773
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1773/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/1773
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/1773/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/1773
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/1773/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1773
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1773/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/1773
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/1773/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/1773
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/1773/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/1773
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/1773/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/1773
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/1773/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-qtmir-ci/256/rebuild

review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'tests/mirserver/QtEventFeeder/mock_qtwindowsystem.h'
2--- tests/mirserver/QtEventFeeder/mock_qtwindowsystem.h 2016-01-07 11:37:55 +0000
3+++ tests/mirserver/QtEventFeeder/mock_qtwindowsystem.h 2016-05-30 10:28:06 +0000
4@@ -28,7 +28,6 @@
5 MOCK_METHOD1(getWindowForTouchPoint, QWindow*(const QPoint &point));
6 MOCK_METHOD0(lastWindow, QWindow*());
7 MOCK_METHOD0(focusedWindow, QWindow*());
8- MOCK_METHOD1(registerTouchDevice, void(QTouchDevice* device));
9
10 // Wanted to use GMock, but MOCK_METHOD11 not implemented
11 void handleExtendedKeyEvent(QWindow */*window*/, ulong /*timestamp*/, QEvent::Type /*type*/, int /*key*/,
12@@ -43,6 +42,18 @@
13 Qt::KeyboardModifiers mods));
14 MOCK_METHOD4(handleMouseEvent, void(ulong timestamp, QPointF point, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers));
15 MOCK_METHOD3(handleWheelEvent, void(ulong timestamp, QPoint angleDelta, Qt::KeyboardModifiers mods));
16+
17+ ~MockQtWindowSystem()
18+ {
19+ qDeleteAll(m_devices);
20+ }
21+
22+ void registerTouchDevice(QTouchDevice* device)
23+ {
24+ m_devices << device;
25+ }
26+
27+ QVector<QTouchDevice*> m_devices;
28 };
29
30 namespace testing
31
32=== modified file 'tests/mirserver/QtEventFeeder/qteventfeeder_test.cpp'
33--- tests/mirserver/QtEventFeeder/qteventfeeder_test.cpp 2016-04-29 15:41:00 +0000
34+++ tests/mirserver/QtEventFeeder/qteventfeeder_test.cpp 2016-05-30 10:28:06 +0000
35@@ -78,11 +78,11 @@
36 mockWindowSystem = new MockQtWindowSystem;
37 auto screens = QSharedPointer<ScreensModel>();
38
39- EXPECT_CALL(*mockWindowSystem, registerTouchDevice(_));
40+ ASSERT_TRUE(mockWindowSystem->m_devices.count() == 0);
41
42 qtEventFeeder = new QtEventFeeder(screens, mockWindowSystem);
43
44- ASSERT_TRUE(Mock::VerifyAndClearExpectations(mockWindowSystem));
45+ ASSERT_TRUE(mockWindowSystem->m_devices.count() == 1);
46
47 int argc = 0;
48 char **argv = nullptr;

Subscribers

People subscribed via source and target branches